UICardTipsView.lua 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. local UICardTipsView = require("UICardTips/UICardTipsView_Generate")
  2. local IconItemCtr = require("Common/IconItemCtr")
  3. local defineLvStr = " <color=#1f9300>+%s</color>"
  4. local canOneKey = false
  5. function UICardTipsView:OnAwake(data)
  6. self.controller = require("UICardTips/UICardTipsCtr"):new()
  7. self.controller:Init(self)
  8. self.controller:SetData(data)
  9. end
  10. function UICardTipsView:AddEventListener()
  11. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.CARD_LIST_REFRESH, function()
  12. CommonUtil.BatchDisposeItems(self)
  13. --ManagerContainer.LuaUIMgr:AttrNoticeDisplay(self.controller:GetSlotIndex())
  14. self:Init()
  15. end)
  16. end
  17. function UICardTipsView:FillContent(data, uiBase)
  18. self.uiBase = uiBase
  19. local gameObject = self.uiBase:GetRoot()
  20. if gameObject ~= nil then
  21. self.gameObject = gameObject
  22. self.transform = gameObject.transform
  23. end
  24. self:InitGenerate(self.transform, data)
  25. self:Init()
  26. end
  27. function UICardTipsView:Init()
  28. canOneKey = false
  29. local cfgId = self.controller:GetCfgId()
  30. local itemCfgData = ManagerContainer.CfgMgr:GetItemById(cfgId)
  31. local slotIndex = self.controller:GetSlotIndex()
  32. local slotType = self.controller:GetSlotType()
  33. local slots = ManagerContainer.DataMgr.UserData:GetCurSlotInfos(slotIndex)
  34. local refineLv = slots[slotType].level
  35. -- 道具图标
  36. IconItemCtr:SetData(self, self.topItem.iconItem, self.controller.data, Enum.ItemIEnterType.HeroEquip)
  37. -- 道具名称
  38. local name = I18N.T(itemCfgData.Name)
  39. if refineLv > 0 then
  40. self.textName.text.text = name..(string.format(defineLvStr, refineLv))
  41. else
  42. self.textName.text.text = name
  43. end
  44. -- 道具类型
  45. self.textType.uILocalizeScript:SetContent("ItemTypeDes_" .. itemCfgData.ResType)
  46. --卡片信息
  47. local cardList = slots[slotType].card_id_list
  48. local list = {}
  49. for i = 1, Constant.CARD_SLOT_LIMIT do
  50. if cardList[i] ~= nil and cardList[i] > 0 then
  51. canOneKey = true
  52. end
  53. local condition = ManagerContainer.CfgMgr:GetCardUnlockConditionById(slotType * 100 + i)
  54. if condition ~= nil then
  55. list[#list + 1] =
  56. {cfgId = cardList[i] ~= nil and cardList[i] or 0, condition = condition.UnlockingCondition[1], idx = i,
  57. slotType = slotType, slotIndex = slotIndex}
  58. end
  59. if cardList[i] == nil or cardList[i] == 0 then
  60. self["slot"..i].slotBlueCard:SetActive(false)
  61. self["slot"..i].slotPurpleCard:SetActive(false)
  62. self["slot"..i].slotGoldCard:SetActive(false)
  63. else
  64. local cardData = ManagerContainer.CfgMgr:GetCardDataById(cardList[i])
  65. self["slot"..i].slotBlueCard:SetActive(cardData.CardType == Enum.CardType.NORMAL)
  66. self["slot"..i].slotPurpleCard:SetActive(cardData.CardType == Enum.CardType.MINIBOSS)
  67. self["slot"..i].slotGoldCard:SetActive(cardData.CardType == Enum.CardType.MVP)
  68. end
  69. end
  70. for k,v in pairs(list) do
  71. CommonUtil.BatchCreateItems(self, self["cardslotItem"..k], self.cardScrollView.content.transform, v)
  72. end
  73. --self.cardScrollView.content.verticalLayoutGroup:SetLayoutHorizontal()
  74. --self.cardScrollView.content.verticalLayoutGroup:SetLayoutVertical()
  75. ManagerContainer.RedPointMgr.HeroRPCtr:RefreshRoleCardSlotRP(slotIndex)
  76. end
  77. function UICardTipsView:ShowCardList(button, params)
  78. local logicData = params[0]
  79. local cardDatas = ManagerContainer.DataMgr.CardData:GetAllCardDatasByType(logicData.slotType)
  80. if cardDatas == nil or #cardDatas == 0 then
  81. ManagerContainer.LuaUIMgr:ErrorNoticeDisplay("NoCardTips")
  82. else
  83. self:UIClose()
  84. logicData.tipsData = self.controller:GetData()
  85. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UICardListTips, logicData)
  86. end
  87. end
  88. function UICardTipsView:RemoveEventListener()
  89. ManagerContainer.LuaEventMgr:Unregister(self.uiData.name)
  90. end
  91. function UICardTipsView:AddUIEventListener()
  92. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name)
  93. self.uiBase:AddButtonEventListener(self.btnClose.button, function ()
  94. self:UIClose()
  95. end)
  96. self.uiBase:AddButtonEventListener(self.AnyBtn.button, function ()
  97. self:UIClose()
  98. end)
  99. self.uiBase:AddButtonEventListener(self.btnOneKeyRemove.button, function ()
  100. if not canOneKey then
  101. ManagerContainer.LuaUIMgr:ErrorNoticeDisplay(Enum.ActionNotiveType.CardUnloadTips)
  102. return
  103. end
  104. self.controller:SendOneKeyRemoveCard()
  105. end)
  106. end
  107. function UICardTipsView:OnHide()
  108. --if self.fxGoes ~= nil then
  109. -- for i =1, #self.fxGoes do
  110. -- ManagerContainer.ResMgr:RecycleGO(Constants.EffectPath,self.fxGoes[i].name,self.fxGoes[i].go)
  111. -- end
  112. -- self.fxGoes = {}
  113. --end
  114. CommonUtil.BatchDisposeItems(self)
  115. end
  116. function UICardTipsView:OnShow(data)
  117. self.controller:SetData(data)
  118. self:Init()
  119. end
  120. function UICardTipsView:OnClose()
  121. end
  122. function UICardTipsView:OnDispose()
  123. end
  124. return UICardTipsView