GuildWarMatchMapData.lua 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. local GuildWarMatchMapData = class('GuildWarMatchMapData')
  2. local MatchMapState = Enum.GuildWarMatchMapState
  3. function GuildWarMatchMapData:ctor()
  4. end
  5. function GuildWarMatchMapData:Clear()
  6. self.curMatchMapState = nil
  7. self.beign1 = nil
  8. self.end1 = nil
  9. self.beign2 = nil
  10. self.end2 = nil
  11. self.beign3 = nil
  12. self.end3 = nil
  13. self.matchMap = nil
  14. end
  15. function GuildWarMatchMapData:Dispose()
  16. self.curMatchMapState = nil
  17. self.beign1 = nil
  18. self.end1 = nil
  19. self.beign2 = nil
  20. self.end2 = nil
  21. self.beign3 = nil
  22. self.end3 = nil
  23. self.matchMap = nil
  24. end
  25. function GuildWarMatchMapData:InitData(msgData)
  26. if not msgData then
  27. self:Clear()
  28. return
  29. end
  30. self.curMatchMapState = msgData.cur_stge
  31. self.ready1 = msgData.tournament_prepare
  32. self.beign1 = msgData.tournament_begin
  33. self.end1 = msgData.tournament_end
  34. self.ready2 = msgData.semifinals_prepare
  35. self.beign2 = msgData.semifinals_begin
  36. self.end2 = msgData.semifinals_end
  37. self.ready3 = msgData.finals_prepare
  38. self.beign3 = msgData.finals_begin
  39. self.end3 = msgData.finals_end
  40. local matchMap = nil
  41. if msgData.data then
  42. matchMap = {}
  43. for _, value in pairs(msgData.data) do
  44. local data =
  45. {
  46. idx = value.battle_index,
  47. id1 = value.guild1_id,
  48. name1 = value.guild1_name,
  49. badge1 = value.guild1_badge,
  50. id2 = value.guild2_id,
  51. name2 = value.guild2_name,
  52. badge2 = value.guild2_badge,
  53. state = value.state,
  54. isWin = value.win_guild,
  55. }
  56. matchMap[data.idx] = data
  57. end
  58. end
  59. self.matchMap = matchMap
  60. end
  61. function GuildWarMatchMapData:HasValid()
  62. local luaServerTime = ManagerContainer.LuaTimerMgr:CurLuaServerTime()
  63. local time1, time2
  64. if self.curMatchMapState == MatchMapState.Start then
  65. time1 = self.ready1
  66. elseif self.curMatchMapState == MatchMapState.OneReady then
  67. time1 = self.beign1
  68. time2 = self.ready1
  69. elseif self.curMatchMapState == MatchMapState.One then
  70. time1 = self.end1
  71. time2 = self.beign1
  72. elseif self.curMatchMapState == MatchMapState.TwoWait then
  73. time1 = self.ready2
  74. time2 = self.end1
  75. elseif self.curMatchMapState == MatchMapState.TwoReady then
  76. time1 = self.beign2
  77. time2 = self.ready2
  78. elseif self.curMatchMapState == MatchMapState.Two then
  79. time1 = self.end2
  80. time2 = self.beign2
  81. elseif self.curMatchMapState == MatchMapState.ThreeWait then
  82. time1 = self.ready3
  83. time2 = self.end2
  84. elseif self.curMatchMapState == MatchMapState.ThreeReady then
  85. time1 = self.beign3
  86. time2 = self.ready3
  87. elseif self.curMatchMapState == MatchMapState.Three then
  88. time1 = self.end3
  89. time2 = self.beign3
  90. elseif self.curMatchMapState == MatchMapState.Result then
  91. return luaServerTime > self.end3
  92. elseif self.curMatchMapState == MatchMapState.End then
  93. return luaServerTime > self.end3
  94. else
  95. time1 = self.beign1
  96. end
  97. if time1 then
  98. if time1 > luaServerTime then
  99. if time2 then
  100. return time2 <= luaServerTime
  101. else
  102. return true
  103. end
  104. end
  105. end
  106. return false
  107. end
  108. function GuildWarMatchMapData:GetNextRefreshRemainTime()
  109. local luaServerTime = ManagerContainer.LuaTimerMgr:CurLuaServerTime()
  110. local remainTime = nil
  111. if luaServerTime <= self.ready1 then
  112. remainTime = self.ready1 - luaServerTime
  113. elseif luaServerTime <= self.beign1 then
  114. remainTime = self.beign1 - luaServerTime
  115. elseif luaServerTime <= self.end1 then
  116. remainTime = self.end1 - luaServerTime
  117. elseif luaServerTime <= self.ready2 then
  118. remainTime = self.ready2 - luaServerTime
  119. elseif luaServerTime <= self.beign2 then
  120. remainTime = self.beign2 - luaServerTime
  121. elseif luaServerTime <= self.end2 then
  122. remainTime = self.end2 - luaServerTime
  123. elseif luaServerTime <= self.ready3 then
  124. remainTime = self.ready3 - luaServerTime
  125. elseif luaServerTime <= self.beign3 then
  126. remainTime = self.beign3 - luaServerTime
  127. elseif luaServerTime <= self.end3 then
  128. remainTime = self.end3 - luaServerTime
  129. end
  130. if remainTime then
  131. remainTime = remainTime / 1000
  132. if type(remainTime) == 'userdata' then
  133. remainTime = #remainTime
  134. end
  135. remainTime = remainTime + 3
  136. end
  137. return remainTime
  138. end
  139. function GuildWarMatchMapData:GetBattleDataById(id)
  140. return self.matchMap and self.matchMap[id] or nil
  141. end
  142. function GuildWarMatchMapData:GetCurMatchMapState()
  143. return self.curMatchMapState
  144. end
  145. return GuildWarMatchMapData