local BattleAccTimeManager = class('BattleAccTimeManager', require('DataBase')) function BattleAccTimeManager:ctor() self.lastTime = nil self.remainTime = nil end function BattleAccTimeManager:Clear() end function BattleAccTimeManager:Destroy() self:Clear() self:UnRegisterNetEvents() end function BattleAccTimeManager:RegisterNetEvents() ManagerContainer.NetManager:NetRegister(ProtoMsgId.SC_PLAYER_BATTLE_ACCT_TIME_NTF, self.OnBattleAcctTimeNtf, self) end function BattleAccTimeManager:UnRegisterNetEvents() ManagerContainer.NetManager:UnRegisterPbIdCallback(ProtoMsgId.SC_PLAYER_BATTLE_ACCT_TIME_NTF) end function BattleAccTimeManager:InitData(data) local lastTime = self.lastTime local remainTime = self.remainTime if data then self.lastTime = data.last_record_battle_acce_time self.remainTime = data.battle_acce_duration end local change = (self.lastTime ~= lastTime or self.remainTime ~= remainTime) if change then ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.BATTLE_ACC_TIME_CHANGED) end end function BattleAccTimeManager:OnBattleAcctTimeNtf(data) self:InitData(data) end function BattleAccTimeManager:GetValidTime() if self.lastTime and self.lastTime > 0 and self.remainTime and self.remainTime > 0 then local remainTime = ManagerContainer.LuaTimerMgr:GetRemainSecondsWithUInt64(self.lastTime + self.remainTime) return remainTime end return nil end return BattleAccTimeManager