def __getHint(self): keyName = getReadableKey(CommandMapping.CMD_CM_VEHICLE_SWITCH_AUTOROTATION) if keyName: pressText = text_styles.tutorial(INGAME_GUI.SIEGEMODE_HINT_PRESS) hintText = text_styles.tutorial(INGAME_GUI.siegeModeHint(self._siegeState)) keyText = makeHtmlString('html_templates:battle/siegeMode', 'toggle', ctx={'key': keyName}) return (keyText, pressText, hintText) return ('', '', text_styles.tutorial(INGAME_GUI.SIEGEMODE_HINT_NOBINDING))
def getBuyingPanelData(self, item, data=None, isHeroTank=False, itemsPack=None): isBuyingAvailable = not isHeroTank and (not item.isHidden or item.isRentable or item.isRestorePossible()) uniqueVehicleTitle = '' if not (isBuyingAvailable or isHeroTank): uniqueVehicleTitle = text_styles.tutorial(backport.text(R.strings.vehicle_preview.buyingPanel.uniqueVehicleLabel())) compensationData = self.__getCompensationData(itemsPack) resultVO = {'setTitle': data.title, 'uniqueVehicleTitle': uniqueVehicleTitle, 'vehicleId': item.intCD, 'isBuyingAvailable': isBuyingAvailable, 'isMoneyEnough': data.isMoneyEnough, 'buyButtonEnabled': data.enabled, 'buyButtonLabel': data.label, 'buyButtonIcon': data.icon, 'buyButtonIconAlign': data.iconAlign, 'buyButtonTooltip': data.tooltip, 'isShowSpecialTooltip': data.isShowSpecial, 'itemPrice': data.itemPrice, 'isUnlock': data.isUnlock, 'couponDiscount': 0, 'showAction': data.isAction, 'hasCompensation': compensationData is not None, 'compensation': compensationData if compensationData is not None else {}, 'warning': self.__getWarningInfo(data, item)} customOffer = self.__getCustomOfferData(data) if customOffer is not None: resultVO.update({'customOffer': customOffer}) return resultVO
def __setShortLeftTime(self, leftTime): self.as_updateLeftTimeS(formattedTime='{} {}'.format( self.__timeLeftIcon, text_styles.tutorial( time_utils.getTillTimeString( leftTime, MENU.VEHICLEPREVIEW_TIMELEFTSHORT))), hasHoursAndMinutes=True)
def getBottomPanelData(self, item, isHeroTank=False, isBootCamp=False): isBuyingAvailable = not isHeroTank and (not item.isHidden or item.isRentable or item.isRestorePossible()) if isBuyingAvailable or isHeroTank: if item.canTradeIn: buyingLabel = text_styles.main( VEHICLE_PREVIEW.BUYINGPANEL_TRADEINLABEL) else: buyingLabel = '' else: buyingLabel = text_styles.tutorial( VEHICLE_PREVIEW.BUYINGPANEL_ALERTLABEL) vcData = None if isBootCamp else self.__getVehCompareData(item) vcIcon = None if isBootCamp else makeImageTag( RES_ICONS.MAPS_ICONS_BUTTONS_VEHICLECOMPAREBTN, 30, 24, -27) return { 'buyingLabel': buyingLabel, 'isBuyingAvailable': isBuyingAvailable, 'isCanTrade': item.canTradeIn, 'showStatusInfoTooltip': item.hasModulesToSelect, 'vehicleId': item.intCD, 'vehCompareData': vcData, 'vehCompareIcon': vcIcon }
def getBuyingPanelData(self, item, data=None, isHeroTank=False, itemsPack=None): isBuyingAvailable = not isHeroTank and (not item.isHidden or item.isRentable or item.isRestorePossible()) isAction = data.action is not None uniqueVehicleTitle = '' buyingLabel = '' if isBuyingAvailable or isHeroTank: if item.canTradeIn: buyingLabel = text_styles.main( VEHICLE_PREVIEW.BUYINGPANEL_TRADEINLABEL) else: uniqueVehicleTitle = text_styles.tutorial( VEHICLE_PREVIEW.BUYINGPANEL_UNIQUEVEHICLELABEL) compensationData = self.__getCompensationData(itemsPack) return { 'setTitle': data.title, 'uniqueVehicleTitle': uniqueVehicleTitle, 'buyingLabel': buyingLabel, 'vehicleId': item.intCD, 'isCanTrade': item.canTradeIn, 'isBuyingAvailable': isBuyingAvailable, 'isMoneyEnough': data.enabled, 'buyButtonEnabled': data.enabled, 'buyButtonLabel': data.label, 'buyButtonTooltip': data.tooltip, 'price': data.price, 'showGlow': isHeroTank or item.isPremium and (not item.isHidden or item.isRentable or item.isRestorePossible()), 'showAction': isAction, 'actionTooltipType': TOOLTIPS_CONSTANTS.ACTION_PRICE if isAction else None, 'actionData': data.action, 'hasCompensation': compensationData is not None, 'compensation': compensationData if compensationData is not None else {} }
def __makeCloseeRendererVO(self): iconSrc = RES_ICONS.MAPS_ICONS_CUSTOMIZATION_PROPERTY_SHEET_CROSS hoverIcon = RES_ICONS.MAPS_ICONS_CUSTOMIZATION_PROPERTY_SHEET_CROSS_HOVER actionBtnLabel = VEHICLE_CUSTOMIZATION.PROPERTYSHEET_ACTIONBTN_CLOSE return { 'iconSrc': iconSrc, 'iconHoverSrc': hoverIcon, 'actionBtnLabel': text_styles.tutorial(actionBtnLabel), 'rendererLnk': CUSTOMIZATION_ALIASES.CUSTOMIZATION_SHEET_BTN_RENDERER_UI, 'actionType': CUSTOMIZATION_ALIASES.CUSTOMIZATION_SHEET_ACTION_CLOSE }
def getTitleBlock(self): linkedActionID = self._group.getLinkedAction( self.eventsCache.getActions()) return { 'title': self.getTitle(), 'action': { 'actionID': linkedActionID, 'label': text_styles.tutorial( QUESTS.MISSIONS_TAB_MARATHONS_HEADER_TITLE_ACTION), 'visible': linkedActionID is not None } }
def __updateSideBar(self): chains = [] currChainID = self.getChainID() currentOperation = self.getOperation() currentVehicleType = currentOperation.getChainVehicleClass(currChainID) for vehicleType in VEHICLE_TYPES_ORDER: chainID, quests = currentOperation.getChainByVehicleType( vehicleType) chainState = self.__getChainState(quests) progress = self.__getProgress(quests) if chainState.isCompleted: currentProgress = text_styles.bonusAppliedText( progress['value']) else: currentProgress = text_styles.stats(progress['value']) if currentVehicleType == vehicleType: label = text_styles.tutorial( PERSONAL_MISSIONS.chainNameByVehicleType( currentVehicleType)) elif chainState.questInProgress is not None: label = text_styles.main( chainState.questInProgress.getShortUserName()) elif chainState.isFullCompleted: label = text_styles.bonusAppliedText( PERSONAL_MISSIONS.SIDEBAR_FULLCOMPLETED) elif chainState.isCompleted: label = text_styles.bonusAppliedText( PERSONAL_MISSIONS.SIDEBAR_COMPLETED) else: label = text_styles.main(PERSONAL_MISSIONS.SIDEBAR_NOTSELECTED) progressText = text_styles.main(' / ').join( (currentProgress, text_styles.main(progress['maxValue']))) chains.append({ 'chainID': chainID, 'progressText': progressText, 'label': label, 'tankIcon': Vehicle.getTypeBigIconPath(vehicleType, False), 'progress': progress }) self.as_updateBranchesDataS({'chains': chains}) self.as_setSelectedBranchIndexS(currChainID) return
def __removeAllTankPartsRendererVO(self): icon = RES_ICONS.MAPS_ICONS_CUSTOMIZATION_PROPERTY_SHEET_ICON_DEL_TANK hoverIcon = RES_ICONS.MAPS_ICONS_CUSTOMIZATION_PROPERTY_SHEET_ICON_DEL_TANK_HOVER actionBtnLabel = VEHICLE_CUSTOMIZATION.PROPERTYSHEET_ACTIONBTN_CLEAR return { 'iconSrc': icon, 'iconHoverSrc': hoverIcon, 'actionBtnLabel': text_styles.tutorial(actionBtnLabel), 'actionType': CUSTOMIZATION_ALIASES. CUSTOMIZATION_SHEET_ACTION_REMOVE_FROM_ALL_PARTS, 'rendererLnk': CUSTOMIZATION_ALIASES.CUSTOMIZATION_SHEET_BTN_RENDERER_UI }
def _getHeader(self, currentEvent): eventID = currentEvent.getEventID() isRegistered = self._eventsController.getHangarFlagData().isRegistered( eventID) isRegistrationNeeded = currentEvent.getLimits( ).getIsRegistrationNeeded() if isRegistrationNeeded and not isRegistered: if currentEvent.isRegistrationFinishSoon(): flagIcon = icons.makeImageTag( RES_ICONS.MAPS_ICONS_EVENTBOARDS_FLAGICONS_TIME_ICON) else: flagIcon = icons.makeImageTag( RES_ICONS.MAPS_ICONS_EVENTBOARDS_FLAGICONS_FLAG_ICON) textData = currentEvent.getFormattedRemainingTime( EVENT_DATE_TYPE.PARTICIPANTS_FREEZE) msgText = TOOLTIPS.HANGAR_ELEN_HEADER_TOENDOFREGISTRATION time = textData[0] if textData[0] is not 0 else 1 timeText = textData[1] if textData[1] else FORMAT_MINUTE_STR timeName = EVENT_BOARDS.time_period(str(timeText)) text = '{} {} {} {}'.format(flagIcon, text_styles.tutorial(_ms(msgText)), text_styles.tutorial(time), text_styles.tutorial(timeName)) else: textData = currentEvent.getFormattedRemainingTime( EVENT_DATE_TYPE.END) msgText = TOOLTIPS.HANGAR_ELEN_HEADER_TOEND time = textData[0] if textData[0] is not 0 else 1 timeText = textData[1] if textData[1] else FORMAT_MINUTE_STR timeName = EVENT_BOARDS.time_period(str(timeText)) if currentEvent.isEndSoon(): flagIcon = icons.makeImageTag( RES_ICONS.MAPS_ICONS_EVENTBOARDS_FLAGICONS_TIME_ICON) text = '{} {} {} {}'.format(flagIcon, text_styles.tutorial(_ms(msgText)), text_styles.tutorial(time), text_styles.tutorial(timeName)) else: flagIcon = icons.makeImageTag( RES_ICONS.MAPS_ICONS_EVENTBOARDS_FLAGICONS_FLAG_ICON) text = '{} {} {} {}'.format(flagIcon, text_styles.main(_ms(msgText)), text_styles.stats(time), text_styles.stats(timeName)) return formatters.packImageTextBlockData( title=text_styles.highTitle( _ms(TOOLTIPS.HANGAR_ELEN_HEADER_NAME, name=currentEvent.getName())), img=currentEvent.getKeyArtSmall(), txtPadding=formatters.packPadding(top=22), txtOffset=20, txtGap=-8, desc=text)
def __makeRemoveRendererVO(self): iconSrc = RES_ICONS.MAPS_ICONS_CUSTOMIZATION_PROPERTY_SHEET_CROSS hoverIcon = RES_ICONS.MAPS_ICONS_CUSTOMIZATION_PROPERTY_SHEET_CROSS_HOVER if self._slotID == GUI_ITEM_TYPE.STYLE: actionBtnLabel = VEHICLE_CUSTOMIZATION.PROPERTYSHEET_ACTIONBTN_REMOVESTYLE iconSrc = RES_ICONS.MAPS_ICONS_CUSTOMIZATION_PROPERTY_SHEET_REMOVE_STYLE_X hoverIcon = RES_ICONS.MAPS_ICONS_CUSTOMIZATION_PROPERTY_SHEET_REMOVE_STYLE_X_HOVER else: if self._slotID == GUI_ITEM_TYPE.MODIFICATION: actionBtnLabel = VEHICLE_CUSTOMIZATION.PROPERTYSHEET_ACTIONBTN_REMOVE_TANK iconSrc = RES_ICONS.MAPS_ICONS_CUSTOMIZATION_PROPERTY_SHEET_REMOVE_EFFECTS_X hoverIcon = RES_ICONS.MAPS_ICONS_CUSTOMIZATION_PROPERTY_SHEET_REMOVE_EFFECTS_X_HOVER elif self._slotID == GUI_ITEM_TYPE.EMBLEM: actionBtnLabel = VEHICLE_CUSTOMIZATION.PROPERTYSHEET_ACTIONBTN_REMOVE_EMBLEM iconSrc = RES_ICONS.MAPS_ICONS_CUSTOMIZATION_PROPERTY_SHEET_REMOVE_EMBLEM_X hoverIcon = RES_ICONS.MAPS_ICONS_CUSTOMIZATION_PROPERTY_SHEET_REMOVE_EMBLEM_X_HOVER elif self._slotID == GUI_ITEM_TYPE.INSCRIPTION: actionBtnLabel = VEHICLE_CUSTOMIZATION.PROPERTYSHEET_ACTIONBTN_REMOVE_INSCRIPTION iconSrc = RES_ICONS.MAPS_ICONS_CUSTOMIZATION_PROPERTY_SHEET_REMOVE_TYPE_X hoverIcon = RES_ICONS.MAPS_ICONS_CUSTOMIZATION_PROPERTY_SHEET_REMOVE_TYPE_X_HOVER elif self._slotID == GUI_ITEM_TYPE.PROJECTION_DECAL: actionBtnLabel = VEHICLE_CUSTOMIZATION.PROPERTYSHEET_ACTIONBTN_REMOVE_PROJECTIONDECAL iconSrc = RES_ICONS.MAPS_ICONS_CUSTOMIZATION_PROPERTY_SHEET_REMOVE_EFFECTS_X hoverIcon = RES_ICONS.MAPS_ICONS_CUSTOMIZATION_PROPERTY_SHEET_REMOVE_EFFECTS_X_HOVER else: actionBtnLabel = VEHICLE_CUSTOMIZATION.getSheetBtnRemoveText( getCustomizationTankPartName(self._areaID, self._regionID)) if self._slotID == GUI_ITEM_TYPE.CAMOUFLAGE: iconSrc = RES_ICONS.MAPS_ICONS_CUSTOMIZATION_PROPERTY_SHEET_REMOVE_CAMO_X hoverIcon = RES_ICONS.MAPS_ICONS_CUSTOMIZATION_PROPERTY_SHEET_REMOVE_CAMO_X_HOVER elif self._slotID == GUI_ITEM_TYPE.PAINT: iconSrc = RES_ICONS.MAPS_ICONS_CUSTOMIZATION_PROPERTY_SHEET_REMOVE_COLORS_X hoverIcon = RES_ICONS.MAPS_ICONS_CUSTOMIZATION_PROPERTY_SHEET_REMOVE_COLORS_X_HOVER return { 'iconSrc': iconSrc, 'iconHoverSrc': hoverIcon, 'actionBtnLabel': text_styles.tutorial(actionBtnLabel), 'rendererLnk': CUSTOMIZATION_ALIASES.CUSTOMIZATION_SHEET_BTN_RENDERER_UI, 'actionType': CUSTOMIZATION_ALIASES.CUSTOMIZATION_SHEET_ACTION_REMOVE_ONE }
def __getFormattedTillTimeString(self, timeValue, keyNamespace, extraFmt=False): gmtime = time.gmtime(timeValue) if timeValue >= ONE_DAY: text = backport.text(self._data.tooltips.daysShort, value=str(gmtime.tm_yday)) elif timeValue >= ONE_HOUR: text = backport.text(self._data.tooltips.hoursShort, value=str(gmtime.tm_hour + 1)) else: text = backport.text(self._data.tooltips.minutesShort, value=str(gmtime.tm_min + 1)) return text_styles.main( backport.text(keyNamespace, value=text_styles.stats(text)) ) if extraFmt or timeValue >= ONE_DAY else text_styles.tutorial( backport.text(keyNamespace, value=text))
def __collectSideBarData(self): currentOperation = self.getOperation() chains = [] if self.getBranch() == PM_BRANCH.PERSONAL_MISSION_2: tooltip = TOOLTIPS_CONSTANTS.OPERATIONS_CHAIN_DETAILS else: tooltip = None for classifierAttr in currentOperation.getIterationChain(): chainID, q = currentOperation.getChainByClassifierAttr( classifierAttr) chainState = self.__getChainState(q) progress = self.__getProgress(q) if chainState.isCompleted: currentProgress = text_styles.bonusAppliedText( progress['value']) else: currentProgress = text_styles.stats(progress['value']) if chainID == self.getChainID(): label = text_styles.tutorial( currentOperation.getChainName(chainID)) elif chainState.questInProgress is not None: label = text_styles.main( chainState.questInProgress.getShortUserName()) elif chainState.isFullCompleted: label = text_styles.bonusAppliedText( PERSONAL_MISSIONS.SIDEBAR_FULLCOMPLETED) elif chainState.isCompleted: label = text_styles.bonusAppliedText( PERSONAL_MISSIONS.SIDEBAR_COMPLETED) else: label = text_styles.main(PERSONAL_MISSIONS.SIDEBAR_NOTSELECTED) progressText = text_styles.main(' / ').join( (currentProgress, text_styles.main(progress['maxValue']))) chains.append({ 'chainID': chainID, 'progressText': progressText, 'label': label, 'tankIcon': currentOperation.getChainIcon(chainID), 'progress': progress, 'tooltip': tooltip }) return chains
def __makeExtensionRendererVO(self): if self.__ctx.autoRentEnabled(): icon = RES_ICONS.MAPS_ICONS_CUSTOMIZATION_PROPERTY_SHEET_ICON_DEL_RENT hoverIcon = RES_ICONS.MAPS_ICONS_CUSTOMIZATION_PROPERTY_SHEET_ICON_DEL_RENT_HOVER label = VEHICLE_CUSTOMIZATION.CUSTOMIZATION_POPOVER_STYLE_NOTAUTOPROLONGATIONLABEL else: icon = RES_ICONS.MAPS_ICONS_CUSTOMIZATION_PROPERTY_SHEET_ICON_RENT hoverIcon = RES_ICONS.MAPS_ICONS_CUSTOMIZATION_PROPERTY_SHEET_ICON_RENT_HOVER label = VEHICLE_CUSTOMIZATION.CUSTOMIZATION_POPOVER_STYLE_AUTOPROLONGATIONLABEL return { 'iconSrc': icon, 'iconHoverSrc': hoverIcon, 'actionBtnLabel': text_styles.tutorial(label), 'actionType': CUSTOMIZATION_ALIASES.CUSTOMIZATION_SHEET_RENT_CHECKBOX_CHANGE, 'rendererLnk': CUSTOMIZATION_ALIASES.CUSTOMIZATION_SHEET_BTN_RENDERER_UI }
def __makeSetOnOtherSeasonsRendererVO(self): icon = RES_ICONS.MAPS_ICONS_CUSTOMIZATION_PROPERTY_SHEET_ICON_ALL_SEASON hoverIcon = RES_ICONS.MAPS_ICONS_CUSTOMIZATION_PROPERTY_SHEET_ICON_ALL_SEASON_HOVER actionBtnLabel = VEHICLE_CUSTOMIZATION.PROPERTYSHEET_ACTIONBTN_APPLYTOALLMAPS if self._isItemAppliedToAll: actionBtnLabel = VEHICLE_CUSTOMIZATION.PROPERTYSHEET_ACTIONBTN_REMOVE_SEASONS icon = RES_ICONS.MAPS_ICONS_CUSTOMIZATION_PROPERTY_SHEET_ICON_DEL_ALL_SEASON hoverIcon = RES_ICONS.MAPS_ICONS_CUSTOMIZATION_PROPERTY_SHEET_ICON_DEL_ALL_SEASON_HOVER return { 'iconSrc': icon, 'iconHoverSrc': hoverIcon, 'actionBtnLabel': text_styles.tutorial(actionBtnLabel), 'actionType': CUSTOMIZATION_ALIASES. CUSTOMIZATION_SHEET_ACTION_APPLY_TO_ALL_SEASONS, 'rendererLnk': CUSTOMIZATION_ALIASES.CUSTOMIZATION_SHEET_BTN_RENDERER_UI }
def __makeSetOnOtherTankPartsRendererVO(self): icon = RES_ICONS.MAPS_ICONS_CUSTOMIZATION_PROPERTY_SHEET_TANK hoverIcon = RES_ICONS.MAPS_ICONS_CUSTOMIZATION_PROPERTY_SHEET_TANK_HOVER actionBtnLabel = VEHICLE_CUSTOMIZATION.PROPERTYSHEET_ACTIONBTN_APPLYTOWHOLETANK if self._isItemAppliedToAll: icon = RES_ICONS.MAPS_ICONS_CUSTOMIZATION_PROPERTY_SHEET_ICON_DEL_TANK hoverIcon = RES_ICONS.MAPS_ICONS_CUSTOMIZATION_PROPERTY_SHEET_ICON_DEL_TANK_HOVER actionBtnLabel = VEHICLE_CUSTOMIZATION.PROPERTYSHEET_ACTIONBTN_CANCEL return { 'iconSrc': icon, 'iconHoverSrc': hoverIcon, 'actionBtnLabel': text_styles.tutorial(actionBtnLabel), 'actionType': CUSTOMIZATION_ALIASES. CUSTOMIZATION_SHEET_ACTION_APPLY_TO_ALL_PARTS, 'rendererLnk': CUSTOMIZATION_ALIASES.CUSTOMIZATION_SHEET_BTN_RENDERER_UI }
def __getFormattedTillTimeString(self, timeValue, keyNamespace, isRoundUp=True, extraFmt=False): gmtime = time.gmtime(timeValue) if isRoundUp and gmtime.tm_sec > 0: timeValue += ONE_HOUR gmtime = time.gmtime(timeValue) if timeValue >= ONE_DAY: gmtime = time.gmtime(timeValue - ONE_DAY) text = text_styles.stats( _ms(self.data.tooltips.daysShort, value=str(time.struct_time(gmtime).tm_yday))) return text_styles.main(_ms(keyNamespace, value=text)) if extraFmt: text = text_styles.stats( _ms(self.data.tooltips.hoursShort, value=str(time.struct_time(gmtime).tm_hour))) return text_styles.main(_ms(keyNamespace, value=text)) text = _ms(self.data.tooltips.hoursShort, value=str(time.struct_time(gmtime).tm_hour)) return text_styles.tutorial(_ms(keyNamespace, value=text))
def __packDescription(self, quests, season, isLeagues, isAnyPrimeNow, isAnyPrimeLeftTotal): resShortCut = R.strings.ranked_battles.questsTooltip isAllCompleted = all((q.isCompleted() for q in quests)) isAnyPrimeLeftNextDay = self.__rankedController.hasPrimeTimesNextDayLeft( ) icon = icons.markerBlocked() timeDelta = time_utils.getTimeDeltaFromNowInLocal( time_utils.makeLocalServerTime(season.getEndDate())) timeDeltaStr = text_styles.stats( backport.getTillTimeStringByRClass(timeDelta, resShortCut.available)) text = text_styles.main( backport.text(resShortCut.available(), timeDelta=timeDeltaStr)) if not isAnyPrimeLeftTotal: text = text_styles.error( backport.getTillTimeStringByRClass( timeDelta, resShortCut.unavailable.seasonEnd)) elif not isLeagues: text = text_styles.error( backport.text(resShortCut.unavailable.notInLeagues())) elif not isAllCompleted: if isAnyPrimeNow: icon = icons.inProgress(vspace=-3) else: text = text_styles.error( backport.text(resShortCut.unavailable.allServersPrime())) elif not isAnyPrimeLeftNextDay: icon = icons.inProgress(vspace=-3) else: icon = icons.clockGold() timeDelta = EventInfoModel.getDailyProgressResetTimeDelta() text = text_styles.tutorial( backport.getTillTimeStringByRClass(timeDelta, resShortCut.cooldown)) return text_styles.concatStylesWithSpace(icon, text)
def __updateFooter(self): chainState = self.__getChainState(self.getChain()) isQuestInProgress = False btnVisible = False btnEnabled = False btnLabel = '' descr = '' currentOperation = self.getOperation() chainClassifier = currentOperation.getChainClassifier( self.getChainID()) vehicleClass = getTypeShortUserName(chainClassifier.classificationAttr) pm = self._eventsCache.getPersonalMissions() branch = self.getBranch() freeSheets = pm.getFreeTokensCount(branch) pawnedSheets = pm.getPawnedTokensCount(branch) if not chainState.hasUnlocked: status = text_styles.concatStylesWithSpace( icons.markerBlocked(), text_styles.error(PERSONAL_MISSIONS.STATUSPANEL_STATUS_LOCKED)) elif chainState.questInProgress is not None: quest = chainState.questInProgress if quest.isOnPause: status = text_styles.concatStylesWithSpace( icons.makeImageTag(RES_ICONS.MAPS_ICONS_LIBRARY_ONPAUSE, 16, 16, -3, 8), text_styles.playerOnline(quest.getUserName())) else: isQuestInProgress = True status = text_styles.concatStylesWithSpace( icons.inProgress(), text_styles.tutorial(quest.getUserName())) if quest.areTokensPawned(): descr = text_styles.neutral( _ms(PERSONAL_MISSIONS.STATUSPANEL_STATUS_PAWNED, count=quest.getPawnCost(), icon=getHtmlAwardSheetIcon(quest.getQuestBranch()))) elif quest.isMainCompleted(): descr = text_styles.neutral( PERSONAL_MISSIONS.STATUSPANEL_STATUS_IMPROVE) elif quest.canBePawned() and not quest.isDisabled(): btnVisible = True pawnCost = quest.getPawnCost() btnLabel = _ms( PERSONAL_MISSIONS.STATUSPANEL_FREESHEETBTN_LABEL, count=pawnCost, icon=getHtmlAwardSheetIcon(quest.getQuestBranch())) if pawnCost <= freeSheets: btnEnabled = True elif chainState.isFullCompleted: status = text_styles.concatStylesWithSpace( icons.doubleCheckmark(1), text_styles.bonusAppliedText( _ms(PERSONAL_MISSIONS.STATUSPANEL_STATUS_ALLEXCELLENTDONE, vehicleClass=vehicleClass))) elif chainState.isCompleted: status = text_styles.concatStylesWithSpace( icons.checkmark(-2), text_styles.bonusAppliedText( _ms(PERSONAL_MISSIONS.STATUSPANEL_STATUS_ALLDONE, vehicleClass=vehicleClass))) elif not chainState.hasVehicle: if self.getBranch() == PM_BRANCH.PERSONAL_MISSION_2: template = PERSONAL_MISSIONS.OPERATIONTITLE_LABEL_NOVEHICLE_PM2 else: template = PERSONAL_MISSIONS.OPERATIONTITLE_LABEL_NOVEHICLE_REGULAR vehData = getChainVehRequirements(currentOperation, self.getChainID(), useIcons=False) status = text_styles.concatStylesWithSpace( icons.markerBlocked(), text_styles.error(_ms(template, vehData=vehData))) else: status = text_styles.concatStylesWithSpace( icons.makeImageTag( RES_ICONS.MAPS_ICONS_LIBRARY_ATTENTIONICONFILLED, 16, 16, -2), text_styles.neutral( PERSONAL_MISSIONS.STATUSPANEL_STATUS_SELECTTASK)) tankwomanQuests = [] for operation in pm.getAllOperations().itervalues(): tankwomanQuests.extend( operation.getQuestsByFilter( PersonalMission.needToGetTankWoman).itervalues()) counterText = '' tankwomanVisible = False if tankwomanQuests: counterText = text_styles.highlightText('x%s' % len(tankwomanQuests)) tankwomanVisible = True self.as_setStatusDataS({ 'statusText': status, 'descrText': descr, 'btnVisible': btnVisible, 'btnEnabled': btnEnabled, 'btnLabel': btnLabel, 'sheetsBlockData': { 'freeSheetsIcon': AwardSheetPresenter.getIcon(AwardSheetPresenter.Size.MID), 'freeSheetsText': text_styles.main( _ms(PERSONAL_MISSIONS.STATUSPANEL_FREESHEETS, count=text_styles.highlightText(freeSheets))), 'pawnedSheetsText': text_styles.main( _ms(PERSONAL_MISSIONS.STATUSPANEL_PAWNEDSHEETS, count=text_styles.highlightText(pawnedSheets))), 'tooltipData': { 'isSpecial': True, 'specialAlias': TOOLTIPS_CONSTANTS.FREE_SHEET_RETURN if freeSheets or pawnedSheets else TOOLTIPS_CONSTANTS.FREE_SHEET, 'specialArgs': [currentOperation.getCampaignID()] }, 'popover': PERSONAL_MISSIONS_ALIASES.FREE_SHEET_POPOVER, 'popoverData': { 'branch': branch } }, 'tankgirlsBlockData': { 'counterText': counterText, 'visible': tankwomanVisible, 'tooltipData': { 'isSpecial': True, 'specialAlias': TOOLTIPS_CONSTANTS.PERSONAL_MISSIONS_TANKWOMAN, 'specialArgs': [] }, 'popover': PERSONAL_MISSIONS_ALIASES.TANK_GIRLS_POPOVER }, 'tooltip': None, 'isQuestInProgress': isQuestInProgress }) return
def _convertHints(hintsList): return map(lambda hint: setattr(hint, 'hintText', text_styles.tutorial(hint.get('hintText', ''))), hintsList)
def _convertHints(hintsList): return [ setattr(hint, 'hintText', text_styles.tutorial(hint.get('hintText', ''))) for hint in hintsList ]
def __getUnspentPointsStr(self, showSkillPoint): return text_styles.highlightText(EPIC_BATTLE.METAABILITYSCREEN_UNSPENT_POINTS) if showSkillPoint else text_styles.tutorial(EPIC_BATTLE.METAABILITYSCREEN_GET_SKILL_POINTS)
def _convertHints(hintsList): return map(lambda hint: setattr(hint, "hintText", text_styles.tutorial(hint.get("hintText", ""))), hintsList)
def __updateFooter(self): chainState = self.__getChainState(self.getChain()) isQuestInProgress = False btnVisible = False btnEnabled = False btnLabel = '' descr = '' currentOperation = self.getOperation() currentVehicleType = currentOperation.getChainVehicleClass( self.getChainID()) vehicleClass = getTypeShortUserName(currentVehicleType) pm = self._eventsCache.personalMissions freeSheets = pm.getFreeTokensCount() pawnedSheets = pm.getPawnedTokensCount() if not chainState.hasUnlocked: status = text_styles.concatStylesWithSpace( icons.markerBlocked(), text_styles.error(PERSONAL_MISSIONS.STATUSPANEL_STATUS_LOCKED)) elif chainState.questInProgress is not None: quest = chainState.questInProgress isQuestInProgress = True status = text_styles.concatStylesWithSpace( icons.inProgress(), text_styles.tutorial(quest.getUserName())) if quest.areTokensPawned(): descr = text_styles.neutral( _ms(PERSONAL_MISSIONS.STATUSPANEL_STATUS_PAWNED, count=quest.getPawnCost(), icon=icons.makeImageTag( RES_ICONS. MAPS_ICONS_PERSONALMISSIONS_SHEET_RECEIVED_SMALL, 16, 16, -3, 8))) elif quest.isMainCompleted(): descr = text_styles.neutral( PERSONAL_MISSIONS.STATUSPANEL_STATUS_IMPROVE) elif quest.canBePawned(): btnVisible = True pawnCost = quest.getPawnCost() btnLabel = _ms( PERSONAL_MISSIONS.STATUSPANEL_FREESHEETBTN_LABEL, count=pawnCost, icon=icons.makeImageTag( RES_ICONS. MAPS_ICONS_PERSONALMISSIONS_SHEET_RECEIVED_SMALL, 16, 16, -3, 8)) if pawnCost <= freeSheets: btnEnabled = True elif chainState.isFullCompleted: status = text_styles.concatStylesWithSpace( icons.checkmark(-2), text_styles.bonusAppliedText( _ms(PERSONAL_MISSIONS.STATUSPANEL_STATUS_ALLEXCELLENTDONE, vehicleClass=vehicleClass))) elif chainState.isCompleted: status = text_styles.concatStylesWithSpace( icons.checkmark(-2), text_styles.bonusAppliedText( _ms(PERSONAL_MISSIONS.STATUSPANEL_STATUS_ALLDONE, vehicleClass=vehicleClass))) elif not chainState.hasVehicle: status = text_styles.concatStylesWithSpace( icons.markerBlocked(), text_styles.error( _ms(PERSONAL_MISSIONS.STATUSPANEL_STATUS_NOVEHICLE, vehicleClass=vehicleClass))) else: status = text_styles.concatStylesWithSpace( icons.makeImageTag( RES_ICONS.MAPS_ICONS_LIBRARY_ATTENTIONICONFILLED, 16, 16, -2), text_styles.neutral( PERSONAL_MISSIONS.STATUSPANEL_STATUS_SELECTTASK)) def tankwomanFilter(quest): tankman, isMainBonus = quest.getTankmanBonus() return tankman and (quest.needToGetAddReward() and not isMainBonus or quest.needToGetMainReward() and isMainBonus) tankwomanQuests = [] for operation in pm.getOperations().itervalues(): tankwomanQuests.extend( operation.getQuestsByFilter(tankwomanFilter).itervalues()) counterText = '' tankwomanVisible = False if tankwomanQuests: counterText = text_styles.highlightText('x%s' % len(tankwomanQuests)) tankwomanVisible = True self.as_setStatusDataS({ 'statusText': status, 'descrText': descr, 'btnVisible': btnVisible, 'btnEnabled': btnEnabled, 'btnLabel': btnLabel, 'sheetsBlockData': { 'freeSheetsText': text_styles.main( _ms(PERSONAL_MISSIONS.STATUSPANEL_FREESHEETS, count=text_styles.highlightText(freeSheets))), 'pawnedSheetsText': text_styles.main( _ms(PERSONAL_MISSIONS.STATUSPANEL_PAWNEDSHEETS, count=text_styles.highlightText(pawnedSheets))), 'tooltipData': { 'isSpecial': True, 'specialAlias': TOOLTIPS_CONSTANTS.FREE_SHEET_RETURN if freeSheets or pawnedSheets else TOOLTIPS_CONSTANTS.FREE_SHEET, 'specialArgs': [] }, 'popover': PERSONAL_MISSIONS_ALIASES.FREE_SHEET_POPOVER }, 'tankgirlsBlockData': { 'counterText': counterText, 'visible': tankwomanVisible, 'tooltipData': { 'isSpecial': True, 'specialAlias': TOOLTIPS_CONSTANTS.PERSONAL_MISSIONS_TANKWOMAN, 'specialArgs': [] }, 'popover': PERSONAL_MISSIONS_ALIASES.TANK_GIRLS_POPOVER }, 'tooltip': None, 'isQuestInProgress': isQuestInProgress }) return