Ejemplo 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()
 def _updateEpicQuestModel(self, model, fullUpdate=False):
     _logger.debug('DailyQuestsView::_updateEpicQuestModel')
     epicQuest = self.eventsCache.getDailyEpicQuest()
     isEnabled = isEpicQuestEnabled() and epicQuest is not None
     with model.epicQuest.transaction() as tx:
         tx.setIsEnabled(isEnabled)
         if not isEnabled:
             _logger.info('Daily Quest Screen: Epic quest is not enabled.')
             return
         epicQuestId = epicQuest.getID()
         dqToken = first((t for t in epicQuest.accountReqs.getTokens() if t.isDailyQuest()))
         if dqToken is None:
             _logger.error('Epic quest does not require any dq tokens to complete.')
             return
         isTokeCountChanged = self.itemsCache.items.tokens.hasTokenCountChanged(dqToken.getID())
         isTokenNeededChanged = dqToken.getNeededCount() != tx.getTotal()
         isEpicQuestIdChanged = epicQuestId != tx.getId()
         if not fullUpdate and not isTokeCountChanged and not isEpicQuestIdChanged and not isTokenNeededChanged:
             return
         _logger.debug('DailyQuestsView::__updateQuestInModel')
         lastViewedTokenCount = self.itemsCache.items.tokens.getLastViewedProgress(dqToken.getID())
         currTokenCount = self.eventsCache.questsProgress.getTokenCount(dqToken.getID())
         earned = currTokenCount - lastViewedTokenCount if currTokenCount >= lastViewedTokenCount else currTokenCount
         tx.setId(epicQuestId)
         tx.setTotal(dqToken.getNeededCount())
         tx.setCurrent(currTokenCount)
         tx.setEarned(earned)
         epicQuestBonusesModel = tx.getBonuses()
         epicQuestBonusesModel.clear()
         self.__tooltipData[epicQuestId] = {}
         packQuestBonusModelAndTooltipData(getDefaultBonusPacker(), epicQuestBonusesModel, epicQuest, tooltipData=self.__tooltipData[epicQuestId])
         epicQuestBonusesModel.invalidate()
     return