예제 #1
0
 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)
예제 #2
0
 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
예제 #3
0
 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
예제 #5
0
 def __fillViewModel(self):
     with self.viewModel.transaction() as vm:
         vm.setTimeLeft(
             formatSeasonLeftTime(self.__mapboxCtrl.getCurrentSeason()))
         vm.setStatusNotActive(self.__getNotActiveStatus())
         setBattlePassState(self.viewModel)