Compare commits
48 Commits
v2.25.0
...
v2.28.2dev
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c1302ce7ee | ||
|
|
e4ea9c2ab9 | ||
|
|
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 | ||
|
|
8ed9257dfa |
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))
|
||||
343
eos/effects.py
343
eos/effects.py
@@ -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)
|
||||
|
||||
|
||||
@@ -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'
|
||||
@@ -12462,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'
|
||||
@@ -12481,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'
|
||||
@@ -12500,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'
|
||||
@@ -12553,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'
|
||||
@@ -12571,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'
|
||||
@@ -12589,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'
|
||||
@@ -12607,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'
|
||||
@@ -12625,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'
|
||||
@@ -12643,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'
|
||||
@@ -12661,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'
|
||||
@@ -13185,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'
|
||||
@@ -13193,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):
|
||||
@@ -13204,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'
|
||||
@@ -13212,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):
|
||||
@@ -13222,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'
|
||||
@@ -13378,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'
|
||||
@@ -13396,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'
|
||||
@@ -13414,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'
|
||||
@@ -16438,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'
|
||||
@@ -16445,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):
|
||||
@@ -23073,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'
|
||||
@@ -23201,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'
|
||||
@@ -23209,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):
|
||||
@@ -23351,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'
|
||||
@@ -26858,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)
|
||||
@@ -26973,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)
|
||||
@@ -27002,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):
|
||||
@@ -27108,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):
|
||||
@@ -31492,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)
|
||||
|
||||
@@ -31514,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):
|
||||
@@ -35065,7 +35113,7 @@ class Effect7086(BaseEffect):
|
||||
shipbonusPCTTrackingPC2
|
||||
|
||||
Used by:
|
||||
Variations of ship: Vedmak (2 of 2)
|
||||
Ship: Ikitursa
|
||||
Ship: Tiamat
|
||||
"""
|
||||
|
||||
@@ -35213,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
|
||||
@@ -35772,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'
|
||||
@@ -36086,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'
|
||||
@@ -36272,13 +36357,7 @@ class Effect8020(BaseEffect):
|
||||
systemWarpSpeedAddition
|
||||
|
||||
Used by:
|
||||
Celestial: Strong Metaliminal Exotic Matter Storm
|
||||
Celestial: Strong Metaliminal Gamma Ray Storm
|
||||
Celestial: Strong Metaliminal Plasma Firestorm
|
||||
Celestial: System-Wide Warp Speed Bonus
|
||||
Celestial: Weak Metaliminal Exotic Matter Storm
|
||||
Celestial: Weak Metaliminal Gamma Ray Storm
|
||||
Celestial: Weak Metaliminal Plasma Firestorm
|
||||
"""
|
||||
|
||||
runTime = 'early'
|
||||
@@ -36880,6 +36959,22 @@ class Effect8073(BaseEffect):
|
||||
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
|
||||
@@ -36896,3 +36991,193 @@ class Effect8075(BaseEffect):
|
||||
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)
|
||||
|
||||
@@ -755,13 +755,11 @@ class Fit:
|
||||
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"),
|
||||
|
||||
@@ -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):
|
||||
|
||||
@@ -120,15 +120,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,9 +102,9 @@ 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['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')
|
||||
|
||||
@@ -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
|
||||
@@ -931,7 +943,6 @@ class _TabsContainer(wx.Panel):
|
||||
tb_renderer = self.tabs[tab]
|
||||
tb_renderer.disabled = disabled
|
||||
|
||||
self.AdjustTabsSize()
|
||||
self.Refresh()
|
||||
|
||||
def GetSelectedTab(self):
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -16,192 +16,10 @@ rename_phrase = " renamed to "
|
||||
conversion_phrase = " converted to "
|
||||
|
||||
text = """
|
||||
Basic Energized EM Membrane renamed to 'Basic' EM Energized Membrane
|
||||
Energized EM Membrane I renamed to EM Energized Membrane I
|
||||
Energized EM Membrane II renamed to EM Energized Membrane II
|
||||
Basic Energized Explosive Membrane renamed to 'Basic' Explosive Energized Membrane
|
||||
Energized Explosive Membrane I renamed to Explosive Energized Membrane I
|
||||
Energized Explosive Membrane II renamed to Explosive Energized Membrane II
|
||||
Basic Energized Armor Layering Membrane renamed to 'Basic' Layered Energized Membrane
|
||||
Energized Armor Layering Membrane I renamed to Layered Energized Membrane I
|
||||
Energized Armor Layering Membrane II renamed to Layered Energized Membrane II
|
||||
Basic Energized Kinetic Membrane renamed to 'Basic' Kinetic Energized Membrane
|
||||
Energized Kinetic Membrane I renamed to Kinetic Energized Membrane I
|
||||
Energized Kinetic Membrane II renamed to Kinetic Energized Membrane II
|
||||
Basic Energized Thermal Membrane renamed to 'Basic' Thermal Energized Membrane
|
||||
Energized Thermal Membrane I renamed to Thermal Energized Membrane I
|
||||
Energized Thermal Membrane II renamed to Thermal Energized Membrane II
|
||||
Basic Energized Adaptive Nano Membrane renamed to 'Basic' Multispectrum Energized Membrane
|
||||
Energized Adaptive Nano Membrane I renamed to Multispectrum Energized Membrane I
|
||||
Energized Adaptive Nano Membrane II renamed to Multispectrum Energized Membrane II
|
||||
Dark Blood Energized Adaptive Nano Membrane renamed to Dark Blood Multispectrum Energized Membrane
|
||||
True Sansha Energized Adaptive Nano Membrane renamed to True Sansha Multispectrum Energized Membrane
|
||||
Shadow Serpentis Energized Adaptive Nano Membrane renamed to Shadow Serpentis Multispectrum Energized Membrane
|
||||
Dark Blood Energized Kinetic Membrane renamed to Dark Blood Kinetic Energized Membrane
|
||||
True Sansha Energized Kinetic Membrane renamed to True Sansha Kinetic Energized Membrane
|
||||
Shadow Serpentis Energized Kinetic Membrane renamed to Shadow Serpentis Kinetic Energized Membrane
|
||||
Dark Blood Energized Explosive Membrane renamed to Dark Blood Explosive Energized Membrane
|
||||
True Sansha Energized Explosive Membrane renamed to True Sansha Explosive Energized Membrane
|
||||
Shadow Serpentis Energized Explosive Membrane renamed to Shadow Serpentis Explosive Energized Membrane
|
||||
Dark Blood Energized EM Membrane renamed to Dark Blood EM Energized Membrane
|
||||
True Sansha Energized EM Membrane renamed to True Sansha EM Energized Membrane
|
||||
Shadow Serpentis Energized EM Membrane renamed to Shadow Serpentis EM Energized Membrane
|
||||
Dark Blood Energized Thermal Membrane renamed to Dark Blood Thermal Energized Membrane
|
||||
True Sansha Energized Thermal Membrane renamed to True Sansha Thermal Energized Membrane
|
||||
Shadow Serpentis Energized Thermal Membrane renamed to Shadow Serpentis Thermal Energized Membrane
|
||||
Brokara's Modified Energized Adaptive Nano Membrane renamed to Brokara's Modified Multispectrum Energized Membrane
|
||||
Tairei's Modified Energized Adaptive Nano Membrane renamed to Tairei's Modified Multispectrum Energized Membrane
|
||||
Selynne's Modified Energized Adaptive Nano Membrane renamed to Selynne's Modified Multispectrum Energized Membrane
|
||||
Raysere's Modified Energized Adaptive Nano Membrane renamed to Raysere's Modified Multispectrum Energized Membrane
|
||||
Vizan's Modified Energized Adaptive Nano Membrane renamed to Vizan's Modified Multispectrum Energized Membrane
|
||||
Ahremen's Modified Energized Adaptive Nano Membrane renamed to Ahremen's Modified Multispectrum Energized Membrane
|
||||
Chelm's Modified Energized Adaptive Nano Membrane renamed to Chelm's Modified Multispectrum Energized Membrane
|
||||
Draclira's Modified Energized Adaptive Nano Membrane renamed to Draclira's Modified Multispectrum Energized Membrane
|
||||
Brokara's Modified Energized Thermal Membrane renamed to Brokara's Modified Thermal Energized Membrane
|
||||
Tairei's Modified Energized Thermal Membrane renamed to Tairei's Modified Thermal Energized Membrane
|
||||
Selynne's Modified Energized Thermal Membrane renamed to Selynne's Modified Thermal Energized Membrane
|
||||
Raysere's Modified Energized Thermal Membrane renamed to Raysere's Modified Thermal Energized Membrane
|
||||
Vizan's Modified Energized Thermal Membrane renamed to Vizan's Modified Thermal Energized Membrane
|
||||
Ahremen's Modified Energized Thermal Membrane renamed to Ahremen's Modified Thermal Energized Membrane
|
||||
Chelm's Modified Energized Thermal Membrane renamed to Chelm's Modified Thermal Energized Membrane
|
||||
Draclira's Modified Energized Thermal Membrane renamed to Draclira's Modified Thermal Energized Membrane
|
||||
Brokara's Modified Energized EM Membrane renamed to Brokara's Modified EM Energized Membrane
|
||||
Tairei's Modified Energized EM Membrane renamed to Tairei's Modified EM Energized Membrane
|
||||
Selynne's Modified Energized EM Membrane renamed to Selynne's Modified EM Energized Membrane
|
||||
Raysere's Modified Energized EM Membrane renamed to Raysere's Modified EM Energized Membrane
|
||||
Vizan's Modified Energized EM Membrane renamed to Vizan's Modified EM Energized Membrane
|
||||
Ahremen's Modified Energized EM Membrane renamed to Ahremen's Modified EM Energized Membrane
|
||||
Chelm's Modified Energized EM Membrane renamed to Chelm's Modified EM Energized Membrane
|
||||
Draclira's Modified Energized EM Membrane renamed to Draclira's Modified EM Energized Membrane
|
||||
Brokara's Modified Energized Explosive Membrane renamed to Brokara's Modified Explosive Energized Membrane
|
||||
Tairei's Modified Energized Explosive Membrane renamed to Tairei's Modified Explosive Energized Membrane
|
||||
Selynne's Modified Energized Explosive Membrane renamed to Selynne's Modified Explosive Energized Membrane
|
||||
Raysere's Modified Energized Explosive Membrane renamed to Raysere's Modified Explosive Energized Membrane
|
||||
Vizan's Modified Energized Explosive Membrane renamed to Vizan's Modified Explosive Energized Membrane
|
||||
Ahremen's Modified Energized Explosive Membrane renamed to Ahremen's Modified Explosive Energized Membrane
|
||||
Chelm's Modified Energized Explosive Membrane renamed to Chelm's Modified Explosive Energized Membrane
|
||||
Draclira's Modified Energized Explosive Membrane renamed to Draclira's Modified Explosive Energized Membrane
|
||||
Brokara's Modified Energized Kinetic Membrane renamed to Brokara's Modified Kinetic Energized Membrane
|
||||
Tairei's Modified Energized Kinetic Membrane renamed to Tairei's Modified Kinetic Energized Membrane
|
||||
Selynne's Modified Energized Kinetic Membrane renamed to Selynne's Modified Kinetic Energized Membrane
|
||||
Raysere's Modified Energized Kinetic Membrane renamed to Raysere's Modified Kinetic Energized Membrane
|
||||
Vizan's Modified Energized Kinetic Membrane renamed to Vizan's Modified Kinetic Energized Membrane
|
||||
Ahremen's Modified Energized Kinetic Membrane renamed to Ahremen's Modified Kinetic Energized Membrane
|
||||
Chelm's Modified Energized Kinetic Membrane renamed to Chelm's Modified Kinetic Energized Membrane
|
||||
Draclira's Modified Energized Kinetic Membrane renamed to Draclira's Modified Kinetic Energized Membrane
|
||||
Brynn's Modified Energized Adaptive Nano Membrane renamed to Brynn's Modified Multispectrum Energized Membrane
|
||||
Tuvan's Modified Energized Adaptive Nano Membrane renamed to Tuvan's Modified Multispectrum Energized Membrane
|
||||
Setele's Modified Energized Adaptive Nano Membrane renamed to Setele's Modified Multispectrum Energized Membrane
|
||||
Cormack's Modified Energized Adaptive Nano Membrane renamed to Cormack's Modified Multispectrum Energized Membrane
|
||||
Brynn's Modified Energized Thermal Membrane renamed to Brynn's Modified Thermal Energized Membrane
|
||||
Tuvan's Modified Energized Thermal Membrane renamed to Tuvan's Modified Thermal Energized Membrane
|
||||
Setele's Modified Energized Thermal Membrane renamed to Setele's Modified Thermal Energized Membrane
|
||||
Cormack's Modified Energized Thermal Membrane renamed to Cormack's Modified Thermal Energized Membrane
|
||||
Brynn's Modified Energized EM Membrane renamed to Brynn's Modified EM Energized Membrane
|
||||
Tuvan's Modified Energized EM Membrane renamed to Tuvan's Modified EM Energized Membrane
|
||||
Setele's Modified Energized EM Membrane renamed to Setele's Modified EM Energized Membrane
|
||||
Cormack's Modified Energized EM Membrane renamed to Cormack's Modified EM Energized Membrane
|
||||
Brynn's Modified Energized Explosive Membrane renamed to Brynn's Modified Explosive Energized Membrane
|
||||
Tuvan's Modified Energized Explosive Membrane renamed to Tuvan's Modified Explosive Energized Membrane
|
||||
Setele's Modified Energized Explosive Membrane renamed to Setele's Modified Explosive Energized Membrane
|
||||
Cormack's Modified Energized Explosive Membrane renamed to Cormack's Modified Explosive Energized Membrane
|
||||
Brynn's Modified Energized Kinetic Membrane renamed to Brynn's Modified Kinetic Energized Membrane
|
||||
Tuvan's Modified Energized Kinetic Membrane renamed to Tuvan's Modified Kinetic Energized Membrane
|
||||
Setele's Modified Energized Kinetic Membrane renamed to Setele's Modified Kinetic Energized Membrane
|
||||
Cormack's Modified Energized Kinetic Membrane renamed to Cormack's Modified Kinetic Energized Membrane
|
||||
Imperial Navy Energized Thermal Membrane renamed to Imperial Navy Thermal Energized Membrane
|
||||
Imperial Navy Energized EM Membrane renamed to Imperial Navy EM Energized Membrane
|
||||
Imperial Navy Energized Explosive Membrane renamed to Imperial Navy Explosive Energized Membrane
|
||||
Imperial Navy Energized Kinetic Membrane renamed to Imperial Navy Kinetic Energized Membrane
|
||||
Imperial Navy Energized Adaptive Nano Membrane renamed to Imperial Navy Multispectrum Energized Membrane
|
||||
Federation Navy Energized Thermal Membrane renamed to Federation Navy Thermal Energized Membrane
|
||||
Federation Navy Energized EM Membrane renamed to Federation Navy EM Energized Membrane
|
||||
Federation Navy Energized Explosive Membrane renamed to Federation Navy Explosive Energized Membrane
|
||||
Federation Navy Energized Kinetic Membrane renamed to Federation Navy Kinetic Energized Membrane
|
||||
Federation Navy Energized Adaptive Nano Membrane renamed to Federation Navy Multispectrum Energized Membrane
|
||||
Prototype Energized Adaptive Nano Membrane I renamed to Compact Multispectrum Energized Membrane
|
||||
Prototype Energized Kinetic Membrane I renamed to Compact Kinetic Energized Membrane
|
||||
Prototype Energized Explosive Membrane I renamed to Compact Explosive Energized Membrane
|
||||
Prototype Energized EM Membrane I renamed to Compact EM Energized Membrane
|
||||
Prototype Energized Armor Layering Membrane I renamed to Compact Layered Energized Membrane
|
||||
Prototype Energized Thermal Membrane I renamed to Compact Thermal Energized Membrane
|
||||
Ammatar Navy Energized Adaptive Nano Membrane renamed to Ammatar Navy Multispectrum Energized Membrane
|
||||
Ammatar Navy Energized Kinetic Membrane renamed to Ammatar Navy Kinetic Energized Membrane
|
||||
Ammatar Navy Energized Explosive Membrane renamed to Ammatar Navy Explosive Energized Membrane
|
||||
Ammatar Navy Energized EM Membrane renamed to Ammatar Navy EM Energized Membrane
|
||||
Ammatar Navy Energized Thermal Membrane renamed to Ammatar Navy Thermal Energized Membrane
|
||||
Corelum C-Type Energized Adaptive Nano Membrane renamed to Corelum C-Type Multispectrum Energized Membrane
|
||||
Corelum C-Type Energized Kinetic Membrane renamed to Corelum C-Type Kinetic Energized Membrane
|
||||
Corelum C-Type Energized Explosive Membrane renamed to Corelum C-Type Explosive Energized Membrane
|
||||
Corelum C-Type Energized EM Membrane renamed to Corelum C-Type EM Energized Membrane
|
||||
Corelum C-Type Energized Thermal Membrane renamed to Corelum C-Type Thermal Energized Membrane
|
||||
Corelum B-Type Energized Adaptive Nano Membrane renamed to Corelum B-Type Multispectrum Energized Membrane
|
||||
Corelum B-Type Energized Kinetic Membrane renamed to Corelum B-Type Kinetic Energized Membrane
|
||||
Corelum B-Type Energized Explosive Membrane renamed to Corelum B-Type Explosive Energized Membrane
|
||||
Corelum B-Type Energized EM Membrane renamed to Corelum B-Type EM Energized Membrane
|
||||
Corelum B-Type Energized Thermal Membrane renamed to Corelum B-Type Thermal Energized Membrane
|
||||
Corelum A-Type Energized Adaptive Nano Membrane renamed to Corelum A-Type Multispectrum Energized Membrane
|
||||
Corelum A-Type Energized Kinetic Membrane renamed to Corelum A-Type Kinetic Energized Membrane
|
||||
Corelum A-Type Energized Explosive Membrane renamed to Corelum A-Type Explosive Energized Membrane
|
||||
Corelum A-Type Energized EM Membrane renamed to Corelum A-Type EM Energized Membrane
|
||||
Corelum A-Type Energized Thermal Membrane renamed to Corelum A-Type Thermal Energized Membrane
|
||||
Corpum C-Type Energized Adaptive Nano Membrane renamed to Corpum C-Type Multispectrum Energized Membrane
|
||||
Centum C-Type Energized Adaptive Nano Membrane renamed to Centum C-Type Multispectrum Energized Membrane
|
||||
Corpum C-Type Energized Kinetic Membrane renamed to Corpum C-Type Kinetic Energized Membrane
|
||||
Centum C-Type Energized Kinetic Membrane renamed to Centum C-Type Kinetic Energized Membrane
|
||||
Corpum C-Type Energized Explosive Membrane renamed to Corpum C-Type Explosive Energized Membrane
|
||||
Centum C-Type Energized Explosive Membrane renamed to Centum C-Type Explosive Energized Membrane
|
||||
Corpum C-Type Energized EM Membrane renamed to Corpum C-Type EM Energized Membrane
|
||||
Centum C-Type Energized EM Membrane renamed to Centum C-Type EM Energized Membrane
|
||||
Corpum C-Type Energized Thermal Membrane renamed to Corpum C-Type Thermal Energized Membrane
|
||||
Centum C-Type Energized Thermal Membrane renamed to Centum C-Type Thermal Energized Membrane
|
||||
Corpum B-Type Energized Adaptive Nano Membrane renamed to Corpum B-Type Multispectrum Energized Membrane
|
||||
Centum B-Type Energized Adaptive Nano Membrane renamed to Centum B-Type Multispectrum Energized Membrane
|
||||
Corpum B-Type Energized Kinetic Membrane renamed to Corpum B-Type Kinetic Energized Membrane
|
||||
Centum B-Type Energized Kinetic Membrane renamed to Centum B-Type Kinetic Energized Membrane
|
||||
Corpum B-Type Energized Explosive Membrane renamed to Corpum B-Type Explosive Energized Membrane
|
||||
Centum B-Type Energized Explosive Membrane renamed to Centum B-Type Explosive Energized Membrane
|
||||
Corpum B-Type Energized Thermal Membrane renamed to Corpum B-Type Thermal Energized Membrane
|
||||
Centum B-Type Energized Thermal Membrane renamed to Centum B-Type Thermal Energized Membrane
|
||||
Corpum A-Type Energized Thermal Membrane renamed to Corpum A-Type Thermal Energized Membrane
|
||||
Centum A-Type Energized Thermal Membrane renamed to Centum A-Type Thermal Energized Membrane
|
||||
Corpum A-Type Energized EM Membrane renamed to Corpum A-Type EM Energized Membrane
|
||||
Centum A-Type Energized EM Membrane renamed to Centum A-Type EM Energized Membrane
|
||||
Corpum A-Type Energized Explosive Membrane renamed to Corpum A-Type Explosive Energized Membrane
|
||||
Centum A-Type Energized Explosive Membrane renamed to Centum A-Type Explosive Energized Membrane
|
||||
Corpum A-Type Energized Kinetic Membrane renamed to Corpum A-Type Kinetic Energized Membrane
|
||||
Centum A-Type Energized Kinetic Membrane renamed to Centum A-Type Kinetic Energized Membrane
|
||||
Corpum A-Type Energized Adaptive Nano Membrane renamed to Corpum A-Type Multispectrum Energized Membrane
|
||||
Centum A-Type Energized Adaptive Nano Membrane renamed to Centum A-Type Multispectrum Energized Membrane
|
||||
Corpum B-Type Energized EM Membrane renamed to Corpum B-Type EM Energized Membrane
|
||||
Centum B-Type Energized EM Membrane renamed to Centum B-Type EM Energized Membrane
|
||||
'Pilfer' Energized Adaptive Nano Membrane I renamed to 'Pilfer' Multispectrum Energized Membrane
|
||||
'Moonshine' Energized Thermal Membrane I renamed to 'Moonshine' Thermal Energized Membrane
|
||||
'Mafia' Energized Kinetic Membrane I renamed to 'Mafia' Kinetic Energized Membrane
|
||||
Khanid Navy Energized Adaptive Nano Membrane renamed to Khanid Navy Multispectrum Energized Membrane
|
||||
Khanid Navy Energized Kinetic Membrane renamed to Khanid Navy Kinetic Energized Membrane
|
||||
Khanid Navy Energized Explosive Membrane renamed to Khanid Navy Explosive Energized Membrane
|
||||
Khanid Navy Energized EM Membrane renamed to Khanid Navy EM Energized Membrane
|
||||
Khanid Navy Energized Thermal Membrane renamed to Khanid Navy Thermal Energized Membrane
|
||||
Large Compact Vorton projector renamed to Large Compact Vorton Projector
|
||||
Experimental Energized Adaptive Nano Membrane I converted to Compact Multispectrum Energized Membrane
|
||||
Experimental Energized Armor Layering Membrane I converted to Compact Layered Energized Membrane
|
||||
Experimental Energized EM Membrane I converted to Compact EM Energized Membrane
|
||||
Experimental Energized Explosive Membrane I converted to Compact Explosive Energized Membrane
|
||||
Experimental Energized Kinetic Membrane I converted to Compact Kinetic Energized Membrane
|
||||
Experimental Energized Thermal Membrane I converted to Compact Thermal Energized Membrane
|
||||
Limited Energized Adaptive Nano Membrane I converted to Compact Multispectrum Energized Membrane
|
||||
Limited Energized Armor Layering Membrane I converted to Compact Layered Energized Membrane
|
||||
Limited Energized EM Membrane I converted to Compact EM Energized Membrane
|
||||
Limited Energized Explosive Membrane I converted to Compact Explosive Energized Membrane
|
||||
Limited Energized Kinetic Membrane I converted to Compact Kinetic Energized Membrane
|
||||
Limited Energized Thermal Membrane I converted to Compact Thermal Energized Membrane
|
||||
Upgraded Energized Adaptive Nano Membrane I converted to Compact Multispectrum Energized Membrane
|
||||
Upgraded Energized Armor Layering Membrane I converted to Compact Layered Energized Membrane
|
||||
Upgraded Energized EM Membrane I converted to Compact EM Energized Membrane
|
||||
Upgraded Energized Explosive Membrane I converted to Compact Explosive Energized Membrane
|
||||
Upgraded Energized Kinetic Membrane I converted to Compact Kinetic Energized Membrane
|
||||
Upgraded Energized Thermal Membrane I converted to Compact Thermal Energized Membrane
|
||||
'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):
|
||||
|
||||
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"
|
||||
}
|
||||
@@ -627,6 +627,15 @@ laar:
|
||||
caar:
|
||||
- 'caar'
|
||||
- 'capital ancillary (.+ )?(?<!remote )armor repairer'
|
||||
25k:
|
||||
- '25k'
|
||||
- '25000'
|
||||
25kmm:
|
||||
- '25kmm'
|
||||
- '25000mm'
|
||||
25m:
|
||||
- '25m'
|
||||
- '25000mm'
|
||||
|
||||
# Hull modules
|
||||
dc:
|
||||
@@ -649,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,
|
||||
@@ -32559,5 +32558,37 @@
|
||||
"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
|
||||
}
|
||||
}
|
||||
@@ -77786,9 +77786,8 @@
|
||||
"disallowAutoRepeat": 0,
|
||||
"effectCategory": 7,
|
||||
"effectID": 7237,
|
||||
"effectName": "\tsystemWarpSpeed",
|
||||
"effectName": "systemWarpSpeedBonus",
|
||||
"electronicChance": 0,
|
||||
"guid": "",
|
||||
"isAssistance": 0,
|
||||
"isOffensive": 0,
|
||||
"isWarpSafe": 0,
|
||||
@@ -79225,9 +79224,32 @@
|
||||
"published": 0,
|
||||
"rangeChance": 0
|
||||
},
|
||||
"8075": {
|
||||
"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,
|
||||
@@ -79249,7 +79271,7 @@
|
||||
},
|
||||
"8076": {
|
||||
"disallowAutoRepeat": 0,
|
||||
"effectCategory": 0,
|
||||
"effectCategory": 7,
|
||||
"effectID": 8076,
|
||||
"effectName": "systemHullThermalResistance",
|
||||
"electronicChance": 0,
|
||||
@@ -79271,7 +79293,7 @@
|
||||
},
|
||||
"8077": {
|
||||
"disallowAutoRepeat": 0,
|
||||
"effectCategory": 0,
|
||||
"effectCategory": 7,
|
||||
"effectID": 8077,
|
||||
"effectName": "systemHullKineticResistance",
|
||||
"electronicChance": 0,
|
||||
@@ -79293,7 +79315,7 @@
|
||||
},
|
||||
"8078": {
|
||||
"disallowAutoRepeat": 0,
|
||||
"effectCategory": 0,
|
||||
"effectCategory": 7,
|
||||
"effectID": 8078,
|
||||
"effectName": "systemHullExplosiveResistance",
|
||||
"electronicChance": 0,
|
||||
@@ -79317,7 +79339,7 @@
|
||||
"disallowAutoRepeat": 0,
|
||||
"effectCategory": 7,
|
||||
"effectID": 8079,
|
||||
"effectName": "systemVirusStrengthBonus",
|
||||
"effectName": "systemVirusCoherenceBonus",
|
||||
"electronicChance": 0,
|
||||
"isAssistance": 0,
|
||||
"isOffensive": 0,
|
||||
@@ -79326,16 +79348,16 @@
|
||||
{
|
||||
"domain": "shipID",
|
||||
"func": "LocationRequiredSkillModifier",
|
||||
"modifiedAttributeID": 1910,
|
||||
"modifyingAttributeID": 1918,
|
||||
"modifiedAttributeID": 1909,
|
||||
"modifyingAttributeID": 1915,
|
||||
"operation": 2,
|
||||
"skillTypeID": 13278
|
||||
},
|
||||
{
|
||||
"domain": "shipID",
|
||||
"func": "LocationRequiredSkillModifier",
|
||||
"modifiedAttributeID": 1910,
|
||||
"modifyingAttributeID": 1918,
|
||||
"modifiedAttributeID": 1909,
|
||||
"modifyingAttributeID": 1915,
|
||||
"operation": 2,
|
||||
"skillTypeID": 21718
|
||||
}
|
||||
@@ -79346,15 +79368,180 @@
|
||||
},
|
||||
"8080": {
|
||||
"disallowAutoRepeat": 0,
|
||||
"effectCategory": 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
@@ -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
|
||||
}
|
||||
}
|
||||
@@ -25645,5 +25645,76 @@
|
||||
},
|
||||
"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
|
||||
}
|
||||
}
|
||||
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"
|
||||
},
|
||||
|
||||
@@ -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": 1782806
|
||||
"field_value": 1801413
|
||||
},
|
||||
{
|
||||
"field_name": "dump_time",
|
||||
"field_value": 1597151359
|
||||
"field_value": 1599630922
|
||||
}
|
||||
]
|
||||
@@ -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.25.0
|
||||
version: v2.28.2dev1
|
||||
|
||||
Reference in New Issue
Block a user