Exemplo n.º 1
0
 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
Exemplo n.º 2
0
 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
Exemplo n.º 3
0
 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
Exemplo n.º 4
0
 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
Exemplo n.º 5
0
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