Beispiel #1
0
 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
Beispiel #2
0
 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
Beispiel #3
0
 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))]
Beispiel #4
0
 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
Beispiel #5
0
    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)
Beispiel #6
0
    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)
Beispiel #7
0
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)