def getCrewBoosterDescription(self, isPerkReplace, formatter=None): if not self.isCrewBooster(): raise SoftException('This description is only for Crew Booster!') action = i18n.makeString( ARTEFACTS.CREWBATTLEBOOSTER_DESCR_REPLACE if isPerkReplace else ARTEFACTS.CREWBATTLEBOOSTER_DESCR_BOOST) if self.getAffectedSkillName() in PERKS: skillOrPerk = i18n.makeString( ARTEFACTS.CREWBATTLEBOOSTER_DESCR_PERK) else: skillOrPerk = i18n.makeString( ARTEFACTS.CREWBATTLEBOOSTER_DESCR_SKILL) skillName = i18n.makeString( ITEM_TYPES.tankman_skills(self.getAffectedSkillName())) description = i18n.makeString(ARTEFACTS.CREWBATTLEBOOSTER_DESCR_COMMON) if formatter is None: formatted = description.format(action=action, skillOrPerk=skillOrPerk, name=skillName, colorTagOpen='', colorTagClose='') else: formatted = description.format(action=action, skillOrPerk=skillOrPerk, name=skillName, **formatter) return formatted
def getCrewBoosterDescription(self, isPerkReplace, formatter=None): """ Constructs crew booster description. There can be perk replace or perk boost text. :param isPerkReplace: should 'perk replace' or 'perk boost' text be returned :param formatter: pass function to format the result, None - without formatting :return: formatted string """ if not self.isCrewBooster(): raise AssertionError('This description is only for Crew Booster!') action = i18n.makeString( ARTEFACTS.CREWBATTLEBOOSTER_DESCR_REPLACE if isPerkReplace else ARTEFACTS.CREWBATTLEBOOSTER_DESCR_BOOST) if self.getAffectedSkillName() in PERKS: skillOrPerk = i18n.makeString( ARTEFACTS.CREWBATTLEBOOSTER_DESCR_PERK) else: skillOrPerk = i18n.makeString( ARTEFACTS.CREWBATTLEBOOSTER_DESCR_SKILL) skillName = i18n.makeString( ITEM_TYPES.tankman_skills(self.getAffectedSkillName())) description = i18n.makeString( ARTEFACTS.CREWBATTLEBOOSTER_DESCR_COMMON) formatted = formatter is None and description.format( action=action, skillOrPerk=skillOrPerk, name=skillName, colorTagOpen='', colorTagClose='') else: formatted = description.format(action=action, skillOrPerk=skillOrPerk, name=skillName, **formatter) return formatted
def _getFootNoteBlock(self, noteType): if noteType == 'optional': desc = text_styles.standard(TOOLTIPS.VEHICLEPARAMS_BONUS_SITUATIONAL) img = RES_ICONS.MAPS_ICONS_TOOLTIP_ASTERISK_OPTIONAL else: conditionsToActivate = set(self._extendedData.inactiveBonuses.values()) conditionsToActivate = map(lambda (bnsID, _): _ms(ITEM_TYPES.tankman_skills(bnsID)), conditionsToActivate) desc = text_styles.standard(_ms(TOOLTIPS.VEHICLEPARAMS_BONUS_INACTIVEDESCRIPTION, skillName=', '.join(conditionsToActivate))) img = RES_ICONS.MAPS_ICONS_TOOLTIP_ASTERISK_RED return [formatters.packImageTextBlockData(title='', desc=desc, img=img, imgPadding=formatters.packPadding(left=4, top=3), txtGap=-4, txtOffset=20, padding=formatters.packPadding(left=59, right=20))]
def construct(self): block = [] module = self.module vehicle = self.configuration.vehicle if module.isCrewBooster(): skillLearnt = module.isAffectedSkillLearnt(vehicle) skillName = _ms( ITEM_TYPES.tankman_skills(module.getAffectedSkillName())) replaceText = module.getCrewBoosterAction(True) boostText = module.getCrewBoosterAction(False) skillNotLearntText = text_styles.standard( TOOLTIPS.BATTLEBOOSTER_SKILL_NOT_LEARNT) skillLearntText = text_styles.standard( TOOLTIPS.BATTLEBOOSTER_SKILL_LEARNT) applyStyles = vehicle is not None replaceText, boostText = self.__getSkillTexts( skillLearnt, replaceText, boostText, applyStyles) block.append( formatters.packImageTextBlockData( title=replaceText, img=RES_ICONS.MAPS_ICONS_BUTTONS_CHECKMARK if not skillLearnt and applyStyles else None, imgPadding=formatters.packPadding(left=2, top=3), txtOffset=20)) block.append( formatters.packImageTextBlockData(title=skillNotLearntText % skillName, txtOffset=20)) block.append( formatters.packImageTextBlockData( title=boostText, img=RES_ICONS.MAPS_ICONS_BUTTONS_CHECKMARK if skillLearnt and applyStyles else None, imgPadding=formatters.packPadding(left=2, top=3), txtOffset=20, padding=formatters.packPadding(top=15))) block.append( formatters.packImageTextBlockData(title=skillLearntText % skillName, txtOffset=20)) else: desc = text_styles.bonusAppliedText( module.getOptDeviceBoosterDescription(vehicle)) block.append( formatters.packTitleDescBlock( title='', desc=desc, padding=formatters.packPadding(top=-8))) return block
def __createBonusesStr(self, bonuses): result = [] for bnsId, bnsType in bonuses: if bnsType in _ARTEFACT_TYPES: bnsTypeStr = "" if bnsType == _EQUIPMENT: bnsTypeStr = TOOLTIPS.VEHICLE_EQUIPMENTS if bnsType == _OPTION_DEVICE: bnsTypeStr = TOOLTIPS.VEHICLE_DEVICES result.append( text_styles.main( _ms( TOOLTIPS.VEHICLEPARAMS_BONUS_ARTEFACT_TEMPLATE, name=_ms("#artefacts:%s/name" % bnsId), type=text_styles.standard(bnsTypeStr), ) ) ) elif bnsType == _SKILL_BONUS_TYPE: result.append( text_styles.main( _ms( TOOLTIPS.VEHICLEPARAMS_BONUS_SKILL_TEMPLATE, name=_ms(ITEM_TYPES.tankman_skills(bnsId)), type=text_styles.standard(_ms(TOOLTIPS.VEHICLEPARAMS_SKILL_NAME)), ) ) ) elif bnsType == _ROLE_BONUS_TYPE: result.append( text_styles.main( _ms( "#tooltips:vehicleParams/bonus/role/template", name=_ms("#tooltips:vehicleParams/bonus/tankmanLevel/%s" % bnsId), ) ) ) elif bnsType == _EXTRA_BONUS_TYPE: result.append( text_styles.main( _ms( "#tooltips:vehicleParams/bonus/role/template", name=_ms("#tooltips:vehicleParams/bonus/extra/%s" % bnsId), ) ) ) return "\n".join(result)
def __createBonusesStr(self, bonuses): result = [] for bnsId, bnsType in bonuses: if bnsType in _ARTEFACT_TYPES: bnsTypeStr = '' if bnsType == _EQUIPMENT: bnsTypeStr = TOOLTIPS.VEHICLE_EQUIPMENTS if bnsType == _OPTION_DEVICE: bnsTypeStr = TOOLTIPS.VEHICLE_DEVICES result.append( text_styles.main( _ms(TOOLTIPS.VEHICLEPARAMS_BONUS_ARTEFACT_TEMPLATE, name=_ms('#artefacts:%s/name' % bnsId), type=text_styles.standard(bnsTypeStr)))) elif bnsType == _SKILL_BONUS_TYPE: result.append( text_styles.main( _ms(TOOLTIPS.VEHICLEPARAMS_BONUS_SKILL_TEMPLATE, name=_ms(ITEM_TYPES.tankman_skills(bnsId)), type=text_styles.standard( _ms(TOOLTIPS.VEHICLEPARAMS_SKILL_NAME))))) elif bnsType == _ROLE_BONUS_TYPE: result.append( text_styles.main( _ms('#tooltips:vehicleParams/bonus/role/template', name=_ms( '#tooltips:vehicleParams/bonus/tankmanLevel/%s' % bnsId)))) elif bnsType == _EXTRA_BONUS_TYPE: result.append( text_styles.main( _ms('#tooltips:vehicleParams/bonus/role/template', name=_ms('#tooltips:vehicleParams/bonus/extra/%s' % bnsId)))) return '\n'.join(result)
def _packBonusName(bnsType, bnsId, enabled = True, inactive = False): itemStr = None textStyle = text_styles.main if enabled else text_styles.standard if bnsType in (_EQUIPMENT, _OPTION_DEVICE): itemStr = textStyle(_ms('#artefacts:%s/name' % bnsId)) elif bnsType == _SKILL_BONUS_TYPE: itemStr = textStyle(_ms(TOOLTIPS.VEHICLEPARAMS_BONUS_SKILL_TEMPLATE, name=_ms(ITEM_TYPES.tankman_skills(bnsId)), type=text_styles.standard(_ms(TOOLTIPS.VEHICLEPARAMS_SKILL_NAME)))) elif bnsType == _ROLE_BONUS_TYPE: itemStr = textStyle(_ms(TOOLTIPS.VEHICLEPARAMS_BONUS_ROLE_TEMPLATE, name=_ms(TOOLTIPS.vehicleparams_bonus_tankmanlevel(bnsId)))) elif bnsType == _EXTRA_BONUS_TYPE: itemStr = textStyle(_ms(TOOLTIPS.VEHICLEPARAMS_BONUS_ROLE_TEMPLATE, name=_ms(TOOLTIPS.vehicleparams_bonus_extra(bnsId)))) elif bnsType == _BATTLE_BOOSTER: itemStr = textStyle(_ms(TOOLTIPS.VEHICLEPARAMS_BONUS_BATTLEBOOSTER_TEMPLATE, name=_ms('#artefacts:{boosterId}/name'.format(boosterId=bnsId)))) if inactive: itemStr += _ms(TOOLTIPS.VEHICLEPARAMS_BONUS_POSSIBLE_ISINACTIVE) icon = icons.makeImageTag(RES_ICONS.MAPS_ICONS_TOOLTIP_ASTERISK_RED, 16, 16, 0, 2) itemStr = param_formatter.packSituationalIcon(itemStr, icon) elif not enabled: itemStr += _ms(TOOLTIPS.VEHICLEPARAMS_BONUS_POSSIBLE_NOTINSTALLED) return textStyle(itemStr)