示例#1
0
 def _packBlocks(self, *args, **kwargs):
     source = self._eventsCache.getQuests()
     quest = source.get(args[0])
     items = super(UnavailableQuestTooltipData, self)._packBlocks()
     questID = quest.getID()
     if questID in self.__eventProgressionController.questIDs:
         eventProgressionOverrides = self.__getEventProgressionOverrides()
         if eventProgressionOverrides is not None:
             items.append(eventProgressionOverrides)
             return items
     if isRankedQuestID(questID):
         rankedOverrides = self.__getRankedOverrides(quest)
         if rankedOverrides:
             items.extend(rankedOverrides)
             return items
     accountRequirementsFormatter = MissionsAccountRequirementsFormatter()
     requirements = accountRequirementsFormatter.format(
         quest.accountReqs, quest)
     reqList = self.__getList(requirements)
     if reqList:
         items.extend(
             self.__getListBlock(
                 TOOLTIPS.QUESTS_UNAVAILABLE_REQUIREMENT_HEADER, reqList))
     if not (quest.vehicleReqs.isAnyVehicleAcceptable()
             or quest.vehicleReqs.getSuitableVehicles()):
         items.extend(self.__getNotVehicle())
     items.append(
         self.__getBootom(
             backport.text(R.strings.tooltips.quests.unavailable.bottom())))
     return items
示例#2
0
 def _bonusDecorator(self, bonus):
     if self.getType() == constants.EVENT_TYPE.TOKEN_QUEST and bonus.getName() == 'oneof':
         if ranked_helpers.isRankedQuestID(self.getID()):
             _, cohort, _ = ranked_helpers.getRankedDataFromTokenQuestID(self.getID())
             bonus.setupIconHandler(BoxBonus.HANDLER_NAMES.RANKED, ('metal', cohort))
             bonus.setTooltipType('rankedSeason')
     return bonus
示例#3
0
    def getLeagueAwards(self):
        isCurrent, seasonInfo = ranked_common.getRankedSeason(
            self.__getSettings().asDict())
        result = []
        percentTotal = 0
        if isCurrent:
            _, _, seasonID, _ = seasonInfo
            seasonQuests = self.eventsCache.getHiddenQuests(
                lambda q: q.getType() == EVENT_TYPE.TOKEN_QUEST and
                ranked_helpers.isRankedQuestID(q.getID()))
            for qID in sorted(seasonQuests):
                season, cohort, percent = ranked_helpers.getRankedDataFromTokenQuestID(
                    qID)
                percentTotal += percent
                if season == seasonID:
                    quest = seasonQuests[qID]
                    awards = []
                    for bonus in quest.getBonuses():
                        awards.extend(bonus.getRankedAwardVOs(iconSize='big'))

                    result.append({
                        'cohortNumber': cohort,
                        'playersPercent': percent,
                        'awards': awards
                    })

        result.append({
            'cohortNumber': 0,
            'playersPercent': 100 - percentTotal,
            'awards': []
        })
        return result
示例#4
0
 def getCurrentModeQuestsForVehicle(self, vehicle, notCompleted=False):
     if self.__battleRoyaleController.isBattleRoyaleMode():
         if vehicle.isOnlyForBattleRoyaleBattles:
             return list(self.__battleRoyaleController.getQuests().values())
     if notCompleted:
         quests = [
             q for q in self.getQuestForVehicle(vehicle) if
             not isDailyEpic(q.getGroupID()) and not isDailyQuest(q.getID())
             and not isPremium(q.getID()) and not isRankedQuestID(q.getID())
             and not isBattleRoyale(q.getGroupID()) and q.shouldBeShown()
             and not q.isCompleted()
         ]
         return quests
     return [
         q for q in self.getQuestForVehicle(vehicle)
         if not isDailyEpic(q.getGroupID()) and not isDailyQuest(q.getID())
         and not isPremium(q.getID()) and not isRankedQuestID(q.getID())
         and not isBattleRoyale(q.getGroupID()) and q.shouldBeShown()
     ]
示例#5
0
 def _bonusDecorator(self, bonus):
     """
         allows to do some additional bonus configuration when they are created in getBonuses.
         Originally is used in RankedQuest to set BoxBonus icon configuration
     """
     if self.getType(
     ) == constants.EVENT_TYPE.TOKEN_QUEST and bonus.getName() == 'oneof':
         if ranked_helpers.isRankedQuestID(self.getID()):
             _, cohort, _ = ranked_helpers.getRankedDataFromTokenQuestID(
                 self.getID())
             bonus.setupIconHandler(BoxBonus.HANDLER_NAMES.RANKED,
                                    ('metal', cohort))
             bonus.setTooltipType('rankedSeason')
     return bonus
def _isAvailableForMode(q):
    return not isDailyEpic(q.getGroupID()) and not isDailyQuest(
        q.getID()) and not isPremium(q.getID()) and not isRankedQuestID(
            q.getID()) and not isBattleRoyale(
                q.getGroupID()) and not isFunRandomQuest(q.getID())
示例#7
0
 def _isQuestOfThisGroup(cls, questID):
     return ranked_helpers.isRankedQuestID(questID)
示例#8
0
 def __getBattleQuestsVO(self, vehicle):
     quests = [ q for q in self._questController.getQuestForVehicle(vehicle) if not isDailyEpic(q.getGroupID()) and not isDailyQuest(q.getID()) and not isPremium(q.getID()) and not isRankedQuestID(q.getID()) ]
     totalCount = len(quests)
     completedQuests = len([ q for q in quests if q.isCompleted() ])
     festivityFlagData = self._festivityController.getHangarQuestsFlagData()
     if totalCount > 0:
         if completedQuests != totalCount:
             label = _ms(MENU.hangarHeaderBattleQuestsLabel(LABEL_STATE.ACTIVE), total=totalCount - completedQuests)
         else:
             label = icons.makeImageTag(RES_ICONS.MAPS_ICONS_LIBRARY_OUTLINE_QUESTS_ALL_DONE)
         commonQuestsIcon = festivityFlagData.icon or RES_ICONS.MAPS_ICONS_LIBRARY_OUTLINE_QUESTS_AVAILABLE
     else:
         commonQuestsIcon = festivityFlagData.iconDisabled or RES_ICONS.MAPS_ICONS_LIBRARY_OUTLINE_QUESTS_DISABLED
         label = ''
     quests = [self._headerQuestFormaterVo(totalCount > 0, commonQuestsIcon, label, HANGAR_HEADER_QUESTS.QUEST_TYPE_COMMON, flag=festivityFlagData.flagBackground, tooltip=TOOLTIPS_CONSTANTS.QUESTS_PREVIEW, isTooltipSpecial=True)]
     return self._wrapQuestGroup(HANGAR_HEADER_QUESTS.QUEST_GROUP_COMMON, '', quests)
示例#9
0
    def _packBlocks(self, *args, **kwargs):
        items = super(QuestsPreviewTooltipData, self)._packBlocks()
        vehicle = g_currentVehicle.item
        quests = sorted([
            q for q in self._questController.getQuestForVehicle(vehicle)
            if not q.isCompleted() and self.__eventProgression.questPrefix
            not in q.getID() and not isDailyQuest(q.getID())
            and not isPremium(q.getID()) and not isRankedQuestID(q.getID())
        ],
                        key=events_helpers.questsSortFunc)
        if quests:
            items.append(
                self._getHeader(
                    len(quests), vehicle.shortUserName,
                    R.strings.tooltips.hangar.header.quests.description.
                    vehicle()))
            for quest in quests:
                bonusNames = []
                for bonus in quest.getBonuses():
                    if bonus.getName() == 'battleToken':
                        bonusNames.extend(
                            _StringTokenBonusFormatter().format(bonus))
                    bonusFormat = bonus.format()
                    if bonusFormat:
                        if isinstance(bonus, CustomizationsBonus):
                            for item in bonus.getCustomizations():
                                itemTypeName = item.get('custType')
                                if itemTypeName == 'projection_decal':
                                    itemTypeName = GUI_ITEM_TYPE_NAMES[
                                        GUI_ITEM_TYPE.PROJECTION_DECAL]
                                elif itemTypeName == 'personal_number':
                                    itemTypeName = GUI_ITEM_TYPE_NAMES[
                                        GUI_ITEM_TYPE.PERSONAL_NUMBER]
                                bonusFmt = _ms(
                                    ITEM_TYPES.customization(itemTypeName))
                                bonusNames.append(bonusFmt)

                        else:
                            bonusNames.extend(bonusFormat.split(', '))

                isAvailable, _ = quest.isAvailable()
                items.append(
                    self._packQuest(quest.getUserName(), bonusNames,
                                    isAvailable))
                if len(items) > _MAX_QUESTS_PER_TOOLTIP:
                    break

            rest = len(quests) - len(items) + 1
            if rest > 0:
                items.append(self._getBottom(rest))
        else:

            def _filter(q):
                return q.getType(
                ) not in constants.EVENT_TYPE.SHARED_QUESTS and not q.isCompleted(
                )

            allQuests = self._eventsCache.getQuests(filterFunc=_filter)
            if allQuests:
                items.append(
                    self._getHeader(
                        len(quests), vehicle.shortUserName,
                        R.strings.tooltips.hangar.header.quests.description.
                        vehicle()))
                items.append(
                    self._getBody(TOOLTIPS.HANGAR_HEADER_QUESTS_EMPTY_VEHICLE))
            else:
                items.append(
                    self._getHeader(
                        len(quests), vehicle.shortUserName,
                        R.strings.tooltips.hangar.header.quests.description()))
                items.append(self._getBody(
                    TOOLTIPS.HANGAR_HEADER_QUESTS_EMPTY))
            items.append(self._getBottom(0))
        return items
 def _filter(q):
     return ranked_helpers.isRankedQuestID(q.getID())