UIClimbingTowerCtr.lua 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. local UIClimbingTowerCtr = class("UIClimbingTowerCtr", require("UICtrBase"))
  2. local TowerDataMgr = ManagerContainer.DataMgr.TowerDataMgr
  3. local PeakTowerDataMgr = ManagerContainer.DataMgr.PeakTowerDataMgr
  4. function UIClimbingTowerCtr:Init(view)
  5. self.view = view
  6. end
  7. function UIClimbingTowerCtr:SetData(data)
  8. self:GetLastUITowerType()
  9. self.asyncIdx = 0
  10. if data == nil then return end
  11. self.data = data
  12. end
  13. function UIClimbingTowerCtr:GetAsyncIdx()
  14. self.asyncIdx = self.asyncIdx + 1
  15. return self.asyncIdx
  16. end
  17. function UIClimbingTowerCtr:GetData()
  18. return self.data
  19. end
  20. function UIClimbingTowerCtr:OnDispose()
  21. self.data = nil
  22. self.view = nil
  23. end
  24. function UIClimbingTowerCtr:GetLastUITowerType()
  25. self.type = PeakTowerDataMgr:GetCurUITowerType()
  26. return self.type
  27. end
  28. function UIClimbingTowerCtr:ChangeToOtherType()
  29. self.type = 1 - self.type
  30. self:SaveCurUITowerType(self.type)
  31. end
  32. function UIClimbingTowerCtr:SaveCurUITowerType()
  33. PeakTowerDataMgr:SaveCurUITowerType(self.type)
  34. end
  35. function UIClimbingTowerCtr:GetCurTowerType()
  36. return self.type
  37. end
  38. function UIClimbingTowerCtr:SendTowerInfoReq(type)
  39. local changeTower = type ~= nil
  40. if not type then
  41. type = self.type
  42. end
  43. local needQuery = self:NeedQueryNewDataList(type)
  44. if type == Enum.UnlimitTowerType.ClimbingTower then
  45. if needQuery then
  46. TowerDataMgr:SendClimbingTowerInfoReq(changeTower)
  47. end
  48. elseif type == Enum.UnlimitTowerType.PeakTower then
  49. if needQuery then
  50. PeakTowerDataMgr:SendTowerFightListReq(changeTower)
  51. end
  52. end
  53. return needQuery
  54. end
  55. function UIClimbingTowerCtr:GetLevelsData()
  56. return TowerDataMgr:GetShowLevels()
  57. end
  58. function UIClimbingTowerCtr:CurrentLevel()
  59. self.curPeakTowerFloorIdx = TowerDataMgr:GetCurChallengeLevel()
  60. end
  61. function UIClimbingTowerCtr:GetLevelInfo(levelId)
  62. return TowerDataMgr:FindLevelData(levelId)
  63. end
  64. function UIClimbingTowerCtr:EnterBattle(levelId)
  65. -- TowerDataMgr:EnterBattle(levelId)
  66. TowerDataMgr:SendClimbingTowerBeginReq(levelId)
  67. end
  68. function UIClimbingTowerCtr:SendFriendPassTowerInfo()
  69. if self.tempFriendLevelNum < 1 then
  70. return
  71. end
  72. local startIdx = self.tempFriendLevelNum - 10
  73. if startIdx < 1 then
  74. startIdx = 1
  75. end
  76. TowerDataMgr:SendFriendPassTowerInfoReq(startIdx,self.tempFriendLevelNum)
  77. self.tempFriendLevelNum = self.tempFriendLevelNum - 10
  78. end
  79. function UIClimbingTowerCtr:SetTempFriendLevelNum()
  80. self.tempFriendLevelNum = TowerDataMgr:GetCurChallengeLevel()
  81. end
  82. function UIClimbingTowerCtr:GetPeakTowerListDatas()
  83. return PeakTowerDataMgr:GetTowerFightList()
  84. end
  85. function UIClimbingTowerCtr:RefreshTowerDatas()
  86. if self.type == Enum.UnlimitTowerType.ClimbingTower then
  87. self:SetTempFriendLevelNum()
  88. self:CurrentLevel()
  89. self.showDatas = self:GetLevelsData()
  90. elseif self.type == Enum.UnlimitTowerType.PeakTower then
  91. self.showDatas = self:GetPeakTowerListDatas()
  92. self.curPeakTowerFloorIdx = 1000
  93. for _,v in pairs(self.showDatas) do
  94. local idx = v.floorIdx
  95. local rewardState = v:GetRoleRewardState()
  96. if self.curPeakTowerFloorIdx > idx and not rewardState then
  97. self.curPeakTowerFloorIdx = idx
  98. end
  99. end
  100. end
  101. end
  102. function UIClimbingTowerCtr:GetCurTowerFloorIdx()
  103. return self.curPeakTowerFloorIdx
  104. end
  105. function UIClimbingTowerCtr:GetShowDataLength()
  106. return self.showDatas and #self.showDatas or 0
  107. end
  108. function UIClimbingTowerCtr:GetShowDataByIdx(idx)
  109. return self.showDatas and self.showDatas[idx + 1] or nil
  110. end
  111. function UIClimbingTowerCtr:SendPeakTowerBuyReq(idx)
  112. PeakTowerDataMgr:SendTowerForceWinReq(idx)
  113. end
  114. function UIClimbingTowerCtr:SendChallengeReq(idx)
  115. PeakTowerDataMgr:SendChallengeReq(idx)
  116. end
  117. function UIClimbingTowerCtr:EnterPeakTowerChallengeBattle(idx)
  118. PeakTowerDataMgr:EnterBattle(idx, {})
  119. end
  120. function UIClimbingTowerCtr:ShowPlayerInfo(uid)
  121. ManagerContainer.LuaUIMgr:OpenRoleMessagePanel(uid)
  122. end
  123. function UIClimbingTowerCtr:NeedQueryNewDataList(type)
  124. if type == Enum.UnlimitTowerType.ClimbingTower then
  125. return true
  126. elseif type == Enum.UnlimitTowerType.PeakTower then
  127. return ManagerContainer.DataMgr.PeakTowerDataMgr:NeedRefreshFightList()
  128. end
  129. return false
  130. end
  131. function UIClimbingTowerCtr:QueryCrossFightInfo(idx)
  132. PeakTowerDataMgr:QueryCrossChallengeInfoReq(idx)
  133. end
  134. function UIClimbingTowerCtr:FindLevelIsPassed()
  135. return TowerDataMgr:FindLevelIsPassed()
  136. end
  137. return UIClimbingTowerCtr