def _onEntered(self): machine = self.getMachine() if machine is None: return else: rewards, data = machine.getRewardsData() if rewards is None: machine.clearSelf() machine.post(StateEvent()) return if data is None: data = {'reason': BattlePassRewardReason.PURCHASE_BATTLE_PASS_LEVELS, 'prevLevel': self.__battlePass.getCurrentLevel()} data['callback'] = partial(machine.post, StateEvent()) chapter = machine.getChosenStyleChapter() _, level = getStyleInfoForChapter(chapter) chosenStyleLevel = level if chapter is None: chapter = self.__battlePass.getChapterByLevel(data['prevLevel']) if 'newLevel' in data: newLevel = data['newLevel'] + 1 if chosenStyleLevel is None and newLevel > self.__battlePass.getChapterLevelInterval(chapter)[1]: level = self.__battlePass.getChapterStyleProgress(chapter) if level is not None: styleToken = get3DStyleProgressToken(self.__battlePass.getSeasonID(), chapter, level) rewards.append(packToken(styleToken)) if chosenStyleLevel is not None: machine.clearChosenStyle() if not rewards: machine.clearSelf() machine.post(StateEvent()) return showBattlePassAwardsWindow(rewards, data) return
def _onEntered(self): machine = self.getMachine() if machine is None: return else: chapter = machine.getChosenStyleChapter() _, machineData = machine.getRewardsData() if machineData is not None: oldLevel = machineData['prevLevel'] newLevel = machineData['newLevel'] oldChapter = self.__battlePass.getChapterByLevel(oldLevel) newChapter = self.__battlePass.getChapterByLevel(newLevel) isMaxLevel = newLevel == self.__battlePass.getMaxLevel() if chapter >= oldChapter and (oldChapter != newChapter or isMaxLevel): machine.post(StateEvent()) return chapter = machine.getChosenStyleChapter() _, level = getStyleInfoForChapter(chapter) if level is None: machine.post(StateEvent()) return prevLevel, _ = self.__battlePass.getChapterLevelInterval(chapter) data = {'reason': BattlePassRewardReason.SELECT_STYLE, 'prevLevel': prevLevel, 'callback': partial(machine.post, StateEvent())} styleToken = get3DStyleProgressToken(self.__battlePass.getSeasonID(), chapter, level) rewards = packToken(styleToken) machine.clearChosenStyle() showBattlePassAwardsWindow([rewards], data) return
def _onEntered(self): machine = self.getMachine() if machine is None: return else: rewards, data = machine.getRewardsData() if rewards is None: machine.clearSelf() machine.post(StateEvent()) return if data is None: data = { 'reason': BattlePassRewardReason.PURCHASE_BATTLE_PASS_LEVELS } data['callback'] = partial(self.__onAwardClose, data.get('chapter'), data.get('reason')) chapter = machine.getChosenStyleChapter() if chapter is not None: _, level = getStyleInfoForChapter(chapter) styleToken = get3DStyleProgressToken( self.__battlePass.getSeasonID(), chapter, level) rewards.append(packToken(styleToken)) machine.clearChapterStyle() if not rewards: machine.clearSelf() machine.post(StateEvent()) return showBattlePassAwardsWindow(rewards, data) return
def _onEntered(self): machine = self.getMachine() if machine is None: return else: chapterID = machine.getChosenStyleChapter() _, level = getStyleInfoForChapter(chapterID) style = getStyleForChapter(chapterID) if style is not None and style.getProgressionLevel( ) == style.getMaxProgressionLevel(): machine.post(StateEvent()) return prevLevel, _ = self.__battlePass.getChapterLevelInterval(chapterID) data = { 'reason': BattlePassRewardReason.STYLE_UPGRADE, 'chapter': chapterID, 'prevLevel': prevLevel, 'callback': partial(machine.post, StateEvent()) } styleToken = get3DStyleProgressToken( self.__battlePass.getSeasonID(), chapterID, level) rewards = packToken(styleToken) machine.clearChapterStyle() showBattlePassAwardsWindow([rewards], data) return
def showSelectDeviceRewardWindow(offerID, giftID, **kwargs): offersProvider = dependency.instance(IOffersDataProvider) offer = offersProvider.getOffer(offerID) if offer is None: _logger.warning('Offer with offerID="%s" is not available.', offerID) return else: gift = offer.getGift(giftID) bonusData = gift.bonus.displayedBonusData if gift.bonus else {} showBattlePassAwardsWindow([bonusData], {'reason': BattlePassRewardReason.SELECT_TROPHY_DEVICE}) return
def continueFlow(self, **kwargs): if self.__state == FinalStates.STARTED: self.__setState(FinalStates.IN_MIDDLE) showBattleVotingResultWindow(isOverlay=True) elif self.__state in (FinalStates.IN_MIDDLE, FinalStates.STOP): vote = kwargs.get('voteOption', 0) if vote == 0: if self.__rewards is not None and self.__data is not None: rewards, data = self.__rewards, self.__data self.__rewards, self.__data = (None, None) if data.get( 'reason' ) == BattlePassRewardReason.PURCHASE_BATTLE_PASS_LEVELS and self.__isEnoughDataForAwardsScreen( rewards): data['callback'] = self.__unlockOverlays showBattlePassAwardsWindow(rewards, data) g_eventBus.addListener( BattlePassEvent.AWARD_VIEW_CLOSE, self.__onAwardViewClose, EVENT_BUS_SCOPE.LOBBY) else: self.__unlockOverlays() self.__setState(FinalStates.STOP) else: self.__unlockOverlays() self.__setState(FinalStates.STOP) else: self.__setState(FinalStates.PRE_FINAL) hasBattlePass = self.__battlePassController.isBought() video = self.__getVideoId(vote, hasBattlePass) showVideo(video, onVideoClosed=self.continueFlow, isAutoClose=True) elif self.__state == FinalStates.PRE_FINAL: self.__addFinalRewardsData() rewards, data = self.__rewards, self.__data self.__rewards, self.__data = (None, None) data['callback'] = self.__unlockOverlays data['isFinalReward'] = True showBattlePassAwardsWindow(rewards, data) g_eventBus.addListener(BattlePassEvent.AWARD_VIEW_CLOSE, self.__onAwardViewClose, EVENT_BUS_SCOPE.LOBBY) return