Beispiel #1
0
def getVehicleParams(item, vehicle, callback):
    vd = item.descriptor
    if GUI_SETTINGS.technicalInfo:
        parameters = {'parameters': [('maxHealth', vd.maxHealth),
                        ('weight', '%s/%s' % (BigWorld.wg_getNiceNumberFormat(vd.physics['weight'] / 1000), BigWorld.wg_getNiceNumberFormat(vd.miscAttrs['maxWeight'] / 1000))),
                        ('enginePower', BigWorld.wg_getIntegralFormat(round(vd.physics['enginePower'] / 735.5))),
                        ('speedLimits', BigWorld.wg_getNiceNumberFormat(round(vd.physics['speedLimits'][0] * 3.6, 2))),
                        ('chassisRotationSpeed', BigWorld.wg_getNiceNumberFormat(round(180 / math.pi * vd.chassis['rotationSpeed'], 0))),
                        ('hullArmor', '%d/%d/%d' % vd.hull['primaryArmor'])]}
        if item.hasTurrets:
            parameters['parameters'].append(('turretArmor', '%d/%d/%d' % vd.turret['primaryArmor']))
        pPower = (BigWorld.wg_getIntegralFormat(round(vd.shot['piercingPower'][0] - vd.shot['piercingPower'][0] * vd.shot['shell']['piercingPowerRandomization'])), BigWorld.wg_getIntegralFormat(round(vd.shot['piercingPower'][0] + vd.shot['piercingPower'][0] * vd.shot['shell']['piercingPowerRandomization'])))
        damage = (BigWorld.wg_getIntegralFormat(round(vd.shot['shell']['damage'][0] - vd.shot['shell']['damage'][0] * vd.shot['shell']['damageRandomization'])), BigWorld.wg_getIntegralFormat(round(vd.shot['shell']['damage'][0] + vd.shot['shell']['damage'][0] * vd.shot['shell']['damageRandomization'])))
        parameters['parameters'].extend([('damage', '%s-%s' % damage),
         ('piercingPower', '%s-%s' % pPower),
         ('reloadTime', _getShotsPerMinute(vd.gun)),
         ('turretRotationSpeed' if item.hasTurrets else 'gunRotationSpeed', BigWorld.wg_getIntegralFormat(round(180.0 / math.pi * vd.turret['rotationSpeed']))),
         ('circularVisionRadius', BigWorld.wg_getIntegralFormat(vd.turret['circularVisionRadius'])),
         ('radioDistance', BigWorld.wg_getIntegralFormat(vd.radio['distance']))])
    else:
        parameters = {'parameters': []}
    parameters['base'] = []
    shortName = getTypeInfoByName('vehicleGun')['userString'] + ' ' + item.descriptor.gun['userString']
    parameters['base'].append(shortName)
    if item.hasTurrets:
        shortName = getTypeInfoByName('vehicleTurret')['userString'] + ' ' + item.descriptor.turret['userString']
        parameters['base'].append(shortName)
    shortName = getTypeInfoByName('vehicleEngine')['userString'] + ' ' + item.descriptor.engine['userString']
    parameters['base'].append(shortName)
    shortName = getTypeInfoByName('vehicleChassis')['userString'] + ' ' + item.descriptor.chassis['userString']
    parameters['base'].append(shortName)
    shortName = getTypeInfoByName('vehicleRadio')['userString'] + ' ' + item.descriptor.radio['userString']
    parameters['base'].append(shortName)
    parameters['stats'] = []
    callback(parameters)
 def _populate(self):
     super(FittingSelectPopover, self)._populate()
     if self._slotType == 'optionalDevice':
         title = MENU.OPTIONALDEVICEFITS_TITLE
         rendererName = FITTING_TYPES.OPTIONAL_DEVICE_FITTING_ITEM_RENDERER
         rendererDataClass = FITTING_TYPES.OPTIONAL_DEVICE_RENDERER_DATA_CLASS_NAME
         width = FITTING_TYPES.LARGE_POPOVER_WIDTH
     else:
         title = _ms(MENU.MODULEFITS_TITLE, moduleName=getTypeInfoByName(self._slotType)['userString'], vehicleName=self.__vehicle.userName)
         rendererDataClass = FITTING_TYPES.MODULE_FITTING_RENDERER_DATA_CLASS_NAME
         if self._slotType in ('vehicleChassis', 'vehicleEngine'):
             rendererName = FITTING_TYPES.ENGINE_CHASSIS_FITTING_ITEM_RENDERER
             width = FITTING_TYPES.MEDUIM_POPOVER_WIDTH
         elif self._slotType == 'vehicleRadio':
             rendererName = FITTING_TYPES.RADIO_FITTING_ITEM_RENDERER
             width = FITTING_TYPES.SHORT_POPOVER_WIDTH
         else:
             rendererName = FITTING_TYPES.GUN_TURRET_FITTING_ITEM_RENDERER
             width = FITTING_TYPES.LARGE_POPOVER_WIDTH
     self.as_updateS({'title': text_styles.highTitle(title),
      'rendererName': rendererName,
      'rendererDataClass': rendererDataClass,
      'selectedIndex': self.__logicProvider.getSelectedIdx(),
      'availableDevices': self.__logicProvider.getDevices(),
      'minAvailableHeight': FITTING_TYPES.HANGAR_POPOVER_MIN_AVAILABLE_HEIGHT,
      'width': width})
Beispiel #3
0
 def _populate(self):
     super(FittingSelectPopover, self)._populate()
     if self._slotType == 'optionalDevice':
         title = MENU.OPTIONALDEVICEFITS_TITLE
         rendererName = FITTING_TYPES.OPTIONAL_DEVICE_FITTING_ITEM_RENDERER
         rendererDataClass = FITTING_TYPES.OPTIONAL_DEVICE_RENDERER_DATA_CLASS_NAME
         width = FITTING_TYPES.LARGE_POPOVER_WIDTH
     else:
         title = _ms(MENU.MODULEFITS_TITLE,
                     moduleName=getTypeInfoByName(
                         self._slotType)['userString'],
                     vehicleName=self.__vehicle.userName)
         rendererDataClass = FITTING_TYPES.MODULE_FITTING_RENDERER_DATA_CLASS_NAME
         if self._slotType in ('vehicleChassis', 'vehicleEngine'):
             rendererName = FITTING_TYPES.ENGINE_CHASSIS_FITTING_ITEM_RENDERER
             width = FITTING_TYPES.MEDUIM_POPOVER_WIDTH
         elif self._slotType == 'vehicleRadio':
             rendererName = FITTING_TYPES.RADIO_FITTING_ITEM_RENDERER
             width = FITTING_TYPES.SHORT_POPOVER_WIDTH
         else:
             rendererName = FITTING_TYPES.GUN_TURRET_FITTING_ITEM_RENDERER
             width = FITTING_TYPES.LARGE_POPOVER_WIDTH
     self.as_updateS({
         'title': text_styles.highTitle(title),
         'rendererName': rendererName,
         'rendererDataClass': rendererDataClass,
         'selectedIndex': self.__logicProvider.getSelectedIdx(),
         'availableDevices': self.__logicProvider.getDevices(),
         'minAvailableHeight':
         FITTING_TYPES.HANGAR_POPOVER_MIN_AVAILABLE_HEIGHT,
         'width': width
     })
 def _getCommonData(self):
     if self._slotType == FITTING_TYPES.OPTIONAL_DEVICE:
         title = MENU.OPTIONALDEVICEFITS_TITLE
         rendererName = FITTING_TYPES.OPTIONAL_DEVICE_FITTING_ITEM_RENDERER
         rendererDataClass = FITTING_TYPES.OPTIONAL_DEVICE_RENDERER_DATA_CLASS_NAME
         width = FITTING_TYPES.LARGE_POPOVER_WIDTH
     elif self._slotType == FITTING_TYPES.BATTLE_ABILITY:
         title = MENU.BATTLEABILITY_TITLE
         rendererName = FITTING_TYPES.BATTLE_ABILITY_ITEM_RENDERER
         rendererDataClass = FITTING_TYPES.BATTLE_ABILITY_RENDERER_DATA_CLASS_NAME
         width = FITTING_TYPES.SHORT_POPOVER_WIDTH
     else:
         title = _ms(MENU.MODULEFITS_TITLE, moduleName=getTypeInfoByName(self._slotType)['userString'], vehicleName=self.__vehicle.userName if self.__vehicle is not None else '')
         rendererDataClass = FITTING_TYPES.MODULE_FITTING_RENDERER_DATA_CLASS_NAME
         if self._slotType in [FITTING_TYPES.VEHICLE_CHASSIS, FITTING_TYPES.VEHICLE_ENGINE]:
             rendererName = FITTING_TYPES.ENGINE_CHASSIS_FITTING_ITEM_RENDERER
             width = FITTING_TYPES.MEDUIM_POPOVER_WIDTH
         elif self._slotType == FITTING_TYPES.VEHICLE_RADIO:
             rendererName = FITTING_TYPES.RADIO_FITTING_ITEM_RENDERER
             width = FITTING_TYPES.SHORT_POPOVER_WIDTH
         elif self._slotType == FITTING_TYPES.BATTLE_ABILITY:
             title = MENU.BATTLEABILITY_TITLE
             rendererName = FITTING_TYPES.BATTLE_ABILITY_ITEM_RENDERER
             rendererDataClass = FITTING_TYPES.BATTLE_ABILITY_RENDERER_DATA_CLASS_NAME
             width = FITTING_TYPES.SHORT_POPOVER_WIDTH
         else:
             rendererName = FITTING_TYPES.GUN_TURRET_FITTING_ITEM_RENDERER
             width = FITTING_TYPES.LARGE_POPOVER_WIDTH
     return (rendererName,
      rendererDataClass,
      width,
      title)
 def _populate(self):
     super(FittingSelectPopover, self)._populate()
     if self._slotType == "optionalDevice":
         title = MENU.OPTIONALDEVICEFITS_TITLE
         rendererName = FITTING_TYPES.OPTIONAL_DEVICE_FITTING_ITEM_RENDERER
         rendererDataClass = FITTING_TYPES.OPTIONAL_DEVICE_RENDERER_DATA_CLASS_NAME
         width = FITTING_TYPES.LARGE_POPOVER_WIDTH
     else:
         title = _ms(
             MENU.MODULEFITS_TITLE,
             moduleName=getTypeInfoByName(self._slotType)["userString"],
             vehicleName=self.__vehicle.userName,
         )
         rendererDataClass = FITTING_TYPES.MODULE_FITTING_RENDERER_DATA_CLASS_NAME
         if self._slotType in ("vehicleChassis", "vehicleEngine"):
             rendererName = FITTING_TYPES.ENGINE_CHASSIS_FITTING_ITEM_RENDERER
             width = FITTING_TYPES.MEDUIM_POPOVER_WIDTH
         elif self._slotType == "vehicleRadio":
             rendererName = FITTING_TYPES.RADIO_FITTING_ITEM_RENDERER
             width = FITTING_TYPES.SHORT_POPOVER_WIDTH
         else:
             rendererName = FITTING_TYPES.GUN_TURRET_FITTING_ITEM_RENDERER
             width = FITTING_TYPES.LARGE_POPOVER_WIDTH
     self.as_updateS(
         {
             "title": text_styles.highTitle(title),
             "rendererName": rendererName,
             "rendererDataClass": rendererDataClass,
             "selectedIndex": self.__logicProvider.getSelectedIdx(),
             "availableDevices": self.__logicProvider.getDevices(),
             "width": width,
         }
     )
Beispiel #6
0
 def longUserName(self):
     typeInfo = getTypeInfoByName('vehicle')
     tagsDump = [
         typeInfo['tags'][tag]['userString'] for tag in self.tags
         if typeInfo['tags'][tag]['userString'] != ''
     ]
     return '%s %s' % (''.join(tagsDump), getUserName(self.descriptor.type))
Beispiel #7
0
 def __init__(self):
     super(VehicleClassInfo, self).__init__()
     self.__info = defaultdict(lambda : {'userString': '',
      'name': ''})
     for tag in VEHICLE_CLASS_TAGS:
         info = getTypeInfoByName(_VEHICLE_TYPE_NAME)['tags'][tag]
         self.__info[frozenset((tag,))] = {'userString': info['userString'],
          'name': info['name']}
Beispiel #8
0
 def __init__(self):
     super(VehicleClassInfo, self).__init__()
     self.__info = defaultdict(lambda : {'userString': '',
      'name': ''})
     for tag in VEHICLE_CLASS_TAGS:
         info = getTypeInfoByName(_VEHICLE_TYPE_NAME)['tags'][tag]
         self.__info[frozenset((tag,))] = {'userString': info['userString'],
          'name': info['name']}
 def _getCommonData(self):
     title = _ms(MENU.MODULEFITS_TITLE, moduleName=getTypeInfoByName(self._slotType)['userString'], vehicleName=self.__vehicle.userName if self.__vehicle is not None else '')
     rendererDataClass = FITTING_TYPES.MODULE_FITTING_RENDERER_DATA_CLASS_NAME
     if self._slotType == FITTING_TYPES.VEHICLE_ENGINE:
         if self.__vehicle.descriptor.hasTurboshaftEngine:
             rendererName = FITTING_TYPES.ENGINE_FITTING_BIG_ITEM_RENDERER
         else:
             rendererName = FITTING_TYPES.ENGINE_FITTING_ITEM_RENDERER
         width = FITTING_TYPES.MEDUIM_POPOVER_WIDTH
     elif self._slotType == FITTING_TYPES.VEHICLE_CHASSIS:
         rendererName = FITTING_TYPES.CHASSIS_FITTING_ITEM_RENDERER
         width = FITTING_TYPES.LARGE_POPOVER_WIDTH
     elif self._slotType == FITTING_TYPES.VEHICLE_RADIO:
         rendererName = FITTING_TYPES.RADIO_FITTING_ITEM_RENDERER
         width = FITTING_TYPES.SHORT_POPOVER_WIDTH
     else:
         rendererName = FITTING_TYPES.GUN_TURRET_FITTING_ITEM_RENDERER
         width = FITTING_TYPES.LARGE_POPOVER_WIDTH
     return (rendererName,
      rendererDataClass,
      width,
      title)
Beispiel #10
0
 def userType(self):
     """ Returns item's type represented as user-friendly string. """
     return getTypeInfoByName(self.itemTypeName)['userString']
Beispiel #11
0
 def userType(self):
     return getTypeInfoByName(self.itemTypeName)['userString']
Beispiel #12
0
 def longUserName(self):
     typeInfo = getTypeInfoByName('vehicle')
     tagsDump = [ typeInfo['tags'][tag]['userString'] for tag in self.tags if typeInfo['tags'][tag]['userString'] != '' ]
     return '%s %s' % (''.join(tagsDump), getUserName(self.descriptor.type))
Beispiel #13
0
 def userType(self):
     return getTypeInfoByName(self.itemTypeName)['userString']
Beispiel #14
0
 def userType(self):
     """ Returns item's type represented as user-friendly string. """
     return getTypeInfoByName(self.itemTypeName)['userString']
Beispiel #15
0
def readAllowedTags(xmlCtx, section, subsectionName, itemTypeName):
    allowedTagNames = getTypeInfoByName(itemTypeName)['tags']
    return readTags(xmlCtx, section, allowedTagNames, subsectionName)
Beispiel #16
0
 def __init__(self):
     super(VehicleClassInfo, self).__init__()
     self.__info = defaultdict(lambda: {"userString": "", "name": ""})
     for tag in VEHICLE_CLASS_TAGS:
         info = getTypeInfoByName(_VEHICLE_TYPE_NAME)["tags"][tag]
         self.__info[frozenset((tag,))] = {"userString": info["userString"], "name": info["name"]}
Beispiel #17
0
def getVehicleParams(item, vehicle, callback):
    vd = item.descriptor
    if GUI_SETTINGS.technicalInfo:
        parameters = {
            'parameters':
            [('maxHealth', vd.maxHealth),
             ('weight', '%s/%s' %
              (BigWorld.wg_getNiceNumberFormat(vd.physics['weight'] / 1000),
               BigWorld.wg_getNiceNumberFormat(
                   vd.miscAttrs['maxWeight'] / 1000))),
             ('enginePower',
              BigWorld.wg_getIntegralFormat(
                  round(vd.physics['enginePower'] / 735.5))),
             ('speedLimits',
              BigWorld.wg_getNiceNumberFormat(
                  round(vd.physics['speedLimits'][0] * 3.6, 2))),
             ('chassisRotationSpeed',
              BigWorld.wg_getNiceNumberFormat(
                  round(180 / math.pi * vd.chassis['rotationSpeed'], 0))),
             ('hullArmor', '%d/%d/%d' % vd.hull['primaryArmor'])]
        }
        if item.hasTurrets:
            parameters['parameters'].append(
                ('turretArmor', '%d/%d/%d' % vd.turret['primaryArmor']))
        pPower = (BigWorld.wg_getIntegralFormat(
            round(vd.shot['piercingPower'][0] - vd.shot['piercingPower'][0] *
                  vd.shot['shell']['piercingPowerRandomization'])),
                  BigWorld.wg_getIntegralFormat(
                      round(vd.shot['piercingPower'][0] +
                            vd.shot['piercingPower'][0] *
                            vd.shot['shell']['piercingPowerRandomization'])))
        damage = (BigWorld.wg_getIntegralFormat(
            round(vd.shot['shell']['damage'][0] -
                  vd.shot['shell']['damage'][0] *
                  vd.shot['shell']['damageRandomization'])),
                  BigWorld.wg_getIntegralFormat(
                      round(vd.shot['shell']['damage'][0] +
                            vd.shot['shell']['damage'][0] *
                            vd.shot['shell']['damageRandomization'])))
        parameters['parameters'].extend([
            ('damage', '%s-%s' % damage), ('piercingPower', '%s-%s' % pPower),
            ('reloadTime', _getShotsPerMinute(vd.gun)),
            ('turretRotationSpeed' if item.hasTurrets else 'gunRotationSpeed',
             BigWorld.wg_getIntegralFormat(
                 round(180.0 / math.pi * vd.turret['rotationSpeed']))),
            ('circularVisionRadius',
             BigWorld.wg_getIntegralFormat(vd.turret['circularVisionRadius'])),
            ('radioDistance',
             BigWorld.wg_getIntegralFormat(vd.radio['distance']))
        ])
    else:
        parameters = {'parameters': []}
    parameters['base'] = []
    shortName = getTypeInfoByName(
        'vehicleGun')['userString'] + ' ' + item.descriptor.gun['userString']
    parameters['base'].append(shortName)
    if item.hasTurrets:
        shortName = getTypeInfoByName('vehicleTurret')[
            'userString'] + ' ' + item.descriptor.turret['userString']
        parameters['base'].append(shortName)
    shortName = getTypeInfoByName('vehicleEngine')[
        'userString'] + ' ' + item.descriptor.engine['userString']
    parameters['base'].append(shortName)
    shortName = getTypeInfoByName('vehicleChassis')[
        'userString'] + ' ' + item.descriptor.chassis['userString']
    parameters['base'].append(shortName)
    shortName = getTypeInfoByName('vehicleRadio')[
        'userString'] + ' ' + item.descriptor.radio['userString']
    parameters['base'].append(shortName)
    parameters['stats'] = []
    callback(parameters)