|
|
@ -25,122 +25,140 @@ from sqlalchemy.orm import reconstructor |
|
|
|
import eos.db |
|
|
|
|
|
|
|
|
|
|
|
def _t(x): |
|
|
|
return x |
|
|
|
|
|
|
|
|
|
|
|
def _c(x): |
|
|
|
return '[' + x + ']' |
|
|
|
|
|
|
|
|
|
|
|
# Order is significant here - UI uses order as-is for built-in patterns |
|
|
|
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, ('[Frequency Crystals]|[T2] Aurora', 5, 3, 0, 0)), |
|
|
|
(-7, ('[Frequency Crystals]|[T2] Scorch', 9, 2, 0, 0)), |
|
|
|
(-8, ('[Frequency Crystals]Radio', 5, 0, 0, 0)), |
|
|
|
(-9, ('[Frequency Crystals]Microwave', 4, 2, 0, 0)), |
|
|
|
(-10, ('[Frequency Crystals]Infrared', 5, 2, 0, 0)), |
|
|
|
(-11, ('[Frequency Crystals]Standard', 5, 3, 0, 0)), |
|
|
|
(-12, ('[Frequency Crystals]Ultraviolet', 6, 3, 0, 0)), |
|
|
|
(-13, ('[Frequency Crystals]Xray', 6, 4, 0, 0)), |
|
|
|
(-14, ('[Frequency Crystals]Gamma', 7, 4, 0, 0)), |
|
|
|
(-15, ('[Frequency Crystals]Multifrequency', 7, 5, 0, 0)), |
|
|
|
(-16, ('[Frequency Crystals]|[T2] Gleam', 7, 7, 0, 0)), |
|
|
|
(-17, ('[Frequency Crystals]|[T2] Conflagration', 7.7, 7.7, 0, 0)), |
|
|
|
(-1, (_t('Uniform'), 25, 25, 25, 25)), |
|
|
|
(-2, (_c(_t('Generic')) + _t('EM'), 1, 0, 0, 0)), |
|
|
|
(-3, (_c(_t('Generic')) + _t('Thermal'), 0, 1, 0, 0)), |
|
|
|
(-4, (_c(_t('Generic')) + _t('Kinetic'), 0, 0, 1, 0)), |
|
|
|
(-5, (_c(_t('Generic')) + _t('Explosive'), 0, 0, 0, 1)), |
|
|
|
(-6, (_c(_t('Frequency Crystals')) + '|' + _t('[T2] Aurora'), 5, 3, 0, 0)), |
|
|
|
(-7, (_c(_t('Frequency Crystals')) + '|' + _t('[T2] Scorch'), 9, 2, 0, 0)), |
|
|
|
(-8, (_c(_t('Frequency Crystals')) + _t('Radio'), 5, 0, 0, 0)), |
|
|
|
(-9, (_c(_t('Frequency Crystals')) + _t('Microwave'), 4, 2, 0, 0)), |
|
|
|
(-10, (_c(_t('Frequency Crystals')) + _t('Infrared'), 5, 2, 0, 0)), |
|
|
|
(-11, (_c(_t('Frequency Crystals')) + _t('Standard'), 5, 3, 0, 0)), |
|
|
|
(-12, (_c(_t('Frequency Crystals')) + _t('Ultraviolet'), 6, 3, 0, 0)), |
|
|
|
(-13, (_c(_t('Frequency Crystals')) + _t('Xray'), 6, 4, 0, 0)), |
|
|
|
(-14, (_c(_t('Frequency Crystals')) + _t('Gamma'), 7, 4, 0, 0)), |
|
|
|
(-15, (_c(_t('Frequency Crystals')) + _t('Multifrequency'), 7, 5, 0, 0)), |
|
|
|
(-16, (_c(_t('Frequency Crystals')) + '|' + _t('[T2] Gleam'), 7, 7, 0, 0)), |
|
|
|
(-17, (_c(_t('Frequency Crystals')) + '|' + _t('[T2] Conflagration'), 7.7, 7.7, 0, 0)), |
|
|
|
# Different sizes of plasma do different damage ratios, the values here |
|
|
|
# are average of ratios across sizes |
|
|
|
(-18, ('[Exotic Plasma]|[T2] Mystic', 0, 66319, 0, 33681)), |
|
|
|
(-19, ('[Exotic Plasma]Meson', 0, 60519, 0, 39481)), |
|
|
|
(-20, ('[Exotic Plasma]Baryon', 0, 59737, 0, 40263)), |
|
|
|
(-21, ('[Exotic Plasma]Tetryon', 0, 69208, 0, 30792)), |
|
|
|
(-22, ('[Exotic Plasma]|[T2] Occult', 0, 55863, 0, 44137)), |
|
|
|
(-23, ('[Hybrid Charges]|[T2] Spike', 0, 4, 4, 0)), |
|
|
|
(-24, ('[Hybrid Charges]|[T2] Null', 0, 6, 5, 0)), |
|
|
|
(-25, ('[Hybrid Charges]Iron', 0, 2, 3, 0)), |
|
|
|
(-26, ('[Hybrid Charges]Tungsten', 0, 2, 4, 0)), |
|
|
|
(-27, ('[Hybrid Charges]Iridium', 0, 3, 4, 0)), |
|
|
|
(-28, ('[Hybrid Charges]Lead', 0, 3, 5, 0)), |
|
|
|
(-29, ('[Hybrid Charges]Thorium', 0, 4, 5, 0)), |
|
|
|
(-30, ('[Hybrid Charges]Uranium', 0, 4, 6, 0)), |
|
|
|
(-31, ('[Hybrid Charges]Plutonium', 0, 5, 6, 0)), |
|
|
|
(-32, ('[Hybrid Charges]Antimatter', 0, 5, 7, 0)), |
|
|
|
(-33, ('[Hybrid Charges]|[T2] Javelin', 0, 8, 6, 0)), |
|
|
|
(-34, ('[Hybrid Charges]|[T2] Void', 0, 7.7, 7.7, 0)), |
|
|
|
(-35, ('[Projectile Ammo]|[T2] Tremor', 0, 0, 3, 5)), |
|
|
|
(-36, ('[Projectile Ammo]|[T2] Barrage', 0, 0, 5, 6)), |
|
|
|
(-37, ('[Projectile Ammo]Carbonized Lead', 0, 0, 4, 1)), |
|
|
|
(-38, ('[Projectile Ammo]Nuclear', 0, 0, 1, 4)), |
|
|
|
(-39, ('[Projectile Ammo]Proton', 3, 0, 2, 0)), |
|
|
|
(-40, ('[Projectile Ammo]Depleted Uranium', 0, 3, 2, 3)), |
|
|
|
(-41, ('[Projectile Ammo]Titanium Sabot', 0, 0, 6, 2)), |
|
|
|
(-42, ('[Projectile Ammo]EMP', 9, 0, 1, 2)), |
|
|
|
(-43, ('[Projectile Ammo]Phased Plasma', 0, 10, 2, 0)), |
|
|
|
(-44, ('[Projectile Ammo]Fusion', 0, 0, 2, 10)), |
|
|
|
(-45, ('[Projectile Ammo]|[T2] Quake', 0, 0, 5, 9)), |
|
|
|
(-46, ('[Projectile Ammo]|[T2] Hail', 0, 0, 3.3, 12.1)), |
|
|
|
(-47, ('[Missiles]Mjolnir', 1, 0, 0, 0)), |
|
|
|
(-48, ('[Missiles]Inferno', 0, 1, 0, 0)), |
|
|
|
(-49, ('[Missiles]Scourge', 0, 0, 1, 0)), |
|
|
|
(-50, ('[Missiles]Nova', 0, 0, 0, 1)), |
|
|
|
(-51, ('[Bombs]Electron Bomb', 6400, 0, 0, 0)), |
|
|
|
(-52, ('[Bombs]Scorch Bomb', 0, 6400, 0, 0)), |
|
|
|
(-53, ('[Bombs]Concussion Bomb', 0, 0, 6400, 0)), |
|
|
|
(-54, ('[Bombs]Shrapnel Bomb', 0, 0, 0, 6400)), |
|
|
|
# Source: ticket #2067 |
|
|
|
(-55, ('[NPC][Abyssal]All', 130, 396, 258, 216)), |
|
|
|
(-56, ('[NPC][Abyssal]Drifter', 250, 250, 250, 250)), |
|
|
|
(-57, ('[NPC][Abyssal]Drones', 250, 250, 250, 250)), |
|
|
|
(-58, ('[NPC][Abyssal]Overmind', 0, 408, 592, 0)), |
|
|
|
(-59, ('[NPC][Abyssal]Seeker', 406, 406, 94, 94)), |
|
|
|
(-60, ('[NPC][Abyssal]Sleeper', 313, 313, 187, 187)), |
|
|
|
(-61, ('[NPC][Abyssal]Triglavian', 0, 610, 0, 390)), |
|
|
|
(-62, ('[NPC][Asteroid]Angel Cartel', 1838, 562, 2215, 3838)), |
|
|
|
(-63, ('[NPC][Asteroid]Blood Raiders', 5067, 4214, 0, 0)), |
|
|
|
(-64, ('[NPC][Asteroid]Guristas', 0, 1828, 7413, 0)), |
|
|
|
(-65, ('[NPC][Asteroid]Rogue Drone', 394, 666, 1090, 1687)), |
|
|
|
(-66, ('[NPC][Asteroid]Sanshas Nation', 5586, 4112, 0, 0)), |
|
|
|
(-67, ('[NPC][Asteroid]Serpentis', 0, 5373, 4813, 0)), |
|
|
|
(-68, ('[NPC][Burner]Cruor (Blood Raiders)', 90, 90, 0, 0)), |
|
|
|
(-69, ('[NPC][Burner]Dramiel (Angel)', 55, 0, 20, 96)), |
|
|
|
(-70, ('[NPC][Burner]Daredevil (Serpentis)', 0, 110, 154, 0)), |
|
|
|
(-71, ('[NPC][Burner]Succubus (Sanshas Nation)', 135, 30, 0, 0)), |
|
|
|
(-72, ('[NPC][Burner]Worm (Guristas)', 0, 0, 228, 0)), |
|
|
|
(-73, ('[NPC][Burner]Enyo', 0, 147, 147, 0)), |
|
|
|
(-74, ('[NPC][Burner]Hawk', 0, 0, 247, 0)), |
|
|
|
(-75, ('[NPC][Burner]Jaguar', 36, 0, 50, 182)), |
|
|
|
(-76, ('[NPC][Burner]Vengeance', 232, 0, 0, 0)), |
|
|
|
(-77, ('[NPC][Burner]Ashimmu (Blood Raiders)', 260, 100, 0, 0)), |
|
|
|
(-78, ('[NPC][Burner]Talos', 0, 413, 413, 0)), |
|
|
|
(-79, ('[NPC][Burner]Sentinel', 0, 75, 0, 90)), |
|
|
|
(-80, ('[NPC][Deadspace]Angel Cartel', 369, 533, 1395, 3302)), |
|
|
|
(-81, ('[NPC][Deadspace]Blood Raiders', 6040, 5052, 10, 15)), |
|
|
|
(-82, ('[NPC][Deadspace]Guristas', 0, 1531, 9680, 0)), |
|
|
|
(-83, ('[NPC][Deadspace]Rogue Drone', 276, 1071, 1069, 871)), |
|
|
|
(-84, ('[NPC][Deadspace]Sanshas Nation', 3009, 2237, 0, 0)), |
|
|
|
(-85, ('[NPC][Deadspace]Serpentis', 0, 3110, 1929, 0)), |
|
|
|
(-18, (_c(_t('Exotic Plasma')) + '|' + _t('[T2] Mystic'), 0, 66319, 0, 33681)), |
|
|
|
(-19, (_c(_t('Exotic Plasma')) + _t('Meson'), 0, 60519, 0, 39481)), |
|
|
|
(-20, (_c(_t('Exotic Plasma')) + _t('Baryon'), 0, 59737, 0, 40263)), |
|
|
|
(-21, (_c(_t('Exotic Plasma')) + _t('Tetryon'), 0, 69208, 0, 30792)), |
|
|
|
(-22, (_c(_t('Exotic Plasma')) + '|' + _t('[T2] Occult'), 0, 55863, 0, 44137)), |
|
|
|
(-23, (_c(_t('Hybrid Charges')) + '|' + _t('[T2] Spike'), 0, 4, 4, 0)), |
|
|
|
(-24, (_c(_t('Hybrid Charges')) + '|' + _t('[T2] Null'), 0, 6, 5, 0)), |
|
|
|
(-25, (_c(_t('Hybrid Charges')) + _t('Iron'), 0, 2, 3, 0)), |
|
|
|
(-26, (_c(_t('Hybrid Charges')) + _t('Tungsten'), 0, 2, 4, 0)), |
|
|
|
(-27, (_c(_t('Hybrid Charges')) + _t('Iridium'), 0, 3, 4, 0)), |
|
|
|
(-28, (_c(_t('Hybrid Charges')) + _t('Lead'), 0, 3, 5, 0)), |
|
|
|
(-29, (_c(_t('Hybrid Charges')) + _t('Thorium'), 0, 4, 5, 0)), |
|
|
|
(-30, (_c(_t('Hybrid Charges')) + _t('Uranium'), 0, 4, 6, 0)), |
|
|
|
(-31, (_c(_t('Hybrid Charges')) + _t('Plutonium'), 0, 5, 6, 0)), |
|
|
|
(-32, (_c(_t('Hybrid Charges')) + _t('Antimatter'), 0, 5, 7, 0)), |
|
|
|
(-33, (_c(_t('Hybrid Charges')) + '|' + _t('[T2] Javelin'), 0, 8, 6, 0)), |
|
|
|
(-34, (_c(_t('Hybrid Charges')) + '|' + _t('[T2] Void'), 0, 7.7, 7.7, 0)), |
|
|
|
(-35, (_c(_t('Projectile Ammo')) + '|' + _t('[T2] Tremor'), 0, 0, 3, 5)), |
|
|
|
(-36, (_c(_t('Projectile Ammo')) + '|' + _t('[T2] Barrage'), 0, 0, 5, 6)), |
|
|
|
(-37, (_c(_t('Projectile Ammo')) + _t('Carbonized Lead'), 0, 0, 4, 1)), |
|
|
|
(-38, (_c(_t('Projectile Ammo')) + _t('Nuclear'), 0, 0, 1, 4)), |
|
|
|
(-39, (_c(_t('Projectile Ammo')) + _t('Proton'), 3, 0, 2, 0)), |
|
|
|
(-40, (_c(_t('Projectile Ammo')) + _t('Depleted Uranium'), 0, 3, 2, 3)), |
|
|
|
(-41, (_c(_t('Projectile Ammo')) + _t('Titanium Sabot'), 0, 0, 6, 2)), |
|
|
|
(-42, (_c(_t('Projectile Ammo')) + _t('EMP'), 9, 0, 1, 2)), |
|
|
|
(-43, (_c(_t('Projectile Ammo')) + _t('Phased Plasma'), 0, 10, 2, 0)), |
|
|
|
(-44, (_c(_t('Projectile Ammo')) + _t('Fusion'), 0, 0, 2, 10)), |
|
|
|
(-45, (_c(_t('Projectile Ammo')) + '|' + _t('[T2] Quake'), 0, 0, 5, 9)), |
|
|
|
(-46, (_c(_t('Projectile Ammo')) + '|' + _t('[T2] Hail'), 0, 0, 3.3, 12.1)), |
|
|
|
(-47, (_c(_t('Missiles')) + _t('Mjolnir'), 1, 0, 0, 0)), |
|
|
|
(-48, (_c(_t('Missiles')) + _t('Inferno'), 0, 1, 0, 0)), |
|
|
|
(-49, (_c(_t('Missiles')) + _t('Scourge'), 0, 0, 1, 0)), |
|
|
|
(-50, (_c(_t('Missiles')) + _t('Nova'), 0, 0, 0, 1)), |
|
|
|
(-51, (_c(_t('Bombs')) + _t('Electron Bomb'), 6400, 0, 0, 0)), |
|
|
|
(-52, (_c(_t('Bombs')) + _t('Scorch Bomb'), 0, 6400, 0, 0)), |
|
|
|
(-53, (_c(_t('Bombs')) + _t('Concussion Bomb'), 0, 0, 6400, 0)), |
|
|
|
(-54, (_c(_t('Bombs')) + _t('Shrapnel Bomb'), 0, 0, 0, 6400)), |
|
|
|
# Source: ticket #2067 and #2265 |
|
|
|
(-55, (_c(_t('NPC')) + _c(_t('Abyssal')) + _t('All'), 126, 427, 218, 230)), |
|
|
|
(-109, (_c(_t('NPC')) + _c(_t('Abyssal')) + _t('Angel'), 450, 72, 80, 398)), |
|
|
|
(-107, (_c(_t('NPC')) + _c(_t('Abyssal')) + _t('Concord'), 53, 559, 94, 295)), |
|
|
|
(-56, (_c(_t('NPC')) + _c(_t('Abyssal')) + _t('Drifter'), 250, 250, 250, 250)), |
|
|
|
(-57, (_c(_t('NPC')) + _c(_t('Abyssal')) + _t('Drones'), 250, 250, 250, 250)), |
|
|
|
(-58, (_c(_t('NPC')) + _c(_t('Abyssal')) + _t('Overmind'), 0, 410, 590, 0)), |
|
|
|
(-108, (_c(_t('NPC')) + _c(_t('Abyssal')) + _t('Sansha'), 569, 431, 0, 0)), |
|
|
|
(-59, (_c(_t('NPC')) + _c(_t('Abyssal')) + _t('Seeker'), 402, 402, 98, 98)), |
|
|
|
(-60, (_c(_t('NPC')) + _c(_t('Abyssal')) + _t('Sleeper'), 313, 313, 187, 187)), |
|
|
|
(-61, (_c(_t('NPC')) + _c(_t('Abyssal')) + _t('Triglavian'), 0, 615, 0, 385)), |
|
|
|
(-62, (_c(_t('NPC')) + _c(_t('Asteroid')) + _t('Angel Cartel'), 1838, 562, 2215, 3838)), |
|
|
|
(-63, (_c(_t('NPC')) + _c(_t('Asteroid')) + _t('Blood Raiders'), 5067, 4214, 0, 0)), |
|
|
|
(-64, (_c(_t('NPC')) + _c(_t('Asteroid')) + _t('Guristas'), 0, 1828, 7413, 0)), |
|
|
|
( |