UIHundredDojoChallengeCtr.lua 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  1. local UIHundredDojoChallengeCtr = class("UIHundredDojoChallengeCtr", require("UICtrBase"))
  2. function UIHundredDojoChallengeCtr:Init(view)
  3. self.view = view
  4. end
  5. function UIHundredDojoChallengeCtr:SetData(data)
  6. self.asyncIdx = 0
  7. if data == nil then return end
  8. self.data = data
  9. end
  10. function UIHundredDojoChallengeCtr:GetAsyncIdx()
  11. self.asyncIdx = self.asyncIdx + 1
  12. return self.asyncIdx
  13. end
  14. function UIHundredDojoChallengeCtr:GetData()
  15. return self.data
  16. end
  17. function UIHundredDojoChallengeCtr:OnDispose()
  18. self.rewardRate = nil
  19. self.defaultHeroCute = nil
  20. self.robotHeroCute = nil
  21. self.buyCosts = nil
  22. self.data = nil
  23. self.view = nil
  24. end
  25. function UIHundredDojoChallengeCtr:InitData()
  26. local rewardInterval = GlobalConfig.Instance:GetConfigIntValue(252)
  27. if rewardInterval <= 0 then rewardInterval = 1 end
  28. self.rewardRate = 60 / rewardInterval
  29. local costStr = GlobalConfig.Instance:GetConfigStrValue(265)
  30. self.buyCosts = CommonUtil.DeserializeGlobalStrToNumberTable(costStr)
  31. self.defaultHeroCute = GlobalConfig.Instance:GetConfigStrValue(259)
  32. self.robotHeroCute = GlobalConfig.Instance:GetConfigStrValue(258)
  33. end
  34. function UIHundredDojoChallengeCtr:GetRewardRate()
  35. return self.rewardRate
  36. end
  37. function UIHundredDojoChallengeCtr:GetAreaData()
  38. if self.data then
  39. return ManagerContainer.DataMgr.HundredDojoDataMgr:GetAreaDataById(self.data)
  40. end
  41. return nil
  42. end
  43. function UIHundredDojoChallengeCtr:GetUserNickname()
  44. return ManagerContainer.DataMgr.UserData:GetUserNickname()
  45. end
  46. function UIHundredDojoChallengeCtr:GetTotalFightPower()
  47. return ManagerContainer.DataMgr.UserData:GetTotalFightPower()
  48. end
  49. function UIHundredDojoChallengeCtr:GetUserRoleId()
  50. return ManagerContainer.DataMgr.UserData:GetUserRoleId()
  51. end
  52. function UIHundredDojoChallengeCtr:GetSelfAreaData()
  53. return ManagerContainer.DataMgr.HundredDojoDataMgr:GetSelfAreaData()
  54. end
  55. function UIHundredDojoChallengeCtr:IsSelfArea(id)
  56. local selfAreaData = self:GetSelfAreaData()
  57. if selfAreaData and selfAreaData:IsValidData() and (selfAreaData.id == id) then
  58. return true
  59. end
  60. return false
  61. end
  62. function UIHundredDojoChallengeCtr:IsLastBeAtkArea(uid)
  63. if not uid then
  64. return false
  65. end
  66. local lastBeAtkUid = ManagerContainer.DataMgr.HundredDojoDataMgr:GetLastBeAttackUid()
  67. if not lastBeAtkUid then
  68. return false
  69. end
  70. return int64.equals(lastBeAtkUid, uid)
  71. end
  72. function UIHundredDojoChallengeCtr:IsSameGuild(guildId)
  73. local guildData = ManagerContainer.DataMgr.GuildDataMgr:GetCurGuildData()
  74. if guildData then
  75. return guildData:IsSameGuild(guildId)
  76. end
  77. return false
  78. end
  79. function UIHundredDojoChallengeCtr:GetDefaultHeroCute()
  80. return self.defaultHeroCute
  81. end
  82. function UIHundredDojoChallengeCtr:GetRobotHeroCute()
  83. return self.robotHeroCute
  84. end
  85. function UIHundredDojoChallengeCtr:GetChallengeCount()
  86. return ManagerContainer.DataMgr.HundredDojoDataMgr:GetChallengeCount()
  87. end
  88. function UIHundredDojoChallengeCtr:GetBuyChallengeCount()
  89. return ManagerContainer.DataMgr.HundredDojoDataMgr:GetBuyChallengeCount()
  90. end
  91. function UIHundredDojoChallengeCtr:GetBuyChallengeCountCost()
  92. local buyCount = self:GetBuyChallengeCount()
  93. if self.buyCosts then
  94. buyCount = Mathf.Clamp(buyCount + 1, 1, #self.buyCosts)
  95. local buyCost = self.buyCosts[buyCount]
  96. if buyCost then
  97. return buyCost[1], buyCost[2]
  98. end
  99. end
  100. return 1, 100
  101. end
  102. function UIHundredDojoChallengeCtr:GetSelfSlogan()
  103. return ManagerContainer.DataMgr.HundredDojoDataMgr:GetSlogan()
  104. end
  105. function UIHundredDojoChallengeCtr:SendChallengeReq()
  106. local areaData = self:GetAreaData()
  107. if not areaData or not areaData:IsValidData() then
  108. return 1
  109. end
  110. if areaData:IsOccupy() then
  111. local count = self:GetChallengeCount()
  112. if count < 1 then
  113. return 2
  114. end
  115. end
  116. if not ManagerContainer.DataMgr.HundredDojoDataMgr:SendChallengeReq(self.data) then
  117. return 100007
  118. end
  119. return 0
  120. end
  121. function UIHundredDojoChallengeCtr:SendBuyChallengeNumReq()
  122. local costCfgId, costNum = self:GetBuyChallengeCountCost()
  123. local ownNum = CommonUtil.GetOwnResCountByItemId(costCfgId)
  124. if ownNum < costNum then
  125. return 1, costCfgId
  126. end
  127. if not ManagerContainer.DataMgr.HundredDojoDataMgr:SendBuyChallengeNumReq() then
  128. return 100007, nil
  129. end
  130. return 0, nil
  131. end
  132. return UIHundredDojoChallengeCtr