コード例 #1
0
def __composeBonuses(bonuses, alwaysVisibleBonuses, maxAwardCount):
    bonuses = splitBonuses(bonuses)
    alwaysVisibleBonuses = splitBonuses(alwaysVisibleBonuses)
    if len(bonuses) + len(alwaysVisibleBonuses) > maxAwardCount:
        bonusesLimit = max(0, maxAwardCount - len(alwaysVisibleBonuses) - 1)
        mergedBonus = SimpleBonus(MERGED_BONUS_NAME, bonuses[bonusesLimit:])
        return bonuses[:bonusesLimit] + alwaysVisibleBonuses + [mergedBonus]
    return bonuses + alwaysVisibleBonuses
コード例 #2
0
 def _updateRewards(self, rewards, bonuses):
     self._tooltips.clear()
     packer = getNewYearBonusPacker()
     bonuses = sorted(splitBonuses(bonuses), key=_keyBonusSortOrder)
     rewards.clear()
     packBonusModelAndTooltipData(bonuses, rewards, packer, self._tooltips)
     rewards.invalidate()
コード例 #3
0
 def hideInvisible(cls, bonuses, needSplit=False):
     if needSplit:
         bonuses = mergeBonuses(bonuses)
         bonuses = splitBonuses(bonuses)
     bonuses = list(
         filter(cls.__bonusesLayoutController.getIsVisible, bonuses))
     return bonuses
コード例 #4
0
def composeBonuses(rewards, ctx=None):
    bonuses = []
    for reward in rewards:
        for key, value in reward.iteritems():
            bonuses.extend(getNonQuestBonuses(key, value, ctx))

    bonuses = mergeBonuses(bonuses)
    bonuses = splitBonuses(bonuses)
    return bonuses
コード例 #5
0
 def __makeRewardsGroup(self, renderer):
     rewardModelsList = renderer.rewardsGroup.getItems()
     rewardModelsList.clear()
     self.__tooltips.clear()
     self.__bonuses = copy.deepcopy(self.__levelInfo.getBonuses())
     extendBonusesByLevel(self.__bonuses, self.__levelInfo.level())
     self.__bonuses = splitBonuses(self.__bonuses)
     self.__bonuses.sort(key=nyBonusGFSortOrder)
     packBonusModelAndTooltipData(self.__bonuses, rewardModelsList,
                                  getNewYearBonusPacker(), self.__tooltips)
コード例 #6
0
 def __getBonuses(self, level):
     questsProgressData = self.__ctx[
         'reusableInfo'].personal.getQuestsProgress()
     bonuses = after_battle_reward_view_helpers.getQuestBonuses(
         questsProgressData,
         (self.__battleRoyaleController.TOKEN_QUEST_ID, ),
         self.__battleRoyaleController.TOKEN_QUEST_ID + str(level))
     bonuses = mergeBonuses(bonuses)
     bonuses = splitBonuses(bonuses)
     return bonuses
コード例 #7
0
 def __convertRewards(self, ctx):
     self.__rewards = ctx.get('rewards', [])
     self.__rewards = splitBonuses(self.__rewards)
     crewRewards = ctx.get('crewRewards', None)
     if crewRewards:
         self.__rewards.append(crewRewards)
     self.__rewards = self.__sortRewardsByPriority(self.__rewards)
     formatter = getMarathonRewardScreenPacker()
     self.__rewards = formatter.format(self.__rewards)
     return
コード例 #8
0
 def __setRewards(self):
     bonuses = self.__rewards[self.__currentLevel]
     extendBonusesByLevel(bonuses, self.__currentLevel)
     bonuses = splitBonuses(bonuses)
     hugeBonuses, otherBonuses = _splitHugeBonuses(bonuses)
     with self.getViewModel().transaction() as model:
         self.__tooltips.clear()
         self.__fillRewardsList(rewardsList=model.hugeRewards.getItems(),
                                bonuses=hugeBonuses,
                                sortMethod=_hugeBonusesSortOrder,
                                packer=getNewYearBonusPacker())
         self.__fillRewardsList(rewardsList=model.rewards.getItems(),
                                bonuses=otherBonuses,
                                sortMethod=nyBonusGFSortOrder,
                                packer=getNewYearBonusPacker())
         model.setLevel(self.__currentLevel)
コード例 #9
0
 def createToolTipContent(self, event, ctID):
     if ctID == R.views.lobby.new_year.tooltips.NyVehicleSlotTooltip():
         tooltipData = self.__tooltips.get(event.getArgument('tooltipId'))
         if tooltipData is None:
             return
         return NyVehicleSlotTooltip(*tooltipData.specialArgs)
     elif ctID == R.views.lobby.new_year.tooltips.NyShardsTooltip():
         return NyShardsTooltip()
     elif ctID == R.views.lobby.tooltips.AdditionalRewardsTooltip(
     ) and self.viewStatus == ViewStatus.LOADED:
         showCount = int(event.getArgument('showedCount'))
         bonuses = splitBonuses(self.__rewards[self.__currentLevel])
         _, secondaryBonuses = _splitHugeBonuses(bonuses)
         return AdditionalRewardsTooltip(
             sorted(secondaryBonuses, key=nyBonusGFSortOrder)[showCount:],
             getNewYearBonusPacker())
     else:
         return super(NyAtmosphereLevelUpView,
                      self).createToolTipContent(event, ctID)
コード例 #10
0
 def __setBonuses(self, model):
     questsBonuses = self.__data[BRSections.PERSONAL][
         BRSections.REWARDS].get(BRSections.BONUSES, [])
     if not questsBonuses:
         return
     bonusesModel = model.getBonuses()
     bonusesModel.clear()
     bonuses = [
         bonus for questBonuses in questsBonuses for bonus in questBonuses
     ]
     bonuses = [
         bonus for bonus in mergeBonuses(bonuses)
         if bonus.getName() not in _CURRENCIES
     ]
     bonuses = splitBonuses(bonuses)
     packBonusModelAndTooltipData(bonuses,
                                  bonusesModel,
                                  tooltipData=self.__tooltipsData)
     bonusesModel.invalidate()
コード例 #11
0
    def __getBonuses(self, prevLevel, currentLevel):
        questsProgressData = self.__ctx[
            'reusableInfo'].personal.getQuestsProgress()
        if currentLevel == self.__epicController.getMaxPlayerLevel():
            bonuses = getFinishBadgeBonuses(
                questsProgressData, self.__epicController.FINAL_BADGE_QUEST_ID)
        else:
            bonuses = []
        bonuses.extend(
            getQuestBonuses(
                questsProgressData, (self.__epicController.TOKEN_QUEST_ID, ),
                self.__epicController.TOKEN_QUEST_ID + str(currentLevel)))
        if self.__battlePass.getCurrentLevel(
        ) == self.__battlePass.getMaxLevel():
            excluded = [BattleRewardItemModel.BATTLE_PASS_POINTS]
            bonuses = [b for b in bonuses if b.getName() not in excluded]
        for level in range(prevLevel + 1, currentLevel + 1):
            bonuses.extend(self.__getAbilityPointsRewardBonus(level))

        bonuses = mergeBonuses(bonuses)
        bonuses = splitBonuses(bonuses)
        return bonuses
コード例 #12
0
 def sortBonuses(cls, bonuses):
     bonuses = mergeBonuses(bonuses)
     bonuses = splitBonuses(bonuses)
     bonuses.sort(key=cls.__bonusesLayoutController.getPriority,
                  reverse=True)
     return bonuses