UIHundredDojoRewardCtr.lua 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. local UIHundredDojoRewardCtr = class("UIHundredDojoRewardCtr", require("UICtrBase"))
  2. function UIHundredDojoRewardCtr:Init(view)
  3. self.view = view
  4. end
  5. function UIHundredDojoRewardCtr:SetData(data)
  6. self.asyncIdx = 0
  7. if data == nil then return end
  8. self.data = data
  9. end
  10. function UIHundredDojoRewardCtr:GetAsyncIdx()
  11. self.asyncIdx = self.asyncIdx + 1
  12. return self.asyncIdx
  13. end
  14. function UIHundredDojoRewardCtr:GetData()
  15. return self.data
  16. end
  17. function UIHundredDojoRewardCtr:OnDispose()
  18. self.rewards = nil
  19. self.rewardTime = nil
  20. self.currencys = nil
  21. self.items = nil
  22. self.data = nil
  23. self.view = nil
  24. end
  25. function UIHundredDojoRewardCtr:InitData()
  26. local rewardMaxTime = GlobalConfig.Instance:GetConfigIntValue(255) * 3600
  27. local rewardInterval = GlobalConfig.Instance:GetConfigIntValue(252)
  28. if rewardInterval <= 0 then rewardInterval = 1 end
  29. local rewardRate = 60 / rewardInterval
  30. local baseRewardStr = GlobalConfig.Instance:GetConfigStrValue(301)
  31. local baseRewards = CommonUtil.DeserializeGlobalStrToNumberTable(baseRewardStr)
  32. local areaData = ManagerContainer.DataMgr.HundredDojoDataMgr:GetSelfAreaData()
  33. if areaData and areaData:IsOccupy() then
  34. local cfgData = ManagerContainer.CfgMgr:GetHundredDojoCfgById(areaData.id)
  35. if cfgData and cfgData.ShowRewardList then
  36. for i = 1, 3 do
  37. local rewards = cfgData.ShowRewardList[i]
  38. if not rewards then
  39. break
  40. end
  41. if baseRewards[i] then
  42. if baseRewards[i][1] == rewards[1] then
  43. baseRewards[i][2] = baseRewards[i][2] + rewards[2]
  44. else
  45. LogError('[wboy] Hundred Dojo base reward cfg and seat reward cfg is not same !!!')
  46. break
  47. end
  48. else
  49. baseRewards[i] = rewards
  50. end
  51. end
  52. end
  53. end
  54. self.rewardRate = rewardRate
  55. self.rewards = baseRewards
  56. local rewardTime = 0
  57. if self.data then
  58. if self.data[1] then
  59. rewardTime = self.data[1] * rewardInterval
  60. end
  61. end
  62. if rewardMaxTime < rewardTime then
  63. rewardTime = rewardMaxTime
  64. end
  65. self.rewardTime = rewardTime
  66. local currencys = {}
  67. local items = {}
  68. if self.data then
  69. local getRewards = self.data[2]
  70. if getRewards then
  71. for i = 1, #getRewards do
  72. local getReward = getRewards[i]
  73. if getReward.key < 100 then
  74. currencys[getReward.key] = getReward.value
  75. else
  76. items[#items + 1] = {cfgId = getReward.key, num = getReward.value}
  77. end
  78. end
  79. end
  80. end
  81. if #items > 0 then
  82. table.sort(items, function (a, b)
  83. local _aCfg = ManagerContainer.CfgMgr:GetItemById(a.cfgId)
  84. local _bCfg = ManagerContainer.CfgMgr:GetItemById(b.cfgId)
  85. if _aCfg ~= nil and _bCfg == nil then
  86. return true;
  87. elseif _aCfg == nil and _bCfg ~= nil then
  88. return false;
  89. elseif _aCfg ~= nil and _bCfg ~= nil then
  90. local _aQuality = _aCfg.Quality
  91. local _bQuality = _bCfg.Quality
  92. if _aQuality ~= nil and _bQuality == nil then
  93. return true;
  94. elseif _aQuality == nil and _bQuality ~= nil then
  95. return false;
  96. elseif _aQuality ~= nil and _bQuality ~= nil then
  97. if _aQuality ~= _bQuality then
  98. return _aQuality > _bQuality
  99. else
  100. return a.cfgId < b.cfgId
  101. end
  102. else
  103. return a.cfgId < b.cfgId
  104. end
  105. else
  106. return a.cfgId < b.cfgId
  107. end
  108. end)
  109. end
  110. self.currencys = currencys
  111. self.items = items
  112. end
  113. function UIHundredDojoRewardCtr:GetRewardRate()
  114. return self.rewardRate
  115. end
  116. function UIHundredDojoRewardCtr:GetRewards()
  117. return self.rewards
  118. end
  119. function UIHundredDojoRewardCtr:GetRewardTime()
  120. return self.rewardTime
  121. end
  122. function UIHundredDojoRewardCtr:GetCurrencys()
  123. return self.currencys
  124. end
  125. function UIHundredDojoRewardCtr:GetItems()
  126. return self.items
  127. end
  128. return UIHundredDojoRewardCtr