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
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
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
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() ]
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())
def _isQuestOfThisGroup(cls, questID): return ranked_helpers.isRankedQuestID(questID)
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)
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())