コード例 #1
0
ファイル: utilsparameters.py プロジェクト: aevitas/wotsdk
def getComponentVehicles(item, callback):
    vehicles = []
    from requesters import Requester, _getComponentsByType, ITEM_TYPE_INDICES
    allVehicles = yield Requester('vehicle').getFromShop(nation=item.nation)
    for v in allVehicles:
        components = _getComponentsByType(v, ITEM_TYPE_INDICES[item.itemTypeName])
        if item.compactDescr in components.keys():
            vehicles.append(v.name)

    callback(vehicles)
コード例 #2
0
ファイル: utilsparameters.py プロジェクト: Difrex/wotsdk
def getComponentVehicles(item, callback):
    vehicles = []
    from requesters import Requester, _getComponentsByType, ITEM_TYPE_INDICES
    allVehicles = yield Requester('vehicle').getFromShop(nation=item.nation)
    for v in allVehicles:
        components = _getComponentsByType(v,
                                          ITEM_TYPE_INDICES[item.itemTypeName])
        if item.compactDescr in components.keys():
            vehicles.append(v.name)

    callback(vehicles)
コード例 #3
0
ファイル: utilsparameters.py プロジェクト: aevitas/wotsdk
def getGunParams(item, vehicle, callback):
    from requesters import StatsRequester
    money = yield StatsRequester().getCredits()
    turrets = set()
    curTurret = None
    curVehicle = None
    vehicles = []
    descriptors = []
    if vehicle:
        if vehicle.descriptor.gun['id'][1] == item.descriptor['id'][1]:
            curTurret = vehicle.descriptor.turret['userString']
            curVehicle = vehicle.name
        for gun in vehicle.descriptor.turret['guns']:
            if gun['id'][1] == item.descriptor['id'][1]:
                descriptors.append(gun)

        if not descriptors:
            for vTurrets in vehicle.descriptor.type.turrets:
                for turret in vTurrets:
                    for gun in turret['guns']:
                        if gun['id'][1] == item.descriptor['id'][1]:
                            descriptors.append(gun)

    from requesters import Requester, _getComponentsByType, ITEM_TYPE_INDICES
    allVehicles = yield Requester('vehicle').getFromShop(nation=item.nation)
    for v in allVehicles:
        guns = _getComponentsByType(v, ITEM_TYPE_INDICES[item.itemTypeName])
        if item.compactDescr in guns.keys():
            vehicles.append(v.name)
        for vTurrets in v.descriptor.type.turrets:
            for turret in vTurrets:
                for gun in turret['guns']:
                    if gun['id'][1] == item.descriptor['id'][1]:
                        if v.type not in ('AT-SPG', 'SPG'):
                            turrets.add(turret['userString'])
                        if vehicle is None:
                            descriptors.append(gun)

    reloadTime = {}
    dispertionRadius = {}
    aimingTime = {}
    for d in descriptors:
        rT = _getShotsPerMinute(d, False)
        findMinMax(reloadTime, rT)
        findMinMax(dispertionRadius, round(d['shotDispersionAngle'] * 100, 2))
        findMinMax(aimingTime, round(d['aimingTime'], 1))

    piercingPower = []
    damage = []
    shells = []
    for shot in item.descriptor['shots']:
        piercingPower.append('%d' % shot['piercingPower'][0])
        damage.append('%d' % shot['shell']['damage'][0])
        shells.append(makeString('#item_types:shell/kinds/' + shot['shell']['kind']))

    parameters = {}
    if GUI_SETTINGS.technicalInfo:
        parameters['parameters'] = (('caliber', item.descriptor['shots'][0]['shell']['caliber']),
         ('reloadTime', getMinMaxAsString(reloadTime)),
         ('avgPiercingPower', '/'.join(piercingPower)),
         ('avgDamage', '/'.join(damage)),
         ('dispertionRadius', getMinMaxAsString(dispertionRadius)),
         ('aimingTime', getMinMaxAsString(aimingTime)),
         ('weight', item.descriptor['weight']))
    else:
        parameters['parameters'] = ()
    parameters['compatible'] = [('vehicles', ', '.join([ ('<font color="#658c4c"><b>%s</b></font>' if v == curVehicle else '%s') % v for v in vehicles ]))]
    if turrets:
        parameters['compatible'].append(('turrets', ', '.join([ ('<font color="#658c4c"><b>%s</b></font>' if t == curTurret else '%s') % t for t in turrets ])))
    parameters['compatible'].append(('shells', ', '.join(shells)))
    callback(parameters)
    return
コード例 #4
0
ファイル: utilsparameters.py プロジェクト: Difrex/wotsdk
def getGunParams(item, vehicle, callback):
    from requesters import StatsRequester
    money = yield StatsRequester().getCredits()
    turrets = set()
    curTurret = None
    curVehicle = None
    vehicles = []
    descriptors = []
    if vehicle:
        if vehicle.descriptor.gun['id'][1] == item.descriptor['id'][1]:
            curTurret = vehicle.descriptor.turret['userString']
            curVehicle = vehicle.name
        for gun in vehicle.descriptor.turret['guns']:
            if gun['id'][1] == item.descriptor['id'][1]:
                descriptors.append(gun)

        if not descriptors:
            for vTurrets in vehicle.descriptor.type.turrets:
                for turret in vTurrets:
                    for gun in turret['guns']:
                        if gun['id'][1] == item.descriptor['id'][1]:
                            descriptors.append(gun)

    from requesters import Requester, _getComponentsByType, ITEM_TYPE_INDICES
    allVehicles = yield Requester('vehicle').getFromShop(nation=item.nation)
    for v in allVehicles:
        guns = _getComponentsByType(v, ITEM_TYPE_INDICES[item.itemTypeName])
        if item.compactDescr in guns.keys():
            vehicles.append(v.name)
        for vTurrets in v.descriptor.type.turrets:
            for turret in vTurrets:
                for gun in turret['guns']:
                    if gun['id'][1] == item.descriptor['id'][1]:
                        if v.type not in ('AT-SPG', 'SPG'):
                            turrets.add(turret['userString'])
                        if vehicle is None:
                            descriptors.append(gun)

    reloadTime = {}
    dispertionRadius = {}
    aimingTime = {}
    for d in descriptors:
        rT = _getShotsPerMinute(d, False)
        findMinMax(reloadTime, rT)
        findMinMax(dispertionRadius, round(d['shotDispersionAngle'] * 100, 2))
        findMinMax(aimingTime, round(d['aimingTime'], 1))

    piercingPower = []
    damage = []
    shells = []
    for shot in item.descriptor['shots']:
        piercingPower.append('%d' % shot['piercingPower'][0])
        damage.append('%d' % shot['shell']['damage'][0])
        shells.append(
            makeString('#item_types:shell/kinds/' + shot['shell']['kind']))

    parameters = {}
    if GUI_SETTINGS.technicalInfo:
        parameters['parameters'] = (
            ('caliber', item.descriptor['shots'][0]['shell']['caliber']),
            ('reloadTime', getMinMaxAsString(reloadTime)),
            ('avgPiercingPower', '/'.join(piercingPower)), ('avgDamage',
                                                            '/'.join(damage)),
            ('dispertionRadius', getMinMaxAsString(dispertionRadius)),
            ('aimingTime',
             getMinMaxAsString(aimingTime)), ('weight',
                                              item.descriptor['weight']))
    else:
        parameters['parameters'] = ()
    parameters['compatible'] = [('vehicles', ', '.join([
        ('<font color="#658c4c"><b>%s</b></font>' if v == curVehicle else '%s')
        % v for v in vehicles
    ]))]
    if turrets:
        parameters['compatible'].append(
            ('turrets', ', '.join([('<font color="#658c4c"><b>%s</b></font>'
                                    if t == curTurret else '%s') % t
                                   for t in turrets])))
    parameters['compatible'].append(('shells', ', '.join(shells)))
    callback(parameters)
    return