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)
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
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