CardSlotItemCtr.lua 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. local CardSlotItemCtr = {}
  2. local ConditionJudge = require("Common/ConditionJudge")
  3. local IconItemCtr = require("Common/IconItemCtr")
  4. function CardSlotItemCtr:SetData(wnd, item, logicData, enterType)
  5. local cfgId = logicData.cfgId
  6. local condition = logicData.condition
  7. if cfgId > 0 then
  8. IconItemCtr:SetData(wnd, item.iconItem, logicData, Enum.ItemIEnterType.CardTips, wnd, wnd.ShowCardList)
  9. item.cardIcon.unowned.icon.button.interactable = false
  10. else
  11. item.cardIcon.unowned.icon.button.interactable = true
  12. wnd.uiBase:AddButtonUniqueEventListener(item.cardIcon.unowned.icon.button, wnd, wnd.ShowCardList, logicData)
  13. end
  14. local result, val, content = ConditionJudge:ConditionPassResult1(condition)
  15. item.cardIcon.owned:SetActive(result and cfgId > 0)
  16. item.cardName.owned:SetActive(result and cfgId > 0)
  17. item.cardIcon.unowned:SetActive(result and cfgId == 0)
  18. item.cardName.unowned:SetActive(result and cfgId == 0)
  19. item.cardIcon.locked:SetActive(not result)
  20. item.cardName.locked:SetActive(not result)
  21. item.noCard:SetActive(result and cfgId == 0)
  22. item.lvLocked:SetActive(not result)
  23. item.grid:SetActive(cfgId > 0)
  24. if cfgId == 0 then
  25. if not result then
  26. item.lvLocked.text.text = content
  27. end
  28. else
  29. local cardData = ManagerContainer.CfgMgr:GetCardDataById(cfgId)
  30. item.normal:SetActive(cardData.CardType == Enum.CardType.NORMAL)
  31. item.mini:SetActive(cardData.CardType == Enum.CardType.MINIBOSS)
  32. item.mVP:SetActive(cardData.CardType == Enum.CardType.MVP)
  33. if cardData.CardType == Enum.CardType.NORMAL then
  34. item.nameTextNormal.uILocalizeScript:SetContent(cardData.CardName)
  35. elseif cardData.CardType == Enum.CardType.MINIBOSS then
  36. item.nameTextMini.uILocalizeScript:SetContent(cardData.CardName)
  37. elseif cardData.CardType == Enum.CardType.MVP then
  38. item.nameTextMVP.uILocalizeScript:SetContent(cardData.CardName)
  39. end
  40. local idx = 0
  41. for _,v in pairs(CommonUtil.DeserializeCfgItemList(cardData.Attribute1)) do
  42. idx = idx + 1
  43. CommonUtil.BatchCreateItemsLoopSpawnPrefab(wnd, Enum.PrefabNames.CardAttrItem, item.grid.transform, v, idx)
  44. end
  45. end
  46. end
  47. return CardSlotItemCtr