Пример #1
0
def __fillToysBonuses(rewardValue, alwaysVisibleBonuses, bonuses,
                      postponeMegaToys):
    toys, megaToys = __getToysSortedByRankAndCount(rewardValue)
    rewardType = CurrentNYConstants.TOYS
    toysBonuses = getNonQuestBonuses(rewardType, toys) if toys else []
    megaToysBonuses = getNonQuestBonuses(rewardType,
                                         megaToys) if megaToys else []
    if postponeMegaToys:
        bonuses += toysBonuses
        alwaysVisibleBonuses += megaToysBonuses
    else:
        bonuses += megaToysBonuses + toysBonuses
Пример #2
0
    def __getRewards(self, geometryID, stage):
        config = self.mapsTrainingController.getConfig()
        finalBonuses = []
        mapRewardsConfig = config['rewards'][geometryID][stage]
        for rewardName, rewardData in mapRewardsConfig.iteritems():
            finalBonuses.extend(getNonQuestBonuses(rewardName, rewardData))

        return finalBonuses
Пример #3
0
def getRewardsBonuses(rewards,
                      size='big',
                      awardsCount=_DEFAULT_DISPLAYED_AWARDS_COUNT):
    formatter = BonusNameQuestsBonusComposer(awardsCount,
                                             getPackRentVehiclesAwardPacker())
    bonuses = []
    if rewards:
        for bonusType, bonusValue in rewards.iteritems():
            if bonusType == 'vehicles' and isinstance(bonusValue, list):
                for vehicleData in bonusValue:
                    bonuses.extend(getNonQuestBonuses(bonusType, vehicleData))

            bonus = getNonQuestBonuses(bonusType, bonusValue)
            bonuses.extend(bonus)

    formattedBonuses = formatter.getFormattedBonuses(bonuses, size)
    return formattedBonuses
def getFormattedBonusesForYearAwardsWindow(
        rawRewards, maxRewardsCount=DEFAULT_REWARDS_COUNT):
    bonuses = []
    composer = _BonusNameRankedAwardsComposer(maxRewardsCount)
    for name, value in rawRewards.iteritems():
        bonuses.extend(getNonQuestBonuses(name, value))

    return composer.getFormattedBonuses(
        bonuses, AWARDS_SIZES.BIG, compareMethod=rankedYearAwardsSortFunction)
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
 def setRecord(self, result, reusable):
     _, rewardsConfig, playerProgress = self._getScenarioData(
         result, reusable)
     bonus = getMapsTrainingAwards(
         rewardsConfig, playerProgress['prevBest'], playerProgress['level'],
         result['personal']['avatar']['mt_mapComplete'])
     for rewardName, rewardData in bonus.iteritems():
         for item in getNonQuestBonuses(rewardName, rewardData):
             self.addNextComponent(base.DirectStatsItem('', item))
Пример #7
0
    def _convertNonQuestBonuses(bonuses):
        rewards = []
        for bonus in bonuses:
            items = []
            for key, value in bonus.iteritems():
                items.extend(getNonQuestBonuses(key, value))

            rewards.extend(items)

        return rewards
Пример #8
0
def getProgressiveRewardBonuses(rewards,
                                size='big',
                                maxAwardCount=_DEFAULT_DISPLAYED_AWARDS_COUNT,
                                packBlueprints=False,
                                ctx=None):
    preparationRewardsCurrency(rewards)
    if packBlueprints:
        _packBlueprints(rewards)
    specialRewardType = ''
    formatter = LootBoxBonusComposer(maxAwardCount, getLootboxesAwardsPacker())
    bonuses = []
    alwaysVisibleBonuses = []
    if rewards:
        for bonusType, bonusValue in rewards.iteritems():
            if bonusType == 'blueprints':
                bonus = getNonQuestBonuses(bonusType,
                                           bonusValue,
                                           ctx={'isPacked': packBlueprints})
                blueprintCongrats = _checkAndFillBlueprints(
                    bonus, alwaysVisibleBonuses, bonuses)
                if blueprintCongrats:
                    specialRewardType = blueprintCongrats
            if bonusType == 'premium' or bonusType == 'premium_plus':
                splitDays = splitPremiumDays(bonusValue)
                for day in splitDays:
                    bonus = getNonQuestBonuses(bonusType, day)
                    bonuses.extend(bonus)

            if bonusType in (CrewBonusTypes.CREW_SKIN_BONUSES, 'vehicles'):
                alwaysVisibleBonuses.extend(
                    getNonQuestBonuses(bonusType, bonusValue))
            if bonusType == 'items':
                bonus = getNonQuestBonuses(bonusType, bonusValue)
                _checkAndFillItems(bonus, alwaysVisibleBonuses, bonuses)
            bonus = getNonQuestBonuses(bonusType, bonusValue, ctx)
            bonuses.extend(bonus)

        bonuses.sort(key=_keySortOrder)
        alwaysVisibleBonuses.sort(key=_keySortOrder)
    formattedBonuses = formatter.getVisibleFormattedBonuses(
        bonuses, alwaysVisibleBonuses, size)
    return (formattedBonuses, specialRewardType)
Пример #9
0
    def _getBonuses(self):
        bonuses = []
        if self.__bonuses is None:
            return bonuses
        else:
            for key, value in self.__bonuses.items():
                bonus = getNonQuestBonuses(key, value)
                if bonus:
                    bonuses.extend(bonus)

            return bonuses
Пример #10
0
def getRoyaleBonusesFromDict(rewards, size='big'):
    alwaysVisibleBonuses = []
    commonBonuses = []
    for bonusType, bonusValue in rewards.iteritems():
        commonBonuses.extend(getNonQuestBonuses(bonusType, bonusValue))

    commonBonuses.sort(key=_keySortOrder)
    alwaysVisibleBonuses.sort(key=_keySortOrder)
    formatter = LootBoxBonusComposer(ROYALE_POSTBATTLE_REWARDS_COUNT,
                                     getRoyaleAwardsPacker())
    formattedBonuses = formatter.getVisibleFormattedBonuses(
        commonBonuses, alwaysVisibleBonuses, size)
    return formattedBonuses
Пример #11
0
def getFormattedBonusesForYearAwardsWindow(
        rawRewards,
        maxRewardsCount=DEFAULT_REWARDS_COUNT,
        selectionsLeft=None):
    bonuses = []
    context = {
        'selectionsLeft': selectionsLeft
    } if selectionsLeft is not None else None
    composer = _BonusNameRankedAwardsComposer(maxRewardsCount, context)
    for name, value in rawRewards.iteritems():
        bonuses.extend(getNonQuestBonuses(name, value))

    return composer.getFormattedBonuses(
        bonuses, AWARDS_SIZES.BIG, compareMethod=rankedYearAwardsSortFunction)
Пример #12
0
def wrap(data):
    result = {}
    for optionType, optionTypeItems in data.iteritems():
        typeBonuses = {}
        for optionID, optionItems in optionTypeItems.iteritems():
            optionItemsList = []
            items, limit = optionItems
            for itemName, itemValue in items.iteritems():
                optionItemsList.extend(getNonQuestBonuses(itemName, itemValue))

            typeBonuses[optionID] = {'items': optionItemsList, 'limit': limit}

        result[optionType] = typeBonuses

    return result
Пример #13
0
def getSeniorityAwardsRewardsAndBonuses(
        rewards,
        size=AWARDS_SIZES.BIG,
        maxAwardCount=_DEFAULT_DISPLAYED_AWARDS_COUNT,
        excluded=(),
        sortKey=None,
        itemsCache=None):
    preparationRewardsCurrency(rewards)
    formatter = LootBoxBonusComposer(maxAwardCount, getSeniorityAwardsPacker())
    alwaysVisibleBonuses = []
    bonuses = []
    vehicles = []
    currencies = {}
    if rewards:
        for rewardType, rewardValue in rewards.iteritems():
            if rewardType in excluded:
                continue
            if rewardType == 'vehicles':
                vehicles = [
                    vehCD for vehiclesDict in rewardValue
                    for vehCD in vehiclesDict
                    if vehiclesDict[vehCD].get('compensatedNumber', 0) < 1
                ]
            if rewardType == 'currencies':
                currencies = {
                    name: value['count']
                    for name, value in rewardValue.items()
                }
            bonuses.extend(getNonQuestBonuses(rewardType, rewardValue))

    formattedBonuses = formatter.getVisibleFormattedBonuses(
        bonuses, alwaysVisibleBonuses, size, sortKey=sortKey)
    orderedVehicles = []
    for vehicleCD in vehicles:
        vehicle = itemsCache.items.getItemByCD(vehicleCD)
        orderedVehicles.append(
            VehicleAward(vehicleCD, vehicle.level, vehicle.name,
                         vehicle.userName))

    return SeniorityAwards(formattedBonuses, orderedVehicles, currencies)
Пример #14
0
def __getLootboxBonusesData(rewards, postponeMegaToys=False):
    preparationRewardsCurrency(rewards)
    specialRewardType = ''
    bonuses = []
    alwaysVisibleBonuses = []
    for rewardType, rewardValue in rewards.iteritems():
        if rewardType == 'vehicles' and isinstance(rewardValue, list):
            for vehicleData in rewardValue:
                bonus = getNonQuestBonuses(rewardType, vehicleData)
                if checkAndFillVehicles(bonus,
                                        alwaysVisibleBonuses,
                                        bonuses,
                                        onlyVideoVehicle=False):
                    specialRewardType = LootCongratsTypes.CONGRAT_TYPE_VEHICLE

        if rewardType == 'customizations':
            bonus = getNonQuestBonuses(rewardType, rewardValue)
            if checkAndFillCustomizations(bonus, alwaysVisibleBonuses,
                                          bonuses):
                specialRewardType = LootCongratsTypes.CONGRAT_TYPE_STYLE
        if rewardType == 'tokens':
            bonus = getNonQuestBonuses(rewardType, rewardValue)
            if checkAndFillTokens(bonus, alwaysVisibleBonuses, bonuses):
                specialRewardType = LootCongratsTypes.CONGRAT_TYPE_TANKMAN
        if rewardType == 'blueprints':
            bonuses += getNonQuestBonuses(rewardType,
                                          rewardValue,
                                          ctx={'isPacked': True})
        if rewardType == 'slots' and 'vehicles' in rewards:
            alwaysVisibleBonuses += getNonQuestBonuses(rewardType, rewardValue)
        if rewardType == CurrentNYConstants.TOYS:
            __fillToysBonuses(rewardValue, alwaysVisibleBonuses, bonuses,
                              postponeMegaToys)
        bonuses += getNonQuestBonuses(rewardType, rewardValue)

    return (bonuses, alwaysVisibleBonuses, specialRewardType)
def awardsFactory(items):
    bonuses = []
    for key, value in items.iteritems():
        bonuses.extend(getNonQuestBonuses(key, value))

    return bonuses
Пример #16
0
    def showAdditionalRewardsTooltip(self, cmd):
        bonuses = []
        for key, value in cmd.rewards.iteritems():
            bonuses.extend(getNonQuestBonuses(key, value))

        self.__getTooltipMgr().onCreateWulfTooltip(TC.ADDITIONAL_REWARDS, [bonuses], cmd.x, cmd.y)