diff --git a/eos/db/migrations/upgrade12.py b/eos/db/migrations/upgrade12.py new file mode 100644 index 000000000..dc0eee511 --- /dev/null +++ b/eos/db/migrations/upgrade12.py @@ -0,0 +1,340 @@ +""" +Migration 12 + +- Converts modules based on March 2016 Module Tiericide + Some modules have been unpublished (and unpublished module attributes are removed + from database), which causes pyfa to crash. We therefore replace these + modules with their new replacements +""" + + +CONVERSIONS = { + 16457: ( # Crosslink Compact Ballistic Control System + 16459, # Muon Coil Bolt Array I + 16461, # Multiphasic Bolt Array I + 16463, # 'Pandemonium' Ballistic Enhancement + ), + 5281: ( # Coadjunct Scoped Remote Sensor Booster + 7218, # Piercing ECCM Emitter I + ), + 5365: ( # Cetus Scoped Burst Jammer + 5359, # 1Z-3 Subversive ECM Eruption + ), + 1973: ( # Sensor Booster I + 1947, # ECCM - Radar I + 2002, # ECCM - Ladar I + 2003, # ECCM - Magnetometric I + 2004, # ECCM - Gravimetric I + 2005, # ECCM - Omni I + ), + 1951: ( # 'Basic' Tracking Enhancer + 6322, # Beta-Nought Tracking Mode + 6323, # Azimuth Descalloping Tracking Enhancer + 6324, # F-AQ Delay-Line Scan Tracking Subroutines + 6321, # Beam Parallax Tracking Program + ), + 521: ( # 'Basic' Damage Control + 5829, # GLFF Containment Field + 5831, # Interior Force Field Array + 5835, # F84 Local Damage System + 5833, # Systematic Damage Control + ), + 22925: ( # 'Bootleg' Remote Sensor Booster + 22939, # 'Boss' Remote Sensor Booster + 22941, # 'Entrepreneur' Remote Sensor Booster + ), + 5443: ( # Faint Epsilon Scoped Warp Scrambler + 5441, # Fleeting Progressive Warp Scrambler I + ), + 1963: ( # Remote Sensor Booster I + 1959, # ECCM Projector I + ), + 6325: ( # Fourier Compact Tracking Enhancer + 6326, # Sigma-Nought Tracking Mode I + 6327, # Auto-Gain Control Tracking Enhancer I + 6328, # F-aQ Phase Code Tracking Subroutines + ), + 21486: ( # 'Kindred' Gyrostabilizer + 21488, # Monophonic Stabilization Actuator I + ), + 19927: ( # Hypnos Scoped Magnetometric ECM + 9518, # Initiated Ion Field ECM I + ), + 10188: ( # 'Basic' Magnetic Field Stabilizer + 11111, # Insulated Stabilizer Array + 11109, # Linear Flux Stabilizer + 11115, # Gauss Field Balancer + 11113, # Magnetic Vortex Stabilizer + ), + 22919: ( # 'Monopoly' Magnetic Field Stabilizer + 22917, # 'Capitalist' Magnetic Field Stabilizer I + ), + 5839: ( # IFFA Compact Damage Control + 5841, # Emergency Damage Control I + 5843, # F85 Peripheral Damage System I + 5837, # Pseudoelectron Containment Field I + ), + 522: ( # 'Micro' Cap Battery + 4747, # Micro Ld-Acid Capacitor Battery I + 4751, # Micro Ohm Capacitor Reserve I + 4745, # Micro F-4a Ld-Sulfate Capacitor Charge Unit + 4749, # Micro Peroxide Capacitor Power Cell + 3480, # Micro Capacitor Battery II + ), + 518: ( # 'Basic' Gyrostabilizer + 5915, # Lateral Gyrostabilizer + 5919, # F-M2 Weapon Inertial Suspensor + 5913, # Hydraulic Stabilization Actuator + 5917, # Stabilized Weapon Mounts + ), + 19931: ( # Compulsive Scoped Multispectral ECM + 19933, # 'Hypnos' Multispectral ECM I + ), + 5403: ( # Faint Scoped Warp Disruptor + 5401, # Fleeting Warp Disruptor I + ), + 23902: ( # 'Trebuchet' Heat Sink I + 23900, # 'Mangonel' Heat Sink I + ), + 1893: ( # 'Basic' Heat Sink + 5845, # Heat Exhaust System + 5856, # C3S Convection Thermal Radiator + 5855, # 'Boreas' Coolant System + 5854, # Stamped Heat Sink + ), + 6160: ( # F-90 Compact Sensor Booster + 20214, # Extra Radar ECCM Scanning Array I + 20220, # Extra Ladar ECCM Scanning Array I + 20226, # Extra Gravimetric ECCM Scanning Array I + 20232, # Extra Magnetometric ECCM Scanning Array I + 7948, # Gravimetric Positional ECCM Sensor System I + 7964, # Radar Positional ECCM Sensor System I + 7965, # Omni Positional ECCM Sensor System I + 7966, # Ladar Positional ECCM Sensor System I + 7970, # Magnetometric Positional ECCM Sensor System I + 20218, # Conjunctive Radar ECCM Scanning Array I + 20224, # Conjunctive Ladar ECCM Scanning Array I + 20230, # Conjunctive Gravimetric ECCM Scanning Array I + 20236, # Conjunctive Magnetometric ECCM Scanning Array I + 6157, # Supplemental Scanning CPU I + ), + 23418: ( # 'Radical' Damage Control + 22893, # 'Gonzo' Damage Control I + ), + 19952: ( # Umbra Scoped Radar ECM + 9520, # 'Penumbra' White Noise ECM + ), + 1952: ( # Sensor Booster II + 2258, # ECCM - Omni II + 2259, # ECCM - Gravimetric II + 2260, # ECCM - Ladar II + 2261, # ECCM - Magnetometric II + 2262, # ECCM - Radar II + ), + 5282: ( # Linked Enduring Sensor Booster + 7219, # Scattering ECCM Projector I + ), + 1986: ( # Signal Amplifier I + 2579, # Gravimetric Backup Array I + 2583, # Ladar Backup Array I + 2587, # Magnetometric Backup Array I + 2591, # Multi Sensor Backup Array I + 4013, # RADAR Backup Array I + ), + 4871: ( # Large Compact Pb-Acid Cap Battery + 4875, # Large Ohm Capacitor Reserve I + 4869, # Large F-4a Ld-Sulfate Capacitor Charge Unit + 4873, # Large Peroxide Capacitor Power Cell + ), + 1964: ( # Remote Sensor Booster II + 1960, # ECCM Projector II + ), + 5933: ( # Counterbalanced Compact Gyrostabilizer + 5931, # Cross-Lateral Gyrostabilizer I + 5935, # F-M3 Munition Inertial Suspensor + 5929, # Pneumatic Stabilization Actuator I + ), + 4025: ( # X5 Enduring Stasis Webifier + 4029, # 'Langour' Drive Disruptor I + ), + 4027: ( # Fleeting Compact Stasis Webifier + 4031, # Patterned Stasis Web I + ), + 22937: ( # 'Enterprise' Remote Tracking Computer + 22935, # 'Tycoon' Remote Tracking Computer + ), + 22929: ( # 'Marketeer' Tracking Computer + 22927, # 'Economist' Tracking Computer I + ), + 1987: ( # Signal Amplifier II + 2580, # Gravimetric Backup Array II + 2584, # Ladar Backup Array II + 2588, # Magnetometric Backup Array II + 2592, # Multi Sensor Backup Array II + 4014, # RADAR Backup Array II + ), + 19939: ( # Enfeebling Scoped Ladar ECM + 9522, # Faint Phase Inversion ECM I + ), + 5340: ( # P-S Compact Remote Tracking Computer + 5341, # 'Prayer' Remote Tracking Computer + ), + 19814: ( # Phased Scoped Target Painter + 19808, # Partial Weapon Navigation + ), + 1949: ( # 'Basic' Signal Amplifier + 1946, # Basic RADAR Backup Array + 1982, # Basic Ladar Backup Array + 1983, # Basic Gravimetric Backup Array + 1984, # Basic Magnetometric Backup Array + 1985, # Basic Multi Sensor Backup Array + 6193, # Emergency Magnetometric Scanners + 6194, # Emergency Multi-Frequency Scanners + 6202, # Emergency RADAR Scanners + 6216, # Emergency Ladar Scanners + 6217, # Emergency Gravimetric Scanners + 6225, # Sealed RADAR Backup Cluster + 6238, # Sealed Magnetometric Backup Cluster + 6239, # Sealed Multi-Frequency Backup Cluster + 6241, # Sealed Ladar Backup Cluster + 6242, # Sealed Gravimetric Backup Cluster + 6257, # Surplus RADAR Reserve Array + 6258, # F-42 Reiterative RADAR Backup Sensors + 6283, # Surplus Magnetometric Reserve Array + 6284, # F-42 Reiterative Magnetometric Backup Sensors + 6285, # Surplus Multi-Frequency Reserve Array + 6286, # F-42 Reiterative Multi-Frequency Backup Sensors + 6289, # Surplus Ladar Reserve Array + 6290, # F-42 Reiterative Ladar Backup Sensors + 6291, # Surplus Gravimetric Reserve Array + 6292, # F-42 Reiterative Gravimetric Backup Sensors + 6309, # Amplitude Signal Enhancer + 6310, # 'Acolyth' Signal Booster + 6311, # Type-E Discriminative Signal Augmentation + 6312, # F-90 Positional Signal Amplifier + ), + 21527: ( # 'Firewall' Signal Amplifier + 21521, # Gravimetric Firewall + 21523, # Ladar Firewall + 21525, # Magnetometric Firewall + 21527, # Multi Sensor Firewall + 21529, # RADAR Firewall + ), + 23416: ( # 'Peace' Large Remote Armor Repairer + None, # 'Pacifier' Large Remote Armor Repairer + ), + 6176: ( # F-12 Enduring Tracking Computer + 6174, # Monopulse Tracking Mechanism I + ), + 6159: ( # Alumel-Wired Enduring Sensor Booster + 7917, # Alumel Radar ECCM Sensor Array I + 7918, # Alumel Ladar ECCM Sensor Array I + 7922, # Alumel Gravimetric ECCM Sensor Array I + 7926, # Alumel Omni ECCM Sensor Array I + 7937, # Alumel Magnetometric ECCM Sensor Array I + 7867, # Supplemental Ladar ECCM Scanning Array I + 7869, # Supplemental Gravimetric ECCM Scanning Array I + 7870, # Supplemental Omni ECCM Scanning Array I + 7887, # Supplemental Radar ECCM Scanning Array I + 7889, # Supplemental Magnetometric ECCM Scanning Array I + 20216, # Incremental Radar ECCM Scanning Array I + 20222, # Incremental Ladar ECCM Scanning Array I + 20228, # Incremental Gravimetric ECCM Scanning Array I + 20234, # Incremental Magnetometric ECCM Scanning Array I + 7892, # Prototype ECCM Radar Sensor Cluster + 7893, # Prototype ECCM Ladar Sensor Cluster + 7895, # Prototype ECCM Gravimetric Sensor Cluster + 7896, # Prototype ECCM Omni Sensor Cluster + 7914, # Prototype ECCM Magnetometric Sensor Cluster + 6158, # Prototype Sensor Booster + ), + 5849: ( # Extruded Compact Heat Sink + 5846, # Thermal Exhaust System I + 5858, # C4S Coiled Circuit Thermal Radiator + 5857, # 'Skadi' Coolant System I + ), + 22895: ( # 'Shady' Sensor Booster + 22897, # 'Forger' ECCM - Magnetometric I + ), + 11105: ( # Vortex Compact Magnetic Field Stabilizer + 11103, # Insulated Stabilizer Array I + 11101, # Linear Flux Stabilizer I + 11107, # Gauss Field Balancer I + ), + 22945: ( # 'Executive' Remote Sensor Dampener + 22943, # 'Broker' Remote Sensor Dampener I + ), + 6173: ( # Optical Compact Tracking Computer + 6175, # 'Orion' Tracking CPU I + ), + 5279: ( # F-23 Compact Remote Sensor Booster + 7217, # Spot Pulsing ECCM I + 7220, # Phased Muon ECCM Caster I + 5280, # Connected Remote Sensor Booster + ), + 4787: ( # Small Compact Pb-Acid Cap Battery + 4791, # Small Ohm Capacitor Reserve I + 4785, # Small F-4a Ld-Sulfate Capacitor Charge Unit + 4789, # Small Peroxide Capacitor Power Cell + ), + 19946: ( # BZ-5 Scoped Gravimetric ECM + 9519, # FZ-3 Subversive Spatial Destabilizer ECM + ), + 6073: ( # Medium Compact Pb-Acid Cap Battery + 6097, # Medium Ohm Capacitor Reserve I + 6111, # Medium F-4a Ld-Sulfate Capacitor Charge Unit + 6083, # Medium Peroxide Capacitor Power Cell + ), + 21484: ( # 'Full Duplex' Ballistic Control System + 21482, # Ballistic 'Purge' Targeting System I + ), + 6296: ( # F-89 Compact Signal Amplifier + 6218, # Protected Gravimetric Backup Cluster I + 6222, # Protected Ladar Backup Cluster I + 6226, # Protected Magnetometric Backup Cluster I + 6230, # Protected Multi-Frequency Backup Cluster I + 6234, # Protected RADAR Backup Cluster I + 6195, # Reserve Gravimetric Scanners + 6199, # Reserve Ladar Scanners + 6203, # Reserve Magnetometric Scanners + 6207, # Reserve Multi-Frequency Scanners + 6212, # Reserve RADAR Scanners + 20238, # Secure Gravimetric Backup Cluster I + 20244, # Secure Ladar Backup Cluster I + 20250, # Secure Magnetometric Backup Cluster I + 20260, # Secure Radar Backup Cluster I + 6244, # F-43 Repetitive Gravimetric Backup Sensors + 6252, # F-43 Repetitive Ladar Backup Sensors + 6260, # F-43 Repetitive Magnetometric Backup Sensors + 6268, # F-43 Repetitive Multi-Frequency Backup Sensors + 6276, # F-43 Repetitive RADAR Backup Sensors + 20240, # Shielded Gravimetric Backup Cluster I + 20246, # Shielded Ladar Backup Cluster I + 20252, # Shielded Magnetometric Backup Cluster I + 20262, # Shielded Radar Backup Cluster I + 6243, # Surrogate Gravimetric Reserve Array I + 6251, # Surrogate Ladar Reserve Array I + 6259, # Surrogate Magnetometric Reserve Array I + 6267, # Surrogate Multi-Frequency Reserve Array I + 6275, # Surrogate RADAR Reserve Array I + 20242, # Warded Gravimetric Backup Cluster I + 20248, # Warded Ladar Backup Cluster I + 20254, # Warded Magnetometric Backup Cluster I + 20264, # Warded Radar Backup Cluster I + 6294, # 'Mendicant' Signal Booster I + 6293, # Wavelength Signal Enhancer I + 6295, # Type-D Attenuation Signal Augmentation + ), + 5302: ( # Phased Muon Scoped Sensor Dampener + 5300, # Indirect Scanning Dampening Unit I + ), +} + +def upgrade(saveddata_engine): + + # Convert modules + for replacement_item, list in CONVERSIONS.iteritems(): + for retired_item in list: + saveddata_engine.execute('UPDATE "modules" SET "itemID" = ? WHERE "itemID" = ?', (replacement_item, retired_item)) + saveddata_engine.execute('UPDATE "cargo" SET "itemID" = ? WHERE "itemID" = ?', (replacement_item, retired_item)) + diff --git a/eos/effects/caldarishipecmburstoptimalrangecb3.py b/eos/effects/caldarishipecmburstoptimalrangecb3.py index 7675fd758..5025deba5 100644 --- a/eos/effects/caldarishipecmburstoptimalrangecb3.py +++ b/eos/effects/caldarishipecmburstoptimalrangecb3.py @@ -4,5 +4,5 @@ # Ship: Scorpion type = "passive" def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM Burst", + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Burst Jammer", "ecmBurstRange", ship.getModifiedItemAttr("shipBonusCB3"), skill="Caldari Battleship") diff --git a/eos/effects/caldarishipewfalloffrangecb3.py b/eos/effects/caldarishipewfalloffrangecb3.py index c5e520bee..53a325271 100644 --- a/eos/effects/caldarishipewfalloffrangecb3.py +++ b/eos/effects/caldarishipewfalloffrangecb3.py @@ -5,4 +5,4 @@ type = "passive" def handler(fit, ship, context): fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", - "falloff", ship.getModifiedItemAttr("shipBonusCB3"), skill="Caldari Battleship") + "falloffEffectiveness", ship.getModifiedItemAttr("shipBonusCB3"), skill="Caldari Battleship") diff --git a/eos/effects/caldarishipewfalloffrangecc2.py b/eos/effects/caldarishipewfalloffrangecc2.py index c1a05d6d6..33edac024 100644 --- a/eos/effects/caldarishipewfalloffrangecc2.py +++ b/eos/effects/caldarishipewfalloffrangecc2.py @@ -5,4 +5,4 @@ type = "passive" def handler(fit, ship, context): fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", - "falloff", ship.getModifiedItemAttr("shipBonusCC2"), skill="Caldari Cruiser") + "falloffEffectiveness", ship.getModifiedItemAttr("shipBonusCC2"), skill="Caldari Cruiser") diff --git a/eos/effects/damagecontrol.py b/eos/effects/damagecontrol.py index 998a767bb..83107e12b 100644 --- a/eos/effects/damagecontrol.py +++ b/eos/effects/damagecontrol.py @@ -2,7 +2,7 @@ # # Used by: # Modules from group: Damage Control (14 of 14) -type = "active" +type = "passive" def handler(fit, module, context): for layer, attrPrefix in (('shield', 'shield'), ('armor', 'armor'), ('hull', '')): for damageType in ('Kinetic', 'Thermal', 'Explosive', 'Em'): diff --git a/eos/effects/elitebonusblackopsecmburstgravandladarandmagnetoandradar.py b/eos/effects/elitebonusblackopsecmburstgravandladarandmagnetoandradar.py index 3611c52ff..e90117b2a 100644 --- a/eos/effects/elitebonusblackopsecmburstgravandladarandmagnetoandradar.py +++ b/eos/effects/elitebonusblackopsecmburstgravandladarandmagnetoandradar.py @@ -6,5 +6,5 @@ type = "passive" def handler(fit, ship, context): sensorTypes = ("Gravimetric", "Ladar", "Magnetometric", "Radar") for type in sensorTypes: - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM Burst", "scan{0}StrengthBonus".format(type), + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Burst Jammer", "scan{0}StrengthBonus".format(type), ship.getModifiedItemAttr("eliteBonusBlackOps1"), skill="Black Ops") diff --git a/eos/effects/ewgrouprsdmaxrangebonus.py b/eos/effects/ewgrouprsdmaxrangebonus.py index 45e08633a..88ab43551 100644 --- a/eos/effects/ewgrouprsdmaxrangebonus.py +++ b/eos/effects/ewgrouprsdmaxrangebonus.py @@ -4,5 +4,5 @@ # Implants named like: grade Centurion (10 of 12) type = "passive" def handler(fit, implant, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Sensor Damper", + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Sensor Dampener", "maxRange", implant.getModifiedItemAttr("rangeSkillBonus")) \ No newline at end of file diff --git a/eos/effects/ewskillecmburstcapneedbonus.py b/eos/effects/ewskillecmburstcapneedbonus.py index a9f80a7fa..590417e90 100644 --- a/eos/effects/ewskillecmburstcapneedbonus.py +++ b/eos/effects/ewskillecmburstcapneedbonus.py @@ -7,5 +7,5 @@ type = "passive" def handler(fit, container, context): level = container.level if "skill" in context else 1 - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM Burst", + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Burst Jammer", "capacitorNeed", container.getModifiedItemAttr("capNeedBonus") * level) diff --git a/eos/effects/ewskillecmburstfalloffbonus.py b/eos/effects/ewskillecmburstfalloffbonus.py index 609802237..b56d7035c 100644 --- a/eos/effects/ewskillecmburstfalloffbonus.py +++ b/eos/effects/ewskillecmburstfalloffbonus.py @@ -4,5 +4,5 @@ # Skill: Frequency Modulation type = "passive" def handler(fit, skill, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM Burst", - "falloff", skill.getModifiedItemAttr("falloffBonus") * skill.level) + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Burst Jammer", + "falloffEffectiveness", skill.getModifiedItemAttr("falloffBonus") * skill.level) diff --git a/eos/effects/ewskillecmburstrangebonus.py b/eos/effects/ewskillecmburstrangebonus.py index bb778e629..e2d8b3987 100644 --- a/eos/effects/ewskillecmburstrangebonus.py +++ b/eos/effects/ewskillecmburstrangebonus.py @@ -6,6 +6,6 @@ type = "passive" def handler(fit, container, context): level = container.level if "skill" in context else 1 - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM Burst", + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Burst Jammer", "ecmBurstRange", container.getModifiedItemAttr("rangeSkillBonus") * level, stackingPenalties = False if "skill" in context else True) diff --git a/eos/effects/ewskillewfalloffbonus.py b/eos/effects/ewskillewfalloffbonus.py index e8246dd00..839f16faa 100644 --- a/eos/effects/ewskillewfalloffbonus.py +++ b/eos/effects/ewskillewfalloffbonus.py @@ -5,4 +5,4 @@ type = "passive" def handler(fit, skill, context): fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", - "falloff", skill.getModifiedItemAttr("falloffBonus") * skill.level) \ No newline at end of file + "falloffEffectiveness", skill.getModifiedItemAttr("falloffBonus") * skill.level) diff --git a/eos/effects/ewskillrsdfalloffbonus.py b/eos/effects/ewskillrsdfalloffbonus.py index 4cdaecb4e..aa9ab09bd 100644 --- a/eos/effects/ewskillrsdfalloffbonus.py +++ b/eos/effects/ewskillrsdfalloffbonus.py @@ -5,4 +5,4 @@ type = "passive" def handler(fit, skill, context): fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Sensor Linking"), - "falloff", skill.getModifiedItemAttr("falloffBonus") * skill.level) + "falloffEffectiveness", skill.getModifiedItemAttr("falloffBonus") * skill.level) diff --git a/eos/effects/ewskillscanstrengthbonus.py b/eos/effects/ewskillscanstrengthbonus.py index 206fd0d5d..52b3c6862 100644 --- a/eos/effects/ewskillscanstrengthbonus.py +++ b/eos/effects/ewskillscanstrengthbonus.py @@ -5,7 +5,7 @@ # Skill: Signal Dispersion type = "passive" def handler(fit, container, context): - groups = ("ECM", "ECM Burst") + groups = ("ECM", "Burst Jammer") level = container.level if "skill" in context else 1 for scanType in ("Gravimetric", "Ladar", "Magnetometric", "Radar"): fit.modules.filteredItemBoost(lambda mod: mod.item.group.name in groups, diff --git a/eos/effects/ewskillsignalsuppressionmaxtargetrangebonus.py b/eos/effects/ewskillsignalsuppressionmaxtargetrangebonus.py index 0a44be166..76b99b887 100644 --- a/eos/effects/ewskillsignalsuppressionmaxtargetrangebonus.py +++ b/eos/effects/ewskillsignalsuppressionmaxtargetrangebonus.py @@ -6,5 +6,5 @@ type = "passive" def handler(fit, container, context): level = container.level if "skill" in context else 1 - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Sensor Damper", + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Sensor Dampener", "maxTargetRangeBonus", container.getModifiedItemAttr("scanSkillEwStrengthBonus") * level) diff --git a/eos/effects/ewskillsignalsuppressionscanresolutionbonus.py b/eos/effects/ewskillsignalsuppressionscanresolutionbonus.py index 071b3eb5a..8edf1e5e7 100644 --- a/eos/effects/ewskillsignalsuppressionscanresolutionbonus.py +++ b/eos/effects/ewskillsignalsuppressionscanresolutionbonus.py @@ -7,6 +7,6 @@ type = "passive" def handler(fit, container, context): level = container.level if "skill" in context else 1 penalized = False if "skill" in context else True - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Sensor Damper", + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Sensor Dampener", "scanResolutionBonus", container.getModifiedItemAttr("scanSkillEwStrengthBonus") * level, stackingPenalties=penalized) diff --git a/eos/effects/ewskilltdfalloffbonus.py b/eos/effects/ewskilltdfalloffbonus.py index 60b860ea0..9951a09e8 100644 --- a/eos/effects/ewskilltdfalloffbonus.py +++ b/eos/effects/ewskilltdfalloffbonus.py @@ -5,4 +5,4 @@ type = "passive" def handler(fit, skill, context): fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Weapon Disruptor", - "falloff", skill.getModifiedItemAttr("falloffBonus") * skill.level) \ No newline at end of file + "falloffEffectiveness", skill.getModifiedItemAttr("falloffBonus") * skill.level) diff --git a/eos/effects/ewskilltpfalloffbonus.py b/eos/effects/ewskilltpfalloffbonus.py index 11204a306..2ebb5d98d 100644 --- a/eos/effects/ewskilltpfalloffbonus.py +++ b/eos/effects/ewskilltpfalloffbonus.py @@ -5,4 +5,4 @@ type = "passive" def handler(fit, skill, context): fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Target Painter", - "falloff", skill.getModifiedItemAttr("falloffBonus") * skill.level) \ No newline at end of file + "falloffEffectiveness", skill.getModifiedItemAttr("falloffBonus") * skill.level) diff --git a/eos/effects/ganginformationwarfarerangebonuswithecmburst.py b/eos/effects/ganginformationwarfarerangebonuswithecmburst.py index 94c6c5c1d..527879399 100644 --- a/eos/effects/ganginformationwarfarerangebonuswithecmburst.py +++ b/eos/effects/ganginformationwarfarerangebonuswithecmburst.py @@ -8,7 +8,7 @@ runTime = "late" def handler(fit, module, context): if "gang" not in context: return - groups = ("Target Painter", "Weapon Disruptor", "Remote Sensor Damper", "ECM", "ECM Burst") + groups = ("Target Painter", "Weapon Disruptor", "Sensor Dampener", "ECM", "Burst Jammer") fit.modules.filteredItemBoost(lambda mod: mod.item.group.name in groups, "maxRange", module.getModifiedItemAttr("commandBonus"), stackingPenalties = True) diff --git a/eos/effects/modifyenergywarfareresistance.py b/eos/effects/modifyenergywarfareresistance.py new file mode 100644 index 000000000..3c1400dc2 --- /dev/null +++ b/eos/effects/modifyenergywarfareresistance.py @@ -0,0 +1,5 @@ +type = "passive" +def handler(fit, module, context): + fit.ship.boostItemAttr("energyWarfareResistance", + module.getModifiedItemAttr("energyWarfareResistanceBonus"), + stackingPenalties = True) diff --git a/eos/effects/overloadselfsensormodulebonus.py b/eos/effects/overloadselfsensormodulebonus.py index 859e4830b..f5a4e0d5a 100644 --- a/eos/effects/overloadselfsensormodulebonus.py +++ b/eos/effects/overloadselfsensormodulebonus.py @@ -9,3 +9,10 @@ def handler(fit, module, context): module.boostItemAttr("maxTargetRangeBonus", module.getModifiedItemAttr("overloadSensorModuleStrengthBonus")) module.boostItemAttr("scanResolutionBonus", module.getModifiedItemAttr("overloadSensorModuleStrengthBonus"), stackingPenalties=True) + + for scanType in ("Gravimetric", "Magnetometric", "Radar", "Ladar"): + module.boostItemAttr( + "scan{}StrengthPercent".format(scanType), + module.getModifiedItemAttr("overloadSensorModuleStrengthBonus"), + stackingPenalties=True + ) diff --git a/eos/effects/propulsionskillcapneedbonusskilllevel.py b/eos/effects/propulsionskillcapneedbonusskilllevel.py index 99f25f16b..388e6603e 100644 --- a/eos/effects/propulsionskillcapneedbonusskilllevel.py +++ b/eos/effects/propulsionskillcapneedbonusskilllevel.py @@ -5,7 +5,7 @@ # Skill: Propulsion Jamming type = "passive" def handler(fit, container, context): - groups = ("Stasis Web", "Warp Scrambler", "Warp Disrupt Field Generator") + groups = ("Stasis Web", "Stasis Grappler", "Warp Scrambler", "Warp Disrupt Field Generator") level = container.level if "skill" in context else 1 fit.modules.filteredItemBoost(lambda mod: mod.item.group.name in groups, "capacitorNeed", container.getModifiedItemAttr("capNeedBonus") * level) diff --git a/eos/effects/remoteecmfalloff.py b/eos/effects/remoteecmfalloff.py new file mode 100644 index 000000000..ff841419e --- /dev/null +++ b/eos/effects/remoteecmfalloff.py @@ -0,0 +1,7 @@ +type = "projected", "active" +def handler(fit, module, context): + if "projected" in context: + # jam formula: 1 - (1- (jammer str/ship str))^(# of jam mods with same str)) + strModifier = 1 - module.getModifiedItemAttr("scan{0}StrengthBonus".format(fit.scanType))/fit.scanStrength + + fit.ecmProjectedStr *= strModifier diff --git a/eos/effects/remotesensorboostfalloff.py b/eos/effects/remotesensorboostfalloff.py new file mode 100644 index 000000000..1f503247e --- /dev/null +++ b/eos/effects/remotesensorboostfalloff.py @@ -0,0 +1,16 @@ +type= "projected", "active" +def handler(fit, module, context): + if "projected" not in context: + return + + fit.ship.boostItemAttr("maxTargetRange", module.getModifiedItemAttr("maxTargetRangeBonus"), + stackingPenalties = True) + fit.ship.boostItemAttr("scanResolution", module.getModifiedItemAttr("scanResolutionBonus"), + stackingPenalties = True) + + for scanType in ("Gravimetric", "Magnetometric", "Radar", "Ladar"): + fit.ship.boostItemAttr( + "scan{}Strength".format(scanType), + module.getModifiedItemAttr("scan{}StrengthPercent".format(scanType)), + stackingPenalties=True + ) diff --git a/eos/effects/remotesensordampfalloff.py b/eos/effects/remotesensordampfalloff.py new file mode 100644 index 000000000..8b57f1231 --- /dev/null +++ b/eos/effects/remotesensordampfalloff.py @@ -0,0 +1,8 @@ +type= "projected", "active" +def handler(fit, module, context): + if "projected" not in context: + return + fit.ship.boostItemAttr("maxTargetRange", module.getModifiedItemAttr("maxTargetRangeBonus"), + stackingPenalties = True) + fit.ship.boostItemAttr("scanResolution", module.getModifiedItemAttr("scanResolutionBonus"), + stackingPenalties = True) diff --git a/eos/effects/remotetargetpaintfalloff.py b/eos/effects/remotetargetpaintfalloff.py new file mode 100644 index 000000000..3d8c84a3f --- /dev/null +++ b/eos/effects/remotetargetpaintfalloff.py @@ -0,0 +1,5 @@ +type = "projected", "active" +def handler(fit, container, context): + if "projected" in context: + fit.ship.boostItemAttr("signatureRadius", container.getModifiedItemAttr("signatureRadiusBonus"), + stackingPenalties = True) diff --git a/eos/effects/remotetrackingassistfalloff.py b/eos/effects/remotetrackingassistfalloff.py new file mode 100644 index 000000000..24780926a --- /dev/null +++ b/eos/effects/remotetrackingassistfalloff.py @@ -0,0 +1,12 @@ +type= "projected", "active" +def handler(fit, module, context): + if "projected" in context: + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Gunnery"), + "trackingSpeed", module.getModifiedItemAttr("trackingSpeedBonus"), + stackingPenalties = True) + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Gunnery"), + "maxRange", module.getModifiedItemAttr("maxRangeBonus"), + stackingPenalties = True) + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Gunnery"), + "falloff", module.getModifiedItemAttr("falloffBonus"), + stackingPenalties = True) diff --git a/eos/effects/remotewebifierfalloff.py b/eos/effects/remotewebifierfalloff.py new file mode 100644 index 000000000..05009bfe4 --- /dev/null +++ b/eos/effects/remotewebifierfalloff.py @@ -0,0 +1,5 @@ +type = "active", "projected" +def handler(fit, module, context): + if "projected" not in context: return + fit.ship.boostItemAttr("maxVelocity", module.getModifiedItemAttr("speedFactor"), + stackingPenalties = True) diff --git a/eos/effects/rolebonusecmrange.py b/eos/effects/rolebonusecmrange.py index dbf1a08f4..3d4c4c91e 100644 --- a/eos/effects/rolebonusecmrange.py +++ b/eos/effects/rolebonusecmrange.py @@ -4,5 +4,5 @@ # Ship: Griffin Navy Issue type = "passive" def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", "falloff", src.getModifiedItemAttr("roleBonus")) + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", "falloffEffectiveness", src.getModifiedItemAttr("roleBonus")) fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", "maxRange", src.getModifiedItemAttr("roleBonus")) diff --git a/eos/effects/scriptsensorboostersensorstrengthbonusbonus.py b/eos/effects/scriptsensorboostersensorstrengthbonusbonus.py new file mode 100644 index 000000000..294600120 --- /dev/null +++ b/eos/effects/scriptsensorboostersensorstrengthbonusbonus.py @@ -0,0 +1,4 @@ +type = "active" +def handler(fit, module, context): + for scanType in ("Gravimetric", "Magnetometric", "Radar", "Ladar"): + module.boostItemAttr("scan{}StrengthPercent".format(scanType), module.getModifiedChargeAttr("sensorStrengthBonusBonus")) diff --git a/eos/effects/sensorboosteractivepercentage.py b/eos/effects/sensorboosteractivepercentage.py index 6026acbc7..eaf23f58c 100644 --- a/eos/effects/sensorboosteractivepercentage.py +++ b/eos/effects/sensorboosteractivepercentage.py @@ -8,3 +8,10 @@ def handler(fit, module, context): stackingPenalties = True) fit.ship.boostItemAttr("scanResolution", module.getModifiedItemAttr("scanResolutionBonus"), stackingPenalties = True) + + for scanType in ("Gravimetric", "Magnetometric", "Radar", "Ladar"): + fit.ship.boostItemAttr( + "scan{}Strength".format(scanType), + module.getModifiedItemAttr("scan{}StrengthPercent".format(scanType)), + stackingPenalties=True + ) diff --git a/eos/effects/shipbonusewremotesensordampenerfalloffbonusgc1.py b/eos/effects/shipbonusewremotesensordampenerfalloffbonusgc1.py index 7ecc88cbc..bd37ce743 100644 --- a/eos/effects/shipbonusewremotesensordampenerfalloffbonusgc1.py +++ b/eos/effects/shipbonusewremotesensordampenerfalloffbonusgc1.py @@ -4,5 +4,5 @@ # Ship: Celestis type = "passive" def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Sensor Damper", - "falloff", ship.getModifiedItemAttr("shipBonusGC"), skill="Gallente Cruiser") + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Sensor Dampener", + "falloffEffectiveness", ship.getModifiedItemAttr("shipBonusGC"), skill="Gallente Cruiser") diff --git a/eos/effects/shipbonusewremotesensordampenermaxtargetrangebonusgc2.py b/eos/effects/shipbonusewremotesensordampenermaxtargetrangebonusgc2.py index cafcea20d..7c7d1c512 100644 --- a/eos/effects/shipbonusewremotesensordampenermaxtargetrangebonusgc2.py +++ b/eos/effects/shipbonusewremotesensordampenermaxtargetrangebonusgc2.py @@ -4,5 +4,5 @@ # Variations of ship: Celestis (3 of 3) type = "passive" def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Sensor Damper", + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Sensor Dampener", "maxTargetRangeBonus", ship.getModifiedItemAttr("shipBonusGC2"), skill="Gallente Cruiser") diff --git a/eos/effects/shipbonusewremotesensordampenermaxtargetrangebonusgf2.py b/eos/effects/shipbonusewremotesensordampenermaxtargetrangebonusgf2.py index 52021cfd1..e321d8f41 100644 --- a/eos/effects/shipbonusewremotesensordampenermaxtargetrangebonusgf2.py +++ b/eos/effects/shipbonusewremotesensordampenermaxtargetrangebonusgf2.py @@ -5,5 +5,5 @@ # Ship: Maulus type = "passive" def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Sensor Damper", + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Sensor Dampener", "maxTargetRangeBonus", ship.getModifiedItemAttr("shipBonusGF2"), skill="Gallente Frigate") diff --git a/eos/effects/shipbonusewremotesensordampenermaxtargetrangebonusrookie.py b/eos/effects/shipbonusewremotesensordampenermaxtargetrangebonusrookie.py index 3c7a2a941..90874e57f 100644 --- a/eos/effects/shipbonusewremotesensordampenermaxtargetrangebonusrookie.py +++ b/eos/effects/shipbonusewremotesensordampenermaxtargetrangebonusrookie.py @@ -4,5 +4,5 @@ # Ship: Velator type = "passive" def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Sensor Damper", + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Sensor Dampener", "maxTargetRangeBonus", ship.getModifiedItemAttr("rookieDampStrengthBonus")) diff --git a/eos/effects/shipbonusewremotesensordampeneroptimalbonusgc1.py b/eos/effects/shipbonusewremotesensordampeneroptimalbonusgc1.py index 1a7adcda9..677cc1169 100644 --- a/eos/effects/shipbonusewremotesensordampeneroptimalbonusgc1.py +++ b/eos/effects/shipbonusewremotesensordampeneroptimalbonusgc1.py @@ -4,5 +4,5 @@ # Ship: Celestis type = "passive" def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Sensor Damper", + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Sensor Dampener", "maxRange", ship.getModifiedItemAttr("shipBonusGC"), skill="Gallente Cruiser") diff --git a/eos/effects/shipbonusewremotesensordampenerscanresolutionbonusgc2.py b/eos/effects/shipbonusewremotesensordampenerscanresolutionbonusgc2.py index 59c963ba3..7c676b180 100644 --- a/eos/effects/shipbonusewremotesensordampenerscanresolutionbonusgc2.py +++ b/eos/effects/shipbonusewremotesensordampenerscanresolutionbonusgc2.py @@ -4,5 +4,5 @@ # Variations of ship: Celestis (3 of 3) type = "passive" def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Sensor Damper", + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Sensor Dampener", "scanResolutionBonus", ship.getModifiedItemAttr("shipBonusGC2"), skill="Gallente Cruiser") diff --git a/eos/effects/shipbonusewremotesensordampenerscanresolutionbonusgf2.py b/eos/effects/shipbonusewremotesensordampenerscanresolutionbonusgf2.py index 49f11ecab..3a1da8294 100644 --- a/eos/effects/shipbonusewremotesensordampenerscanresolutionbonusgf2.py +++ b/eos/effects/shipbonusewremotesensordampenerscanresolutionbonusgf2.py @@ -5,5 +5,5 @@ # Ship: Maulus type = "passive" def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Sensor Damper", + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Sensor Dampener", "scanResolutionBonus", ship.getModifiedItemAttr("shipBonusGF2"), skill="Gallente Frigate") diff --git a/eos/effects/shipbonusewremotesensordampenerscanresolutionbonusrookie.py b/eos/effects/shipbonusewremotesensordampenerscanresolutionbonusrookie.py index 2dd755e1f..fdf1f57cc 100644 --- a/eos/effects/shipbonusewremotesensordampenerscanresolutionbonusrookie.py +++ b/eos/effects/shipbonusewremotesensordampenerscanresolutionbonusrookie.py @@ -4,5 +4,5 @@ # Ship: Velator type = "passive" def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Sensor Damper", + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Sensor Dampener", "scanResolutionBonus", ship.getModifiedItemAttr("rookieDampStrengthBonus")) diff --git a/eos/effects/shipbonusremotetrackingcomputerfalloffgc2.py b/eos/effects/shipbonusremotetrackingcomputerfalloffgc2.py new file mode 100644 index 000000000..19a946193 --- /dev/null +++ b/eos/effects/shipbonusremotetrackingcomputerfalloffgc2.py @@ -0,0 +1,4 @@ +type = "passive" +def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Tracking Computer", + "falloffEffectiveness", ship.getModifiedItemAttr("shipBonusGC2"), skill="Gallente Cruiser") diff --git a/eos/effects/shipbonusremotetrackingcomputerfalloffmc.py b/eos/effects/shipbonusremotetrackingcomputerfalloffmc.py new file mode 100644 index 000000000..adaab06de --- /dev/null +++ b/eos/effects/shipbonusremotetrackingcomputerfalloffmc.py @@ -0,0 +1,4 @@ +type = "passive" +def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Tracking Computer", + "falloffEffectiveness", ship.getModifiedItemAttr("shipBonusMC"), skill="Minmatar Cruiser") diff --git a/eos/effects/shipremotesensordampenercapneedgf.py b/eos/effects/shipremotesensordampenercapneedgf.py index 0b496f32f..65a8e0524 100644 --- a/eos/effects/shipremotesensordampenercapneedgf.py +++ b/eos/effects/shipremotesensordampenercapneedgf.py @@ -5,5 +5,5 @@ # Ship: Maulus type = "passive" def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Sensor Damper", + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Sensor Dampener", "capacitorNeed", ship.getModifiedItemAttr("shipBonusGF"), skill="Gallente Frigate") diff --git a/eos/effects/titancaldarimissilekineticdmg2.py b/eos/effects/titancaldarimissilekineticdmg2.py index 9757dea92..0f5732b82 100644 --- a/eos/effects/titancaldarimissilekineticdmg2.py +++ b/eos/effects/titancaldarimissilekineticdmg2.py @@ -4,6 +4,6 @@ # Ship: Leviathan type = "passive" def handler(fit, ship, context): - groups = ("Citadel Torpedo", "Citadel Cruise") + groups = ("Capital Torpedo", "Capital Cruise") fit.modules.filteredChargeBoost(lambda mod: mod.charge.group.name in groups, "kineticDamage", ship.getModifiedItemAttr("shipBonusCT1"), skill="Caldari Titan") diff --git a/eos/effects/triagemodeeffect3.py b/eos/effects/triagemodeeffect3.py index 5b7a22f37..eeb4bbf78 100644 --- a/eos/effects/triagemodeeffect3.py +++ b/eos/effects/triagemodeeffect3.py @@ -69,7 +69,7 @@ def handler(fit, module, context): # EW cap need increase groups = [ - 'ECM Burst', + 'Burst Jammer', 'Remote ECM Burst', 'Weapon Disruptor', 'ECM', diff --git a/eos/saveddata/fit.py b/eos/saveddata/fit.py index 458dab987..ecb7f926d 100644 --- a/eos/saveddata/fit.py +++ b/eos/saveddata/fit.py @@ -823,7 +823,8 @@ class Fit(object): return 10 / rechargeRate * sqrt(percent) * (1 - sqrt(percent)) * capacity def addDrain(self, cycleTime, capNeed, clipSize=0): - self.__extraDrains.append((cycleTime, capNeed, clipSize)) + resistance = self.ship.getModifiedItemAttr("energyWarfareResistance") or 1 + self.__extraDrains.append((cycleTime, capNeed * resistance, clipSize)) def removeDrain(self, i): del self.__extraDrains[i] diff --git a/eos/saveddata/module.py b/eos/saveddata/module.py index 2cb9d168b..1f5e84ec1 100644 --- a/eos/saveddata/module.py +++ b/eos/saveddata/module.py @@ -254,7 +254,7 @@ class Module(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut): @property def falloff(self): - attrs = ("falloff", "shipScanFalloff", "falloffEffectiveness") + attrs = ("falloffEffectiveness", "falloff", "shipScanFalloff") for attr in attrs: falloff = self.getModifiedItemAttr(attr) if falloff is not None: return falloff diff --git a/eve.db b/eve.db index 560001fc7..ffc1a069d 100644 Binary files a/eve.db and b/eve.db differ diff --git a/gui/builtinViewColumns/ammoIcon.py b/gui/builtinViewColumns/ammoIcon.py index 262f01efa..2403077bd 100644 --- a/gui/builtinViewColumns/ammoIcon.py +++ b/gui/builtinViewColumns/ammoIcon.py @@ -42,7 +42,7 @@ class AmmoIcon(ViewColumn): if stuff.charge is None: return -1 else: - iconFile = stuff.charge.icon.iconFile if stuff.item.icon else "" + iconFile = stuff.charge.icon.iconFile if stuff.charge.icon else "" if iconFile: return self.fittingView.imageList.GetImageIndex(iconFile, "icons") else: diff --git a/gui/builtinViewColumns/misc.py b/gui/builtinViewColumns/misc.py index 1a2118ba8..c2f617deb 100644 --- a/gui/builtinViewColumns/misc.py +++ b/gui/builtinViewColumns/misc.py @@ -139,7 +139,7 @@ class Miscellanea(ViewColumn): text = "{0}%".format(formatAmount(sigRadBonus, 3, 0, 3, forceSign=True)) tooltip = "Signature radius increase" return text, tooltip - elif itemGroup == "Remote Sensor Damper": + elif itemGroup == "Sensor Dampener": lockRangeBonus = stuff.getModifiedItemAttr("maxTargetRangeBonus") scanResBonus = stuff.getModifiedItemAttr("scanResolutionBonus") if lockRangeBonus is None or scanResBonus is None: @@ -205,7 +205,7 @@ class Miscellanea(ViewColumn): tooltip = "{0} disruption".format(formatList(ttEntries)).capitalize() return text, tooltip - elif itemGroup in ("ECM", "ECM Burst", "Remote ECM Burst"): + elif itemGroup in ("ECM", "Burst Jammer", "Remote ECM Burst"): grav = stuff.getModifiedItemAttr("scanGravimetricStrengthBonus") ladar = stuff.getModifiedItemAttr("scanLadarStrengthBonus") radar = stuff.getModifiedItemAttr("scanRadarStrengthBonus") @@ -487,7 +487,7 @@ class Miscellanea(ViewColumn): if chargeGroup in ("Rocket", "Advanced Rocket", "Light Missile", "Advanced Light Missile", "FoF Light Missile", "Heavy Assault Missile", "Advanced Heavy Assault Missile", "Heavy Missile", "Advanced Heavy Missile", "FoF Heavy Missile", "Torpedo", "Advanced Torpedo", "Cruise Missile", "Advanced Cruise Missile", "FoF Cruise Missile", - "Citadel Torpedo", "Citadel Cruise"): + "Capital Torpedo", "Capital Cruise"): cloudSize = stuff.getModifiedChargeAttr("aoeCloudSize") aoeVelocity = stuff.getModifiedChargeAttr("aoeVelocity") if not cloudSize or not aoeVelocity: diff --git a/gui/itemStats.py b/gui/itemStats.py index ce58ac09f..d0ef2db3f 100644 --- a/gui/itemStats.py +++ b/gui/itemStats.py @@ -361,6 +361,9 @@ class ItemParams (wx.Panel): else: attrName = name + if info and config.debug: + attrName += " ({})".format(info.ID) + if info: if info.icon is not None: iconFile = info.icon.iconFile @@ -376,7 +379,7 @@ class ItemParams (wx.Panel): attrIcon = self.imageList.Add(BitmapLoader.getBitmap("07_15", "icons")) - index = self.paramList.InsertImageStringItem(sys.maxint, attrName,attrIcon) + index = self.paramList.InsertImageStringItem(sys.maxint, attrName, attrIcon) idNameMap[idCount] = attrName self.paramList.SetItemData(index, idCount) idCount += 1 @@ -499,6 +502,8 @@ class ItemEffects (wx.Panel): self.effectList.InsertColumn(0,"Name") self.effectList.InsertColumn(1,"Implemented") + if config.debug: + self.effectList.InsertColumn(2,"ID") #self.effectList.SetColumnWidth(0,385) @@ -519,6 +524,8 @@ class ItemEffects (wx.Panel): implemented = "Erroneous" self.effectList.SetStringItem(index, 1, implemented) + if config.debug: + self.effectList.SetStringItem(index, 2, str(effects[name].ID)) self.effectList.RefreshRows() self.Layout() diff --git a/scripts/conversion.py b/scripts/conversion.py index 9d55f823d..78c2f6ad4 100644 --- a/scripts/conversion.py +++ b/scripts/conversion.py @@ -13,98 +13,249 @@ sys.path.append(os.path.realpath(os.path.join(path, ".."))) # change to correct conversion rename_phrase = " is now known as " -conversion_phrase = " has been converted into " +conversion_phrase = " is being converted to " -text = """F-392 Baker Nunn Tracking Disruptor I is now known as Baker Nunn Enduring Tracking Disruptor I -Balmer Series Tracking Disruptor I is now known as Balmer Series Compact Tracking Disruptor I -'Abandon' Tracking Disruptor I is now known as C-IR Compact Guidance Disruptor I -DDO Photometry Tracking Disruptor I is now known as DDO Scoped Tracking Disruptor I -'Distributor' Tracking Disruptor I is now known as 'Distributor' Guidance Disruptor I -5W Infectious Power System Malfunction is now known as Small Infectious Scoped Energy Neutralizer -Small 'Gremlin' Power Core Disruptor I is now known as Small Gremlin Compact Energy Neutralizer -Medium 'Gremlin' Power Core Disruptor I is now known as Medium Gremlin Compact Energy Neutralizer -50W Infectious Power System Malfunction is now known as Medium Infectious Scoped Energy Neutralizer -Heavy 'Gremlin' Power Core Disruptor I is now known as Heavy Gremlin Compact Energy Neutralizer -500W Infectious Power System Malfunction is now known as Heavy Infectious Scoped Energy Neutralizer -'Caltrop' Small Energy Neutralizer I is now known as Small 'Caltrop' Energy Neutralizer -'Ditch' Medium Energy Neutralizer I is now known as Medium 'Ditch' Energy Neutralizer -'Moat' Heavy Energy Neutralizer I is now known as Heavy 'Moat' Energy Neutralizer -Small 'Knave' Energy Drain is now known as Small Knave Scoped Energy Nosferatu -Small 'Ghoul' Energy Siphon I is now known as Small Ghoul Compact Energy Nosferatu -Heavy 'Ghoul' Energy Siphon I is now known as Heavy Ghoul Compact Energy Nosferatu -Heavy 'Knave' Energy Drain is now known as Heavy Knave Scoped Energy Nosferatu -Medium 'Ghoul' Energy Siphon I is now known as Medium Ghoul Compact Energy Nosferatu -Medium 'Knave' Energy Drain is now known as Medium Knave Scoped Energy Nosferatu -'Upir' Small Nosferatu I is now known as Small 'Upir' Energy Nosferatu -'Strigoi' Medium Nosferatu I is now known as Medium 'Strigoi' Energy Nosferatu -'Vrykolakas' Heavy Nosferatu I is now known as Heavy 'Vrykolakas' Energy Nosferatu -M51 Iterative Shield Regenerator is now known as M51 Benefactor Compact Shield Recharger -Basic Shield Power Relay is now known as 'Basic' Shield Power Relay -Type-D Power Core Modification: Shield Power Relay is now known as Type-D Restrained Shield Power Relay -Mark I Generator Refitting: Shield Power Relay is now known as Mark I Compact Shield Power Relay -Basic Shield Flux Coil is now known as 'Basic' Shield Flux Coil -Type-D Power Core Modification: Shield Flux is now known as Type-D Restrained Shield Flux Coil -Mark I Generator Refitting: Shield Flux is now known as Mark I Compact Shield Flux Coil -Micro Remote Shield Booster I is now known as 'Micro' Remote Shield Booster -Capital Murky Remote Shield Booster is now known as CONCORD Capital Remote Shield Booster -Small Murky Remote Shield Booster is now known as Small Murky Compact Remote Shield Booster -Small Asymmetric Remote Shield Booster is now known as Small Asymmetric Enduring Remote Shield Booster -Small S95a Remote Shield Booster is now known as Small S95a Scoped Remote Shield Booster -Medium Murky Remote Shield Booster is now known as Medium Murky Compact Remote Shield Booster -Medium Asymmetric Remote Shield Booster is now known as Medium Asymmetric Enduring Remote Shield Booster -Medium S95a Remote Shield Booster is now known as Medium S95a Scoped Remote Shield Booster -Large Murky Remote Shield Booster is now known as Large Murky Compact Remote Shield Booster -Large Asymmetric Remote Shield Booster is now known as Large Asymmetric Enduring Remote Shield Booster -Large S95a Remote Shield Booster is now known as Large S95a Scoped Remote Shield Booster -Capital Coaxial Remote Armor Repairer is now known as CONCORD Capital Remote Armor Repairer -Small I-ax Remote Armor Repairer is now known as Small I-ax Enduring Remote Armor Repairer -Small Coaxial Remote Armor Repairer is now known as Small Coaxial Compact Remote Armor Repairer -Small 'Solace' Remote Armor Repairer is now known as Small Solace Scoped Remote Armor Repairer -Medium I-ax Remote Armor Repairer is now known as Medium I-ax Enduring Remote Armor Repairer -Medium Coaxial Remote Armor Repairer is now known as Medium Coaxial Compact Remote Armor Repairer -Medium 'Solace' Remote Armor Repairer is now known as Medium Solace Scoped Remote Armor Repairer -Large I-ax Remote Armor Repairer is now known as Large I-ax Enduring Remote Armor Repairer -Large Coaxial Remote Armor Repairer is now known as Large Coaxial Compact Remote Armor Repairer -Large 'Solace' Remote Armor Repairer is now known as Large Solace Scoped Remote Armor Repairer -Small 'Arup' Remote Armor Repairer has been converted into Small Solace Scoped Remote Armor Repairer -'Brotherhood' Small Remote Armor Repairer has been converted into 'Beatnik' Small Remote Armor Repairer -Medium 'Arup' Remote Armor Repairer has been converted into Medium Solace Scoped Remote Armor Repairer -Large 'Arup' Remote Armor Repairer has been converted into Large Solace Scoped Remote Armor Repairer -'Pacifier' Large Remote Armor Repairer has been converted into 'Peace' Large Remote Armor Repairer -Micro Asymmetric Remote Shield Booster has been converted into 'Micro' Remote Shield Booster -Micro Murky Remote Shield Booster has been converted into 'Micro' Remote Shield Booster -Micro 'Atonement' Remote Shield Booster has been converted into 'Micro' Remote Shield Booster -Micro S95a Remote Shield Booster has been converted into 'Micro' Remote Shield Booster -Small 'Atonement' Remote Shield Booster has been converted into Small Murky Compact Remote Shield Booster -Medium 'Atonement' Remote Shield Booster has been converted into Medium Murky Compact Remote Shield Booster -Large 'Atonement' Remote Shield Booster has been converted into Large Murky Compact Remote Shield Booster -E5 Prototype Energy Vampire has been converted into Small Knave Scoped Energy Nosferatu -Small Diminishing Power System Drain I has been converted into Small Ghoul Compact Energy Nosferatu -E50 Prototype Energy Vampire has been converted into Medium Knave Scoped Energy Nosferatu -Medium Diminishing Power System Drain I has been converted into Medium Ghoul Compact Energy Nosferatu -E500 Prototype Energy Vampire has been converted into Heavy Knave Scoped Energy Nosferatu -Heavy Diminishing Power System Drain I has been converted into Heavy Ghoul Compact Energy Nosferatu -Small Rudimentary Energy Destabilizer I has been converted into Small Infectious Scoped Energy Neutralizer -Small Unstable Power Fluctuator I has been converted into Small Gremlin Compact Energy Neutralizer -Medium Rudimentary Energy Destabilizer I has been converted into Medium Infectious Scoped Energy Neutralizer -Medium Unstable Power Fluctuator I has been converted into Medium Gremlin Compact Energy Neutralizer -Heavy Rudimentary Energy Destabilizer I has been converted into Heavy Infectious Scoped Energy Neutralizer -Heavy Unstable Power Fluctuator I has been converted into Heavy Gremlin Compact Energy Neutralizer -Passive Barrier Compensator I has been converted into M51 Benefactor Compact Shield Recharger -'Benefactor' Ward Reconstructor has been converted into M51 Benefactor Compact Shield Recharger -Supplemental Screen Generator I has been converted into M51 Benefactor Compact Shield Recharger -Alpha Reactor Shield Power Relay has been converted into 'Basic' Shield Power Relay -Marked Generator Refitting: Shield Power Relay has been converted into 'Basic' Shield Power Relay -Partial Power Plant Manager: Shield Power Relay has been converted into 'Basic' Shield Power Relay -Type-E Power Core Modification: Shield Power Relay has been converted into 'Basic' Shield Power Relay -Beta Reactor Control: Shield Power Relay I has been converted into Type-D Restrained Shield Power Relay -Local Power Plant Manager: Reaction Shield Power Relay I has been converted into Mark I Compact Shield Power Relay -Alpha Reactor Shield Flux has been converted into 'Basic' Shield Flux Coil -Marked Generator Refitting: Shield Flux has been converted into 'Basic' Shield Flux Coil -Partial Power Plant Manager: Shield Flux has been converted into 'Basic' Shield Flux Coil -Type-E Power Core Modification: Shield Flux has been converted into 'Basic' Shield Flux Coil -Beta Reactor Control: Shield Flux I has been converted into Type-D Restrained Shield Flux Coil -Local Power Plant Manager: Reaction Shield Flux I has been converted into Mark I Compact Shield Flux Coil""" +text = """Partial Weapon Navigation is being converted to Phased Scoped Target Painter +Indirect Scanning Dampening Unit I is being converted to Phased Muon Scoped Sensor Dampener +'Broker' Remote Sensor Dampener I is being converted to 'Executive' Remote Sensor Dampener +Initiated Ion Field ECM I is being converted to Hypnos Scoped Magnetometric ECM +FZ-3 Subversive Spatial Destabilizer ECM is being converted to BZ-5 Scoped Gravimetric ECM +'Penumbra' White Noise ECM is being converted to Umbra Scoped Radar ECM +Faint Phase Inversion ECM I is being converted to Enfeebling Scoped Ladar ECM +'Hypnos' Multispectral ECM I is being converted to Compulsive Scoped Multispectral ECM +1Z-3 Subversive ECM Eruption is being converted to Cetus Scoped Burst Jammer +'Prayer' Remote Tracking Computer is being converted to P-S Compact Remote Tracking Computer +'Tycoon' Remote Tracking Computer is being converted to 'Enterprise' Remote Tracking Computer +Monopulse Tracking Mechanism I is being converted to F-12 Enduring Tracking Computer +'Orion' Tracking CPU I is being converted to Optical Compact Tracking Computer +'Economist' Tracking Computer I is being converted to 'Marketeer' Tracking Computer +Beta-Nought Tracking Mode is being converted to 'Basic' Tracking Enhancer +Azimuth Descalloping Tracking Enhancer is being converted to 'Basic' Tracking Enhancer +F-AQ Delay-Line Scan Tracking Subroutines is being converted to 'Basic' Tracking Enhancer +Beam Parallax Tracking Program is being converted to 'Basic' Tracking Enhancer +Sigma-Nought Tracking Mode I is being converted to Fourier Compact Tracking Enhancer +Auto-Gain Control Tracking Enhancer I is being converted to Fourier Compact Tracking Enhancer +F-aQ Phase Code Tracking Subroutines is being converted to Fourier Compact Tracking Enhancer +Lateral Gyrostabilizer is being converted to 'Basic' Gyrostabilizer +F-M2 Weapon Inertial Suspensor is being converted to 'Basic' Gyrostabilizer +Hydraulic Stabilization Actuator is being converted to 'Basic' Gyrostabilizer +Stabilized Weapon Mounts is being converted to 'Basic' Gyrostabilizer +Cross-Lateral Gyrostabilizer I is being converted to Counterbalanced Compact Gyrostabilizer +F-M3 Munition Inertial Suspensor is being converted to Counterbalanced Compact Gyrostabilizer +Pneumatic Stabilization Actuator I is being converted to Counterbalanced Compact Gyrostabilizer +Monophonic Stabilization Actuator I is being converted to 'Kindred' Gyrostabilizer +Monophonic Stabilization Actuator I Blueprint is being converted to 'Kindred' Gyrostabilizer Blueprint +Heat Exhaust System is being converted to 'Basic' Heat Sink +C3S Convection Thermal Radiator is being converted to 'Basic' Heat Sink +'Boreas' Coolant System is being converted to 'Basic' Heat Sink +Stamped Heat Sink is being converted to 'Basic' Heat Sink +Thermal Exhaust System I is being converted to Extruded Compact Heat Sink +C4S Coiled Circuit Thermal Radiator is being converted to Extruded Compact Heat Sink +'Skadi' Coolant System I is being converted to Extruded Compact Heat Sink +'Mangonel' Heat Sink I is being converted to 'Trebuchet' Heat Sink I +'Mangonel' Heat Sink I Blueprint is being converted to 'Trebuchet' Heat Sink Blueprint +Insulated Stabilizer Array is being converted to 'Basic' Magnetic Field Stabilizer +Linear Flux Stabilizer is being converted to 'Basic' Magnetic Field Stabilizer +Gauss Field Balancer is being converted to 'Basic' Magnetic Field Stabilizer +Magnetic Vortex Stabilizer is being converted to 'Basic' Magnetic Field Stabilizer +Insulated Stabilizer Array I is being converted to Vortex Compact Magnetic Field Stabilizer +Linear Flux Stabilizer I is being converted to Vortex Compact Magnetic Field Stabilizer +Gauss Field Balancer I is being converted to Vortex Compact Magnetic Field Stabilizer +'Capitalist' Magnetic Field Stabilizer I is being converted to 'Monopoly' Magnetic Field Stabilizer +'Capitalist' Magnetic Field Stabilizer I Blueprint is being converted to 'Monopoly' Magnetic Field Stabilizer Blueprint +Muon Coil Bolt Array I is being converted to Crosslink Compact Ballistic Control System +Multiphasic Bolt Array I is being converted to Crosslink Compact Ballistic Control System +'Pandemonium' Ballistic Enhancement is being converted to Crosslink Compact Ballistic Control System +Ballistic 'Purge' Targeting System I is being converted to 'Full Duplex' Ballistic Control System +Ballistic 'Purge' Targeting System I Blueprint is being converted to 'Full Duplex' Ballistic Control System Blueprint +'Langour' Drive Disruptor I is being converted to X5 Enduring Stasis Webifier +Patterned Stasis Web I is being converted to Fleeting Compact Stasis Webifier +Fleeting Progressive Warp Scrambler I is being converted to Faint Epsilon Scoped Warp Scrambler +Fleeting Warp Disruptor I is being converted to Faint Scoped Warp Disruptor +GLFF Containment Field is being converted to 'Basic' Damage Control +Interior Force Field Array is being converted to 'Basic' Damage Control +F84 Local Damage System is being converted to 'Basic' Damage Control +Systematic Damage Control is being converted to 'Basic' Damage Control +'Gonzo' Damage Control I is being converted to 'Radical' Damage Control +'Gonzo' Damage Control I Blueprint is being converted to 'Radical' Damage Control Blueprint +Emergency Damage Control I is being converted to IFFA Compact Damage Control +F85 Peripheral Damage System I is being converted to IFFA Compact Damage Control +Pseudoelectron Containment Field I is being converted to IFFA Compact Damage Control +Micro Ld-Acid Capacitor Battery I is being converted to 'Micro' Cap Battery +Micro Ohm Capacitor Reserve I is being converted to 'Micro' Cap Battery +Micro F-4a Ld-Sulfate Capacitor Charge Unit is being converted to 'Micro' Cap Battery +Micro Peroxide Capacitor Power Cell is being converted to 'Micro' Cap Battery +Micro Capacitor Battery II is being converted to 'Micro' Cap Battery +Small Ohm Capacitor Reserve I is being converted to Small Compact Pb-Acid Cap Battery +Small F-4a Ld-Sulfate Capacitor Charge Unit is being converted to Small Compact Pb-Acid Cap Battery +Small Peroxide Capacitor Power Cell is being converted to Small Compact Pb-Acid Cap Battery +Medium Ohm Capacitor Reserve I is being converted to Medium Compact Pb-Acid Cap Battery +Medium F-4a Ld-Sulfate Capacitor Charge Unit is being converted to Medium Compact Pb-Acid Cap Battery +Medium Peroxide Capacitor Power Cell is being converted to Medium Compact Pb-Acid Cap Battery +Large Ohm Capacitor Reserve I is being converted to Large Compact Pb-Acid Cap Battery +Large F-4a Ld-Sulfate Capacitor Charge Unit is being converted to Large Compact Pb-Acid Cap Battery +Large Peroxide Capacitor Power Cell is being converted to Large Compact Pb-Acid Cap Battery +ECCM - Radar I is being converted to Sensor Booster I +ECCM - Ladar I is being converted to Sensor Booster I +ECCM - Magnetometric I is being converted to Sensor Booster I +ECCM - Gravimetric I is being converted to Sensor Booster I +ECCM - Omni I is being converted to Sensor Booster I +ECCM - Radar I Blueprint is being converted to Sensor Booster I Blueprint +ECCM - Ladar I Blueprint is being converted to Sensor Booster I Blueprint +ECCM - Magnetometric I Blueprint is being converted to Sensor Booster I Blueprint +ECCM - Gravimetric I Blueprint is being converted to Sensor Booster I Blueprint +ECCM - Omni I Blueprint is being converted to Sensor Booster I Blueprint +Alumel Radar ECCM Sensor Array I is being converted to Alumel-Wired Enduring Sensor Booster +Alumel Ladar ECCM Sensor Array I is being converted to Alumel-Wired Enduring Sensor Booster +Alumel Gravimetric ECCM Sensor Array I is being converted to Alumel-Wired Enduring Sensor Booster +Alumel Omni ECCM Sensor Array I is being converted to Alumel-Wired Enduring Sensor Booster +Alumel Magnetometric ECCM Sensor Array I is being converted to Alumel-Wired Enduring Sensor Booster +Supplemental Ladar ECCM Scanning Array I is being converted to Alumel-Wired Enduring Sensor Booster +Supplemental Gravimetric ECCM Scanning Array I is being converted to Alumel-Wired Enduring Sensor Booster +Supplemental Omni ECCM Scanning Array I is being converted to Alumel-Wired Enduring Sensor Booster +Supplemental Radar ECCM Scanning Array I is being converted to Alumel-Wired Enduring Sensor Booster +Supplemental Magnetometric ECCM Scanning Array I is being converted to Alumel-Wired Enduring Sensor Booster +Extra Radar ECCM Scanning Array I is being converted to F-90 Compact Sensor Booster +Extra Ladar ECCM Scanning Array I is being converted to F-90 Compact Sensor Booster +Extra Gravimetric ECCM Scanning Array I is being converted to F-90 Compact Sensor Booster +Extra Magnetometric ECCM Scanning Array I is being converted to F-90 Compact Sensor Booster +Gravimetric Positional ECCM Sensor System I is being converted to F-90 Compact Sensor Booster +Radar Positional ECCM Sensor System I is being converted to F-90 Compact Sensor Booster +Omni Positional ECCM Sensor System I is being converted to F-90 Compact Sensor Booster +Ladar Positional ECCM Sensor System I is being converted to F-90 Compact Sensor Booster +Magnetometric Positional ECCM Sensor System I is being converted to F-90 Compact Sensor Booster +Incremental Radar ECCM Scanning Array I is being converted to Alumel-Wired Enduring Sensor Booster +Incremental Ladar ECCM Scanning Array I is being converted to Alumel-Wired Enduring Sensor Booster +Incremental Gravimetric ECCM Scanning Array I is being converted to Alumel-Wired Enduring Sensor Booster +Incremental Magnetometric ECCM Scanning Array I is being converted to Alumel-Wired Enduring Sensor Booster +Prototype ECCM Radar Sensor Cluster is being converted to Alumel-Wired Enduring Sensor Booster +Prototype ECCM Ladar Sensor Cluster is being converted to Alumel-Wired Enduring Sensor Booster +Prototype ECCM Gravimetric Sensor Cluster is being converted to Alumel-Wired Enduring Sensor Booster +Prototype ECCM Omni Sensor Cluster is being converted to Alumel-Wired Enduring Sensor Booster +Prototype ECCM Magnetometric Sensor Cluster is being converted to Alumel-Wired Enduring Sensor Booster +Conjunctive Radar ECCM Scanning Array I is being converted to F-90 Compact Sensor Booster +Conjunctive Ladar ECCM Scanning Array I is being converted to F-90 Compact Sensor Booster +Conjunctive Gravimetric ECCM Scanning Array I is being converted to F-90 Compact Sensor Booster +Conjunctive Magnetometric ECCM Scanning Array I is being converted to F-90 Compact Sensor Booster +ECCM - Omni II is being converted to Sensor Booster II +ECCM - Gravimetric II is being converted to Sensor Booster II +ECCM - Ladar II is being converted to Sensor Booster II +ECCM - Magnetometric II is being converted to Sensor Booster II +ECCM - Radar II is being converted to Sensor Booster II +ECCM - Omni II Blueprint is being converted to Sensor Booster II Blueprint +ECCM - Gravimetric II Blueprint is being converted to Sensor Booster II Blueprint +ECCM - Ladar II Blueprint is being converted to Sensor Booster II Blueprint +ECCM - Magnetometric II Blueprint is being converted to Sensor Booster II Blueprint +ECCM - Radar II Blueprint is being converted to Sensor Booster II Blueprint +'Forger' ECCM - Magnetometric I is being converted to 'Shady' Sensor Booster +'Forger' ECCM - Magnetometric I Blueprint is being converted to 'Shady' Sensor Booster Blueprint +Basic RADAR Backup Array is being converted to 'Basic' Signal Amplifier +Basic Ladar Backup Array is being converted to 'Basic' Signal Amplifier +Basic Gravimetric Backup Array is being converted to 'Basic' Signal Amplifier +Basic Magnetometric Backup Array is being converted to 'Basic' Signal Amplifier +Basic Multi Sensor Backup Array is being converted to 'Basic' Signal Amplifier +Emergency Magnetometric Scanners is being converted to 'Basic' Signal Amplifier +Emergency Multi-Frequency Scanners is being converted to 'Basic' Signal Amplifier +Emergency RADAR Scanners is being converted to 'Basic' Signal Amplifier +Emergency Ladar Scanners is being converted to 'Basic' Signal Amplifier +Emergency Gravimetric Scanners is being converted to 'Basic' Signal Amplifier +Sealed RADAR Backup Cluster is being converted to 'Basic' Signal Amplifier +Sealed Magnetometric Backup Cluster is being converted to 'Basic' Signal Amplifier +Sealed Multi-Frequency Backup Cluster is being converted to 'Basic' Signal Amplifier +Sealed Ladar Backup Cluster is being converted to 'Basic' Signal Amplifier +Sealed Gravimetric Backup Cluster is being converted to 'Basic' Signal Amplifier +Surplus RADAR Reserve Array is being converted to 'Basic' Signal Amplifier +F-42 Reiterative RADAR Backup Sensors is being converted to 'Basic' Signal Amplifier +Surplus Magnetometric Reserve Array is being converted to 'Basic' Signal Amplifier +F-42 Reiterative Magnetometric Backup Sensors is being converted to 'Basic' Signal Amplifier +Surplus Multi-Frequency Reserve Array is being converted to 'Basic' Signal Amplifier +F-42 Reiterative Multi-Frequency Backup Sensors is being converted to 'Basic' Signal Amplifier +Surplus Ladar Reserve Array is being converted to 'Basic' Signal Amplifier +F-42 Reiterative Ladar Backup Sensors is being converted to 'Basic' Signal Amplifier +Surplus Gravimetric Reserve Array is being converted to 'Basic' Signal Amplifier +F-42 Reiterative Gravimetric Backup Sensors is being converted to 'Basic' Signal Amplifier +Gravimetric Backup Array I is being converted to Signal Amplifier I +Ladar Backup Array I is being converted to Signal Amplifier I +Magnetometric Backup Array I is being converted to Signal Amplifier I +Multi Sensor Backup Array I is being converted to Signal Amplifier I +RADAR Backup Array I is being converted to Signal Amplifier I +Gravimetric Backup Array I Blueprint is being converted to Signal Amplifier I Blueprint +Ladar Backup Array I Blueprint is being converted to Signal Amplifier I Blueprint +Magnetometric Backup Array I Blueprint is being converted to Signal Amplifier I Blueprint +Multi Sensor Backup Array I Blueprint is being converted to Signal Amplifier I Blueprint +RADAR Backup Array I Blueprint is being converted to Signal Amplifier I Blueprint +Protected Gravimetric Backup Cluster I is being converted to F-89 Compact Signal Amplifier +Protected Ladar Backup Cluster I is being converted to F-89 Compact Signal Amplifier +Protected Magnetometric Backup Cluster I is being converted to F-89 Compact Signal Amplifier +Protected Multi-Frequency Backup Cluster I is being converted to F-89 Compact Signal Amplifier +Protected RADAR Backup Cluster I is being converted to F-89 Compact Signal Amplifier +Reserve Gravimetric Scanners is being converted to F-89 Compact Signal Amplifier +Reserve Ladar Scanners is being converted to F-89 Compact Signal Amplifier +Reserve Magnetometric Scanners is being converted to F-89 Compact Signal Amplifier +Reserve Multi-Frequency Scanners is being converted to F-89 Compact Signal Amplifier +Reserve RADAR Scanners is being converted to F-89 Compact Signal Amplifier +Secure Gravimetric Backup Cluster I is being converted to F-89 Compact Signal Amplifier +Secure Ladar Backup Cluster I is being converted to F-89 Compact Signal Amplifier +Secure Magnetometric Backup Cluster I is being converted to F-89 Compact Signal Amplifier +Secure Radar Backup Cluster I is being converted to F-89 Compact Signal Amplifier +F-43 Repetitive Gravimetric Backup Sensors is being converted to F-89 Compact Signal Amplifier +F-43 Repetitive Ladar Backup Sensors is being converted to F-89 Compact Signal Amplifier +F-43 Repetitive Magnetometric Backup Sensors is being converted to F-89 Compact Signal Amplifier +F-43 Repetitive Multi-Frequency Backup Sensors is being converted to F-89 Compact Signal Amplifier +F-43 Repetitive RADAR Backup Sensors is being converted to F-89 Compact Signal Amplifier +Shielded Gravimetric Backup Cluster I is being converted to F-89 Compact Signal Amplifier +Shielded Ladar Backup Cluster I is being converted to F-89 Compact Signal Amplifier +Shielded Magnetometric Backup Cluster I is being converted to F-89 Compact Signal Amplifier +Shielded Radar Backup Cluster I is being converted to F-89 Compact Signal Amplifier +Surrogate Gravimetric Reserve Array I is being converted to F-89 Compact Signal Amplifier +Surrogate Ladar Reserve Array I is being converted to F-89 Compact Signal Amplifier +Surrogate Magnetometric Reserve Array I is being converted to F-89 Compact Signal Amplifier +Surrogate Multi-Frequency Reserve Array I is being converted to F-89 Compact Signal Amplifier +Surrogate RADAR Reserve Array I is being converted to F-89 Compact Signal Amplifier +Warded Gravimetric Backup Cluster I is being converted to F-89 Compact Signal Amplifier +Warded Ladar Backup Cluster I is being converted to F-89 Compact Signal Amplifier +Warded Magnetometric Backup Cluster I is being converted to F-89 Compact Signal Amplifier +Warded Radar Backup Cluster I is being converted to F-89 Compact Signal Amplifier +Gravimetric Backup Array II is being converted to Signal Amplifier II +Ladar Backup Array II is being converted to Signal Amplifier II +Magnetometric Backup Array II is being converted to Signal Amplifier II +Multi Sensor Backup Array II is being converted to Signal Amplifier II +RADAR Backup Array II is being converted to Signal Amplifier II +Gravimetric Backup Array II Blueprint is being converted to Signal Amplifier II Blueprint +Ladar Backup Array II Blueprint is being converted to Signal Amplifier II Blueprint +Magnetometric Backup Array II Blueprint is being converted to Signal Amplifier II Blueprint +Multi Sensor Backup Array II Blueprint is being converted to Signal Amplifier II Blueprint +RADAR Backup Array II Blueprint is being converted to Signal Amplifier II Blueprint +Gravimetric Firewall is being converted to 'Firewall' Signal Amplifier +Ladar Firewall is being converted to 'Firewall' Signal Amplifier +Magnetometric Firewall is being converted to 'Firewall' Signal Amplifier +Multi Sensor Firewall is being converted to 'Firewall' Signal Amplifier +RADAR Firewall is being converted to 'Firewall' Signal Amplifier +ECCM Projector I is being converted to Remote Sensor Booster I +ECCM Projector I Blueprint is being converted to Remote Sensor Booster I Blueprint +Scattering ECCM Projector I is being converted to Linked Enduring Sensor Booster +Piercing ECCM Emitter I is being converted to Coadjunct Scoped Remote Sensor Booster +Spot Pulsing ECCM I is being converted to F-23 Compact Remote Sensor Booster +Phased Muon ECCM Caster I is being converted to F-23 Compact Remote Sensor Booster +ECCM Projector II is being converted to Remote Sensor Booster II +ECCM Projector II Blueprint is being converted to Remote Sensor Booster II Blueprint +Prototype Sensor Booster is being converted to Alumel-Wired Enduring Sensor Booster +Supplemental Scanning CPU I is being converted to F-90 Compact Sensor Booster +Amplitude Signal Enhancer is being converted to 'Basic' Signal Amplifier +'Acolyth' Signal Booster is being converted to 'Basic' Signal Amplifier +Type-E Discriminative Signal Augmentation is being converted to 'Basic' Signal Amplifier +F-90 Positional Signal Amplifier is being converted to 'Basic' Signal Amplifier +'Mendicant' Signal Booster I is being converted to F-89 Compact Signal Amplifier +Wavelength Signal Enhancer I is being converted to F-89 Compact Signal Amplifier +Type-D Attenuation Signal Augmentation is being converted to F-89 Compact Signal Amplifier +Connected Remote Sensor Booster is being converted to F-23 Compact Remote Sensor Booster +'Boss' Remote Sensor Booster is being converted to 'Bootleg' Remote Sensor Booster +'Entrepreneur' Remote Sensor Booster is being converted to 'Bootleg' Remote Sensor Booster +'Pacifier' Large Remote Armor Repairer is being converted to 'Peace' Large Remote Armor Repairer +'Pacifier' Large Remote Armor Repairer Blueprint is being converted to 'Peace' Large Remote Armor Repairer Blueprint +'Broker' Remote Sensor Dampener I Blueprint is being converted to 'Executive' Remote Sensor Dampener Blueprint +'Tycoon' Remote Tracking Computer Blueprint is being converted to 'Enterprise' Remote Tracking Computer Blueprint +'Economist' Tracking Computer I Blueprint is being converted to 'Marketeer' Tracking Computer Blueprint""" def main(old, new): # Open both databases and get their cursors @@ -130,6 +281,10 @@ def main(old, new): old_name, new_name = c[0], c[1] old_item, new_item = None, None + if "Blueprint" in old_name or "Blueprint" in new_name: + print "Blueprint: Skipping this line: %s"%x + continue + # gather item info new_cursor.execute('SELECT "typeID" FROM "invtypes" WHERE "typeName" = ?', (new_name,)) for row in new_cursor: diff --git a/service/conversions/releaseMar2016.py b/service/conversions/releaseMar2016.py new file mode 100644 index 000000000..2af04e1af --- /dev/null +++ b/service/conversions/releaseMar2016.py @@ -0,0 +1,361 @@ +""" +Conversion pack for January 2016 (YC118.1) release +""" + +CONVERSIONS = { + # Renamed items + "Basic Gyrostabilizer": "'Basic' Gyrostabilizer", + "Basic Damage Control": "'Basic' Damage Control", + "Micro Capacitor Battery I": "'Micro' Cap Battery", + "ECM Burst I": "Burst Jammer I", + "Small Capacitor Battery I": "Small Cap Battery I", + "Basic Heat Sink": "'Basic' Heat Sink", + "ECM - Ion Field Projector I": "Magnetometric ECM I", + "Basic Signal Amplifier": "'Basic' Signal Amplifier", + "Basic Tracking Enhancer": "'Basic' Tracking Enhancer", + "ECM - Spatial Destabilizer I": "Gravimetric ECM I", + "ECM - White Noise Generator I": "Radar ECM I", + "ECM - Multispectral Jammer I": "Multispectral ECM I", + "ECM - Phase Inverter I": "Ladar ECM I", + "Medium Capacitor Battery I": "Medium Cap Battery I", + "Large Capacitor Battery I": "Large Cap Battery I", + "ECM Burst II": "Burst Jammer II", + "Guristas Nova Citadel Cruise Missile": "Guristas Nova XL Cruise Missile", + "Guristas Scourge Citadel Cruise Missile": "Guristas Scourge XL Cruise Missile", + "Guristas Inferno Citadel Cruise Missile": "Guristas Inferno XL Cruise Missile", + "Guristas Mjolnir Citadel Cruise Missile": "Guristas Mjolnir XL Cruise Missile", + "ECM - Phase Inverter II": "Ladar ECM II", + "ECM - Ion Field Projector II": "Magnetometric ECM II", + "ECM - Multispectral Jammer II": "Multispectral ECM II", + "ECM - Spatial Destabilizer II": "Gravimetric ECM II", + "ECM - White Noise Generator II": "Radar ECM II", + "Small Capacitor Battery II": "Small Cap Battery II", + "Medium Capacitor Battery II": "Medium Cap Battery II", + "Large Capacitor Battery II": "Large Cap Battery II", + "'Limos' Citadel Cruise Launcher I": "'Limos' XL Cruise Launcher I", + "Shock 'Limos' Citadel Torpedo Bay I": "Shock 'Limos' XL Torpedo Bay I", + "X5 Prototype Engine Enervator": "X5 Enduring Stasis Webifier", + "Fleeting Propulsion Inhibitor I": "Fleeting Compact Stasis Webifier", + "Caldari Fuel Block": "Nitrogen Fuel Block", + "Minmatar Fuel Block": "Hydrogen Fuel Block", + "Amarr Fuel Block": "Helium Fuel Block", + "Gallente Fuel Block": "Oxygen Fuel Block", + "Small Ld-Acid Capacitor Battery I": "Small Compact Pb-Acid Cap Battery ", + "Large Ld-Acid Capacitor Battery I": "Large Compact Pb-Acid Cap Battery", + "F-23 Reciprocal Remote Sensor Booster": "F-23 Compact Remote Sensor Booster", + "Coadjunct Linked Remote Sensor Booster": "Coadjunct Scoped Remote Sensor Booster", + "Linked Remote Sensor Booster": "Linked Enduring Sensor Booster", + "Low Frequency Sensor Suppressor I": "LFT Enduring Sensor Dampener", + "Kapteyn Sensor Array Inhibitor I": "Kapteyn Compact Sensor Dampener", + "Phased Muon Sensor Disruptor I": "Phased Muon Scoped Sensor Dampener", + "F-293 Nutation Remote Tracking Computer": "F-293 Scoped Remote Tracking Computer", + "Phase Switching Remote Tracking Computer": "P-S Compact Remote Tracking Computer", + "Alfven Surface Remote Tracking Computer": "Alfven Enduring Remote Tracking Computer", + "'Deluge' ECM Burst I": "Deluge Enduring Burst Jammer", + "'Rash' ECM Emission I": "Rash Compact Burst Jammer", + "'Cetus' ECM Shockwave I": "Cetus Scoped Burst Jammer", + "J5 Prototype Warp Disruptor I": "J5 Enduring Warp Disruptor", + "Faint Warp Disruptor I": "Faint Scoped Warp Disruptor", + "Initiated Warp Disruptor I": "Initiated Compact Warp Disruptor", + "J5b Phased Prototype Warp Scrambler I": "J5b Enduring Warp Scrambler", + "Faint Epsilon Warp Scrambler I": "Faint Epsilon Scoped Warp Scrambler", + "Initiated Harmonic Warp Scrambler I": "Initiated Compact Warp Scrambler", + "Internal Force Field Array I": "IFFA Compact Damage Control", + "Extruded Heat Sink I": "Extruded Compact Heat Sink", + "Counterbalanced Weapon Mounts I": "Counterbalanced Compact Gyrostabilizer", + "Medium Ld-Acid Capacitor Battery I": "Medium Compact Pb-Acid Cap Battery", + "Alumel-Wired Sensor Augmentation": "Alumel-Wired Enduring Sensor Booster", + "F-90 Positional Sensor Subroutines": "F-90 Compact Sensor Booster", + "Optical Tracking Computer I": "Optical Compact Tracking Computer", + "F-12 Nonlinear Tracking Processor": "F-12 Enduring Tracking Computer", + "F-89 Synchronized Signal Amplifier": "F-89 Compact Signal Amplifier", + "Fourier Transform Tracking Program": "Fourier Compact Tracking Enhancer", + "Initiated Multispectral ECM I": "Initiated Enduring Multispectral ECM", + "Basic Magnetic Field Stabilizer": "'Basic' Magnetic Field Stabilizer", + "Magnetic Vortex Stabilizer I": "Vortex Compact Magnetic Field Stabilizer", + "Mizuro's Modified Warp Disruptor": "Mizuro's Modified Heavy Warp Disruptor", + "Hakim's Modified Warp Disruptor": "Hakim's Modified Heavy Warp Disruptor", + "Gotan's Modified Warp Disruptor": "Gotan's Modified Heavy Warp Disruptor", + "Tobias' Modified Warp Disruptor": "Tobias' Modified Heavy Warp Disruptor", + "Mizuro's Modified Warp Scrambler": "Mizuro's Modified Heavy Warp Scrambler", + "Hakim's Modified Warp Scrambler": "Hakim's Modified Heavy Warp Scrambler", + "Gotan's Modified Warp Scrambler": "Gotan's Modified Heavy Warp Scrambler", + "Tobias' Modified Warp Scrambler": "Tobias' Modified Heavy Warp Scrambler", + "Cross-linked Bolt Array I": "Crosslink Compact Ballistic Control System", + "Citadel Torpedo Battery": "XL Torpedo Battery", + "Mjolnir Citadel Torpedo": "Mjolnir XL Torpedo", + "Scourge Citadel Torpedo": "Scourge XL Torpedo", + "Inferno Citadel Torpedo": "Inferno XL Torpedo", + "Nova Citadel Torpedo": "Nova XL Torpedo", + "Peripheral Weapon Navigation Diameter": "Peripheral Compact Target Painter", + "Parallel Weapon Navigation Transmitter": "Parallel Enduring Target Painter", + "Phased Weapon Navigation Array Generation Extron": "Phased Scoped Target Painter", + "Induced Ion Field ECM I": "Morpheus Enduring Magnetometric ECM", + "Compulsive Ion Field ECM I": "Aergia Compact Magnetometric ECM", + "'Hypnos' Ion Field ECM I": "Hypnos Scoped Magnetometric ECM", + "Induced Multispectral ECM I": "Induced Compact Multispectral ECM", + "Compulsive Multispectral ECM I": "Compulsive Scoped Multispectral ECM", + "Languid Phase Inversion ECM I": "Languid Enduring Ladar ECM", + "Halting Phase Inversion ECM I": "Halting Compact Ladar ECM", + "Enfeebling Phase Inversion ECM I": "Enfeebling Scoped Ladar ECM", + "FZ-3a Disruptive Spatial Destabilizer ECM": "FZ-3a Enduring Gravimetric ECM", + "CZ-4 Concussive Spatial Destabilizer ECM": "CZ-4 Compact Gravimetric ECM", + "BZ-5 Neutralizing Spatial Destabilizer ECM": "BZ-5 Scoped Gravimetric ECM", + "'Gloom' White Noise ECM": "Gloom Enduring Radar ECM", + "'Shade' White Noise ECM": "Shade Compact Radar ECM", + "'Umbra' White Noise ECM": "Umbra Scoped Radar ECM", + "Dread Guristas ECM Multispectral Jammer": "Dread Guristas Multispectral ECM", + "Kaikka's Modified ECM Multispectral Jammer": "Kaikka's Modified Multispectral ECM", + "Thon's Modified ECM Multispectral Jammer": "Thon's Modified Multispectral ECM", + "Vepas' Modified ECM Multispectral Jammer": "Vepas' Modified Multispectral ECM", + "Estamel's Modified ECM Multispectral Jammer": "Estamel's Modified Multispectral ECM", + "Citadel Torpedo Launcher I": "XL Torpedo Launcher I", + "'Marshall' Ion Field Projector": "'Marshall' Magnetometric ECM", + "'Gambler' Phase Inverter": "'Gambler' Ladar ECM", + "'Plunderer' Spatial Destabilizer": "'Plunderer' Gravimetric ECM", + "'Heist' White Noise Generator": "'Heist' Radar ECM", + "'Ghost' ECM Burst": "'Ghost' Burst Jammer", + "'Full Duplex' Ballistic Targeting System": "'Full Duplex' Ballistic Control System", + "'Kindred' Stabilization Actuator I": "'Kindred' Gyrostabilizer", + "Process-Interruptive Warp Disruptor": "'Interruptive' Warp Disruptor", + "Multi Sensor Firewall": "'Firewall' Signal Amplifier", + "'Inception' Target Painter I": "'Inception' Target Painter", + "Citadel Torpedoes": "XL Torpedoes", + "'Shady' ECCM - Gravimetric I": "'Shady' Sensor Booster", + "'Monopoly' Magnetic Field Stabilizer I": "'Monopoly' Magnetic Field Stabilizer", + "'Bootleg' ECCM Projector I": "'Bootleg' Remote Sensor Booster", + "'Marketeer' Tracking Computer I": "'Marketeer' Tracking Computer", + "'Executive' Remote Sensor Dampener I": "'Executive' Remote Sensor Dampener", + "'Radical' Damage Control I": "'Radical' Damage Control", + "'Crucible' Small Capacitor Battery I": "'Crucible' Small Cap Battery", + "'Censer' Medium Capacitor Battery I": "'Censer' Medium Cap Battery", + "'Thurifer' Large Capacitor Battery I": "'Thurifer' Large Cap Battery", + "Guristas Citadel Torpedo Battery": "Guristas XL Torpedo Battery", + "Dread Guristas Citadel Torpedo Battery": "Dread Guristas XL Torpedo Battery", + "Legion ECM Ion Field Projector": "Legion Magnetometric ECM", + "Legion ECM Multispectral Jammer": "Legion Multispectral ECM", + "Legion ECM Phase Inverter": "Legion Ladar ECM", + "Legion ECM Spatial Destabilizer": "Legion Gravimetric ECM", + "Legion ECM White Noise Generator": "Legion Radar ECM", + "Guristas Nova Citadel Torpedo": "Guristas Nova XL Torpedo", + "Guristas Inferno Citadel Torpedo": "Guristas Inferno XL Torpedo", + "Guristas Scourge Citadel Torpedo": "Guristas Scourge XL Torpedo", + "Guristas Mjolnir Citadel Torpedo": "Guristas Mjolnir XL Torpedo", + "Citadel Cruise Missiles": "XL Cruise Missiles", + "Scourge Citadel Cruise Missile": "Scourge XL Cruise Missile", + "Nova Citadel Cruise Missile": "Nova XL Cruise Missile", + "Inferno Citadel Cruise Missile": "Inferno XL Cruise Missile", + "Mjolnir Citadel Cruise Missile": "Mjolnir XL Cruise Missile", + "Citadel Cruise Launcher I": "XL Cruise Launcher I", + + # Converted items + "Muon Coil Bolt Array I": "Crosslink Compact Ballistic Control System", + "Multiphasic Bolt Array I": "Crosslink Compact Ballistic Control System", + "'Pandemonium' Ballistic Enhancement": "Crosslink Compact Ballistic Control System", + "Piercing ECCM Emitter I": "Coadjunct Scoped Remote Sensor Booster", + "1Z-3 Subversive ECM Eruption": "Cetus Scoped Burst Jammer", + "ECCM - Radar I": "Sensor Booster I", + "ECCM - Ladar I": "Sensor Booster I", + "ECCM - Magnetometric I": "Sensor Booster I", + "ECCM - Gravimetric I": "Sensor Booster I", + "ECCM - Omni I": "Sensor Booster I", + "Beta-Nought Tracking Mode": "'Basic' Tracking Enhancer", + "Azimuth Descalloping Tracking Enhancer": "'Basic' Tracking Enhancer", + "F-AQ Delay-Line Scan Tracking Subroutines": "'Basic' Tracking Enhancer", + "Beam Parallax Tracking Program": "'Basic' Tracking Enhancer", + "GLFF Containment Field": "'Basic' Damage Control", + "Interior Force Field Array": "'Basic' Damage Control", + "F84 Local Damage System": "'Basic' Damage Control", + "Systematic Damage Control": "'Basic' Damage Control", + "'Boss' Remote Sensor Booster": "'Bootleg' Remote Sensor Booster", + "'Entrepreneur' Remote Sensor Booster": "'Bootleg' Remote Sensor Booster", + "Fleeting Progressive Warp Scrambler I": "Faint Epsilon Scoped Warp Scrambler", + "ECCM Projector I": "Remote Sensor Booster I", + "Sigma-Nought Tracking Mode I": "Fourier Compact Tracking Enhancer", + "Auto-Gain Control Tracking Enhancer I": "Fourier Compact Tracking Enhancer", + "F-aQ Phase Code Tracking Subroutines": "Fourier Compact Tracking Enhancer", + "Monophonic Stabilization Actuator I": "'Kindred' Gyrostabilizer", + "Initiated Ion Field ECM I": "Hypnos Scoped Magnetometric ECM", + "Insulated Stabilizer Array": "'Basic' Magnetic Field Stabilizer", + "Linear Flux Stabilizer": "'Basic' Magnetic Field Stabilizer", + "Gauss Field Balancer": "'Basic' Magnetic Field Stabilizer", + "Magnetic Vortex Stabilizer": "'Basic' Magnetic Field Stabilizer", + "'Capitalist' Magnetic Field Stabilizer I": "'Monopoly' Magnetic Field Stabilizer", + "Emergency Damage Control I": "IFFA Compact Damage Control", + "F85 Peripheral Damage System I": "IFFA Compact Damage Control", + "Pseudoelectron Containment Field I": "IFFA Compact Damage Control", + "Micro Ld-Acid Capacitor Battery I": "'Micro' Cap Battery", + "Micro Ohm Capacitor Reserve I": "'Micro' Cap Battery", + "Micro F-4a Ld-Sulfate Capacitor Charge Unit": "'Micro' Cap Battery", + "Micro Peroxide Capacitor Power Cell": "'Micro' Cap Battery", + "Micro Capacitor Battery II": "'Micro' Cap Battery", + "Lateral Gyrostabilizer": "'Basic' Gyrostabilizer", + "F-M2 Weapon Inertial Suspensor": "'Basic' Gyrostabilizer", + "Hydraulic Stabilization Actuator": "'Basic' Gyrostabilizer", + "Stabilized Weapon Mounts": "'Basic' Gyrostabilizer", + "'Hypnos' Multispectral ECM I": "Compulsive Scoped Multispectral ECM", + "Fleeting Warp Disruptor I": "Faint Scoped Warp Disruptor", + "'Mangonel' Heat Sink I": "'Trebuchet' Heat Sink I", + "Heat Exhaust System": "'Basic' Heat Sink", + "C3S Convection Thermal Radiator": "'Basic' Heat Sink", + "'Boreas' Coolant System": "'Basic' Heat Sink", + "Stamped Heat Sink": "'Basic' Heat Sink", + "Extra Radar ECCM Scanning Array I": "F-90 Compact Sensor Booster", + "Extra Ladar ECCM Scanning Array I": "F-90 Compact Sensor Booster", + "Extra Gravimetric ECCM Scanning Array I": "F-90 Compact Sensor Booster", + "Extra Magnetometric ECCM Scanning Array I": "F-90 Compact Sensor Booster", + "Gravimetric Positional ECCM Sensor System I": "F-90 Compact Sensor Booster", + "Radar Positional ECCM Sensor System I": "F-90 Compact Sensor Booster", + "Omni Positional ECCM Sensor System I": "F-90 Compact Sensor Booster", + "Ladar Positional ECCM Sensor System I": "F-90 Compact Sensor Booster", + "Magnetometric Positional ECCM Sensor System I": "F-90 Compact Sensor Booster", + "Conjunctive Radar ECCM Scanning Array I": "F-90 Compact Sensor Booster", + "Conjunctive Ladar ECCM Scanning Array I": "F-90 Compact Sensor Booster", + "Conjunctive Gravimetric ECCM Scanning Array I": "F-90 Compact Sensor Booster", + "Conjunctive Magnetometric ECCM Scanning Array I": "F-90 Compact Sensor Booster", + "Supplemental Scanning CPU I": "F-90 Compact Sensor Booster", + "'Gonzo' Damage Control I": "'Radical' Damage Control", + "'Penumbra' White Noise ECM": "Umbra Scoped Radar ECM", + "ECCM - Omni II": "Sensor Booster II", + "ECCM - Gravimetric II": "Sensor Booster II", + "ECCM - Ladar II": "Sensor Booster II", + "ECCM - Magnetometric II": "Sensor Booster II", + "ECCM - Radar II": "Sensor Booster II", + "Scattering ECCM Projector I": "Linked Enduring Sensor Booster", + "Gravimetric Backup Array I": "Signal Amplifier I", + "Ladar Backup Array I": "Signal Amplifier I", + "Magnetometric Backup Array I": "Signal Amplifier I", + "Multi Sensor Backup Array I": "Signal Amplifier I", + "RADAR Backup Array I": "Signal Amplifier I", + "Large Ohm Capacitor Reserve I": "Large Compact Pb-Acid Cap Battery", + "Large F-4a Ld-Sulfate Capacitor Charge Unit": "Large Compact Pb-Acid Cap Battery", + "Large Peroxide Capacitor Power Cell": "Large Compact Pb-Acid Cap Battery", + "ECCM Projector II": "Remote Sensor Booster II", + "Cross-Lateral Gyrostabilizer I": "Counterbalanced Compact Gyrostabilizer", + "F-M3 Munition Inertial Suspensor": "Counterbalanced Compact Gyrostabilizer", + "Pneumatic Stabilization Actuator I": "Counterbalanced Compact Gyrostabilizer", + "'Langour' Drive Disruptor I": "X5 Enduring Stasis Webifier", + "Patterned Stasis Web I": "Fleeting Compact Stasis Webifier", + "'Tycoon' Remote Tracking Computer": "'Enterprise' Remote Tracking Computer", + "'Economist' Tracking Computer I": "'Marketeer' Tracking Computer", + "Gravimetric Backup Array II": "Signal Amplifier II", + "Ladar Backup Array II": "Signal Amplifier II", + "Magnetometric Backup Array II": "Signal Amplifier II", + "Multi Sensor Backup Array II": "Signal Amplifier II", + "RADAR Backup Array II": "Signal Amplifier II", + "Faint Phase Inversion ECM I": "Enfeebling Scoped Ladar ECM", + "'Prayer' Remote Tracking Computer": "P-S Compact Remote Tracking Computer", + "Partial Weapon Navigation": "Phased Scoped Target Painter", + "Basic RADAR Backup Array": "'Basic' Signal Amplifier", + "Basic Ladar Backup Array": "'Basic' Signal Amplifier", + "Basic Gravimetric Backup Array": "'Basic' Signal Amplifier", + "Basic Magnetometric Backup Array": "'Basic' Signal Amplifier", + "Basic Multi Sensor Backup Array": "'Basic' Signal Amplifier", + "Emergency Magnetometric Scanners": "'Basic' Signal Amplifier", + "Emergency Multi-Frequency Scanners": "'Basic' Signal Amplifier", + "Emergency RADAR Scanners": "'Basic' Signal Amplifier", + "Emergency Ladar Scanners": "'Basic' Signal Amplifier", + "Emergency Gravimetric Scanners": "'Basic' Signal Amplifier", + "Sealed RADAR Backup Cluster": "'Basic' Signal Amplifier", + "Sealed Magnetometric Backup Cluster": "'Basic' Signal Amplifier", + "Sealed Multi-Frequency Backup Cluster": "'Basic' Signal Amplifier", + "Sealed Ladar Backup Cluster": "'Basic' Signal Amplifier", + "Sealed Gravimetric Backup Cluster": "'Basic' Signal Amplifier", + "Surplus RADAR Reserve Array": "'Basic' Signal Amplifier", + "F-42 Reiterative RADAR Backup Sensors": "'Basic' Signal Amplifier", + "Surplus Magnetometric Reserve Array": "'Basic' Signal Amplifier", + "F-42 Reiterative Magnetometric Backup Sensors": "'Basic' Signal Amplifier", + "Surplus Multi-Frequency Reserve Array": "'Basic' Signal Amplifier", + "F-42 Reiterative Multi-Frequency Backup Sensors": "'Basic' Signal Amplifier", + "Surplus Ladar Reserve Array": "'Basic' Signal Amplifier", + "F-42 Reiterative Ladar Backup Sensors": "'Basic' Signal Amplifier", + "Surplus Gravimetric Reserve Array": "'Basic' Signal Amplifier", + "F-42 Reiterative Gravimetric Backup Sensors": "'Basic' Signal Amplifier", + "Amplitude Signal Enhancer": "'Basic' Signal Amplifier", + "'Acolyth' Signal Booster": "'Basic' Signal Amplifier", + "Type-E Discriminative Signal Augmentation": "'Basic' Signal Amplifier", + "F-90 Positional Signal Amplifier": "'Basic' Signal Amplifier", + "Gravimetric Firewall": "'Firewall' Signal Amplifier", + "Ladar Firewall": "'Firewall' Signal Amplifier", + "Magnetometric Firewall": "'Firewall' Signal Amplifier", + "Multi Sensor Firewall": "'Firewall' Signal Amplifier", + "RADAR Firewall": "'Firewall' Signal Amplifier", + "'Pacifier' Large Remote Armor Repairer": "'Peace' Large Remote Armor Repairer", + "Monopulse Tracking Mechanism I": "F-12 Enduring Tracking Computer", + "Alumel Radar ECCM Sensor Array I": "Alumel-Wired Enduring Sensor Booster", + "Alumel Ladar ECCM Sensor Array I": "Alumel-Wired Enduring Sensor Booster", + "Alumel Gravimetric ECCM Sensor Array I": "Alumel-Wired Enduring Sensor Booster", + "Alumel Omni ECCM Sensor Array I": "Alumel-Wired Enduring Sensor Booster", + "Alumel Magnetometric ECCM Sensor Array I": "Alumel-Wired Enduring Sensor Booster", + "Supplemental Ladar ECCM Scanning Array I": "Alumel-Wired Enduring Sensor Booster", + "Supplemental Gravimetric ECCM Scanning Array I": "Alumel-Wired Enduring Sensor Booster", + "Supplemental Omni ECCM Scanning Array I": "Alumel-Wired Enduring Sensor Booster", + "Supplemental Radar ECCM Scanning Array I": "Alumel-Wired Enduring Sensor Booster", + "Supplemental Magnetometric ECCM Scanning Array I": "Alumel-Wired Enduring Sensor Booster", + "Incremental Radar ECCM Scanning Array I": "Alumel-Wired Enduring Sensor Booster", + "Incremental Ladar ECCM Scanning Array I": "Alumel-Wired Enduring Sensor Booster", + "Incremental Gravimetric ECCM Scanning Array I": "Alumel-Wired Enduring Sensor Booster", + "Incremental Magnetometric ECCM Scanning Array I": "Alumel-Wired Enduring Sensor Booster", + "Prototype ECCM Radar Sensor Cluster": "Alumel-Wired Enduring Sensor Booster", + "Prototype ECCM Ladar Sensor Cluster": "Alumel-Wired Enduring Sensor Booster", + "Prototype ECCM Gravimetric Sensor Cluster": "Alumel-Wired Enduring Sensor Booster", + "Prototype ECCM Omni Sensor Cluster": "Alumel-Wired Enduring Sensor Booster", + "Prototype ECCM Magnetometric Sensor Cluster": "Alumel-Wired Enduring Sensor Booster", + "Prototype Sensor Booster": "Alumel-Wired Enduring Sensor Booster", + "Thermal Exhaust System I": "Extruded Compact Heat Sink", + "C4S Coiled Circuit Thermal Radiator": "Extruded Compact Heat Sink", + "'Skadi' Coolant System I": "Extruded Compact Heat Sink", + "'Forger' ECCM - Magnetometric I": "'Shady' Sensor Booster", + "Insulated Stabilizer Array I": "Vortex Compact Magnetic Field Stabilizer", + "Linear Flux Stabilizer I": "Vortex Compact Magnetic Field Stabilizer", + "Gauss Field Balancer I": "Vortex Compact Magnetic Field Stabilizer", + "'Broker' Remote Sensor Dampener I": "'Executive' Remote Sensor Dampener", + "'Orion' Tracking CPU I": "Optical Compact Tracking Computer", + "Spot Pulsing ECCM I": "F-23 Compact Remote Sensor Booster", + "Phased Muon ECCM Caster I": "F-23 Compact Remote Sensor Booster", + "Connected Remote Sensor Booster": "F-23 Compact Remote Sensor Booster", + "Small Ohm Capacitor Reserve I": "Small Compact Pb-Acid Cap Battery", + "Small F-4a Ld-Sulfate Capacitor Charge Unit": "Small Compact Pb-Acid Cap Battery", + "Small Peroxide Capacitor Power Cell": "Small Compact Pb-Acid Cap Battery", + "FZ-3 Subversive Spatial Destabilizer ECM": "BZ-5 Scoped Gravimetric ECM", + "Medium Ohm Capacitor Reserve I": "Medium Compact Pb-Acid Cap Battery", + "Medium F-4a Ld-Sulfate Capacitor Charge Unit": "Medium Compact Pb-Acid Cap Battery", + "Medium Peroxide Capacitor Power Cell": "Medium Compact Pb-Acid Cap Battery", + "Ballistic 'Purge' Targeting System I": "'Full Duplex' Ballistic Control System", + "Protected Gravimetric Backup Cluster I": "F-89 Compact Signal Amplifier", + "Protected Ladar Backup Cluster I": "F-89 Compact Signal Amplifier", + "Protected Magnetometric Backup Cluster I": "F-89 Compact Signal Amplifier", + "Protected Multi-Frequency Backup Cluster I": "F-89 Compact Signal Amplifier", + "Protected RADAR Backup Cluster I": "F-89 Compact Signal Amplifier", + "Reserve Gravimetric Scanners": "F-89 Compact Signal Amplifier", + "Reserve Ladar Scanners": "F-89 Compact Signal Amplifier", + "Reserve Magnetometric Scanners": "F-89 Compact Signal Amplifier", + "Reserve Multi-Frequency Scanners": "F-89 Compact Signal Amplifier", + "Reserve RADAR Scanners": "F-89 Compact Signal Amplifier", + "Secure Gravimetric Backup Cluster I": "F-89 Compact Signal Amplifier", + "Secure Ladar Backup Cluster I": "F-89 Compact Signal Amplifier", + "Secure Magnetometric Backup Cluster I": "F-89 Compact Signal Amplifier", + "Secure Radar Backup Cluster I": "F-89 Compact Signal Amplifier", + "F-43 Repetitive Gravimetric Backup Sensors": "F-89 Compact Signal Amplifier", + "F-43 Repetitive Ladar Backup Sensors": "F-89 Compact Signal Amplifier", + "F-43 Repetitive Magnetometric Backup Sensors": "F-89 Compact Signal Amplifier", + "F-43 Repetitive Multi-Frequency Backup Sensors": "F-89 Compact Signal Amplifier", + "F-43 Repetitive RADAR Backup Sensors": "F-89 Compact Signal Amplifier", + "Shielded Gravimetric Backup Cluster I": "F-89 Compact Signal Amplifier", + "Shielded Ladar Backup Cluster I": "F-89 Compact Signal Amplifier", + "Shielded Magnetometric Backup Cluster I": "F-89 Compact Signal Amplifier", + "Shielded Radar Backup Cluster I": "F-89 Compact Signal Amplifier", + "Surrogate Gravimetric Reserve Array I": "F-89 Compact Signal Amplifier", + "Surrogate Ladar Reserve Array I": "F-89 Compact Signal Amplifier", + "Surrogate Magnetometric Reserve Array I": "F-89 Compact Signal Amplifier", + "Surrogate Multi-Frequency Reserve Array I": "F-89 Compact Signal Amplifier", + "Surrogate RADAR Reserve Array I": "F-89 Compact Signal Amplifier", + "Warded Gravimetric Backup Cluster I": "F-89 Compact Signal Amplifier", + "Warded Ladar Backup Cluster I": "F-89 Compact Signal Amplifier", + "Warded Magnetometric Backup Cluster I": "F-89 Compact Signal Amplifier", + "Warded Radar Backup Cluster I": "F-89 Compact Signal Amplifier", + "'Mendicant' Signal Booster I": "F-89 Compact Signal Amplifier", + "Wavelength Signal Enhancer I": "F-89 Compact Signal Amplifier", + "Type-D Attenuation Signal Augmentation": "F-89 Compact Signal Amplifier", + "Indirect Scanning Dampening Unit I": "Phased Muon Scoped Sensor Dampener", +} \ No newline at end of file