1
0
mirror of https://github.com/EDCD/EDMarketConnector.git synced 2025-04-18 09:57:40 +03:00

Tidy up handling of Discovery Scanners and Docking Computer.

This commit is contained in:
Jonathan Harris 2015-10-21 15:33:14 +01:00
parent 69466eb26e
commit 2cb27ddc0e
2 changed files with 20 additions and 25 deletions

View File

@ -57,7 +57,7 @@ weaponmount_map = {
# Modules that have a name as well as a group # Modules that have a name as well as a group
bulkheads = outfitting.armour_map.values() bulkheads = outfitting.armour_map.values()
scanners = [x[0] for x in outfitting.stellar_map.values()] scanners = [x[0] for x in outfitting.misc_internal_map.values()]
countermeasures = [x[0] for x in outfitting.countermeasure_map.values()] countermeasures = [x[0] for x in outfitting.countermeasure_map.values()]
fixup_map = { fixup_map = {
'Advanced Plasma Accelerator' : ('Plasma Accelerator', 'Advanced Plasma Accelerator'), 'Advanced Plasma Accelerator' : ('Plasma Accelerator', 'Advanced Plasma Accelerator'),
@ -134,15 +134,15 @@ def export(data):
loadout['components'][category][standard_map[module['name']]] = thing loadout['components'][category][standard_map[module['name']]] = thing
else: else:
# All other items have a "group" member, some also have a "name" # All other items have a "group" member, some also have a "name"
if module['name'] in scanners: if module['name'] in fixup_map:
thing['group'], name = fixup_map[module['name']]
if name: thing['name'] = name
elif module['name'] in scanners:
thing['group'] = 'Scanner' thing['group'] = 'Scanner'
thing['name'] = module['name'] thing['name'] = module['name']
elif module['name'] in countermeasures: elif module['name'] in countermeasures:
thing['group'] = 'Countermeasure' thing['group'] = 'Countermeasure'
thing['name'] = module['name'] thing['name'] = module['name']
elif module['name'] in fixup_map:
thing['group'], name = fixup_map[module['name']]
if name: thing['name'] = name
else: else:
thing['group'] = module['name'] thing['group'] = module['name']

View File

@ -174,6 +174,14 @@ rating_map = {
'5': 'A', '5': 'A',
} }
misc_internal_map = {
('detailedsurfacescanner', 'tiny') : ('Detailed Surface Scanner', 'C'),
('dockingcomputer', 'standard') : ('Standard Docking Computer', 'E'),
('stellarbodydiscoveryscanner', 'standard') : ('Basic Discovery Scanner', 'E'),
('stellarbodydiscoveryscanner', 'intermediate') : ('Intermediate Discovery Scanner', 'D'),
('stellarbodydiscoveryscanner', 'advanced') : ('Advanced Discovery Scanner', 'C'),
}
standard_map = { standard_map = {
# 'armour' : handled separately # 'armour' : handled separately
'engine' : 'Thrusters', 'engine' : 'Thrusters',
@ -185,13 +193,6 @@ standard_map = {
'sensors' : 'Sensors', 'sensors' : 'Sensors',
} }
stellar_map = {
'standard' : ('Basic Discovery Scanner', 'E'),
'intermediate' : ('Intermediate Discovery Scanner', 'D'),
'advanced' : ('Advanced Discovery Scanner', 'C'),
'tiny' : ('Detailed Surface Scanner', 'C'),
}
internal_map = { internal_map = {
'cargorack' : 'Cargo Rack', 'cargorack' : 'Cargo Rack',
'collection' : 'Collector Limpet Controller', 'collection' : 'Collector Limpet Controller',
@ -280,28 +281,22 @@ def lookup(module):
elif name[0]=='hpt': elif name[0]=='hpt':
raise AssertionError('%s: Unknown weapon "%s"' % (module['id'], name[1])) raise AssertionError('%s: Unknown weapon "%s"' % (module['id'], name[1]))
# Stellar scanners - e.g. Int_StellarBodyDiscoveryScanner_Standard elif name[0]!='int':
elif name[1] in ['stellarbodydiscoveryscanner', 'detailedsurfacescanner']: raise AssertionError('%s: Unknown prefix "%s"' % (module['id'], name[0]))
new['category'] = 'internal'
new['name'], new['rating'] = stellar_map[name[2]]
new['class'] = '1'
# Docking Computer - e.g. Int_DockingComputer_Standard # Miscellaneous Class 1 - e.g. Int_StellarBodyDiscoveryScanner_Advanced, Int_DockingComputer_Standard
elif name[1] == 'dockingcomputer' and name[2] == 'standard': elif (name[1],name[2]) in misc_internal_map:
# Reported category is not necessarily helpful. e.g. "Int_DockingComputer_Standard" has category "utility"
new['category'] = 'internal' new['category'] = 'internal'
new['name'] = 'Standard Docking Computer' new['name'], new['rating'] = misc_internal_map[(name[1],name[2])]
new['class'] = '1' new['class'] = '1'
new['rating'] = 'E'
# Standard & Internal # Standard & Internal
else: else:
# Reported category is not necessarily helpful. e.g. "Int_DockingComputer_Standard" has category "utility"
if name[0] != 'int': raise AssertionError('%s: Unknown prefix "%s"' % (module['id'], name[0]))
if name[1] == 'dronecontrol': # e.g. Int_DroneControl_Collection_Size1_Class1 if name[1] == 'dronecontrol': # e.g. Int_DroneControl_Collection_Size1_Class1
name.pop(0) name.pop(0)
if name[1] in standard_map: # e.g. Int_Engine_Size2_Class1 if name[1] in standard_map: # e.g. Int_Engine_Size2_Class1, Int_ShieldGenerator_Size8_Class5_Strong
new['category'] = 'standard' new['category'] = 'standard'
new['name'] = standard_map[len(name)>4 and (name[1],name[4]) or name[1]] new['name'] = standard_map[len(name)>4 and (name[1],name[4]) or name[1]]
elif name[1] in internal_map: # e.g. Int_CargoRack_Size8_Class1 elif name[1] in internal_map: # e.g. Int_CargoRack_Size8_Class1