def _updateView(self): if not self._quests: return pageCount = 0 if isAllQuestsCompleted(self._quests): data = self._getViewDataForCompletedMission() elif hasAtLeastOneAvailableQuest(self._quests): data = self._getViewDataForAvailableMission() questsCount = len(self._quests) pageCount = questsCount if questsCount > 1 else 0 if self._quests[self._selectedQuestID].isAvailable().isValid: self.markVisited(self._quests[self._selectedQuestID]) else: data = self._getViewDataForNotAvailableMission() self.as_setDataS(data) self.updatePageCount(pageCount) if self._pageCount: self.as_setPageS(self._selectedQuestID)
def _getBodyData(self): missions = [] for quests in self._questMissions: status = None checkStates = [] groupIsCompleted = isAllQuestsCompleted(quests) groupIsAvailable = groupIsCompleted or hasAtLeastOneAvailableQuest(quests) if not groupIsAvailable: status = formatErrorTextWithIcon(_ms(LINKEDSET.NOT_AVAILABLE)) else: isSingleQuest = len(quests) == 1 if not groupIsCompleted and isSingleQuest: status = _ms(LINKEDSET.MISSION_NOT_COMPLETE) else: checkStates = [ quest.isCompleted() for quest in quests ] missionID = getLinkedSetMissionIDFromQuest(quests[0]) if groupIsAvailable: uiDecoration = RES_ICONS.getLinkedSetMissionItemActive(missionID) else: uiDecoration = RES_ICONS.getLinkedSetMissionItemDisable(missionID) advisable = self.eventsCache.getAdvisableQuests() advisableQuests = [ quest for quest in quests if quest.getID() in advisable ] isCornerEnable = bool(len(settings.getNewCommonEvents(advisableQuests))) missions.append({'eventID': str(missionID), 'title': _ms(LINKEDSET.getMissionName(missionID)), 'status': status, 'isAvailable': True, 'isCornerEnable': isCornerEnable, 'uiPicture': RES_ICONS.getLinkedSetMissionIconItem(missionID), 'uiDecoration': uiDecoration, 'checkStates': checkStates}) result = {'title': _ms(getLocalizedQuestNameForLinkedSetQuest(self.mainQuest)), 'description': _ms(getLocalizedQuestDescForLinkedSetQuest(self.mainQuest)), 'isButtonUseTokenEnabled': self.linkedSet.hasLinkedSetFinishToken(), 'buttonUseTokenLabel': _ms(LINKEDSET.USE_THE_TOKEN), 'uiDecoration': RES_ICONS.MAPS_ICONS_LINKEDSET_LINKEDSET_BGR_LANDING, 'missions': missions} return result
def getCompletedMissionsCount(self): return sum((1 for quests in self._questMissions if isAllQuestsCompleted(quests)))
def isLinkedSetFinished(self): return isAllQuestsCompleted( self.eventsCache.getLinkedSetQuests().itervalues())