Exemple #1
0
    def _packBlocks(self, role):
        blocks = []
        bodyStr = '%s/%s' % (TOOLTIPS.VEHICLEPREVIEW_CREW, role)
        crewParams = [
            text_styles.neutral(param) for param in _CREW_TOOLTIP_PARAMS[role]
        ]
        blocks.append(
            formatters.packTitleDescBlock(
                text_styles.highTitle(ITEM_TYPES.tankman_roles(role)),
                text_styles.main(_ms(bodyStr, *crewParams))))
        vehicle = self.context.getVehicle()
        for idx, tankman in vehicle.crew:
            if tankman.role == role:
                otherRoles = list(vehicle.descriptor.type.crewRoles[idx])
                otherRoles.remove(tankman.role)
                if otherRoles:
                    rolesStr = ', '.join([
                        text_styles.stats(_ms(ITEM_TYPES.tankman_roles(r)))
                        for r in otherRoles
                    ])
                    blocks.append(
                        formatters.packTextBlockData(
                            text_styles.main(
                                _ms(TOOLTIPS.
                                    VEHICLEPREVIEW_CREW_ADDITIONALROLES,
                                    roles=rolesStr))))

        return blocks
Exemple #2
0
    def _packBlocks(self, role):
        blocks = []
        bodyStr = '%s/%s' % (TOOLTIPS.VEHICLEPREVIEW_CREW, role)
        crewParams = [ text_styles.neutral(param) for param in _CREW_TOOLTIP_PARAMS[role] ]
        blocks.append(formatters.packTitleDescBlock(text_styles.highTitle(ITEM_TYPES.tankman_roles(role)), text_styles.main(_ms(bodyStr, *crewParams))))
        vehicle = self.context.getVehicle()
        for idx, tankman in vehicle.crew:
            if tankman.role == role:
                otherRoles = list(vehicle.descriptor.type.crewRoles[idx])
                otherRoles.remove(tankman.role)
                if otherRoles:
                    rolesStr = ', '.join([ text_styles.stats(_ms(ITEM_TYPES.tankman_roles(r))) for r in otherRoles ])
                    blocks.append(formatters.packTextBlockData(text_styles.main(_ms(TOOLTIPS.VEHICLEPREVIEW_CREW_ADDITIONALROLES, roles=rolesStr))))

        return blocks
Exemple #3
0
    def __createPenaltiesStr(self, penalties):
        result = []
        for tankmanType, value, isOtherVehicle in penalties:
            if not param_formatter.isRelativeParameter(self.__paramName):
                valueStr = str(
                    param_formatter.baseFormatParameter(
                        self.__paramName, value))
                if value > 0:
                    valueStr = '+' + valueStr
                valueStr = text_styles.error(
                    _ms(TOOLTIPS.VEHICLEPARAMS_PENALTY_TANKMANLEVEL_VALUE,
                        value=valueStr))
            else:
                valueStr = ''
            if isOtherVehicle:
                locKey = TOOLTIPS.VEHICLEPARAMS_PENALTY_TANKMANDIFFERENTVEHICLE_TEMPLATE
            else:
                locKey = TOOLTIPS.VEHICLEPARAMS_PENALTY_TANKMANLEVEL_TEMPLATE
            result.append(
                text_styles.main(
                    _ms(locKey,
                        tankmanType=_ms(ITEM_TYPES.tankman_roles(tankmanType)),
                        value=valueStr)))

        return '\n'.join(result)
    def __getCrewData(self, currentVehicle, showTankmanSkills):
        regularCrewList, uniqueCrewList = [], []
        if currentVehicle:
            uniqueCrewList.extend(getUniqueMembers(currentVehicle))
        if self.__customCrew:
            for idx, tankman in self.__customCrew:
                tankmanData = tankman.getVO(showTankmanSkills)
                tankmanData.update({'crewId': idx})
                if tankman.iconID or tankman.isFemale:
                    uniqueCrewList.append(tankmanData)
                regularCrewList.append(tankmanData)

        else:
            for idx, tankman in currentVehicle.crew:
                role = tankman.descriptor.role
                roleIdx = SKILL_INDICES[role]
                regularCrewList.append({
                    'crewId':
                    roleIdx,
                    'icon':
                    RES_ICONS.getItemBonus42x42(role),
                    'name':
                    ITEM_TYPES.tankman_roles(role),
                    'tooltip':
                    TOOLTIPS_CONSTANTS.VEHICLE_PREVIEW_CREW_MEMBER,
                    'role':
                    role
                })

        return (regularCrewList, uniqueCrewList)
Exemple #5
0
    def __createTankmanIsOutStr(self, types):
        men = ''
        typesLen = len(types)
        for i, type in enumerate(types):
            men += _ms(ITEM_TYPES.tankman_roles(type))
            if i < typesLen - 1:
                men += ', '

        return text_styles.alert(_ms(TOOLTIPS.VEHICLEPARAMS_WARNING_TANKMANISOUT, tankmen=men))
Exemple #6
0
    def __createTankmanIsOutStr(self, types):
        men = ''
        typesLen = len(types)
        for i, type in enumerate(types):
            men += _ms(ITEM_TYPES.tankman_roles(type))
            if i < typesLen - 1:
                men += ', '

        return text_styles.alert(
            _ms(TOOLTIPS.VEHICLEPARAMS_WARNING_TANKMANISOUT, tankmen=men))
 def __packSkill(crewRole, skills):
     skills = cmp_helpers.sortSkills(skills)
     skillsStr = ' '.join(
         (icons.makeImageTag(getSkillSmallIconPath(skillType), 14, 14,
                             0, 0) for skillType in skills))
     return formatters.packCrewSkillsBlockData(
         text_styles.main(ITEM_TYPES.tankman_roles(crewRole)),
         skillsStr,
         getRoleWhiteIconPath(crewRole),
         padding={'left': -10})
    def _update(self):
        crewData = []
        for _, tankman in g_currentPreviewVehicle.item.crew:
            role = tankman.descriptor.role
            crewData.append({
                'icon':
                RES_ICONS.getItemBonus42x42(role),
                'name':
                text_styles.middleTitle(ITEM_TYPES.tankman_roles(role)),
                'tooltip':
                TOOLTIPS_CONSTANTS.VEHICLE_PREVIEW_CREW_MEMBER,
                'role':
                role
            })

        vehicleCrewComment = i18n.makeString(
            TOOLTIPS.VEHICLEPREVIEW_VEHICLEPANEL_INFO_HEADER_NOCREW)
        if self.__vehicleItems and self.__crewItems:
            currentVehicle = g_currentPreviewVehicle.item
            gID = None
            for item in self.__vehicleItems:
                if item.id == currentVehicle.intCD:
                    gID = item.groupID
                    break

            try:
                topCrewItem = sorted(
                    [item for item in self.__crewItems if item.groupID == gID],
                    key=lambda item: ItemPackTypeGroup.CREW.index(item.type
                                                                  ))[-1]
            except IndexError:
                topCrewItem = None

            if topCrewItem is not None:
                pctValue = {
                    ItemPackType.CREW_50: 50,
                    ItemPackType.CREW_75: 75,
                    ItemPackType.CREW_100: 100
                }.get(topCrewItem.type)
                if pctValue is not None:
                    vehicleCrewComment = i18n.makeString(
                        TOOLTIPS.
                        VEHICLEPREVIEW_VEHICLEPANEL_INFO_HEADER_WITHCREW,
                        pctValue)
        self.as_setDataS({
            'listDesc':
            text_styles.main(
                VEHICLE_PREVIEW.INFOPANEL_TAB_CREWINFO_LISTDESC_TEXT),
            'vehicleCrewComment':
            text_styles.middleTitle(vehicleCrewComment),
            'crewList':
            crewData
        })
        return
    def __packCrewInfoData(self):
        crewData = []
        for idx, tankman in g_currentPreviewVehicle.item.crew:
            role = tankman.descriptor.role
            crewData.append({'icon': getBonusIcon42x42(role),
             'name': text_styles.middleTitle(ITEM_TYPES.tankman_roles(role)),
             'tooltip': TOOLTIPS_CONSTANTS.VEHICLE_PREVIEW_CREW_MEMBER,
             'role': role})

        return {'listDesc': text_styles.main(VEHICLE_PREVIEW.INFOPANEL_TAB_CREWINFO_LISTDESC_TEXT),
         'crewList': crewData,
         'showNationFlag': False}
    def __packCrewInfoData(self):
        crewData = []
        for idx, tankman in g_currentPreviewVehicle.item.crew:
            role = tankman.descriptor.role
            crewData.append({'icon': getBonusIcon42x42(role),
             'name': text_styles.middleTitle(ITEM_TYPES.tankman_roles(role)),
             'tooltip': TOOLTIPS_CONSTANTS.VEHICLE_PREVIEW_CREW_MEMBER,
             'role': role})

        return {'listDesc': text_styles.main(VEHICLE_PREVIEW.INFOPANEL_TAB_CREWINFO_LISTDESC_TEXT),
         'crewList': crewData,
         'showNationFlag': False}
Exemple #11
0
    def __createPenaltiesStr(self, penalties):
        result = []
        for tankmanType, value, isOtherVehicle in penalties:
            if not param_formatter.isRelativeParameter(self.__paramName):
                valueStr = str(param_formatter.baseFormatParameter(self.__paramName, value))
                if value > 0:
                    valueStr = '+' + valueStr
                valueStr = text_styles.error(_ms(TOOLTIPS.VEHICLEPARAMS_PENALTY_TANKMANLEVEL_VALUE, value=valueStr))
            else:
                valueStr = ''
            if isOtherVehicle:
                locKey = TOOLTIPS.VEHICLEPARAMS_PENALTY_TANKMANDIFFERENTVEHICLE_TEMPLATE
            else:
                locKey = TOOLTIPS.VEHICLEPARAMS_PENALTY_TANKMANLEVEL_TEMPLATE
            result.append(text_styles.main(_ms(locKey, tankmanType=_ms(ITEM_TYPES.tankman_roles(tankmanType)), value=valueStr)))

        return '\n'.join(result)
Exemple #12
0
    def _getPenalties(self):
        result = []
        penalties = self._extendedData.penalties
        actualPenalties, nullPenaltyTypes = _getNumNotNullPenaltyTankman(penalties)
        penaltiesLen = len(penalties)
        numNotNullPenaltyTankman = len(actualPenalties)
        if penaltiesLen > numNotNullPenaltyTankman:
            result.append(formatters.packTitleDescParameterWithIconBlockData(text_styles.main(_ms(TOOLTIPS.VEHICLEPARAMS_PENALTY_CREWNOTFULL_TEMPLATE)), icon=RES_ICONS.MAPS_ICONS_VEHPARAMS_TOOLTIPS_PENALTIES_ALL, iconPadding=self.__iconPadding, titlePadding=self.__titlePadding, padding=self.__listPadding))
        if numNotNullPenaltyTankman > 0:
            for penalty in penalties:
                valueStr = _formatValueChange(self.__paramName, penalty.value)
                if valueStr:
                    if penalty.vehicleIsNotNative:
                        locKey = TOOLTIPS.VEHICLEPARAMS_PENALTY_TANKMANDIFFERENTVEHICLE_TEMPLATE
                    else:
                        locKey = TOOLTIPS.VEHICLEPARAMS_PENALTY_TANKMANLEVEL_TEMPLATE
                    penaltyStr = text_styles.main(_ms(locKey, tankmanType=_ms(ITEM_TYPES.tankman_roles(penalty.roleName))))
                    result.append(formatters.packTitleDescParameterWithIconBlockData(penaltyStr, text_styles.warning(_ms(TOOLTIPS.VEHICLEPARAMS_TITLE_VALUETEMPLATE, value=valueStr)), icon=param_formatter.getPenaltyIcon(penalty.roleName), iconPadding=self.__iconPadding, titlePadding=self.__titlePadding, padding=self.__listPadding))

        return result
 def __convertCrewSkinData(self, crewSkin, tankman):
     cache = tankmen.g_cache.crewSkins()
     LOC_MAP = {}
     if crewSkin.getRoleID() is not None:
         LOC_MAP[CREW_SKIN_PROPERTIES_MASKS.ROLE] = i18n.makeString(ITEM_TYPES.tankman_roles(crewSkin.getRoleID()))
     if crewSkin.getSex() in TANKMAN_SEX.ALL:
         LOC_MAP[CREW_SKIN_PROPERTIES_MASKS.SEX] = backport.text(R.strings.item_types.tankman.gender.dyn(GenderRestrictionsLocales.KEYS[crewSkin.getSex()])())
     if crewSkin.getNation() is not None:
         LOC_MAP[CREW_SKIN_PROPERTIES_MASKS.NATION] = i18n.makeString(NATIONS.all(crewSkin.getNation()))
     validation, validationMask, _ = cache.validateCrewSkin(tankman.descriptor, crewSkin.getID())
     soundValidation = crewSkin.getRoleID() == tankman.role if crewSkin.getRoleID() is not None else True
     if not SoundGroups.g_instance.soundModes.currentNationalPreset[1]:
         soundValidation = False
     restrictionsMessage = backport.text(R.strings.tooltips.crewSkins.restrictions())
     if not validation:
         restrictions = [ loc for key, loc in LOC_MAP.iteritems() if key & validationMask ]
         restrictionsMessage += ' ' + ', '.join(restrictions)
     soundSetID = crewSkin.getSoundSetID()
     soundSetRes = R.strings.crew_skins.feature.sound.dyn(soundSetID)() if soundSetID != NO_CREW_SKIN_SOUND_SET else R.strings.crew_skins.feature.sound.noSound()
     return {'id': crewSkin.getID(),
      'fullName': localizedFullName(crewSkin),
      'description': crewSkin.getDescription(),
      'iconID': getCrewSkinIconSmall(crewSkin.getIconID()),
      'roleIconID': getCrewSkinRolePath(crewSkin.getRoleID()),
      'nationFlagIconID': getCrewSkinNationPath(crewSkin.getNation()),
      'rarity': crewSkin.getRarity(),
      'maxCount': crewSkin.getMaxCount(),
      'freeCount': crewSkin.getFreeCount(),
      'historical': crewSkin.getHistorical(),
      'soundSetID': crewSkin.getSoundSetID(),
      'useCount': len(crewSkin.getTankmenIDs()),
      'isEquip': self.tmanInvID in crewSkin.getTankmenIDs(),
      'isNew': crewSkin.isNew() and not PersonalCase.crewSkinsHAConfig.checkForViewed(crewSkin.getID()),
      'isAvailable': validation,
      'notAvailableMessage': restrictionsMessage,
      'soundSetName': backport.text(soundSetRes),
      'soundSetIsAvailable': soundValidation if crewSkin.getSoundSetID() != NO_CREW_SKIN_SOUND_SET else True}
Exemple #14
0
 def _packBlocks(self, role, *args, **kwargs):
     return self._packAdvancedBlocks(_TANKMAN_MOVIES[role],
                                     ITEM_TYPES.tankman_roles(role), role)
 def fullUserName(self):
     if self.firstNameID and self.lastNameID:
         return getFullUserName(self.nationID, self.firstNameID,
                                self.lastNameID)
     return TOOLTIPS.AWARDITEM_TANKWOMEN_HEADER if self.isFemale else ITEM_TYPES.tankman_roles(
         self.role)