KLGodDescentItem.lua 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. ---@class KLGodDescentItem:UIKmlLuaPanelBase
  2. ---@field view KLGodDescentItemView
  3. local KLGodDescentItem = class(UIKmlLuaPanelBase)
  4. local this =KLGodDescentItem
  5. ---创建时调用一次
  6. function this:Init()
  7. --奖励列表
  8. ---@type cfg_activity_rule_column
  9. local tbl = SL:GetConfig("cfg_activity_rule", 23001)
  10. self.allReward = tbl.uiReward
  11. GUI:Text_setString(self.view.TextDesc, tbl.uiTextRule)
  12. GUI:DataListInitData(self.view.dateList_reward,function()
  13. return table.count(self.allReward)
  14. end,function(realIndex)
  15. return self:RewardDataListItemGetFunc(realIndex)
  16. end,function(realIndex, kmlcontrol)
  17. return self:RewardDataListItemInitFunc(realIndex, kmlcontrol)
  18. end, function(realIndex, kmlcontrol)
  19. return self:RewardDataListItemUpdateFunc(realIndex, kmlcontrol)
  20. end)
  21. self.allRewardItem = {}
  22. GUI:DataListUpdateData(self.view.dateList_reward)
  23. self.monsterItems = {}
  24. local cfg = SL:GetConfigTable("cfg_BOSS_challenge")
  25. ---@param v cfg_BOSS_challenge_column
  26. for _, v in pairs(cfg) do
  27. if v.monsterType == 4 then
  28. self.monsterItems[v.monsterid] = GUI:UIPanel_Open("dev/outui/CrossServer/Item/KLGodDescentMonster/KLGodDescentMonsterItem", self.view.layout2,
  29. self, {id = v.monsterid, pic = v.picture, cfgId = v.id}, true)
  30. end
  31. end
  32. end
  33. function this:RewardDataListItemGetFunc(realIndex)
  34. local item = GUI:UIPanel_Open("dev/outui/ChallengeBoss/Item/KLUIChallengeBossRewardItem/KLUIChallengeBossRewardItem",self.view.dateList_reward,self,{},true)
  35. local index = realIndex + 1
  36. self.allRewardItem[index] = item
  37. local data = self.allReward[realIndex + 1]
  38. self.allRewardItem[index]:RefreshItem({cfgId=data})
  39. return item.view.root
  40. end
  41. function this:RewardDataListItemInitFunc(realIndex, kmlcontrol)
  42. end
  43. function this:RewardDataListItemUpdateFunc(realIndex, kmlcontrol)
  44. local index = realIndex + 1
  45. local data = self.allReward[realIndex + 1]
  46. self.allRewardItem[index]:RefreshItem({cfgId=data})
  47. end
  48. ---注册UI事件和服务器消息
  49. function this:RegistEvents()
  50. GUI:AddOnClickEvent(self.view.btn_Go, self, self.GoOnClick)
  51. SL:RegisterLUAEvent(LUA_EVENT_GODSDESCEND_DATA_CHANGE, self.LUA_EVENT_GODSDESCEND_DATA_CHANGE, self)
  52. end
  53. function this:GoOnClick()
  54. --奖励列表
  55. local cond, message = InfoManager.godsDescendInfo.CheckActivityConditionMapId(23001)
  56. if cond then
  57. ---@type cfg_activity_rule_column
  58. local tbl = SL:GetConfig("cfg_activity_rule", 23001)
  59. --SL:ShortcutDO(tbl.panel)
  60. SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_GOTO_CROSS_MAP,{})
  61. else
  62. SL:TipMessage(message, 1, NoticeType.NoticeMid)
  63. end
  64. end
  65. function this:LUA_EVENT_GODSDESCEND_DATA_CHANGE(id, message)
  66. if not message then
  67. for _, v in pairs(self.monsterItems) do
  68. v:UpdateMonsterData()
  69. end
  70. else
  71. for _, v in pairs(message) do
  72. if self.monsterItems[tonumber(v.cfgid)] then
  73. self.monsterItems[tonumber(v.cfgid)]:UpdateMonsterData()
  74. end
  75. end
  76. end
  77. end
  78. ---界面显示时调用一次
  79. function this:Show()
  80. end
  81. ---创建或者刷新界面数据时调用
  82. function this:Refresh()
  83. end
  84. function this:Close()
  85. GUI:UIPanel_Close("dev/outui/CrossServer/Item/KLGodDescentMonster/KLGodDescentMonsterItem")
  86. end
  87. return this