UISummonResultCtr.lua 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. local UISummonResultCtr = class("UISummonResultCtr", require("UICtrBase"))
  2. function UISummonResultCtr:Init(view)
  3. self.view = view
  4. end
  5. function UISummonResultCtr:SetData(data)
  6. self.asyncIdx = 0
  7. self.data = data
  8. end
  9. function UISummonResultCtr:GetAsyncIdx()
  10. self.asyncIdx = self.asyncIdx + 1
  11. return self.asyncIdx
  12. end
  13. function UISummonResultCtr:GetData()
  14. return self.data
  15. end
  16. function UISummonResultCtr:OnDispose()
  17. self.data = nil
  18. self.view = nil
  19. end
  20. function UISummonResultCtr:InitData()
  21. local summonData = ManagerContainer.DataMgr.SummonDataMgr:GetSummonData()
  22. local cfgData, summonNum, rewards, extraReward, extraRewards, lastPercent, percent
  23. if summonData then
  24. cfgData = ManagerContainer.CfgMgr:GetSummonCfgById(summonData.summonType)
  25. summonNum = summonData.summonNum
  26. rewards = summonData.rewards
  27. extraRewards = summonData.extraRewards
  28. if cfgData.Total > 0 then
  29. if extraRewards and #extraRewards >= 1 then
  30. lastPercent = (cfgData.Total - summonData.summonAdd + summonData.summonTotal) / cfgData.Total
  31. percent = 1
  32. extraReward = extraRewards[1]
  33. else
  34. lastPercent = (summonData.summonTotal - summonData.summonAdd) / cfgData.Total
  35. percent = (summonData.summonTotal) / cfgData.Total
  36. end
  37. end
  38. end
  39. self.cfgData = cfgData
  40. self.summonNum = summonNum
  41. self.rewards = rewards
  42. self.extraReward = extraReward
  43. self.lastPercent = lastPercent or 0
  44. self.percent = percent or 0
  45. self:ClearSummonData()
  46. end
  47. function UISummonResultCtr:GetCfgData()
  48. return self.cfgData
  49. end
  50. function UISummonResultCtr:GetSummonNum()
  51. return self.summonNum
  52. end
  53. function UISummonResultCtr:IsHasExtra()
  54. return self.cfgData.Total > 0 or false
  55. end
  56. function UISummonResultCtr:GetRewards()
  57. return self.rewards
  58. end
  59. function UISummonResultCtr:GetExtraReward()
  60. return self.extraReward
  61. end
  62. function UISummonResultCtr:GetLastSummonPercent()
  63. return self.lastPercent
  64. end
  65. function UISummonResultCtr:GetSummonPercent()
  66. return self.percent
  67. end
  68. function UISummonResultCtr:ClearSummonData()
  69. ManagerContainer.DataMgr.SummonDataMgr:ClearSummonData()
  70. end
  71. function UISummonResultCtr:GetOwnResCountByItemId(cfgId)
  72. return CommonUtil.GetOwnResCountByItemId(cfgId)
  73. end
  74. function UISummonResultCtr:GetShowQuality(cfgId)
  75. if cfgId then
  76. local itemCfgData = ManagerContainer.CfgMgr:GetItemById(cfgId)
  77. if itemCfgData then
  78. if itemCfgData.ResType == Enum.ItemType.Compose then
  79. if itemCfgData.Quality > 4 then
  80. return 3, false
  81. elseif itemCfgData.Quality == 4 then
  82. return 2, false
  83. else
  84. return 0, false
  85. end
  86. end
  87. local qualityLv = 1
  88. if itemCfgData.ResType == Enum.ItemType.Equip then
  89. local cfgData = ManagerContainer.CfgMgr:GetEquipById(cfgId)
  90. if cfgData then
  91. qualityLv = cfgData.EquipLevel
  92. end
  93. elseif itemCfgData.ResType == Enum.ItemType.Card then
  94. local cfgData = ManagerContainer.CfgMgr:GetCardDataById(cfgId)
  95. if cfgData then
  96. qualityLv = cfgData.CardLevel
  97. end
  98. end
  99. if itemCfgData.Quality > 4 then
  100. return 3, true
  101. elseif itemCfgData.Quality == 4 then
  102. return 2, true
  103. elseif itemCfgData.Quality == 3 then
  104. return 1, qualityLv >= 3
  105. end
  106. end
  107. end
  108. return 0, false
  109. end
  110. function UISummonResultCtr:GetSendSummonReqErrorCode(idx)
  111. return ManagerContainer.DataMgr.SummonDataMgr:GetSendSummonReqErrorCode(self.cfgData.Id, idx)
  112. end
  113. function UISummonResultCtr:SendSummonReq(summonNum)
  114. if self.cfgData and self.cfgData.ActivitiesId and self.cfgData.ActivitiesId > 0 then
  115. if not ManagerContainer.DataMgr.SummonDataMgr:SendActivitySummonReq(self.cfgData.ActivitiesId,summonNum) then
  116. return 100007
  117. end
  118. local activityData = ManagerContainer.DataMgr.ActsDataMgr:GetActivityItemById(self.cfgData.ActivitiesId)
  119. if activityData then
  120. if activityData:LeftTime() <= 0 then
  121. self.view:OnClickConfirmBtn()
  122. end
  123. else
  124. self.view:OnClickConfirmBtn()
  125. end
  126. else
  127. if not ManagerContainer.DataMgr.SummonDataMgr:SendSummonReq(self.cfgData.Id, summonNum) then
  128. return 100007
  129. end
  130. end
  131. return 0
  132. end
  133. return UISummonResultCtr