def _showAwardsFor(self, quests): if isPopupsWindowsOpenDisabled(): return if quests: quests.sort(key=lambda q: (getLinkedSetMissionIDFromQuest(q), getLinkedSetQuestID(q))) messages = [] for quest in quests: winMessage = self._getQuestWinMessage(quest) if self.isFinalQuest(quest): messages.append(self._getLinkedSetWinMessage()) self._appendMessageWithViewCallback( messages, winMessage, quest, True) hasHint = hasLocalizedQuestHintNameForLinkedSetQuest(quest) self._appendMessageWithViewCallback(messages, winMessage, quest, not hasHint) if hasHint: self._appendMessageWithViewCallback( messages, self._getQuestHintMessage(quest), quest, True) g_eventBus.handleEvent(events.LoadViewEvent( SFViewLoadParams(VIEW_ALIAS.LINKEDSET_HINTS), ctx={'messages': messages}), scope=EVENT_BUS_SCOPE.LOBBY)
def _getQuestHintMessage(self, quest): return {'icon': 'num{}{}'.format(getLinkedSetMissionIDFromQuest(quest), getLinkedSetQuestID(quest)), 'title': getLocalizedQuestHintNameForLinkedSetQuest(quest), 'description': makeHtmlString(_HMTL_STRING_FORMAT_PATH, _HMTL_STRING_FORMAT_HINT_DESC_KEY, {'msg': getLocalizedQuestHintDescForLinkedSetQuest(quest)}), 'buttonLabel': _ms(LINKEDSET.CONTINUE), 'back': 'blue', 'soundID': _SNDID_BONUS}
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 isQuestBackgroundIsMovie(self, quest): return getLinkedSetMissionIDFromQuest(quest) == 2
def viewCallback(): self.settingsCore.serverSettings.setLinkedSetQuestWasShowed( getLinkedSetQuestID(quest), getLinkedSetMissionIDFromQuest(quest))
def _isCompletedQuestWasShowed(self, quest): return self.settingsCore.serverSettings.isLinkedSetQuestWasShowed( getLinkedSetQuestID(quest), getLinkedSetMissionIDFromQuest(quest))
def isBootcampQuest(self, quest): return getLinkedSetMissionIDFromQuest(quest) == 1
def getMissionByID(self, missionID): for mission in self.getMissions(): if getLinkedSetMissionIDFromQuest(mission[0]) == missionID: return mission return None
def getMaxMissionID(self): quests = self.eventsCache.getLinkedSetQuests() return max((getLinkedSetMissionIDFromQuest(quest) for quest in quests.itervalues())) if quests else -1