def construct(self): paramsDict = dict(params_helper.getParameters(self.vehicle)) block = [] comparator = params_helper.idealCrewComparator(self.vehicle) if self.configuration.params and not self.configuration.simplifiedOnly: for paramName in self.PARAMS.get(self.vehicle.type, 'default'): if paramName in paramsDict: paramInfo = comparator.getExtendedData(paramName) fmtValue = param_formatter.colorizedFormatParameter( paramInfo, param_formatter.BASE_FORMATTERS) if fmtValue is not None: block.append( formatters.packTextParameterBlockData( name=param_formatter.formatVehicleParamName( paramName), value=fmtValue, valueWidth=self._valueWidth, padding=formatters.packPadding(left=-1))) if len(block) > 0: title = text_styles.middleTitle( TOOLTIPS.VEHICLEPARAMS_COMMON_TITLE) block.insert( 0, formatters.packTextBlockData( title, padding=formatters.packPadding(bottom=8))) return block
def _packBlocks(self, paramName): extendedData = self.context.getComparator().getExtendedData(paramName) self.__paramName = extendedData.name title = text_styles.highTitle(MENU.tank_params(paramName)) if param_formatter.isRelativeParameter(paramName): value = param_formatter.colorizedFormatParameter(extendedData, self.context.formatters) title += ' ' + text_styles.warning(_ms(TOOLTIPS.VEHICLEPARAMS_TITLE_VALUETEMPLATE, value=value)) else: title += ' ' + text_styles.middleTitle(MEASURE_UNITS.get(paramName, '')) desc = _ms(TOOLTIPS.tank_params_desc(paramName)) possibleBonuses = sorted(extendedData.possibleBonuses, _bonusCmp) if possibleBonuses is not None and len(possibleBonuses) > 0: desc += ' ' + _ms(TOOLTIPS.VEHICLEPARAMS_POSSIBLEBONUSES_DESC) desc += '\n' + self.__createBonusesStr(possibleBonuses) blocks = [formatters.packTitleDescBlock(title, text_styles.main(desc))] bonuses = sorted(extendedData.bonuses, _bonusCmp) if bonuses is not None and len(bonuses) > 0: blocks.append(formatters.packTitleDescBlock(text_styles.middleTitle(TOOLTIPS.VEHICLEPARAMS_BONUSES_TITLE), text_styles.main(self.__createBonusesStr(bonuses)))) penalties = extendedData.penalties actualPenalties, nullPenaltyTypes = self.__getNumNotNullPenaltyTankman(penalties) penaltiesLen = len(penalties) numNotNullPenaltyTankman = len(actualPenalties) if numNotNullPenaltyTankman > 0: blocks.append(formatters.packTitleDescBlock(text_styles.critical(TOOLTIPS.VEHICLEPARAMS_PENALTIES_TITLE), text_styles.main(self.__createPenaltiesStr(actualPenalties)))) if penaltiesLen > numNotNullPenaltyTankman: blocks.append(formatters.packImageTextBlockData(self.__createTankmanIsOutStr(nullPenaltyTypes), img=RES_ICONS.MAPS_ICONS_LIBRARY_ATTENTIONICONFILLED, imgPadding=formatters.packPadding(top=2, left=3, right=6))) return blocks
def construct(self): block = [] if self.configuration.params: bottom = 8 bottomPadding = formatters.packPadding(bottom=bottom) shell = self.shell comparator = params_helper.shellOnVehicleComparator( shell, self.configuration.vehicle) isDistanceDependent = self._params.pop( 'piercingPowerTable') is not None formattedParameters = params_formatters.getFormattedParamsList( shell.descriptor, self._params) block.append( formatters.packTitleDescBlock(title=text_styles.middleTitle( _ms(TOOLTIPS.TANKCARUSEL_MAINPROPERTY)), padding=bottomPadding)) for paramName, paramValue in formattedParameters: if paramName == ModuleTooltipBlockConstructor.CALIBER: continue if comparator is not None: paramValue = params_formatters.colorizedFormatParameter( comparator.getExtendedData(paramName), params_formatters.BASE_SCHEME) if paramValue is not None: paramUnits = _ms( params_formatters.measureUnitsForParameter(paramName)) isPiercingPower = paramName == 'avgPiercingPower' paramUnits += _ASTERISK if isPiercingPower and not isDistanceDependent else '' block.append( self._packParameterBlock( backport.text( R.strings.menu.moduleInfo.params.dyn(paramName) ()), paramValue, paramUnits)) return block
def __getCommonStatsBlock(self, vehicle): _params = {VEHICLE_CLASS_NAME.LIGHT_TANK: ('enginePowerPerTon', 'speedLimits', WHEELED_SPEED_MODE_SPEED, 'chassisRotationSpeed', 'circularVisionRadius', MAX_STEERING_LOCK_ANGLE, WHEELED_SWITCH_ON_TIME, WHEELED_SWITCH_OFF_TIME), VEHICLE_CLASS_NAME.MEDIUM_TANK: ('avgDamagePerMinute', 'enginePowerPerTon', 'speedLimits', 'chassisRotationSpeed', TURBOSHAFT_SPEED_MODE_SPEED, TURBOSHAFT_ENGINE_POWER), VEHICLE_CLASS_NAME.HEAVY_TANK: ('avgDamage', 'avgPiercingPower', 'hullArmor', 'turretArmor', DUAL_GUN_CHARGE_TIME), VEHICLE_CLASS_NAME.SPG: ('avgDamage', 'stunMinDuration', 'stunMaxDuration', 'reloadTimeSecs', 'aimingTime', 'explosionRadius'), VEHICLE_CLASS_NAME.AT_SPG: ('avgPiercingPower', 'shotDispersionAngle', 'avgDamagePerMinute', 'speedLimits', 'chassisRotationSpeed', 'switchOnTime', 'switchOffTime'), 'default': ('speedLimits', 'enginePower', 'chassisRotationSpeed')} block = [] paramsDict = params_helper.getParameters(vehicle) comparator = params_helper.idealCrewComparator(vehicle) for paramName in _params.get(vehicle.type, 'default'): if paramName in paramsDict: paramInfo = comparator.getExtendedData(paramName) fmtValue = param_formatter.colorizedFormatParameter(paramInfo, None) if fmtValue is not None: block.append(formatters.packTextParameterBlockData(name=param_formatter.formatVehicleParamName(paramName), value=fmtValue, valueWidth=80, padding=formatters.packPadding(left=-1))) return block
def __makeAdvancedParamVO(self, param): return {'state': HANGAR_ALIASES.VEH_PARAM_RENDERER_STATE_ADVANCED, 'titleText': formatters.formatVehicleParamName(param.name, False), 'valueText': formatters.colorizedFormatParameter(param, self._getBaseFormatters()), 'iconSource': formatters.getParameterIconPath(param.name), 'paramID': param.name, 'isEnabled': False, 'tooltip': self._tooltipType}
def construct(self): block = [] if self.configuration.params: top = 8 bottom = 8 topPadding = formatters.packPadding(top=top) bottomPadding = formatters.packPadding(bottom=bottom) shell = self.shell comparator = params_helper.shellComparator( shell, self.configuration.vehicle) piercingPowerTable = self._params.pop('piercingPowerTable') isDistanceDependent = piercingPowerTable is not None colorScheme = params_formatters.COLORLESS_SCHEME if self.configuration.colorless else params_formatters.BASE_SCHEME tableData = [] if isinstance(piercingPowerTable, list): for distance, value in self.__iteratePiercingPowerTable( piercingPowerTable, comparator, colorScheme): tableData.append((value, distance)) formattedParameters = params_formatters.getFormattedParamsList( shell.descriptor, self._params) block.append( formatters.packTitleDescBlock(title=text_styles.middleTitle( _ms(TOOLTIPS.TANKCARUSEL_MAINPROPERTY)), padding=bottomPadding)) for paramName, paramValue in formattedParameters: if paramName == ModuleTooltipBlockConstructor.CALIBER: continue if comparator is not None: paramValue = params_formatters.colorizedFormatParameter( comparator.getExtendedData(paramName), colorScheme) if paramValue is not None: paramUnits = _ms( params_formatters.measureUnitsForParameter(paramName)) isPiercingPower = paramName == 'avgPiercingPower' if isPiercingPower: if piercingPowerTable != NO_DATA: paramUnits += _ASTERISK if tableData and isDistanceDependent: paramValue = '%s-%s' % (tableData[0][0], tableData[-1][0]) block.append( self._packParameterBlock( backport.text( R.strings.menu.moduleInfo.params.dyn(paramName) ()), paramValue, paramUnits)) if piercingPowerTable != NO_DATA: title = _ms(MENU.MODULEINFO_PARAMS_NOPIERCINGDISTANCE_FOOTNOTE) if isDistanceDependent and tableData: title = _ms( MENU.MODULEINFO_PARAMS_PIERCINGDISTANCE_FOOTNOTE, minDist=tableData[0][1], maxDist=tableData[-1][1]) block.append( formatters.packTitleDescBlock( title=text_styles.standard(title), padding=topPadding)) return block
def __makeSimpleParamHeaderVO(self, param, isOpen): return {'state': HANGAR_ALIASES.VEH_PARAM_RENDERER_STATE_SIMPLE_TOP, 'titleText': formatters.formatVehicleParamName(param.name), 'valueText': formatters.colorizedFormatParameter(param, self._getSimplifiedFormatters()), 'paramID': param.name, 'isEnabled': True, 'tooltip': self._tooltipType, 'isOpen': isOpen, 'showDecreaseArrow': param.state[0] == PARAM_STATE.WORSE}
def _packBlocks(self, paramName): blocks = super(VehicleSimpleParametersTooltipData, self)._packBlocks(paramName) title = text_styles.highTitle(MENU.tank_params(paramName)) value = param_formatter.colorizedFormatParameter(self._extendedData, self.context.formatters) desc = text_styles.main(_ms(TOOLTIPS.tank_params_desc(paramName))) comparator = self.context.getComparator() icon = param_formatter.getGroupPenaltyIcon(comparator.getExtendedData(paramName), comparator) valueLeftPadding = -3 if icon else 6 blocks.append(formatters.packTitleDescParameterWithIconBlockData(title, text_styles.warning(_ms(TOOLTIPS.VEHICLEPARAMS_TITLE_VALUETEMPLATE, value=value)), icon=icon, desc=desc, valueAtRight=True, iconPadding=formatters.packPadding(left=0, top=6), valuePadding=formatters.packPadding(left=valueLeftPadding, top=4))) return blocks
def _makeAdvancedParamVO(self, param): if param.value is not None: data = super(_VehParamsGenerator, self)._makeAdvancedParamVO(param) data.update({'titleText': formatters.formatVehicleParamName(param.name, False), 'valueText': formatters.colorizedFormatParameter(param, self._getBaseFormatters()), 'iconSource': formatters.getParameterIconPath(param.name), 'isEnabled': False, 'tooltip': self._tooltipType}) return data else: return
def construct(self): paramsDict = dict(params_helper.getParameters(self.vehicle)) block = [] comparator = params_helper.idealCrewComparator(self.vehicle) if self.configuration.params: for paramName in self.PARAMS.get(self.vehicle.type, 'default'): if paramName in paramsDict: paramInfo = comparator.getExtendedData(paramName) fmtValue = param_formatter.colorizedFormatParameter(paramInfo, param_formatter.BASE_FORMATTERS) if fmtValue is not None: block.append(formatters.packTextParameterBlockData(name=param_formatter.formatVehicleParamName(paramName), value=fmtValue, valueWidth=self._valueWidth, padding=formatters.packPadding(left=-1))) if len(block) > 0: title = text_styles.middleTitle(TOOLTIPS.VEHICLEPARAMS_COMMON_TITLE) block.insert(0, formatters.packTextBlockData(title, padding=formatters.packPadding(bottom=8))) return block
def construct(self): block = [] if self.configuration.params: comparator = params_helper.idealCrewComparator(self.vehicle) stockParams = params_helper.getParameters(self.itemsCache.items.getStockVehicle(self.vehicle.intCD)) for paramName in RELATIVE_PARAMS: paramInfo = comparator.getExtendedData(paramName) fmtValue = param_formatter.colorizedFormatParameter(paramInfo, param_formatter.NO_BONUS_SIMPLIFIED_SCHEME) if fmtValue is not None: buffIconSrc = '' if self.vehicle.isInInventory: buffIconSrc = param_formatter.getGroupPenaltyIcon(paramInfo, comparator) block.append(formatters.packStatusDeltaBlockData(title=param_formatter.formatVehicleParamName(paramName), valueStr=fmtValue, statusBarData=SimplifiedBarVO(value=paramInfo.value, markerValue=stockParams[paramName]), buffIconSrc=buffIconSrc, padding=formatters.packPadding(left=74, top=8))) if block: block.insert(0, formatters.packTextBlockData(text_styles.middleTitle(_ms(TOOLTIPS.VEHICLEPARAMS_SIMPLIFIED_TITLE)), padding=formatters.packPadding(top=-4))) return block
def _packBlocks(self, paramName): extendedData = self.context.getComparator().getExtendedData(paramName) self.__paramName = extendedData.name title = text_styles.highTitle(MENU.tank_params(paramName)) if param_formatter.isRelativeParameter(paramName): value = '' if self.context.showTitleValue: value = param_formatter.colorizedFormatParameter( extendedData, self.context.formatters) title += ' ' + text_styles.warning( _ms(TOOLTIPS.VEHICLEPARAMS_TITLE_VALUETEMPLATE, value=value)) else: title += ' ' + text_styles.middleTitle( MEASURE_UNITS.get(paramName, '')) desc = _ms(TOOLTIPS.tank_params_desc(paramName)) possibleBonuses = sorted(extendedData.possibleBonuses, _bonusCmp) if possibleBonuses is not None and len(possibleBonuses) > 0: desc += ' ' + _ms(TOOLTIPS.VEHICLEPARAMS_POSSIBLEBONUSES_DESC) desc += '\n' + self.__createBonusesStr(possibleBonuses) blocks = [formatters.packTitleDescBlock(title, text_styles.main(desc))] bonuses = sorted(extendedData.bonuses, _bonusCmp) if bonuses is not None and len(bonuses) > 0: blocks.append( formatters.packTitleDescBlock( text_styles.middleTitle( TOOLTIPS.VEHICLEPARAMS_BONUSES_TITLE), text_styles.main(self.__createBonusesStr(bonuses)))) penalties = extendedData.penalties actualPenalties, nullPenaltyTypes = self.__getNumNotNullPenaltyTankman( penalties) penaltiesLen = len(penalties) numNotNullPenaltyTankman = len(actualPenalties) if numNotNullPenaltyTankman > 0: blocks.append( formatters.packTitleDescBlock( text_styles.critical( TOOLTIPS.VEHICLEPARAMS_PENALTIES_TITLE), text_styles.main( self.__createPenaltiesStr(actualPenalties)))) if penaltiesLen > numNotNullPenaltyTankman: blocks.append( formatters.packImageTextBlockData( self.__createTankmanIsOutStr(nullPenaltyTypes), img=RES_ICONS.MAPS_ICONS_LIBRARY_ATTENTIONICONFILLED, imgPadding=formatters.packPadding(top=2, left=3, right=6))) return blocks
def construct(self): block = [] if self.configuration.params: top = 8 bottom = 8 topPadding = formatters.packPadding(top=top) bottomPadding = formatters.packPadding(bottom=bottom) tbPadding = formatters.packPadding(top=top, bottom=bottom) shell = self.shell comparator = params_helper.shellComparator(shell, self.configuration.vehicle) piercingPowerTable = self._params.pop('piercingPowerTable') isDistanceDependent = piercingPowerTable is not None maxShotDistance = self._params.pop('maxShotDistance', None) formattedParameters = params_formatters.getFormattedParamsList(shell.descriptor, self._params) block.append(formatters.packTitleDescBlock(title=text_styles.middleTitle(_ms(TOOLTIPS.TANKCARUSEL_MAINPROPERTY)), padding=bottomPadding)) for paramName, paramValue in formattedParameters: if comparator is not None: paramValue = params_formatters.colorizedFormatParameter(comparator.getExtendedData(paramName), params_formatters.BASE_SCHEME) if paramValue is not None: paramUnits = _ms(params_formatters.measureUnitsForParameter(paramName)) isPiercingPower = paramName == 'avgPiercingPower' paramUnits += _ASTERISK if isPiercingPower and not isDistanceDependent else '' if not (isPiercingPower and isDistanceDependent): block.append(self._packParameterBlock(_ms('#menu:moduleInfo/params/' + paramName), paramValue, paramUnits)) if isinstance(piercingPowerTable, list): piercingUnits = _ms(params_formatters.measureUnitsForParameter('piercingPower')) block.append(formatters.packTitleDescBlock(title=text_styles.standard(_ms(MENU.MODULEINFO_PARAMS_PIERCINGDISTANCEHEADER)), padding=tbPadding)) for distance, value in self.__iteratePiercingPowerTable(piercingPowerTable, comparator): if maxShotDistance is not None and distance == _AUTOCANNON_SHOT_DISTANCE: piercingUnits += _ASTERISK block.append(self._packParameterBlock(_ms(MENU.MODULEINFO_PARAMS_PIERCINGDISTANCE, dist=distance), value, piercingUnits)) if maxShotDistance is not None: block.append(formatters.packTitleDescBlock(title=text_styles.standard(_ms(MENU.MODULEINFO_PARAMS_MAXSHOTDISTANCE_FOOTNOTE)), padding=topPadding)) elif piercingPowerTable != NO_DATA: title = _ms(MENU.MODULEINFO_PARAMS_NOPIERCINGDISTANCE_FOOTNOTE) distanceNote = '' if maxShotDistance is not None: distanceNote = _ms(MENU.MODULEINFO_PARAMS_NOPIERCINGDISTANCE_FOOTNOTE_MAXDISTANCE) title = title % distanceNote block.append(formatters.packTitleDescBlock(title=text_styles.standard(title), padding=topPadding)) return block
def _makeAdvancedParamVO(self, param): if param.value: data = super(_VehParamsGenerator, self)._makeAdvancedParamVO(param) data.update({ 'titleText': formatters.formatVehicleParamName(param.name, False), 'valueText': formatters.colorizedFormatParameter(param, self._getBaseFormatters()), 'iconSource': formatters.getParameterIconPath(param.name), 'isEnabled': False, 'tooltip': self._tooltipType }) return data else: return None
def construct(self): module = self.module vehicle = self.configuration.vehicle params = self.configuration.params block = [] vDescr = vehicle.descriptor if vehicle is not None else None moduleParams = params_helper.getParameters(module, vDescr) paramsKeyName = module.itemTypeID if params: reloadingType = None if module.itemTypeID == GUI_ITEM_TYPE.GUN: reloadingType = module.getReloadingType(vehicle.descriptor if vehicle is not None else None) if reloadingType == GUN_CLIP: paramsKeyName = self.CLIP_GUN_MODULE_PARAM paramsList = self.MODULE_PARAMS.get(paramsKeyName, []) if vehicle is not None: if module.itemTypeID == GUI_ITEM_TYPE.OPTIONALDEVICE: currModule = module else: currModuleDescr, _ = vehicle.descriptor.getComponentsByType(module.itemTypeName) currModule = self.itemsCache.items.getItemByCD(currModuleDescr.compactDescr) comparator = params_helper.itemsComparator(module, currModule, vehicle.descriptor) for paramName in paramsList: if paramName in moduleParams: paramInfo = comparator.getExtendedData(paramName) fmtValue = params_formatters.colorizedFormatParameter(paramInfo, self.__colorScheme) if fmtValue is not None: block.append(formatters.packTextParameterBlockData(name=params_formatters.formatModuleParamName(paramName), value=fmtValue, valueWidth=self._valueWidth, padding=formatters.packPadding(left=-5))) else: formattedModuleParameters = params_formatters.getFormattedParamsList(module.descriptor, moduleParams) for paramName, paramValue in formattedModuleParameters: if paramName in paramsList and paramValue is not None: block.append(formatters.packTextParameterBlockData(name=params_formatters.formatModuleParamName(paramName), value=paramValue, valueWidth=self._valueWidth, padding=formatters.packPadding(left=-5))) if block: block.insert(0, formatters.packTextBlockData(text_styles.middleTitle(_ms(TOOLTIPS.TANKCARUSEL_MAINPROPERTY)), padding=formatters.packPadding(bottom=8))) return block
def construct(self): module = self.module vehicle = self.configuration.vehicle params = self.configuration.params block = [] vDescr = vehicle.descriptor if vehicle is not None else None moduleParams = dict(params_helper.getParameters(module, vDescr)) paramsKeyName = module.itemTypeID if params: reloadingType = None if module.itemTypeID == GUI_ITEM_TYPE.GUN: reloadingType = module.getReloadingType(vehicle.descriptor if vehicle is not None else None) if reloadingType == GUN_CLIP: paramsKeyName = self.CLIP_GUN_MODULE_PARAM paramsList = self.MODULE_PARAMS.get(paramsKeyName, []) if vehicle is not None: if module.itemTypeID == GUI_ITEM_TYPE.OPTIONALDEVICE: currModule = module else: currModuleDescr, _ = vehicle.descriptor.getComponentsByType(module.itemTypeName) currModule = g_itemsCache.items.getItemByCD(currModuleDescr['compactDescr']) comparator = params_helper.itemsComparator(module, currModule, vehicle.descriptor) for paramName in paramsList: if paramName in moduleParams: paramInfo = comparator.getExtendedData(paramName) fmtValue = params_formatters.colorizedFormatParameter(paramInfo, params_formatters.BASE_FORMATTERS) if fmtValue is not None: block.append(formatters.packTextParameterBlockData(name=params_formatters.formatModuleParamName(paramName), value=fmtValue, valueWidth=self._valueWidth, padding=formatters.packPadding(left=-5))) else: formattedModuleParameters = params_formatters.getFormattedParamsList(module.descriptor, moduleParams) for paramName, paramValue in formattedModuleParameters: if paramName in paramsList and paramValue is not None: block.append(formatters.packTextParameterBlockData(name=params_formatters.formatModuleParamName(paramName), value=paramValue, valueWidth=self._valueWidth, padding=formatters.packPadding(left=-5))) if len(block) > 0: block.insert(0, formatters.packTextBlockData(text_styles.middleTitle(_ms(TOOLTIPS.TANKCARUSEL_MAINPROPERTY)), padding=formatters.packPadding(bottom=8))) return block
def _getSimplifiedValue(self, param): return formatters.colorizedFormatParameter( param, formatters.NO_BONUS_SIMPLIFIED_SCHEME)
def _getSimplifiedValue(self, param): return formatters.colorizedFormatParameter(param, formatters.NO_BONUS_SIMPLIFIED_FORMATTERS)