UIBagCardListTipsView.lua 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. local UIBagCardListTipsView = require("UICardTips/UIBagCardListTipsView_Generate")
  2. local cardList
  3. function UIBagCardListTipsView:OnAwake(data)
  4. self.controller = require("UICardTips/UIBagCardListTipsCtr"):new()
  5. self.controller:Init(self)
  6. self.controller:SetData(data)
  7. end
  8. function UIBagCardListTipsView:AddEventListener()
  9. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.CARD_LIST_REFRESH, function()
  10. ManagerContainer.LuaUIMgr:AttrNoticeDisplay(self.controller:GetSlotIndex())
  11. self:UIClose()
  12. end)
  13. end
  14. function UIBagCardListTipsView:FillContent(data, uiBase)
  15. self.uiBase = uiBase
  16. local gameObject = self.uiBase:GetRoot()
  17. if gameObject ~= nil then
  18. self.gameObject = gameObject
  19. self.transform = gameObject.transform
  20. end
  21. self:InitGenerate(self.transform, data)
  22. self:Init()
  23. end
  24. function UIBagCardListTipsView:Init()
  25. cardList = self.controller:GetCardList()
  26. self.dscBox:SetActive(#cardList == 0)
  27. end
  28. function UIBagCardListTipsView:RefreshCardList()
  29. local newCardId = self.controller:GetCfgId()
  30. local newCardData = ManagerContainer.CfgMgr:GetCardDataById(newCardId)
  31. local slotIndex = self.controller:GetSlotIndex()
  32. local jobType, jobIcon
  33. if slotIndex == 1 then
  34. local heroData = ManagerContainer.DataMgr.UserData:GetHeroData()
  35. local jobData = ManagerContainer.CfgMgr:GetJobDataById(heroData.configId)
  36. jobType = jobData.JobType
  37. else
  38. local heroData = ManagerContainer.DataMgr.PartnerData:GetPartnerDataByUniqueId(slotIndex)
  39. local heroCfgData = ManagerContainer.CfgMgr:GetPartnerDataById(heroData.configId)
  40. jobType = heroCfgData.JobType
  41. end
  42. for k,v in pairs(cardList) do
  43. ManagerContainer.GoPoolMgr:SpawnGo(Enum.PrefabNames.CardListItem, function(itemlua)
  44. local professhion = CommonUtil.EleInTable(jobType, newCardData.Profession)
  45. local state = self:CardRecommend(v, newCardId) and professhion
  46. local data1 = {cfgId = v, idx = state and 1 or 0, needRecommend = true}
  47. CommonUtil.BatchCreateItems(self, itemlua, self.cardScrollView.content.transform, data1, Enum.ItemIEnterType.EquipedCard)
  48. itemlua.btnReplace:SetActive(true)
  49. itemlua.btnPluginCard:SetActive(false)
  50. self.uiBase:AddButtonUniqueEventListener(itemlua.btnReplace.button, self, self.ChangeCard, k)
  51. end)
  52. end
  53. end
  54. function UIBagCardListTipsView:OnPageInEnd()
  55. self.super.OnPageInEnd(self)
  56. self:RefreshCardList()
  57. end
  58. function UIBagCardListTipsView:CardRecommend(oldCardId, newCardId)
  59. local oldCardData = ManagerContainer.CfgMgr:GetCardDataById(oldCardId)
  60. local newCardData = ManagerContainer.CfgMgr:GetCardDataById(newCardId)
  61. if newCardData.CardType == oldCardData.CardType then
  62. if newCardData.CardLevel == oldCardData.CardLevel then
  63. return newCardData.FightPower > oldCardData.FightPower
  64. else
  65. return newCardData.CardLevel > oldCardData.CardLevel
  66. end
  67. else
  68. return newCardData.CardType > oldCardData.CardType
  69. end
  70. end
  71. function UIBagCardListTipsView:ChangeCard(button, params)
  72. local cardSlotIndex = params[0]
  73. self.controller:SendInsertCard(cardSlotIndex)
  74. end
  75. function UIBagCardListTipsView:RemoveEventListener()
  76. ManagerContainer.LuaEventMgr:Unregister(self.uiData.name)
  77. end
  78. function UIBagCardListTipsView:AddUIEventListener()
  79. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name)
  80. self.uiBase:AddButtonEventListener(self.btnClose.button, function ()
  81. self:UIClose()
  82. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UICardEquipList)
  83. end)
  84. self.uiBase:AddButtonEventListener(self.AnyBtn.button, function ()
  85. self:UIClose()
  86. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UICardEquipList)
  87. end)
  88. end
  89. function UIBagCardListTipsView:OnHide()
  90. end
  91. function UIBagCardListTipsView:OnShow(data)
  92. self.controller:SetData(data)
  93. self:Init()
  94. self:RefreshCardList()
  95. end
  96. function UIBagCardListTipsView:OnClose()
  97. cardList = nil
  98. end
  99. function UIBagCardListTipsView:OnDispose()
  100. end
  101. return UIBagCardListTipsView