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