UIWorldBossRewardCtr.lua 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. local UIWorldBossRewardCtr = class("UIWorldBossRewardCtr", require("UICtrBase"))
  2. function UIWorldBossRewardCtr:Init(view)
  3. self.view = view
  4. end
  5. function UIWorldBossRewardCtr:SetData(data)
  6. self.asyncIdx = 0
  7. if data == nil then return end
  8. self.data = data
  9. end
  10. function UIWorldBossRewardCtr:GetAsyncIdx()
  11. self.asyncIdx = self.asyncIdx + 1
  12. return self.asyncIdx
  13. end
  14. function UIWorldBossRewardCtr:GetData()
  15. return self.data
  16. end
  17. function UIWorldBossRewardCtr:OnDispose()
  18. self.data = nil
  19. self.view = nil
  20. self.worldBossCfgId = nil
  21. self.rewardList = nil
  22. self.rewardDatas = nil
  23. self.rewardOpenIdx = nil
  24. end
  25. function UIWorldBossRewardCtr:InitData()
  26. local pointInfo = ManagerContainer.DataMgr.WorldBossData:GetWorldBossPointInfo()
  27. self.worldBossCfgId = pointInfo and pointInfo.bossId or 1
  28. self.rewardList = pointInfo and pointInfo.rewardList or {3}
  29. local worldBossCfgData = ManagerContainer.DataMgr.WorldBossData:GetWorldBossDataById(self:GetWorldBossCfgId(),0)
  30. if nil == worldBossCfgData then
  31. worldBossCfgData = ManagerContainer.DataMgr.WorldBossData:GetWorldBossDataById(self:GetWorldBossCfgId(),1)
  32. end
  33. local rewardDatas = {}
  34. if worldBossCfgData then
  35. rewardDatas[1] = self:FormatRewardData(worldBossCfgData.FirstReward)
  36. rewardDatas[2] = self:FormatRewardData(worldBossCfgData.SecondReward)
  37. rewardDatas[3] = self:FormatRewardData(worldBossCfgData.ThreeReward)
  38. end
  39. self.rewardDatas = rewardDatas
  40. self.rewardOpenIdx = 1
  41. local vipLv = ManagerContainer.DataMgr.UserData:GetVipLv()
  42. self.vipCfg = ManagerContainer.CfgMgr:GetVipCfgById(vipLv)
  43. self.hasSSR = false
  44. end
  45. function UIWorldBossRewardCtr:GetWorldBossCfgId()
  46. return self.worldBossCfgId
  47. end
  48. function UIWorldBossRewardCtr:GetCurVaildRewardType()
  49. return self:GetWorldBossRewardTypeById(self.rewardOpenIdx)
  50. end
  51. function UIWorldBossRewardCtr:OffsetNextVaildRewardType()
  52. self.rewardOpenIdx = self.rewardOpenIdx + 1
  53. local rewardType = self:GetWorldBossRewardTypeById(self.rewardOpenIdx)
  54. if rewardType then
  55. return true
  56. end
  57. return false
  58. end
  59. function UIWorldBossRewardCtr:GetWorldBossRemainNum()
  60. return #self.rewardList - self.rewardOpenIdx + 1
  61. end
  62. function UIWorldBossRewardCtr:GetWorldBossRewardTypeById(idx)
  63. return self.rewardList and self.rewardList[idx] or nil
  64. end
  65. function UIWorldBossRewardCtr:GetWorldBossRewardList()
  66. return self.rewardList
  67. end
  68. function UIWorldBossRewardCtr:GetWorldBossRewardsByType(rewardType)
  69. if rewardType then
  70. local rewardData = self.rewardDatas[rewardType]
  71. if rewardData then
  72. return rewardData
  73. end
  74. end
  75. return {cfgId = 1, num = 0}
  76. end
  77. function UIWorldBossRewardCtr:FormatRewardData(rewards)
  78. if rewards then
  79. if type(rewards[1]) == 'number' then
  80. rewards = {rewards}
  81. end
  82. local reward = {}
  83. for i = 1, #rewards do
  84. reward[#reward + 1] = {cfgId = rewards[i][1], num = rewards[i][2]}
  85. end
  86. return reward
  87. end
  88. return nil
  89. end
  90. function UIWorldBossRewardCtr:GetVipCfg()
  91. return self.vipCfg
  92. end
  93. return UIWorldBossRewardCtr