diff --git a/eos/saveddata/damagePattern.py b/eos/saveddata/damagePattern.py index 10bd86141..7a9a53469 100644 --- a/eos/saveddata/damagePattern.py +++ b/eos/saveddata/damagePattern.py @@ -18,105 +18,108 @@ # =============================================================================== import re +from collections import OrderedDict + import eos.db -BUILTINS = ( - (-1, "Uniform", 25, 25, 25, 25), - (-2, "[Generic]EM", 1, 0, 0, 0), - (-3, "[Generic]Thermal", 0, 1, 0, 0), - (-4, "[Generic]Kinetic", 0, 0, 1, 0), - (-5, "[Generic]Explosive", 0, 0, 0, 1), - (-6, "[Bombs]Electron Bomb", 6400, 0, 0, 0), - (-7, "[Bombs]Scorch Bomb", 0, 6400, 0, 0), - (-8, "[Bombs]Concussion Bomb", 0, 0, 6400, 0), - (-9, "[Bombs]Shrapnel Bomb", 0, 0, 0, 6400), - (-10, "[Frequency Crystals][T2] Conflagration", 7.7, 7.7, 0, 0), - (-11, "[Frequency Crystals][T2] Scorch", 9, 2, 0, 0), - (-12, "[Frequency Crystals][T2] Gleam", 7, 7, 0, 0), - (-13, "[Frequency Crystals][T2] Aurora", 5, 3, 0, 0), - (-14, "[Frequency Crystals]Multifrequency", 7, 5, 0, 0), - (-15, "[Frequency Crystals]Gamma", 7, 4, 0, 0), - (-16, "[Frequency Crystals]Xray", 6, 4, 0, 0), - (-17, "[Frequency Crystals]Ultraviolet", 6, 3, 0, 0), - (-18, "[Frequency Crystals]Standard", 5, 3, 0, 0), - (-19, "[Frequency Crystals]Infrared", 5, 2, 0, 0), - (-20, "[Frequency Crystals]Microwave", 4, 2, 0, 0), - (-21, "[Frequency Crystals]Radio", 5, 0, 0, 0), - (-22, "[Hybrid Charges][T2] Void", 0, 7.7, 7.7, 0), - (-23, "[Hybrid Charges][T2] Null", 0, 6, 5, 0), - (-24, "[Hybrid Charges][T2] Javelin", 0, 8, 6, 0), - (-25, "[Hybrid Charges][T2] Spike", 0, 4, 4, 0), - (-26, "[Hybrid Charges]Antimatter", 0, 5, 7, 0), - (-27, "[Hybrid Charges]Plutonium", 0, 5, 6, 0), - (-28, "[Hybrid Charges]Uranium", 0, 4, 6, 0), - (-29, "[Hybrid Charges]Thorium", 0, 4, 5, 0), - (-30, "[Hybrid Charges]Lead", 0, 3, 5, 0), - (-31, "[Hybrid Charges]Iridium", 0, 3, 4, 0), - (-32, "[Hybrid Charges]Tungsten", 0, 2, 4, 0), - (-33, "[Hybrid Charges]Iron", 0, 2, 3, 0), - (-34, "[Missiles]Mjolnir", 1, 0, 0, 0), - (-35, "[Missiles]Inferno", 0, 1, 0, 0), - (-36, "[Missiles]Scourge", 0, 0, 1, 0), - (-37, "[Missiles]Nova", 0, 0, 0, 1), - (-38, "[Missiles][Structure] Standup Missile", 1, 1, 1, 1), - (-39, "[Projectile Ammo][T2] Hail", 0, 0, 3.3, 12.1), - (-40, "[Projectile Ammo][T2] Barrage", 0, 0, 5, 6), - (-41, "[Projectile Ammo][T2] Quake", 0, 0, 5, 9), - (-42, "[Projectile Ammo][T2] Tremor", 0, 0, 3, 5), - (-43, "[Projectile Ammo]EMP", 9, 0, 1, 2), - (-44, "[Projectile Ammo]Phased Plasma", 0, 10, 2, 0), - (-45, "[Projectile Ammo]Fusion", 0, 0, 2, 10), - (-46, "[Projectile Ammo]Depleted Uranium", 0, 3, 2, 3), - (-47, "[Projectile Ammo]Titanium Sabot", 0, 0, 6, 2), - (-48, "[Projectile Ammo]Proton", 3, 0, 2, 0), - (-49, "[Projectile Ammo]Carbonized Lead", 0, 0, 4, 1), - (-50, "[Projectile Ammo]Nuclear", 0, 0, 1, 4), + +BUILTINS = OrderedDict([ + (-1, ('Uniform', 25, 25, 25, 25)), + (-2, ('[Generic]EM', 1, 0, 0, 0)), + (-3, ('[Generic]Thermal', 0, 1, 0, 0)), + (-4, ('[Generic]Kinetic', 0, 0, 1, 0)), + (-5, ('[Generic]Explosive', 0, 0, 0, 1)), + (-6, ('[Bombs]Electron Bomb', 6400, 0, 0, 0)), + (-7, ('[Bombs]Scorch Bomb', 0, 6400, 0, 0)), + (-8, ('[Bombs]Concussion Bomb', 0, 0, 6400, 0)), + (-9, ('[Bombs]Shrapnel Bomb', 0, 0, 0, 6400)), + (-10, ('[Frequency Crystals][T2] Conflagration', 7.7, 7.7, 0, 0)), + (-11, ('[Frequency Crystals][T2] Scorch', 9, 2, 0, 0)), + (-12, ('[Frequency Crystals][T2] Gleam', 7, 7, 0, 0)), + (-13, ('[Frequency Crystals][T2] Aurora', 5, 3, 0, 0)), + (-14, ('[Frequency Crystals]Multifrequency', 7, 5, 0, 0)), + (-15, ('[Frequency Crystals]Gamma', 7, 4, 0, 0)), + (-16, ('[Frequency Crystals]Xray', 6, 4, 0, 0)), + (-17, ('[Frequency Crystals]Ultraviolet', 6, 3, 0, 0)), + (-18, ('[Frequency Crystals]Standard', 5, 3, 0, 0)), + (-19, ('[Frequency Crystals]Infrared', 5, 2, 0, 0)), + (-20, ('[Frequency Crystals]Microwave', 4, 2, 0, 0)), + (-21, ('[Frequency Crystals]Radio', 5, 0, 0, 0)), + (-22, ('[Hybrid Charges][T2] Void', 0, 7.7, 7.7, 0)), + (-23, ('[Hybrid Charges][T2] Null', 0, 6, 5, 0)), + (-24, ('[Hybrid Charges][T2] Javelin', 0, 8, 6, 0)), + (-25, ('[Hybrid Charges][T2] Spike', 0, 4, 4, 0)), + (-26, ('[Hybrid Charges]Antimatter', 0, 5, 7, 0)), + (-27, ('[Hybrid Charges]Plutonium', 0, 5, 6, 0)), + (-28, ('[Hybrid Charges]Uranium', 0, 4, 6, 0)), + (-29, ('[Hybrid Charges]Thorium', 0, 4, 5, 0)), + (-30, ('[Hybrid Charges]Lead', 0, 3, 5, 0)), + (-31, ('[Hybrid Charges]Iridium', 0, 3, 4, 0)), + (-32, ('[Hybrid Charges]Tungsten', 0, 2, 4, 0)), + (-33, ('[Hybrid Charges]Iron', 0, 2, 3, 0)), + (-34, ('[Missiles]Mjolnir', 1, 0, 0, 0)), + (-35, ('[Missiles]Inferno', 0, 1, 0, 0)), + (-36, ('[Missiles]Scourge', 0, 0, 1, 0)), + (-37, ('[Missiles]Nova', 0, 0, 0, 1)), + (-38, ('[Missiles][Structure] Standup Missile', 1, 1, 1, 1)), + (-39, ('[Projectile Ammo][T2] Hail', 0, 0, 3.3, 12.1)), + (-40, ('[Projectile Ammo][T2] Barrage', 0, 0, 5, 6)), + (-41, ('[Projectile Ammo][T2] Quake', 0, 0, 5, 9)), + (-42, ('[Projectile Ammo][T2] Tremor', 0, 0, 3, 5)), + (-43, ('[Projectile Ammo]EMP', 9, 0, 1, 2)), + (-44, ('[Projectile Ammo]Phased Plasma', 0, 10, 2, 0)), + (-45, ('[Projectile Ammo]Fusion', 0, 0, 2, 10)), + (-46, ('[Projectile Ammo]Depleted Uranium', 0, 3, 2, 3)), + (-47, ('[Projectile Ammo]Titanium Sabot', 0, 0, 6, 2)), + (-48, ('[Projectile Ammo]Proton', 3, 0, 2, 0)), + (-49, ('[Projectile Ammo]Carbonized Lead', 0, 0, 4, 1)), + (-50, ('[Projectile Ammo]Nuclear', 0, 0, 1, 4)), # Different sizes of plasma do different damage, the values here are # average of proportions across sizes - (-51, "[Exotic Plasma][T2] Occult", 0, 55863, 0, 44137), - (-52, "[Exotic Plasma][T2] Mystic", 0, 66319, 0, 33681), - (-53, "[Exotic Plasma]Tetryon", 0, 69208, 0, 30792), - (-54, "[Exotic Plasma]Baryon", 0, 59737, 0, 40263), - (-55, "[Exotic Plasma]Meson", 0, 60519, 0, 39481), - (-56, "[NPC][Asteroid] Angel Cartel", 1838, 562, 2215, 3838), - (-57, "[NPC][Asteroid] Blood Raiders", 5067, 4214, 0, 0), - (-58, "[NPC][Asteroid] Guristas", 0, 1828, 7413, 0), - (-59, "[NPC][Asteroid] Rogue Drone", 394, 666, 1090, 1687), - (-60, "[NPC][Asteroid] Sanshas Nation", 5586, 4112, 0, 0), - (-61, "[NPC][Asteroid] Serpentis", 0, 5373, 4813, 0), - (-62, "[NPC][Deadspace] Angel Cartel", 369, 533, 1395, 3302), - (-63, "[NPC][Deadspace] Blood Raiders", 6040, 5052, 10, 15), - (-64, "[NPC][Deadspace] Guristas", 0, 1531, 9680, 0), - (-65, "[NPC][Deadspace] Rogue Drone", 276, 1071, 1069, 871), - (-66, "[NPC][Deadspace] Sanshas Nation", 3009, 2237, 0, 0), - (-67, "[NPC][Deadspace] Serpentis", 0, 3110, 1929, 0), - (-68, "[NPC][Mission] Amarr Empire", 4464, 3546, 97, 0), - (-69, "[NPC][Mission] Caldari State", 0, 2139, 4867, 0), - (-70, "[NPC][Mission] CONCORD", 336, 134, 212, 412), - (-71, "[NPC][Mission] Gallente Federation", 9, 3712, 2758, 0), - (-72, "[NPC][Mission] Khanid", 612, 483, 43, 6), - (-73, "[NPC][Mission] Minmatar Republic", 1024, 388, 1655, 4285), - (-74, "[NPC][Mission] Mordus Legion", 25, 262, 625, 0), - (-75, "[NPC][Mission] Thukker", 0, 52, 10, 79), - (-76, "[NPC][Burner] Cruor (Blood Raiders)", 90, 90, 0, 0), - (-77, "[NPC][Burner] Dramiel (Angel)", 55, 0, 20, 96), - (-78, "[NPC][Burner] Daredevil (Serpentis)", 0, 110, 154, 0), - (-79, "[NPC][Burner] Succubus (Sanshas Nation)", 135, 30, 0, 0), - (-80, "[NPC][Burner] Worm (Guristas)", 0, 0, 228, 0), - (-81, "[NPC][Burner] Enyo", 0, 147, 147, 0), - (-82, "[NPC][Burner] Hawk", 0, 0, 247, 0), - (-83, "[NPC][Burner] Jaguar", 36, 0, 50, 182), - (-84, "[NPC][Burner] Vengeance", 232, 0, 0, 0), - (-85, "[NPC][Burner] Ashimmu (Blood Raiders)", 260, 100, 0, 0), - (-86, "[NPC][Burner] Talos", 0, 413, 413, 0), - (-87, "[NPC][Burner] Sentinel", 0, 75, 0, 90), - (-88, "[NPC][Other] Sleepers", 1472, 1472, 1384, 1384), - (-89, "[NPC][Other] Sansha Incursion", 1682, 1347, 3678, 3678)) + (-51, ('[Exotic Plasma][T2] Occult', 0, 55863, 0, 44137)), + (-52, ('[Exotic Plasma][T2] Mystic', 0, 66319, 0, 33681)), + (-53, ('[Exotic Plasma]Tetryon', 0, 69208, 0, 30792)), + (-54, ('[Exotic Plasma]Baryon', 0, 59737, 0, 40263)), + (-55, ('[Exotic Plasma]Meson', 0, 60519, 0, 39481)), + (-56, ('[NPC][Asteroid] Angel Cartel', 1838, 562, 2215, 3838)), + (-57, ('[NPC][Asteroid] Blood Raiders', 5067, 4214, 0, 0)), + (-58, ('[NPC][Asteroid] Guristas', 0, 1828, 7413, 0)), + (-59, ('[NPC][Asteroid] Rogue Drone', 394, 666, 1090, 1687)), + (-60, ('[NPC][Asteroid] Sanshas Nation', 5586, 4112, 0, 0)), + (-61, ('[NPC][Asteroid] Serpentis', 0, 5373, 4813, 0)), + (-62, ('[NPC][Deadspace] Angel Cartel', 369, 533, 1395, 3302)), + (-63, ('[NPC][Deadspace] Blood Raiders', 6040, 5052, 10, 15)), + (-64, ('[NPC][Deadspace] Guristas', 0, 1531, 9680, 0)), + (-65, ('[NPC][Deadspace] Rogue Drone', 276, 1071, 1069, 871)), + (-66, ('[NPC][Deadspace] Sanshas Nation', 3009, 2237, 0, 0)), + (-67, ('[NPC][Deadspace] Serpentis', 0, 3110, 1929, 0)), + (-68, ('[NPC][Mission] Amarr Empire', 4464, 3546, 97, 0)), + (-69, ('[NPC][Mission] Caldari State', 0, 2139, 4867, 0)), + (-70, ('[NPC][Mission] CONCORD', 336, 134, 212, 412)), + (-71, ('[NPC][Mission] Gallente Federation', 9, 3712, 2758, 0)), + (-72, ('[NPC][Mission] Khanid', 612, 483, 43, 6)), + (-73, ('[NPC][Mission] Minmatar Republic', 1024, 388, 1655, 4285)), + (-74, ('[NPC][Mission] Mordus Legion', 25, 262, 625, 0)), + (-75, ('[NPC][Mission] Thukker', 0, 52, 10, 79)), + (-76, ('[NPC][Burner] Cruor (Blood Raiders)', 90, 90, 0, 0)), + (-77, ('[NPC][Burner] Dramiel (Angel)', 55, 0, 20, 96)), + (-78, ('[NPC][Burner] Daredevil (Serpentis)', 0, 110, 154, 0)), + (-79, ('[NPC][Burner] Succubus (Sanshas Nation)', 135, 30, 0, 0)), + (-80, ('[NPC][Burner] Worm (Guristas)', 0, 0, 228, 0)), + (-81, ('[NPC][Burner] Enyo', 0, 147, 147, 0)), + (-82, ('[NPC][Burner] Hawk', 0, 0, 247, 0)), + (-83, ('[NPC][Burner] Jaguar', 36, 0, 50, 182)), + (-84, ('[NPC][Burner] Vengeance', 232, 0, 0, 0)), + (-85, ('[NPC][Burner] Ashimmu (Blood Raiders)', 260, 100, 0, 0)), + (-86, ('[NPC][Burner] Talos', 0, 413, 413, 0)), + (-87, ('[NPC][Burner] Sentinel', 0, 75, 0, 90)), + (-88, ('[NPC][Other] Sleepers', 1472, 1472, 1384, 1384)), + (-89, ('[NPC][Other] Sansha Incursion', 1682, 1347, 3678, 3678))]) class DamagePattern: - DAMAGE_TYPES = ("em", "thermal", "kinetic", "explosive") + DAMAGE_TYPES = ('em', 'thermal', 'kinetic', 'explosive') _builtins = None def __init__(self, *args, **kwargs): @@ -132,7 +135,7 @@ class DamagePattern: def getBuiltins(cls): if cls._builtins is None: cls._builtins = [] - for id, name, em, therm, kin, explo in BUILTINS: + for id, (name, em, therm, kin, explo) in BUILTINS.items(): pattern = DamagePattern(emAmount=em, thermalAmount=therm, kineticAmount=kin, explosiveAmount=explo) pattern.ID = id pattern.name = name