def __init__(self, ui): super(_TimerPresenter, self).__init__() arenaVisitor = g_sessionProvider.arenaVisitor if arenaVisitor.gui.isFalloutBattle(): self.__endingSoonTime = FALLOUT_ENDING_SOON_TIME else: self.__endingSoonTime = arenaVisitor.type.getBattleEndingSoonTime() self.__ui = ui self.__arenaPeriodCtrl = ArenaPeriodController()
class _TimerPresenter(ITimersBar): """ On-screen timer. Shared among colored/mono """ sessionProvider = dependency.descriptor(IBattleSessionProvider) def __init__(self, ui): super(_TimerPresenter, self).__init__() arenaVisitor = self.sessionProvider.arenaVisitor if arenaVisitor.gui.isFalloutBattle(): self.__endingSoonTime = FALLOUT_ENDING_SOON_TIME else: self.__endingSoonTime = arenaVisitor.type.getBattleEndingSoonTime() self.__ui = ui self.__arenaPeriodCtrl = ArenaPeriodController() def start(self): self.__arenaPeriodCtrl.startControl( weakref.proxy(self.sessionProvider.getCtx()), weakref.proxy(self.sessionProvider.arenaVisitor)) self.__arenaPeriodCtrl.setViewComponents(weakref.proxy(self), weakref.proxy(self)) self.sessionProvider.addArenaCtrl(self.__arenaPeriodCtrl) def stop(self): self.sessionProvider.removeArenaCtrl(self.__arenaPeriodCtrl) self.__arenaPeriodCtrl.stopControl() self.__arenaPeriodCtrl.clearViewComponents() def setTotalTime(self, totalTime): self.__updateTimer(totalTime) def hideTotalTime(self): pass def setState(self, state): pass def setCountdown(self, state, timeLeft): self.__updateTimer(timeLeft) def hideCountdown(self, state, speed): pass def __updateTimer(self, time): if self.__ui is not None and time >= 0: minutes, seconds = divmod(int(time), 60) self.__ui.updateTimer( _TimerDisplayData(level=int(time <= self.__endingSoonTime), minutes='{:02d}'.format(minutes), seconds='{:02d}'.format(seconds))) return
class _TimerPresenter(ITimersBar): """ On-screen timer. Shared among colored/mono """ def __init__(self, ui): super(_TimerPresenter, self).__init__() arenaVisitor = g_sessionProvider.arenaVisitor if arenaVisitor.gui.isFalloutBattle(): self.__endingSoonTime = FALLOUT_ENDING_SOON_TIME else: self.__endingSoonTime = arenaVisitor.type.getBattleEndingSoonTime() self.__ui = ui self.__arenaPeriodCtrl = ArenaPeriodController() def start(self): self.__arenaPeriodCtrl.startControl(weakref.proxy(g_sessionProvider.getCtx()), weakref.proxy(g_sessionProvider.arenaVisitor)) self.__arenaPeriodCtrl.setViewComponents(weakref.proxy(self), weakref.proxy(self)) g_sessionProvider.addArenaCtrl(self.__arenaPeriodCtrl) def stop(self): g_sessionProvider.removeArenaCtrl(self.__arenaPeriodCtrl) self.__arenaPeriodCtrl.stopControl() self.__arenaPeriodCtrl.clearViewComponents() def setTotalTime(self, totalTime): self.__updateTimer(totalTime) def hideTotalTime(self): pass def setState(self, state): pass def setCountdown(self, state, timeLeft): self.__updateTimer(timeLeft) def hideCountdown(self, state, speed): pass def __updateTimer(self, time): if self.__ui is not None and time >= 0: minutes, seconds = divmod(int(time), 60) self.__ui.updateTimer(_TimerDisplayData(level=int(time <= self.__endingSoonTime), minutes='{:02d}'.format(minutes), seconds='{:02d}'.format(seconds))) return