i18n: deferred translation and category annotation for targetProfile and damagePattern

* use deferred translation annotation, to annotate strings in eos.db and translate on the GUI side

  As @blitzmann said in #2222, we should not include wx as a dependency for eos module.

* category annotation _c for taking '[]' out of string literals
This commit is contained in:
zhaoweny
2020-07-11 16:07:42 +08:00
parent f9b3defd4b
commit 9868b219d7
5 changed files with 273 additions and 260 deletions

View File

@@ -20,125 +20,131 @@
import re
from collections import OrderedDict
import wx
from sqlalchemy.orm import reconstructor
import eos.db
_t = lambda x: x
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, (_t('Uniform'), 25, 25, 25, 25)),
(-2, (_t('[Generic]') + _t('EM'), 1, 0, 0, 0)),
(-3, (_t('[Generic]') + _t('Thermal'), 0, 1, 0, 0)),
(-4, (_t('[Generic]') + _t('Kinetic'), 0, 0, 1, 0)),
(-5, (_t('[Generic]') + _t('Explosive'), 0, 0, 0, 1)),
(-6, (_t('[Frequency Crystals]') + '|' + _t('[T2] Aurora'), 5, 3, 0, 0)),
(-7, (_t('[Frequency Crystals]') + '|' + _t('[T2] Scorch'), 9, 2, 0, 0)),
(-8, (_t('[Frequency Crystals]') + _t('Radio'), 5, 0, 0, 0)),
(-9, (_t('[Frequency Crystals]') + _t('Microwave'), 4, 2, 0, 0)),
(-10, (_t('[Frequency Crystals]') + _t('Infrared'), 5, 2, 0, 0)),
(-11, (_t('[Frequency Crystals]') + _t('Standard'), 5, 3, 0, 0)),
(-12, (_t('[Frequency Crystals]') + _t('Ultraviolet'), 6, 3, 0, 0)),
(-13, (_t('[Frequency Crystals]') + _t('Xray'), 6, 4, 0, 0)),
(-14, (_t('[Frequency Crystals]') + _t('Gamma'), 7, 4, 0, 0)),
(-15, (_t('[Frequency Crystals]') + _t('Multifrequency'), 7, 5, 0, 0)),
(-16, (_t('[Frequency Crystals]') + '|' + _t('[T2] Gleam'), 7, 7, 0, 0)),
(-17, (_t('[Frequency Crystals]') + '|' + _t('[T2] Conflagration'), 7.7, 7.7, 0, 0)),
(-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, (_t('[Exotic Plasma]') + '|' + _t('[T2] Mystic'), 0, 66319, 0, 33681)),
(-19, (_t('[Exotic Plasma]') + _t('Meson'), 0, 60519, 0, 39481)),
(-20, (_t('[Exotic Plasma]') + _t('Baryon'), 0, 59737, 0, 40263)),
(-21, (_t('[Exotic Plasma]') + _t('Tetryon'), 0, 69208, 0, 30792)),
(-22, (_t('[Exotic Plasma]') + '|' + _t('[T2] Occult'), 0, 55863, 0, 44137)),
(-23, (_t('[Hybrid Charges]') + '|' + _t('[T2] Spike'), 0, 4, 4, 0)),
(-24, (_t('[Hybrid Charges]') + '|' + _t('[T2] Null'), 0, 6, 5, 0)),
(-25, (_t('[Hybrid Charges]') + _t('Iron'), 0, 2, 3, 0)),
(-26, (_t('[Hybrid Charges]') + _t('Tungsten'), 0, 2, 4, 0)),
(-27, (_t('[Hybrid Charges]') + _t('Iridium'), 0, 3, 4, 0)),
(-28, (_t('[Hybrid Charges]') + _t('Lead'), 0, 3, 5, 0)),
(-29, (_t('[Hybrid Charges]') + _t('Thorium'), 0, 4, 5, 0)),
(-30, (_t('[Hybrid Charges]') + _t('Uranium'), 0, 4, 6, 0)),
(-31, (_t('[Hybrid Charges]') + _t('Plutonium'), 0, 5, 6, 0)),
(-32, (_t('[Hybrid Charges]') + _t('Antimatter'), 0, 5, 7, 0)),
(-33, (_t('[Hybrid Charges]') + '|' + _t('[T2] Javelin'), 0, 8, 6, 0)),
(-34, (_t('[Hybrid Charges]') + '|' + _t('[T2] Void'), 0, 7.7, 7.7, 0)),
(-35, (_t('[Projectile Ammo]') + '|' + _t('[T2] Tremor'), 0, 0, 3, 5)),
(-36, (_t('[Projectile Ammo]') + '|' + _t('[T2] Barrage'), 0, 0, 5, 6)),
(-37, (_t('[Projectile Ammo]') + _t('Carbonized Lead'), 0, 0, 4, 1)),
(-38, (_t('[Projectile Ammo]') + _t('Nuclear'), 0, 0, 1, 4)),
(-39, (_t('[Projectile Ammo]') + _t('Proton'), 3, 0, 2, 0)),
(-40, (_t('[Projectile Ammo]') + _t('Depleted Uranium'), 0, 3, 2, 3)),
(-41, (_t('[Projectile Ammo]') + _t('Titanium Sabot'), 0, 0, 6, 2)),
(-42, (_t('[Projectile Ammo]') + _t('EMP'), 9, 0, 1, 2)),
(-43, (_t('[Projectile Ammo]') + _t('Phased Plasma'), 0, 10, 2, 0)),
(-44, (_t('[Projectile Ammo]') + _t('Fusion'), 0, 0, 2, 10)),
(-45, (_t('[Projectile Ammo]') + '|' + _t('[T2] Quake'), 0, 0, 5, 9)),
(-46, (_t('[Projectile Ammo]') + '|' + _t('[T2] Hail'), 0, 0, 3.3, 12.1)),
(-47, (_t('[Missiles]') + _t('Mjolnir'), 1, 0, 0, 0)),
(-48, (_t('[Missiles]') + _t('Inferno'), 0, 1, 0, 0)),
(-49, (_t('[Missiles]') + _t('Scourge'), 0, 0, 1, 0)),
(-50, (_t('[Missiles]') + _t('Nova'), 0, 0, 0, 1)),
(-51, (_t('[Bombs]') + _t('Electron Bomb'), 6400, 0, 0, 0)),
(-52, (_t('[Bombs]') + _t('Scorch Bomb'), 0, 6400, 0, 0)),
(-53, (_t('[Bombs]') + _t('Concussion Bomb'), 0, 0, 6400, 0)),
(-54, (_t('[Bombs]') + _t('Shrapnel Bomb'), 0, 0, 0, 6400)),
(-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
(-55, (_t('[NPC]') + _t('[Abyssal]') + _t('All'), 130, 396, 258, 216)),
(-56, (_t('[NPC]') + _t('[Abyssal]') + _t('Drifter'), 250, 250, 250, 250)),
(-57, (_t('[NPC]') + _t('[Abyssal]') + _t('Drones'), 250, 250, 250, 250)),
(-58, (_t('[NPC]') + _t('[Abyssal]') + _t('Overmind'), 0, 408, 592, 0)),
(-59, (_t('[NPC]') + _t('[Abyssal]') + _t('Seeker'), 406, 406, 94, 94)),
(-60, (_t('[NPC]') + _t('[Abyssal]') + _t('Sleeper'), 313, 313, 187, 187)),
(-61, (_t('[NPC]') + _t('[Abyssal]') + _t('Triglavian'), 0, 610, 0, 390)),
(-62, (_t('[NPC]') + _t('[Asteroid]') + _t('Angel Cartel'), 1838, 562, 2215, 3838)),
(-63, (_t('[NPC]') + _t('[Asteroid]') + _t('Blood Raiders'), 5067, 4214, 0, 0)),
(-64, (_t('[NPC]') + _t('[Asteroid]') + _t('Guristas'), 0, 1828, 7413, 0)),
(-65, (_t('[NPC]') + _t('[Asteroid]') + _t('Rogue Drone'), 394, 666, 1090, 1687)),
(-66, (_t('[NPC]') + _t('[Asteroid]') + _t('Sanshas Nation'), 5586, 4112, 0, 0)),
(-67, (_t('[NPC]') + _t('[Asteroid]') + _t('Serpentis'), 0, 5373, 4813, 0)),
(-68, (_t('[NPC]') + _t('[Burner]') + _t('Cruor (Blood Raiders)'), 90, 90, 0, 0)),
(-69, (_t('[NPC]') + _t('[Burner]') + _t('Dramiel (Angel)'), 55, 0, 20, 96)),
(-70, (_t('[NPC]') + _t('[Burner]') + _t('Daredevil (Serpentis)'), 0, 110, 154, 0)),
(-71, (_t('[NPC]') + _t('[Burner]') + _t('Succubus (Sanshas Nation)'), 135, 30, 0, 0)),
(-72, (_t('[NPC]') + _t('[Burner]') + _t('Worm (Guristas)'), 0, 0, 228, 0)),
(-73, (_t('[NPC]') + _t('[Burner]') + _t('Enyo'), 0, 147, 147, 0)),
(-74, (_t('[NPC]') + _t('[Burner]') + _t('Hawk'), 0, 0, 247, 0)),
(-75, (_t('[NPC]') + _t('[Burner]') + _t('Jaguar'), 36, 0, 50, 182)),
(-76, (_t('[NPC]') + _t('[Burner]') + _t('Vengeance'), 232, 0, 0, 0)),
(-77, (_t('[NPC]') + _t('[Burner]') + _t('Ashimmu (Blood Raiders)'), 260, 100, 0, 0)),
(-78, (_t('[NPC]') + _t('[Burner]') + _t('Talos'), 0, 413, 413, 0)),
(-79, (_t('[NPC]') + _t('[Burner]') + _t('Sentinel'), 0, 75, 0, 90)),
(-80, (_t('[NPC]') + _t('[Deadspace]') + _t('Angel Cartel'), 369, 533, 1395, 3302)),
(-81, (_t('[NPC]') + _t('[Deadspace]') + _t('Blood Raiders'), 6040, 5052, 10, 15)),
(-82, (_t('[NPC]') + _t('[Deadspace]') + _t('Guristas'), 0, 1531, 9680, 0)),
(-83, (_t('[NPC]') + _t('[Deadspace]') + _t('Rogue Drone'), 276, 1071, 1069, 871)),
(-84, (_t('[NPC]') + _t('[Deadspace]') + _t('Sanshas Nation'), 3009, 2237, 0, 0)),
(-85, (_t('[NPC]') + _t('[Deadspace]') + _t('Serpentis'), 0, 3110, 1929, 0)),
(-55, (_c(_t('NPC')) + _c(_t('Abyssal')) + _t('All'), 130, 396, 258, 216)),
(-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, 408, 592, 0)),
(-59, (_c(_t('NPC')) + _c(_t('Abyssal')) + _t('Seeker'), 406, 406, 94, 94)),
(-60, (_c(_t('NPC')) + _c(_t('Abyssal')) + _t('Sleeper'), 313, 313, 187, 187)),
(-61, (_c(_t('NPC')) + _c(_t('Abyssal')) + _t('Triglavian'), 0, 610, 0, 390)),
(-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)),
(-65, (_c(_t('NPC')) + _c(_t('Asteroid')) + _t('Rogue Drone'), 394, 666, 1090, 1687)),
(-66, (_c(_t('NPC')) + _c(_t('Asteroid')) + _t('Sanshas Nation'), 5586, 4112, 0, 0)),
(-67, (_c(_t('NPC')) + _c(_t('Asteroid')) + _t('Serpentis'), 0, 5373, 4813, 0)),
(-68, (_c(_t('NPC')) + _c(_t('Burner')) + _t('Cruor (Blood Raiders)'), 90, 90, 0, 0)),
(-69, (_c(_t('NPC')) + _c(_t('Burner')) + _t('Dramiel (Angel)'), 55, 0, 20, 96)),
(-70, (_c(_t('NPC')) + _c(_t('Burner')) + _t('Daredevil (Serpentis)'), 0, 110, 154, 0)),
(-71, (_c(_t('NPC')) + _c(_t('Burner')) + _t('Succubus (Sanshas Nation)'), 135, 30, 0, 0)),
(-72, (_c(_t('NPC')) + _c(_t('Burner')) + _t('Worm (Guristas)'), 0, 0, 228, 0)),
(-73, (_c(_t('NPC')) + _c(_t('Burner')) + _t('Enyo'), 0, 147, 147, 0)),
(-74, (_c(_t('NPC')) + _c(_t('Burner')) + _t('Hawk'), 0, 0, 247, 0)),
(-75, (_c(_t('NPC')) + _c(_t('Burner')) + _t('Jaguar'), 36, 0, 50, 182)),
(-76, (_c(_t('NPC')) + _c(_t('Burner')) + _t('Vengeance'), 232, 0, 0, 0)),
(-77, (_c(_t('NPC')) + _c(_t('Burner')) + _t('Ashimmu (Blood Raiders)'), 260, 100, 0, 0)),
(-78, (_c(_t('NPC')) + _c(_t('Burner')) + _t('Talos'), 0, 413, 413, 0)),
(-79, (_c(_t('NPC')) + _c(_t('Burner')) + _t('Sentinel'), 0, 75, 0, 90)),
(-80, (_c(_t('NPC')) + _c(_t('Deadspace')) + _t('Angel Cartel'), 369, 533, 1395, 3302)),
(-81, (_c(_t('NPC')) + _c(_t('Deadspace')) + _t('Blood Raiders'), 6040, 5052, 10, 15)),
(-82, (_c(_t('NPC')) + _c(_t('Deadspace')) + _t('Guristas'), 0, 1531, 9680, 0)),
(-83, (_c(_t('NPC')) + _c(_t('Deadspace')) + _t('Rogue Drone'), 276, 1071, 1069, 871)),
(-84, (_c(_t('NPC')) + _c(_t('Deadspace')) + _t('Sanshas Nation'), 3009, 2237, 0, 0)),
(-85, (_c(_t('NPC')) + _c(_t('Deadspace')) + _t('Serpentis'), 0, 3110, 1929, 0)),
# Source: ticket #2067
(-86, (_t('[NPC]') + _t('[Invasion]') + _t('[Invading Precursor Entities]') + _t('Dread'), 0, 417, 0, 583)),
(-87, (_t('[NPC]') + _t('[Invasion]') + _t('[Invading Precursor Entities]') + _t('Normal Subcaps'), 0, 610, 0, 390)),
(-88, (_t('[NPC]') + _t('[Invasion]') + _t('[Invading Precursor Entities]') + _t('Subcaps w/missiles 0% spool up'), 367, 155, 367, 112)),
(-89, (_t('[NPC]') + _t('[Invasion]') + _t('[Invading Precursor Entities]') + _t('Subcaps w/missiles 50% spool up'), 291, 243, 291, 175)),
(-90, (_t('[NPC]') + _t('[Invasion]') + _t('[Invading Precursor Entities]') + _t('Subcaps w/missiles 100% spool up'), 241, 301, 241, 217)),
(-91, (_t('[NPC]') + _t('[Invasion]') + _t('[Retaliating Amarr Entities]') + _t('Dread/Subcaps'), 583, 417, 0, 0)),
(-92, (_t('[NPC]') + _t('[Invasion]') + _t('[Retaliating Caldari Entities]') + _t('Dread'), 1000, 0, 0, 0)),
(-93, (_t('[NPC]') + _t('[Invasion]') + _t('[Retaliating Caldari Entities]') + _t('Subcaps'), 511, 21, 29, 440)),
(-94, (_t('[NPC]') + _t('[Invasion]') + _t('[Retaliating Gallente Entities]') + _t('Dread/Subcaps'), 0, 417, 583, 0)),
(-95, (_t('[NPC]') + _t('[Invasion]') + _t('[Retaliating Minmatar Entities]') + _t('Dread'), 0, 0, 583, 417)),
(-96, (_t('[NPC]') + _t('[Invasion]') + _t('[Retaliating Minmatar Entities]') + _t('Subcaps'), 302, 136, 328, 234)),
(-97, (_t('[NPC]') + _t('[Mission]') + _t('Amarr Empire'), 4464, 3546, 97, 0)),
(-98, (_t('[NPC]') + _t('[Mission]') + _t('Caldari State'), 0, 2139, 4867, 0)),
(-99, (_t('[NPC]') + _t('[Mission]') + _t('CONCORD'), 336, 134, 212, 412)),
(-100, (_t('[NPC]') + _t('[Mission]') + _t('Gallente Federation'), 9, 3712, 2758, 0)),
(-101, (_t('[NPC]') + _t('[Mission]') + _t('Khanid'), 612, 483, 43, 6)),
(-102, (_t('[NPC]') + _t('[Mission]') + _t('Minmatar Republic'), 1024, 388, 1655, 4285)),
(-103, (_t('[NPC]') + _t('[Mission]') + _t('Mordus Legion'), 25, 262, 625, 0)),
(-104, (_t('[NPC]') + _t('[Mission]') + _t('Thukker'), 0, 52, 10, 79)),
(-105, (_t('[NPC]') + _t('Sansha Incursion'), 1682, 1347, 3678, 3678)),
(-106, (_t('[NPC]') + _t('Sleepers'), 1472, 1472, 1384, 1384))])
(-86, (_c(_t('NPC')) + _c(_t('Invasion')) + _c(_t('Invading Precursor Entities')) + _t('Dread'), 0, 417, 0, 583)),
(-87, (_c(_t('NPC')) + _c(_t('Invasion')) + _c(_t('Invading Precursor Entities')) + _t('Normal Subcaps'), 0, 610, 0, 390)),
(-88, (_c(_t('NPC')) + _c(_t('Invasion')) + _c(_t('Invading Precursor Entities')) + _t('Subcaps w/missiles 0% spool up'), 367, 155, 367, 112)),
(-89, (_c(_t('NPC')) + _c(_t('Invasion')) + _c(_t('Invading Precursor Entities')) + _t('Subcaps w/missiles 50% spool up'), 291, 243, 291, 175)),
(-90, (_c(_t('NPC')) + _c(_t('Invasion')) + _c(_t('Invading Precursor Entities')) + _t('Subcaps w/missiles 100% spool up'), 241, 301, 241, 217)),
(-91, (_c(_t('NPC')) + _c(_t('Invasion')) + _c(_t('Retaliating Amarr Entities')) + _t('Dread/Subcaps'), 583, 417, 0, 0)),
(-92, (_c(_t('NPC')) + _c(_t('Invasion')) + _c(_t('Retaliating Caldari Entities')) + _t('Dread'), 1000, 0, 0, 0)),
(-93, (_c(_t('NPC')) + _c(_t('Invasion')) + _c(_t('Retaliating Caldari Entities')) + _t('Subcaps'), 511, 21, 29, 440)),
(-94, (_c(_t('NPC')) + _c(_t('Invasion')) + _c(_t('Retaliating Gallente Entities')) + _t('Dread/Subcaps'), 0, 417, 583, 0)),
(-95, (_c(_t('NPC')) + _c(_t('Invasion')) + _c(_t('Retaliating Minmatar Entities')) + _t('Dread'), 0, 0, 583, 417)),
(-96, (_c(_t('NPC')) + _c(_t('Invasion')) + _c(_t('Retaliating Minmatar Entities')) + _t('Subcaps'), 302, 136, 328, 234)),
(-97, (_c(_t('NPC')) + _c(_t('Mission')) + _t('Amarr Empire'), 4464, 3546, 97, 0)),
(-98, (_c(_t('NPC')) + _c(_t('Mission')) + _t('Caldari State'), 0, 2139, 4867, 0)),
(-99, (_c(_t('NPC')) + _c(_t('Mission')) + _t('CONCORD'), 336, 134, 212, 412)),
(-100, (_c(_t('NPC')) + _c(_t('Mission')) + _t('Gallente Federation'), 9, 3712, 2758, 0)),
(-101, (_c(_t('NPC')) + _c(_t('Mission')) + _t('Khanid'), 612, 483, 43, 6)),
(-102, (_c(_t('NPC')) + _c(_t('Mission')) + _t('Minmatar Republic'), 1024, 388, 1655, 4285)),
(-103, (_c(_t('NPC')) + _c(_t('Mission')) + _t('Mordus Legion'), 25, 262, 625, 0)),
(-104, (_c(_t('NPC')) + _c(_t('Mission')) + _t('Thukker'), 0, 52, 10, 79)),
(-105, (_c(_t('NPC')) + _t('Sansha Incursion'), 1682, 1347, 3678, 3678)),
(-106, (_c(_t('NPC')) + _t('Sleepers'), 1472, 1472, 1384, 1384))])
class DamagePattern:
@@ -340,10 +346,6 @@ class DamagePattern:
categories.append(remainingName[start + 1:end])
remainingName = remainingName[end + 1:].strip()
@property
def isBuiltin(self):
return self.ID < 0
def __deepcopy__(self, memo):
p = DamagePattern(self.emAmount, self.thermalAmount, self.kineticAmount, self.explosiveAmount)
p.rawName = "%s copy" % self.rawName

View File

@@ -23,12 +23,19 @@ from collections import OrderedDict
from logbook import Logger
from sqlalchemy.orm import reconstructor
import wx
import eos.db
pyfalog = Logger(__name__)
_t = wx.GetTranslation
def _t(x):
return x
def _c(x):
return '[' + x + ']'
BUILTINS = OrderedDict([
# 0 is taken by ideal target profile, composed manually in one of TargetProfile methods
@@ -36,150 +43,150 @@ BUILTINS = OrderedDict([
(-2, (_t('Uniform (50%)'), 0.50, 0.50, 0.50, 0.50)),
(-3, (_t('Uniform (75%)'), 0.75, 0.75, 0.75, 0.75)),
(-4, (_t('Uniform (90%)'), 0.90, 0.90, 0.90, 0.90)),
(-5, (_t('[T1 Resist]') + _t('Shield'), 0.0, 0.20, 0.40, 0.50)),
(-6, (_t('[T1 Resist]') + _t('Armor'), 0.50, 0.45, 0.25, 0.10)),
(-7, (_t('[T1 Resist]') + _t('Hull'), 0.33, 0.33, 0.33, 0.33)),
(-8, (_t('[T1 Resist]') + _t('Shield (+T2 DCU)'), 0.125, 0.30, 0.475, 0.562)),
(-9, (_t('[T1 Resist]') + _t('Armor (+T2 DCU)'), 0.575, 0.532, 0.363, 0.235)),
(-10, (_t('[T1 Resist]') + _t('Hull (+T2 DCU)'), 0.598, 0.598, 0.598, 0.598)),
(-11, (_t('[T2 Resist]') + _t('Amarr (Shield)'), 0.0, 0.20, 0.70, 0.875)),
(-12, (_t('[T2 Resist]') + _t('Amarr (Armor)'), 0.50, 0.35, 0.625, 0.80)),
(-13, (_t('[T2 Resist]') + _t('Caldari (Shield)'), 0.20, 0.84, 0.76, 0.60)),
(-14, (_t('[T2 Resist]') + _t('Caldari (Armor)'), 0.50, 0.8625, 0.625, 0.10)),
(-15, (_t('[T2 Resist]') + _t('Gallente (Shield)'), 0.0, 0.60, 0.85, 0.50)),
(-16, (_t('[T2 Resist]') + _t('Gallente (Armor)'), 0.50, 0.675, 0.8375, 0.10)),
(-17, (_t('[T2 Resist]') + _t('Minmatar (Shield)'), 0.75, 0.60, 0.40, 0.50)),
(-18, (_t('[T2 Resist]') + _t('Minmatar (Armor)'), 0.90, 0.675, 0.25, 0.10)),
(-19, (_t('[NPC]') + _t('[Asteroid]') + _t('Angel Cartel'), 0.54, 0.42, 0.37, 0.32)),
(-20, (_t('[NPC]') + _t('[Asteroid]') + _t('Blood Raiders'), 0.34, 0.39, 0.45, 0.52)),
(-21, (_t('[NPC]') + _t('[Asteroid]') + _t('Guristas'), 0.55, 0.35, 0.3, 0.48)),
(-22, (_t('[NPC]') + _t('[Asteroid]') + _t('Rogue Drones'), 0.35, 0.38, 0.44, 0.49)),
(-23, (_t('[NPC]') + _t('[Asteroid]') + _t('Sanshas Nation'), 0.35, 0.4, 0.47, 0.53)),
(-24, (_t('[NPC]') + _t('[Asteroid]') + _t('Serpentis'), 0.49, 0.38, 0.29, 0.51)),
(-25, (_t('[NPC]') + _t('[Deadspace]') + _t('Angel Cartel'), 0.59, 0.48, 0.4, 0.32)),
(-26, (_t('[NPC]') + _t('[Deadspace]') + _t('Blood Raiders'), 0.31, 0.39, 0.47, 0.56)),
(-27, (_t('[NPC]') + _t('[Deadspace]') + _t('Guristas'), 0.57, 0.39, 0.31, 0.5)),
(-28, (_t('[NPC]') + _t('[Deadspace]') + _t('Rogue Drones'), 0.42, 0.42, 0.47, 0.49)),
(-29, (_t('[NPC]') + _t('[Deadspace]') + _t('Sanshas Nation'), 0.31, 0.39, 0.47, 0.56)),
(-30, (_t('[NPC]') + _t('[Deadspace]') + _t('Serpentis'), 0.49, 0.38, 0.29, 0.56)),
(-31, (_t('[NPC]') + _t('[Mission]') + _t('Amarr Empire'), 0.34, 0.38, 0.42, 0.46)),
(-32, (_t('[NPC]') + _t('[Mission]') + _t('Caldari State'), 0.51, 0.38, 0.3, 0.51)),
(-33, (_t('[NPC]') + _t('[Mission]') + _t('CONCORD'), 0.47, 0.46, 0.47, 0.47)),
(-34, (_t('[NPC]') + _t('[Mission]') + _t('Gallente Federation'), 0.51, 0.38, 0.31, 0.52)),
(-35, (_t('[NPC]') + _t('[Mission]') + _t('Khanid'), 0.51, 0.42, 0.36, 0.4)),
(-36, (_t('[NPC]') + _t('[Mission]') + _t('Minmatar Republic'), 0.51, 0.46, 0.41, 0.35)),
(-37, (_t('[NPC]') + _t('[Mission]') + _t('Mordus Legion'), 0.32, 0.48, 0.4, 0.62)),
(-38, (_t('[NPC]') + _t('[Other]') + _t('Sleeper'), 0.61, 0.61, 0.61, 0.61)),
(-39, (_t('[NPC]') + _t('[Other]') + _t('Sansha Incursion'), 0.65, 0.63, 0.64, 0.65)),
(-40, (_t('[NPC]') + _t('[Burner]') + _t('Cruor (Blood Raiders)'), 0.8, 0.73, 0.69, 0.67)),
(-41, (_t('[NPC]') + _t('[Burner]') + _t('Dramiel (Angel)'), 0.35, 0.48, 0.61, 0.68)),
(-42, (_t('[NPC]') + _t('[Burner]') + _t('Daredevil (Serpentis)'), 0.69, 0.59, 0.59, 0.43)),
(-43, (_t('[NPC]') + _t('[Burner]') + _t('Succubus (Sanshas Nation)'), 0.35, 0.48, 0.61, 0.68)),
(-44, (_t('[NPC]') + _t('[Burner]') + _t('Worm (Guristas)'), 0.48, 0.58, 0.69, 0.74)),
(-45, (_t('[NPC]') + _t('[Burner]') + _t('Enyo'), 0.58, 0.72, 0.86, 0.24)),
(-46, (_t('[NPC]') + _t('[Burner]') + _t('Hawk'), 0.3, 0.86, 0.79, 0.65)),
(-47, (_t('[NPC]') + _t('[Burner]') + _t('Jaguar'), 0.78, 0.65, 0.48, 0.56)),
(-48, (_t('[NPC]') + _t('[Burner]') + _t('Vengeance'), 0.66, 0.56, 0.75, 0.86)),
(-49, (_t('[NPC]') + _t('[Burner]') + _t('Ashimmu (Blood Raiders)'), 0.8, 0.76, 0.68, 0.7)),
(-50, (_t('[NPC]') + _t('[Burner]') + _t('Talos'), 0.68, 0.59, 0.59, 0.43)),
(-51, (_t('[NPC]') + _t('[Burner]') + _t('Sentinel'), 0.58, 0.45, 0.52, 0.66)),
(-5, (_c(_t('T1 Resist')) + _t('Shield'), 0.0, 0.20, 0.40, 0.50)),
(-6, (_c(_t('T1 Resist')) + _t('Armor'), 0.50, 0.45, 0.25, 0.10)),
(-7, (_c(_t('T1 Resist')) + _t('Hull'), 0.33, 0.33, 0.33, 0.33)),
(-8, (_c(_t('T1 Resist')) + _t('Shield (+T2 DCU)'), 0.125, 0.30, 0.475, 0.562)),
(-9, (_c(_t('T1 Resist')) + _t('Armor (+T2 DCU)'), 0.575, 0.532, 0.363, 0.235)),
(-10, (_c(_t('T1 Resist')) + _t('Hull (+T2 DCU)'), 0.598, 0.598, 0.598, 0.598)),
(-11, (_c(_t('T2 Resist')) + _t('Amarr (Shield)'), 0.0, 0.20, 0.70, 0.875)),
(-12, (_c(_t('T2 Resist')) + _t('Amarr (Armor)'), 0.50, 0.35, 0.625, 0.80)),
(-13, (_c(_t('T2 Resist')) + _t('Caldari (Shield)'), 0.20, 0.84, 0.76, 0.60)),
(-14, (_c(_t('T2 Resist')) + _t('Caldari (Armor)'), 0.50, 0.8625, 0.625, 0.10)),
(-15, (_c(_t('T2 Resist')) + _t('Gallente (Shield)'), 0.0, 0.60, 0.85, 0.50)),
(-16, (_c(_t('T2 Resist')) + _t('Gallente (Armor)'), 0.50, 0.675, 0.8375, 0.10)),
(-17, (_c(_t('T2 Resist')) + _t('Minmatar (Shield)'), 0.75, 0.60, 0.40, 0.50)),
(-18, (_c(_t('T2 Resist')) + _t('Minmatar (Armor)'), 0.90, 0.675, 0.25, 0.10)),
(-19, (_c(_t('NPC')) + _c(_t('Asteroid')) + _t('Angel Cartel'), 0.54, 0.42, 0.37, 0.32)),
(-20, (_c(_t('NPC')) + _c(_t('Asteroid')) + _t('Blood Raiders'), 0.34, 0.39, 0.45, 0.52)),
(-21, (_c(_t('NPC')) + _c(_t('Asteroid')) + _t('Guristas'), 0.55, 0.35, 0.3, 0.48)),
(-22, (_c(_t('NPC')) + _c(_t('Asteroid')) + _t('Rogue Drones'), 0.35, 0.38, 0.44, 0.49)),
(-23, (_c(_t('NPC')) + _c(_t('Asteroid')) + _t('Sanshas Nation'), 0.35, 0.4, 0.47, 0.53)),
(-24, (_c(_t('NPC')) + _c(_t('Asteroid')) + _t('Serpentis'), 0.49, 0.38, 0.29, 0.51)),
(-25, (_c(_t('NPC')) + _c(_t('Deadspace')) + _t('Angel Cartel'), 0.59, 0.48, 0.4, 0.32)),
(-26, (_c(_t('NPC')) + _c(_t('Deadspace')) + _t('Blood Raiders'), 0.31, 0.39, 0.47, 0.56)),
(-27, (_c(_t('NPC')) + _c(_t('Deadspace')) + _t('Guristas'), 0.57, 0.39, 0.31, 0.5)),
(-28, (_c(_t('NPC')) + _c(_t('Deadspace')) + _t('Rogue Drones'), 0.42, 0.42, 0.47, 0.49)),
(-29, (_c(_t('NPC')) + _c(_t('Deadspace')) + _t('Sanshas Nation'), 0.31, 0.39, 0.47, 0.56)),
(-30, (_c(_t('NPC')) + _c(_t('Deadspace')) + _t('Serpentis'), 0.49, 0.38, 0.29, 0.56)),
(-31, (_c(_t('NPC')) + _c(_t('Mission')) + _t('Amarr Empire'), 0.34, 0.38, 0.42, 0.46)),
(-32, (_c(_t('NPC')) + _c(_t('Mission')) + _t('Caldari State'), 0.51, 0.38, 0.3, 0.51)),
(-33, (_c(_t('NPC')) + _c(_t('Mission')) + _t('CONCORD'), 0.47, 0.46, 0.47, 0.47)),
(-34, (_c(_t('NPC')) + _c(_t('Mission')) + _t('Gallente Federation'), 0.51, 0.38, 0.31, 0.52)),
(-35, (_c(_t('NPC')) + _c(_t('Mission')) + _t('Khanid'), 0.51, 0.42, 0.36, 0.4)),
(-36, (_c(_t('NPC')) + _c(_t('Mission')) + _t('Minmatar Republic'), 0.51, 0.46, 0.41, 0.35)),
(-37, (_c(_t('NPC')) + _c(_t('Mission')) + _t('Mordus Legion'), 0.32, 0.48, 0.4, 0.62)),
(-38, (_c(_t('NPC')) + _c(_t('Other')) + _t('Sleeper'), 0.61, 0.61, 0.61, 0.61)),
(-39, (_c(_t('NPC')) + _c(_t('Other')) + _t('Sansha Incursion'), 0.65, 0.63, 0.64, 0.65)),
(-40, (_c(_t('NPC')) + _c(_t('Burner')) + _t('Cruor (Blood Raiders)'), 0.8, 0.73, 0.69, 0.67)),
(-41, (_c(_t('NPC')) + _c(_t('Burner')) + _t('Dramiel (Angel)'), 0.35, 0.48, 0.61, 0.68)),
(-42, (_c(_t('NPC')) + _c(_t('Burner')) + _t('Daredevil (Serpentis)'), 0.69, 0.59, 0.59, 0.43)),
(-43, (_c(_t('NPC')) + _c(_t('Burner')) + _t('Succubus (Sanshas Nation)'), 0.35, 0.48, 0.61, 0.68)),
(-44, (_c(_t('NPC')) + _c(_t('Burner')) + _t('Worm (Guristas)'), 0.48, 0.58, 0.69, 0.74)),
(-45, (_c(_t('NPC')) + _c(_t('Burner')) + _t('Enyo'), 0.58, 0.72, 0.86, 0.24)),
(-46, (_c(_t('NPC')) + _c(_t('Burner')) + _t('Hawk'), 0.3, 0.86, 0.79, 0.65)),
(-47, (_c(_t('NPC')) + _c(_t('Burner')) + _t('Jaguar'), 0.78, 0.65, 0.48, 0.56)),
(-48, (_c(_t('NPC')) + _c(_t('Burner')) + _t('Vengeance'), 0.66, 0.56, 0.75, 0.86)),
(-49, (_c(_t('NPC')) + _c(_t('Burner')) + _t('Ashimmu (Blood Raiders)'), 0.8, 0.76, 0.68, 0.7)),
(-50, (_c(_t('NPC')) + _c(_t('Burner')) + _t('Talos'), 0.68, 0.59, 0.59, 0.43)),
(-51, (_c(_t('NPC')) + _c(_t('Burner')) + _t('Sentinel'), 0.58, 0.45, 0.52, 0.66)),
# Source: ticket #2067
(-52, (_t('[NPC]') + _t('[Invasion]') + _t('Invading Precursor Entities'), 0.422, 0.367, 0.453, 0.411)),
(-53, (_t('[NPC]') + _t('[Invasion]') + _t('Retaliating Amarr Entities'), 0.360, 0.310, 0.441, 0.602)),
(-54, (_t('[NPC]') + _t('[Invasion]') + _t('Retaliating Caldari Entities'), 0.287, 0.610, 0.487, 0.401)),
(-55, (_t('[NPC]') + _t('[Invasion]') + _t('Retaliating Gallente Entities'), 0.383, 0.414, 0.578, 0.513)),
(-56, (_t('[NPC]') + _t('[Invasion]') + _t('Retaliating Minmatar Entities'), 0.620, 0.422, 0.355, 0.399)),
(-57, (_t('[NPC]') + _t('[Abyssal]') + _t('[Dark Matter All Tiers]') + _t('Drones'), 0.439, 0.522, 0.529, 0.435)),
(-58, (_t('[NPC]') + _t('[Abyssal]') + _t('[Dark Matter All Tiers]') + _t('Overmind'), 0.626, 0.576, 0.612, 0.624)),
(-59, (_t('[NPC]') + _t('[Abyssal]') + _t('[Dark Matter All Tiers]') + _t('Seeker'), 0.082, 0.082, 0.082, 0.082)),
(-60, (_t('[NPC]') + _t('[Abyssal]') + _t('[Dark Matter All Tiers]') + _t('Triglavian'), 0.477, 0.401, 0.449, 0.37)),
(-61, (_t('[NPC]') + _t('[Abyssal]') + _t('[Dark Matter All Tiers]') + _t('Drifter'), 0.403, 0.403, 0.403, 0.403)),
(-62, (_t('[NPC]') + _t('[Abyssal]') + _t('[Dark Matter All Tiers]') + _t('Sleeper'), 0.435, 0.435, 0.435, 0.435)),
(-63, (_t('[NPC]') + _t('[Abyssal]') + _t('[Dark Matter All Tiers]') + _t('All'), 0.507, 0.477, 0.502, 0.493)),
(-64, (_t('[NPC]') + _t('[Abyssal]') + _t('[Electrical T1/T2]') + _t('Drones'), 0.323, 0.522, 0.529, 0.435)),
(-65, (_t('[NPC]') + _t('[Abyssal]') + _t('[Electrical T1/T2]') + _t('Overmind'), 0.521, 0.576, 0.612, 0.624)),
(-66, (_t('[NPC]') + _t('[Abyssal]') + _t('[Electrical T1/T2]') + _t('Seeker'), 0, 0.082, 0.082, 0.082)),
(-67, (_t('[NPC]') + _t('[Abyssal]') + _t('[Electrical T1/T2]') + _t('Triglavian'), 0.333, 0.401, 0.449, 0.37)),
(-68, (_t('[NPC]') + _t('[Abyssal]') + _t('[Electrical T1/T2]') + _t('Drifter'), 0.267, 0.403, 0.403, 0.403)),
(-69, (_t('[NPC]') + _t('[Abyssal]') + _t('[Electrical T1/T2]') + _t('Sleeper'), 0.329, 0.435, 0.435, 0.435)),
(-70, (_t('[NPC]') + _t('[Abyssal]') + _t('[Electrical T1/T2]') + _t('All'), 0.385, 0.477, 0.502, 0.493)),
(-71, (_t('[NPC]') + _t('[Abyssal]') + _t('[Electrical T3 (Some T5 Rooms)]') + _t('Drones'), 0.255, 0.522, 0.529, 0.435)),
(-72, (_t('[NPC]') + _t('[Abyssal]') + _t('[Electrical T3 (Some T5 Rooms)]') + _t('Overmind'), 0.457, 0.576, 0.612, 0.624)),
(-73, (_t('[NPC]') + _t('[Abyssal]') + _t('[Electrical T3 (Some T5 Rooms)]') + _t('Seeker'), 0, 0.082, 0.082, 0.082)),
(-74, (_t('[NPC]') + _t('[Abyssal]') + _t('[Electrical T3 (Some T5 Rooms)]') + _t('Triglavian'), 0.241, 0.401, 0.449, 0.37)),
(-75, (_t('[NPC]') + _t('[Abyssal]') + _t('[Electrical T3 (Some T5 Rooms)]') + _t('Drifter'), 0.184, 0.403, 0.403, 0.403)),
(-76, (_t('[NPC]') + _t('[Abyssal]') + _t('[Electrical T3 (Some T5 Rooms)]') + _t('Sleeper'), 0.268, 0.435, 0.435, 0.435)),
(-77, (_t('[NPC]') + _t('[Abyssal]') + _t('[Electrical T3 (Some T5 Rooms)]') + _t('All'), 0.313, 0.477, 0.502, 0.493)),
(-78, (_t('[NPC]') + _t('[Abyssal]') + _t('[Electrical T4/T5]') + _t('Drones'), 0.193, 0.522, 0.529, 0.435)),
(-79, (_t('[NPC]') + _t('[Abyssal]') + _t('[Electrical T4/T5]') + _t('Overmind'), 0.398, 0.576, 0.612, 0.624)),
(-80, (_t('[NPC]') + _t('[Abyssal]') + _t('[Electrical T4/T5]') + _t('Seeker'), 0, 0.082, 0.082, 0.082)),
(-81, (_t('[NPC]') + _t('[Abyssal]') + _t('[Electrical T4/T5]') + _t('Triglavian'), 0.183, 0.401, 0.449, 0.37)),
(-82, (_t('[NPC]') + _t('[Abyssal]') + _t('[Electrical T4/T5]') + _t('Drifter'), 0.107, 0.403, 0.403, 0.403)),
(-83, (_t('[NPC]') + _t('[Abyssal]') + _t('[Electrical T4/T5]') + _t('Sleeper'), 0.215, 0.435, 0.435, 0.435)),
(-84, (_t('[NPC]') + _t('[Abyssal]') + _t('[Electrical T4/T5]') + _t('All'), 0.25, 0.477, 0.502, 0.493)),
(-85, (_t('[NPC]') + _t('[Abyssal]') + _t('[Firestorm T1/T2]') + _t('Drones'), 0.461, 0.425, 0.541, 0.443)),
(-86, (_t('[NPC]') + _t('[Abyssal]') + _t('[Firestorm T1/T2]') + _t('Overmind'), 0.65, 0.469, 0.625, 0.633)),
(-87, (_t('[NPC]') + _t('[Abyssal]') + _t('[Firestorm T1/T2]') + _t('Seeker'), 0.084, 0, 0.084, 0.084)),
(-88, (_t('[NPC]') + _t('[Abyssal]') + _t('[Firestorm T1/T2]') + _t('Triglavian'), 0.534, 0.266, 0.484, 0.366)),
(-89, (_t('[NPC]') + _t('[Abyssal]') + _t('[Firestorm T1/T2]') + _t('Drifter'), 0.422, 0.282, 0.422, 0.422)),
(-90, (_t('[NPC]') + _t('[Abyssal]') + _t('[Firestorm T1/T2]') + _t('Sleeper'), 0.512, 0.402, 0.512, 0.512)),
(-91, (_t('[NPC]') + _t('[Abyssal]') + _t('[Firestorm T1/T2]') + _t('All'), 0.541, 0.365, 0.524, 0.504)),
(-92, (_t('[NPC]') + _t('[Abyssal]') + _t('[Firestorm T3 (Some T5 Rooms)]') + _t('Drones'), 0.461, 0.36, 0.541, 0.443)),
(-93, (_t('[NPC]') + _t('[Abyssal]') + _t('[Firestorm T3 (Some T5 Rooms)]') + _t('Overmind'), 0.65, 0.391, 0.625, 0.633)),
(-94, (_t('[NPC]') + _t('[Abyssal]') + _t('[Firestorm T3 (Some T5 Rooms)]') + _t('Seeker'), 0.084, 0, 0.084, 0.084)),
(-95, (_t('[NPC]') + _t('[Abyssal]') + _t('[Firestorm T3 (Some T5 Rooms)]') + _t('Triglavian'), 0.534, 0.161, 0.484, 0.366)),
(-96, (_t('[NPC]') + _t('[Abyssal]') + _t('[Firestorm T3 (Some T5 Rooms)]') + _t('Drifter'), 0.422, 0.196, 0.422, 0.422)),
(-97, (_t('[NPC]') + _t('[Abyssal]') + _t('[Firestorm T3 (Some T5 Rooms)]') + _t('Sleeper'), 0.512, 0.337, 0.512, 0.512)),
(-98, (_t('[NPC]') + _t('[Abyssal]') + _t('[Firestorm T3 (Some T5 Rooms)]') + _t('All'), 0.541, 0.284, 0.524, 0.504)),
(-99, (_t('[NPC]') + _t('[Abyssal]') + _t('[Firestorm T4/T5]') + _t('Drones'), 0.461, 0.305, 0.541, 0.443)),
(-100, (_t('[NPC]') + _t('[Abyssal]') + _t('[Firestorm T4/T5]') + _t('Overmind'), 0.65, 0.323, 0.625, 0.633)),
(-101, (_t('[NPC]') + _t('[Abyssal]') + _t('[Firestorm T4/T5]') + _t('Seeker'), 0.084, 0, 0.084, 0.084)),
(-102, (_t('[NPC]') + _t('[Abyssal]') + _t('[Firestorm T4/T5]') + _t('Triglavian'), 0.534, 0.082, 0.484, 0.366)),
(-103, (_t('[NPC]') + _t('[Abyssal]') + _t('[Firestorm T4/T5]') + _t('Drifter'), 0.422, 0.114, 0.422, 0.422)),
(-104, (_t('[NPC]') + _t('[Abyssal]') + _t('[Firestorm T4/T5]') + _t('Sleeper'), 0.512, 0.276, 0.512, 0.512)),
(-105, (_t('[NPC]') + _t('[Abyssal]') + _t('[Firestorm T4/T5]') + _t('All'), 0.541, 0.214, 0.524, 0.504)),
(-106, (_t('[NPC]') + _t('[Abyssal]') + _t('[Exotic T1/T2]') + _t('Drones'), 0.439, 0.522, 0.417, 0.435)),
(-107, (_t('[NPC]') + _t('[Abyssal]') + _t('[Exotic T1/T2]') + _t('Overmind'), 0.626, 0.576, 0.496, 0.624)),
(-108, (_t('[NPC]') + _t('[Abyssal]') + _t('[Exotic T1/T2]') + _t('Seeker'), 0.082, 0.082, 0, 0.082)),
(-109, (_t('[NPC]') + _t('[Abyssal]') + _t('[Exotic T1/T2]') + _t('Triglavian'), 0.477, 0.401, 0.284, 0.37)),
(-110, (_t('[NPC]') + _t('[Abyssal]') + _t('[Exotic T1/T2]') + _t('Drifter'), 0.403, 0.403, 0.267, 0.403)),
(-111, (_t('[NPC]') + _t('[Abyssal]') + _t('[Exotic T1/T2]') + _t('Sleeper'), 0.435, 0.435, 0.329, 0.435)),
(-112, (_t('[NPC]') + _t('[Abyssal]') + _t('[Exotic T1/T2]') + _t('All'), 0.507, 0.477, 0.373, 0.493)),
(-113, (_t('[NPC]') + _t('[Abyssal]') + _t('[Exotic T3 (Some T5 Rooms)]') + _t('Drones'), 0.439, 0.522, 0.351, 0.435)),
(-114, (_t('[NPC]') + _t('[Abyssal]') + _t('[Exotic T3 (Some T5 Rooms)]') + _t('Overmind'), 0.626, 0.576, 0.419, 0.624)),
(-115, (_t('[NPC]') + _t('[Abyssal]') + _t('[Exotic T3 (Some T5 Rooms)]') + _t('Seeker'), 0.082, 0.082, 0, 0.082)),
(-116, (_t('[NPC]') + _t('[Abyssal]') + _t('[Exotic T3 (Some T5 Rooms)]') + _t('Triglavian'), 0.477, 0.401, 0.176, 0.37)),
(-117, (_t('[NPC]') + _t('[Abyssal]') + _t('[Exotic T3 (Some T5 Rooms)]') + _t('Drifter'), 0.403, 0.403, 0.184, 0.403)),
(-118, (_t('[NPC]') + _t('[Abyssal]') + _t('[Exotic T3 (Some T5 Rooms)]') + _t('Sleeper'), 0.435, 0.435, 0.268, 0.435)),
(-119, (_t('[NPC]') + _t('[Abyssal]') + _t('[Exotic T3 (Some T5 Rooms)]') + _t('All'), 0.507, 0.477, 0.293, 0.493)),
(-120, (_t('[NPC]') + _t('[Abyssal]') + _t('[Exotic T4/T5]') + _t('Drones'), 0.439, 0.522, 0.293, 0.435)),
(-121, (_t('[NPC]') + _t('[Abyssal]') + _t('[Exotic T4/T5]') + _t('Overmind'), 0.626, 0.576, 0.344, 0.624)),
(-122, (_t('[NPC]') + _t('[Abyssal]') + _t('[Exotic T4/T5]') + _t('Seeker'), 0.082, 0.082, 0, 0.082)),
(-123, (_t('[NPC]') + _t('[Abyssal]') + _t('[Exotic T4/T5]') + _t('Triglavian'), 0.477, 0.401, 0.107, 0.37)),
(-124, (_t('[NPC]') + _t('[Abyssal]') + _t('[Exotic T4/T5]') + _t('Drifter'), 0.403, 0.403, 0.107, 0.403)),
(-125, (_t('[NPC]') + _t('[Abyssal]') + _t('[Exotic T4/T5]') + _t('Sleeper'), 0.435, 0.435, 0.215, 0.435)),
(-126, (_t('[NPC]') + _t('[Abyssal]') + _t('[Exotic T4/T5]') + _t('All'), 0.507, 0.477, 0.223, 0.493)),
(-127, (_t('[NPC]') + _t('[Abyssal]') + _t('[Gamma T1/T2]') + _t('Drones'), 0.449, 0.54, 0.549, 0.336)),
(-128, (_t('[NPC]') + _t('[Abyssal]') + _t('[Gamma T1/T2]') + _t('Overmind'), 0.6, 0.557, 0.601, 0.504)),
(-129, (_t('[NPC]') + _t('[Abyssal]') + _t('[Gamma T1/T2]') + _t('Seeker'), 0.085, 0.085, 0.085, 0)),
(-130, (_t('[NPC]') + _t('[Abyssal]') + _t('[Gamma T1/T2]') + _t('Triglavian'), 0.463, 0.392, 0.447, 0.193)),
(-131, (_t('[NPC]') + _t('[Abyssal]') + _t('[Gamma T1/T2]') + _t('Drifter'), 0.428, 0.428, 0.428, 0.287)),
(-132, (_t('[NPC]') + _t('[Abyssal]') + _t('[Gamma T1/T2]') + _t('Sleeper'), 0.435, 0.435, 0.435, 0.329)),
(-133, (_t('[NPC]') + _t('[Abyssal]') + _t('[Gamma T1/T2]') + _t('All'), 0.493, 0.472, 0.5, 0.362)),
(-134, (_t('[NPC]') + _t('[Abyssal]') + _t('[Gamma T3 (Some T5 Rooms)]') + _t('Drones'), 0.449, 0.54, 0.549, 0.264)),
(-135, (_t('[NPC]') + _t('[Abyssal]') + _t('[Gamma T3 (Some T5 Rooms)]') + _t('Overmind'), 0.6, 0.557, 0.601, 0.428)),
(-136, (_t('[NPC]') + _t('[Abyssal]') + _t('[Gamma T3 (Some T5 Rooms)]') + _t('Seeker'), 0.085, 0.085, 0.085, 0)),
(-137, (_t('[NPC]') + _t('[Abyssal]') + _t('[Gamma T3 (Some T5 Rooms)]') + _t('Triglavian'), 0.463, 0.392, 0.447, 0.071)),
(-138, (_t('[NPC]') + _t('[Abyssal]') + _t('[Gamma T3 (Some T5 Rooms)]') + _t('Drifter'), 0.428, 0.428, 0.428, 0.2)),
(-139, (_t('[NPC]') + _t('[Abyssal]') + _t('[Gamma T3 (Some T5 Rooms)]') + _t('Sleeper'), 0.435, 0.435, 0.435, 0.268)),
(-140, (_t('[NPC]') + _t('[Abyssal]') + _t('[Gamma T3 (Some T5 Rooms)]') + _t('All'), 0.493, 0.472, 0.5, 0.28)),
(-141, (_t('[NPC]') + _t('[Abyssal]') + _t('[Gamma T4/T5]') + _t('Drones'), 0.449, 0.54, 0.549, 0.197)),
(-142, (_t('[NPC]') + _t('[Abyssal]') + _t('[Gamma T4/T5]') + _t('Overmind'), 0.6, 0.557, 0.601, 0.356)),
(-143, (_t('[NPC]') + _t('[Abyssal]') + _t('[Gamma T4/T5]') + _t('Seeker'), 0.085, 0.085, 0.085, 0)),
(-144, (_t('[NPC]') + _t('[Abyssal]') + _t('[Gamma T4/T5]') + _t('Triglavian'), 0.463, 0.392, 0.447, 0.029)),
(-145, (_t('[NPC]') + _t('[Abyssal]') + _t('[Gamma T4/T5]') + _t('Drifter'), 0.428, 0.428, 0.428, 0.117)),
(-146, (_t('[NPC]') + _t('[Abyssal]') + _t('[Gamma T4/T5]') + _t('Sleeper'), 0.435, 0.435, 0.435, 0.215)),
(-147, (_t('[NPC]') + _t('[Abyssal]') + _t('[Gamma T4/T5]') + _t('All'), 0.493, 0.472, 0.5, 0.21))])
(-52, (_c(_t('NPC')) + _c(_t('Invasion')) + _t('Invading Precursor Entities'), 0.422, 0.367, 0.453, 0.411)),
(-53, (_c(_t('NPC')) + _c(_t('Invasion')) + _t('Retaliating Amarr Entities'), 0.360, 0.310, 0.441, 0.602)),
(-54, (_c(_t('NPC')) + _c(_t('Invasion')) + _t('Retaliating Caldari Entities'), 0.287, 0.610, 0.487, 0.401)),
(-55, (_c(_t('NPC')) + _c(_t('Invasion')) + _t('Retaliating Gallente Entities'), 0.383, 0.414, 0.578, 0.513)),
(-56, (_c(_t('NPC')) + _c(_t('Invasion')) + _t('Retaliating Minmatar Entities'), 0.620, 0.422, 0.355, 0.399)),
(-57, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Dark Matter All Tiers')) + _t('Drones'), 0.439, 0.522, 0.529, 0.435)),
(-58, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Dark Matter All Tiers')) + _t('Overmind'), 0.626, 0.576, 0.612, 0.624)),
(-59, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Dark Matter All Tiers')) + _t('Seeker'), 0.082, 0.082, 0.082, 0.082)),
(-60, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Dark Matter All Tiers')) + _t('Triglavian'), 0.477, 0.401, 0.449, 0.37)),
(-61, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Dark Matter All Tiers')) + _t('Drifter'), 0.403, 0.403, 0.403, 0.403)),
(-62, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Dark Matter All Tiers')) + _t('Sleeper'), 0.435, 0.435, 0.435, 0.435)),
(-63, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Dark Matter All Tiers')) + _t('All'), 0.507, 0.477, 0.502, 0.493)),
(-64, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Electrical T1/T2')) + _t('Drones'), 0.323, 0.522, 0.529, 0.435)),
(-65, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Electrical T1/T2')) + _t('Overmind'), 0.521, 0.576, 0.612, 0.624)),
(-66, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Electrical T1/T2')) + _t('Seeker'), 0, 0.082, 0.082, 0.082)),
(-67, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Electrical T1/T2')) + _t('Triglavian'), 0.333, 0.401, 0.449, 0.37)),
(-68, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Electrical T1/T2')) + _t('Drifter'), 0.267, 0.403, 0.403, 0.403)),
(-69, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Electrical T1/T2')) + _t('Sleeper'), 0.329, 0.435, 0.435, 0.435)),
(-70, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Electrical T1/T2')) + _t('All'), 0.385, 0.477, 0.502, 0.493)),
(-71, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Electrical T3 (Some T5 Rooms)')) + _t('Drones'), 0.255, 0.522, 0.529, 0.435)),
(-72, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Electrical T3 (Some T5 Rooms)')) + _t('Overmind'), 0.457, 0.576, 0.612, 0.624)),
(-73, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Electrical T3 (Some T5 Rooms)')) + _t('Seeker'), 0, 0.082, 0.082, 0.082)),
(-74, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Electrical T3 (Some T5 Rooms)')) + _t('Triglavian'), 0.241, 0.401, 0.449, 0.37)),
(-75, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Electrical T3 (Some T5 Rooms)')) + _t('Drifter'), 0.184, 0.403, 0.403, 0.403)),
(-76, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Electrical T3 (Some T5 Rooms)')) + _t('Sleeper'), 0.268, 0.435, 0.435, 0.435)),
(-77, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Electrical T3 (Some T5 Rooms)')) + _t('All'), 0.313, 0.477, 0.502, 0.493)),
(-78, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Electrical T4/T5')) + _t('Drones'), 0.193, 0.522, 0.529, 0.435)),
(-79, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Electrical T4/T5')) + _t('Overmind'), 0.398, 0.576, 0.612, 0.624)),
(-80, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Electrical T4/T5')) + _t('Seeker'), 0, 0.082, 0.082, 0.082)),
(-81, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Electrical T4/T5')) + _t('Triglavian'), 0.183, 0.401, 0.449, 0.37)),
(-82, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Electrical T4/T5')) + _t('Drifter'), 0.107, 0.403, 0.403, 0.403)),
(-83, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Electrical T4/T5')) + _t('Sleeper'), 0.215, 0.435, 0.435, 0.435)),
(-84, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Electrical T4/T5')) + _t('All'), 0.25, 0.477, 0.502, 0.493)),
(-85, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Firestorm T1/T2')) + _t('Drones'), 0.461, 0.425, 0.541, 0.443)),
(-86, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Firestorm T1/T2')) + _t('Overmind'), 0.65, 0.469, 0.625, 0.633)),
(-87, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Firestorm T1/T2')) + _t('Seeker'), 0.084, 0, 0.084, 0.084)),
(-88, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Firestorm T1/T2')) + _t('Triglavian'), 0.534, 0.266, 0.484, 0.366)),
(-89, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Firestorm T1/T2')) + _t('Drifter'), 0.422, 0.282, 0.422, 0.422)),
(-90, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Firestorm T1/T2')) + _t('Sleeper'), 0.512, 0.402, 0.512, 0.512)),
(-91, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Firestorm T1/T2')) + _t('All'), 0.541, 0.365, 0.524, 0.504)),
(-92, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Firestorm T3 (Some T5 Rooms)')) + _t('Drones'), 0.461, 0.36, 0.541, 0.443)),
(-93, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Firestorm T3 (Some T5 Rooms)')) + _t('Overmind'), 0.65, 0.391, 0.625, 0.633)),
(-94, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Firestorm T3 (Some T5 Rooms)')) + _t('Seeker'), 0.084, 0, 0.084, 0.084)),
(-95, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Firestorm T3 (Some T5 Rooms)')) + _t('Triglavian'), 0.534, 0.161, 0.484, 0.366)),
(-96, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Firestorm T3 (Some T5 Rooms)')) + _t('Drifter'), 0.422, 0.196, 0.422, 0.422)),
(-97, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Firestorm T3 (Some T5 Rooms)')) + _t('Sleeper'), 0.512, 0.337, 0.512, 0.512)),
(-98, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Firestorm T3 (Some T5 Rooms)')) + _t('All'), 0.541, 0.284, 0.524, 0.504)),
(-99, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Firestorm T4/T5')) + _t('Drones'), 0.461, 0.305, 0.541, 0.443)),
(-100, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Firestorm T4/T5')) + _t('Overmind'), 0.65, 0.323, 0.625, 0.633)),
(-101, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Firestorm T4/T5')) + _t('Seeker'), 0.084, 0, 0.084, 0.084)),
(-102, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Firestorm T4/T5')) + _t('Triglavian'), 0.534, 0.082, 0.484, 0.366)),
(-103, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Firestorm T4/T5')) + _t('Drifter'), 0.422, 0.114, 0.422, 0.422)),
(-104, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Firestorm T4/T5')) + _t('Sleeper'), 0.512, 0.276, 0.512, 0.512)),
(-105, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Firestorm T4/T5')) + _t('All'), 0.541, 0.214, 0.524, 0.504)),
(-106, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Exotic T1/T2')) + _t('Drones'), 0.439, 0.522, 0.417, 0.435)),
(-107, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Exotic T1/T2')) + _t('Overmind'), 0.626, 0.576, 0.496, 0.624)),
(-108, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Exotic T1/T2')) + _t('Seeker'), 0.082, 0.082, 0, 0.082)),
(-109, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Exotic T1/T2')) + _t('Triglavian'), 0.477, 0.401, 0.284, 0.37)),
(-110, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Exotic T1/T2')) + _t('Drifter'), 0.403, 0.403, 0.267, 0.403)),
(-111, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Exotic T1/T2')) + _t('Sleeper'), 0.435, 0.435, 0.329, 0.435)),
(-112, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Exotic T1/T2')) + _t('All'), 0.507, 0.477, 0.373, 0.493)),
(-113, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Exotic T3 (Some T5 Rooms)')) + _t('Drones'), 0.439, 0.522, 0.351, 0.435)),
(-114, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Exotic T3 (Some T5 Rooms)')) + _t('Overmind'), 0.626, 0.576, 0.419, 0.624)),
(-115, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Exotic T3 (Some T5 Rooms)')) + _t('Seeker'), 0.082, 0.082, 0, 0.082)),
(-116, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Exotic T3 (Some T5 Rooms)')) + _t('Triglavian'), 0.477, 0.401, 0.176, 0.37)),
(-117, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Exotic T3 (Some T5 Rooms)')) + _t('Drifter'), 0.403, 0.403, 0.184, 0.403)),
(-118, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Exotic T3 (Some T5 Rooms)')) + _t('Sleeper'), 0.435, 0.435, 0.268, 0.435)),
(-119, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Exotic T3 (Some T5 Rooms)')) + _t('All'), 0.507, 0.477, 0.293, 0.493)),
(-120, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Exotic T4/T5')) + _t('Drones'), 0.439, 0.522, 0.293, 0.435)),
(-121, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Exotic T4/T5')) + _t('Overmind'), 0.626, 0.576, 0.344, 0.624)),
(-122, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Exotic T4/T5')) + _t('Seeker'), 0.082, 0.082, 0, 0.082)),
(-123, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Exotic T4/T5')) + _t('Triglavian'), 0.477, 0.401, 0.107, 0.37)),
(-124, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Exotic T4/T5')) + _t('Drifter'), 0.403, 0.403, 0.107, 0.403)),
(-125, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Exotic T4/T5')) + _t('Sleeper'), 0.435, 0.435, 0.215, 0.435)),
(-126, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Exotic T4/T5')) + _t('All'), 0.507, 0.477, 0.223, 0.493)),
(-127, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Gamma T1/T2')) + _t('Drones'), 0.449, 0.54, 0.549, 0.336)),
(-128, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Gamma T1/T2')) + _t('Overmind'), 0.6, 0.557, 0.601, 0.504)),
(-129, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Gamma T1/T2')) + _t('Seeker'), 0.085, 0.085, 0.085, 0)),
(-130, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Gamma T1/T2')) + _t('Triglavian'), 0.463, 0.392, 0.447, 0.193)),
(-131, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Gamma T1/T2')) + _t('Drifter'), 0.428, 0.428, 0.428, 0.287)),
(-132, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Gamma T1/T2')) + _t('Sleeper'), 0.435, 0.435, 0.435, 0.329)),
(-133, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Gamma T1/T2')) + _t('All'), 0.493, 0.472, 0.5, 0.362)),
(-134, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Gamma T3 (Some T5 Rooms)')) + _t('Drones'), 0.449, 0.54, 0.549, 0.264)),
(-135, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Gamma T3 (Some T5 Rooms)')) + _t('Overmind'), 0.6, 0.557, 0.601, 0.428)),
(-136, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Gamma T3 (Some T5 Rooms)')) + _t('Seeker'), 0.085, 0.085, 0.085, 0)),
(-137, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Gamma T3 (Some T5 Rooms)')) + _t('Triglavian'), 0.463, 0.392, 0.447, 0.071)),
(-138, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Gamma T3 (Some T5 Rooms)')) + _t('Drifter'), 0.428, 0.428, 0.428, 0.2)),
(-139, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Gamma T3 (Some T5 Rooms)')) + _t('Sleeper'), 0.435, 0.435, 0.435, 0.268)),
(-140, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Gamma T3 (Some T5 Rooms)')) + _t('All'), 0.493, 0.472, 0.5, 0.28)),
(-141, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Gamma T4/T5')) + _t('Drones'), 0.449, 0.54, 0.549, 0.197)),
(-142, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Gamma T4/T5')) + _t('Overmind'), 0.6, 0.557, 0.601, 0.356)),
(-143, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Gamma T4/T5')) + _t('Seeker'), 0.085, 0.085, 0.085, 0)),
(-144, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Gamma T4/T5')) + _t('Triglavian'), 0.463, 0.392, 0.447, 0.029)),
(-145, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Gamma T4/T5')) + _t('Drifter'), 0.428, 0.428, 0.428, 0.117)),
(-146, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Gamma T4/T5')) + _t('Sleeper'), 0.435, 0.435, 0.435, 0.215)),
(-147, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Gamma T4/T5')) + _t('All'), 0.493, 0.472, 0.5, 0.21))])
class TargetProfile:

View File

@@ -45,9 +45,9 @@ class ChangeDamagePattern(ContextMenuUnconditional):
for pattern in self.patterns:
container = self.items
for categoryName in pattern.hierarchy:
categoryName = _t('[' + categoryName + ']')[1:-1] if pattern.isBuiltin else categoryName
categoryName = _t(categoryName) if pattern.builtin else categoryName
container = container[1].setdefault(categoryName, (OrderedDict(), OrderedDict()))
shortName = _t(pattern.shortName) if pattern.isBuiltin else pattern.shortName
shortName = _t(pattern.shortName) if pattern.builtin else pattern.shortName
container[0][shortName] = pattern
return list(self.items[0].keys()) + list(self.items[1].keys())

View File

@@ -59,8 +59,10 @@ class TargetProfileAdder(ContextMenuUnconditional):
for profile in profiles:
container = items
for categoryName in profile.hierarchy:
categoryName = _t(categoryName) if profile.builtin else categoryName
container = container[1].setdefault(categoryName, (OrderedDict(), OrderedDict()))
container[0][profile.shortName] = profile
shortName = _t(profile.shortName) if profile.builtin else profile.shortName
container[0][shortName] = profile
# Category as menu item - expands further
msw = "wxMSW" in wx.PlatformInfo

View File

@@ -71,8 +71,10 @@ class TargetProfileSwitcher(ContextMenuUnconditional):
for profile in profiles:
container = items
for categoryName in profile.hierarchy:
categoryName = _t(categoryName) if profile.builtin else categoryName
container = container[1].setdefault(categoryName, (OrderedDict(), OrderedDict()))
container[0][profile.shortName] = profile
shortName = _t(profile.shortName) if profile.builtin else profile.shortName
container[0][shortName] = profile
# Category as menu item - expands further
msw = "wxMSW" in wx.PlatformInfo