Compare commits
75 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7af28b497c | ||
|
|
5cf555b8ce | ||
|
|
a25bb1aaa3 | ||
|
|
24a54c9cec | ||
|
|
c1302ce7ee | ||
|
|
e4ea9c2ab9 | ||
|
|
cca5781ca8 | ||
|
|
9760d2c4a5 | ||
|
|
4efa9a6961 | ||
|
|
b27d4bcbbd | ||
|
|
7bff295012 | ||
|
|
01249dfd9c | ||
|
|
0cc2668c1c | ||
|
|
dfad734a0a | ||
|
|
66c901a2b0 | ||
|
|
3673e7f39e | ||
|
|
124b35d108 | ||
|
|
5181e8e95a | ||
|
|
48cc4ce9d4 | ||
|
|
07ff43b576 | ||
|
|
70969cc9fb | ||
|
|
d23bf2fa4c | ||
|
|
04c8659922 | ||
|
|
5e3b92699b | ||
|
|
1755ab4c3f | ||
|
|
26ec741094 | ||
|
|
530f7510d5 | ||
|
|
37ab704cd7 | ||
|
|
683ad3802f | ||
|
|
c882351886 | ||
|
|
9d71215c52 | ||
|
|
d2a0605abe | ||
|
|
bee6652cc6 | ||
|
|
047ef75960 | ||
|
|
32e57f8138 | ||
|
|
e891804b64 | ||
|
|
7d42b89726 | ||
|
|
6561996327 | ||
|
|
0d2ad6eac2 | ||
|
|
3b2bfd01c5 | ||
|
|
a317dab9a8 | ||
|
|
db6d8b93e9 | ||
|
|
7d585c1a62 | ||
|
|
c45e84470e | ||
|
|
ab3b40e136 | ||
|
|
b566a8bfa6 | ||
|
|
ccb395d592 | ||
|
|
3d039724c9 | ||
|
|
d0e7e7eed5 | ||
|
|
a387bc8d09 | ||
|
|
94344bd432 | ||
|
|
a976fb33f0 | ||
|
|
f850fdf0d5 | ||
|
|
0fcbedba45 | ||
|
|
5707bddacd | ||
|
|
8ed9257dfa | ||
|
|
056ae590cf | ||
|
|
7733fd38c2 | ||
|
|
fef78c971f | ||
|
|
e52ceacdb9 | ||
|
|
85b2d7af8d | ||
|
|
3e658a31bb | ||
|
|
0d2a4d4d44 | ||
|
|
bc2cdcdea7 | ||
|
|
30ad554cc0 | ||
|
|
4a85fd5d1b | ||
|
|
4d8dbe74bd | ||
|
|
016f2b44ff | ||
|
|
676794baed | ||
|
|
ca488089fd | ||
|
|
96f9b9a719 | ||
|
|
508572e08b | ||
|
|
f91e0b2e23 | ||
|
|
2f02747b29 | ||
|
|
78b176a135 |
50
eos/db/migrations/upgrade42.py
Normal file
50
eos/db/migrations/upgrade42.py
Normal file
@@ -0,0 +1,50 @@
|
||||
"""
|
||||
Migration 42
|
||||
|
||||
- Resistance membrane tiericide
|
||||
"""
|
||||
|
||||
CONVERSIONS = {
|
||||
16391: ( # Compact Multispectrum Energized Membrane
|
||||
16389, # Experimental Energized Adaptive Nano Membrane I
|
||||
16387, # Limited Energized Adaptive Nano Membrane I
|
||||
16385, # Upgraded Energized Adaptive Nano Membrane I
|
||||
),
|
||||
16423: ( # Compact Layered Energized Membrane
|
||||
16421, # Experimental Energized Armor Layering Membrane I
|
||||
16419, # Limited Energized Armor Layering Membrane I
|
||||
16417, # Upgraded Energized Armor Layering Membrane I
|
||||
),
|
||||
16415: ( # Compact EM Energized Membrane
|
||||
16413, # Experimental Energized EM Membrane I
|
||||
16411, # Limited Energized EM Membrane I
|
||||
16409, # Upgraded Energized EM Membrane I
|
||||
),
|
||||
16407: ( # Compact Explosive Energized Membrane
|
||||
16405, # Experimental Energized Explosive Membrane I
|
||||
16403, # Limited Energized Explosive Membrane I
|
||||
16401, # Upgraded Energized Explosive Membrane I
|
||||
),
|
||||
16399: ( # Compact Kinetic Energized Membrane
|
||||
16397, # Experimental Energized Kinetic Membrane I
|
||||
16395, # Limited Energized Kinetic Membrane I
|
||||
16393, # Upgraded Energized Kinetic Membrane I
|
||||
),
|
||||
16431: ( # Compact Thermal Energized Membrane
|
||||
16429, # Experimental Energized Thermal Membrane I
|
||||
16427, # Limited Energized Thermal Membrane I
|
||||
16425, # Upgraded Energized Thermal Membrane I
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
def upgrade(saveddata_engine):
|
||||
# Convert modules
|
||||
for replacement_item, list in CONVERSIONS.items():
|
||||
for retired_item in list:
|
||||
saveddata_engine.execute('UPDATE "modules" SET "itemID" = ? WHERE "itemID" = ?',
|
||||
(replacement_item, retired_item))
|
||||
saveddata_engine.execute('UPDATE "modules" SET "baseItemID" = ? WHERE "baseItemID" = ?',
|
||||
(replacement_item, retired_item))
|
||||
saveddata_engine.execute('UPDATE "cargo" SET "itemID" = ? WHERE "itemID" = ?',
|
||||
(replacement_item, retired_item))
|
||||
26
eos/db/migrations/upgrade43.py
Normal file
26
eos/db/migrations/upgrade43.py
Normal file
@@ -0,0 +1,26 @@
|
||||
"""
|
||||
Migration 43
|
||||
|
||||
- Shield booster amplifier tiericide
|
||||
"""
|
||||
|
||||
CONVERSIONS = {
|
||||
16533: ( # Stalwart Restrained Shield Boost Amplifier
|
||||
16531, # 5a Prototype Shield Support I
|
||||
),
|
||||
16535: ( # Copasetic Compact Shield Boost Amplifier
|
||||
16529, # Ionic Field Accelerator I
|
||||
),
|
||||
}
|
||||
|
||||
|
||||
def upgrade(saveddata_engine):
|
||||
# Convert modules
|
||||
for replacement_item, list in CONVERSIONS.items():
|
||||
for retired_item in list:
|
||||
saveddata_engine.execute('UPDATE "modules" SET "itemID" = ? WHERE "itemID" = ?',
|
||||
(replacement_item, retired_item))
|
||||
saveddata_engine.execute('UPDATE "modules" SET "baseItemID" = ? WHERE "baseItemID" = ?',
|
||||
(replacement_item, retired_item))
|
||||
saveddata_engine.execute('UPDATE "cargo" SET "itemID" = ? WHERE "itemID" = ?',
|
||||
(replacement_item, retired_item))
|
||||
389
eos/effects.py
389
eos/effects.py
@@ -441,7 +441,7 @@ class Effect63(BaseEffect):
|
||||
|
||||
Used by:
|
||||
Modules from group: Armor Coating (184 of 184)
|
||||
Modules from group: Armor Plating Energized (187 of 187)
|
||||
Modules from group: Energized Armor Membrane (169 of 169)
|
||||
"""
|
||||
|
||||
type = 'passive'
|
||||
@@ -2447,7 +2447,7 @@ class Effect856(BaseEffect):
|
||||
@staticmethod
|
||||
def handler(fit, container, context, projectionRange, **kwargs):
|
||||
penalized = False if 'skill' in context or 'implant' in context else True
|
||||
fit.ship.boostItemAttr('baseWarpSpeed', container.getModifiedItemAttr('WarpSBonus'),
|
||||
fit.ship.boostItemAttr('warpSpeedMultiplier', container.getModifiedItemAttr('WarpSBonus'),
|
||||
stackingPenalties=penalized, **kwargs)
|
||||
|
||||
|
||||
@@ -6079,7 +6079,7 @@ class Effect2041(BaseEffect):
|
||||
|
||||
Used by:
|
||||
Modules from group: Armor Coating (184 of 184)
|
||||
Modules from group: Armor Plating Energized (187 of 187)
|
||||
Modules from group: Energized Armor Membrane (169 of 169)
|
||||
"""
|
||||
|
||||
type = 'passive'
|
||||
@@ -6256,7 +6256,7 @@ class Effect2109(BaseEffect):
|
||||
|
||||
@staticmethod
|
||||
def handler(fit, skill, context, projectionRange, **kwargs):
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == 'Armor Plating Energized',
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == 'Energized Armor Membrane',
|
||||
'emDamageResistanceBonus', skill.getModifiedItemAttr('hardeningBonus') * skill.level, **kwargs)
|
||||
|
||||
|
||||
@@ -6272,7 +6272,7 @@ class Effect2110(BaseEffect):
|
||||
|
||||
@staticmethod
|
||||
def handler(fit, skill, context, projectionRange, **kwargs):
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == 'Armor Plating Energized',
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == 'Energized Armor Membrane',
|
||||
'explosiveDamageResistanceBonus',
|
||||
skill.getModifiedItemAttr('hardeningBonus') * skill.level, **kwargs)
|
||||
|
||||
@@ -6289,7 +6289,7 @@ class Effect2111(BaseEffect):
|
||||
|
||||
@staticmethod
|
||||
def handler(fit, skill, context, projectionRange, **kwargs):
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == 'Armor Plating Energized',
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == 'Energized Armor Membrane',
|
||||
'kineticDamageResistanceBonus',
|
||||
skill.getModifiedItemAttr('hardeningBonus') * skill.level, **kwargs)
|
||||
|
||||
@@ -6306,7 +6306,7 @@ class Effect2112(BaseEffect):
|
||||
|
||||
@staticmethod
|
||||
def handler(fit, skill, context, projectionRange, **kwargs):
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == 'Armor Plating Energized',
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == 'Energized Armor Membrane',
|
||||
'thermalDamageResistanceBonus',
|
||||
skill.getModifiedItemAttr('hardeningBonus') * skill.level, **kwargs)
|
||||
|
||||
@@ -8691,8 +8691,8 @@ class Effect2872(BaseEffect):
|
||||
|
||||
@staticmethod
|
||||
def handler(fit, container, context, projectionRange, **kwargs):
|
||||
fit.modules.filteredChargeMultiply(lambda mod: mod.charge.requiresSkill('Defender Missiles'),
|
||||
'maxVelocity', container.getModifiedItemAttr('missileVelocityBonus'), **kwargs)
|
||||
fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill('Defender Missiles'),
|
||||
'maxVelocity', container.getModifiedItemAttr('missileVelocityBonus'), **kwargs)
|
||||
|
||||
|
||||
class Effect2881(BaseEffect):
|
||||
@@ -12389,6 +12389,8 @@ class Effect3992(BaseEffect):
|
||||
Celestials named like: Class Pulsar Effects (6 of 6)
|
||||
Celestial: Republic Stellar Observatory
|
||||
Celestial: State Stellar Observatory
|
||||
Celestial: Strong Metaliminal Gamma Ray Storm
|
||||
Celestial: Weak Metaliminal Gamma Ray Storm
|
||||
"""
|
||||
|
||||
runTime = 'early'
|
||||
@@ -12424,6 +12426,8 @@ class Effect3995(BaseEffect):
|
||||
Used by:
|
||||
Celestials named like: Class Pulsar Effects (6 of 6)
|
||||
Celestials named like: Class Wolf Rayet Effects (6 of 6)
|
||||
Celestial: Strong Metaliminal Gamma Ray Storm
|
||||
Celestial: Weak Metaliminal Gamma Ray Storm
|
||||
"""
|
||||
|
||||
runTime = 'early'
|
||||
@@ -12442,6 +12446,8 @@ class Effect3996(BaseEffect):
|
||||
Used by:
|
||||
Celestials named like: Class Pulsar Effects (6 of 6)
|
||||
Celestials named like: Incursion Effect (2 of 2)
|
||||
Celestial: Strong Metaliminal Electrical Storm
|
||||
Celestial: Weak Metaliminal Electrical Storm
|
||||
"""
|
||||
|
||||
runTime = 'early'
|
||||
@@ -12460,6 +12466,8 @@ class Effect3997(BaseEffect):
|
||||
Used by:
|
||||
Celestials named like: Class Pulsar Effects (6 of 6)
|
||||
Celestials named like: Incursion Effect (2 of 2)
|
||||
Celestial: Strong Metaliminal Gamma Ray Storm
|
||||
Celestial: Weak Metaliminal Gamma Ray Storm
|
||||
"""
|
||||
|
||||
runTime = 'early'
|
||||
@@ -12479,6 +12487,8 @@ class Effect3998(BaseEffect):
|
||||
Used by:
|
||||
Celestials named like: Class Pulsar Effects (6 of 6)
|
||||
Celestials named like: Incursion Effect (2 of 2)
|
||||
Celestial: Strong Metaliminal Exotic Matter Storm
|
||||
Celestial: Weak Metaliminal Exotic Matter Storm
|
||||
"""
|
||||
|
||||
runTime = 'early'
|
||||
@@ -12498,6 +12508,8 @@ class Effect3999(BaseEffect):
|
||||
Used by:
|
||||
Celestials named like: Class Pulsar Effects (6 of 6)
|
||||
Celestials named like: Incursion Effect (2 of 2)
|
||||
Celestial: Strong Metaliminal Plasma Firestorm
|
||||
Celestial: Weak Metaliminal Plasma Firestorm
|
||||
"""
|
||||
|
||||
runTime = 'early'
|
||||
@@ -12551,6 +12563,8 @@ class Effect4016(BaseEffect):
|
||||
|
||||
Used by:
|
||||
Celestials named like: Class Magnetar Effects (6 of 6)
|
||||
Celestial: Strong Metaliminal Plasma Firestorm
|
||||
Celestial: Weak Metaliminal Plasma Firestorm
|
||||
"""
|
||||
|
||||
runTime = 'early'
|
||||
@@ -12569,6 +12583,8 @@ class Effect4017(BaseEffect):
|
||||
|
||||
Used by:
|
||||
Celestials named like: Class Magnetar Effects (6 of 6)
|
||||
Celestial: Strong Metaliminal Plasma Firestorm
|
||||
Celestial: Weak Metaliminal Plasma Firestorm
|
||||
"""
|
||||
|
||||
runTime = 'early'
|
||||
@@ -12587,6 +12603,8 @@ class Effect4018(BaseEffect):
|
||||
|
||||
Used by:
|
||||
Celestials named like: Class Magnetar Effects (6 of 6)
|
||||
Celestial: Strong Metaliminal Plasma Firestorm
|
||||
Celestial: Weak Metaliminal Plasma Firestorm
|
||||
"""
|
||||
|
||||
runTime = 'early'
|
||||
@@ -12605,6 +12623,8 @@ class Effect4019(BaseEffect):
|
||||
|
||||
Used by:
|
||||
Celestials named like: Class Magnetar Effects (6 of 6)
|
||||
Celestial: Strong Metaliminal Plasma Firestorm
|
||||
Celestial: Weak Metaliminal Plasma Firestorm
|
||||
"""
|
||||
|
||||
runTime = 'early'
|
||||
@@ -12623,6 +12643,8 @@ class Effect4020(BaseEffect):
|
||||
|
||||
Used by:
|
||||
Celestials named like: Class Magnetar Effects (6 of 6)
|
||||
Celestial: Strong Metaliminal Plasma Firestorm
|
||||
Celestial: Weak Metaliminal Plasma Firestorm
|
||||
"""
|
||||
|
||||
runTime = 'early'
|
||||
@@ -12641,6 +12663,8 @@ class Effect4021(BaseEffect):
|
||||
|
||||
Used by:
|
||||
Celestials named like: Class Magnetar Effects (6 of 6)
|
||||
Celestial: Strong Metaliminal Plasma Firestorm
|
||||
Celestial: Weak Metaliminal Plasma Firestorm
|
||||
"""
|
||||
|
||||
runTime = 'early'
|
||||
@@ -12659,6 +12683,8 @@ class Effect4022(BaseEffect):
|
||||
|
||||
Used by:
|
||||
Celestials named like: Class Magnetar Effects (6 of 6)
|
||||
Celestial: Strong Metaliminal Plasma Firestorm
|
||||
Celestial: Weak Metaliminal Plasma Firestorm
|
||||
"""
|
||||
|
||||
runTime = 'early'
|
||||
@@ -13183,6 +13209,8 @@ class Effect4088(BaseEffect):
|
||||
Used by:
|
||||
Celestials named like: Class Cataclysmic Variable Effects (6 of 6)
|
||||
Celestial: Dazh Liminality Locus
|
||||
Celestial: Strong Metaliminal Gamma Ray Storm
|
||||
Celestial: Weak Metaliminal Gamma Ray Storm
|
||||
"""
|
||||
|
||||
runTime = 'early'
|
||||
@@ -13191,8 +13219,10 @@ class Effect4088(BaseEffect):
|
||||
@staticmethod
|
||||
def handler(fit, module, context, projectionRange, **kwargs):
|
||||
fit.modules.filteredItemMultiply(
|
||||
lambda mod: mod.item.requiresSkill('Remote Armor Repair Systems') or mod.item.requiresSkill('Capital Remote Armor Repair Systems'),
|
||||
'armorDamageAmount', module.getModifiedItemAttr('armorDamageAmountMultiplierRemote'), stackingPenalties=True, **kwargs)
|
||||
lambda mod: mod.item.requiresSkill('Remote Armor Repair Systems') or
|
||||
mod.item.requiresSkill('Capital Remote Armor Repair Systems'),
|
||||
'armorDamageAmount', module.getModifiedItemAttr('armorDamageAmountMultiplierRemote'),
|
||||
stackingPenalties=True, penaltyGroup='postMul', **kwargs)
|
||||
|
||||
|
||||
class Effect4089(BaseEffect):
|
||||
@@ -13202,6 +13232,8 @@ class Effect4089(BaseEffect):
|
||||
Used by:
|
||||
Celestials named like: Class Cataclysmic Variable Effects (6 of 6)
|
||||
Celestial: Dazh Liminality Locus
|
||||
Celestial: Strong Metaliminal Gamma Ray Storm
|
||||
Celestial: Weak Metaliminal Gamma Ray Storm
|
||||
"""
|
||||
|
||||
runTime = 'early'
|
||||
@@ -13210,8 +13242,10 @@ class Effect4089(BaseEffect):
|
||||
@staticmethod
|
||||
def handler(fit, module, context, projectionRange, **kwargs):
|
||||
fit.modules.filteredItemMultiply(
|
||||
lambda mod: mod.item.requiresSkill('Shield Emission Systems') or mod.item.requiresSkill('Capital Shield Emission Systems'),
|
||||
'shieldBonus', module.getModifiedItemAttr('shieldBonusMultiplierRemote'), stackingPenalties=True, penaltyGroup='postMul', **kwargs)
|
||||
lambda mod: mod.item.requiresSkill('Shield Emission Systems') or
|
||||
mod.item.requiresSkill('Capital Shield Emission Systems'),
|
||||
'shieldBonus', module.getModifiedItemAttr('shieldBonusMultiplierRemote'),
|
||||
stackingPenalties=True, penaltyGroup='postMul', **kwargs)
|
||||
|
||||
|
||||
class Effect4090(BaseEffect):
|
||||
@@ -13220,6 +13254,8 @@ class Effect4090(BaseEffect):
|
||||
|
||||
Used by:
|
||||
Celestials named like: Class Cataclysmic Variable Effects (6 of 6)
|
||||
Celestial: Strong Metaliminal Gamma Ray Storm
|
||||
Celestial: Weak Metaliminal Gamma Ray Storm
|
||||
"""
|
||||
|
||||
runTime = 'early'
|
||||
@@ -13237,6 +13273,8 @@ class Effect4091(BaseEffect):
|
||||
Used by:
|
||||
Celestials named like: Class Cataclysmic Variable Effects (6 of 6)
|
||||
Celestials named like: Class Pulsar Effects (6 of 6)
|
||||
Celestial: Strong Metaliminal Electrical Storm
|
||||
Celestial: Weak Metaliminal Electrical Storm
|
||||
"""
|
||||
|
||||
runTime = 'early'
|
||||
@@ -13355,6 +13393,8 @@ class Effect4135(BaseEffect):
|
||||
|
||||
Used by:
|
||||
Celestials named like: Class Wolf Rayet Effects (6 of 6)
|
||||
Celestial: Strong Metaliminal Electrical Storm
|
||||
Celestial: Weak Metaliminal Electrical Storm
|
||||
"""
|
||||
|
||||
runTime = 'early'
|
||||
@@ -13372,6 +13412,8 @@ class Effect4136(BaseEffect):
|
||||
|
||||
Used by:
|
||||
Celestials named like: Class Wolf Rayet Effects (6 of 6)
|
||||
Celestial: Strong Metaliminal Gamma Ray Storm
|
||||
Celestial: Weak Metaliminal Gamma Ray Storm
|
||||
"""
|
||||
|
||||
runTime = 'early'
|
||||
@@ -13390,6 +13432,8 @@ class Effect4137(BaseEffect):
|
||||
|
||||
Used by:
|
||||
Celestials named like: Class Wolf Rayet Effects (6 of 6)
|
||||
Celestial: Strong Metaliminal Exotic Matter Storm
|
||||
Celestial: Weak Metaliminal Exotic Matter Storm
|
||||
"""
|
||||
|
||||
runTime = 'early'
|
||||
@@ -13408,6 +13452,8 @@ class Effect4138(BaseEffect):
|
||||
|
||||
Used by:
|
||||
Celestials named like: Class Wolf Rayet Effects (6 of 6)
|
||||
Celestial: Strong Metaliminal Plasma Firestorm
|
||||
Celestial: Weak Metaliminal Plasma Firestorm
|
||||
"""
|
||||
|
||||
runTime = 'early'
|
||||
@@ -16432,6 +16478,8 @@ class Effect4906(BaseEffect):
|
||||
|
||||
Used by:
|
||||
Celestials named like: Class Magnetar Effects (6 of 6)
|
||||
Celestial: Strong Metaliminal Plasma Firestorm
|
||||
Celestial: Weak Metaliminal Plasma Firestorm
|
||||
"""
|
||||
|
||||
runTime = 'early'
|
||||
@@ -16439,9 +16487,9 @@ class Effect4906(BaseEffect):
|
||||
|
||||
@staticmethod
|
||||
def handler(fit, beacon, context, projectionRange, **kwargs):
|
||||
fit.drones.filteredItemMultiply(lambda drone: drone.item.requiresSkill('Fighters'),
|
||||
'damageMultiplier', beacon.getModifiedItemAttr('damageMultiplierMultiplier'),
|
||||
stackingPenalties=True, penaltyGroup='postMul', **kwargs)
|
||||
fit.fighters.filteredItemMultiply(lambda drone: drone.item.requiresSkill('Fighters'),
|
||||
'damageMultiplier', beacon.getModifiedItemAttr('damageMultiplierMultiplier'),
|
||||
stackingPenalties=True, penaltyGroup='postMul', **kwargs)
|
||||
|
||||
|
||||
class Effect4911(BaseEffect):
|
||||
@@ -23067,6 +23115,8 @@ class Effect5913(BaseEffect):
|
||||
Celestials named like: Class Wolf Rayet Effects (6 of 6)
|
||||
Celestial: Federal Stellar Observatory
|
||||
Celestial: Imperial Stellar Observatory
|
||||
Celestial: Strong Metaliminal Plasma Firestorm
|
||||
Celestial: Weak Metaliminal Plasma Firestorm
|
||||
"""
|
||||
|
||||
runTime = 'early'
|
||||
@@ -23195,6 +23245,8 @@ class Effect5920(BaseEffect):
|
||||
|
||||
Used by:
|
||||
Celestials named like: Class Magnetar Effects (6 of 6)
|
||||
Celestial: Strong Metaliminal Plasma Firestorm
|
||||
Celestial: Weak Metaliminal Plasma Firestorm
|
||||
"""
|
||||
|
||||
runTime = 'early'
|
||||
@@ -23203,7 +23255,8 @@ class Effect5920(BaseEffect):
|
||||
@staticmethod
|
||||
def handler(fit, beacon, context, projectionRange, **kwargs):
|
||||
fit.modules.filteredChargeMultiply(lambda mod: mod.charge.requiresSkill('Missile Launcher Operation'),
|
||||
'aoeCloudSize', beacon.getModifiedItemAttr('aoeCloudSizeMultiplier'), **kwargs)
|
||||
'aoeCloudSize', beacon.getModifiedItemAttr('aoeCloudSizeMultiplier'),
|
||||
stackingPenalties=True, penaltyGroup='postMul', **kwargs)
|
||||
|
||||
|
||||
class Effect5921(BaseEffect):
|
||||
@@ -23345,6 +23398,8 @@ class Effect5929(BaseEffect):
|
||||
|
||||
Used by:
|
||||
Celestials named like: Class Magnetar Effects (6 of 6)
|
||||
Celestial: Strong Metaliminal Plasma Firestorm
|
||||
Celestial: Weak Metaliminal Plasma Firestorm
|
||||
"""
|
||||
|
||||
runTime = 'early'
|
||||
@@ -26852,7 +26907,7 @@ class Effect6400(BaseEffect):
|
||||
|
||||
@staticmethod
|
||||
def handler(fit, src, context, projectionRange, **kwargs):
|
||||
groups = ('Structure Warp Scrambler', 'Structure Disruption Battery', 'Structure Stasis Webifier')
|
||||
groups = ('Structure Warp Scrambler', 'Structure ECM Battery', 'Structure Stasis Webifier')
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name in groups,
|
||||
'capacitorNeed', src.getModifiedItemAttr('capNeedBonus'),
|
||||
skill='Structure Electronic Systems', **kwargs)
|
||||
@@ -26967,15 +27022,12 @@ class Effect6406(BaseEffect):
|
||||
@staticmethod
|
||||
def handler(fit, src, context, projectionRange, **kwargs):
|
||||
groups = ('Structure ECM Battery', 'Structure Disruption Battery')
|
||||
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name in groups,
|
||||
'falloff', src.getModifiedItemAttr('structureRigEwarFalloffBonus'),
|
||||
stackingPenalties=True, **kwargs)
|
||||
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name in groups,
|
||||
'maxRange', src.getModifiedItemAttr('structureRigEwarOptimalBonus'),
|
||||
stackingPenalties=True, **kwargs)
|
||||
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name in groups,
|
||||
'falloffEffectiveness', src.getModifiedItemAttr('structureRigEwarFalloffBonus'),
|
||||
stackingPenalties=True, **kwargs)
|
||||
@@ -26996,8 +27048,7 @@ class Effect6407(BaseEffect):
|
||||
def handler(fit, src, context, projectionRange, **kwargs):
|
||||
groups = ('Structure ECM Battery', 'Structure Disruption Battery')
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name in groups,
|
||||
'capacitorNeed', src.getModifiedItemAttr('structureRigEwarCapUseBonus'),
|
||||
stackingPenalties=True, **kwargs)
|
||||
'capacitorNeed', src.getModifiedItemAttr('structureRigEwarCapUseBonus'), **kwargs)
|
||||
|
||||
|
||||
class Effect6408(BaseEffect):
|
||||
@@ -27102,8 +27153,7 @@ class Effect6413(BaseEffect):
|
||||
@staticmethod
|
||||
def handler(fit, src, context, projectionRange, **kwargs):
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == 'Structure Area Denial Module',
|
||||
'capacitorNeed', src.getModifiedItemAttr('structureRigPDCapUseBonus'),
|
||||
stackingPenalties=True, **kwargs)
|
||||
'capacitorNeed', src.getModifiedItemAttr('structureRigPDCapUseBonus'), **kwargs)
|
||||
|
||||
|
||||
class Effect6417(BaseEffect):
|
||||
@@ -31486,7 +31536,9 @@ class Effect6730(BaseEffect):
|
||||
speedBoost = module.getModifiedItemAttr('speedFactor')
|
||||
mass = fit.ship.getModifiedItemAttr('mass')
|
||||
thrust = module.getModifiedItemAttr('speedBoostFactor')
|
||||
fit.ship.boostItemAttr('maxVelocity', speedBoost * thrust / mass, **kwargs)
|
||||
# It is actually a postMul, see black hole speed interactions
|
||||
fit.ship.boostItemAttr('maxVelocity', speedBoost * thrust / mass,
|
||||
stackingPenalties=True, penaltyGroup='postMul', **kwargs)
|
||||
fit.ship.boostItemAttr('signatureRadius', module.getModifiedItemAttr('signatureRadiusBonus'),
|
||||
stackingPenalties=True, **kwargs)
|
||||
|
||||
@@ -31508,7 +31560,9 @@ class Effect6731(BaseEffect):
|
||||
speedBoost = module.getModifiedItemAttr('speedFactor')
|
||||
mass = fit.ship.getModifiedItemAttr('mass')
|
||||
thrust = module.getModifiedItemAttr('speedBoostFactor')
|
||||
fit.ship.boostItemAttr('maxVelocity', speedBoost * thrust / mass, **kwargs)
|
||||
# It is actually a postMul, see black hole speed interactions
|
||||
fit.ship.boostItemAttr('maxVelocity', speedBoost * thrust / mass,
|
||||
stackingPenalties=True, penaltyGroup='postMul', **kwargs)
|
||||
|
||||
|
||||
class Effect6732(BaseEffect):
|
||||
@@ -35059,7 +35113,7 @@ class Effect7086(BaseEffect):
|
||||
shipbonusPCTTrackingPC2
|
||||
|
||||
Used by:
|
||||
Variations of ship: Vedmak (2 of 2)
|
||||
Ship: Ikitursa
|
||||
Ship: Tiamat
|
||||
"""
|
||||
|
||||
@@ -35207,6 +35261,39 @@ class Effect7097(BaseEffect):
|
||||
'damageMultiplier', skill.getModifiedItemAttr('damageMultiplierBonus') * skill.level, **kwargs)
|
||||
|
||||
|
||||
class Effect7098(BaseEffect):
|
||||
"""
|
||||
structureConversionRigBasicBonuses
|
||||
|
||||
Used by:
|
||||
Structure Modules from group: Outpost Conversion Rigs (104 of 104)
|
||||
"""
|
||||
|
||||
type = 'passive'
|
||||
|
||||
@staticmethod
|
||||
def handler(fit, src, context, projectionRange, **kwargs):
|
||||
for attr in ('hp', 'armorHP', 'shieldCapacity', 'capacitorCapacity'):
|
||||
fit.ship.boostItemAttr(attr, src.getModifiedItemAttr('conversionRigHPCapBonus'), **kwargs)
|
||||
fit.ship.boostItemAttr('maxTargetRange', src.getModifiedItemAttr('structureRigMaxTargetRangeBonus'),
|
||||
stackingPenalties=True, **kwargs)
|
||||
fit.ship.boostItemAttr('scanResolution', src.getModifiedItemAttr('structureRigScanResBonus'),
|
||||
stackingPenalties=True, **kwargs)
|
||||
fit.ship.increaseItemAttr('maxLockedTargets', src.getModifiedItemAttr('structureRigMaxTargetBonus'), **kwargs)
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == 'Structure Area Denial Module',
|
||||
'capacitorNeed', src.getModifiedItemAttr('structureRigPDCapUseBonus'), **kwargs)
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == 'Structure Area Denial Module',
|
||||
'empFieldRange', src.getModifiedItemAttr('structureRigPDRangeBonus'), **kwargs)
|
||||
for attr in ('structureRigMaxTargetBonus', 'structureRigMaxTargetRangeBonus', 'structureRigScanResBonus'):
|
||||
fit.modules.filteredItemForce(
|
||||
lambda mod: mod.item.group.name == 'Structure Combat Rig L - Max Targets and Sensor Boosting',
|
||||
attr, src.getModifiedItemAttr('constantZero'), **kwargs)
|
||||
for attr in ('structureRigPDCapUseBonus', 'structureRigPDRangeBonus'):
|
||||
fit.modules.filteredItemForce(
|
||||
lambda mod: mod.item.group.name == 'Structure Combat Rig L - Point Defense Battery Application and Projection',
|
||||
attr, src.getModifiedItemAttr('constantZero'), **kwargs)
|
||||
|
||||
|
||||
class Effect7111(BaseEffect):
|
||||
"""
|
||||
systemSmallPrecursorTurretDamage
|
||||
@@ -35766,6 +35853,8 @@ class Effect7193(BaseEffect):
|
||||
Used by:
|
||||
Celestials named like: Stellar Observatory (4 of 4)
|
||||
Celestials named like: Triglavian Invasion System Effects (3 of 3)
|
||||
Celestial: Strong Metaliminal Exotic Matter Storm
|
||||
Celestial: Weak Metaliminal Exotic Matter Storm
|
||||
"""
|
||||
|
||||
runTime = 'early'
|
||||
@@ -36080,10 +36169,12 @@ class Effect7234(BaseEffect):
|
||||
|
||||
class Effect7237(BaseEffect):
|
||||
"""
|
||||
systemWarpSpeed
|
||||
systemWarpSpeedBonus
|
||||
|
||||
Used by:
|
||||
Celestial: Dazh Liminality Locus
|
||||
Celestial: Strong Metaliminal Exotic Matter Storm
|
||||
Celestial: Weak Metaliminal Exotic Matter Storm
|
||||
"""
|
||||
|
||||
runTime = 'early'
|
||||
@@ -36261,6 +36352,22 @@ class Effect8018(BaseEffect):
|
||||
'duration', implant.getModifiedItemAttr('remoteRepDurationBonus'), **kwargs)
|
||||
|
||||
|
||||
class Effect8020(BaseEffect):
|
||||
"""
|
||||
systemWarpSpeedAddition
|
||||
|
||||
Used by:
|
||||
Celestial: System-Wide Warp Speed Bonus
|
||||
"""
|
||||
|
||||
runTime = 'early'
|
||||
type = ('projected', 'passive')
|
||||
|
||||
@staticmethod
|
||||
def handler(fit, src, context, projectionRange, **kwargs):
|
||||
fit.ship.increaseItemAttr('warpSpeedMultiplier', src.getModifiedItemAttr('warpSpeedAdd'), **kwargs)
|
||||
|
||||
|
||||
class Effect8021(BaseEffect):
|
||||
"""
|
||||
hydraSetBonus
|
||||
@@ -36850,3 +36957,227 @@ class Effect8073(BaseEffect):
|
||||
def handler(fit, ship, context, projectionRange, **kwargs):
|
||||
fit.ship.boostItemAttr('shieldCapacity', ship.getModifiedItemAttr('eliteBonusCommandShips1'),
|
||||
skill='Command Ships', **kwargs)
|
||||
|
||||
|
||||
class Effect8074(BaseEffect):
|
||||
"""
|
||||
shipBonusPC2maxRange
|
||||
|
||||
Used by:
|
||||
Ship: Vedmak
|
||||
"""
|
||||
|
||||
type = 'passive'
|
||||
|
||||
@staticmethod
|
||||
def handler(fit, ship, context, projectionRange, **kwargs):
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill('Medium Precursor Weapon'),
|
||||
'maxRange', ship.getModifiedItemAttr('shipBonusPC2'), skill='Precursor Cruiser', **kwargs)
|
||||
|
||||
|
||||
class Effect8075(BaseEffect):
|
||||
"""
|
||||
systemHullEmResistance
|
||||
|
||||
Used by:
|
||||
Celestial: Strong Metaliminal Electrical Storm
|
||||
Celestial: Weak Metaliminal Electrical Storm
|
||||
"""
|
||||
|
||||
runTime = 'early'
|
||||
type = ('projected', 'passive')
|
||||
|
||||
@staticmethod
|
||||
def handler(fit, beacon, context, projectionRange, **kwargs):
|
||||
fit.ship.boostItemAttr('emDamageResonance', beacon.getModifiedItemAttr('emDamageResistanceBonus'),
|
||||
stackingPenalties=True, **kwargs)
|
||||
|
||||
|
||||
class Effect8076(BaseEffect):
|
||||
"""
|
||||
systemHullThermalResistance
|
||||
|
||||
Used by:
|
||||
Celestial: Strong Metaliminal Plasma Firestorm
|
||||
Celestial: Weak Metaliminal Plasma Firestorm
|
||||
"""
|
||||
|
||||
runTime = 'early'
|
||||
type = ('projected', 'passive')
|
||||
|
||||
@staticmethod
|
||||
def handler(fit, beacon, context, projectionRange, **kwargs):
|
||||
fit.ship.boostItemAttr('thermalDamageResonance', beacon.getModifiedItemAttr('thermalDamageResistanceBonus'),
|
||||
stackingPenalties=True, **kwargs)
|
||||
|
||||
|
||||
class Effect8077(BaseEffect):
|
||||
"""
|
||||
systemHullKineticResistance
|
||||
|
||||
Used by:
|
||||
Celestial: Strong Metaliminal Exotic Matter Storm
|
||||
Celestial: Weak Metaliminal Exotic Matter Storm
|
||||
"""
|
||||
|
||||
runTime = 'early'
|
||||
type = ('projected', 'passive')
|
||||
|
||||
@staticmethod
|
||||
def handler(fit, container, context, projectionRange, **kwargs):
|
||||
fit.ship.boostItemAttr('kineticDamageResonance', container.getModifiedItemAttr('kineticDamageResistanceBonus'),
|
||||
stackingPenalties=True, **kwargs)
|
||||
|
||||
|
||||
class Effect8078(BaseEffect):
|
||||
"""
|
||||
systemHullExplosiveResistance
|
||||
|
||||
Used by:
|
||||
Celestial: Strong Metaliminal Gamma Ray Storm
|
||||
Celestial: Weak Metaliminal Gamma Ray Storm
|
||||
"""
|
||||
|
||||
runTime = 'early'
|
||||
type = ('projected', 'passive')
|
||||
|
||||
@staticmethod
|
||||
def handler(fit, container, context, projectionRange, **kwargs):
|
||||
fit.ship.boostItemAttr('explosiveDamageResonance', container.getModifiedItemAttr('explosiveDamageResistanceBonus'),
|
||||
stackingPenalties=True, **kwargs)
|
||||
|
||||
|
||||
class Effect8079(BaseEffect):
|
||||
"""
|
||||
systemVirusCoherenceBonus
|
||||
|
||||
Used by:
|
||||
Celestial: Strong Metaliminal Electrical Storm
|
||||
Celestial: Weak Metaliminal Electrical Storm
|
||||
"""
|
||||
|
||||
runTime = 'early'
|
||||
type = ('projected', 'passive')
|
||||
|
||||
@staticmethod
|
||||
def handler(fit, container, context, projectionRange, **kwargs):
|
||||
fit.modules.filteredItemIncrease(lambda mod: mod.item.requiresSkill('Archaeology'),
|
||||
'virusCoherence', container.getModifiedItemAttr('virusCoherenceBonus'), **kwargs)
|
||||
fit.modules.filteredItemIncrease(lambda mod: mod.item.requiresSkill('Hacking'),
|
||||
'virusCoherence', container.getModifiedItemAttr('virusCoherenceBonus'), **kwargs)
|
||||
|
||||
|
||||
class Effect8080(BaseEffect):
|
||||
"""
|
||||
systemProbeStrengthBonus
|
||||
|
||||
Used by:
|
||||
Celestial: Strong Metaliminal Electrical Storm
|
||||
Celestial: Weak Metaliminal Electrical Storm
|
||||
"""
|
||||
|
||||
runTime = 'early'
|
||||
type = ('projected', 'passive')
|
||||
|
||||
@staticmethod
|
||||
def handler(fit, container, context, projectionRange, **kwargs):
|
||||
fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill('Astrometrics'),
|
||||
'baseSensorStrength', container.getModifiedItemAttr('scanProbeStrengthBonus'),
|
||||
stackingPenalties=True, **kwargs)
|
||||
|
||||
|
||||
class Effect8081(BaseEffect):
|
||||
"""
|
||||
systemDisallowCloaking
|
||||
|
||||
Used by:
|
||||
Celestial: Strong Metaliminal Electrical Storm
|
||||
Celestial: Weak Metaliminal Electrical Storm
|
||||
"""
|
||||
|
||||
runTime = 'early'
|
||||
type = ('projected', 'passive')
|
||||
|
||||
@staticmethod
|
||||
def handler(fit, src, context, projectionRange, **kwargs):
|
||||
fit.ship.increaseItemAttr('disallowCloaking', src.getModifiedItemAttr('disallowCloaking'), **kwargs)
|
||||
|
||||
|
||||
class Effect8082(BaseEffect):
|
||||
"""
|
||||
systemScanResolutionBonus
|
||||
|
||||
Used by:
|
||||
Celestial: Strong Metaliminal Exotic Matter Storm
|
||||
Celestial: Weak Metaliminal Exotic Matter Storm
|
||||
"""
|
||||
|
||||
runTime = 'early'
|
||||
type = ('projected', 'passive')
|
||||
|
||||
@staticmethod
|
||||
def handler(fit, container, context, projectionRange, **kwargs):
|
||||
fit.ship.boostItemAttr('scanResolution', container.getModifiedItemAttr('scanResolutionBonus'),
|
||||
stackingPenalties=True, **kwargs)
|
||||
|
||||
|
||||
class Effect8083(BaseEffect):
|
||||
"""
|
||||
systemArmorRepairerDurationBonus
|
||||
|
||||
Used by:
|
||||
Celestial: Strong Metaliminal Exotic Matter Storm
|
||||
Celestial: Weak Metaliminal Exotic Matter Storm
|
||||
"""
|
||||
|
||||
runTime = 'early'
|
||||
type = ('projected', 'passive')
|
||||
|
||||
@staticmethod
|
||||
def handler(fit, container, context, projectionRange, **kwargs):
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill('Repair Systems') or
|
||||
mod.item.requiresSkill('Capital Repair Systems'),
|
||||
'duration', container.getModifiedItemAttr('armorRepairDurationBonus'), **kwargs)
|
||||
|
||||
|
||||
class Effect8084(BaseEffect):
|
||||
"""
|
||||
systemShieldBoosterDurationBonus
|
||||
|
||||
Used by:
|
||||
Celestial: Strong Metaliminal Exotic Matter Storm
|
||||
Celestial: Weak Metaliminal Exotic Matter Storm
|
||||
"""
|
||||
|
||||
runTime = 'early'
|
||||
type = ('projected', 'passive')
|
||||
|
||||
@staticmethod
|
||||
def handler(fit, container, context, projectionRange, **kwargs):
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill('Shield Operation') or
|
||||
mod.item.requiresSkill('Capital Shield Operation'),
|
||||
'duration', container.getModifiedItemAttr('shieldBoosterDurationBonus'), **kwargs)
|
||||
|
||||
|
||||
class Effect8085(BaseEffect):
|
||||
"""
|
||||
systemFighterExplosionRadius
|
||||
|
||||
Used by:
|
||||
Celestial: Strong Metaliminal Plasma Firestorm
|
||||
Celestial: Weak Metaliminal Plasma Firestorm
|
||||
"""
|
||||
|
||||
runTime = 'early'
|
||||
type = ('projected', 'passive')
|
||||
|
||||
@staticmethod
|
||||
def handler(fit, container, context, projectionRange, **kwargs):
|
||||
fit.fighters.filteredItemMultiply(
|
||||
lambda mod: mod.item.requiresSkill('Fighters'),
|
||||
'fighterAbilityAttackMissileExplosionRadius', container.getModifiedItemAttr('aoeCloudSizeMultiplier'),
|
||||
stackingPenalties=True, penaltyGroup='postMul', **kwargs)
|
||||
fit.fighters.filteredItemMultiply(
|
||||
lambda mod: mod.item.requiresSkill('Fighters'),
|
||||
'fighterAbilityMissilesExplosionRadius', container.getModifiedItemAttr('aoeCloudSizeMultiplier'),
|
||||
stackingPenalties=True, penaltyGroup='postMul', **kwargs)
|
||||
|
||||
@@ -752,14 +752,14 @@ class Fit:
|
||||
|
||||
if warfareBuffID == 79: # AOE_Beacon_bioluminescence_cloud
|
||||
self.ship.boostItemAttr("signatureRadius", value, stackingPenalties=True)
|
||||
self.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"),
|
||||
"signatureRadius", value, stackingPenalties=True)
|
||||
|
||||
if warfareBuffID == 80: # AOE_Beacon_caustic_cloud_local_repair
|
||||
self.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Systems"),
|
||||
"armorDamageAmount", value, stackingPenalties=True)
|
||||
if warfareBuffID == 80: # AOE_Beacon_caustic_cloud_inertia
|
||||
self.ship.boostItemAttr("agility", value, stackingPenalties=True)
|
||||
|
||||
if warfareBuffID == 81: # AOE_Beacon_caustic_cloud_remote_repair
|
||||
self.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems"),
|
||||
"armorDamageAmount", value, stackingPenalties=True)
|
||||
if warfareBuffID == 81: # AOE_Beacon_caustic_cloud_velocity
|
||||
self.ship.boostItemAttr("maxVelocity", value, stackingPenalties=True)
|
||||
|
||||
if warfareBuffID == 88: # AOE_Beacon_filament_cloud_shield_booster_shield_bonus
|
||||
self.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Operation"),
|
||||
@@ -774,7 +774,11 @@ class Fit:
|
||||
if warfareBuffID == 90: # Weather_electric_storm_EM_resistance_penalty
|
||||
for tankType in ("shield", "armor"):
|
||||
self.ship.boostItemAttr("{}EmDamageResonance".format(tankType), value)
|
||||
self.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"),
|
||||
"{}EmDamageResonance".format(tankType), value)
|
||||
self.ship.boostItemAttr("emDamageResonance", value) # for hull
|
||||
self.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"),
|
||||
"emDamageResonance", value) #for hull
|
||||
|
||||
if warfareBuffID == 92: # Weather_electric_storm_capacitor_recharge_bonus
|
||||
self.ship.boostItemAttr("rechargeRate", value, stackingPenalties=True)
|
||||
@@ -782,32 +786,54 @@ class Fit:
|
||||
if warfareBuffID == 93: # Weather_xenon_gas_explosive_resistance_penalty
|
||||
for tankType in ("shield", "armor"):
|
||||
self.ship.boostItemAttr("{}ExplosiveDamageResonance".format(tankType), value)
|
||||
self.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"),
|
||||
"{}ExplosiveDamageResonance".format(tankType), value)
|
||||
self.ship.boostItemAttr("explosiveDamageResonance", value) # for hull
|
||||
self.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"),
|
||||
"explosiveDamageResonance", value) # for hull
|
||||
|
||||
if warfareBuffID == 94: # Weather_xenon_gas_shield_hp_bonus
|
||||
self.ship.boostItemAttr("shieldCapacity", value) # for hull
|
||||
self.ship.boostItemAttr("shieldCapacity", value)
|
||||
self.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"),
|
||||
"shieldCapacity", value)
|
||||
|
||||
if warfareBuffID == 95: # Weather_infernal_thermal_resistance_penalty
|
||||
for tankType in ("shield", "armor"):
|
||||
self.ship.boostItemAttr("{}ThermalDamageResonance".format(tankType), value)
|
||||
self.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"),
|
||||
"{}ThermalDamageResonance".format(tankType), value)
|
||||
self.ship.boostItemAttr("thermalDamageResonance", value) # for hull
|
||||
self.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"),
|
||||
"thermalDamageResonance", value) # for hull
|
||||
|
||||
if warfareBuffID == 96: # Weather_infernal_armor_hp_bonus
|
||||
self.ship.boostItemAttr("armorHP", value) # for hull
|
||||
self.ship.boostItemAttr("armorHP", value)
|
||||
self.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"),
|
||||
"armorHP", value)
|
||||
|
||||
if warfareBuffID == 97: # Weather_darkness_turret_range_penalty
|
||||
self.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Gunnery"),
|
||||
"maxRange", value, stackingPenalties=True)
|
||||
self.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"),
|
||||
"maxRange", value, stackingPenalties=True)
|
||||
self.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Gunnery"),
|
||||
"falloff", value, stackingPenalties=True)
|
||||
self.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"),
|
||||
"falloff", value, stackingPenalties=True)
|
||||
|
||||
if warfareBuffID == 98: # Weather_darkness_velocity_bonus
|
||||
self.ship.boostItemAttr("maxVelocity", value)
|
||||
self.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"),
|
||||
"maxVelocity", value)
|
||||
|
||||
if warfareBuffID == 99: # Weather_caustic_toxin_kinetic_resistance_penalty
|
||||
for tankType in ("shield", "armor"):
|
||||
self.ship.boostItemAttr("{}KineticDamageResonance".format(tankType), value)
|
||||
self.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"),
|
||||
"{}KineticDamageResonance".format(tankType), value)
|
||||
self.ship.boostItemAttr("kineticDamageResonance", value) # for hull
|
||||
self.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"),
|
||||
"kineticDamageResonance", value) # for hull
|
||||
|
||||
if warfareBuffID == 100: # Weather_caustic_toxin_scan_resolution_bonus
|
||||
self.ship.boostItemAttr("scanResolution", value, stackingPenalties=True)
|
||||
|
||||
@@ -198,11 +198,18 @@ class Module(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut):
|
||||
# todo: validate baseItem as well if it's set.
|
||||
if self.isEmpty:
|
||||
return False
|
||||
return (
|
||||
self.__item is None or (
|
||||
self.__item.category.name not in ("Module", "Subsystem", "Structure Module") and
|
||||
self.__item.group.name not in self.SYSTEM_GROUPS) or
|
||||
(self.item.isAbyssal and not self.isMutated))
|
||||
if self.__item is None:
|
||||
return True
|
||||
if (
|
||||
self.__item.category.name not in ("Module", "Subsystem", "Structure Module")
|
||||
and self.__item.group.name not in self.SYSTEM_GROUPS
|
||||
):
|
||||
return True
|
||||
if self.item.isAbyssal and not self.isMutated:
|
||||
return True
|
||||
if self.isMutated and not self.__mutaplasmid:
|
||||
return True
|
||||
return False
|
||||
|
||||
@property
|
||||
def isMutated(self):
|
||||
@@ -267,7 +274,9 @@ class Module(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut):
|
||||
|
||||
@property
|
||||
def isExclusiveSystemEffect(self):
|
||||
return self.item.group.name in ("Effect Beacon", "Non-Interactable Object", "MassiveEnvironments")
|
||||
# See issue #2258
|
||||
# return self.item.group.name in ("Effect Beacon", "Non-Interactable Object", "MassiveEnvironments")
|
||||
return False
|
||||
|
||||
@property
|
||||
def isCapitalSize(self):
|
||||
|
||||
@@ -89,12 +89,9 @@ class Mutator(EqBase):
|
||||
# sweet, all good
|
||||
returnVal = val
|
||||
else:
|
||||
# need to fudge the numbers a bit. Go with the value closest to base
|
||||
if val >= 0:
|
||||
returnVal = min(self.maxValue, max(self.minValue, val))
|
||||
else:
|
||||
returnVal = max(self.maxValue, min(self.minValue, val))
|
||||
|
||||
actualMin = min(self.minValue, self.maxValue)
|
||||
actualMax = max(self.minValue, self.maxValue)
|
||||
returnVal = min(actualMax, max(actualMin, val))
|
||||
return returnVal
|
||||
|
||||
@property
|
||||
@@ -120,15 +117,24 @@ class Mutator(EqBase):
|
||||
|
||||
@property
|
||||
def baseValue(self):
|
||||
return self.baseAttribute.value
|
||||
try:
|
||||
return self.baseAttribute.value
|
||||
except AttributeError:
|
||||
return 0
|
||||
|
||||
@property
|
||||
def minValue(self):
|
||||
return self.minMod * self.baseAttribute.value
|
||||
try:
|
||||
return self.minMod * self.baseAttribute.value
|
||||
except AttributeError:
|
||||
return 0
|
||||
|
||||
@property
|
||||
def maxValue(self):
|
||||
return self.maxMod * self.baseAttribute.value
|
||||
try:
|
||||
return self.maxMod * self.baseAttribute.value
|
||||
except AttributeError:
|
||||
return 0
|
||||
|
||||
@property
|
||||
def attribute(self):
|
||||
|
||||
@@ -86,7 +86,7 @@ BUILTINS = OrderedDict([
|
||||
# Source: ticket #2067
|
||||
(-52, ('[NPC][Invasion]Invading Precursor Entities', 0.422, 0.367, 0.453, 0.411)),
|
||||
(-53, ('[NPC][Invasion]Retaliating Amarr Entities', 0.360, 0.310, 0.441, 0.602)),
|
||||
(-54, ('[NPC][Invasion]Retaliating Caldari Entities', 0.287, 0.610, 0.487, 0.401)),
|
||||
(-54, ('[NPC][Invasion]Retaliating Caldari Entities', 0.303, 0.610, 0.487, 0.401)),
|
||||
(-55, ('[NPC][Invasion]Retaliating Gallente Entities', 0.383, 0.414, 0.578, 0.513)),
|
||||
(-56, ('[NPC][Invasion]Retaliating Minmatar Entities', 0.620, 0.422, 0.355, 0.399)),
|
||||
(-57, ('[NPC][Abyssal][Dark Matter All Tiers]Drones', 0.439, 0.522, 0.529, 0.435)),
|
||||
|
||||
@@ -36,9 +36,9 @@ class VectorPicker(wx.Window):
|
||||
self._labelpos = int(kwargs.pop('labelpos', 0))
|
||||
self._offset = float(kwargs.pop('offset', 0))
|
||||
self._size = max(0, float(kwargs.pop('size', 50)))
|
||||
self._fontsize = max(1, float(kwargs.pop('fontsize', 8)))
|
||||
self._directionOnly = kwargs.pop('directionOnly', False)
|
||||
super().__init__(*args, **kwargs)
|
||||
self._fontsize = max(1, float(kwargs.pop('fontsize', 8 / self.GetContentScaleFactor())))
|
||||
self._font = wx.Font(self._fontsize, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, False)
|
||||
self._angle = 0
|
||||
self.__length = 1
|
||||
@@ -107,8 +107,11 @@ class VectorPicker(wx.Window):
|
||||
dc = wx.BufferedPaintDC(self)
|
||||
self.Draw(dc)
|
||||
|
||||
def GetScaledClientSize(self):
|
||||
return tuple([dim / self.GetContentScaleFactor() for dim in self.GetClientSize()])
|
||||
|
||||
def Draw(self, dc):
|
||||
width, height = self.GetClientSize()
|
||||
width, height = self.GetScaledClientSize()
|
||||
if not width or not height:
|
||||
return
|
||||
dc.SetBackground(wx.Brush(self.GetBackgroundColour(), wx.BRUSHSTYLE_SOLID))
|
||||
@@ -122,9 +125,11 @@ class VectorPicker(wx.Window):
|
||||
a = math.radians(self._angle + self._offset)
|
||||
x = math.cos(a) * radius
|
||||
y = math.sin(a) * radius
|
||||
# See PR #2260 on why this is needed
|
||||
pointRadius = 2 / self.GetContentScaleFactor() if 'wxGTK' in wx.PlatformInfo else 2
|
||||
dc.DrawLine(radius + 2, radius + 2, radius + 2 + x * self._length, radius + 2 - y * self._length)
|
||||
dc.SetBrush(wx.BLACK_BRUSH)
|
||||
dc.DrawCircle(radius + 2 + x * self._length, radius + 2 - y * self._length, 2)
|
||||
dc.DrawCircle(radius + 2 + x * self._length, radius + 2 - y * self._length, pointRadius)
|
||||
|
||||
if self._label:
|
||||
labelText = self._label
|
||||
|
||||
@@ -102,18 +102,21 @@ class AddEnvironmentEffect(ContextMenuUnconditional):
|
||||
|
||||
def getData(self):
|
||||
data = Group()
|
||||
data.groups['Metaliminal Storm'] = self.getEffectBeacons(
|
||||
'Electrical', 'Exotic', 'Gamma', 'Plasma',
|
||||
extra_garbage=('Metaliminal', 'Storm', 'Matter', 'Ray', 'Firestorm'))
|
||||
data.groups['Wormhole'] = self.getEffectBeacons(
|
||||
'Black Hole', 'Cataclysmic Variable', 'Magnetar',
|
||||
'Pulsar', 'Red Giant', 'Wolf Rayet')
|
||||
data.groups['Abyssal Weather'] = self.getAbyssalWeather()
|
||||
data.groups['Sansha Incursion'] = self.getEffectBeacons('Sansha Incursion')
|
||||
data.groups['Triglavian Invasion'] = self.getEffectBeacons('Triglavian Invasion')
|
||||
data.groups['Triglavian Invasion'].groups['Destructible Beacons'] = self.getDestructibleBeacons()
|
||||
data.groups['Abyssal Weather'] = self.getAbyssalWeather()
|
||||
return data
|
||||
|
||||
def getEffectBeacons(self, *groups):
|
||||
def getEffectBeacons(self, *groups, extra_garbage=()):
|
||||
"""
|
||||
Get dictionary with wormhole system-wide effects
|
||||
Get dictionary with system-wide effects
|
||||
"""
|
||||
compacted = len(groups) <= 1
|
||||
sMkt = Market.getInstance()
|
||||
@@ -122,7 +125,8 @@ class AddEnvironmentEffect(ContextMenuUnconditional):
|
||||
data = Group()
|
||||
|
||||
# Stuff we don't want to see in names
|
||||
garbages = ("System Effects", "Effects")
|
||||
garbages = ["System Effects", "Effects"]
|
||||
garbages.extend(extra_garbage)
|
||||
|
||||
# Get group with all the system-wide beacons
|
||||
grp = sMkt.getGroup("Effect Beacon")
|
||||
|
||||
@@ -89,6 +89,7 @@ class ItemMutatorList(wx.ScrolledWindow):
|
||||
higOverrides = {
|
||||
('Stasis Web', 'speedFactor'): False,
|
||||
('Damage Control', 'duration'): True,
|
||||
('Siege Module', 'siegeLocalLogisticsDurationBonus'): False
|
||||
}
|
||||
|
||||
first = True
|
||||
|
||||
@@ -562,7 +562,10 @@ class FittingView(d.Display):
|
||||
|
||||
if sFit.serviceFittingOptions["rackSlots"]:
|
||||
# flag to know when to add blanks, based on previous slot
|
||||
slotDivider = None if sFit.serviceFittingOptions["rackLabels"] else self.mods[0].slot
|
||||
if sFit.serviceFittingOptions["rackLabels"] or len(self.mods) == 0:
|
||||
slotDivider = None
|
||||
else:
|
||||
slotDivider = self.mods[0].slot
|
||||
|
||||
# first loop finds where slot dividers must go before modifying self.mods
|
||||
for i, mod in enumerate(self.mods):
|
||||
|
||||
@@ -367,7 +367,7 @@ class _TabRenderer:
|
||||
width = max(width, self.min_width)
|
||||
height = max(height, self.min_height)
|
||||
|
||||
self.disabled = False
|
||||
self._disabled = False
|
||||
self.baseText = text
|
||||
self.extraText = ''
|
||||
self.tab_size = (width, height)
|
||||
@@ -383,6 +383,18 @@ class _TabRenderer:
|
||||
self.position = (0, 0) # Not used internally for rendering - helper for tab container
|
||||
self.InitTab()
|
||||
|
||||
@property
|
||||
def disabled(self):
|
||||
return self._disabled
|
||||
|
||||
@disabled.setter
|
||||
def disabled(self, value):
|
||||
if value == self._disabled: # Avoid unnecessary re-rendering
|
||||
return
|
||||
|
||||
self._disabled = value
|
||||
self._Render()
|
||||
|
||||
@property
|
||||
def text(self):
|
||||
return self.baseText + self.extraText
|
||||
@@ -402,6 +414,10 @@ class _TabRenderer:
|
||||
width = max(width, self.min_width)
|
||||
height = max(height, self.min_height)
|
||||
|
||||
cur_width, cur_height = self.tab_size
|
||||
if (width == cur_width) and (height == cur_height):
|
||||
return
|
||||
|
||||
self.tab_size = (width, height)
|
||||
self.InitTab()
|
||||
|
||||
@@ -927,7 +943,6 @@ class _TabsContainer(wx.Panel):
|
||||
tb_renderer = self.tabs[tab]
|
||||
tb_renderer.disabled = disabled
|
||||
|
||||
self.AdjustTabsSize()
|
||||
self.Refresh()
|
||||
|
||||
def GetSelectedTab(self):
|
||||
@@ -975,9 +990,6 @@ class _TabsContainer(wx.Panel):
|
||||
sel_tab = self.tabs.index(tab)
|
||||
self.Parent.SetSelection(sel_tab)
|
||||
|
||||
wx.PostEvent(self.Parent, PageChanged(self.tabs.index(old_sel_tab),
|
||||
self.tabs.index(tab)))
|
||||
|
||||
return True
|
||||
|
||||
return False
|
||||
|
||||
@@ -62,8 +62,10 @@ class EveFittings(AuxiliaryFrame):
|
||||
btnSizer = wx.BoxSizer(wx.HORIZONTAL)
|
||||
self.importBtn = wx.Button(self, wx.ID_ANY, "Import to pyfa", wx.DefaultPosition, wx.DefaultSize, 5)
|
||||
self.deleteBtn = wx.Button(self, wx.ID_ANY, "Delete from EVE", wx.DefaultPosition, wx.DefaultSize, 5)
|
||||
self.deleteAllBtn = wx.Button(self, wx.ID_ANY, "Delete all from Eve", wx.DefaultPosition, wx.DefaultSize, 5)
|
||||
btnSizer.Add(self.importBtn, 1, wx.ALL, 5)
|
||||
btnSizer.Add(self.deleteBtn, 1, wx.ALL, 5)
|
||||
btnSizer.Add(self.deleteAllBtn, 1, wx.ALL, 5)
|
||||
fitSizer.Add(btnSizer, 0, wx.EXPAND)
|
||||
|
||||
contentSizer.Add(fitSizer, 1, wx.EXPAND, 0)
|
||||
@@ -72,6 +74,7 @@ class EveFittings(AuxiliaryFrame):
|
||||
self.fetchBtn.Bind(wx.EVT_BUTTON, self.fetchFittings)
|
||||
self.importBtn.Bind(wx.EVT_BUTTON, self.importFitting)
|
||||
self.deleteBtn.Bind(wx.EVT_BUTTON, self.deleteFitting)
|
||||
self.deleteAllBtn.Bind(wx.EVT_BUTTON, self.deleteAllFittings)
|
||||
|
||||
self.Bind(wx.EVT_CHAR_HOOK, self.kbEvent)
|
||||
|
||||
@@ -169,6 +172,37 @@ class EveFittings(AuxiliaryFrame):
|
||||
pyfalog.error(msg)
|
||||
self.statusbar.SetStatusText(msg)
|
||||
|
||||
def deleteAllFittings(self, event):
|
||||
sEsi = Esi.getInstance()
|
||||
activeChar = self.getActiveCharacter()
|
||||
if activeChar is None:
|
||||
return
|
||||
charName = sEsi.getSsoCharacter(activeChar).characterName
|
||||
anyDeleted = False
|
||||
with wx.MessageDialog(
|
||||
self, "Do you really want to delete all fits from %s in EVE?"%(charName),
|
||||
"Confirm Delete", wx.YES | wx.NO | wx.ICON_QUESTION
|
||||
) as dlg:
|
||||
if dlg.ShowModal() == wx.ID_YES:
|
||||
try:
|
||||
for fit in self.fittings:
|
||||
sEsi.delFitting(activeChar, fit['fitting_id'])
|
||||
anyDeleted = True
|
||||
except requests.exceptions.ConnectionError:
|
||||
msg = "Connection error, please check your internet connection"
|
||||
pyfalog.error(msg)
|
||||
self.statusbar.SetStatusText(msg)
|
||||
except APIException as ex:
|
||||
if anyDeleted:
|
||||
msg = "Some fits were not deleted: ESI error {} received".format(ex.status_code)
|
||||
else:
|
||||
msg = "Failed to delete fits: ESI error {} received".format(ex.status_code)
|
||||
pyfalog.error(msg)
|
||||
self.statusbar.SetStatusText(msg)
|
||||
# repopulate the fitting list
|
||||
self.fitTree.populateSkillTree(self.fittings)
|
||||
self.fitView.update([])
|
||||
|
||||
|
||||
class ESIServerExceptionHandler:
|
||||
def __init__(self, parentWindow, ex):
|
||||
|
||||
@@ -63,8 +63,8 @@ class GuiCargoToLocalModuleCommand(wx.Command):
|
||||
dstModSlot = dstMod.slot
|
||||
if self.srcCargoItemID == dstModItemID:
|
||||
return False
|
||||
# To keep all old item properties, copy them over from old module
|
||||
newModInfo = ModuleInfo.fromModule(dstMod)
|
||||
# To keep all old item properties, copy them over from old module, except for mutations
|
||||
newModInfo = ModuleInfo.fromModule(dstMod, unmutate=True)
|
||||
newModInfo.itemID = self.srcCargoItemID
|
||||
if dstMod.isEmpty:
|
||||
newCargoModItemID = None
|
||||
|
||||
@@ -110,8 +110,6 @@ class OpenFitsThread(threading.Thread):
|
||||
self.start()
|
||||
|
||||
def run(self):
|
||||
time.sleep(0.5) # Give GUI some time to finish drawing
|
||||
|
||||
# `startup` tells FitSpawner that we are loading fits are startup, and
|
||||
# has 3 values:
|
||||
# False = Set as default in FitSpawner itself, never set here
|
||||
|
||||
@@ -16,226 +16,10 @@ rename_phrase = " renamed to "
|
||||
conversion_phrase = " converted to "
|
||||
|
||||
text = """
|
||||
Limited Layered Plating I converted to Upgraded Layered Coating I
|
||||
'Scarab' Layered Plating I converted to Upgraded Layered Coating I
|
||||
'Grail' Layered Plating I converted to Upgraded Layered Coating I
|
||||
Limited Adaptive Nano Plating I converted to Upgraded Multispectrum Coating I
|
||||
'Collateral' Adaptive Nano Plating I converted to Upgraded Multispectrum Coating I
|
||||
'Refuge' Adaptive Nano Plating I converted to Upgraded Multispectrum Coating I
|
||||
Limited EM Plating I converted to Upgraded EM Coating I
|
||||
'Contour' EM Plating I converted to Upgraded EM Coating I
|
||||
'Spiegel' EM Plating I converted to Upgraded EM Coating I
|
||||
Limited Explosive Plating I converted to Upgraded Explosive Coating I
|
||||
Experimental Explosive Plating I converted to Upgraded Explosive Coating I
|
||||
'Aegis' Explosive Plating I converted to Upgraded Explosive Coating I
|
||||
Limited Kinetic Plating I converted to Upgraded Kinetic Coating I
|
||||
Experimental Kinetic Plating I converted to Upgraded Kinetic Coating I
|
||||
'Element' Kinetic Plating I converted to Upgraded Kinetic Coating I
|
||||
Limited Thermal Plating I converted to Upgraded Thermal Coating I
|
||||
Experimental Thermal Plating I converted to Upgraded Thermal Coating I
|
||||
Prototype Thermal Plating I converted to Upgraded Thermal Coating I
|
||||
Basic EM Plating renamed to 'Basic' EM Coating
|
||||
EM Plating I renamed to EM Coating I
|
||||
EM Plating II renamed to EM Coating II
|
||||
Basic Explosive Plating renamed to 'Basic' Explosive Coating
|
||||
Explosive Plating I renamed to Explosive Coating I
|
||||
Explosive Plating II renamed to Explosive Coating II
|
||||
Basic Layered Plating renamed to 'Basic' Layered Coating
|
||||
Layered Plating I renamed to Layered Coating I
|
||||
Layered Plating II renamed to Layered Coating II
|
||||
Basic Kinetic Plating renamed to 'Basic' Kinetic Coating
|
||||
Kinetic Plating I renamed to Kinetic Coating I
|
||||
Kinetic Plating II renamed to Kinetic Coating II
|
||||
Basic Thermal Plating renamed to 'Basic' Thermal Coating
|
||||
Thermal Plating I renamed to Thermal Coating I
|
||||
Thermal Plating II renamed to Thermal Coating II
|
||||
Basic Adaptive Nano Plating renamed to 'Basic' Multispectrum Coating
|
||||
Adaptive Nano Plating I renamed to Multispectrum Coating I
|
||||
Adaptive Nano Plating II renamed to Multispectrum Coating II
|
||||
Domination Adaptive Nano Plating renamed to Domination Multispectrum Coating
|
||||
True Sansha Adaptive Nano Plating renamed to True Sansha Multispectrum Coating
|
||||
Dark Blood Adaptive Nano Plating renamed to Dark Blood Multispectrum Coating
|
||||
Domination Kinetic Plating renamed to Domination Kinetic Coating
|
||||
True Sansha Kinetic Plating renamed to True Sansha Kinetic Coating
|
||||
Dark Blood Kinetic Plating renamed to Dark Blood Kinetic Coating
|
||||
Domination Explosive Plating renamed to Domination Explosive Coating
|
||||
True Sansha Explosive Plating renamed to True Sansha Explosive Coating
|
||||
Dark Blood Explosive Plating renamed to Dark Blood Explosive Coating
|
||||
Domination EM Plating renamed to Domination EM Coating
|
||||
True Sansha EM Plating renamed to True Sansha EM Coating
|
||||
Dark Blood EM Plating renamed to Dark Blood EM Coating
|
||||
Domination Thermal Plating renamed to Domination Thermal Coating
|
||||
True Sansha Thermal Plating renamed to True Sansha Thermal Coating
|
||||
Dark Blood Thermal Plating renamed to Dark Blood Thermal Coating
|
||||
Shadow Serpentis Adaptive Nano Plating renamed to Shadow Serpentis Multispectrum Coating
|
||||
Shadow Serpentis Kinetic Plating renamed to Shadow Serpentis Kinetic Coating
|
||||
Shadow Serpentis Explosive Plating renamed to Shadow Serpentis Explosive Coating
|
||||
Shadow Serpentis EM Plating renamed to Shadow Serpentis EM Coating
|
||||
Shadow Serpentis Thermal Plating renamed to Shadow Serpentis Thermal Coating
|
||||
Mizuro's Modified Adaptive Nano Plating renamed to Mizuro's Modified Multispectrum Coating
|
||||
Gotan's Modified Adaptive Nano Plating renamed to Gotan's Modified Multispectrum Coating
|
||||
Mizuro's Modified Kinetic Plating renamed to Mizuro's Modified Kinetic Coating
|
||||
Gotan's Modified Kinetic Plating renamed to Gotan's Modified Kinetic Coating
|
||||
Mizuro's Modified Explosive Plating renamed to Mizuro's Modified Explosive Coating
|
||||
Gotan's Modified Explosive Plating renamed to Gotan's Modified Explosive Coating
|
||||
Mizuro's Modified EM Plating renamed to Mizuro's Modified EM Coating
|
||||
Gotan's Modified EM Plating renamed to Gotan's Modified EM Coating
|
||||
Mizuro's Modified Thermal Plating renamed to Mizuro's Modified Thermal Coating
|
||||
Gotan's Modified Thermal Plating renamed to Gotan's Modified Thermal Coating
|
||||
Brokara's Modified Adaptive Nano Plating renamed to Brokara's Modified Multispectrum Coating
|
||||
Tairei's Modified Adaptive Nano Plating renamed to Tairei's Modified Multispectrum Coating
|
||||
Selynne's Modified Adaptive Nano Plating renamed to Selynne's Modified Multispectrum Coating
|
||||
Raysere's Modified Adaptive Nano Plating renamed to Raysere's Modified Multispectrum Coating
|
||||
Vizan's Modified Adaptive Nano Plating renamed to Vizan's Modified Multispectrum Coating
|
||||
Ahremen's Modified Adaptive Nano Plating renamed to Ahremen's Modified Multispectrum Coating
|
||||
Chelm's Modified Adaptive Nano Plating renamed to Chelm's Modified Multispectrum Coating
|
||||
Draclira's Modified Adaptive Nano Plating renamed to Draclira's Modified Multispectrum Coating
|
||||
Brokara's Modified Kinetic Plating renamed to Brokara's Modified Kinetic Coating
|
||||
Tairei's Modified Kinetic Plating renamed to Tairei's Modified Kinetic Coating
|
||||
Selynne's Modified Kinetic Plating renamed to Selynne's Modified Kinetic Coating
|
||||
Raysere's Modified Kinetic Plating renamed to Raysere's Modified Kinetic Coating
|
||||
Vizan's Modified Kinetic Plating renamed to Vizan's Modified Kinetic Coating
|
||||
Ahremen's Modified Kinetic Plating renamed to Ahremen's Modified Kinetic Coating
|
||||
Chelm's Modified Kinetic Plating renamed to Chelm's Modified Kinetic Coating
|
||||
Draclira's Modified Kinetic Plating renamed to Draclira's Modified Kinetic Coating
|
||||
Brokara's Modified Explosive Plating renamed to Brokara's Modified Explosive Coating
|
||||
Tairei's Modified Explosive Plating renamed to Tairei's Modified Explosive Coating
|
||||
Selynne's Modified Explosive Plating renamed to Selynne's Modified Explosive Coating
|
||||
Raysere's Modified Explosive Plating renamed to Raysere's Modified Explosive Coating
|
||||
Vizan's Modified Explosive Plating renamed to Vizan's Modified Explosive Coating
|
||||
Ahremen's Modified Explosive Plating renamed to Ahremen's Modified Explosive Coating
|
||||
Chelm's Modified Explosive Plating renamed to Chelm's Modified Explosive Coating
|
||||
Draclira's Modified Explosive Plating renamed to Draclira's Modified Explosive Coating
|
||||
Brokara's Modified EM Plating renamed to Brokara's Modified EM Coating
|
||||
Tairei's Modified EM Plating renamed to Tairei's Modified EM Coating
|
||||
Selynne's Modified EM Plating renamed to Selynne's Modified EM Coating
|
||||
Raysere's Modified EM Plating renamed to Raysere's Modified EM Coating
|
||||
Vizan's Modified EM Plating renamed to Vizan's Modified EM Coating
|
||||
Ahremen's Modified EM Plating renamed to Ahremen's Modified EM Coating
|
||||
Chelm's Modified EM Plating renamed to Chelm's Modified EM Coating
|
||||
Draclira's Modified EM Plating renamed to Draclira's Modified EM Coating
|
||||
Brokara's Modified Thermal Plating renamed to Brokara's Modified Thermal Coating
|
||||
Tairei's Modified Thermal Plating renamed to Tairei's Modified Thermal Coating
|
||||
Selynne's Modified Thermal Plating renamed to Selynne's Modified Thermal Coating
|
||||
Raysere's Modified Thermal Plating renamed to Raysere's Modified Thermal Coating
|
||||
Vizan's Modified Thermal Plating renamed to Vizan's Modified Thermal Coating
|
||||
Ahremen's Modified Thermal Plating renamed to Ahremen's Modified Thermal Coating
|
||||
Chelm's Modified Thermal Plating renamed to Chelm's Modified Thermal Coating
|
||||
Draclira's Modified Thermal Plating renamed to Draclira's Modified Thermal Coating
|
||||
Brynn's Modified Adaptive Nano Plating renamed to Brynn's Modified Multispectrum Coating
|
||||
Tuvan's Modified Adaptive Nano Plating renamed to Tuvan's Modified Multispectrum Coating
|
||||
Setele's Modified Adaptive Nano Plating renamed to Setele's Modified Multispectrum Coating
|
||||
Cormack's Modified Adaptive Nano Plating renamed to Cormack's Modified Multispectrum Coating
|
||||
Brynn's Modified Thermal Plating renamed to Brynn's Modified Thermal Coating
|
||||
Tuvan's Modified Thermal Plating renamed to Tuvan's Modified Thermal Coating
|
||||
Setele's Modified Thermal Plating renamed to Setele's Modified Thermal Coating
|
||||
Cormack's Modified Thermal Plating renamed to Cormack's Modified Thermal Coating
|
||||
Brynn's Modified EM Plating renamed to Brynn's Modified EM Coating
|
||||
Tuvan's Modified EM Plating renamed to Tuvan's Modified EM Coating
|
||||
Setele's Modified EM Plating renamed to Setele's Modified EM Coating
|
||||
Cormack's Modified EM Plating renamed to Cormack's Modified EM Coating
|
||||
Brynn's Modified Explosive Plating renamed to Brynn's Modified Explosive Coating
|
||||
Tuvan's Modified Explosive Plating renamed to Tuvan's Modified Explosive Coating
|
||||
Setele's Modified Explosive Plating renamed to Setele's Modified Explosive Coating
|
||||
Cormack's Modified Explosive Plating renamed to Cormack's Modified Explosive Coating
|
||||
Brynn's Modified Kinetic Plating renamed to Brynn's Modified Kinetic Coating
|
||||
Tuvan's Modified Kinetic Plating renamed to Tuvan's Modified Kinetic Coating
|
||||
Setele's Modified Kinetic Plating renamed to Setele's Modified Kinetic Coating
|
||||
Cormack's Modified Kinetic Plating renamed to Cormack's Modified Kinetic Coating
|
||||
Imperial Navy Thermal Plating renamed to Imperial Navy Thermal Coating
|
||||
Imperial Navy EM Plating renamed to Imperial Navy EM Coating
|
||||
Imperial Navy Explosive Plating renamed to Imperial Navy Explosive Coating
|
||||
Imperial Navy Kinetic Plating renamed to Imperial Navy Kinetic Coating
|
||||
Imperial Navy Adaptive Nano Plating renamed to Imperial Navy Multispectrum Coating
|
||||
Republic Fleet Thermal Plating renamed to Republic Fleet Thermal Coating
|
||||
Republic Fleet EM Plating renamed to Republic Fleet EM Coating
|
||||
Republic Fleet Explosive Plating renamed to Republic Fleet Explosive Coating
|
||||
Republic Fleet Kinetic Plating renamed to Republic Fleet Kinetic Coating
|
||||
Republic Fleet Adaptive Nano Plating renamed to Republic Fleet Multispectrum Coating
|
||||
Upgraded Adaptive Nano Plating I renamed to Upgraded Multispectrum Coating I
|
||||
Upgraded Kinetic Plating I renamed to Upgraded Kinetic Coating I
|
||||
Upgraded Explosive Plating I renamed to Upgraded Explosive Coating I
|
||||
Upgraded EM Plating I renamed to Upgraded EM Coating I
|
||||
Upgraded Thermal Plating I renamed to Upgraded Thermal Coating I
|
||||
Upgraded Layered Plating I renamed to Upgraded Layered Coating I
|
||||
Ammatar Navy Kinetic Plating renamed to Ammatar Navy Kinetic Coating
|
||||
Ammatar Navy Adaptive Nano Plating renamed to Ammatar Navy Multispectrum Coating
|
||||
Ammatar Navy Explosive Plating renamed to Ammatar Navy Explosive Coating
|
||||
Ammatar Navy EM Plating renamed to Ammatar Navy EM Coating
|
||||
Federation Navy Adaptive Nano Plating renamed to Federation Navy Multispectrum Coating
|
||||
Federation Navy Kinetic Plating renamed to Federation Navy Kinetic Coating
|
||||
Federation Navy Explosive Plating renamed to Federation Navy Explosive Coating
|
||||
Federation Navy EM Plating renamed to Federation Navy EM Coating
|
||||
Federation Navy Thermal Plating renamed to Federation Navy Thermal Coating
|
||||
Corpii C-Type Adaptive Nano Plating renamed to Corpii C-Type Multispectrum Coating
|
||||
Centii C-Type Adaptive Nano Plating renamed to Centii C-Type Multispectrum Coating
|
||||
Corpii B-Type Adaptive Nano Plating renamed to Corpii B-Type Multispectrum Coating
|
||||
Centii B-Type Adaptive Nano Plating renamed to Centii B-Type Multispectrum Coating
|
||||
Corpii A-Type Adaptive Nano Plating renamed to Corpii A-Type Multispectrum Coating
|
||||
Centii A-Type Adaptive Nano Plating renamed to Centii A-Type Multispectrum Coating
|
||||
Corpii C-Type Kinetic Plating renamed to Corpii C-Type Kinetic Coating
|
||||
Centii C-Type Kinetic Plating renamed to Centii C-Type Kinetic Coating
|
||||
Corpii C-Type Explosive Plating renamed to Corpii C-Type Explosive Coating
|
||||
Centii C-Type Explosive Plating renamed to Centii C-Type Explosive Coating
|
||||
Corpii C-Type EM Plating renamed to Corpii C-Type EM Coating
|
||||
Centii C-Type EM Plating renamed to Centii C-Type EM Coating
|
||||
Corpii C-Type Thermal Plating renamed to Corpii C-Type Thermal Coating
|
||||
Centii C-Type Thermal Plating renamed to Centii C-Type Thermal Coating
|
||||
Corpii B-Type Thermal Plating renamed to Corpii B-Type Thermal Coating
|
||||
Centii B-Type Thermal Plating renamed to Centii B-Type Thermal Coating
|
||||
Corpii B-Type Kinetic Plating renamed to Corpii B-Type Kinetic Coating
|
||||
Centii B-Type Kinetic Plating renamed to Centii B-Type Kinetic Coating
|
||||
Corpii B-Type Explosive Plating renamed to Corpii B-Type Explosive Coating
|
||||
Centii B-Type Explosive Plating renamed to Centii B-Type Explosive Coating
|
||||
Corpii B-Type EM Plating renamed to Corpii B-Type EM Coating
|
||||
Centii B-Type EM Plating renamed to Centii B-Type EM Coating
|
||||
Corpii A-Type Kinetic Plating renamed to Corpii A-Type Kinetic Coating
|
||||
Centii A-Type Kinetic Plating renamed to Centii A-Type Kinetic Coating
|
||||
Corpii A-Type Explosive Plating renamed to Corpii A-Type Explosive Coating
|
||||
Centii A-Type Explosive Plating renamed to Centii A-Type Explosive Coating
|
||||
Corpii A-Type EM Plating renamed to Corpii A-Type EM Coating
|
||||
Centii A-Type EM Plating renamed to Centii A-Type EM Coating
|
||||
Corpii A-Type Thermal Plating renamed to Corpii A-Type Thermal Coating
|
||||
Centii A-Type Thermal Plating renamed to Centii A-Type Thermal Coating
|
||||
Coreli C-Type Adaptive Nano Plating renamed to Coreli C-Type Multispectrum Coating
|
||||
Coreli C-Type Kinetic Plating renamed to Coreli C-Type Kinetic Coating
|
||||
Coreli C-Type Explosive Plating renamed to Coreli C-Type Explosive Coating
|
||||
Coreli C-Type EM Plating renamed to Coreli C-Type EM Coating
|
||||
Coreli C-Type Thermal Plating renamed to Coreli C-Type Thermal Coating
|
||||
Coreli B-Type Adaptive Nano Plating renamed to Coreli B-Type Multispectrum Coating
|
||||
Coreli B-Type Kinetic Plating renamed to Coreli B-Type Kinetic Coating
|
||||
Coreli B-Type Explosive Plating renamed to Coreli B-Type Explosive Coating
|
||||
Coreli B-Type EM Plating renamed to Coreli B-Type EM Coating
|
||||
Coreli B-Type Thermal Plating renamed to Coreli B-Type Thermal Coating
|
||||
Coreli A-Type Adaptive Nano Plating renamed to Coreli A-Type Multispectrum Coating
|
||||
Coreli A-Type Kinetic Plating renamed to Coreli A-Type Kinetic Coating
|
||||
Coreli A-Type Explosive Plating renamed to Coreli A-Type Explosive Coating
|
||||
Coreli A-Type EM Plating renamed to Coreli A-Type EM Coating
|
||||
Coreli A-Type Thermal Plating renamed to Coreli A-Type Thermal Coating
|
||||
Khanid Navy Adaptive Nano Plating renamed to Khanid Navy Multispectrum Coating
|
||||
Khanid Navy Kinetic Plating renamed to Khanid Navy Kinetic Coating
|
||||
Khanid Navy Explosive Plating renamed to Khanid Navy Explosive Coating
|
||||
Khanid Navy EM Plating renamed to Khanid Navy EM Coating
|
||||
Khanid Navy Thermal Plating renamed to Khanid Navy Thermal Coating
|
||||
Ammatar Navy Thermal Plating renamed to Ammatar Navy Thermal Coating
|
||||
Low-Grade Mimesis Alpha renamed to Low-grade Mimesis Alpha
|
||||
Low-Grade Mimesis Beta renamed to Low-grade Mimesis Beta
|
||||
Low-Grade Mimesis Gamma renamed to Low-grade Mimesis Gamma
|
||||
Low-Grade Mimesis Delta renamed to Low-grade Mimesis Delta
|
||||
Low-Grade Mimesis Epsilon renamed to Low-grade Mimesis Epsilon
|
||||
Low-Grade Mimesis Omega renamed to Low-grade Mimesis Omega
|
||||
Mid-Grade Mimesis Alpha renamed to Mid-grade Mimesis Alpha
|
||||
Mid-Grade Mimesis Beta renamed to Mid-grade Mimesis Beta
|
||||
Mid-Grade Mimesis Gamma renamed to Mid-grade Mimesis Gamma
|
||||
Mid-Grade Mimesis Delta renamed to Mid-grade Mimesis Delta
|
||||
Mid-Grade Mimesis Epsilon renamed to Mid-grade Mimesis Epsilon
|
||||
Mid-Grade Mimesis Omega renamed to Mid-grade Mimesis Omega
|
||||
High-Grade Mimesis Alpha renamed to High-grade Mimesis Alpha
|
||||
High-Grade Mimesis Beta renamed to High-grade Mimesis Beta
|
||||
High-Grade Mimesis Delta renamed to High-grade Mimesis Delta
|
||||
High-Grade Mimesis Epsilon renamed to High-grade Mimesis Epsilon
|
||||
High-Grade Mimesis Gamma renamed to High-grade Mimesis Gamma
|
||||
High-Grade Mimesis Omega renamed to High-grade Mimesis Omega
|
||||
'Stalwart' Particle Field Magnifier renamed to Stalwart Restrained Shield Boost Amplifier
|
||||
'Copasetic' Particle Field Acceleration renamed to Copasetic Compact Shield Boost Amplifier
|
||||
5a Prototype Shield Support I converted to Stalwart Restrained Shield Boost Amplifier
|
||||
Ionic Field Accelerator I converted to Copasetic Compact Shield Boost Amplifier
|
||||
"""
|
||||
|
||||
def main(old, new):
|
||||
|
||||
194
service/conversions/releaseAug2020.py
Normal file
194
service/conversions/releaseAug2020.py
Normal file
@@ -0,0 +1,194 @@
|
||||
"""
|
||||
Conversion pack for August 2020 release
|
||||
"""
|
||||
|
||||
CONVERSIONS = {
|
||||
# Renamed items, extracted via diff file
|
||||
"Basic Energized EM Membrane": "'Basic' EM Energized Membrane",
|
||||
"Energized EM Membrane I": "EM Energized Membrane I",
|
||||
"Energized EM Membrane II": "EM Energized Membrane II",
|
||||
"Basic Energized Explosive Membrane": "'Basic' Explosive Energized Membrane",
|
||||
"Energized Explosive Membrane I": "Explosive Energized Membrane I",
|
||||
"Energized Explosive Membrane II": "Explosive Energized Membrane II",
|
||||
"Basic Energized Armor Layering Membrane": "'Basic' Layered Energized Membrane",
|
||||
"Energized Armor Layering Membrane I": "Layered Energized Membrane I",
|
||||
"Energized Armor Layering Membrane II": "Layered Energized Membrane II",
|
||||
"Basic Energized Kinetic Membrane": "'Basic' Kinetic Energized Membrane",
|
||||
"Energized Kinetic Membrane I": "Kinetic Energized Membrane I",
|
||||
"Energized Kinetic Membrane II": "Kinetic Energized Membrane II",
|
||||
"Basic Energized Thermal Membrane": "'Basic' Thermal Energized Membrane",
|
||||
"Energized Thermal Membrane I": "Thermal Energized Membrane I",
|
||||
"Energized Thermal Membrane II": "Thermal Energized Membrane II",
|
||||
"Basic Energized Adaptive Nano Membrane": "'Basic' Multispectrum Energized Membrane",
|
||||
"Energized Adaptive Nano Membrane I": "Multispectrum Energized Membrane I",
|
||||
"Energized Adaptive Nano Membrane II": "Multispectrum Energized Membrane II",
|
||||
"Dark Blood Energized Adaptive Nano Membrane": "Dark Blood Multispectrum Energized Membrane",
|
||||
"True Sansha Energized Adaptive Nano Membrane": "True Sansha Multispectrum Energized Membrane",
|
||||
"Shadow Serpentis Energized Adaptive Nano Membrane": "Shadow Serpentis Multispectrum Energized Membrane",
|
||||
"Dark Blood Energized Kinetic Membrane": "Dark Blood Kinetic Energized Membrane",
|
||||
"True Sansha Energized Kinetic Membrane": "True Sansha Kinetic Energized Membrane",
|
||||
"Shadow Serpentis Energized Kinetic Membrane": "Shadow Serpentis Kinetic Energized Membrane",
|
||||
"Dark Blood Energized Explosive Membrane": "Dark Blood Explosive Energized Membrane",
|
||||
"True Sansha Energized Explosive Membrane": "True Sansha Explosive Energized Membrane",
|
||||
"Shadow Serpentis Energized Explosive Membrane": "Shadow Serpentis Explosive Energized Membrane",
|
||||
"Dark Blood Energized EM Membrane": "Dark Blood EM Energized Membrane",
|
||||
"True Sansha Energized EM Membrane": "True Sansha EM Energized Membrane",
|
||||
"Shadow Serpentis Energized EM Membrane": "Shadow Serpentis EM Energized Membrane",
|
||||
"Dark Blood Energized Thermal Membrane": "Dark Blood Thermal Energized Membrane",
|
||||
"True Sansha Energized Thermal Membrane": "True Sansha Thermal Energized Membrane",
|
||||
"Shadow Serpentis Energized Thermal Membrane": "Shadow Serpentis Thermal Energized Membrane",
|
||||
"Brokara's Modified Energized Adaptive Nano Membrane": "Brokara's Modified Multispectrum Energized Membrane",
|
||||
"Tairei's Modified Energized Adaptive Nano Membrane": "Tairei's Modified Multispectrum Energized Membrane",
|
||||
"Selynne's Modified Energized Adaptive Nano Membrane": "Selynne's Modified Multispectrum Energized Membrane",
|
||||
"Raysere's Modified Energized Adaptive Nano Membrane": "Raysere's Modified Multispectrum Energized Membrane",
|
||||
"Vizan's Modified Energized Adaptive Nano Membrane": "Vizan's Modified Multispectrum Energized Membrane",
|
||||
"Ahremen's Modified Energized Adaptive Nano Membrane": "Ahremen's Modified Multispectrum Energized Membrane",
|
||||
"Chelm's Modified Energized Adaptive Nano Membrane": "Chelm's Modified Multispectrum Energized Membrane",
|
||||
"Draclira's Modified Energized Adaptive Nano Membrane": "Draclira's Modified Multispectrum Energized Membrane",
|
||||
"Brokara's Modified Energized Thermal Membrane": "Brokara's Modified Thermal Energized Membrane",
|
||||
"Tairei's Modified Energized Thermal Membrane": "Tairei's Modified Thermal Energized Membrane",
|
||||
"Selynne's Modified Energized Thermal Membrane": "Selynne's Modified Thermal Energized Membrane",
|
||||
"Raysere's Modified Energized Thermal Membrane": "Raysere's Modified Thermal Energized Membrane",
|
||||
"Vizan's Modified Energized Thermal Membrane": "Vizan's Modified Thermal Energized Membrane",
|
||||
"Ahremen's Modified Energized Thermal Membrane": "Ahremen's Modified Thermal Energized Membrane",
|
||||
"Chelm's Modified Energized Thermal Membrane": "Chelm's Modified Thermal Energized Membrane",
|
||||
"Draclira's Modified Energized Thermal Membrane": "Draclira's Modified Thermal Energized Membrane",
|
||||
"Brokara's Modified Energized EM Membrane": "Brokara's Modified EM Energized Membrane",
|
||||
"Tairei's Modified Energized EM Membrane": "Tairei's Modified EM Energized Membrane",
|
||||
"Selynne's Modified Energized EM Membrane": "Selynne's Modified EM Energized Membrane",
|
||||
"Raysere's Modified Energized EM Membrane": "Raysere's Modified EM Energized Membrane",
|
||||
"Vizan's Modified Energized EM Membrane": "Vizan's Modified EM Energized Membrane",
|
||||
"Ahremen's Modified Energized EM Membrane": "Ahremen's Modified EM Energized Membrane",
|
||||
"Chelm's Modified Energized EM Membrane": "Chelm's Modified EM Energized Membrane",
|
||||
"Draclira's Modified Energized EM Membrane": "Draclira's Modified EM Energized Membrane",
|
||||
"Brokara's Modified Energized Explosive Membrane": "Brokara's Modified Explosive Energized Membrane",
|
||||
"Tairei's Modified Energized Explosive Membrane": "Tairei's Modified Explosive Energized Membrane",
|
||||
"Selynne's Modified Energized Explosive Membrane": "Selynne's Modified Explosive Energized Membrane",
|
||||
"Raysere's Modified Energized Explosive Membrane": "Raysere's Modified Explosive Energized Membrane",
|
||||
"Vizan's Modified Energized Explosive Membrane": "Vizan's Modified Explosive Energized Membrane",
|
||||
"Ahremen's Modified Energized Explosive Membrane": "Ahremen's Modified Explosive Energized Membrane",
|
||||
"Chelm's Modified Energized Explosive Membrane": "Chelm's Modified Explosive Energized Membrane",
|
||||
"Draclira's Modified Energized Explosive Membrane": "Draclira's Modified Explosive Energized Membrane",
|
||||
"Brokara's Modified Energized Kinetic Membrane": "Brokara's Modified Kinetic Energized Membrane",
|
||||
"Tairei's Modified Energized Kinetic Membrane": "Tairei's Modified Kinetic Energized Membrane",
|
||||
"Selynne's Modified Energized Kinetic Membrane": "Selynne's Modified Kinetic Energized Membrane",
|
||||
"Raysere's Modified Energized Kinetic Membrane": "Raysere's Modified Kinetic Energized Membrane",
|
||||
"Vizan's Modified Energized Kinetic Membrane": "Vizan's Modified Kinetic Energized Membrane",
|
||||
"Ahremen's Modified Energized Kinetic Membrane": "Ahremen's Modified Kinetic Energized Membrane",
|
||||
"Chelm's Modified Energized Kinetic Membrane": "Chelm's Modified Kinetic Energized Membrane",
|
||||
"Draclira's Modified Energized Kinetic Membrane": "Draclira's Modified Kinetic Energized Membrane",
|
||||
"Brynn's Modified Energized Adaptive Nano Membrane": "Brynn's Modified Multispectrum Energized Membrane",
|
||||
"Tuvan's Modified Energized Adaptive Nano Membrane": "Tuvan's Modified Multispectrum Energized Membrane",
|
||||
"Setele's Modified Energized Adaptive Nano Membrane": "Setele's Modified Multispectrum Energized Membrane",
|
||||
"Cormack's Modified Energized Adaptive Nano Membrane": "Cormack's Modified Multispectrum Energized Membrane",
|
||||
"Brynn's Modified Energized Thermal Membrane": "Brynn's Modified Thermal Energized Membrane",
|
||||
"Tuvan's Modified Energized Thermal Membrane": "Tuvan's Modified Thermal Energized Membrane",
|
||||
"Setele's Modified Energized Thermal Membrane": "Setele's Modified Thermal Energized Membrane",
|
||||
"Cormack's Modified Energized Thermal Membrane": "Cormack's Modified Thermal Energized Membrane",
|
||||
"Brynn's Modified Energized EM Membrane": "Brynn's Modified EM Energized Membrane",
|
||||
"Tuvan's Modified Energized EM Membrane": "Tuvan's Modified EM Energized Membrane",
|
||||
"Setele's Modified Energized EM Membrane": "Setele's Modified EM Energized Membrane",
|
||||
"Cormack's Modified Energized EM Membrane": "Cormack's Modified EM Energized Membrane",
|
||||
"Brynn's Modified Energized Explosive Membrane": "Brynn's Modified Explosive Energized Membrane",
|
||||
"Tuvan's Modified Energized Explosive Membrane": "Tuvan's Modified Explosive Energized Membrane",
|
||||
"Setele's Modified Energized Explosive Membrane": "Setele's Modified Explosive Energized Membrane",
|
||||
"Cormack's Modified Energized Explosive Membrane": "Cormack's Modified Explosive Energized Membrane",
|
||||
"Brynn's Modified Energized Kinetic Membrane": "Brynn's Modified Kinetic Energized Membrane",
|
||||
"Tuvan's Modified Energized Kinetic Membrane": "Tuvan's Modified Kinetic Energized Membrane",
|
||||
"Setele's Modified Energized Kinetic Membrane": "Setele's Modified Kinetic Energized Membrane",
|
||||
"Cormack's Modified Energized Kinetic Membrane": "Cormack's Modified Kinetic Energized Membrane",
|
||||
"Imperial Navy Energized Thermal Membrane": "Imperial Navy Thermal Energized Membrane",
|
||||
"Imperial Navy Energized EM Membrane": "Imperial Navy EM Energized Membrane",
|
||||
"Imperial Navy Energized Explosive Membrane": "Imperial Navy Explosive Energized Membrane",
|
||||
"Imperial Navy Energized Kinetic Membrane": "Imperial Navy Kinetic Energized Membrane",
|
||||
"Imperial Navy Energized Adaptive Nano Membrane": "Imperial Navy Multispectrum Energized Membrane",
|
||||
"Federation Navy Energized Thermal Membrane": "Federation Navy Thermal Energized Membrane",
|
||||
"Federation Navy Energized EM Membrane": "Federation Navy EM Energized Membrane",
|
||||
"Federation Navy Energized Explosive Membrane": "Federation Navy Explosive Energized Membrane",
|
||||
"Federation Navy Energized Kinetic Membrane": "Federation Navy Kinetic Energized Membrane",
|
||||
"Federation Navy Energized Adaptive Nano Membrane": "Federation Navy Multispectrum Energized Membrane",
|
||||
"Prototype Energized Adaptive Nano Membrane I": "Compact Multispectrum Energized Membrane",
|
||||
"Prototype Energized Kinetic Membrane I": "Compact Kinetic Energized Membrane",
|
||||
"Prototype Energized Explosive Membrane I": "Compact Explosive Energized Membrane",
|
||||
"Prototype Energized EM Membrane I": "Compact EM Energized Membrane",
|
||||
"Prototype Energized Armor Layering Membrane I": "Compact Layered Energized Membrane",
|
||||
"Prototype Energized Thermal Membrane I": "Compact Thermal Energized Membrane",
|
||||
"Ammatar Navy Energized Adaptive Nano Membrane": "Ammatar Navy Multispectrum Energized Membrane",
|
||||
"Ammatar Navy Energized Kinetic Membrane": "Ammatar Navy Kinetic Energized Membrane",
|
||||
"Ammatar Navy Energized Explosive Membrane": "Ammatar Navy Explosive Energized Membrane",
|
||||
"Ammatar Navy Energized EM Membrane": "Ammatar Navy EM Energized Membrane",
|
||||
"Ammatar Navy Energized Thermal Membrane": "Ammatar Navy Thermal Energized Membrane",
|
||||
"Corelum C-Type Energized Adaptive Nano Membrane": "Corelum C-Type Multispectrum Energized Membrane",
|
||||
"Corelum C-Type Energized Kinetic Membrane": "Corelum C-Type Kinetic Energized Membrane",
|
||||
"Corelum C-Type Energized Explosive Membrane": "Corelum C-Type Explosive Energized Membrane",
|
||||
"Corelum C-Type Energized EM Membrane": "Corelum C-Type EM Energized Membrane",
|
||||
"Corelum C-Type Energized Thermal Membrane": "Corelum C-Type Thermal Energized Membrane",
|
||||
"Corelum B-Type Energized Adaptive Nano Membrane": "Corelum B-Type Multispectrum Energized Membrane",
|
||||
"Corelum B-Type Energized Kinetic Membrane": "Corelum B-Type Kinetic Energized Membrane",
|
||||
"Corelum B-Type Energized Explosive Membrane": "Corelum B-Type Explosive Energized Membrane",
|
||||
"Corelum B-Type Energized EM Membrane": "Corelum B-Type EM Energized Membrane",
|
||||
"Corelum B-Type Energized Thermal Membrane": "Corelum B-Type Thermal Energized Membrane",
|
||||
"Corelum A-Type Energized Adaptive Nano Membrane": "Corelum A-Type Multispectrum Energized Membrane",
|
||||
"Corelum A-Type Energized Kinetic Membrane": "Corelum A-Type Kinetic Energized Membrane",
|
||||
"Corelum A-Type Energized Explosive Membrane": "Corelum A-Type Explosive Energized Membrane",
|
||||
"Corelum A-Type Energized EM Membrane": "Corelum A-Type EM Energized Membrane",
|
||||
"Corelum A-Type Energized Thermal Membrane": "Corelum A-Type Thermal Energized Membrane",
|
||||
"Corpum C-Type Energized Adaptive Nano Membrane": "Corpum C-Type Multispectrum Energized Membrane",
|
||||
"Centum C-Type Energized Adaptive Nano Membrane": "Centum C-Type Multispectrum Energized Membrane",
|
||||
"Corpum C-Type Energized Kinetic Membrane": "Corpum C-Type Kinetic Energized Membrane",
|
||||
"Centum C-Type Energized Kinetic Membrane": "Centum C-Type Kinetic Energized Membrane",
|
||||
"Corpum C-Type Energized Explosive Membrane": "Corpum C-Type Explosive Energized Membrane",
|
||||
"Centum C-Type Energized Explosive Membrane": "Centum C-Type Explosive Energized Membrane",
|
||||
"Corpum C-Type Energized EM Membrane": "Corpum C-Type EM Energized Membrane",
|
||||
"Centum C-Type Energized EM Membrane": "Centum C-Type EM Energized Membrane",
|
||||
"Corpum C-Type Energized Thermal Membrane": "Corpum C-Type Thermal Energized Membrane",
|
||||
"Centum C-Type Energized Thermal Membrane": "Centum C-Type Thermal Energized Membrane",
|
||||
"Corpum B-Type Energized Adaptive Nano Membrane": "Corpum B-Type Multispectrum Energized Membrane",
|
||||
"Centum B-Type Energized Adaptive Nano Membrane": "Centum B-Type Multispectrum Energized Membrane",
|
||||
"Corpum B-Type Energized Kinetic Membrane": "Corpum B-Type Kinetic Energized Membrane",
|
||||
"Centum B-Type Energized Kinetic Membrane": "Centum B-Type Kinetic Energized Membrane",
|
||||
"Corpum B-Type Energized Explosive Membrane": "Corpum B-Type Explosive Energized Membrane",
|
||||
"Centum B-Type Energized Explosive Membrane": "Centum B-Type Explosive Energized Membrane",
|
||||
"Corpum B-Type Energized Thermal Membrane": "Corpum B-Type Thermal Energized Membrane",
|
||||
"Centum B-Type Energized Thermal Membrane": "Centum B-Type Thermal Energized Membrane",
|
||||
"Corpum A-Type Energized Thermal Membrane": "Corpum A-Type Thermal Energized Membrane",
|
||||
"Centum A-Type Energized Thermal Membrane": "Centum A-Type Thermal Energized Membrane",
|
||||
"Corpum A-Type Energized EM Membrane": "Corpum A-Type EM Energized Membrane",
|
||||
"Centum A-Type Energized EM Membrane": "Centum A-Type EM Energized Membrane",
|
||||
"Corpum A-Type Energized Explosive Membrane": "Corpum A-Type Explosive Energized Membrane",
|
||||
"Centum A-Type Energized Explosive Membrane": "Centum A-Type Explosive Energized Membrane",
|
||||
"Corpum A-Type Energized Kinetic Membrane": "Corpum A-Type Kinetic Energized Membrane",
|
||||
"Centum A-Type Energized Kinetic Membrane": "Centum A-Type Kinetic Energized Membrane",
|
||||
"Corpum A-Type Energized Adaptive Nano Membrane": "Corpum A-Type Multispectrum Energized Membrane",
|
||||
"Centum A-Type Energized Adaptive Nano Membrane": "Centum A-Type Multispectrum Energized Membrane",
|
||||
"Corpum B-Type Energized EM Membrane": "Corpum B-Type EM Energized Membrane",
|
||||
"Centum B-Type Energized EM Membrane": "Centum B-Type EM Energized Membrane",
|
||||
"'Pilfer' Energized Adaptive Nano Membrane I": "'Pilfer' Multispectrum Energized Membrane",
|
||||
"'Moonshine' Energized Thermal Membrane I": "'Moonshine' Thermal Energized Membrane",
|
||||
"'Mafia' Energized Kinetic Membrane I": "'Mafia' Kinetic Energized Membrane",
|
||||
"Khanid Navy Energized Adaptive Nano Membrane": "Khanid Navy Multispectrum Energized Membrane",
|
||||
"Khanid Navy Energized Kinetic Membrane": "Khanid Navy Kinetic Energized Membrane",
|
||||
"Khanid Navy Energized Explosive Membrane": "Khanid Navy Explosive Energized Membrane",
|
||||
"Khanid Navy Energized EM Membrane": "Khanid Navy EM Energized Membrane",
|
||||
"Khanid Navy Energized Thermal Membrane": "Khanid Navy Thermal Energized Membrane",
|
||||
"Large Compact Vorton projector": "Large Compact Vorton Projector",
|
||||
# Converted items
|
||||
"Experimental Energized Adaptive Nano Membrane I": "Compact Multispectrum Energized Membrane",
|
||||
"Limited Energized Adaptive Nano Membrane I": "Compact Multispectrum Energized Membrane",
|
||||
"Upgraded Energized Adaptive Nano Membrane I": "Compact Multispectrum Energized Membrane",
|
||||
"Experimental Energized Armor Layering Membrane I": "Compact Layered Energized Membrane",
|
||||
"Limited Energized Armor Layering Membrane I": "Compact Layered Energized Membrane",
|
||||
"Upgraded Energized Armor Layering Membrane I": "Compact Layered Energized Membrane",
|
||||
"Experimental Energized EM Membrane I": "Compact EM Energized Membrane",
|
||||
"Limited Energized EM Membrane I": "Compact EM Energized Membrane",
|
||||
"Upgraded Energized EM Membrane I": "Compact EM Energized Membrane",
|
||||
"Experimental Energized Explosive Membrane I": "Compact Explosive Energized Membrane",
|
||||
"Limited Energized Explosive Membrane I": "Compact Explosive Energized Membrane",
|
||||
"Upgraded Energized Explosive Membrane I": "Compact Explosive Energized Membrane",
|
||||
"Experimental Energized Kinetic Membrane I": "Compact Kinetic Energized Membrane",
|
||||
"Limited Energized Kinetic Membrane I": "Compact Kinetic Energized Membrane",
|
||||
"Upgraded Energized Kinetic Membrane I": "Compact Kinetic Energized Membrane",
|
||||
"Experimental Energized Thermal Membrane I": "Compact Thermal Energized Membrane",
|
||||
"Limited Energized Thermal Membrane I": "Compact Thermal Energized Membrane",
|
||||
"Upgraded Energized Thermal Membrane I": "Compact Thermal Energized Membrane",
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
"""
|
||||
Conversion pack for May 2020 release
|
||||
Conversion pack for July 2020 release
|
||||
"""
|
||||
|
||||
CONVERSIONS = {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
"""
|
||||
Conversion pack for May 2020 release
|
||||
Conversion pack for June 2020 release
|
||||
"""
|
||||
|
||||
CONVERSIONS = {
|
||||
|
||||
12
service/conversions/releaseSep2020.py
Normal file
12
service/conversions/releaseSep2020.py
Normal file
@@ -0,0 +1,12 @@
|
||||
"""
|
||||
Conversion pack for September 2020 release
|
||||
"""
|
||||
|
||||
CONVERSIONS = {
|
||||
# Renamed items
|
||||
"'Stalwart' Particle Field Magnifier": "Stalwart Restrained Shield Boost Amplifier",
|
||||
"'Copasetic' Particle Field Acceleration": "Copasetic Compact Shield Boost Amplifier",
|
||||
# Converted items
|
||||
"5a Prototype Shield Support I": "Stalwart Restrained Shield Boost Amplifier",
|
||||
"Ionic Field Accelerator I": "Copasetic Compact Shield Boost Amplifier"
|
||||
}
|
||||
@@ -447,7 +447,7 @@ class Fit:
|
||||
dp = sDP.getDamagePattern("Selected Ammo")
|
||||
if dp is None:
|
||||
dp = es_DamagePattern()
|
||||
dp.name = "Selected Ammo"
|
||||
dp.rawName = "Selected Ammo"
|
||||
|
||||
fit = eos.db.getFit(fitID)
|
||||
for attr in ("em", "thermal", "kinetic", "explosive"):
|
||||
|
||||
@@ -580,13 +580,19 @@ anti\-:
|
||||
# Armor modules
|
||||
eanm:
|
||||
- 'eanm'
|
||||
- 'energized adaptive nano membrane'
|
||||
- 'multispectrum energized membrane'
|
||||
enam: # mistype of "eanm"
|
||||
- 'enam'
|
||||
- 'energized adaptive nano membrane'
|
||||
- 'multispectrum energized membrane'
|
||||
mem:
|
||||
- 'mem'
|
||||
- 'multispectrum energized membrane'
|
||||
anp:
|
||||
- 'anp'
|
||||
- 'multispectrum coating'
|
||||
mc:
|
||||
- 'mc'
|
||||
- 'multispectrum coating'
|
||||
plating:
|
||||
- 'plating'
|
||||
- 'coating'
|
||||
@@ -621,6 +627,15 @@ laar:
|
||||
caar:
|
||||
- 'caar'
|
||||
- 'capital ancillary (.+ )?(?<!remote )armor repairer'
|
||||
25k:
|
||||
- '25k'
|
||||
- '25000'
|
||||
25kmm:
|
||||
- '25kmm'
|
||||
- '25000mm'
|
||||
25m:
|
||||
- '25m'
|
||||
- '25000mm'
|
||||
|
||||
# Hull modules
|
||||
dc:
|
||||
@@ -643,6 +658,18 @@ cehe:
|
||||
- 'capital (.+ )?emergency hull energizer'
|
||||
|
||||
# Propulsion modules and upgrades
|
||||
10k:
|
||||
- '10k'
|
||||
- '10000'
|
||||
10kmn:
|
||||
- '10kmn'
|
||||
- '10000mn'
|
||||
50k:
|
||||
- '50k'
|
||||
- '50000'
|
||||
50kmn:
|
||||
- '50kmn'
|
||||
- '50000mn'
|
||||
ab:
|
||||
- '(^| )ab' # Checking only beginning of a word to remove unwanted spam
|
||||
- 'afterburner'
|
||||
|
||||
@@ -598,7 +598,7 @@ def _importCreateFit(lines):
|
||||
"""Create fit and set top-level entity (ship or citadel)."""
|
||||
fit = Fit()
|
||||
header = lines.pop(0)
|
||||
m = re.match('\[(?P<shipType>[\w\s]+),\s*(?P<fitName>.+)\]', header)
|
||||
m = re.match('\[(?P<shipType>[^,]+),\s*(?P<fitName>.+)\]', header)
|
||||
if not m:
|
||||
pyfalog.warning('service.port.eft.importEft: corrupted fit header')
|
||||
raise EftImportError
|
||||
|
||||
@@ -7353,8 +7353,7 @@
|
||||
"displayName": "Meta Level",
|
||||
"displayNameID": 233633,
|
||||
"highIsGood": 1,
|
||||
"iconID": 0,
|
||||
"name": "metaLevel",
|
||||
"name": "metaLevelOld",
|
||||
"published": 1,
|
||||
"stackable": 1,
|
||||
"unitID": 140
|
||||
@@ -25853,7 +25852,7 @@
|
||||
"displayName": "Missile Damage Bonus",
|
||||
"displayNameID": 311932,
|
||||
"highIsGood": 1,
|
||||
"iconID": 0,
|
||||
"iconID": 1397,
|
||||
"name": "siegeMissileDamageBonus",
|
||||
"published": 1,
|
||||
"stackable": 1,
|
||||
@@ -26320,7 +26319,7 @@
|
||||
"displayName": "Armor Repairer / Shield Booster Duration Bonus",
|
||||
"displayNameID": 312084,
|
||||
"highIsGood": 1,
|
||||
"iconID": 0,
|
||||
"iconID": 2104,
|
||||
"name": "siegeLocalLogisticsDurationBonus",
|
||||
"published": 1,
|
||||
"stackable": 1,
|
||||
@@ -26335,7 +26334,7 @@
|
||||
"displayName": "Armor Repairer / Shield Booster Amount Bonus",
|
||||
"displayNameID": 312085,
|
||||
"highIsGood": 1,
|
||||
"iconID": 0,
|
||||
"iconID": 2104,
|
||||
"name": "siegeLocalLogisticsAmountBonus",
|
||||
"published": 1,
|
||||
"stackable": 1,
|
||||
@@ -32546,5 +32545,50 @@
|
||||
"name": "showSystemInfoBubble",
|
||||
"published": 0,
|
||||
"stackable": 0
|
||||
},
|
||||
"3095": {
|
||||
"attributeID": 3095,
|
||||
"categoryID": 7,
|
||||
"dataType": 5,
|
||||
"defaultValue": 0.0,
|
||||
"displayName": "Probe Strength Bonus",
|
||||
"displayNameID": 568981,
|
||||
"highIsGood": 1,
|
||||
"name": "scanProbeStrengthBonus",
|
||||
"published": 1,
|
||||
"stackable": 0,
|
||||
"unitID": 105
|
||||
},
|
||||
"3098": {
|
||||
"attributeID": 3098,
|
||||
"dataType": 5,
|
||||
"defaultValue": 0.0,
|
||||
"highIsGood": 0,
|
||||
"name": "armorRepairDurationBonus",
|
||||
"published": 0,
|
||||
"stackable": 0
|
||||
},
|
||||
"3099": {
|
||||
"attributeID": 3099,
|
||||
"dataType": 5,
|
||||
"defaultValue": 0.0,
|
||||
"highIsGood": 0,
|
||||
"name": "shieldBoosterDurationBonus",
|
||||
"published": 0,
|
||||
"stackable": 0
|
||||
},
|
||||
"3101": {
|
||||
"attributeID": 3101,
|
||||
"categoryID": 1,
|
||||
"dataType": 11,
|
||||
"defaultValue": 0.0,
|
||||
"description": "Describes which type of deed fits in this structure",
|
||||
"displayName": "Quantum Core Type",
|
||||
"displayNameID": 569361,
|
||||
"highIsGood": 0,
|
||||
"name": "structureRequiresDeedType",
|
||||
"published": 1,
|
||||
"stackable": 0,
|
||||
"unitID": 116
|
||||
}
|
||||
}
|
||||
@@ -40835,8 +40835,6 @@
|
||||
"rangeChance": 0
|
||||
},
|
||||
"5229": {
|
||||
"description": "Automatically generated effect",
|
||||
"descriptionID": 286583,
|
||||
"disallowAutoRepeat": 0,
|
||||
"effectCategory": 0,
|
||||
"effectID": 5229,
|
||||
@@ -77788,9 +77786,8 @@
|
||||
"disallowAutoRepeat": 0,
|
||||
"effectCategory": 7,
|
||||
"effectID": 7237,
|
||||
"effectName": "\tsystemWarpSpeed",
|
||||
"effectName": "systemWarpSpeedBonus",
|
||||
"electronicChance": 0,
|
||||
"guid": "",
|
||||
"isAssistance": 0,
|
||||
"isOffensive": 0,
|
||||
"isWarpSafe": 0,
|
||||
@@ -79226,5 +79223,325 @@
|
||||
"propulsionChance": 0,
|
||||
"published": 0,
|
||||
"rangeChance": 0
|
||||
},
|
||||
"8074": {
|
||||
"disallowAutoRepeat": 0,
|
||||
"effectCategory": 0,
|
||||
"effectID": 8074,
|
||||
"effectName": "shipBonusPC2maxRange",
|
||||
"electronicChance": 0,
|
||||
"isAssistance": 0,
|
||||
"isOffensive": 0,
|
||||
"isWarpSafe": 0,
|
||||
"modifierInfo": [
|
||||
{
|
||||
"domain": "shipID",
|
||||
"func": "LocationRequiredSkillModifier",
|
||||
"modifiedAttributeID": 54,
|
||||
"modifyingAttributeID": 2765,
|
||||
"operation": 6,
|
||||
"skillTypeID": 47871
|
||||
}
|
||||
],
|
||||
"propulsionChance": 0,
|
||||
"published": 0,
|
||||
"rangeChance": 0
|
||||
},
|
||||
"8075": {
|
||||
"disallowAutoRepeat": 0,
|
||||
"effectCategory": 7,
|
||||
"effectID": 8075,
|
||||
"effectName": "systemHullEmResistance",
|
||||
"electronicChance": 0,
|
||||
"isAssistance": 0,
|
||||
"isOffensive": 0,
|
||||
"isWarpSafe": 0,
|
||||
"modifierInfo": [
|
||||
{
|
||||
"domain": "shipID",
|
||||
"func": "ItemModifier",
|
||||
"modifiedAttributeID": 113,
|
||||
"modifyingAttributeID": 984,
|
||||
"operation": 6
|
||||
}
|
||||
],
|
||||
"propulsionChance": 0,
|
||||
"published": 0,
|
||||
"rangeChance": 0
|
||||
},
|
||||
"8076": {
|
||||
"disallowAutoRepeat": 0,
|
||||
"effectCategory": 7,
|
||||
"effectID": 8076,
|
||||
"effectName": "systemHullThermalResistance",
|
||||
"electronicChance": 0,
|
||||
"isAssistance": 0,
|
||||
"isOffensive": 0,
|
||||
"isWarpSafe": 0,
|
||||
"modifierInfo": [
|
||||
{
|
||||
"domain": "shipID",
|
||||
"func": "ItemModifier",
|
||||
"modifiedAttributeID": 110,
|
||||
"modifyingAttributeID": 987,
|
||||
"operation": 6
|
||||
}
|
||||
],
|
||||
"propulsionChance": 0,
|
||||
"published": 0,
|
||||
"rangeChance": 0
|
||||
},
|
||||
"8077": {
|
||||
"disallowAutoRepeat": 0,
|
||||
"effectCategory": 7,
|
||||
"effectID": 8077,
|
||||
"effectName": "systemHullKineticResistance",
|
||||
"electronicChance": 0,
|
||||
"isAssistance": 0,
|
||||
"isOffensive": 0,
|
||||
"isWarpSafe": 0,
|
||||
"modifierInfo": [
|
||||
{
|
||||
"domain": "shipID",
|
||||
"func": "ItemModifier",
|
||||
"modifiedAttributeID": 109,
|
||||
"modifyingAttributeID": 986,
|
||||
"operation": 6
|
||||
}
|
||||
],
|
||||
"propulsionChance": 0,
|
||||
"published": 0,
|
||||
"rangeChance": 0
|
||||
},
|
||||
"8078": {
|
||||
"disallowAutoRepeat": 0,
|
||||
"effectCategory": 7,
|
||||
"effectID": 8078,
|
||||
"effectName": "systemHullExplosiveResistance",
|
||||
"electronicChance": 0,
|
||||
"isAssistance": 0,
|
||||
"isOffensive": 0,
|
||||
"isWarpSafe": 0,
|
||||
"modifierInfo": [
|
||||
{
|
||||
"domain": "shipID",
|
||||
"func": "ItemModifier",
|
||||
"modifiedAttributeID": 111,
|
||||
"modifyingAttributeID": 985,
|
||||
"operation": 6
|
||||
}
|
||||
],
|
||||
"propulsionChance": 0,
|
||||
"published": 0,
|
||||
"rangeChance": 0
|
||||
},
|
||||
"8079": {
|
||||
"disallowAutoRepeat": 0,
|
||||
"effectCategory": 7,
|
||||
"effectID": 8079,
|
||||
"effectName": "systemVirusCoherenceBonus",
|
||||
"electronicChance": 0,
|
||||
"isAssistance": 0,
|
||||
"isOffensive": 0,
|
||||
"isWarpSafe": 0,
|
||||
"modifierInfo": [
|
||||
{
|
||||
"domain": "shipID",
|
||||
"func": "LocationRequiredSkillModifier",
|
||||
"modifiedAttributeID": 1909,
|
||||
"modifyingAttributeID": 1915,
|
||||
"operation": 2,
|
||||
"skillTypeID": 13278
|
||||
},
|
||||
{
|
||||
"domain": "shipID",
|
||||
"func": "LocationRequiredSkillModifier",
|
||||
"modifiedAttributeID": 1909,
|
||||
"modifyingAttributeID": 1915,
|
||||
"operation": 2,
|
||||
"skillTypeID": 21718
|
||||
}
|
||||
],
|
||||
"propulsionChance": 0,
|
||||
"published": 0,
|
||||
"rangeChance": 0
|
||||
},
|
||||
"8080": {
|
||||
"disallowAutoRepeat": 0,
|
||||
"effectCategory": 7,
|
||||
"effectID": 8080,
|
||||
"effectName": "systemProbeStrengthBonus",
|
||||
"electronicChance": 0,
|
||||
"isAssistance": 0,
|
||||
"isOffensive": 0,
|
||||
"isWarpSafe": 0,
|
||||
"modifierInfo": [
|
||||
{
|
||||
"domain": "charID",
|
||||
"func": "OwnerRequiredSkillModifier",
|
||||
"modifiedAttributeID": 1371,
|
||||
"modifyingAttributeID": 3095,
|
||||
"operation": 6,
|
||||
"skillTypeID": 3412
|
||||
}
|
||||
],
|
||||
"propulsionChance": 0,
|
||||
"published": 0,
|
||||
"rangeChance": 0
|
||||
},
|
||||
"8081": {
|
||||
"disallowAutoRepeat": 0,
|
||||
"effectCategory": 7,
|
||||
"effectID": 8081,
|
||||
"effectName": "systemDisallowCloaking",
|
||||
"electronicChance": 0,
|
||||
"isAssistance": 0,
|
||||
"isOffensive": 0,
|
||||
"isWarpSafe": 0,
|
||||
"modifierInfo": [
|
||||
{
|
||||
"domain": "shipID",
|
||||
"func": "ItemModifier",
|
||||
"modifiedAttributeID": 2454,
|
||||
"modifyingAttributeID": 2454,
|
||||
"operation": 2
|
||||
}
|
||||
],
|
||||
"propulsionChance": 0,
|
||||
"published": 0,
|
||||
"rangeChance": 0
|
||||
},
|
||||
"8082": {
|
||||
"disallowAutoRepeat": 0,
|
||||
"effectCategory": 7,
|
||||
"effectID": 8082,
|
||||
"effectName": "systemScanResolutionBonus",
|
||||
"electronicChance": 0,
|
||||
"isAssistance": 0,
|
||||
"isOffensive": 0,
|
||||
"isWarpSafe": 0,
|
||||
"modifierInfo": [
|
||||
{
|
||||
"domain": "shipID",
|
||||
"func": "ItemModifier",
|
||||
"modifiedAttributeID": 564,
|
||||
"modifyingAttributeID": 566,
|
||||
"operation": 6
|
||||
}
|
||||
],
|
||||
"propulsionChance": 0,
|
||||
"published": 0,
|
||||
"rangeChance": 0
|
||||
},
|
||||
"8083": {
|
||||
"disallowAutoRepeat": 0,
|
||||
"effectCategory": 7,
|
||||
"effectID": 8083,
|
||||
"effectName": "systemArmorRepairerDurationBonus",
|
||||
"electronicChance": 0,
|
||||
"isAssistance": 0,
|
||||
"isOffensive": 0,
|
||||
"isWarpSafe": 0,
|
||||
"modifierInfo": [
|
||||
{
|
||||
"domain": "shipID",
|
||||
"func": "LocationRequiredSkillModifier",
|
||||
"modifiedAttributeID": 73,
|
||||
"modifyingAttributeID": 3098,
|
||||
"operation": 6,
|
||||
"skillTypeID": 3393
|
||||
},
|
||||
{
|
||||
"domain": "shipID",
|
||||
"func": "LocationRequiredSkillModifier",
|
||||
"modifiedAttributeID": 73,
|
||||
"modifyingAttributeID": 3098,
|
||||
"operation": 6,
|
||||
"skillTypeID": 21803
|
||||
}
|
||||
],
|
||||
"propulsionChance": 0,
|
||||
"published": 0,
|
||||
"rangeChance": 0
|
||||
},
|
||||
"8084": {
|
||||
"disallowAutoRepeat": 0,
|
||||
"effectCategory": 7,
|
||||
"effectID": 8084,
|
||||
"effectName": "systemShieldBoosterDurationBonus",
|
||||
"electronicChance": 0,
|
||||
"isAssistance": 0,
|
||||
"isOffensive": 0,
|
||||
"isWarpSafe": 0,
|
||||
"modifierInfo": [
|
||||
{
|
||||
"domain": "shipID",
|
||||
"func": "LocationRequiredSkillModifier",
|
||||
"modifiedAttributeID": 73,
|
||||
"modifyingAttributeID": 3099,
|
||||
"operation": 6,
|
||||
"skillTypeID": 3416
|
||||
},
|
||||
{
|
||||
"domain": "shipID",
|
||||
"func": "LocationRequiredSkillModifier",
|
||||
"modifiedAttributeID": 73,
|
||||
"modifyingAttributeID": 3099,
|
||||
"operation": 6,
|
||||
"skillTypeID": 21802
|
||||
}
|
||||
],
|
||||
"propulsionChance": 0,
|
||||
"published": 0,
|
||||
"rangeChance": 0
|
||||
},
|
||||
"8085": {
|
||||
"disallowAutoRepeat": 0,
|
||||
"effectCategory": 7,
|
||||
"effectID": 8085,
|
||||
"effectName": "systemFighterExplosionRadius",
|
||||
"electronicChance": 0,
|
||||
"isAssistance": 0,
|
||||
"isOffensive": 0,
|
||||
"isWarpSafe": 0,
|
||||
"modifierInfo": [
|
||||
{
|
||||
"domain": "charID",
|
||||
"func": "OwnerRequiredSkillModifier",
|
||||
"modifiedAttributeID": 2234,
|
||||
"modifyingAttributeID": 1967,
|
||||
"operation": 4,
|
||||
"skillTypeID": 23069
|
||||
},
|
||||
{
|
||||
"domain": "charID",
|
||||
"func": "OwnerRequiredSkillModifier",
|
||||
"modifiedAttributeID": 2125,
|
||||
"modifyingAttributeID": 1967,
|
||||
"operation": 4,
|
||||
"skillTypeID": 23069
|
||||
}
|
||||
],
|
||||
"propulsionChance": 0,
|
||||
"published": 0,
|
||||
"rangeChance": 0
|
||||
},
|
||||
"8088": {
|
||||
"disallowAutoRepeat": 0,
|
||||
"dischargeAttributeID": 6,
|
||||
"distribution": 2,
|
||||
"durationAttributeID": 51,
|
||||
"effectCategory": 2,
|
||||
"effectID": 8088,
|
||||
"effectName": "EntityChainLightning",
|
||||
"electronicChance": 0,
|
||||
"guid": "effects.AttackMode",
|
||||
"isAssistance": 0,
|
||||
"isOffensive": 1,
|
||||
"isWarpSafe": 0,
|
||||
"propulsionChance": 0,
|
||||
"published": 0,
|
||||
"rangeAttributeID": 54,
|
||||
"rangeChance": 0
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -2528,11 +2528,11 @@
|
||||
"parentGroupID": 14
|
||||
},
|
||||
"541": {
|
||||
"description": "An advanced form of mechanically enhanced armor plating upgrades.",
|
||||
"description": "Energized Armor Resistance Membranes",
|
||||
"descriptionID": 64723,
|
||||
"hasTypes": 0,
|
||||
"iconID": 2066,
|
||||
"name": "Energized Plating",
|
||||
"name": "Energized Armor Resistance Membranes",
|
||||
"nameID": 65797,
|
||||
"parentGroupID": 14
|
||||
},
|
||||
@@ -9051,11 +9051,11 @@
|
||||
"parentGroupID": 214
|
||||
},
|
||||
"1543": {
|
||||
"description": "Blueprints for Energized Plating",
|
||||
"description": "Blueprints for Energized Armor Membranes",
|
||||
"descriptionID": 281321,
|
||||
"hasTypes": 1,
|
||||
"iconID": 2703,
|
||||
"name": "Energized Plating",
|
||||
"name": "Energized Armor Membranes",
|
||||
"nameID": 281320,
|
||||
"parentGroupID": 214
|
||||
},
|
||||
@@ -9989,56 +9989,56 @@
|
||||
"parentGroupID": 535
|
||||
},
|
||||
"1682": {
|
||||
"description": "Energized Explosive Plating",
|
||||
"description": "Explosive Energized Membranes",
|
||||
"descriptionID": 285386,
|
||||
"hasTypes": 1,
|
||||
"iconID": 1395,
|
||||
"name": "Energized Explosive Plating",
|
||||
"name": "Explosive Energized Membranes",
|
||||
"nameID": 285385,
|
||||
"parentGroupID": 541
|
||||
},
|
||||
"1683": {
|
||||
"description": "Energized Thermal Plating",
|
||||
"description": "Thermal Energized Membranes",
|
||||
"descriptionID": 285388,
|
||||
"hasTypes": 1,
|
||||
"iconID": 1394,
|
||||
"name": "Energized Thermal Plating",
|
||||
"name": "Thermal Energized Membranes",
|
||||
"nameID": 285387,
|
||||
"parentGroupID": 541
|
||||
},
|
||||
"1684": {
|
||||
"description": "Energized EM Plating",
|
||||
"description": "EM Energized Membranes",
|
||||
"descriptionID": 285390,
|
||||
"hasTypes": 1,
|
||||
"iconID": 1396,
|
||||
"name": "Energized EM Plating",
|
||||
"name": "EM Energized Membranes",
|
||||
"nameID": 285389,
|
||||
"parentGroupID": 541
|
||||
},
|
||||
"1685": {
|
||||
"description": "Energized Kinetic Plating",
|
||||
"description": "Kinetic Energized Membranes",
|
||||
"descriptionID": 285392,
|
||||
"hasTypes": 1,
|
||||
"iconID": 1393,
|
||||
"name": "Energized Kinetic Plating",
|
||||
"name": "Kinetic Energized Membranes",
|
||||
"nameID": 285391,
|
||||
"parentGroupID": 541
|
||||
},
|
||||
"1686": {
|
||||
"description": "Energized Adaptive Plating",
|
||||
"description": "Multispectrum Energized Membranes",
|
||||
"descriptionID": 285394,
|
||||
"hasTypes": 1,
|
||||
"iconID": 2066,
|
||||
"name": "Energized Adaptive Plating",
|
||||
"name": "Multispectrum Energized Membranes",
|
||||
"nameID": 285393,
|
||||
"parentGroupID": 541
|
||||
},
|
||||
"1687": {
|
||||
"description": "Energized Armor Layering",
|
||||
"description": "Layered Energized Armor Membranes",
|
||||
"descriptionID": 285396,
|
||||
"hasTypes": 1,
|
||||
"iconID": 2066,
|
||||
"name": "Energized Armor Layering",
|
||||
"name": "Layered Energized Armor Membranes",
|
||||
"nameID": 285395,
|
||||
"parentGroupID": 14
|
||||
},
|
||||
@@ -16182,5 +16182,54 @@
|
||||
"name": "Proving Ground Filaments",
|
||||
"nameID": 567624,
|
||||
"parentGroupID": 2456
|
||||
},
|
||||
"2749": {
|
||||
"description": "Quantum Cores are FTL communications facillities vital to the efficient operation of Upwell structures.",
|
||||
"descriptionID": 569752,
|
||||
"hasTypes": 1,
|
||||
"iconID": 21729,
|
||||
"name": "Quantum Cores",
|
||||
"nameID": 569644,
|
||||
"parentGroupID": 2202
|
||||
},
|
||||
"2750": {
|
||||
"description": "Capital Astronautic Mutaplasmids",
|
||||
"descriptionID": 569939,
|
||||
"hasTypes": 1,
|
||||
"name": "Capital Astronautic Mutaplasmids",
|
||||
"nameID": 569938,
|
||||
"parentGroupID": 2439
|
||||
},
|
||||
"2751": {
|
||||
"description": "Capital Armor Mutaplasmids",
|
||||
"descriptionID": 569941,
|
||||
"hasTypes": 1,
|
||||
"name": "Capital Armor Mutaplasmids",
|
||||
"nameID": 569940,
|
||||
"parentGroupID": 2437
|
||||
},
|
||||
"2752": {
|
||||
"description": "Capital Shield Mutaplasmids",
|
||||
"descriptionID": 569944,
|
||||
"hasTypes": 1,
|
||||
"name": "Capital Shield Mutaplasmids",
|
||||
"nameID": 569943,
|
||||
"parentGroupID": 2438
|
||||
},
|
||||
"2753": {
|
||||
"description": "Capital Engineering Mutaplasmids",
|
||||
"descriptionID": 569946,
|
||||
"hasTypes": 1,
|
||||
"name": "Capital Engineering Mutaplasmids",
|
||||
"nameID": 569945,
|
||||
"parentGroupID": 2440
|
||||
},
|
||||
"2754": {
|
||||
"description": "Siege Module Mutaplasmids",
|
||||
"descriptionID": 569952,
|
||||
"hasTypes": 1,
|
||||
"name": "Siege Module Mutaplasmids",
|
||||
"nameID": 569951,
|
||||
"parentGroupID": 2512
|
||||
}
|
||||
}
|
||||
@@ -19957,6 +19957,21 @@
|
||||
"33529": {
|
||||
"3411": 5
|
||||
},
|
||||
"33530": {
|
||||
"21718": 1
|
||||
},
|
||||
"33531": {
|
||||
"21718": 1
|
||||
},
|
||||
"33532": {
|
||||
"21718": 1
|
||||
},
|
||||
"33533": {
|
||||
"21718": 1
|
||||
},
|
||||
"33534": {
|
||||
"21718": 1
|
||||
},
|
||||
"33553": {
|
||||
"3332": 2,
|
||||
"3335": 2
|
||||
@@ -25595,6 +25610,12 @@
|
||||
"55859": {
|
||||
"3402": 1
|
||||
},
|
||||
"55860": {
|
||||
"3394": 3
|
||||
},
|
||||
"55862": {
|
||||
"3394": 3
|
||||
},
|
||||
"55927": {
|
||||
"3402": 1
|
||||
},
|
||||
@@ -25624,5 +25645,79 @@
|
||||
},
|
||||
"55977": {
|
||||
"3402": 1
|
||||
},
|
||||
"56128": {
|
||||
"3402": 1
|
||||
},
|
||||
"56129": {
|
||||
"3402": 1
|
||||
},
|
||||
"56130": {
|
||||
"3402": 1
|
||||
},
|
||||
"56179": {
|
||||
"3402": 1
|
||||
},
|
||||
"56180": {
|
||||
"3402": 1
|
||||
},
|
||||
"56181": {
|
||||
"3402": 1
|
||||
},
|
||||
"56182": {
|
||||
"3402": 1
|
||||
},
|
||||
"56183": {
|
||||
"3402": 1
|
||||
},
|
||||
"56184": {
|
||||
"3402": 1
|
||||
},
|
||||
"56185": {
|
||||
"3402": 1
|
||||
},
|
||||
"56186": {
|
||||
"3402": 1
|
||||
},
|
||||
"56187": {
|
||||
"3402": 1
|
||||
},
|
||||
"56303": {
|
||||
"3435": 5,
|
||||
"3449": 5
|
||||
},
|
||||
"56304": {
|
||||
"3435": 5
|
||||
},
|
||||
"56305": {
|
||||
"3450": 4
|
||||
},
|
||||
"56306": {
|
||||
"3454": 4
|
||||
},
|
||||
"56307": {
|
||||
"21803": 4
|
||||
},
|
||||
"56308": {
|
||||
"3392": 3,
|
||||
"21803": 1
|
||||
},
|
||||
"56309": {
|
||||
"21802": 4
|
||||
},
|
||||
"56310": {
|
||||
"21802": 4
|
||||
},
|
||||
"56311": {
|
||||
"3423": 5
|
||||
},
|
||||
"56312": {
|
||||
"3423": 5
|
||||
},
|
||||
"56313": {
|
||||
"22043": 1
|
||||
},
|
||||
"56362": {
|
||||
"11584": 1
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1373,39 +1373,33 @@
|
||||
},
|
||||
"80": {
|
||||
"aggregateMode": "Minimum",
|
||||
"developerDescription": "AOE_Beacon_caustic_cloud_local_repair",
|
||||
"displayName": "Local Armor Repairer penalty",
|
||||
"developerDescription": "AOE_Beacon_caustic_cloud_inertia",
|
||||
"displayName": "Inertia Bonus",
|
||||
"displayNameID": 532902,
|
||||
"itemModifiers": [],
|
||||
"locationGroupModifiers": [],
|
||||
"locationModifiers": [],
|
||||
"locationRequiredSkillModifiers": [
|
||||
"itemModifiers": [
|
||||
{
|
||||
"dogmaAttributeID": 84,
|
||||
"skillID": 3393
|
||||
"dogmaAttributeID": 70
|
||||
}
|
||||
],
|
||||
"locationGroupModifiers": [],
|
||||
"locationModifiers": [],
|
||||
"locationRequiredSkillModifiers": [],
|
||||
"operationName": "PostPercent",
|
||||
"showOutputValueInUI": "ShowNormal"
|
||||
},
|
||||
"81": {
|
||||
"aggregateMode": "Minimum",
|
||||
"developerDescription": "AOE_Beacon_caustic_cloud_remote_repair",
|
||||
"displayName": "Remote Armor Repairer penalty",
|
||||
"developerDescription": "AOE_Beacon_caustic_cloud_velocity",
|
||||
"displayName": "Max Velocity Bonus",
|
||||
"displayNameID": 532901,
|
||||
"itemModifiers": [
|
||||
{
|
||||
"dogmaAttributeID": 84
|
||||
"dogmaAttributeID": 37
|
||||
}
|
||||
],
|
||||
"locationGroupModifiers": [],
|
||||
"locationModifiers": [],
|
||||
"locationRequiredSkillModifiers": [
|
||||
{
|
||||
"dogmaAttributeID": 84,
|
||||
"skillID": 16069
|
||||
}
|
||||
],
|
||||
"locationRequiredSkillModifiers": [],
|
||||
"operationName": "PostPercent",
|
||||
"showOutputValueInUI": "ShowNormal"
|
||||
},
|
||||
|
||||
@@ -8450,7 +8450,7 @@
|
||||
"categoryID": 7,
|
||||
"fittableNonSingleton": false,
|
||||
"groupID": 326,
|
||||
"groupName": "Armor Plating Energized",
|
||||
"groupName": "Energized Armor Membrane",
|
||||
"groupNameID": 63791,
|
||||
"iconID": 0,
|
||||
"published": true,
|
||||
@@ -9791,6 +9791,17 @@
|
||||
"published": true,
|
||||
"useBasePrice": true
|
||||
},
|
||||
"4086": {
|
||||
"anchorable": false,
|
||||
"anchored": false,
|
||||
"categoryID": 66,
|
||||
"fittableNonSingleton": false,
|
||||
"groupID": 4086,
|
||||
"groupName": "Quantum Cores",
|
||||
"groupNameID": 569641,
|
||||
"published": true,
|
||||
"useBasePrice": true
|
||||
},
|
||||
"409": {
|
||||
"anchorable": false,
|
||||
"anchored": false,
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,10 +1,10 @@
|
||||
[
|
||||
{
|
||||
"field_name": "client_build",
|
||||
"field_value": 1777281
|
||||
"field_value": 1805757
|
||||
},
|
||||
{
|
||||
"field_name": "dump_time",
|
||||
"field_value": 1595924073
|
||||
"field_value": 1600240135
|
||||
}
|
||||
]
|
||||
@@ -159,6 +159,36 @@
|
||||
},
|
||||
"typeID": 22466
|
||||
},
|
||||
{
|
||||
"traits": {
|
||||
"misc": {
|
||||
"bonuses": [
|
||||
{
|
||||
"number": "25%",
|
||||
"text": "reduction in ship kinetic resistances"
|
||||
},
|
||||
{
|
||||
"number": "50%",
|
||||
"text": "bonus to ship scan resolution"
|
||||
},
|
||||
{
|
||||
"number": "25%",
|
||||
"text": "bonus to mining laser cycle speed"
|
||||
},
|
||||
{
|
||||
"number": "25%",
|
||||
"text": "bonus to local Armor Repairer and Shield Booster cycle speed"
|
||||
},
|
||||
{
|
||||
"number": "100%",
|
||||
"text": "bonus to ship warp speed"
|
||||
}
|
||||
],
|
||||
"header": "Misc bonus:"
|
||||
}
|
||||
},
|
||||
"typeID": 56059
|
||||
},
|
||||
{
|
||||
"traits": {
|
||||
"role": {
|
||||
@@ -1101,34 +1131,30 @@
|
||||
"misc": {
|
||||
"bonuses": [
|
||||
{
|
||||
"number": "44%",
|
||||
"text": "bonus to ship velocity"
|
||||
"number": "10%",
|
||||
"text": "reduction in ship kinetic resistances"
|
||||
},
|
||||
{
|
||||
"number": "44%",
|
||||
"text": "bonus to maximum targeting range"
|
||||
"number": "20%",
|
||||
"text": "bonus to ship scan resolution"
|
||||
},
|
||||
{
|
||||
"number": "22%",
|
||||
"text": "bonus to missile velocity"
|
||||
"number": "10%",
|
||||
"text": "bonus to mining laser cycle speed"
|
||||
},
|
||||
{
|
||||
"number": "44%",
|
||||
"text": "bonus to missile explosion velocity"
|
||||
"number": "10%",
|
||||
"text": "bonus to local Armor Repairer and Shield Booster cycle speed"
|
||||
},
|
||||
{
|
||||
"number": "22%",
|
||||
"text": "penalty to ship agility"
|
||||
},
|
||||
{
|
||||
"number": "22%",
|
||||
"text": "penalty to stasis webifier strength"
|
||||
"number": "40%",
|
||||
"text": "bonus to ship warp speed"
|
||||
}
|
||||
],
|
||||
"header": "Misc bonus:"
|
||||
}
|
||||
},
|
||||
"typeID": 30850
|
||||
"typeID": 56058
|
||||
},
|
||||
{
|
||||
"traits": {
|
||||
@@ -1312,6 +1338,35 @@
|
||||
},
|
||||
"typeID": 598
|
||||
},
|
||||
{
|
||||
"traits": {
|
||||
"misc": {
|
||||
"bonuses": [
|
||||
{
|
||||
"number": "25%",
|
||||
"text": "reduction in ship EM resistances"
|
||||
},
|
||||
{
|
||||
"number": "25%",
|
||||
"text": "bonus to ship capacitor recharge rate"
|
||||
},
|
||||
{
|
||||
"number": "25+",
|
||||
"text": "bonus to Relic and Data Analyzer virus coherence"
|
||||
},
|
||||
{
|
||||
"number": "50%",
|
||||
"text": "bonus to Core and Combat Scanner Probe strength"
|
||||
},
|
||||
{
|
||||
"text": "·Cloaking devices cannot operate within systems affected by this storm"
|
||||
}
|
||||
],
|
||||
"header": "Misc bonus:"
|
||||
}
|
||||
},
|
||||
"typeID": 56057
|
||||
},
|
||||
{
|
||||
"traits": {
|
||||
"role": {
|
||||
@@ -2489,6 +2544,40 @@
|
||||
},
|
||||
"typeID": 28710
|
||||
},
|
||||
{
|
||||
"traits": {
|
||||
"misc": {
|
||||
"bonuses": [
|
||||
{
|
||||
"number": "44%",
|
||||
"text": "bonus to ship velocity"
|
||||
},
|
||||
{
|
||||
"number": "44%",
|
||||
"text": "bonus to maximum targeting range"
|
||||
},
|
||||
{
|
||||
"number": "22%",
|
||||
"text": "bonus to missile velocity"
|
||||
},
|
||||
{
|
||||
"number": "44%",
|
||||
"text": "bonus to missile explosion velocity"
|
||||
},
|
||||
{
|
||||
"number": "22%",
|
||||
"text": "penalty to ship agility"
|
||||
},
|
||||
{
|
||||
"number": "22%",
|
||||
"text": "penalty to stasis webifier strength"
|
||||
}
|
||||
],
|
||||
"header": "Misc bonus:"
|
||||
}
|
||||
},
|
||||
"typeID": 30850
|
||||
},
|
||||
{
|
||||
"traits": {
|
||||
"skills": [
|
||||
@@ -5545,6 +5634,9 @@
|
||||
},
|
||||
{
|
||||
"text": "·While this structure has at least one online service module it enters full power mode and will gain increased shield and armor hitpoints and an extra reinforcement cycle"
|
||||
},
|
||||
{
|
||||
"text": "·This structure requires an Astrahus Upwell Quantum Core to be installed for anchoring to complete"
|
||||
}
|
||||
],
|
||||
"header": "Role Bonus:"
|
||||
@@ -5599,6 +5691,9 @@
|
||||
},
|
||||
{
|
||||
"text": "·While this structure has at least one online service module it enters full power mode and will gain increased shield and armor hitpoints and an extra reinforcement cycle"
|
||||
},
|
||||
{
|
||||
"text": "·This structure requires a Keepstar Upwell Quantum Core to be installed for anchoring to complete"
|
||||
}
|
||||
],
|
||||
"header": "Role Bonus:"
|
||||
@@ -5626,6 +5721,9 @@
|
||||
},
|
||||
{
|
||||
"text": "·While this structure has at least one online service module it enters full power mode and will gain increased shield and armor hitpoints and an extra reinforcement cycle."
|
||||
},
|
||||
{
|
||||
"text": "·This structure requires an Athanor Upwell Quantum Core to be installed for anchoring to complete"
|
||||
}
|
||||
],
|
||||
"header": "Role Bonus:"
|
||||
@@ -5661,6 +5759,9 @@
|
||||
},
|
||||
{
|
||||
"text": "·While this structure has at least one online service module it enters full power mode and will gain increased shield and armor hitpoints and an extra reinforcement cycle."
|
||||
},
|
||||
{
|
||||
"text": "·This structure requires a Tatara Upwell Quantum Core to be installed for anchoring to complete"
|
||||
}
|
||||
],
|
||||
"header": "Role Bonus:"
|
||||
@@ -6655,7 +6756,7 @@
|
||||
{
|
||||
"bonuses": [
|
||||
{
|
||||
"number": "15%",
|
||||
"number": "30%",
|
||||
"text": "bonus to Light Entropic Disintegrator optimal range"
|
||||
},
|
||||
{
|
||||
@@ -10242,6 +10343,9 @@
|
||||
},
|
||||
{
|
||||
"text": "·This structure is able to maintain a low-power state indefinitely, and so will not lapse to into an abandoned state."
|
||||
},
|
||||
{
|
||||
"text": "·This structure requires a Fortizar Upwell Quantum Core to be installed for anchoring to complete"
|
||||
}
|
||||
],
|
||||
"header": "Role Bonus:"
|
||||
@@ -10278,6 +10382,9 @@
|
||||
},
|
||||
{
|
||||
"text": "·This structure is able to maintain a low-power state indefinitely, and so will not lapse to into an abandoned state."
|
||||
},
|
||||
{
|
||||
"text": "·This structure requires a Fortizar Upwell Quantum Core to be installed for anchoring to complete"
|
||||
}
|
||||
],
|
||||
"header": "Role Bonus:"
|
||||
@@ -10310,6 +10417,9 @@
|
||||
},
|
||||
{
|
||||
"text": "·This structure is able to maintain a low-power state indefinitely, and so will not lapse to into an abandoned state."
|
||||
},
|
||||
{
|
||||
"text": "·This structure requires a Fortizar Upwell Quantum Core to be installed for anchoring to complete"
|
||||
}
|
||||
],
|
||||
"header": "Role Bonus:"
|
||||
@@ -10346,6 +10456,9 @@
|
||||
},
|
||||
{
|
||||
"text": "·This structure is able to maintain a low-power state indefinitely, and so will not lapse to into an abandoned state."
|
||||
},
|
||||
{
|
||||
"text": "·This structure requires a Fortizar Upwell Quantum Core to be installed for anchoring to complete"
|
||||
}
|
||||
],
|
||||
"header": "Role Bonus:"
|
||||
@@ -10374,6 +10487,9 @@
|
||||
},
|
||||
{
|
||||
"text": "·This structure is able to maintain a low-power state indefinitely, and so will not lapse to into an abandoned state."
|
||||
},
|
||||
{
|
||||
"text": "·This structure requires a Fortizar Upwell Quantum Core to be installed for anchoring to complete"
|
||||
}
|
||||
],
|
||||
"header": "Role Bonus:"
|
||||
@@ -12003,6 +12119,9 @@
|
||||
},
|
||||
{
|
||||
"text": "·While this structure has at least one online service module it enters full power mode and will gain increased shield and armor hitpoints and an extra reinforcement cycle"
|
||||
},
|
||||
{
|
||||
"text": "·This structure requires a Fortizar Upwell Quantum Core to be installed for anchoring to complete"
|
||||
}
|
||||
],
|
||||
"header": "Role Bonus:"
|
||||
@@ -16219,6 +16338,9 @@
|
||||
},
|
||||
{
|
||||
"text": "·Only one Upwell Palatine Keepstar may be deployed at a time in New Eden"
|
||||
},
|
||||
{
|
||||
"text": "·This structure requires a Keepstar Upwell Quantum Core to be installed for anchoring to complete"
|
||||
}
|
||||
],
|
||||
"header": "Role Bonus:"
|
||||
@@ -16226,6 +16348,26 @@
|
||||
},
|
||||
"typeID": 40340
|
||||
},
|
||||
{
|
||||
"traits": {
|
||||
"skills": [
|
||||
{
|
||||
"bonuses": [
|
||||
{
|
||||
"number": "7.5%",
|
||||
"text": "bonus to Small Hybrid Turret tracking speed"
|
||||
},
|
||||
{
|
||||
"number": "10%",
|
||||
"text": "bonus to Drone hitpoints and tracking speed"
|
||||
}
|
||||
],
|
||||
"header": "Gallente Frigate bonuses (per skill level):"
|
||||
}
|
||||
]
|
||||
},
|
||||
"typeID": 34443
|
||||
},
|
||||
{
|
||||
"traits": {
|
||||
"role": {
|
||||
@@ -16480,6 +16622,26 @@
|
||||
},
|
||||
"typeID": 23913
|
||||
},
|
||||
{
|
||||
"traits": {
|
||||
"skills": [
|
||||
{
|
||||
"bonuses": [
|
||||
{
|
||||
"number": "10%",
|
||||
"text": "bonus to Drone hitpoints and damage"
|
||||
},
|
||||
{
|
||||
"number": "7.5%",
|
||||
"text": "bonus to Drone optimal range and tracking speed"
|
||||
}
|
||||
],
|
||||
"header": "Gallente Battleship bonuses (per skill level):"
|
||||
}
|
||||
]
|
||||
},
|
||||
"typeID": 34441
|
||||
},
|
||||
{
|
||||
"traits": {
|
||||
"role": {
|
||||
@@ -20144,43 +20306,152 @@
|
||||
},
|
||||
{
|
||||
"traits": {
|
||||
"skills": [
|
||||
{
|
||||
"bonuses": [
|
||||
{
|
||||
"number": "7.5%",
|
||||
"text": "bonus to Small Hybrid Turret tracking speed"
|
||||
},
|
||||
{
|
||||
"number": "10%",
|
||||
"text": "bonus to Drone hitpoints and tracking speed"
|
||||
}
|
||||
],
|
||||
"header": "Gallente Frigate bonuses (per skill level):"
|
||||
}
|
||||
]
|
||||
"misc": {
|
||||
"bonuses": [
|
||||
{
|
||||
"number": "10%",
|
||||
"text": "reduction in ship explosive resistances"
|
||||
},
|
||||
{
|
||||
"number": "10%",
|
||||
"text": "bonus to ship shield hitpoints"
|
||||
},
|
||||
{
|
||||
"number": "10%",
|
||||
"text": "bonus to ship capacitor capacity"
|
||||
},
|
||||
{
|
||||
"number": "10%",
|
||||
"text": "reduction in ship signature radius"
|
||||
},
|
||||
{
|
||||
"number": "50%",
|
||||
"text": "reduction in Remote Armor Repairer and Remote Shield Booster effectiveness"
|
||||
}
|
||||
],
|
||||
"header": "Misc bonus:"
|
||||
}
|
||||
},
|
||||
"typeID": 34443
|
||||
"typeID": 56060
|
||||
},
|
||||
{
|
||||
"traits": {
|
||||
"skills": [
|
||||
{
|
||||
"bonuses": [
|
||||
{
|
||||
"number": "10%",
|
||||
"text": "bonus to Drone hitpoints and damage"
|
||||
},
|
||||
{
|
||||
"number": "7.5%",
|
||||
"text": "bonus to Drone optimal range and tracking speed"
|
||||
}
|
||||
],
|
||||
"header": "Gallente Battleship bonuses (per skill level):"
|
||||
}
|
||||
]
|
||||
"misc": {
|
||||
"bonuses": [
|
||||
{
|
||||
"number": "25%",
|
||||
"text": "reduction in ship explosive resistances"
|
||||
},
|
||||
{
|
||||
"number": "25%",
|
||||
"text": "bonus to ship shield hitpoints"
|
||||
},
|
||||
{
|
||||
"number": "25%",
|
||||
"text": "bonus to ship capacitor capacity"
|
||||
},
|
||||
{
|
||||
"number": "25%",
|
||||
"text": "reduction in ship signature radius"
|
||||
},
|
||||
{
|
||||
"number": "90%",
|
||||
"text": "reduction in Remote Armor Repairer and Remote Shield Booster effectiveness"
|
||||
}
|
||||
],
|
||||
"header": "Misc bonus:"
|
||||
}
|
||||
},
|
||||
"typeID": 34441
|
||||
"typeID": 56061
|
||||
},
|
||||
{
|
||||
"traits": {
|
||||
"misc": {
|
||||
"bonuses": [
|
||||
{
|
||||
"number": "10%",
|
||||
"text": "reduction in ship thermal resistances"
|
||||
},
|
||||
{
|
||||
"number": "10%",
|
||||
"text": "bonus to ship armor hitpoints"
|
||||
},
|
||||
{
|
||||
"number": "20%",
|
||||
"text": "bonus to turret, missile, drone, and fighter damage"
|
||||
},
|
||||
{
|
||||
"number": "20%",
|
||||
"text": "reduction in turret and drone tracking speed"
|
||||
},
|
||||
{
|
||||
"number": "20%",
|
||||
"text": "increase to missile and fighter explosion radius"
|
||||
}
|
||||
],
|
||||
"header": "Misc bonus:"
|
||||
}
|
||||
},
|
||||
"typeID": 56062
|
||||
},
|
||||
{
|
||||
"traits": {
|
||||
"misc": {
|
||||
"bonuses": [
|
||||
{
|
||||
"number": "25%",
|
||||
"text": "reduction in ship thermal resistances"
|
||||
},
|
||||
{
|
||||
"number": "25%",
|
||||
"text": "bonus to ship armor hitpoints"
|
||||
},
|
||||
{
|
||||
"number": "50%",
|
||||
"text": "bonus to turret, missile, drone, and fighter damage"
|
||||
},
|
||||
{
|
||||
"number": "50%",
|
||||
"text": "reduction in turret and drone tracking speed"
|
||||
},
|
||||
{
|
||||
"number": "50%",
|
||||
"text": "increase to missile and fighter explosion radius"
|
||||
}
|
||||
],
|
||||
"header": "Misc bonus:"
|
||||
}
|
||||
},
|
||||
"typeID": 56063
|
||||
},
|
||||
{
|
||||
"traits": {
|
||||
"misc": {
|
||||
"bonuses": [
|
||||
{
|
||||
"number": "10%",
|
||||
"text": "reduction in ship EM resistances"
|
||||
},
|
||||
{
|
||||
"number": "10%",
|
||||
"text": "bonus to ship capacitor recharge rate"
|
||||
},
|
||||
{
|
||||
"number": "10+",
|
||||
"text": "bonus to Relic and Data Analyzer virus coherence"
|
||||
},
|
||||
{
|
||||
"number": "20%",
|
||||
"text": "bonus to Core and Combat Scanner Probe strength"
|
||||
},
|
||||
{
|
||||
"text": "·Cloaking devices cannot operate within systems affected by this storm"
|
||||
}
|
||||
],
|
||||
"header": "Misc bonus:"
|
||||
}
|
||||
},
|
||||
"typeID": 56064
|
||||
},
|
||||
{
|
||||
"traits": {
|
||||
@@ -20274,8 +20545,8 @@
|
||||
"text": "bonus to Heavy Entropic Disintegrator damage"
|
||||
},
|
||||
{
|
||||
"number": "5%",
|
||||
"text": "bonus to Heavy Entropic Disintegrator tracking speed"
|
||||
"number": "7.5%",
|
||||
"text": "bonus to Heavy Entropic Disintegrator optimal range"
|
||||
}
|
||||
],
|
||||
"header": "Precursor Cruiser bonuses (per skill level):"
|
||||
@@ -20592,6 +20863,9 @@
|
||||
},
|
||||
{
|
||||
"text": "·While this structure has at least one online service module it enters full power mode and will gain increased shield and armor hitpoints and an extra reinforcement cycle."
|
||||
},
|
||||
{
|
||||
"text": "·This structure requires a Sotiyo Upwell Quantum Core to be installed for anchoring to complete"
|
||||
}
|
||||
],
|
||||
"header": "Role Bonus:"
|
||||
@@ -20625,6 +20899,9 @@
|
||||
},
|
||||
{
|
||||
"text": "·While this structure has at least one online service module it enters full power mode and will gain increased shield and armor hitpoints and an extra reinforcement cycle."
|
||||
},
|
||||
{
|
||||
"text": "·This structure requires an Azbel Upwell Quantum Core to be installed for anchoring to complete"
|
||||
}
|
||||
],
|
||||
"header": "Role Bonus:"
|
||||
@@ -20654,6 +20931,9 @@
|
||||
},
|
||||
{
|
||||
"text": "·While this structure has at least one online service module it enters full power mode and will gain increased shield and armor hitpoints and an extra reinforcement cycle."
|
||||
},
|
||||
{
|
||||
"text": "·This structure requires a Raitaru Upwell Quantum Core to be installed for anchoring to complete"
|
||||
}
|
||||
],
|
||||
"header": "Role Bonus:"
|
||||
|
||||
@@ -1 +1 @@
|
||||
version: v2.24.1
|
||||
version: v2.28.2
|
||||
|
||||
Reference in New Issue
Block a user