1
0
mirror of https://github.com/EDCD/EDMarketConnector.git synced 2025-04-15 08:40:34 +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
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()]
fixup_map = {
'Advanced Plasma Accelerator' : ('Plasma Accelerator', 'Advanced Plasma Accelerator'),
@ -134,15 +134,15 @@ def export(data):
loadout['components'][category][standard_map[module['name']]] = thing
else:
# 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['name'] = module['name']
elif module['name'] in countermeasures:
thing['group'] = 'Countermeasure'
thing['name'] = module['name']
elif module['name'] in fixup_map:
thing['group'], name = fixup_map[module['name']]
if name: thing['name'] = name
else:
thing['group'] = module['name']

View File

@ -174,6 +174,14 @@ rating_map = {
'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 = {
# 'armour' : handled separately
'engine' : 'Thrusters',
@ -185,13 +193,6 @@ standard_map = {
'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 = {
'cargorack' : 'Cargo Rack',
'collection' : 'Collector Limpet Controller',
@ -280,28 +281,22 @@ def lookup(module):
elif name[0]=='hpt':
raise AssertionError('%s: Unknown weapon "%s"' % (module['id'], name[1]))
# Stellar scanners - e.g. Int_StellarBodyDiscoveryScanner_Standard
elif name[1] in ['stellarbodydiscoveryscanner', 'detailedsurfacescanner']:
new['category'] = 'internal'
new['name'], new['rating'] = stellar_map[name[2]]
new['class'] = '1'
elif name[0]!='int':
raise AssertionError('%s: Unknown prefix "%s"' % (module['id'], name[0]))
# Docking Computer - e.g. Int_DockingComputer_Standard
elif name[1] == 'dockingcomputer' and name[2] == 'standard':
# Miscellaneous Class 1 - e.g. Int_StellarBodyDiscoveryScanner_Advanced, Int_DockingComputer_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['name'] = 'Standard Docking Computer'
new['name'], new['rating'] = misc_internal_map[(name[1],name[2])]
new['class'] = '1'
new['rating'] = 'E'
# Standard & Internal
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
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['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