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