Exemple #1
0
 def __getRankedBattleQuestsVO(self):
     quests = self._eventsCache.getActiveQuests(lambda q: isRankedDaily(q.getID()))
     label = ''
     totalCount = len(quests)
     completedQuests = len([ q for q in quests.itervalues() if q.isCompleted() ])
     commonQuestsIcon = R.images.gui.maps.icons.library.outline.quests_disabled()
     if totalCount > 0:
         commonQuestsIcon = R.images.gui.maps.icons.library.outline.quests_available()
         diff = totalCount - completedQuests
         isLeagues = self.__rankedController.isAccountMastered()
         isAnyPrimeNow = self.__rankedController.hasAvailablePrimeTimeServers()
         isAnyPrimeLeftTotal = self.__rankedController.hasPrimeTimesTotalLeft()
         isAnyPrimeLeftNextDay = self.__rankedController.hasPrimeTimesNextDayLeft()
         if not isAnyPrimeLeftTotal or not isLeagues:
             label = icons.makeImageTag(backport.image(R.images.gui.maps.icons.library.CancelIcon_1()))
         elif diff > 0:
             if isAnyPrimeNow:
                 label = backport.text(R.strings.menu.hangar_header.battle_quests_label.active(), total=diff)
             else:
                 label = icons.makeImageTag(backport.image(R.images.gui.maps.icons.library.CancelIcon_1()))
         elif not isAnyPrimeLeftNextDay:
             label = icons.makeImageTag(backport.image(R.images.gui.maps.icons.library.ConfirmIcon_1()))
         else:
             label = icons.makeImageTag(backport.image(R.images.gui.maps.icons.library.time_icon()))
     questsVo = [self._headerQuestFormaterVo(totalCount > 0, backport.image(commonQuestsIcon), label, HANGAR_HEADER_QUESTS.QUEST_GROUP_RANKED_DAILY, flag=backport.image(R.images.gui.maps.icons.library.hangarFlag.flag_ranked()), tooltip=TOOLTIPS_CONSTANTS.RANKED_QUESTS_PREVIEW, isTooltipSpecial=True)]
     return self._wrapQuestGroup(HANGAR_HEADER_QUESTS.QUEST_GROUP_RANKED_DAILY, '', questsVo)
Exemple #2
0
 def _packBlocks(self, *args, **kwargs):
     items = super(RankedQuestsPreviewTooltip, self)._packBlocks()
     quests = self.__eventsCache.getActiveQuests(
         lambda quest: isRankedDaily(quest.getID())).values()
     quests.sort(key=lambda q: (q.isCompleted(), not q.isAvailable().
                                isValid, -q.getPriority()))
     season = self.__rankedController.getCurrentSeason()
     if quests and season is not None:
         isLeagues = self.__rankedController.isAccountMastered()
         isAnyPrimeNow = self.__rankedController.hasAvailablePrimeTimeServers(
         )
         isAnyPrimeLeftTotal = self.__rankedController.hasPrimeTimesTotalLeft(
         )
         isGlobalAvailable = not isLeagues or not isAnyPrimeNow or not isAnyPrimeLeftTotal
         diff = len(quests) - _MAX_VISIBLE_QUESTS
         visibleQuests = quests[:_MAX_VISIBLE_QUESTS]
         awardsFormatter = getDefaultAwardFormatter()
         description = self.__packDescription(quests, season, isLeagues,
                                              isAnyPrimeNow,
                                              isAnyPrimeLeftTotal)
         items.append(self.__packHeader(description))
         items.extend([
             self.__packQuest(q, isGlobalAvailable, awardsFormatter)
             for q in visibleQuests
         ])
         items.extend(self.__packBottom(diff))
     return items
 def userFilterFunc(q):
     if q.getType() == EVENT_TYPE.MOTIVE_QUEST and not q.isAvailable().isValid:
         return False
     if q.getType() == EVENT_TYPE.TOKEN_QUEST and isMarathon(q.getID()):
         return False
     if isLinkedSet(q.getGroupID()) and not q.isAvailable().isValid:
         return False
     if isPremium(q.getGroupID()) and not q.isAvailable().isValid:
         return False
     if self.__eventProgression.isActive() and isDailyEpic(q.getGroupID()):
         activeQuests = self.__eventProgression.getActiveQuestIDs()
         if q.getID() not in activeQuests:
             return False
     return False if isRankedSeasonOff and (isRankedDaily(q.getGroupID()) or isRankedPlatform(q.getGroupID())) else filterFunc(q)
Exemple #4
0
 def userFilterFunc(q):
     qGroup = q.getGroupID()
     qIsValid = q.isAvailable().isValid
     qID = q.getID()
     if q.getType() == EVENT_TYPE.MOTIVE_QUEST and not qIsValid:
         return False
     if q.getType() == EVENT_TYPE.TOKEN_QUEST and isMarathon(qID):
         return False
     if isLinkedSet(qGroup) or isPremium(qGroup) and not qIsValid:
         return False
     if not isEpicBattleEnabled and isDailyEpic(qGroup):
         return False
     if isBattleRoyale(qGroup):
         quests = self.__battleRoyaleController.getQuests()
         if qID not in quests:
             return False
     if isMapsTraining(qGroup):
         return q.shouldBeShown()
     return False if isRankedSeasonOff and (
         isRankedDaily(qGroup)
         or isRankedPlatform(qGroup)) else filterFunc(q)