BattleAccTimeManager.lua 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. local BattleAccTimeManager = class('BattleAccTimeManager', require('DataBase'))
  2. function BattleAccTimeManager:ctor()
  3. self.lastTime = nil
  4. self.remainTime = nil
  5. end
  6. function BattleAccTimeManager:Clear()
  7. end
  8. function BattleAccTimeManager:Destroy()
  9. self:Clear()
  10. self:UnRegisterNetEvents()
  11. end
  12. function BattleAccTimeManager:RegisterNetEvents()
  13. ManagerContainer.NetManager:NetRegister(ProtoMsgId.SC_PLAYER_BATTLE_ACCT_TIME_NTF, self.OnBattleAcctTimeNtf, self)
  14. end
  15. function BattleAccTimeManager:UnRegisterNetEvents()
  16. ManagerContainer.NetManager:UnRegisterPbIdCallback(ProtoMsgId.SC_PLAYER_BATTLE_ACCT_TIME_NTF)
  17. end
  18. function BattleAccTimeManager:InitData(data)
  19. local lastTime = self.lastTime
  20. local remainTime = self.remainTime
  21. if data then
  22. self.lastTime = data.last_record_battle_acce_time
  23. self.remainTime = data.battle_acce_duration
  24. end
  25. local change = (self.lastTime ~= lastTime or self.remainTime ~= remainTime)
  26. if change then
  27. ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.BATTLE_ACC_TIME_CHANGED)
  28. end
  29. end
  30. function BattleAccTimeManager:OnBattleAcctTimeNtf(data)
  31. self:InitData(data)
  32. end
  33. function BattleAccTimeManager:GetValidTime()
  34. if self.lastTime and self.lastTime > 0 and self.remainTime and self.remainTime > 0 then
  35. local remainTime = ManagerContainer.LuaTimerMgr:GetRemainSecondsWithUInt64(self.lastTime + self.remainTime)
  36. return remainTime
  37. end
  38. return nil
  39. end
  40. return BattleAccTimeManager