def _getMissionsBlock(cls, operation): items = [] completedQuests = operation.getCompletedQuests() completedQuestsIDs = set(completedQuests.keys()) totalCount = operation.getQuestsCount() items.append( formatters.packTextBlockData( text=text_styles.concatStylesWithSpace( text_styles.middleTitle( TOOLTIPS.PERSONALMISSIONS_OPERATION_MISSIONS_TITLE), _formatCompleteCount(len(completedQuests), totalCount), text_styles.standard('/ %s' % totalCount)), padding=formatters.packPadding(top=8, left=17))) for vehicleType in VEHICLE_TYPES_ORDER: _, quests = operation.getChainByVehicleType(vehicleType) completedCount = len(completedQuestsIDs.intersection( quests.keys())) chainSize = operation.getChainSize() items.append( formatters.packTitleDescParameterWithIconBlockData( title=text_styles.concatStylesWithSpace( _formatCompleteCount(completedCount, chainSize), text_styles.standard('/ %s' % chainSize)), value=text_styles.main(MENU.classesShort(vehicleType)), icon=getTypeSmallIconPath(vehicleType), iconPadding=formatters.packPadding(top=3, left=10), titlePadding=formatters.packPadding(left=10), padding=formatters.packPadding(left=156, bottom=-9))) return formatters.packBuildUpBlockData(blocks=items, padding=formatters.packPadding( top=-14, bottom=30), gap=10)
def __getPersonalQuestsVO(self, vehicle): """ Get part of VO responsible for personal quests flag. """ pqState, quest, chain, tile = _findPersonalQuestsState(self._eventsCache, vehicle) if pqState == WIDGET_PQ_STATE.AVAILABLE: icon = RES_ICONS.MAPS_ICONS_LIBRARY_OUTLINE_PLUS elif pqState == WIDGET_PQ_STATE.AWARD: icon = RES_ICONS.MAPS_ICONS_LIBRARY_OUTLINE_REWARD elif pqState in WIDGET_PQ_STATE.UNSUITABLE: icon = RES_ICONS.vehicleTypeInactiveOutline(vehicle.type) else: icon = RES_ICONS.vehicleTypeOutline(vehicle.type) if pqState in WIDGET_PQ_STATE.UNSUITABLE: labelState = LABEL_STATE.INACTIVE elif pqState == WIDGET_PQ_STATE.AVAILABLE: labelState = LABEL_STATE.EMPTY else: labelState = LABEL_STATE.ACTIVE ctx = {} if all((quest, chain, tile)): self._personalQuestID = quest.getID() chainType = tile.getChainMajorTag(quest.getChainID()) ctx.update({'questName': quest.getUserName(), 'description': quest.getUserMainCondition(), 'current': len(filter(lambda q: q.isCompleted(), chain.itervalues())), 'total': len(chain), 'tileName': tile.getUserName(), 'chainName': _ms(MENU.classesShort(chainType))}) else: self._personalQuestID = None return {'personalQuestsLabel': _ms(MENU.hangarHeaderPersonalQuestsLabel(labelState), **ctx), 'personalQuestsIcon': icon, 'personalQuestsTooltip': _getPersonalQuestsTooltip(pqState, **ctx), 'personalQuestsEnable': pqState not in WIDGET_PQ_STATE.UNSUITABLE}
def __getNoVehicleStatusFields(self): addBottomStatusText = text_styles.error( icons.markerBlocked() + ' ' + _ms(QUESTS.PERSONALMISSION_STATUS_LOCKEDBYVEHICLE)) bottomStatusTooltipData = { 'tooltip': makeTooltip( header=TOOLTIPS.PERSONALMISSIONS_STATUS_LOCKEDBYVEHICLE_HEADER, body=_ms(TOOLTIPS.PERSONALMISSIONS_STATUS_LOCKEDBYVEHICLE_BODY, vehType=', '.join([ _ms(MENU.classesShort(vehType)) for vehType in self.event.getVehicleClasses() ]), minLevel=int2roman(self.event.getVehMinLevel()), maxLevel=int2roman(self.event.getVehMaxLevel()))) } if self.event.isInProgress(): statusData = self._getProgressStatusFields() statusData.update(addBottomStatusText=addBottomStatusText) statusData.update(bottomStatusTooltipData=bottomStatusTooltipData) return statusData if self.event.isMainCompleted(): statusData = self._getCompleteStatusFields() statusData.update(addBottomStatusText=addBottomStatusText) statusData.update(bottomStatusTooltipData=bottomStatusTooltipData) return statusData return { 'addBottomStatusText': addBottomStatusText, 'status': MISSIONS_STATES.NOT_AVAILABLE, 'bottomStatusTooltipData': bottomStatusTooltipData }
def __getPersonalQuestsVO(self, vehicle): """ Get part of VO responsible for personal quests flag. """ pqState, quest, chain, tile = _findPersonalQuestsState( self._eventsCache, vehicle) if pqState == WIDGET_PQ_STATE.AVAILABLE: icon = RES_ICONS.MAPS_ICONS_LIBRARY_OUTLINE_PLUS elif pqState == WIDGET_PQ_STATE.AWARD: icon = RES_ICONS.MAPS_ICONS_LIBRARY_OUTLINE_REWARD elif pqState in WIDGET_PQ_STATE.UNSUITABLE: icon = RES_ICONS.vehicleTypeInactiveOutline(vehicle.type) else: icon = RES_ICONS.vehicleTypeOutline(vehicle.type) if pqState in WIDGET_PQ_STATE.UNSUITABLE: labelState = LABEL_STATE.INACTIVE elif pqState == WIDGET_PQ_STATE.AVAILABLE: labelState = LABEL_STATE.EMPTY else: labelState = LABEL_STATE.ACTIVE ctx = {} if all((quest, chain, tile)): self._personalQuestID = quest.getID() chainType = tile.getChainMajorTag(quest.getChainID()) ctx.update({ 'questName': quest.getUserName(), 'description': '{}\n{}\n\n{}\n{}'.format( text_styles.standard( _ms(QUESTS.QUESTTASKDETAILSVIEW_MAINCONDITIONS)), quest.getUserMainCondition(), text_styles.standard( _ms(QUESTS.QUESTTASKDETAILSVIEW_ADDITIONALCONDITIONS)), quest.getUserAddCondition()), 'current': len(filter(lambda q: q.isCompleted(), chain.itervalues())), 'total': len(chain), 'tileName': tile.getUserName(), 'chainName': _ms(MENU.classesShort(chainType)) }) else: self._personalQuestID = None return { 'personalQuestsLabel': _ms(MENU.hangarHeaderPersonalQuestsLabel(labelState), **ctx), 'personalQuestsIcon': icon, 'personalQuestsTooltip': _getPersonalQuestsTooltip(pqState, **ctx), 'personalQuestsEnable': pqState not in WIDGET_PQ_STATE.UNSUITABLE }
def _getTitle(self): if self.__questID: quest = self.eventsCache.personalMissions.getQuests()[ self.__questID] return text_styles.highTitle( ms(QUESTS.PERSONALMISSION_VEHICLESELECTOR_TITLE, vehType=', '.join([ ms(MENU.classesShort(vehType)) for vehType in quest.getVehicleClasses() ]), minLevel=quest.getVehMinLevel(), maxLevel=quest.getVehMaxLevel()))
def __getPersonalQuestsVO(self, vehicle): """ Get part of VO responsible for personal quests flag. """ pqState, quest, chain, tile = _findPersonalQuestsState( self._eventsCache, vehicle) enable = True if pqState & WIDGET_PQ_STATE.AWARD: icon = RES_ICONS.MAPS_ICONS_LIBRARY_OUTLINE_REWARD labelState = LABEL_STATE.ACTIVE tooltip = makeTooltip( _ms(TOOLTIPS.HANGAR_HEADER_PERSONALQUESTS_AWARD_HEADER, tileName=tile.getUserName()), _ms(TOOLTIPS.HANGAR_HEADER_PERSONALQUESTS_AWARD_BODY, chainName=_ms( MENU.classesShort( tile.getChainMajorTag(quest.getChainID()))))) elif pqState & WIDGET_PQ_STATE.IN_PROGRESS: icon = RES_ICONS.vehicleTypeOutline(vehicle.type) labelState = LABEL_STATE.ACTIVE tooltip = TOOLTIPS_CONSTANTS.PERSONAL_QUESTS_PREVIEW elif pqState & WIDGET_PQ_STATE.AVAILABLE: icon = RES_ICONS.MAPS_ICONS_LIBRARY_OUTLINE_PLUS labelState = LABEL_STATE.EMPTY tooltip = TOOLTIPS.HANGAR_HEADER_PERSONALQUESTS_AVAILABLE elif pqState & WIDGET_PQ_STATE.COMPLETED: icon = RES_ICONS.vehicleTypeOutline(vehicle.type) labelState = LABEL_STATE.ALL_DONE if pqState & WIDGET_PQ_STATE.UNAVAILABLE: tooltip = TOOLTIPS.HANGAR_HEADER_PERSONALQUESTS_UNAVAILABLE else: tooltip = TOOLTIPS.HANGAR_HEADER_PERSONALQUESTS_COMPLETED elif pqState & WIDGET_PQ_STATE.DONE: icon = RES_ICONS.vehicleTypeInactiveOutline(vehicle.type) labelState = LABEL_STATE.INACTIVE tooltip = TOOLTIPS.HANGAR_HEADER_PERSONALQUESTS_DONE enable = False else: icon = RES_ICONS.vehicleTypeInactiveOutline(vehicle.type) labelState = LABEL_STATE.INACTIVE tooltip = TOOLTIPS.HANGAR_HEADER_PERSONALQUESTS_DISABLED enable = False if all((quest, chain, tile)): self._personalQuestID = quest.getID() ctx = { 'current': len(filter(lambda q: q.isCompleted(), chain.itervalues())), 'total': len(chain) } else: self._personalQuestID = None ctx = { 'icon': icons.makeImageTag( RES_ICONS.MAPS_ICONS_LIBRARY_OUTLINE_QUESTS_ALL_DONE) } res = { 'personalQuestsLabel': _ms(MENU.hangarHeaderPersonalQuestsLabel(labelState), **ctx), 'personalQuestsIcon': icon, 'personalQuestsEnable': enable, 'isPersonalReward': bool(pqState & WIDGET_PQ_STATE.AWARD), 'personalQuestsTooltip': tooltip, 'personalQuestsTooltipIsSpecial': bool(pqState & WIDGET_PQ_STATE.IN_PROGRESS) } return res
def _getNoVehicleStatusFields(self): addBottomStatusText = self.__getAddBottomLocked() bodyTooltip = TOOLTIPS.PERSONALMISSIONS_STATUS_LOCKEDBYVEHICLETYPE_BODY if self.event.getQuestBranch() == PM_BRANCH.PERSONAL_MISSION_2: bodyTooltip = TOOLTIPS.PERSONALMISSIONS_STATUS_LOCKEDBYVEHICLEALLIANCE_BODY bottomStatusTooltipData = {'tooltip': makeTooltip(header=TOOLTIPS.PERSONALMISSIONS_STATUS_LOCKEDBYVEHICLE_HEADER, body=_ms(bodyTooltip, vehType=_ms(MENU.classesShort(self.event.getQuestClassifier().classificationAttr)), minLevel=int2roman(self.event.getVehMinLevel()), maxLevel=int2roman(self.event.getVehMaxLevel())))} if self.event.isInProgress(): statusData = self._getProgressStatusFields() statusData.update(addBottomStatusText=addBottomStatusText) statusData.update(bottomStatusTooltipData=bottomStatusTooltipData) statusData.update(showIcon=True) return statusData if self.event.isMainCompleted(): statusData = self._getCompleteStatusFields() statusData.update(addBottomStatusText=addBottomStatusText) statusData.update(bottomStatusTooltipData=bottomStatusTooltipData) statusData.update(showIcon=True) return statusData showIcon = True return {'showIcon': showIcon, 'addBottomStatusText': addBottomStatusText, 'status': MISSIONS_STATES.NOT_AVAILABLE, 'bottomStatusTooltipData': bottomStatusTooltipData}
def __getPersonalQuestsVO(self, vehicle): if not self._lobbyContext.getServerSettings().isPersonalMissionsEnabled(): return {'personalQuestsLabel': _ms(MENU.hangarHeaderPersonalQuestsLabel(LABEL_STATE.INACTIVE)), 'personalQuestsIcon': RES_ICONS.vehicleTypeInactiveOutline(vehicle.type), 'personalQuestsEnable': False, 'personalQuestsVisible': True, 'isPersonalReward': False, 'personalQuestsTooltip': None, 'personalQuestsTooltipIsSpecial': False} else: pqState, quest, chain, tile = _findPersonalQuestsState(self._eventsCache, vehicle) enable = True if pqState & WIDGET_PQ_STATE.AWARD: icon = RES_ICONS.MAPS_ICONS_LIBRARY_OUTLINE_REWARD labelState = LABEL_STATE.ACTIVE tooltip = makeTooltip(_ms(TOOLTIPS.HANGAR_HEADER_PERSONALQUESTS_AWARD_HEADER, tileName=tile.getUserName()), _ms(TOOLTIPS.HANGAR_HEADER_PERSONALQUESTS_AWARD_BODY, chainName=_ms(MENU.classesShort(tile.getChainMajorTag(quest.getChainID()))))) elif pqState & WIDGET_PQ_STATE.IN_PROGRESS: icon = RES_ICONS.vehicleTypeOutline(vehicle.type) labelState = LABEL_STATE.ACTIVE tooltip = TOOLTIPS_CONSTANTS.PERSONAL_QUESTS_PREVIEW elif pqState & WIDGET_PQ_STATE.AVAILABLE: icon = RES_ICONS.MAPS_ICONS_LIBRARY_OUTLINE_PLUS labelState = LABEL_STATE.EMPTY tooltip = TOOLTIPS.HANGAR_HEADER_PERSONALQUESTS_AVAILABLE elif pqState & WIDGET_PQ_STATE.COMPLETED: icon = RES_ICONS.vehicleTypeOutline(vehicle.type) labelState = LABEL_STATE.ALL_DONE if pqState & WIDGET_PQ_STATE.UNAVAILABLE: tooltip = TOOLTIPS.HANGAR_HEADER_PERSONALQUESTS_UNAVAILABLE else: tooltip = TOOLTIPS.HANGAR_HEADER_PERSONALQUESTS_COMPLETED elif pqState & WIDGET_PQ_STATE.DONE: icon = RES_ICONS.vehicleTypeInactiveOutline(vehicle.type) labelState = LABEL_STATE.INACTIVE tooltip = TOOLTIPS.HANGAR_HEADER_PERSONALQUESTS_DONE enable = False else: icon = RES_ICONS.vehicleTypeInactiveOutline(vehicle.type) labelState = LABEL_STATE.INACTIVE tooltip = TOOLTIPS.HANGAR_HEADER_PERSONALQUESTS_DISABLED enable = False if all((quest, chain, tile)): self._personalQuestID = quest.getID() ctx = {'current': quest.getInternalID()} else: self._personalQuestID = None ctx = {'icon': icons.makeImageTag(RES_ICONS.MAPS_ICONS_LIBRARY_OUTLINE_QUESTS_ALL_DONE)} return {'personalQuestsLabel': _ms(MENU.hangarHeaderPersonalQuestsLabel(labelState), **ctx), 'personalQuestsIcon': icon, 'personalQuestsEnable': enable, 'personalQuestsVisible': True, 'isPersonalReward': bool(pqState & WIDGET_PQ_STATE.AWARD), 'personalQuestsTooltip': tooltip, 'personalQuestsTooltipIsSpecial': bool(pqState & WIDGET_PQ_STATE.IN_PROGRESS)}