Exemplo n.º 1
0
    def _markVisited(self, tabIdx, model):
        if not self.__proxyMissionsPage or self.__proxyMissionsPage.getCurrentTabAlias(
        ) != QUESTS_ALIASES.MISSIONS_PREMIUM_VIEW_PY_ALIAS:
            return
        seenQuests = []
        if tabIdx == DailyTabs.QUESTS:
            dailyQuests = self.eventsCache.getDailyQuests().values()
            seenQuests = dailyQuests
        elif tabIdx == DailyTabs.PREMIUM_MISSIONS:
            if _isPremiumPlusAccount():
                premiumQuests = self.eventsCache.getPremiumQuests().values()
                seenQuests = premiumQuests
            with settings.dailyQuestSettings() as dq:
                if isPremiumQuestsEnable(
                ) and not dq.premMissionsTabDiscovered:
                    dq.onPremMissionsTabDiscovered()
                    model.setPremMissionsTabDiscovered(
                        dq.premMissionsTabDiscovered)
        for seenQuest in seenQuests:
            self.eventsCache.questsProgress.markQuestProgressAsViewed(
                seenQuest.getID())

        if isEpicQuestEnabled():
            epicQuest = self.eventsCache.getDailyEpicQuest()
            if epicQuest:
                seenQuests.append(epicQuest)
                dqToken = first(
                    (token for token in epicQuest.accountReqs.getTokens()
                     if token.isDailyQuest()))
                if dqToken:
                    self.itemsCache.items.tokens.markTokenProgressAsViewed(
                        dqToken.getID())
        settings.visitEventsGUI(seenQuests)
        self.__updateMissionsNotification()
Exemplo n.º 2
0
 def invalidateBlocks(self):
     super(QuestsGroupsBuilder, self).invalidateBlocks()
     if self.linkedSet.isLinkedSetEnabled() and (self.__wasLinkedSetShowed or not self.linkedSet.isLinkedSetFinished()):
         self._cache['groupedEvents']['linkedset'] = _LinkedSetQuestsBlockInfo()
         self.__wasLinkedSetShowed = True
     group = getDailyEpicGroup()
     epicBattleQuestsAvailable = self.__epicController.isEnabled() and self.__epicController.isCurrentCycleActive()
     if group and epicBattleQuestsAvailable and EPIC_BATTLE_GROUPS_ID not in self._cache['groupedEvents']:
         self._cache['groupedEvents'][EPIC_BATTLE_GROUPS_ID] = self._createGroupedEventsBlock(group)
     _, isCycleActive = self.__battleRoyaleController.getCurrentCycleInfo()
     battleRoyaleQuestsAvailable = isCycleActive and (self.__battleRoyaleController.isInPrimeTime() or self.__battleRoyaleController.hasPrimeTimesLeftForCurrentCycle())
     group = getDailyBattleRoyaleGroup()
     if group and battleRoyaleQuestsAvailable and BATTLE_ROYALE_GROUPS_ID not in self._cache['groupedEvents']:
         self._cache['groupedEvents'][BATTLE_ROYALE_GROUPS_ID] = self._createGroupedEventsBlock(group)
     if self.__rankedController.getCurrentSeason() is not None:
         rankedDaily = getRankedDailyGroup()
         if rankedDaily and RANKED_DAILY_GROUP_ID not in self._cache['groupedEvents']:
             self._cache['groupedEvents'][RANKED_DAILY_GROUP_ID] = self._createGroupedEventsBlock(rankedDaily)
         rankedPlatform = getRankedPlatformGroup()
         if rankedPlatform and RANKED_PLATFORM_GROUP_ID not in self._cache['groupedEvents']:
             self._cache['groupedEvents'][RANKED_PLATFORM_GROUP_ID] = self._createGroupedEventsBlock(rankedPlatform)
     group = getPremiumGroup()
     if isPremiumQuestsEnable() and 'premium' not in self._cache['groupedEvents'].iterkeys() and group:
         self._cache['groupedEvents']['premium'] = _PremiumGroupedQuestsBlockInfo()
     return
 def setDefaultTab(self, tabIdx):
     dq = settings.getDQSettings()
     if tabIdx is None:
         tabIdx = dq.lastVisitedDQTabIdx if dq.lastVisitedDQTabIdx is not None else DEFAULT_DAILY_TAB
     if tabIdx == DailyTabs.QUESTS and not isDailyQuestsEnable():
         tabIdx = DailyTabs.PREMIUM_MISSIONS
     elif tabIdx == DailyTabs.PREMIUM_MISSIONS and not isPremiumQuestsEnable():
         tabIdx = DailyTabs.QUESTS
     _logger.debug('PremiumMissionsView:setDefaultTab: tabIdx=%s', tabIdx)
     self.__setCurrentTab(tabIdx, self.viewModel)
     return
 def _updatePremiumMissionsModel(self, model, fullUpdate=False):
     _logger.debug('DailyQuestsView::_updatePremiumMissionsModel')
     quests = sorted(self.eventsCache.getPremiumQuests().values(), cmp=premMissionsSortFunc)
     isPremAcc = _isPremiumPlusAccount()
     isEnabled = isPremiumQuestsEnable()
     with model.premiumMissions.transaction() as tx:
         tx.setIsPremiumAccount(isPremAcc)
         tx.setIsEnabled(isEnabled)
         if not isPremAcc or not isEnabled:
             return
         missionsModel = tx.getMissions()
         if not fullUpdate and not needToUpdateQuestsInModel(quests, missionsModel):
             return
         self.__updateQuestsInModel(missionsModel, quests)
         self.__updateMissionVisitedArray(tx.getMissionsCompletedVisited(), quests)
 def invalidateBlocks(self):
     super(QuestsGroupsBuilder, self).invalidateBlocks()
     if self.linkedSet.isLinkedSetEnabled() and (self.__wasLinkedSetShowed or not self.linkedSet.isLinkedSetFinished()):
         self._cache['groupedEvents']['linkedset'] = _LinkedSetQuestsBlockInfo()
         self.__wasLinkedSetShowed = True
     group = getDailyEpicGroup()
     _, isCycleActive = self.__eventProgression.getCurrentCycleInfo()
     frontlineQuestsAvailable = isCycleActive and (self.__eventProgression.isInPrimeTime() or self.__eventProgression.hasPrimeTimesLeft())
     if group and frontlineQuestsAvailable and EVENT_PROGRESSION_GROUPS_ID not in self._cache['groupedEvents']:
         self._cache['groupedEvents'][EVENT_PROGRESSION_GROUPS_ID] = self._createGroupedEventsBlock(group)
     if self.__rankedController.getCurrentSeason() is not None:
         rankedDaily = getRankedDailyGroup()
         if rankedDaily and RANKED_DAILY_GROUP_ID not in self._cache['groupedEvents']:
             self._cache['groupedEvents'][RANKED_DAILY_GROUP_ID] = self._createGroupedEventsBlock(rankedDaily)
         rankedPlatform = getRankedPlatformGroup()
         if rankedPlatform and RANKED_PLATFORM_GROUP_ID not in self._cache['groupedEvents']:
             self._cache['groupedEvents'][RANKED_PLATFORM_GROUP_ID] = self._createGroupedEventsBlock(rankedPlatform)
     group = getPremiumGroup()
     if isPremiumQuestsEnable() and 'premium' not in self._cache['groupedEvents'].iterkeys() and group:
         self._cache['groupedEvents']['premium'] = _PremiumGroupedQuestsBlockInfo()
     return
 def __onGoToQuestsView(self):
     if isPremiumQuestsEnable():
         showDailyQuests(subTab=DailyTabs.PREMIUM_MISSIONS)
 def __updateIsAvailable(self, *args):
     isAvailable = isPremiumQuestsEnable()
     self.viewModel.setIsAvailable(isAvailable)