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 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)