def __onGameModeUpdated(self, *_): statusNotActive = self.__getRankedNotActiveStatus() timeLeft = self.__getTimeLeft() with self.viewModel.transaction() as vm: vm.setEventName(self.__getRankedName()) vm.setStatusNotActive(statusNotActive) vm.setTimeLeft(str(timeLeft)) self.__fillRankedWidget(vm.widget) setBattlePassState(self.viewModel)
def __fillViewModel(self): with self.viewModel.transaction() as vm: self.__resetViewModel(vm) currentSeason = self.__epicController.getCurrentSeason() nextSeason = self.__epicController.getNextSeason() season = currentSeason or nextSeason currentTime = time_utils.getCurrentLocalServerTimestamp() vm.setConditions( backport.text( R.strings.mode_selector.mode.epicBattle.condition(), levels=toRomanRangeString( self.__epicController.getValidVehicleLevels()))) vm.setDescription( backport.text( R.strings.mode_selector.mode.epicBattle.description())) if season is None: return if season.hasActiveCycle(currentTime): vm.setStatusActive( backport.text( R.strings.mode_selector.mode.epicBattle.seasonActive(), cycle=int2roman(currentSeason.getCycleInfo(). getEpicCycleNumber()))) self._addReward(ModeSelectorRewardID.CREDITS) self._addReward(ModeSelectorRewardID.EXPERIENCE) timeLeftStr = '' cycleInfo = season.getCycleInfo() if cycleInfo is not None: timeLeftStr = time_formatters.getTillTimeByResource( cycleInfo.endDate - currentTime, R.strings.menu.Time.timeLeftShort, removeLeadingZeros=True) vm.setTimeLeft(timeLeftStr) else: cycleInfo = season.getNextByTimeCycle(currentTime) if cycleInfo is not None: if cycleInfo.announceOnly: vm.setStatusNotActive( backport.text(R.strings.mode_selector.mode. epicBattle.cycleSoon(), cycle=int2roman( cycleInfo.getEpicCycleNumber()))) else: vm.setStatusNotActive( backport.text(R.strings.mode_selector.mode. epicBattle.cycleNext(), cycle=int2roman( cycleInfo.getEpicCycleNumber()), date=backport.getShortDateFormat( cycleInfo.startDate))) self.viewModel.setBattlePassState(BattlePassState.NONE) else: vm.setStatusNotActive( backport.text(R.strings.mode_selector.mode.epicBattle. seasonEnd())) setBattlePassState(self.viewModel) return
def _onInitializing(self): super(RandomModeSelectorItem, self)._onInitializing() self.setPopoverState(False) if self._bootcamp.isInBootcamp(): self.viewModel.setIsDisabled(False) g_eventBus.addListener(ModeSelectorPopoverEvent.NAME, self.randomBattlePopoverStatusChangeCallback) self._addReward(ModeSelectorRewardID.CREDITS) self._addReward(ModeSelectorRewardID.EXPERIENCE) setBattlePassState(self.viewModel)
def __fillViewModel(self): with self.viewModel.transaction() as vm: season = self.__battleRoyaleController.getCurrentSeason() or self.__battleRoyaleController.getNextSeason() currTime = time_utils.getCurrentLocalServerTimestamp() if season is None: return self.__resetViewModel(vm) if season.hasActiveCycle(currTime): if self.__battleRoyaleController.isEnabled(): timeLeftStr = time_utils.getTillTimeString(season.getCycleEndDate() - currTime, EPIC_BATTLE.STATUS_TIMELEFT, removeLeadingZeros=True) vm.setTimeLeft(timeLeftStr) self._addReward(ModeSelectorRewardID.CREDITS) self._addReward(ModeSelectorRewardID.OTHER) else: cycleInfo = season.getNextByTimeCycle(currTime) if cycleInfo is not None: if cycleInfo.announceOnly: text = backport.text(R.strings.battle_royale.modeSelector.cycleIsComing()) else: text = backport.text(R.strings.battle_royale.modeSelector.cycleNotStarted(), date=backport.getShortDateFormat(cycleInfo.startDate)) vm.setStatusNotActive(text) vm.setTimeLeft('') setBattlePassState(self.viewModel) return
def __fillViewModel(self): with self.viewModel.transaction() as vm: vm.setTimeLeft( formatSeasonLeftTime(self.__mapboxCtrl.getCurrentSeason())) vm.setStatusNotActive(self.__getNotActiveStatus()) setBattlePassState(self.viewModel)