diff --git a/config.py b/config.py
index 818c25b9f..a84f471cf 100644
--- a/config.py
+++ b/config.py
@@ -24,10 +24,10 @@ saveInRoot = False
# Version data
-version = "2.0.2"
+version = "2.1.1"
tag = "Stable"
-expansionName = "YC120.3"
-expansionVersion = "1.8"
+expansionName = "Into the Abyss"
+expansionVersion = "1.1"
evemonMinVersion = "4081"
minItemSearchLength = 3
diff --git a/dist_assets/win/Microsoft.VC90.CRT.manifest b/dist_assets/win/Microsoft.VC90.CRT.manifest
new file mode 100644
index 000000000..627da999b
--- /dev/null
+++ b/dist_assets/win/Microsoft.VC90.CRT.manifest
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/dist_assets/win/pyfa-setup.iss b/dist_assets/win/pyfa-setup.iss
index 3d3e3df2d..7984da087 100644
--- a/dist_assets/win/pyfa-setup.iss
+++ b/dist_assets/win/pyfa-setup.iss
@@ -5,7 +5,7 @@
; we do some #ifdef conditionals because automated compilation passes these as arguments
#ifndef MyAppVersion
- #define MyAppVersion "1.15.0"
+ #define MyAppVersion "2.1.0"
#endif
#ifndef MyAppExpansion
#define MyAppExpansion "Vanguard 1.0"
@@ -64,7 +64,7 @@ Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{
Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked; OnlyBelowVersion: 0,6.1
[Files]
-Source: "{#MyAppDir}\pyfa.exe"; DestDir: "{app}"; Flags: ignoreversion
+Source: "{#MyAppDir}\pyfa.exe"; DestDir: "{app}"; Flags: ignoreversion; AfterInstall: RemoveFromVirtualStore
Source: "{#MyAppDir}\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
@@ -104,6 +104,22 @@ begin
FSWbemLocator := Unassigned;
end;
+procedure RemoveFromVirtualStore;
+var
+ VirtualStore,FileName,FilePath:String;
+ DriveChars:Integer;
+begin
+ VirtualStore:=AddBackslash(ExpandConstant('{localappdata}'))+'VirtualStore';
+ FileName:=ExpandConstant(CurrentFileName);
+ DriveChars:=Length(ExtractFileDrive(FileName));
+ if DriveChars>0 then begin
+ Delete(FileName,1,DriveChars);
+ FileName:=VirtualStore+FileName;
+ FilePath:=ExtractFilePath(FileName);
+ DelTree(FilePath, True, True, True);
+ end;
+end;
+
function PrepareToInstall(var NeedsRestart: Boolean): String;
begin
if(IsAppRunning( 'pyfa.exe' )) then
diff --git a/dist_assets/win/pyfa.exe.manifest b/dist_assets/win/pyfa.exe.manifest
new file mode 100644
index 000000000..1086d2201
--- /dev/null
+++ b/dist_assets/win/pyfa.exe.manifest
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dist_assets/win/pyfa.spec b/dist_assets/win/pyfa.spec
index 445f94824..d181a5eb9 100644
--- a/dist_assets/win/pyfa.spec
+++ b/dist_assets/win/pyfa.spec
@@ -20,6 +20,8 @@ added_files = [
('../../imgs/renders/*.png', 'imgs/renders'),
('../../service/jargon/*.yaml', 'service/jargon'),
('../../dist_assets/win/pyfa.ico', '.'),
+ ('../../dist_assets/win/pyfa.exe.manifest', '.'),
+ ('../../dist_assets/win/Microsoft.VC90.CRT.manifest', '.'),
(requests.certs.where(), '.'), # is this needed anymore?
('../../eve.db', '.'),
('../../README.md', '.'),
diff --git a/eos/config.py b/eos/config.py
index 6bc31eef8..c6c53f748 100644
--- a/eos/config.py
+++ b/eos/config.py
@@ -11,6 +11,7 @@ debug = False
gamedataCache = True
saveddataCache = True
gamedata_version = ""
+gamedata_date = ""
gamedata_connectionstring = 'sqlite:///' + realpath(join(dirname(abspath(__file__)), "..", "eve.db"))
pyfalog.debug("Gamedata connection string: {0}", gamedata_connectionstring)
diff --git a/eos/db/__init__.py b/eos/db/__init__.py
index dd027841b..5341e84ae 100644
--- a/eos/db/__init__.py
+++ b/eos/db/__init__.py
@@ -51,10 +51,14 @@ try:
config.gamedata_version = gamedata_session.execute(
"SELECT `field_value` FROM `metadata` WHERE `field_name` LIKE 'client_build'"
).fetchone()[0]
+ config.gamedata_date = gamedata_session.execute(
+ "SELECT `field_value` FROM `metadata` WHERE `field_name` LIKE 'dump_time'"
+ ).fetchone()[0]
except Exception as e:
pyfalog.warning("Missing gamedata version.")
pyfalog.critical(e)
config.gamedata_version = None
+ config.gamedata_date = None
saveddata_connectionstring = config.saveddata_connectionstring
if saveddata_connectionstring is not None:
diff --git a/eos/effects/addtosignatureradius2.py b/eos/effects/addtosignatureradius2.py
index 550357bfc..6c790a925 100644
--- a/eos/effects/addtosignatureradius2.py
+++ b/eos/effects/addtosignatureradius2.py
@@ -2,7 +2,7 @@
#
# Used by:
# Modules from group: Missile Launcher Bomb (2 of 2)
-# Modules from group: Shield Extender (33 of 33)
+# Modules from group: Shield Extender (36 of 36)
type = "passive"
diff --git a/eos/effects/ammoinfluencecapneed.py b/eos/effects/ammoinfluencecapneed.py
index b798f0f4b..587e55cd5 100644
--- a/eos/effects/ammoinfluencecapneed.py
+++ b/eos/effects/ammoinfluencecapneed.py
@@ -1,7 +1,7 @@
# ammoInfluenceCapNeed
#
# Used by:
-# Items from category: Charge (478 of 928)
+# Items from category: Charge (493 of 947)
type = "passive"
diff --git a/eos/effects/ammoinfluencerange.py b/eos/effects/ammoinfluencerange.py
index 078b2b205..4358a6ff9 100644
--- a/eos/effects/ammoinfluencerange.py
+++ b/eos/effects/ammoinfluencerange.py
@@ -1,7 +1,7 @@
# ammoInfluenceRange
#
# Used by:
-# Items from category: Charge (572 of 928)
+# Items from category: Charge (587 of 947)
type = "passive"
diff --git a/eos/effects/ammospeedmultiplier.py b/eos/effects/ammospeedmultiplier.py
index ac7ada2ad..2a6c2e4d3 100644
--- a/eos/effects/ammospeedmultiplier.py
+++ b/eos/effects/ammospeedmultiplier.py
@@ -4,6 +4,7 @@
# Charges from group: Festival Charges (23 of 23)
# Charges from group: Interdiction Probe (2 of 2)
# Charges from group: Structure Festival Charges (3 of 3)
+# Special Edition Assetss from group: Festival Charges Expired (2 of 2)
type = "passive"
diff --git a/eos/effects/ammotrackingmultiplier.py b/eos/effects/ammotrackingmultiplier.py
index 0cea10c80..6153af15c 100644
--- a/eos/effects/ammotrackingmultiplier.py
+++ b/eos/effects/ammotrackingmultiplier.py
@@ -1,12 +1,7 @@
# ammoTrackingMultiplier
#
# Used by:
-# Charges from group: Advanced Artillery Ammo (8 of 8)
-# Charges from group: Advanced Autocannon Ammo (8 of 8)
-# Charges from group: Advanced Beam Laser Crystal (8 of 8)
-# Charges from group: Advanced Blaster Charge (8 of 8)
-# Charges from group: Advanced Pulse Laser Crystal (8 of 8)
-# Charges from group: Advanced Railgun Charge (8 of 8)
+# Items from category: Charge (182 of 947)
# Charges from group: Projectile Ammo (128 of 128)
type = "passive"
diff --git a/eos/effects/aoebeaconbioluminescencecloud.py b/eos/effects/aoebeaconbioluminescencecloud.py
new file mode 100644
index 000000000..fa01e217d
--- /dev/null
+++ b/eos/effects/aoebeaconbioluminescencecloud.py
@@ -0,0 +1,16 @@
+# aoe_beacon_bioluminescence_cloud
+#
+# Used by:
+# Celestials named like: Bioluminescence Cloud (3 of 3)
+runTime = "early"
+type = ("projected", "passive", "gang")
+
+
+def handler(fit, beacon, context, **kwargs):
+ for x in range(1, 3):
+ if beacon.getModifiedItemAttr("warfareBuff{}ID".format(x)):
+ value = beacon.getModifiedItemAttr("warfareBuff{}Value".format(x))
+ id = beacon.getModifiedItemAttr("warfareBuff{}ID".format(x))
+
+ if id:
+ fit.addCommandBonus(id, value, beacon, kwargs['effect'], 'early')
diff --git a/eos/effects/aoebeaconcausticcloud.py b/eos/effects/aoebeaconcausticcloud.py
new file mode 100644
index 000000000..f11c9805b
--- /dev/null
+++ b/eos/effects/aoebeaconcausticcloud.py
@@ -0,0 +1,16 @@
+# aoe_beacon_caustic_cloud
+#
+# Used by:
+# Celestials named like: Caustic Cloud (3 of 3)
+runTime = "early"
+type = ("projected", "passive", "gang")
+
+
+def handler(fit, beacon, context, **kwargs):
+ for x in range(1, 3):
+ if beacon.getModifiedItemAttr("warfareBuff{}ID".format(x)):
+ value = beacon.getModifiedItemAttr("warfareBuff{}Value".format(x))
+ id = beacon.getModifiedItemAttr("warfareBuff{}ID".format(x))
+
+ if id:
+ fit.addCommandBonus(id, value, beacon, kwargs['effect'], 'early')
diff --git a/eos/effects/aoebeaconfilamentcloud.py b/eos/effects/aoebeaconfilamentcloud.py
new file mode 100644
index 000000000..085114e7c
--- /dev/null
+++ b/eos/effects/aoebeaconfilamentcloud.py
@@ -0,0 +1,16 @@
+# aoe_beacon_filament_cloud
+#
+# Used by:
+# Celestials named like: Filament Cloud (3 of 3)
+runTime = "early"
+type = ("projected", "passive", "gang")
+
+
+def handler(fit, beacon, context, **kwargs):
+ for x in range(1, 3):
+ if beacon.getModifiedItemAttr("warfareBuff{}ID".format(x)):
+ value = beacon.getModifiedItemAttr("warfareBuff{}Value".format(x))
+ id = beacon.getModifiedItemAttr("warfareBuff{}ID".format(x))
+
+ if id:
+ fit.addCommandBonus(id, value, beacon, kwargs['effect'], 'early')
diff --git a/eos/effects/armorallrepairsystemsamountbonuspassive.py b/eos/effects/armorallrepairsystemsamountbonuspassive.py
index c5162f3e0..c2eb9e2c4 100644
--- a/eos/effects/armorallrepairsystemsamountbonuspassive.py
+++ b/eos/effects/armorallrepairsystemsamountbonuspassive.py
@@ -1,6 +1,7 @@
# armorAllRepairSystemsAmountBonusPassive
#
# Used by:
+# Implants named like: Agency 'Hardshell' TB Dose (3 of 4)
# Implants named like: Exile Booster (4 of 4)
# Implant: Antipharmakon Kosybo
type = "passive"
@@ -9,4 +10,4 @@ type = "passive"
def handler(fit, booster, context):
fit.modules.filteredItemBoost(
lambda mod: mod.item.requiresSkill("Repair Systems") or mod.item.requiresSkill("Capital Repair Systems"),
- "armorDamageAmount", booster.getModifiedItemAttr("armorDamageAmountBonus"))
+ "armorDamageAmount", booster.getModifiedItemAttr("armorDamageAmountBonus") or 0)
diff --git a/eos/effects/armorhpbonusadd.py b/eos/effects/armorhpbonusadd.py
index 591e1cc58..f965b45ae 100644
--- a/eos/effects/armorhpbonusadd.py
+++ b/eos/effects/armorhpbonusadd.py
@@ -1,7 +1,7 @@
# armorHPBonusAdd
#
# Used by:
-# Modules from group: Armor Reinforcer (48 of 48)
+# Modules from group: Armor Reinforcer (51 of 51)
type = "passive"
diff --git a/eos/effects/armorreinforcermassadd.py b/eos/effects/armorreinforcermassadd.py
index d61b0224c..e60326892 100644
--- a/eos/effects/armorreinforcermassadd.py
+++ b/eos/effects/armorreinforcermassadd.py
@@ -1,7 +1,7 @@
# armorReinforcerMassAdd
#
# Used by:
-# Modules from group: Armor Reinforcer (48 of 48)
+# Modules from group: Armor Reinforcer (51 of 51)
type = "passive"
diff --git a/eos/effects/armorrepair.py b/eos/effects/armorrepair.py
index 8555baec0..d65f26ca5 100644
--- a/eos/effects/armorrepair.py
+++ b/eos/effects/armorrepair.py
@@ -1,7 +1,7 @@
# armorRepair
#
# Used by:
-# Modules from group: Armor Repair Unit (105 of 105)
+# Modules from group: Armor Repair Unit (108 of 108)
runTime = "late"
type = "active"
diff --git a/eos/effects/armorwarfarearmorhpreplacer.py b/eos/effects/armorwarfarearmorhpreplacer.py
deleted file mode 100644
index 4cbe460c0..000000000
--- a/eos/effects/armorwarfarearmorhpreplacer.py
+++ /dev/null
@@ -1,10 +0,0 @@
-# Not used by any item
-type = "gang", "active"
-gangBonus = "armorHpBonus2"
-gangBoost = "armorHP"
-
-
-def handler(fit, module, context):
- if "gang" not in context:
- return
- fit.ship.boostItemAttr("armorHP", module.getModifiedItemAttr("armorHpBonus2"))
diff --git a/eos/effects/boosterarmorhppenalty.py b/eos/effects/boosterarmorhppenalty.py
index 63fb57cd1..8f270f3e6 100644
--- a/eos/effects/boosterarmorhppenalty.py
+++ b/eos/effects/boosterarmorhppenalty.py
@@ -1,7 +1,7 @@
# boosterArmorHpPenalty
#
# Used by:
-# Implants from group: Booster (12 of 62)
+# Implants named like: Booster (12 of 33)
type = "boosterSideEffect"
# User-friendly name for the side effect
diff --git a/eos/effects/boostermaxvelocitypenalty.py b/eos/effects/boostermaxvelocitypenalty.py
index b6decaf9f..d42479397 100644
--- a/eos/effects/boostermaxvelocitypenalty.py
+++ b/eos/effects/boostermaxvelocitypenalty.py
@@ -1,7 +1,7 @@
# boosterMaxVelocityPenalty
#
# Used by:
-# Implants from group: Booster (12 of 62)
+# Implants named like: Booster (12 of 33)
type = "boosterSideEffect"
# User-friendly name for the side effect
diff --git a/eos/effects/boostershieldcapacitypenalty.py b/eos/effects/boostershieldcapacitypenalty.py
index 7bc929983..6e0b11eb7 100644
--- a/eos/effects/boostershieldcapacitypenalty.py
+++ b/eos/effects/boostershieldcapacitypenalty.py
@@ -1,7 +1,7 @@
# boosterShieldCapacityPenalty
#
# Used by:
-# Implants from group: Booster (12 of 62)
+# Implants named like: Booster (12 of 33)
type = "boosterSideEffect"
# User-friendly name for the side effect
diff --git a/eos/effects/capacitorcapacitymultiply.py b/eos/effects/capacitorcapacitymultiply.py
index 8b5df217d..91f3e6ed4 100644
--- a/eos/effects/capacitorcapacitymultiply.py
+++ b/eos/effects/capacitorcapacitymultiply.py
@@ -4,7 +4,7 @@
# Modules from group: Capacitor Flux Coil (6 of 6)
# Modules from group: Capacitor Power Relay (20 of 20)
# Modules from group: Power Diagnostic System (23 of 23)
-# Modules from group: Propulsion Module (65 of 127)
+# Modules from group: Propulsion Module (68 of 133)
# Modules from group: Reactor Control Unit (22 of 22)
type = "passive"
diff --git a/eos/effects/citadelrigbonus.py b/eos/effects/citadelrigbonus.py
index a04c6f479..195835283 100644
--- a/eos/effects/citadelrigbonus.py
+++ b/eos/effects/citadelrigbonus.py
@@ -1,4 +1,7 @@
-# Not used by any item
+# citadelRigBonus
+#
+# Used by:
+# Structures from group: Citadel (9 of 9)
type = "passive"
runTime = "early"
diff --git a/eos/effects/cpumultiplierpostmulcpuoutputship.py b/eos/effects/cpumultiplierpostmulcpuoutputship.py
index 99f186ce7..99c14306b 100644
--- a/eos/effects/cpumultiplierpostmulcpuoutputship.py
+++ b/eos/effects/cpumultiplierpostmulcpuoutputship.py
@@ -2,6 +2,7 @@
#
# Used by:
# Modules from group: CPU Enhancer (19 of 19)
+# Variations of structure module: Standup Co-Processor Array I (2 of 2)
type = "passive"
diff --git a/eos/effects/decreasetargetspeed.py b/eos/effects/decreasetargetspeed.py
deleted file mode 100644
index dd482175d..000000000
--- a/eos/effects/decreasetargetspeed.py
+++ /dev/null
@@ -1,9 +0,0 @@
-# Not used by any item
-type = "active", "projected"
-
-
-def handler(fit, module, context):
- if "projected" not in context:
- return
- fit.ship.boostItemAttr("maxVelocity", module.getModifiedItemAttr("speedFactor"),
- stackingPenalties=True)
diff --git a/eos/effects/disintegratorweapondamagemultiply.py b/eos/effects/disintegratorweapondamagemultiply.py
new file mode 100644
index 000000000..a96f6bc3f
--- /dev/null
+++ b/eos/effects/disintegratorweapondamagemultiply.py
@@ -0,0 +1,11 @@
+# disintegratorWeaponDamageMultiply
+#
+# Used by:
+# Modules from group: Entropic Radiation Sink (3 of 3)
+type = "passive"
+
+
+def handler(fit, module, context):
+ fit.modules.filteredItemMultiply(lambda mod: mod.item.group.name == "Precursor Weapon",
+ "damageMultiplier", module.getModifiedItemAttr("damageMultiplier"),
+ stackingPenalties=True)
diff --git a/eos/effects/disintegratorweaponspeedmultiply.py b/eos/effects/disintegratorweaponspeedmultiply.py
new file mode 100644
index 000000000..aa2a9998b
--- /dev/null
+++ b/eos/effects/disintegratorweaponspeedmultiply.py
@@ -0,0 +1,11 @@
+# disintegratorWeaponSpeedMultiply
+#
+# Used by:
+# Modules from group: Entropic Radiation Sink (3 of 3)
+type = "passive"
+
+
+def handler(fit, module, context):
+ fit.modules.filteredItemMultiply(lambda mod: mod.item.group.name == "Precursor Weapon",
+ "speed", module.getModifiedItemAttr("speedMultiplier"),
+ stackingPenalties=True)
diff --git a/eos/effects/doomsdayaoebubble.py b/eos/effects/doomsdayaoebubble.py
index 1eb899ac0..8d79e289d 100644
--- a/eos/effects/doomsdayaoebubble.py
+++ b/eos/effects/doomsdayaoebubble.py
@@ -2,6 +2,7 @@
#
# Used by:
# Module: Warp Disruption Burst Projector
+# Structure Module: Standup Warp Disruption Burst Projector
type = "projected", "active"
diff --git a/eos/effects/doomsdayaoedamp.py b/eos/effects/doomsdayaoedamp.py
index f943c9153..ab55bf185 100644
--- a/eos/effects/doomsdayaoedamp.py
+++ b/eos/effects/doomsdayaoedamp.py
@@ -2,6 +2,7 @@
#
# Used by:
# Module: Sensor Dampening Burst Projector
+# Structure Module: Standup Sensor Dampening Burst Projector
type = "projected", "active"
diff --git a/eos/effects/doomsdayaoeecm.py b/eos/effects/doomsdayaoeecm.py
index 230eb2f16..93d3dd847 100644
--- a/eos/effects/doomsdayaoeecm.py
+++ b/eos/effects/doomsdayaoeecm.py
@@ -2,6 +2,7 @@
#
# Used by:
# Module: ECM Jammer Burst Projector
+# Structure Module: Standup ECM Jammer Burst Projector
from eos.modifiedAttributeDict import ModifiedAttributeDict
type = "projected", "active"
diff --git a/eos/effects/doomsdayaoeneut.py b/eos/effects/doomsdayaoeneut.py
index c132a470a..1be85f6bd 100644
--- a/eos/effects/doomsdayaoeneut.py
+++ b/eos/effects/doomsdayaoeneut.py
@@ -2,6 +2,7 @@
#
# Used by:
# Module: Energy Neutralization Burst Projector
+# Structure Module: Standup Energy Neutralization Burst Projector
from eos.saveddata.module import State
from eos.modifiedAttributeDict import ModifiedAttributeDict
diff --git a/eos/effects/doomsdayaoepaint.py b/eos/effects/doomsdayaoepaint.py
index b02f68e38..1c039c23c 100644
--- a/eos/effects/doomsdayaoepaint.py
+++ b/eos/effects/doomsdayaoepaint.py
@@ -2,6 +2,7 @@
#
# Used by:
# Module: Target Illumination Burst Projector
+# Structure Module: Standup Target Illumination Burst Projector
type = "projected", "active"
diff --git a/eos/effects/doomsdayaoetrack.py b/eos/effects/doomsdayaoetrack.py
index 910ec7ae5..5ee1f31c9 100644
--- a/eos/effects/doomsdayaoetrack.py
+++ b/eos/effects/doomsdayaoetrack.py
@@ -2,6 +2,7 @@
#
# Used by:
# Module: Weapon Disruption Burst Projector
+# Structure Module: Standup Weapon Disruption Burst Projector
type = "active", "projected"
diff --git a/eos/effects/doomsdayaoeweb.py b/eos/effects/doomsdayaoeweb.py
index 913288b93..eb143b14b 100644
--- a/eos/effects/doomsdayaoeweb.py
+++ b/eos/effects/doomsdayaoeweb.py
@@ -2,6 +2,7 @@
#
# Used by:
# Module: Stasis Webification Burst Projector
+# Structure Module: Standup Stasis Webification Burst Projector
type = "active", "projected"
diff --git a/eos/effects/dronedamagebonusrequringdrones.py b/eos/effects/dronedamagebonusrequringdrones.py
deleted file mode 100644
index 5f3e13ea1..000000000
--- a/eos/effects/dronedamagebonusrequringdrones.py
+++ /dev/null
@@ -1,7 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, skill, context):
- fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"),
- "damageMultiplier", skill.getModifiedItemAttr("damageMultiplierBonus") * skill.level)
diff --git a/eos/effects/dronemaxvelocitybonus.py b/eos/effects/dronemaxvelocitybonus.py
index 938b34fa0..e3fc1ba6e 100644
--- a/eos/effects/dronemaxvelocitybonus.py
+++ b/eos/effects/dronemaxvelocitybonus.py
@@ -8,4 +8,4 @@ type = "passive"
def handler(fit, container, context):
level = container.level if "skill" in context else 1
fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"),
- "maxVelocity", container.getModifiedItemAttr("droneMaxVelocityBonus") * level)
+ "maxVelocity", container.getModifiedItemAttr("droneMaxVelocityBonus") * level, stackingPenalties=True)
diff --git a/eos/effects/elitebonuscommanddestroyerinfohidden1.py b/eos/effects/elitebonuscommanddestroyerinfohidden1.py
deleted file mode 100644
index cf31b2b1b..000000000
--- a/eos/effects/elitebonuscommanddestroyerinfohidden1.py
+++ /dev/null
@@ -1,9 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, src, context):
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Command Specialist"),
- "commandBonusHidden",
- src.getModifiedItemAttr("eliteBonusCommandDestroyer1"),
- skill="Command Destroyers")
diff --git a/eos/effects/elitebonuscommanddestroyermwdsigradius3.py b/eos/effects/elitebonuscommanddestroyermwdsigradius3.py
deleted file mode 100644
index f9c1fded2..000000000
--- a/eos/effects/elitebonuscommanddestroyermwdsigradius3.py
+++ /dev/null
@@ -1,7 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, src, context):
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("High Speed Maneuvering"), "signatureRadiusBonus",
- src.getModifiedItemAttr("eliteBonusCommandDestroyer3"), skill="Command Destroyers")
diff --git a/eos/effects/elitebonuscommandshipinformationhiddencs3.py b/eos/effects/elitebonuscommandshipinformationhiddencs3.py
deleted file mode 100644
index eeee692ed..000000000
--- a/eos/effects/elitebonuscommandshipinformationhiddencs3.py
+++ /dev/null
@@ -1,7 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Command Specialist"),
- "commandBonusHidden", module.getModifiedItemAttr("eliteBonusCommandShips3"), skill="Command Ships")
diff --git a/eos/effects/elitebonusgunshipdronecapacity2.py b/eos/effects/elitebonusgunshipdronecapacity2.py
deleted file mode 100644
index 61cf46c51..000000000
--- a/eos/effects/elitebonusgunshipdronecapacity2.py
+++ /dev/null
@@ -1,6 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, ship, context):
- fit.ship.increaseItemAttr("droneCapacity", ship.getModifiedItemAttr("eliteBonusGunship2"), skill="Assault Frigates")
diff --git a/eos/effects/elitebonusgunshipdronetracking2.py b/eos/effects/elitebonusgunshipdronetracking2.py
deleted file mode 100644
index 10d8c753d..000000000
--- a/eos/effects/elitebonusgunshipdronetracking2.py
+++ /dev/null
@@ -1,7 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, src, context):
- fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), "trackingSpeed",
- src.getModifiedItemAttr("eliteBonusGunship2"), stackingPenalties=True, skill="Assault Frigates")
diff --git a/eos/effects/energydestabilizationnew.py b/eos/effects/energydestabilizationnew.py
deleted file mode 100644
index 7a45fe8b7..000000000
--- a/eos/effects/energydestabilizationnew.py
+++ /dev/null
@@ -1,12 +0,0 @@
-# Not used by any item
-from eos.saveddata.module import State
-
-type = "active", "projected"
-
-
-def handler(fit, src, context):
- if "projected" in context and ((hasattr(src, "state") and src.state >= State.ACTIVE) or hasattr(src, "amountActive")):
- multiplier = src.amountActive if hasattr(src, "amountActive") else 1
- amount = src.getModifiedItemAttr("energyNeutralizerAmount")
- time = src.getModifiedItemAttr("duration")
- fit.addDrain(src, time, amount * multiplier, 0)
diff --git a/eos/effects/energyneutralizerfalloff.py b/eos/effects/energyneutralizerfalloff.py
index 37d829baa..67e55e7ad 100644
--- a/eos/effects/energyneutralizerfalloff.py
+++ b/eos/effects/energyneutralizerfalloff.py
@@ -1,7 +1,7 @@
# energyNeutralizerFalloff
#
# Used by:
-# Modules from group: Energy Neutralizer (51 of 51)
+# Modules from group: Energy Neutralizer (54 of 54)
from eos.saveddata.module import State
from eos.modifiedAttributeDict import ModifiedAttributeDict
diff --git a/eos/effects/energytransfer.py b/eos/effects/energytransfer.py
deleted file mode 100644
index 4a5ef6530..000000000
--- a/eos/effects/energytransfer.py
+++ /dev/null
@@ -1,9 +0,0 @@
-# Not used by any item
-type = "projected", "active"
-
-
-def handler(fit, src, context):
- if "projected" in context:
- amount = src.getModifiedItemAttr("powerTransferAmount")
- duration = src.getModifiedItemAttr("duration")
- fit.addDrain(src, duration, -amount, 0)
diff --git a/eos/effects/ewtargetpaint.py b/eos/effects/ewtargetpaint.py
deleted file mode 100644
index c61adeb8b..000000000
--- a/eos/effects/ewtargetpaint.py
+++ /dev/null
@@ -1,8 +0,0 @@
-# Not used by any item
-type = "projected", "active"
-
-
-def handler(fit, container, context):
- if "projected" in context:
- fit.ship.boostItemAttr("signatureRadius", container.getModifiedItemAttr("signatureRadiusBonus"),
- stackingPenalties=True)
diff --git a/eos/effects/fighterabilityattackm.py b/eos/effects/fighterabilityattackm.py
index 2ea002819..d0a028f48 100644
--- a/eos/effects/fighterabilityattackm.py
+++ b/eos/effects/fighterabilityattackm.py
@@ -1,4 +1,8 @@
-# Not used by any item
+# fighterAbilityAttackM
+#
+# Used by:
+# Items from category: Fighter (50 of 82)
+# Fighters from group: Heavy Fighter (34 of 34)
"""
Since fighter abilities do not have any sort of item entity in the EVE database, we must derive the abilities from the
effects, and thus this effect file contains some custom information useful only to fighters.
diff --git a/eos/effects/fighterabilityecm.py b/eos/effects/fighterabilityecm.py
index e821c748a..cfc9c21db 100644
--- a/eos/effects/fighterabilityecm.py
+++ b/eos/effects/fighterabilityecm.py
@@ -1,4 +1,7 @@
-# Not used by any item
+# fighterAbilityECM
+#
+# Used by:
+# Fighters named like: Scarab (4 of 4)
"""
Since fighter abilities do not have any sort of item entity in the EVE database, we must derive the abilities from the
effects, and thus this effect file contains some custom information useful only to fighters.
diff --git a/eos/effects/fighterabilityenergyneutralizer.py b/eos/effects/fighterabilityenergyneutralizer.py
index 8a43dff19..28b68d089 100644
--- a/eos/effects/fighterabilityenergyneutralizer.py
+++ b/eos/effects/fighterabilityenergyneutralizer.py
@@ -1,4 +1,7 @@
-# Not used by any item
+# fighterAbilityEnergyNeutralizer
+#
+# Used by:
+# Fighters named like: Cenobite (4 of 4)
"""
Since fighter abilities do not have any sort of item entity in the EVE database, we must derive the abilities from the
effects, and thus this effect file contains some custom information useful only to fighters.
diff --git a/eos/effects/fighterabilityevasivemaneuvers.py b/eos/effects/fighterabilityevasivemaneuvers.py
index bf17edc92..151effaaa 100644
--- a/eos/effects/fighterabilityevasivemaneuvers.py
+++ b/eos/effects/fighterabilityevasivemaneuvers.py
@@ -1,4 +1,7 @@
-# Not used by any item
+# fighterAbilityEvasiveManeuvers
+#
+# Used by:
+# Fighters from group: Light Fighter (16 of 32)
"""
Since fighter abilities do not have any sort of item entity in the EVE database, we must derive the abilities from the
effects, and thus this effect file contains some custom information useful only to fighters.
diff --git a/eos/effects/fighterabilitylaunchbomb.py b/eos/effects/fighterabilitylaunchbomb.py
index bd46513bf..03763fd5a 100644
--- a/eos/effects/fighterabilitylaunchbomb.py
+++ b/eos/effects/fighterabilitylaunchbomb.py
@@ -1,4 +1,7 @@
-# Not used by any item
+# fighterAbilityLaunchBomb
+#
+# Used by:
+# Fighters from group: Heavy Fighter (16 of 34)
"""
Since fighter abilities do not have any sort of item entity in the EVE database, we must derive the abilities from the
effects, and thus this effect file contains some custom information useful only to fighters.
diff --git a/eos/effects/fighterabilitymicrowarpdrive.py b/eos/effects/fighterabilitymicrowarpdrive.py
index 6dfbae73a..d9cfdbe47 100644
--- a/eos/effects/fighterabilitymicrowarpdrive.py
+++ b/eos/effects/fighterabilitymicrowarpdrive.py
@@ -1,4 +1,7 @@
-# Not used by any item
+# fighterAbilityMicroWarpDrive
+#
+# Used by:
+# Items from category: Fighter (48 of 82)
"""
Since fighter abilities do not have any sort of item entity in the EVE database, we must derive the abilities from the
effects, and thus this effect file contains some custom information useful only to fighters.
diff --git a/eos/effects/fighterabilitymissiles.py b/eos/effects/fighterabilitymissiles.py
index 8dc752ee2..c6dde777e 100644
--- a/eos/effects/fighterabilitymissiles.py
+++ b/eos/effects/fighterabilitymissiles.py
@@ -1,4 +1,8 @@
-# Not used by any item
+# fighterAbilityMissiles
+#
+# Used by:
+# Items from category: Fighter (48 of 82)
+# Fighters from group: Light Fighter (32 of 32)
"""
Since fighter abilities do not have any sort of item entity in the EVE database, we must derive the abilities from the
effects, and thus this effect file contains some custom information useful only to fighters.
diff --git a/eos/effects/fighterabilitystasiswebifier.py b/eos/effects/fighterabilitystasiswebifier.py
index 1fd6dd96f..640cff4c0 100644
--- a/eos/effects/fighterabilitystasiswebifier.py
+++ b/eos/effects/fighterabilitystasiswebifier.py
@@ -1,4 +1,7 @@
-# Not used by any item
+# fighterAbilityStasisWebifier
+#
+# Used by:
+# Fighters named like: Dromi (4 of 4)
"""
Since fighter abilities do not have any sort of item entity in the EVE database, we must derive the abilities from the
effects, and thus this effect file contains some custom information useful only to fighters.
diff --git a/eos/effects/fighterabilitywarpdisruption.py b/eos/effects/fighterabilitywarpdisruption.py
index d362fb33f..e62c34de7 100644
--- a/eos/effects/fighterabilitywarpdisruption.py
+++ b/eos/effects/fighterabilitywarpdisruption.py
@@ -1,4 +1,7 @@
-# Not used by any item
+# fighterAbilityWarpDisruption
+#
+# Used by:
+# Fighters named like: Siren (4 of 4)
"""
Since fighter abilities do not have any sort of item entity in the EVE database, we must derive the abilities from the
effects, and thus this effect file contains some custom information useful only to fighters.
diff --git a/eos/effects/flagshipmultirelayeffect.py b/eos/effects/flagshipmultirelayeffect.py
deleted file mode 100644
index 20bf757c2..000000000
--- a/eos/effects/flagshipmultirelayeffect.py
+++ /dev/null
@@ -1,11 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- # Note: we increase maxGroupActive by two.
- # If we only increased it by one, we'd get the number to stay equal
- # As Comman Processors use one themselves too
- fit.modules.filteredItemIncrease(lambda mod: mod.item.group.name == "Gang Coordinator" and
- "maxGroupActive" in mod.itemModifiedAttributes,
- "maxGroupActive", 1)
diff --git a/eos/effects/fueledarmorrepair.py b/eos/effects/fueledarmorrepair.py
index 875a25cd2..049c799c1 100644
--- a/eos/effects/fueledarmorrepair.py
+++ b/eos/effects/fueledarmorrepair.py
@@ -1,7 +1,7 @@
# fueledArmorRepair
#
# Used by:
-# Modules from group: Ancillary Armor Repairer (4 of 4)
+# Modules from group: Ancillary Armor Repairer (7 of 7)
runTime = "late"
type = "active"
diff --git a/eos/effects/fueledshieldboosting.py b/eos/effects/fueledshieldboosting.py
index 36db95e2c..0cbbd439c 100644
--- a/eos/effects/fueledshieldboosting.py
+++ b/eos/effects/fueledshieldboosting.py
@@ -1,7 +1,7 @@
# fueledShieldBoosting
#
# Used by:
-# Modules from group: Ancillary Shield Booster (5 of 5)
+# Modules from group: Ancillary Shield Booster (8 of 8)
runTime = "late"
type = "active"
diff --git a/eos/effects/iceharvestercapacitorneedmultiplier.py b/eos/effects/iceharvestercapacitorneedmultiplier.py
deleted file mode 100644
index 93338c76f..000000000
--- a/eos/effects/iceharvestercapacitorneedmultiplier.py
+++ /dev/null
@@ -1,7 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, ship, context):
- fit.modules.filteredItemMultiply(lambda mod: mod.item.requiresSkill("Ice Harvesting"),
- "capacitorNeed", ship.getModifiedItemAttr("iceHarvestCycleBonus"))
diff --git a/eos/effects/informationwarfaremaxtargetrangebonus.py b/eos/effects/informationwarfaremaxtargetrangebonus.py
deleted file mode 100644
index dfb0a01fc..000000000
--- a/eos/effects/informationwarfaremaxtargetrangebonus.py
+++ /dev/null
@@ -1,8 +0,0 @@
-# Not used by any item
-type = "gang"
-gangBoost = "maxTargetRange"
-gangBonus = "maxTargetRangeBonus"
-
-
-def handler(fit, container, context):
- fit.ship.boostItemAttr(gangBoost, container.getModifiedItemAttr(gangBonus))
diff --git a/eos/effects/informationwarfaremindlinkhidden.py b/eos/effects/informationwarfaremindlinkhidden.py
deleted file mode 100644
index 014ad1d31..000000000
--- a/eos/effects/informationwarfaremindlinkhidden.py
+++ /dev/null
@@ -1,8 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, implant, context):
- fit.character.getSkill("Information Command").suppress()
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Command Specialist"),
- "commandBonusHidden", implant.getModifiedItemAttr("mindlinkBonus"))
diff --git a/eos/effects/largedisintegratorskilldmgbonus.py b/eos/effects/largedisintegratorskilldmgbonus.py
new file mode 100644
index 000000000..c3b03337d
--- /dev/null
+++ b/eos/effects/largedisintegratorskilldmgbonus.py
@@ -0,0 +1,11 @@
+# largeDisintegratorSkillDmgBonus
+#
+# Used by:
+# Skill: Large Disintegrator Specialization
+type = "passive"
+
+
+def handler(fit, container, context):
+ level = container.level if "skill" in context else 1
+ fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Disintegrator Specialization"),
+ "damageMultiplier", container.getModifiedItemAttr("damageMultiplierBonus") * level)
diff --git a/eos/effects/largeprecursorturretdmgbonusrequiredskill.py b/eos/effects/largeprecursorturretdmgbonusrequiredskill.py
new file mode 100644
index 000000000..32ba9bb8b
--- /dev/null
+++ b/eos/effects/largeprecursorturretdmgbonusrequiredskill.py
@@ -0,0 +1,11 @@
+# largePrecursorTurretDmgBonusRequiredSkill
+#
+# Used by:
+# Skill: Large Precursor Weapon
+type = "passive"
+
+
+def handler(fit, container, context):
+ level = container.level if "skill" in context else 1
+ fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Precursor Weapon"),
+ "damageMultiplier", container.getModifiedItemAttr("damageMultiplierBonus") * level)
diff --git a/eos/effects/lightningweapon.py b/eos/effects/lightningweapon.py
index 4f2324035..81987466e 100644
--- a/eos/effects/lightningweapon.py
+++ b/eos/effects/lightningweapon.py
@@ -1,4 +1,7 @@
-# Not used by any item
+# lightningWeapon
+#
+# Used by:
+# Structure Module: Standup Arcing Vorton Projector I
type = 'active'
diff --git a/eos/effects/maraudermodeeffect26.py b/eos/effects/maraudermodeeffect26.py
deleted file mode 100644
index f892a5a52..000000000
--- a/eos/effects/maraudermodeeffect26.py
+++ /dev/null
@@ -1,52 +0,0 @@
-# Not used by any item
-type = "active"
-runTime = "early"
-
-
-def handler(fit, module, context):
- # Resistances
- for layer, attrPrefix in (('shield', 'shield'), ('armor', 'armor'), ('hull', '')):
- for damageType in ('Kinetic', 'Thermal', 'Explosive', 'Em'):
- bonus = "%s%sDamageResonance" % (attrPrefix, damageType)
- bonus = "%s%s" % (bonus[0].lower(), bonus[1:])
- booster = "%s%sDamageResonance" % (layer, damageType)
- penalize = False if layer == 'hull' else True
- fit.ship.multiplyItemAttr(bonus, module.getModifiedItemAttr(booster),
- stackingPenalties=penalize, penaltyGroup="preMul")
-
- # Turrets
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Energy Turret") or
- mod.item.requiresSkill("Large Hybrid Turret") or
- mod.item.requiresSkill("Large Projectile Turret"),
- "maxRange", module.getModifiedItemAttr("maxRangeBonus"),
- stackingPenalties=True)
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Energy Turret") or
- mod.item.requiresSkill("Large Hybrid Turret") or
- mod.item.requiresSkill("Large Projectile Turret"),
- "falloff", module.getModifiedItemAttr("falloffBonus"),
- stackingPenalties=True)
-
- # Missiles
- fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes") or
- mod.charge.requiresSkill("Cruise Missiles") or
- mod.charge.requiresSkill("Heavy Missiles"),
- "maxVelocity", module.getModifiedItemAttr("missileVelocityBonus"))
-
- # Tanking
- fit.modules.filteredItemBoost(
- lambda mod: mod.item.requiresSkill("Capital Repair Systems") or mod.item.requiresSkill("Repair Systems"),
- "armorDamageAmount", module.getModifiedItemAttr("armorDamageAmountBonus"),
- stackingPenalties=True)
- fit.modules.filteredItemBoost(
- lambda mod: mod.item.requiresSkill("Capital Shield Operation") or mod.item.requiresSkill("Shield Operation"),
- "shieldBonus", module.getModifiedItemAttr("shieldBoostMultiplier"),
- stackingPenalties=True)
-
- # Speed penalty
- fit.ship.boostItemAttr("maxVelocity", module.getModifiedItemAttr("speedFactor"))
-
- # Max locked targets
- fit.ship.forceItemAttr("maxLockedTargets", module.getModifiedItemAttr("maxLockedTargets"))
-
- # Block Hostile ewar
- fit.ship.forceItemAttr("disallowOffensiveModifiers", module.getModifiedItemAttr("disallowOffensiveModifiers"))
diff --git a/eos/effects/massaddpassive.py b/eos/effects/massaddpassive.py
deleted file mode 100644
index 68847c8ec..000000000
--- a/eos/effects/massaddpassive.py
+++ /dev/null
@@ -1,6 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.ship.increaseItemAttr("mass", module.getModifiedItemAttr("mass") or 0)
diff --git a/eos/effects/maxvelocityaddpassive.py b/eos/effects/maxvelocityaddpassive.py
deleted file mode 100644
index 33d05f88c..000000000
--- a/eos/effects/maxvelocityaddpassive.py
+++ /dev/null
@@ -1,6 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.ship.increaseItemAttr("maxVelocity", module.getModifiedItemAttr("maxVelocity"))
diff --git a/eos/effects/mediumdisintegratorskilldmgbonus.py b/eos/effects/mediumdisintegratorskilldmgbonus.py
new file mode 100644
index 000000000..f7a2cc10e
--- /dev/null
+++ b/eos/effects/mediumdisintegratorskilldmgbonus.py
@@ -0,0 +1,11 @@
+# mediumDisintegratorSkillDmgBonus
+#
+# Used by:
+# Skill: Medium Disintegrator Specialization
+type = "passive"
+
+
+def handler(fit, container, context):
+ level = container.level if "skill" in context else 1
+ fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Disintegrator Specialization"),
+ "damageMultiplier", container.getModifiedItemAttr("damageMultiplierBonus") * level)
diff --git a/eos/effects/mediumprecursorturretdmgbonusrequiredskill.py b/eos/effects/mediumprecursorturretdmgbonusrequiredskill.py
new file mode 100644
index 000000000..c35fcda31
--- /dev/null
+++ b/eos/effects/mediumprecursorturretdmgbonusrequiredskill.py
@@ -0,0 +1,11 @@
+# mediumPrecursorTurretDmgBonusRequiredSkill
+#
+# Used by:
+# Skill: Medium Precursor Weapon
+type = "passive"
+
+
+def handler(fit, container, context):
+ level = container.level if "skill" in context else 1
+ fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Precursor Weapon"),
+ "damageMultiplier", container.getModifiedItemAttr("damageMultiplierBonus") * level)
diff --git a/eos/effects/miningdirectorbonuscommandbonuseffective.py b/eos/effects/miningdirectorbonuscommandbonuseffective.py
deleted file mode 100644
index 43f712ff5..000000000
--- a/eos/effects/miningdirectorbonuscommandbonuseffective.py
+++ /dev/null
@@ -1,7 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, ship, context):
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Mining Director"),
- "commandBonus", ship.getModifiedItemAttr("commandBonusEffective"))
diff --git a/eos/effects/missileskillwarheadupgradesemdamagebonus.py b/eos/effects/missileskillwarheadupgradesemdamagebonus.py
index 675b09ab0..30d0605d5 100644
--- a/eos/effects/missileskillwarheadupgradesemdamagebonus.py
+++ b/eos/effects/missileskillwarheadupgradesemdamagebonus.py
@@ -1,7 +1,7 @@
# missileSkillWarheadUpgradesEmDamageBonus
#
# Used by:
-# Implants named like: Agency 'Pyrolancea' DB Dose (3 of 3)
+# Implants named like: Agency 'Pyrolancea' DB Dose (3 of 4)
# Skill: Warhead Upgrades
type = "passive"
diff --git a/eos/effects/missileskillwarheadupgradesexplosivedamagebonus.py b/eos/effects/missileskillwarheadupgradesexplosivedamagebonus.py
index 98c7941d6..f0f3fcf3b 100644
--- a/eos/effects/missileskillwarheadupgradesexplosivedamagebonus.py
+++ b/eos/effects/missileskillwarheadupgradesexplosivedamagebonus.py
@@ -1,7 +1,7 @@
# missileSkillWarheadUpgradesExplosiveDamageBonus
#
# Used by:
-# Implants named like: Agency 'Pyrolancea' DB Dose (3 of 3)
+# Implants named like: Agency 'Pyrolancea' DB Dose (3 of 4)
# Skill: Warhead Upgrades
type = "passive"
diff --git a/eos/effects/missileskillwarheadupgradeskineticdamagebonus.py b/eos/effects/missileskillwarheadupgradeskineticdamagebonus.py
index 497f1e20c..a9eb7b86e 100644
--- a/eos/effects/missileskillwarheadupgradeskineticdamagebonus.py
+++ b/eos/effects/missileskillwarheadupgradeskineticdamagebonus.py
@@ -1,7 +1,7 @@
# missileSkillWarheadUpgradesKineticDamageBonus
#
# Used by:
-# Implants named like: Agency 'Pyrolancea' DB Dose (3 of 3)
+# Implants named like: Agency 'Pyrolancea' DB Dose (3 of 4)
# Skill: Warhead Upgrades
type = "passive"
diff --git a/eos/effects/missileskillwarheadupgradesthermaldamagebonus.py b/eos/effects/missileskillwarheadupgradesthermaldamagebonus.py
index 23685da0a..8fc3ffc5c 100644
--- a/eos/effects/missileskillwarheadupgradesthermaldamagebonus.py
+++ b/eos/effects/missileskillwarheadupgradesthermaldamagebonus.py
@@ -1,7 +1,7 @@
# missileSkillWarheadUpgradesThermalDamageBonus
#
# Used by:
-# Implants named like: Agency 'Pyrolancea' DB Dose (3 of 3)
+# Implants named like: Agency 'Pyrolancea' DB Dose (3 of 4)
# Skill: Warhead Upgrades
type = "passive"
diff --git a/eos/effects/modifyarmorresonancepassivepreassignment.py b/eos/effects/modifyarmorresonancepassivepreassignment.py
deleted file mode 100644
index 467f80846..000000000
--- a/eos/effects/modifyarmorresonancepassivepreassignment.py
+++ /dev/null
@@ -1,8 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- for type in ("Em", "Explosive", "Kinetic", "Thermal"):
- fit.ship.preAssignItemAttr("armor{0}DamageResonance".format(type),
- module.getModifiedItemAttr("passiveArmor{0}DamageResonance".format(type)))
diff --git a/eos/effects/modifyshieldresonancepassivepreassignment.py b/eos/effects/modifyshieldresonancepassivepreassignment.py
deleted file mode 100644
index f61d559ce..000000000
--- a/eos/effects/modifyshieldresonancepassivepreassignment.py
+++ /dev/null
@@ -1,8 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- for type in ("Em", "Explosive", "Kinetic", "Thermal"):
- fit.ship.preAssignItemAttr("shield{0}DamageResonance".format(type),
- module.getModifiedItemAttr("passiveShield{0}DamageResonance".format(type)))
diff --git a/eos/effects/modifyshipagilitypassivepreassignment.py b/eos/effects/modifyshipagilitypassivepreassignment.py
deleted file mode 100644
index 4691fa106..000000000
--- a/eos/effects/modifyshipagilitypassivepreassignment.py
+++ /dev/null
@@ -1,7 +0,0 @@
-# Not used by any item
-runTime = "early"
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.ship.preAssignItemAttr("agility", module.getModifiedItemAttr("agility"))
diff --git a/eos/effects/modulebonusafterburner.py b/eos/effects/modulebonusafterburner.py
index c26412bb0..71f4c96b1 100644
--- a/eos/effects/modulebonusafterburner.py
+++ b/eos/effects/modulebonusafterburner.py
@@ -1,7 +1,7 @@
# moduleBonusAfterburner
#
# Used by:
-# Modules from group: Propulsion Module (62 of 127)
+# Modules from group: Propulsion Module (65 of 133)
type = "active"
runTime = "late"
diff --git a/eos/effects/modulebonusmicrowarpdrive.py b/eos/effects/modulebonusmicrowarpdrive.py
index 75df915ce..70478fa71 100644
--- a/eos/effects/modulebonusmicrowarpdrive.py
+++ b/eos/effects/modulebonusmicrowarpdrive.py
@@ -1,7 +1,7 @@
# moduleBonusMicrowarpdrive
#
# Used by:
-# Modules from group: Propulsion Module (65 of 127)
+# Modules from group: Propulsion Module (68 of 133)
type = "active"
runTime = "late"
diff --git a/eos/effects/navigationvelocitybonuspostpercentmaxvelocityship.py b/eos/effects/navigationvelocitybonuspostpercentmaxvelocityship.py
index bf8dd4894..1ffbda714 100644
--- a/eos/effects/navigationvelocitybonuspostpercentmaxvelocityship.py
+++ b/eos/effects/navigationvelocitybonuspostpercentmaxvelocityship.py
@@ -2,7 +2,7 @@
#
# Used by:
# Modules from group: Rig Anchor (4 of 4)
-# Implants named like: Agency 'Overclocker' SB Dose (3 of 3)
+# Implants named like: Agency 'Overclocker' SB Dose (3 of 4)
# Implants named like: grade Snake (16 of 18)
# Modules named like: Auxiliary Thrusters (8 of 8)
# Implant: Quafe Zero
diff --git a/eos/effects/noscpuneedbonuseffect.py b/eos/effects/noscpuneedbonuseffect.py
deleted file mode 100644
index d54b6e023..000000000
--- a/eos/effects/noscpuneedbonuseffect.py
+++ /dev/null
@@ -1,10 +0,0 @@
-# nosCpuNeedBonusEffect
-#
-# Used by:
-# Ship: Rabisu
-type = "passive"
-
-
-def handler(fit, src, context):
- fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Nosferatu", "cpu",
- src.getModifiedItemAttr("nosferatuCpuNeedBonus"))
diff --git a/eos/effects/orecapitalshipshieldtransferfalloff.py b/eos/effects/orecapitalshipshieldtransferfalloff.py
deleted file mode 100644
index 6ec5e26c5..000000000
--- a/eos/effects/orecapitalshipshieldtransferfalloff.py
+++ /dev/null
@@ -1,8 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, src, context):
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Shield Emission Systems"),
- "falloffEffectiveness", src.getModifiedItemAttr("shipBonusORECapital3"),
- skill="Capital Industrial Ships")
diff --git a/eos/effects/overloadrofbonus.py b/eos/effects/overloadrofbonus.py
index 4d5707173..47f64d418 100644
--- a/eos/effects/overloadrofbonus.py
+++ b/eos/effects/overloadrofbonus.py
@@ -2,7 +2,7 @@
#
# Used by:
# Modules from group: Missile Launcher Torpedo (22 of 22)
-# Items from market group: Ship Equipment > Turrets & Bays (429 of 863)
+# Items from market group: Ship Equipment > Turrets & Bays (429 of 881)
# Module: Interdiction Sphere Launcher I
type = "overheat"
diff --git a/eos/effects/overloadselfarmordamageamountdurationbonus.py b/eos/effects/overloadselfarmordamageamountdurationbonus.py
index 3545e6dab..c7a2a1049 100644
--- a/eos/effects/overloadselfarmordamageamountdurationbonus.py
+++ b/eos/effects/overloadselfarmordamageamountdurationbonus.py
@@ -1,8 +1,8 @@
# overloadSelfArmorDamageAmountDurationBonus
#
# Used by:
-# Modules from group: Ancillary Armor Repairer (4 of 4)
-# Modules from group: Armor Repair Unit (105 of 105)
+# Modules from group: Ancillary Armor Repairer (7 of 7)
+# Modules from group: Armor Repair Unit (108 of 108)
type = "overheat"
diff --git a/eos/effects/overloadselfdamagebonus.py b/eos/effects/overloadselfdamagebonus.py
index a60a741e4..073b1ead3 100644
--- a/eos/effects/overloadselfdamagebonus.py
+++ b/eos/effects/overloadselfdamagebonus.py
@@ -3,6 +3,7 @@
# Used by:
# Modules from group: Energy Weapon (101 of 214)
# Modules from group: Hybrid Weapon (105 of 221)
+# Modules from group: Precursor Weapon (15 of 15)
# Modules from group: Projectile Weapon (99 of 165)
type = "overheat"
diff --git a/eos/effects/overloadselfdurationbonus.py b/eos/effects/overloadselfdurationbonus.py
index 356eab98a..498e3a527 100644
--- a/eos/effects/overloadselfdurationbonus.py
+++ b/eos/effects/overloadselfdurationbonus.py
@@ -2,7 +2,7 @@
#
# Used by:
# Modules from group: Capacitor Booster (59 of 59)
-# Modules from group: Energy Neutralizer (51 of 51)
+# Modules from group: Energy Neutralizer (54 of 54)
# Modules from group: Energy Nosferatu (51 of 51)
# Modules from group: Hull Repair Unit (25 of 25)
# Modules from group: Remote Armor Repairer (39 of 39)
diff --git a/eos/effects/overloadselfrangebonus.py b/eos/effects/overloadselfrangebonus.py
index f306a064f..781bf4794 100644
--- a/eos/effects/overloadselfrangebonus.py
+++ b/eos/effects/overloadselfrangebonus.py
@@ -2,8 +2,8 @@
#
# Used by:
# Modules from group: Stasis Grappler (7 of 7)
-# Modules from group: Stasis Web (18 of 18)
-# Modules from group: Warp Scrambler (52 of 53)
+# Modules from group: Stasis Web (19 of 19)
+# Modules from group: Warp Scrambler (54 of 55)
type = "overheat"
diff --git a/eos/effects/overloadselfshieldbonusdurationbonus.py b/eos/effects/overloadselfshieldbonusdurationbonus.py
index cc833be68..4706ccbca 100644
--- a/eos/effects/overloadselfshieldbonusdurationbonus.py
+++ b/eos/effects/overloadselfshieldbonusdurationbonus.py
@@ -1,8 +1,8 @@
# overloadSelfShieldBonusDurationBonus
#
# Used by:
-# Modules from group: Ancillary Shield Booster (5 of 5)
-# Modules from group: Shield Booster (93 of 93)
+# Modules from group: Ancillary Shield Booster (8 of 8)
+# Modules from group: Shield Booster (97 of 97)
type = "overheat"
diff --git a/eos/effects/overloadselfspeedbonus.py b/eos/effects/overloadselfspeedbonus.py
index c7ee81a90..cc5dbe3f6 100644
--- a/eos/effects/overloadselfspeedbonus.py
+++ b/eos/effects/overloadselfspeedbonus.py
@@ -1,7 +1,7 @@
# overloadSelfSpeedBonus
#
# Used by:
-# Modules from group: Propulsion Module (127 of 127)
+# Modules from group: Propulsion Module (133 of 133)
type = "overheat"
diff --git a/eos/effects/pointdefense.py b/eos/effects/pointdefense.py
index 4f2324035..44cf69af7 100644
--- a/eos/effects/pointdefense.py
+++ b/eos/effects/pointdefense.py
@@ -1,4 +1,7 @@
-# Not used by any item
+# pointDefense
+#
+# Used by:
+# Structure Modules from group: Structure Area Denial Module (2 of 2)
type = 'active'
diff --git a/eos/effects/poweroutputmultiply.py b/eos/effects/poweroutputmultiply.py
index f4d5eb600..2add2137d 100644
--- a/eos/effects/poweroutputmultiply.py
+++ b/eos/effects/poweroutputmultiply.py
@@ -5,6 +5,7 @@
# Modules from group: Capacitor Power Relay (20 of 20)
# Modules from group: Power Diagnostic System (23 of 23)
# Modules from group: Reactor Control Unit (22 of 22)
+# Variations of structure module: Standup Reactor Control Unit I (2 of 2)
type = "passive"
diff --git a/eos/effects/probelaunchercpupercentbonustacticaldestroyer.py b/eos/effects/probelaunchercpupercentbonustacticaldestroyer.py
deleted file mode 100644
index 2f2378405..000000000
--- a/eos/effects/probelaunchercpupercentbonustacticaldestroyer.py
+++ /dev/null
@@ -1,10 +0,0 @@
-# probeLauncherCPUPercentBonusTacticalDestroyer
-#
-# Used by:
-# Ships from group: Tactical Destroyer (4 of 4)
-type = "passive"
-
-
-def handler(fit, ship, context):
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Astrometrics"),
- "cpu", ship.getModifiedItemAttr("roleBonusT3ProbeCPU"))
diff --git a/eos/effects/rechargerateaddpassive.py b/eos/effects/rechargerateaddpassive.py
deleted file mode 100644
index 4f790674e..000000000
--- a/eos/effects/rechargerateaddpassive.py
+++ /dev/null
@@ -1,6 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.ship.increaseItemAttr("rechargeRate", module.getModifiedItemAttr("rechargeRate"))
diff --git a/eos/effects/remoteecmfalloff.py b/eos/effects/remoteecmfalloff.py
index 409235895..3ab1e4010 100644
--- a/eos/effects/remoteecmfalloff.py
+++ b/eos/effects/remoteecmfalloff.py
@@ -2,6 +2,7 @@
#
# Used by:
# Modules from group: ECM (39 of 39)
+# Starbases from group: Electronic Warfare Battery (12 of 12)
from eos.modifiedAttributeDict import ModifiedAttributeDict
type = "projected", "active"
diff --git a/eos/effects/remotehullrepair.py b/eos/effects/remotehullrepair.py
deleted file mode 100644
index 508b5684e..000000000
--- a/eos/effects/remotehullrepair.py
+++ /dev/null
@@ -1,11 +0,0 @@
-# Not used by any item
-type = "projected", "active"
-runTime = "late"
-
-
-def handler(fit, module, context):
- if "projected" not in context:
- return
- bonus = module.getModifiedItemAttr("structureDamageAmount")
- duration = module.getModifiedItemAttr("duration") / 1000.0
- fit.extraAttributes.increase("hullRepair", bonus / duration)
diff --git a/eos/effects/remotesensordampfalloff.py b/eos/effects/remotesensordampfalloff.py
index 81ae5dfa1..cc60e1986 100644
--- a/eos/effects/remotesensordampfalloff.py
+++ b/eos/effects/remotesensordampfalloff.py
@@ -2,6 +2,7 @@
#
# Used by:
# Modules from group: Sensor Dampener (6 of 6)
+# Starbases from group: Sensor Dampening Battery (3 of 3)
type = "projected", "active"
diff --git a/eos/effects/remotewebifierfalloff.py b/eos/effects/remotewebifierfalloff.py
index 4d5bc770c..c50e08141 100644
--- a/eos/effects/remotewebifierfalloff.py
+++ b/eos/effects/remotewebifierfalloff.py
@@ -2,7 +2,8 @@
#
# Used by:
# Modules from group: Stasis Grappler (7 of 7)
-# Modules from group: Stasis Web (18 of 18)
+# Modules from group: Stasis Web (19 of 19)
+# Starbases from group: Stasis Webification Battery (3 of 3)
type = "active", "projected"
diff --git a/eos/effects/rigdrawbackbonuseffect.py b/eos/effects/rigdrawbackbonuseffect.py
deleted file mode 100644
index 58f066b1d..000000000
--- a/eos/effects/rigdrawbackbonuseffect.py
+++ /dev/null
@@ -1,7 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, skill, context):
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill(skill),
- "drawback", skill.getModifiedItemAttr("rigDrawbackBonus") * skill.level)
diff --git a/eos/effects/scanresolutionaddpassive.py b/eos/effects/scanresolutionaddpassive.py
deleted file mode 100644
index 6e4599d7b..000000000
--- a/eos/effects/scanresolutionaddpassive.py
+++ /dev/null
@@ -1,6 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.ship.increaseItemAttr("scanResolution", module.getModifiedItemAttr("scanResolution"))
diff --git a/eos/effects/scanstrengthaddpassive.py b/eos/effects/scanstrengthaddpassive.py
deleted file mode 100644
index 12f228a0d..000000000
--- a/eos/effects/scanstrengthaddpassive.py
+++ /dev/null
@@ -1,9 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- sensorTypes = ("Gravimetric", "Ladar", "Magnetometric", "Radar")
- for sensorType in sensorTypes:
- sensAttr = "scan{0}Strength".format(sensorType)
- fit.ship.increaseItemAttr(sensAttr, module.getModifiedItemAttr(sensAttr))
diff --git a/eos/effects/scanstrengthbonuspercentactivate.py b/eos/effects/scanstrengthbonuspercentactivate.py
deleted file mode 100644
index 10b66e3c4..000000000
--- a/eos/effects/scanstrengthbonuspercentactivate.py
+++ /dev/null
@@ -1,11 +0,0 @@
-# Not used by any item
-type = "active"
-
-
-def handler(fit, module, context):
- for scanType in ("Gravimetric", "Magnetometric", "Radar", "Ladar"):
- fit.ship.boostItemAttr(
- "scan{}Strength".format(scanType),
- module.getModifiedItemAttr("scan{}StrengthPercent".format(scanType)),
- stackingPenalties=True
- )
diff --git a/eos/effects/servicemodulefullpowerhitpointpostassign.py b/eos/effects/servicemodulefullpowerhitpointpostassign.py
index edcb40ae1..7fdc46eff 100644
--- a/eos/effects/servicemodulefullpowerhitpointpostassign.py
+++ b/eos/effects/servicemodulefullpowerhitpointpostassign.py
@@ -1,4 +1,10 @@
-# Not used by any item
+# serviceModuleFullPowerHitpointPostAssign
+#
+# Used by:
+# Structure Modules from group: Structure Citadel Service Module (2 of 2)
+# Structure Modules from group: Structure Engineering Service Module (6 of 6)
+# Structure Modules from group: Structure Resource Processing Service Module (4 of 4)
+# Structure Module: Standup Moon Drill I
type = "passive"
runTime = "early"
diff --git a/eos/effects/shieldboostamplifierpassive.py b/eos/effects/shieldboostamplifierpassive.py
index c1361e338..182c04acf 100644
--- a/eos/effects/shieldboostamplifierpassive.py
+++ b/eos/effects/shieldboostamplifierpassive.py
@@ -1,7 +1,6 @@
# shieldBoostAmplifierPassive
#
# Used by:
-# Implants named like: Agency 'Hardshell' TB Dose (3 of 3)
# Implants named like: grade Crystal (15 of 18)
type = "passive"
diff --git a/eos/effects/shieldboostamplifierpassivebooster.py b/eos/effects/shieldboostamplifierpassivebooster.py
index 0c7158194..3dbd40327 100644
--- a/eos/effects/shieldboostamplifierpassivebooster.py
+++ b/eos/effects/shieldboostamplifierpassivebooster.py
@@ -1,6 +1,7 @@
# shieldBoostAmplifierPassiveBooster
#
# Used by:
+# Implants named like: Agency 'Hardshell' TB Dose (3 of 4)
# Implants named like: Blue Pill Booster (5 of 5)
# Implant: Antipharmakon Thureo
type = "passive"
diff --git a/eos/effects/shieldboosting.py b/eos/effects/shieldboosting.py
index 8d8676d0e..808e2f1b0 100644
--- a/eos/effects/shieldboosting.py
+++ b/eos/effects/shieldboosting.py
@@ -1,7 +1,7 @@
# shieldBoosting
#
# Used by:
-# Modules from group: Shield Booster (93 of 93)
+# Modules from group: Shield Booster (97 of 97)
runTime = "late"
type = "active"
diff --git a/eos/effects/shieldcapacitybonusonline.py b/eos/effects/shieldcapacitybonusonline.py
index 7c4cb037d..cba8f70bb 100644
--- a/eos/effects/shieldcapacitybonusonline.py
+++ b/eos/effects/shieldcapacitybonusonline.py
@@ -1,7 +1,7 @@
# shieldCapacityBonusOnline
#
# Used by:
-# Modules from group: Shield Extender (33 of 33)
+# Modules from group: Shield Extender (36 of 36)
# Modules from group: Shield Resistance Amplifier (88 of 88)
type = "passive"
diff --git a/eos/effects/shieldrechargerateaddpassive.py b/eos/effects/shieldrechargerateaddpassive.py
deleted file mode 100644
index 1d071fb8a..000000000
--- a/eos/effects/shieldrechargerateaddpassive.py
+++ /dev/null
@@ -1,6 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.ship.increaseItemAttr("shieldRechargeRate", module.getModifiedItemAttr("shieldRechargeRate") or 0)
diff --git a/eos/effects/shieldtransfer.py b/eos/effects/shieldtransfer.py
deleted file mode 100644
index 54bbc1112..000000000
--- a/eos/effects/shieldtransfer.py
+++ /dev/null
@@ -1,9 +0,0 @@
-# Not used by any item
-type = "projected", "active"
-
-
-def handler(fit, container, context):
- if "projected" in context:
- bonus = container.getModifiedItemAttr("shieldBonus")
- duration = container.getModifiedItemAttr("duration") / 1000.0
- fit.extraAttributes.increase("shieldRepair", bonus / duration)
diff --git a/eos/effects/shipbonusenergyvampirerangead2.py b/eos/effects/shipbonusenergyvampirerangead2.py
deleted file mode 100644
index 28f9f7c8c..000000000
--- a/eos/effects/shipbonusenergyvampirerangead2.py
+++ /dev/null
@@ -1,7 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, ship, context):
- fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Nosferatu",
- "maxRange", ship.getModifiedItemAttr("shipBonusAD2"), skill="Amarr Destroyer")
diff --git a/eos/effects/shipbonusneutcapneedrolebonus2.py b/eos/effects/shipbonusneutcapneedrolebonus2.py
new file mode 100644
index 000000000..324a01c66
--- /dev/null
+++ b/eos/effects/shipbonusneutcapneedrolebonus2.py
@@ -0,0 +1,12 @@
+# shipBonusNeutCapNeedRoleBonus2
+#
+# Used by:
+# Ship: Damavik
+# Ship: Leshak
+# Ship: Vedmak
+type = "passive"
+
+
+def handler(fit, src, context):
+ fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Neutralizer", "capacitorNeed",
+ src.getModifiedItemAttr("shipBonusRole2"))
diff --git a/eos/effects/shipbonusorecapshipdronearmorhpandshieldhpandhpbonus.py b/eos/effects/shipbonusorecapshipdronearmorhpandshieldhpandhpbonus.py
deleted file mode 100644
index e8860ee63..000000000
--- a/eos/effects/shipbonusorecapshipdronearmorhpandshieldhpandhpbonus.py
+++ /dev/null
@@ -1,9 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, ship, context):
- for type in ("shieldCapacity", "armorHP", "hp"):
- fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"),
- type, ship.getModifiedItemAttr("shipBonusORECapital4"),
- skill="Capital Industrial Ships")
diff --git a/eos/effects/shipbonusorecapshipdronedmgbonus.py b/eos/effects/shipbonusorecapshipdronedmgbonus.py
deleted file mode 100644
index eaa95fe6d..000000000
--- a/eos/effects/shipbonusorecapshipdronedmgbonus.py
+++ /dev/null
@@ -1,8 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, ship, context):
- fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"),
- "damageMultiplier", ship.getModifiedItemAttr("shipBonusORECapital4"),
- skill="Capital Industrial Ships")
diff --git a/eos/effects/shipxlprojectiledamagerole.py b/eos/effects/shipbonuspctdamagepc1.py
similarity index 55%
rename from eos/effects/shipxlprojectiledamagerole.py
rename to eos/effects/shipbonuspctdamagepc1.py
index eaa09058e..50db0c467 100644
--- a/eos/effects/shipxlprojectiledamagerole.py
+++ b/eos/effects/shipbonuspctdamagepc1.py
@@ -1,7 +1,10 @@
-# Not used by any item
+# shipbonusPCTDamagePC1
+#
+# Used by:
+# Ship: Vedmak
type = "passive"
def handler(fit, ship, context):
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Projectile Turret"),
- "damageMultiplier", ship.getModifiedItemAttr("shipBonusRole7"))
+ fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Precursor Weapon"),
+ "damageMultiplier", ship.getModifiedItemAttr("shipBonusPC1"), skill="Precursor Cruiser")
diff --git a/eos/effects/elitebonusgunshipprojectiledamage2.py b/eos/effects/shipbonuspctdamagepf1.py
similarity index 53%
rename from eos/effects/elitebonusgunshipprojectiledamage2.py
rename to eos/effects/shipbonuspctdamagepf1.py
index 81ad55805..7fd636e18 100644
--- a/eos/effects/elitebonusgunshipprojectiledamage2.py
+++ b/eos/effects/shipbonuspctdamagepf1.py
@@ -1,8 +1,10 @@
-# Not used by any item
+# shipbonusPCTDamagePF1
+#
+# Used by:
+# Ship: Damavik
type = "passive"
def handler(fit, ship, context):
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Projectile Turret"),
- "damageMultiplier", ship.getModifiedItemAttr("eliteBonusGunship2"),
- skill="Assault Frigates")
+ fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Precursor Weapon"),
+ "damageMultiplier", ship.getModifiedItemAttr("shipBonusPF1"), skill="Precursor Frigate")
diff --git a/eos/effects/elitebonusgunshipprojectileoptimal1.py b/eos/effects/shipbonuspctoptimalpf2.py
similarity index 56%
rename from eos/effects/elitebonusgunshipprojectileoptimal1.py
rename to eos/effects/shipbonuspctoptimalpf2.py
index 75327d04f..424b0d282 100644
--- a/eos/effects/elitebonusgunshipprojectileoptimal1.py
+++ b/eos/effects/shipbonuspctoptimalpf2.py
@@ -1,7 +1,10 @@
-# Not used by any item
+# shipbonusPCTOptimalPF2
+#
+# Used by:
+# Ship: Damavik
type = "passive"
def handler(fit, ship, context):
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Projectile Turret"),
- "maxRange", ship.getModifiedItemAttr("eliteBonusGunship1"), skill="Assault Frigates")
+ fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Precursor Weapon"),
+ "maxRange", ship.getModifiedItemAttr("shipBonusPF2"), skill="Precursor Frigate")
diff --git a/eos/effects/shipsettrackingbonusaf.py b/eos/effects/shipbonuspcttrackingpc2.py
similarity index 55%
rename from eos/effects/shipsettrackingbonusaf.py
rename to eos/effects/shipbonuspcttrackingpc2.py
index f8e952ffc..69224ac73 100644
--- a/eos/effects/shipsettrackingbonusaf.py
+++ b/eos/effects/shipbonuspcttrackingpc2.py
@@ -1,7 +1,10 @@
-# Not used by any item
+# shipbonusPCTTrackingPC2
+#
+# Used by:
+# Ship: Vedmak
type = "passive"
def handler(fit, ship, context):
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Energy Turret"),
- "trackingSpeed", ship.getModifiedItemAttr("shipBonusAF"), skill="Amarr Frigate")
+ fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Precursor Weapon"),
+ "trackingSpeed", ship.getModifiedItemAttr("shipBonusPC2"), skill="Precursor Cruiser")
diff --git a/eos/effects/shipbonusremoterepcapneedrolebonus2.py b/eos/effects/shipbonusremoterepcapneedrolebonus2.py
new file mode 100644
index 000000000..d2b7f5ea7
--- /dev/null
+++ b/eos/effects/shipbonusremoterepcapneedrolebonus2.py
@@ -0,0 +1,12 @@
+# shipBonusRemoteRepCapNeedRoleBonus2
+#
+# Used by:
+# Ship: Damavik
+# Ship: Leshak
+# Ship: Vedmak
+type = "passive"
+
+
+def handler(fit, ship, context):
+ fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems"),
+ "capacitorNeed", ship.getModifiedItemAttr("shipBonusRole2"))
diff --git a/eos/effects/orecapitalshipshieldtransferrange.py b/eos/effects/shipbonusremoterepmaxrangerolebonus1.py
similarity index 52%
rename from eos/effects/orecapitalshipshieldtransferrange.py
rename to eos/effects/shipbonusremoterepmaxrangerolebonus1.py
index 2e7f24d88..cdcc2773d 100644
--- a/eos/effects/orecapitalshipshieldtransferrange.py
+++ b/eos/effects/shipbonusremoterepmaxrangerolebonus1.py
@@ -1,8 +1,12 @@
-# Not used by any item
+# shipBonusRemoteRepMaxRangeRoleBonus1
+#
+# Used by:
+# Ship: Damavik
+# Ship: Leshak
+# Ship: Vedmak
type = "passive"
def handler(fit, ship, context):
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Shield Emission Systems"),
- "maxRange", ship.getModifiedItemAttr("shipBonusORECapital3"),
- skill="Capital Industrial Ships")
+ fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems"),
+ "maxRange", ship.getModifiedItemAttr("shipBonusRole1"))
diff --git a/eos/effects/shipbonussmartbombcapneedrolebonus2.py b/eos/effects/shipbonussmartbombcapneedrolebonus2.py
new file mode 100644
index 000000000..611e9822b
--- /dev/null
+++ b/eos/effects/shipbonussmartbombcapneedrolebonus2.py
@@ -0,0 +1,12 @@
+# shipBonusSmartbombCapNeedRoleBonus2
+#
+# Used by:
+# Ship: Damavik
+# Ship: Leshak
+# Ship: Vedmak
+type = "passive"
+
+
+def handler(fit, ship, context):
+ fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Energy Pulse Weapons"),
+ "capacitorNeed", ship.getModifiedItemAttr("shipBonusRole2"))
diff --git a/eos/effects/shipcommandbonuseffectivemultiplierorecapital2.py b/eos/effects/shipcommandbonuseffectivemultiplierorecapital2.py
deleted file mode 100644
index 76673f21f..000000000
--- a/eos/effects/shipcommandbonuseffectivemultiplierorecapital2.py
+++ /dev/null
@@ -1,8 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, ship, context):
- if fit.extraAttributes["siege"]:
- fit.ship.increaseItemAttr("commandBonusEffective", ship.getModifiedItemAttr("shipBonusORECapital2"),
- skill="Capital Industrial Ships")
diff --git a/eos/effects/shipmaxlockedtargetsbonusaddonline.py b/eos/effects/shipmaxlockedtargetsbonusaddonline.py
index 5e33906ff..f5ab7cb30 100644
--- a/eos/effects/shipmaxlockedtargetsbonusaddonline.py
+++ b/eos/effects/shipmaxlockedtargetsbonusaddonline.py
@@ -2,6 +2,7 @@
#
# Used by:
# Modules from group: Signal Amplifier (7 of 7)
+# Structure Modules from group: Structure Signal Amplifier (2 of 2)
type = "passive"
diff --git a/eos/effects/shipmaxtargetrangebonusonline.py b/eos/effects/shipmaxtargetrangebonusonline.py
index 520230668..fb6a1520a 100644
--- a/eos/effects/shipmaxtargetrangebonusonline.py
+++ b/eos/effects/shipmaxtargetrangebonusonline.py
@@ -2,6 +2,7 @@
#
# Used by:
# Modules from group: Signal Amplifier (7 of 7)
+# Structure Modules from group: Structure Signal Amplifier (2 of 2)
type = "passive"
diff --git a/eos/effects/shipmodescanrespostdiv.py b/eos/effects/shipmodescanrespostdiv.py
deleted file mode 100644
index 2ad04ec22..000000000
--- a/eos/effects/shipmodescanrespostdiv.py
+++ /dev/null
@@ -1,11 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.ship.multiplyItemAttr(
- "scanResolution",
- 1 / module.getModifiedItemAttr("modeScanResPostDiv"),
- stackingPenalties=True,
- penaltyGroup="postDiv"
- )
diff --git a/eos/effects/shippcbsdmgbonuspcbs2.py b/eos/effects/shippcbsdmgbonuspcbs2.py
new file mode 100644
index 000000000..3f35b237c
--- /dev/null
+++ b/eos/effects/shippcbsdmgbonuspcbs2.py
@@ -0,0 +1,10 @@
+# shipPCBSDmgBonusPCBS2
+#
+# Used by:
+# Ship: Leshak
+type = "passive"
+
+
+def handler(fit, ship, context):
+ fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Precursor Weapon"),
+ "damageMultiplier", ship.getModifiedItemAttr("shipBonusPBS2"), skill="Precursor Battleship")
diff --git a/eos/effects/shippcbsspeedbonuspcbs1.py b/eos/effects/shippcbsspeedbonuspcbs1.py
new file mode 100644
index 000000000..9a35e373c
--- /dev/null
+++ b/eos/effects/shippcbsspeedbonuspcbs1.py
@@ -0,0 +1,10 @@
+# shipPCBSSPeedBonusPCBS1
+#
+# Used by:
+# Ship: Leshak
+type = "passive"
+
+
+def handler(fit, ship, context):
+ fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Precursor Weapon"),
+ "speed", ship.getModifiedItemAttr("shipBonusPBS1"), skill="Precursor Battleship")
diff --git a/eos/effects/shipscanresolutionbonusonline.py b/eos/effects/shipscanresolutionbonusonline.py
index 041b72b75..989f097a8 100644
--- a/eos/effects/shipscanresolutionbonusonline.py
+++ b/eos/effects/shipscanresolutionbonusonline.py
@@ -2,6 +2,7 @@
#
# Used by:
# Modules from group: Signal Amplifier (7 of 7)
+# Structure Modules from group: Structure Signal Amplifier (2 of 2)
type = "passive"
diff --git a/eos/effects/siegewarfareshieldcapacitybonusreplacer.py b/eos/effects/siegewarfareshieldcapacitybonusreplacer.py
deleted file mode 100644
index 4ec89d183..000000000
--- a/eos/effects/siegewarfareshieldcapacitybonusreplacer.py
+++ /dev/null
@@ -1,8 +0,0 @@
-# Not used by any item
-type = "gang"
-gangBoost = "shieldCapacity"
-gangBonus = "shieldCapacityBonus"
-
-
-def handler(fit, container, context):
- fit.ship.boostItemAttr(gangBoost, container.getModifiedItemAttr(gangBonus))
diff --git a/eos/effects/signatureradiuspreassignment.py b/eos/effects/signatureradiuspreassignment.py
deleted file mode 100644
index cb00419db..000000000
--- a/eos/effects/signatureradiuspreassignment.py
+++ /dev/null
@@ -1,7 +0,0 @@
-# Not used by any item
-type = "passive"
-runTime = "early"
-
-
-def handler(fit, module, context):
- fit.ship.preAssignItemAttr("signatureRadius", module.getModifiedItemAttr("signatureRadius"))
diff --git a/eos/effects/skirmishwarfareagilitybonusreplacer.py b/eos/effects/skirmishwarfareagilitybonusreplacer.py
deleted file mode 100644
index 75aff212a..000000000
--- a/eos/effects/skirmishwarfareagilitybonusreplacer.py
+++ /dev/null
@@ -1,8 +0,0 @@
-# Not used by any item
-type = "gang"
-gangBoost = "agility"
-gangBonus = "agilityBonus"
-
-
-def handler(fit, container, context):
- fit.ship.boostItemAttr(gangBoost, container.getModifiedItemAttr(gangBonus))
diff --git a/eos/effects/smalldisintegratorskilldmgbonus.py b/eos/effects/smalldisintegratorskilldmgbonus.py
new file mode 100644
index 000000000..8a3b7babe
--- /dev/null
+++ b/eos/effects/smalldisintegratorskilldmgbonus.py
@@ -0,0 +1,11 @@
+# smallDisintegratorSkillDmgBonus
+#
+# Used by:
+# Skill: Small Disintegrator Specialization
+type = "passive"
+
+
+def handler(fit, container, context):
+ level = container.level if "skill" in context else 1
+ fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Disintegrator Specialization"),
+ "damageMultiplier", container.getModifiedItemAttr("damageMultiplierBonus") * level)
diff --git a/eos/effects/smallprecursorturretdmgbonusrequiredskill.py b/eos/effects/smallprecursorturretdmgbonusrequiredskill.py
new file mode 100644
index 000000000..1d3fbe176
--- /dev/null
+++ b/eos/effects/smallprecursorturretdmgbonusrequiredskill.py
@@ -0,0 +1,11 @@
+# smallPrecursorTurretDmgBonusRequiredSkill
+#
+# Used by:
+# Skill: Small Precursor Weapon
+type = "passive"
+
+
+def handler(fit, container, context):
+ level = container.level if "skill" in context else 1
+ fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Precursor Weapon"),
+ "damageMultiplier", container.getModifiedItemAttr("damageMultiplierBonus") * level)
diff --git a/eos/effects/structuralanalysiseffect.py b/eos/effects/structuralanalysiseffect.py
index 4bd171488..b94832ca0 100644
--- a/eos/effects/structuralanalysiseffect.py
+++ b/eos/effects/structuralanalysiseffect.py
@@ -1,7 +1,6 @@
# structuralAnalysisEffect
#
# Used by:
-# Implants named like: Agency 'Hardshell' TB Dose (3 of 3)
# Implants named like: Inherent Implants 'Noble' Repair Proficiency RP (6 of 6)
# Modules named like: Auxiliary Nano Pump (8 of 8)
# Implant: Imperial Navy Modified 'Noble' Implant
diff --git a/eos/effects/structureaoerofrolebonus.py b/eos/effects/structureaoerofrolebonus.py
index 78b3205ab..776f9a2e9 100644
--- a/eos/effects/structureaoerofrolebonus.py
+++ b/eos/effects/structureaoerofrolebonus.py
@@ -1,4 +1,7 @@
-# Not used by any item
+# structureAoERoFRoleBonus
+#
+# Used by:
+# Items from category: Structure (11 of 14)
type = "passive"
diff --git a/eos/effects/structurearmorhpmultiply.py b/eos/effects/structurearmorhpmultiply.py
index 1e34232ed..7095c29d5 100644
--- a/eos/effects/structurearmorhpmultiply.py
+++ b/eos/effects/structurearmorhpmultiply.py
@@ -1,4 +1,7 @@
-# Not used by any item
+# structureArmorHPMultiply
+#
+# Used by:
+# Structure Modules from group: Structure Armor Reinforcer (2 of 2)
type = "passive"
runTime = "early"
diff --git a/eos/effects/structureballisticcontrolsystem.py b/eos/effects/structureballisticcontrolsystem.py
index 8a167b6be..bce3a7a74 100644
--- a/eos/effects/structureballisticcontrolsystem.py
+++ b/eos/effects/structureballisticcontrolsystem.py
@@ -1,4 +1,7 @@
-# Not used by any item
+# structureBallisticControlSystem
+#
+# Used by:
+# Variations of structure module: Standup Ballistic Control System I (2 of 2)
type = "passive"
diff --git a/eos/effects/structurecapacitorcapacitybonus.py b/eos/effects/structurecapacitorcapacitybonus.py
index df4384f5b..b0477fe60 100644
--- a/eos/effects/structurecapacitorcapacitybonus.py
+++ b/eos/effects/structurecapacitorcapacitybonus.py
@@ -1,4 +1,7 @@
-# Not used by any item
+# structureCapacitorCapacityBonus
+#
+# Used by:
+# Structure Modules from group: Structure Capacitor Battery (2 of 2)
type = "passive"
diff --git a/eos/effects/structureenergyneutralizerfalloff.py b/eos/effects/structureenergyneutralizerfalloff.py
index 02ee9b4f8..78ca57a33 100644
--- a/eos/effects/structureenergyneutralizerfalloff.py
+++ b/eos/effects/structureenergyneutralizerfalloff.py
@@ -1,4 +1,7 @@
-# Not used by any item
+# structureEnergyNeutralizerFalloff
+#
+# Used by:
+# Structure Modules from group: Structure Energy Neutralizer (5 of 5)
from eos.saveddata.module import State
type = "active", "projected"
diff --git a/eos/effects/structurefullpowerstatehitpointmodifier.py b/eos/effects/structurefullpowerstatehitpointmodifier.py
index 54f9ce7b6..fd60335f7 100644
--- a/eos/effects/structurefullpowerstatehitpointmodifier.py
+++ b/eos/effects/structurefullpowerstatehitpointmodifier.py
@@ -1,4 +1,7 @@
-# Not used by any item
+# structureFullPowerStateHitpointModifier
+#
+# Used by:
+# Items from category: Structure (14 of 14)
type = "passive"
diff --git a/eos/effects/structurehiddenarmorhpmultiplier.py b/eos/effects/structurehiddenarmorhpmultiplier.py
index 09e2d31c7..045253880 100644
--- a/eos/effects/structurehiddenarmorhpmultiplier.py
+++ b/eos/effects/structurehiddenarmorhpmultiplier.py
@@ -1,4 +1,7 @@
-# Not used by any item
+# structureHiddenArmorHPMultiplier
+#
+# Used by:
+# Items from category: Structure (14 of 14)
type = "passive"
diff --git a/eos/effects/structurehiddenmissiledamagemultiplier.py b/eos/effects/structurehiddenmissiledamagemultiplier.py
index bd8d79366..bf77075ad 100644
--- a/eos/effects/structurehiddenmissiledamagemultiplier.py
+++ b/eos/effects/structurehiddenmissiledamagemultiplier.py
@@ -1,4 +1,7 @@
-# Not used by any item
+# structureHiddenMissileDamageMultiplier
+#
+# Used by:
+# Items from category: Structure (14 of 14)
type = "passive"
diff --git a/eos/effects/structuremissileguidanceenhancer.py b/eos/effects/structuremissileguidanceenhancer.py
index 9c0ce2515..59686c5e1 100644
--- a/eos/effects/structuremissileguidanceenhancer.py
+++ b/eos/effects/structuremissileguidanceenhancer.py
@@ -1,4 +1,7 @@
-# Not used by any item
+# structureMissileGuidanceEnhancer
+#
+# Used by:
+# Variations of structure module: Standup Missile Guidance Enhancer I (2 of 2)
type = "passive"
diff --git a/eos/effects/structuremodifypowerrechargerate.py b/eos/effects/structuremodifypowerrechargerate.py
index ed8e9c074..f5977b6fe 100644
--- a/eos/effects/structuremodifypowerrechargerate.py
+++ b/eos/effects/structuremodifypowerrechargerate.py
@@ -1,4 +1,7 @@
-# Not used by any item
+# structureModifyPowerRechargeRate
+#
+# Used by:
+# Structure Modules from group: Structure Capacitor Power Relay (2 of 2)
type = "passive"
diff --git a/eos/effects/structuremoduleeffectecm.py b/eos/effects/structuremoduleeffectecm.py
index 9a39b452a..a2725fb5e 100644
--- a/eos/effects/structuremoduleeffectecm.py
+++ b/eos/effects/structuremoduleeffectecm.py
@@ -1,4 +1,7 @@
-# Not used by any item
+# structureModuleEffectECM
+#
+# Used by:
+# Structure Modules from group: Structure ECM Battery (3 of 3)
type = "projected", "active"
diff --git a/eos/effects/structuremoduleeffectremotesensordampener.py b/eos/effects/structuremoduleeffectremotesensordampener.py
index 08aa61e57..23cd49378 100644
--- a/eos/effects/structuremoduleeffectremotesensordampener.py
+++ b/eos/effects/structuremoduleeffectremotesensordampener.py
@@ -1,4 +1,7 @@
-# Not used by any item
+# structureModuleEffectRemoteSensorDampener
+#
+# Used by:
+# Variations of structure module: Standup Remote Sensor Dampener I (2 of 2)
type = "projected", "active"
diff --git a/eos/effects/structuremoduleeffectstasiswebifier.py b/eos/effects/structuremoduleeffectstasiswebifier.py
index aa0b0d553..30040db35 100644
--- a/eos/effects/structuremoduleeffectstasiswebifier.py
+++ b/eos/effects/structuremoduleeffectstasiswebifier.py
@@ -1,4 +1,7 @@
-# Not used by any item
+# structureModuleEffectStasisWebifier
+#
+# Used by:
+# Structure Modules from group: Structure Stasis Webifier (2 of 2)
type = "active", "projected"
diff --git a/eos/effects/structuremoduleeffecttargetpainter.py b/eos/effects/structuremoduleeffecttargetpainter.py
index 7c15140e3..d89abe4b3 100644
--- a/eos/effects/structuremoduleeffecttargetpainter.py
+++ b/eos/effects/structuremoduleeffecttargetpainter.py
@@ -1,4 +1,7 @@
-# Not used by any item
+# structureModuleEffectTargetPainter
+#
+# Used by:
+# Variations of structure module: Standup Target Painter I (2 of 2)
type = "projected", "active"
diff --git a/eos/effects/structuremoduleeffectweapondisruption.py b/eos/effects/structuremoduleeffectweapondisruption.py
index 3b6365e37..ff3f705ab 100644
--- a/eos/effects/structuremoduleeffectweapondisruption.py
+++ b/eos/effects/structuremoduleeffectweapondisruption.py
@@ -1,4 +1,7 @@
-# Not used by any item
+# structureModuleEffectWeaponDisruption
+#
+# Used by:
+# Variations of structure module: Standup Weapon Disruptor I (2 of 2)
type = "active", "projected"
diff --git a/eos/effects/structurerigaoevelocitybonussingletargetmissiles.py b/eos/effects/structurerigaoevelocitybonussingletargetmissiles.py
index 2bf5f4af0..11045a7c2 100644
--- a/eos/effects/structurerigaoevelocitybonussingletargetmissiles.py
+++ b/eos/effects/structurerigaoevelocitybonussingletargetmissiles.py
@@ -1,4 +1,7 @@
-# Not used by any item
+# structureRigAoeVelocityBonusSingleTargetMissiles
+#
+# Used by:
+# Structure Modules named like: Standup Set Missile (6 of 8)
type = "passive"
diff --git a/eos/effects/structurerigdoomsdaydamageloss.py b/eos/effects/structurerigdoomsdaydamageloss.py
index e2c6c613b..f81301110 100644
--- a/eos/effects/structurerigdoomsdaydamageloss.py
+++ b/eos/effects/structurerigdoomsdaydamageloss.py
@@ -1,4 +1,7 @@
-# Not used by any item
+# structureRigDoomsdayDamageLoss
+#
+# Used by:
+# Structure Modules from group: Structure Combat Rig XL - Doomsday and Targeting (2 of 2)
type = "passive"
diff --git a/eos/effects/structurerigdoomsdaytargetamountbonus.py b/eos/effects/structurerigdoomsdaytargetamountbonus.py
index a68ca1054..ece92271a 100644
--- a/eos/effects/structurerigdoomsdaytargetamountbonus.py
+++ b/eos/effects/structurerigdoomsdaytargetamountbonus.py
@@ -1,4 +1,7 @@
-# Not used by any item
+# structureRigDoomsdayTargetAmountBonus
+#
+# Used by:
+# Structure Modules from group: Structure Combat Rig XL - Doomsday and Targeting (2 of 2)
type = "passive"
diff --git a/eos/effects/structurerigewcapacitorneed.py b/eos/effects/structurerigewcapacitorneed.py
index dfeae5753..caaacb6ea 100644
--- a/eos/effects/structurerigewcapacitorneed.py
+++ b/eos/effects/structurerigewcapacitorneed.py
@@ -1,4 +1,8 @@
-# Not used by any item
+# structureRigEWCapacitorNeed
+#
+# Used by:
+# Structure Modules from group: Structure Combat Rig M - EW Cap Reduction (2 of 2)
+# Structure Modules named like: Standup Set EW (4 of 4)
type = "passive"
diff --git a/eos/effects/structurerigewmaxrangefalloff.py b/eos/effects/structurerigewmaxrangefalloff.py
index fa6ed13c9..679e4c29e 100644
--- a/eos/effects/structurerigewmaxrangefalloff.py
+++ b/eos/effects/structurerigewmaxrangefalloff.py
@@ -1,4 +1,8 @@
-# Not used by any item
+# structureRigEWMaxRangeFalloff
+#
+# Used by:
+# Structure Modules from group: Structure Combat Rig M - EW projection (2 of 2)
+# Structure Modules named like: Standup Set EW (4 of 4)
type = "passive"
diff --git a/eos/effects/structurerigexplosionradiusbonusaoemissiles.py b/eos/effects/structurerigexplosionradiusbonusaoemissiles.py
index 34e840638..a6fedf168 100644
--- a/eos/effects/structurerigexplosionradiusbonusaoemissiles.py
+++ b/eos/effects/structurerigexplosionradiusbonusaoemissiles.py
@@ -1,4 +1,8 @@
-# Not used by any item
+# structureRigExplosionRadiusBonusAoEMissiles
+#
+# Used by:
+# Structure Modules from group: Structure Combat Rig L - AoE Launcher Application and Projection (2 of 2)
+# Structure Modules from group: Structure Combat Rig XL - Missile and AoE Missile (2 of 2)
type = "passive"
diff --git a/eos/effects/structurerigmaxtargetrange.py b/eos/effects/structurerigmaxtargetrange.py
index 95fee8a55..52ac17bc8 100644
--- a/eos/effects/structurerigmaxtargetrange.py
+++ b/eos/effects/structurerigmaxtargetrange.py
@@ -1,4 +1,9 @@
-# Not used by any item
+# structureRigMaxTargetRange
+#
+# Used by:
+# Structure Modules from group: Structure Combat Rig L - Max Targets and Sensor Boosting (2 of 2)
+# Structure Modules from group: Structure Combat Rig M - Boosted Sensors (2 of 2)
+# Structure Modules from group: Structure Combat Rig XL - Doomsday and Targeting (2 of 2)
type = "passive"
diff --git a/eos/effects/structurerigmaxtargets.py b/eos/effects/structurerigmaxtargets.py
index 47e2ce5d2..452af580d 100644
--- a/eos/effects/structurerigmaxtargets.py
+++ b/eos/effects/structurerigmaxtargets.py
@@ -1,4 +1,8 @@
-# Not used by any item
+# structureRigMaxTargets
+#
+# Used by:
+# Structure Modules from group: Structure Combat Rig XL - Doomsday and Targeting (2 of 2)
+# Structure Modules named like: Standup Set Target (4 of 4)
type = "passive"
diff --git a/eos/effects/structurerigneutralizercapacitorneed.py b/eos/effects/structurerigneutralizercapacitorneed.py
index c570161fa..89a2ffec0 100644
--- a/eos/effects/structurerigneutralizercapacitorneed.py
+++ b/eos/effects/structurerigneutralizercapacitorneed.py
@@ -1,4 +1,8 @@
-# Not used by any item
+# structureRigNeutralizerCapacitorNeed
+#
+# Used by:
+# Structure Modules from group: Structure Combat Rig XL - Energy Neutralizer and EW (2 of 2)
+# Structure Modules named like: Standup Set Energy Neutralizer (4 of 6)
type = "passive"
diff --git a/eos/effects/structurerigneutralizermaxrangefalloffeffectiveness.py b/eos/effects/structurerigneutralizermaxrangefalloffeffectiveness.py
index d123e0278..55a835155 100644
--- a/eos/effects/structurerigneutralizermaxrangefalloffeffectiveness.py
+++ b/eos/effects/structurerigneutralizermaxrangefalloffeffectiveness.py
@@ -1,4 +1,8 @@
-# Not used by any item
+# structureRigNeutralizerMaxRangeFalloffEffectiveness
+#
+# Used by:
+# Structure Modules from group: Structure Combat Rig XL - Energy Neutralizer and EW (2 of 2)
+# Structure Modules named like: Standup Set Energy Neutralizer (4 of 6)
type = "passive"
diff --git a/eos/effects/structurerigpdbcapacitorneed.py b/eos/effects/structurerigpdbcapacitorneed.py
index a32e63ecc..eb1ee6167 100644
--- a/eos/effects/structurerigpdbcapacitorneed.py
+++ b/eos/effects/structurerigpdbcapacitorneed.py
@@ -1,4 +1,8 @@
-# Not used by any item
+# structureRigPDBCapacitorNeed
+#
+# Used by:
+# Structure Modules from group: Structure Combat Rig L - Point Defense Battery Application and Projection (2 of 2)
+# Structure Modules from group: Structure Combat Rig XL - Doomsday and Targeting (2 of 2)
type = "passive"
diff --git a/eos/effects/structurerigpdbmaxrange.py b/eos/effects/structurerigpdbmaxrange.py
index 64994bf26..5373add73 100644
--- a/eos/effects/structurerigpdbmaxrange.py
+++ b/eos/effects/structurerigpdbmaxrange.py
@@ -1,4 +1,8 @@
-# Not used by any item
+# structureRigPDBmaxRange
+#
+# Used by:
+# Structure Modules from group: Structure Combat Rig L - Point Defense Battery Application and Projection (2 of 2)
+# Structure Modules from group: Structure Combat Rig XL - Doomsday and Targeting (2 of 2)
type = "passive"
diff --git a/eos/effects/structurerigsensorresolution.py b/eos/effects/structurerigsensorresolution.py
index 8d68050e6..26a8ebd58 100644
--- a/eos/effects/structurerigsensorresolution.py
+++ b/eos/effects/structurerigsensorresolution.py
@@ -1,4 +1,9 @@
-# Not used by any item
+# structureRigSensorResolution
+#
+# Used by:
+# Structure Modules from group: Structure Combat Rig L - Max Targets and Sensor Boosting (2 of 2)
+# Structure Modules from group: Structure Combat Rig M - Boosted Sensors (2 of 2)
+# Structure Modules from group: Structure Combat Rig XL - Doomsday and Targeting (2 of 2)
type = "passive"
diff --git a/eos/effects/structurerigvelocitybonusaoemissiles.py b/eos/effects/structurerigvelocitybonusaoemissiles.py
index 636134b1f..38985d031 100644
--- a/eos/effects/structurerigvelocitybonusaoemissiles.py
+++ b/eos/effects/structurerigvelocitybonusaoemissiles.py
@@ -1,4 +1,8 @@
-# Not used by any item
+# structureRigVelocityBonusAoeMissiles
+#
+# Used by:
+# Structure Modules from group: Structure Combat Rig L - AoE Launcher Application and Projection (2 of 2)
+# Structure Modules from group: Structure Combat Rig XL - Missile and AoE Missile (2 of 2)
type = "passive"
diff --git a/eos/effects/structurerigvelocitybonussingletargetmissiles.py b/eos/effects/structurerigvelocitybonussingletargetmissiles.py
index 929cc7a3e..51103c3a8 100644
--- a/eos/effects/structurerigvelocitybonussingletargetmissiles.py
+++ b/eos/effects/structurerigvelocitybonussingletargetmissiles.py
@@ -1,4 +1,7 @@
-# Not used by any item
+# structureRigVelocityBonusSingleTargetMissiles
+#
+# Used by:
+# Structure Modules named like: Standup Set Missile (6 of 8)
type = "passive"
diff --git a/eos/effects/structurewarpscrambleblockmwdwithnpceffect.py b/eos/effects/structurewarpscrambleblockmwdwithnpceffect.py
index aee7b22f9..e6ab9536e 100644
--- a/eos/effects/structurewarpscrambleblockmwdwithnpceffect.py
+++ b/eos/effects/structurewarpscrambleblockmwdwithnpceffect.py
@@ -1,4 +1,7 @@
-# Not used by any item
+# structureWarpScrambleBlockMWDWithNPCEffect
+#
+# Used by:
+# Structure Modules from group: Structure Warp Scrambler (2 of 2)
from eos.saveddata.module import State
# Not used by any item
diff --git a/eos/effects/subsystembonusamarrdefensive2armorrepheat.py b/eos/effects/subsystembonusamarrdefensive2armorrepheat.py
deleted file mode 100644
index b8d62df63..000000000
--- a/eos/effects/subsystembonusamarrdefensive2armorrepheat.py
+++ /dev/null
@@ -1,12 +0,0 @@
-# subsystemBonusAmarrDefensive2ArmorRepHeat
-#
-# Used by:
-# Subsystem: Legion Defensive - Nanobot Injector
-type = "passive"
-
-
-def handler(fit, src, context):
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Systems"), "overloadArmorDamageAmount",
- src.getModifiedItemAttr("subsystemBonusAmarrDefensive2"), skill="Amarr Defensive Systems")
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Systems"), "overloadSelfDurationBonus",
- src.getModifiedItemAttr("subsystemBonusAmarrDefensive2"), skill="Amarr Defensive Systems")
diff --git a/eos/effects/subsystembonusamarrdefensive2remotearmorrepairamount.py b/eos/effects/subsystembonusamarrdefensive2remotearmorrepairamount.py
deleted file mode 100644
index 1c092a9ff..000000000
--- a/eos/effects/subsystembonusamarrdefensive2remotearmorrepairamount.py
+++ /dev/null
@@ -1,9 +0,0 @@
-# Not used by any item
-type = "passive"
-runTime = "early"
-
-
-def handler(fit, module, context):
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems"),
- "armorDamageAmount", module.getModifiedItemAttr("subsystemBonusAmarrDefensive2"),
- skill="Amarr Defensive Systems")
diff --git a/eos/effects/subsystembonusamarrdefensivearmoredwarfare.py b/eos/effects/subsystembonusamarrdefensivearmoredwarfare.py
deleted file mode 100644
index ca2480638..000000000
--- a/eos/effects/subsystembonusamarrdefensivearmoredwarfare.py
+++ /dev/null
@@ -1,20 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, src, context):
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Armored Command"), "warfareBuff3Value",
- src.getModifiedItemAttr("subsystemBonusAmarrDefensive"),
- skill="Amarr Defensive Systems")
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Armored Command"), "warfareBuff2Value",
- src.getModifiedItemAttr("subsystemBonusAmarrDefensive"),
- skill="Amarr Defensive Systems")
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Armored Command"), "warfareBuff4Value",
- src.getModifiedItemAttr("subsystemBonusAmarrDefensive"),
- skill="Amarr Defensive Systems")
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Armored Command"), "buffDuration",
- src.getModifiedItemAttr("subsystemBonusAmarrDefensive"),
- skill="Amarr Defensive Systems")
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Armored Command"), "warfareBuff1Value",
- src.getModifiedItemAttr("subsystemBonusAmarrDefensive"),
- skill="Amarr Defensive Systems")
diff --git a/eos/effects/subsystembonusamarrdefensivearmorresistance.py b/eos/effects/subsystembonusamarrdefensivearmorresistance.py
deleted file mode 100644
index ea42d6a15..000000000
--- a/eos/effects/subsystembonusamarrdefensivearmorresistance.py
+++ /dev/null
@@ -1,9 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- for type in ("Em", "Explosive", "Kinetic", "Thermal"):
- fit.ship.boostItemAttr("armor{0}DamageResonance".format(type),
- module.getModifiedItemAttr("subsystemBonusAmarrDefensive"),
- skill="Amarr Defensive Systems")
diff --git a/eos/effects/subsystembonusamarrdefensiveinformationwarfare.py b/eos/effects/subsystembonusamarrdefensiveinformationwarfare.py
deleted file mode 100644
index 5f8a91832..000000000
--- a/eos/effects/subsystembonusamarrdefensiveinformationwarfare.py
+++ /dev/null
@@ -1,20 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, src, context):
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Command"), "warfareBuff1Value",
- src.getModifiedItemAttr("subsystemBonusAmarrDefensive"),
- skill="Amarr Defensive Systems")
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Command"), "warfareBuff4Value",
- src.getModifiedItemAttr("subsystemBonusAmarrDefensive"),
- skill="Amarr Defensive Systems")
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Command"), "warfareBuff3Value",
- src.getModifiedItemAttr("subsystemBonusAmarrDefensive"),
- skill="Amarr Defensive Systems")
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Command"), "warfareBuff2Value",
- src.getModifiedItemAttr("subsystemBonusAmarrDefensive"),
- skill="Amarr Defensive Systems")
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Command"), "buffDuration",
- src.getModifiedItemAttr("subsystemBonusAmarrDefensive"),
- skill="Amarr Defensive Systems")
diff --git a/eos/effects/subsystembonusamarrdefensiveinformationwarfarehidden.py b/eos/effects/subsystembonusamarrdefensiveinformationwarfarehidden.py
deleted file mode 100644
index 7dd70fefa..000000000
--- a/eos/effects/subsystembonusamarrdefensiveinformationwarfarehidden.py
+++ /dev/null
@@ -1,7 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Command Specialist"),
- "commandBonusHidden", module.getModifiedItemAttr("subsystemBonusAmarrDefensive"), skill="Amarr Defensive Systems")
diff --git a/eos/effects/subsystembonusamarrdefensivescanprobestrength2.py b/eos/effects/subsystembonusamarrdefensivescanprobestrength2.py
deleted file mode 100644
index 7f4ced1f8..000000000
--- a/eos/effects/subsystembonusamarrdefensivescanprobestrength2.py
+++ /dev/null
@@ -1,11 +0,0 @@
-# subSystemBonusAmarrDefensiveScanProbeStrength2
-#
-# Used by:
-# Subsystem: Legion Defensive - Covert Reconfiguration
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Astrometrics"),
- "baseSensorStrength", module.getModifiedItemAttr("subsystemBonusAmarrDefensive2"),
- skill="Amarr Defensive Systems")
diff --git a/eos/effects/subsystembonusamarrdefensiveskirmishwarfare.py b/eos/effects/subsystembonusamarrdefensiveskirmishwarfare.py
deleted file mode 100644
index 34c780376..000000000
--- a/eos/effects/subsystembonusamarrdefensiveskirmishwarfare.py
+++ /dev/null
@@ -1,20 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, src, context):
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), "warfareBuff4Value",
- src.getModifiedItemAttr("subsystemBonusAmarrDefensive"),
- skill="Amarr Defensive Systems")
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), "warfareBuff1Value",
- src.getModifiedItemAttr("subsystemBonusAmarrDefensive"),
- skill="Amarr Defensive Systems")
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), "buffDuration",
- src.getModifiedItemAttr("subsystemBonusAmarrDefensive"),
- skill="Amarr Defensive Systems")
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), "warfareBuff2Value",
- src.getModifiedItemAttr("subsystemBonusAmarrDefensive"),
- skill="Amarr Defensive Systems")
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), "warfareBuff3Value",
- src.getModifiedItemAttr("subsystemBonusAmarrDefensive"),
- skill="Amarr Defensive Systems")
diff --git a/eos/effects/subsystembonusamarrdefensivetractorbeambonus3.py b/eos/effects/subsystembonusamarrdefensivetractorbeambonus3.py
deleted file mode 100644
index f2df1979b..000000000
--- a/eos/effects/subsystembonusamarrdefensivetractorbeambonus3.py
+++ /dev/null
@@ -1,15 +0,0 @@
-# subSystemBonusAmarrDefensiveTractorBeamBonus3
-#
-# Used by:
-# Subsystem: Legion Defensive - Covert Reconfiguration
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Tractor Beam",
- "maxRange", module.getModifiedItemAttr("subsystemBonusAmarrDefensive3"),
- skill="Amarr Defensive Systems")
-
- fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Tractor Beam",
- "maxTractorVelocity", module.getModifiedItemAttr("subsystemBonusAmarrDefensive3"),
- skill="Amarr Defensive Systems")
diff --git a/eos/effects/subsystembonusamarrelectronic2maxtargetingrange.py b/eos/effects/subsystembonusamarrelectronic2maxtargetingrange.py
deleted file mode 100644
index 5ae759435..000000000
--- a/eos/effects/subsystembonusamarrelectronic2maxtargetingrange.py
+++ /dev/null
@@ -1,7 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.ship.boostItemAttr("maxTargetRange", module.getModifiedItemAttr("subsystemBonusAmarrElectronic2"),
- skill="Amarr Electronic Systems")
diff --git a/eos/effects/subsystembonusamarrelectronic2scanresolution.py b/eos/effects/subsystembonusamarrelectronic2scanresolution.py
deleted file mode 100644
index f62230dac..000000000
--- a/eos/effects/subsystembonusamarrelectronic2scanresolution.py
+++ /dev/null
@@ -1,7 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.ship.boostItemAttr("scanResolution", module.getModifiedItemAttr("subsystemBonusAmarrElectronic2"),
- skill="Amarr Electronic Systems")
diff --git a/eos/effects/subsystembonusamarrelectronic2tractorbeamrange.py b/eos/effects/subsystembonusamarrelectronic2tractorbeamrange.py
deleted file mode 100644
index 2e49bfe9d..000000000
--- a/eos/effects/subsystembonusamarrelectronic2tractorbeamrange.py
+++ /dev/null
@@ -1,8 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Tractor Beam",
- "maxRange", module.getModifiedItemAttr("subsystemBonusAmarrElectronic2"),
- skill="Amarr Electronic Systems")
diff --git a/eos/effects/subsystembonusamarrelectronic2tractorbeamvelocity.py b/eos/effects/subsystembonusamarrelectronic2tractorbeamvelocity.py
deleted file mode 100644
index 0af403adc..000000000
--- a/eos/effects/subsystembonusamarrelectronic2tractorbeamvelocity.py
+++ /dev/null
@@ -1,8 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Tractor Beam",
- "maxTractorVelocity", module.getModifiedItemAttr("subsystemBonusAmarrElectronic2"),
- skill="Amarr Electronic Systems")
diff --git a/eos/effects/subsystembonusamarrelectronicenergydestabilizeramount.py b/eos/effects/subsystembonusamarrelectronicenergydestabilizeramount.py
deleted file mode 100644
index e40b2fef6..000000000
--- a/eos/effects/subsystembonusamarrelectronicenergydestabilizeramount.py
+++ /dev/null
@@ -1,9 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Neutralizer",
- "energyNeutralizerAmount",
- module.getModifiedItemAttr("subsystemBonusAmarrElectronic"),
- skill="Amarr Electronic Systems")
diff --git a/eos/effects/subsystembonusamarrelectronicenergyvampireamount.py b/eos/effects/subsystembonusamarrelectronicenergyvampireamount.py
deleted file mode 100644
index e6723b196..000000000
--- a/eos/effects/subsystembonusamarrelectronicenergyvampireamount.py
+++ /dev/null
@@ -1,8 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Nosferatu",
- "powerTransferAmount", module.getModifiedItemAttr("subsystemBonusAmarrElectronic"),
- skill="Amarr Electronic Systems")
diff --git a/eos/effects/subsystembonusamarrelectronicscanprobestrength.py b/eos/effects/subsystembonusamarrelectronicscanprobestrength.py
deleted file mode 100644
index 8b8e5ee61..000000000
--- a/eos/effects/subsystembonusamarrelectronicscanprobestrength.py
+++ /dev/null
@@ -1,8 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.modules.filteredChargeBoost(lambda mod: mod.charge.group.name == "Scanner Probe",
- "baseSensorStrength", module.getModifiedItemAttr("subsystemBonusAmarrElectronic"),
- skill="Amarr Electronic Systems")
diff --git a/eos/effects/subsystembonusamarrelectronicscanstrengthradar.py b/eos/effects/subsystembonusamarrelectronicscanstrengthradar.py
deleted file mode 100644
index e0b13d37a..000000000
--- a/eos/effects/subsystembonusamarrelectronicscanstrengthradar.py
+++ /dev/null
@@ -1,7 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.ship.boostItemAttr("scanRadarStrength", module.getModifiedItemAttr("subsystemBonusAmarrElectronic"),
- skill="Amarr Electronic Systems")
diff --git a/eos/effects/subsystembonusamarrengineeringcapacitorcapacity.py b/eos/effects/subsystembonusamarrengineeringcapacitorcapacity.py
deleted file mode 100644
index 22e8f4d41..000000000
--- a/eos/effects/subsystembonusamarrengineeringcapacitorcapacity.py
+++ /dev/null
@@ -1,7 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.ship.boostItemAttr("capacitorCapacity", module.getModifiedItemAttr("subsystemBonusAmarrCore"),
- skill="Amarr Core Systems")
diff --git a/eos/effects/subsystembonusamarrengineeringcapacitorrecharge.py b/eos/effects/subsystembonusamarrengineeringcapacitorrecharge.py
deleted file mode 100644
index 5471853cd..000000000
--- a/eos/effects/subsystembonusamarrengineeringcapacitorrecharge.py
+++ /dev/null
@@ -1,7 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.ship.boostItemAttr("rechargeRate", module.getModifiedItemAttr("subsystemBonusAmarrCore"),
- skill="Amarr Core Systems")
diff --git a/eos/effects/subsystembonusamarrengineeringpoweroutput.py b/eos/effects/subsystembonusamarrengineeringpoweroutput.py
deleted file mode 100644
index 6ab9a9ad3..000000000
--- a/eos/effects/subsystembonusamarrengineeringpoweroutput.py
+++ /dev/null
@@ -1,7 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.ship.boostItemAttr("powerOutput", module.getModifiedItemAttr("subsystemBonusAmarrCore"),
- skill="Amarr Core Systems")
diff --git a/eos/effects/subsystembonusamarroffensive2hamemdamage.py b/eos/effects/subsystembonusamarroffensive2hamemdamage.py
deleted file mode 100644
index efc2542a7..000000000
--- a/eos/effects/subsystembonusamarroffensive2hamemdamage.py
+++ /dev/null
@@ -1,11 +0,0 @@
-# subsystemBonusAmarrOffensive2HAMEmDamage
-#
-# Used by:
-# Subsystem: Legion Offensive - Assault Optimization
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Assault Missiles"),
- "emDamage", module.getModifiedItemAttr("subsystemBonusAmarrOffensive2"),
- skill="Amarr Offensive Systems")
diff --git a/eos/effects/subsystembonusamarroffensive2hamexplosivedamage.py b/eos/effects/subsystembonusamarroffensive2hamexplosivedamage.py
deleted file mode 100644
index 892f1d13f..000000000
--- a/eos/effects/subsystembonusamarroffensive2hamexplosivedamage.py
+++ /dev/null
@@ -1,8 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Assault Missiles"),
- "explosiveDamage", module.getModifiedItemAttr("subsystemBonusAmarrOffensive2"),
- skill="Amarr Offensive Systems")
diff --git a/eos/effects/subsystembonusamarroffensive2hamkineticdamage.py b/eos/effects/subsystembonusamarroffensive2hamkineticdamage.py
deleted file mode 100644
index c638eea08..000000000
--- a/eos/effects/subsystembonusamarroffensive2hamkineticdamage.py
+++ /dev/null
@@ -1,8 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Assault Missiles"),
- "kineticDamage", module.getModifiedItemAttr("subsystemBonusAmarrOffensive2"),
- skill="Amarr Offensive Systems")
diff --git a/eos/effects/subsystembonusamarroffensive2hamthermaldamage.py b/eos/effects/subsystembonusamarroffensive2hamthermaldamage.py
deleted file mode 100644
index e456df6ff..000000000
--- a/eos/effects/subsystembonusamarroffensive2hamthermaldamage.py
+++ /dev/null
@@ -1,8 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Assault Missiles"),
- "thermalDamage", module.getModifiedItemAttr("subsystemBonusAmarrOffensive2"),
- skill="Amarr Offensive Systems")
diff --git a/eos/effects/subsystembonusamarroffensive3dronehp.py b/eos/effects/subsystembonusamarroffensive3dronehp.py
deleted file mode 100644
index 5160060df..000000000
--- a/eos/effects/subsystembonusamarroffensive3dronehp.py
+++ /dev/null
@@ -1,12 +0,0 @@
-# subsystemBonusAmarrOffensive3DroneHP
-#
-# Used by:
-# Subsystem: Legion Offensive - Drone Synthesis Projector
-type = "passive"
-
-
-def handler(fit, module, context):
- for layer in ("shieldCapacity", "armorHP", "hp"):
- fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), layer,
- module.getModifiedItemAttr("subsystemBonusAmarrOffensive3"),
- skill="Amarr Offensive Systems")
diff --git a/eos/effects/subsystembonusamarroffensiveassaultmissilelauncherrof.py b/eos/effects/subsystembonusamarroffensiveassaultmissilelauncherrof.py
deleted file mode 100644
index fe66e0d40..000000000
--- a/eos/effects/subsystembonusamarroffensiveassaultmissilelauncherrof.py
+++ /dev/null
@@ -1,11 +0,0 @@
-# subsystemBonusAmarrOffensiveAssaultMissileLauncherROF
-#
-# Used by:
-# Subsystem: Legion Offensive - Assault Optimization
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Rapid Light",
- "speed", module.getModifiedItemAttr("subsystemBonusAmarrOffensive"),
- skill="Amarr Offensive Systems")
diff --git a/eos/effects/subsystembonusamarroffensivedronedamagemultiplier.py b/eos/effects/subsystembonusamarroffensivedronedamagemultiplier.py
deleted file mode 100644
index 40f371fd4..000000000
--- a/eos/effects/subsystembonusamarroffensivedronedamagemultiplier.py
+++ /dev/null
@@ -1,8 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"),
- "damageMultiplier", module.getModifiedItemAttr("subsystemBonusAmarrOffensive"),
- skill="Amarr Offensive Systems")
diff --git a/eos/effects/subsystembonusamarroffensiveenergyweaponcapacitorneed.py b/eos/effects/subsystembonusamarroffensiveenergyweaponcapacitorneed.py
deleted file mode 100644
index 51a9c7809..000000000
--- a/eos/effects/subsystembonusamarroffensiveenergyweaponcapacitorneed.py
+++ /dev/null
@@ -1,8 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Energy Turret"),
- "capacitorNeed", module.getModifiedItemAttr("subsystemBonusAmarrOffensive"),
- skill="Amarr Offensive Systems")
diff --git a/eos/effects/subsystembonusamarroffensiveheavyassaultmissilelauncherrof.py b/eos/effects/subsystembonusamarroffensiveheavyassaultmissilelauncherrof.py
deleted file mode 100644
index 52440263a..000000000
--- a/eos/effects/subsystembonusamarroffensiveheavyassaultmissilelauncherrof.py
+++ /dev/null
@@ -1,8 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Heavy Assault",
- "speed", module.getModifiedItemAttr("subsystemBonusAmarrOffensive"),
- skill="Amarr Offensive Systems")
diff --git a/eos/effects/subsystembonusamarroffensiveheavymissilelauncherrof.py b/eos/effects/subsystembonusamarroffensiveheavymissilelauncherrof.py
deleted file mode 100644
index c0db27ad2..000000000
--- a/eos/effects/subsystembonusamarroffensiveheavymissilelauncherrof.py
+++ /dev/null
@@ -1,8 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Heavy",
- "speed", module.getModifiedItemAttr("subsystemBonusAmarrOffensive"),
- skill="Amarr Offensive Systems")
diff --git a/eos/effects/subsystembonusamarrpropulsionagility.py b/eos/effects/subsystembonusamarrpropulsionagility.py
deleted file mode 100644
index a8d84bdba..000000000
--- a/eos/effects/subsystembonusamarrpropulsionagility.py
+++ /dev/null
@@ -1,7 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.ship.boostItemAttr("agility", module.getModifiedItemAttr("subsystemBonusAmarrPropulsion"),
- skill="Amarr Propulsion Systems")
diff --git a/eos/effects/subsystembonusamarrpropulsionmwdpenalty.py b/eos/effects/subsystembonusamarrpropulsionmwdpenalty.py
deleted file mode 100644
index cc907e436..000000000
--- a/eos/effects/subsystembonusamarrpropulsionmwdpenalty.py
+++ /dev/null
@@ -1,8 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("High Speed Maneuvering"),
- "signatureRadiusBonus", module.getModifiedItemAttr("subsystemBonusAmarrPropulsion"),
- skill="Amarr Propulsion Systems")
diff --git a/eos/effects/subsystembonuscaldaridefensive2remoteshieldtransporteramount.py b/eos/effects/subsystembonuscaldaridefensive2remoteshieldtransporteramount.py
deleted file mode 100644
index 5835257fa..000000000
--- a/eos/effects/subsystembonuscaldaridefensive2remoteshieldtransporteramount.py
+++ /dev/null
@@ -1,9 +0,0 @@
-# Not used by any item
-type = "passive"
-runTime = "early"
-
-
-def handler(fit, module, context):
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Emission Systems"),
- "shieldBonus", module.getModifiedItemAttr("subsystemBonusCaldariDefensive2"),
- skill="Caldari Defensive Systems")
diff --git a/eos/effects/subsystembonuscaldaridefensive2shieldboostheat.py b/eos/effects/subsystembonuscaldaridefensive2shieldboostheat.py
deleted file mode 100644
index bd28f05c4..000000000
--- a/eos/effects/subsystembonuscaldaridefensive2shieldboostheat.py
+++ /dev/null
@@ -1,14 +0,0 @@
-# subsystemBonusCaldariDefensive2ShieldBoostHeat
-#
-# Used by:
-# Subsystem: Tengu Defensive - Amplification Node
-type = "passive"
-
-
-def handler(fit, src, context):
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Operation"),
- "overloadSelfDurationBonus", src.getModifiedItemAttr("subsystemBonusCaldariDefensive2"),
- skill="Caldari Defensive Systems")
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Operation"),
- "overloadShieldBonus", src.getModifiedItemAttr("subsystemBonusCaldariDefensive2"),
- skill="Caldari Defensive Systems")
diff --git a/eos/effects/subsystembonuscaldaridefensive3tractorbeambonus.py b/eos/effects/subsystembonuscaldaridefensive3tractorbeambonus.py
deleted file mode 100644
index 9802868e5..000000000
--- a/eos/effects/subsystembonuscaldaridefensive3tractorbeambonus.py
+++ /dev/null
@@ -1,9 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, src, context):
- fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Tractor Beam",
- "maxRange", src.getModifiedItemAttr("subsystemBonusCaldariDefensive3"), stackingPenalties=True, skill="Caldari Defensive Systems")
- fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Tractor Beam",
- "maxTractorVelocity", src.getModifiedItemAttr("subsystemBonusCaldariDefensive3"), skill="Caldari Defensive Systems")
diff --git a/eos/effects/subsystembonuscaldaridefensiveinformationwarfare.py b/eos/effects/subsystembonuscaldaridefensiveinformationwarfare.py
deleted file mode 100644
index a6245c21a..000000000
--- a/eos/effects/subsystembonuscaldaridefensiveinformationwarfare.py
+++ /dev/null
@@ -1,20 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, src, context):
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Command"), "buffDuration",
- src.getModifiedItemAttr("subsystemBonusCaldariDefensive"),
- skill="Caldari Defensive Systems")
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Command"), "warfareBuff3Value",
- src.getModifiedItemAttr("subsystemBonusCaldariDefensive"),
- skill="Caldari Defensive Systems")
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Command"), "warfareBuff1Value",
- src.getModifiedItemAttr("subsystemBonusCaldariDefensive"),
- skill="Caldari Defensive Systems")
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Command"), "warfareBuff2Value",
- src.getModifiedItemAttr("subsystemBonusCaldariDefensive"),
- skill="Caldari Defensive Systems")
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Command"), "warfareBuff4Value",
- src.getModifiedItemAttr("subsystemBonusCaldariDefensive"),
- skill="Caldari Defensive Systems")
diff --git a/eos/effects/subsystembonuscaldaridefensiveinformationwarfarehidden.py b/eos/effects/subsystembonuscaldaridefensiveinformationwarfarehidden.py
deleted file mode 100644
index 0cf7a3ef8..000000000
--- a/eos/effects/subsystembonuscaldaridefensiveinformationwarfarehidden.py
+++ /dev/null
@@ -1,7 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Command Specialist"),
- "commandBonusHidden", module.getModifiedItemAttr("subsystemBonusCaldariDefensive"), skill="Caldari Defensive Systems")
diff --git a/eos/effects/subsystembonuscaldaridefensiveshieldrechargerate.py b/eos/effects/subsystembonuscaldaridefensiveshieldrechargerate.py
deleted file mode 100644
index 7ddb92b06..000000000
--- a/eos/effects/subsystembonuscaldaridefensiveshieldrechargerate.py
+++ /dev/null
@@ -1,7 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.ship.boostItemAttr("shieldRechargeRate", module.getModifiedItemAttr("subsystemBonusCaldariDefensive2"),
- skill="Caldari Defensive Systems")
diff --git a/eos/effects/subsystembonuscaldaridefensiveshieldresistance.py b/eos/effects/subsystembonuscaldaridefensiveshieldresistance.py
deleted file mode 100644
index 32dd02f63..000000000
--- a/eos/effects/subsystembonuscaldaridefensiveshieldresistance.py
+++ /dev/null
@@ -1,9 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- for type in ("Em", "Explosive", "Kinetic", "Thermal"):
- fit.ship.boostItemAttr("shield{0}DamageResonance".format(type),
- module.getModifiedItemAttr("subsystemBonusCaldariDefensive"),
- skill="Caldari Defensive Systems")
diff --git a/eos/effects/subsystembonuscaldaridefensivesiegewarfare.py b/eos/effects/subsystembonuscaldaridefensivesiegewarfare.py
deleted file mode 100644
index 0dbfb904b..000000000
--- a/eos/effects/subsystembonuscaldaridefensivesiegewarfare.py
+++ /dev/null
@@ -1,20 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, src, context):
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Command"), "warfareBuff2Value",
- src.getModifiedItemAttr("subsystemBonusCaldariDefensive"),
- skill="Caldari Defensive Systems")
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Command"), "warfareBuff1Value",
- src.getModifiedItemAttr("subsystemBonusCaldariDefensive"),
- skill="Caldari Defensive Systems")
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Command"), "warfareBuff3Value",
- src.getModifiedItemAttr("subsystemBonusCaldariDefensive"),
- skill="Caldari Defensive Systems")
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Command"), "buffDuration",
- src.getModifiedItemAttr("subsystemBonusCaldariDefensive"),
- skill="Caldari Defensive Systems")
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Command"), "warfareBuff4Value",
- src.getModifiedItemAttr("subsystemBonusCaldariDefensive"),
- skill="Caldari Defensive Systems")
diff --git a/eos/effects/subsystembonuscaldaridefensiveskirmishwarfare.py b/eos/effects/subsystembonuscaldaridefensiveskirmishwarfare.py
deleted file mode 100644
index 2841c2d14..000000000
--- a/eos/effects/subsystembonuscaldaridefensiveskirmishwarfare.py
+++ /dev/null
@@ -1,20 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, src, context):
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), "buffDuration",
- src.getModifiedItemAttr("subsystemBonusCaldariDefensive"),
- skill="Caldari Defensive Systems")
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), "warfareBuff1Value",
- src.getModifiedItemAttr("subsystemBonusCaldariDefensive"),
- skill="Caldari Defensive Systems")
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), "warfareBuff4Value",
- src.getModifiedItemAttr("subsystemBonusCaldariDefensive"),
- skill="Caldari Defensive Systems")
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), "warfareBuff2Value",
- src.getModifiedItemAttr("subsystemBonusCaldariDefensive"),
- skill="Caldari Defensive Systems")
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), "warfareBuff3Value",
- src.getModifiedItemAttr("subsystemBonusCaldariDefensive"),
- skill="Caldari Defensive Systems")
diff --git a/eos/effects/subsystembonuscaldarielectronic2maxtargetingrange.py b/eos/effects/subsystembonuscaldarielectronic2maxtargetingrange.py
deleted file mode 100644
index dfecf6025..000000000
--- a/eos/effects/subsystembonuscaldarielectronic2maxtargetingrange.py
+++ /dev/null
@@ -1,7 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.ship.boostItemAttr("maxTargetRange", module.getModifiedItemAttr("subsystemBonusCaldariElectronic2"),
- skill="Caldari Electronic Systems")
diff --git a/eos/effects/subsystembonuscaldarielectronic2tractorbeamrange.py b/eos/effects/subsystembonuscaldarielectronic2tractorbeamrange.py
deleted file mode 100644
index dec075218..000000000
--- a/eos/effects/subsystembonuscaldarielectronic2tractorbeamrange.py
+++ /dev/null
@@ -1,8 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Tractor Beam",
- "maxRange", module.getModifiedItemAttr("subsystemBonusCaldariElectronic2"),
- skill="Caldari Electronic Systems")
diff --git a/eos/effects/subsystembonuscaldarielectronic2tractorbeamvelocity.py b/eos/effects/subsystembonuscaldarielectronic2tractorbeamvelocity.py
deleted file mode 100644
index 93b628f94..000000000
--- a/eos/effects/subsystembonuscaldarielectronic2tractorbeamvelocity.py
+++ /dev/null
@@ -1,8 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Tractor Beam",
- "maxTractorVelocity", module.getModifiedItemAttr("subsystemBonusCaldariElectronic2"),
- skill="Caldari Electronic Systems")
diff --git a/eos/effects/subsystembonuscaldarielectroniccpu.py b/eos/effects/subsystembonuscaldarielectroniccpu.py
deleted file mode 100644
index a953001a6..000000000
--- a/eos/effects/subsystembonuscaldarielectroniccpu.py
+++ /dev/null
@@ -1,7 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.ship.boostItemAttr("cpuOutput", module.getModifiedItemAttr("subsystemBonusCaldariElectronic"),
- skill="Caldari Electronic Systems")
diff --git a/eos/effects/subsystembonuscaldarielectronicecmrange.py b/eos/effects/subsystembonuscaldarielectronicecmrange.py
deleted file mode 100644
index 52c4a2514..000000000
--- a/eos/effects/subsystembonuscaldarielectronicecmrange.py
+++ /dev/null
@@ -1,8 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM",
- "maxRange", module.getModifiedItemAttr("subsystemBonusCaldariElectronic"),
- skill="Caldari Electronic Systems")
diff --git a/eos/effects/subsystembonuscaldarielectronicscanprobestrength.py b/eos/effects/subsystembonuscaldarielectronicscanprobestrength.py
deleted file mode 100644
index a6678f610..000000000
--- a/eos/effects/subsystembonuscaldarielectronicscanprobestrength.py
+++ /dev/null
@@ -1,8 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.modules.filteredChargeBoost(lambda mod: mod.charge.group.name == "Scanner Probe",
- "baseSensorStrength", module.getModifiedItemAttr("subsystemBonusCaldariElectronic"),
- skill="Caldari Electronic Systems")
diff --git a/eos/effects/subsystembonuscaldarielectronicscanstrengthgravimetric.py b/eos/effects/subsystembonuscaldarielectronicscanstrengthgravimetric.py
deleted file mode 100644
index 76e9e6a5e..000000000
--- a/eos/effects/subsystembonuscaldarielectronicscanstrengthgravimetric.py
+++ /dev/null
@@ -1,7 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.ship.boostItemAttr("scanGravimetricStrength", module.getModifiedItemAttr("subsystemBonusCaldariElectronic"),
- skill="Caldari Electronic Systems")
diff --git a/eos/effects/subsystembonuscaldariengineeringcapacitorcapacity.py b/eos/effects/subsystembonuscaldariengineeringcapacitorcapacity.py
deleted file mode 100644
index e092ba001..000000000
--- a/eos/effects/subsystembonuscaldariengineeringcapacitorcapacity.py
+++ /dev/null
@@ -1,7 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.ship.boostItemAttr("capacitorCapacity", module.getModifiedItemAttr("subsystemBonusCaldariCore"),
- skill="Caldari Core Systems")
diff --git a/eos/effects/subsystembonuscaldariengineeringcapacitorrecharge.py b/eos/effects/subsystembonuscaldariengineeringcapacitorrecharge.py
deleted file mode 100644
index 98d3a2935..000000000
--- a/eos/effects/subsystembonuscaldariengineeringcapacitorrecharge.py
+++ /dev/null
@@ -1,7 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.ship.boostItemAttr("rechargeRate", module.getModifiedItemAttr("subsystemBonusCaldariCore"),
- skill="Caldari Core Systems")
diff --git a/eos/effects/subsystembonuscaldariengineeringpoweroutput.py b/eos/effects/subsystembonuscaldariengineeringpoweroutput.py
deleted file mode 100644
index 2726e0af2..000000000
--- a/eos/effects/subsystembonuscaldariengineeringpoweroutput.py
+++ /dev/null
@@ -1,7 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.ship.boostItemAttr("powerOutput", module.getModifiedItemAttr("subsystemBonusCaldariCore"),
- skill="Caldari Core Systems")
diff --git a/eos/effects/subsystembonuscaldarioffensive3ewstrengthgrav.py b/eos/effects/subsystembonuscaldarioffensive3ewstrengthgrav.py
deleted file mode 100644
index 4f51c23af..000000000
--- a/eos/effects/subsystembonuscaldarioffensive3ewstrengthgrav.py
+++ /dev/null
@@ -1,9 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM",
- "scanGravimetricStrengthBonus",
- module.getModifiedItemAttr("subsystemBonusCaldariOffensive3"),
- skill="Caldari Offensive Systems")
diff --git a/eos/effects/subsystembonuscaldarioffensive3ewstrengthladar.py b/eos/effects/subsystembonuscaldarioffensive3ewstrengthladar.py
deleted file mode 100644
index 8114c23d8..000000000
--- a/eos/effects/subsystembonuscaldarioffensive3ewstrengthladar.py
+++ /dev/null
@@ -1,9 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM",
- "scanLadarStrengthBonus",
- module.getModifiedItemAttr("subsystemBonusCaldariOffensive3"),
- skill="Caldari Offensive Systems")
diff --git a/eos/effects/subsystembonuscaldarioffensive3ewstrengthmagn.py b/eos/effects/subsystembonuscaldarioffensive3ewstrengthmagn.py
deleted file mode 100644
index 69f64527f..000000000
--- a/eos/effects/subsystembonuscaldarioffensive3ewstrengthmagn.py
+++ /dev/null
@@ -1,9 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM",
- "scanMagnetometricStrengthBonus",
- module.getModifiedItemAttr("subsystemBonusCaldariOffensive3"),
- skill="Caldari Offensive Systems")
diff --git a/eos/effects/subsystembonuscaldarioffensive3ewstrengthradar.py b/eos/effects/subsystembonuscaldarioffensive3ewstrengthradar.py
deleted file mode 100644
index 47eb2f29e..000000000
--- a/eos/effects/subsystembonuscaldarioffensive3ewstrengthradar.py
+++ /dev/null
@@ -1,9 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM",
- "scanRadarStrengthBonus",
- module.getModifiedItemAttr("subsystemBonusCaldariOffensive3"),
- skill="Caldari Offensive Systems")
diff --git a/eos/effects/subsystembonuscaldarioffensive3heavyassaultmissilevelocity.py b/eos/effects/subsystembonuscaldarioffensive3heavyassaultmissilevelocity.py
deleted file mode 100644
index b595798d8..000000000
--- a/eos/effects/subsystembonuscaldarioffensive3heavyassaultmissilevelocity.py
+++ /dev/null
@@ -1,11 +0,0 @@
-# subsystemBonusCaldariOffensive3HeavyAssaultMissileVelocity
-#
-# Used by:
-# Subsystem: Tengu Offensive - Accelerated Ejection Bay
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Assault Missiles"),
- "maxVelocity", module.getModifiedItemAttr("subsystemBonusCaldariOffensive3"),
- skill="Caldari Offensive Systems")
diff --git a/eos/effects/subsystembonuscaldarioffensive3heavymissilevelocity.py b/eos/effects/subsystembonuscaldarioffensive3heavymissilevelocity.py
deleted file mode 100644
index 9f7a98f9d..000000000
--- a/eos/effects/subsystembonuscaldarioffensive3heavymissilevelocity.py
+++ /dev/null
@@ -1,8 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"),
- "maxVelocity", module.getModifiedItemAttr("subsystemBonusCaldariOffensive3"),
- skill="Caldari Offensive Systems")
diff --git a/eos/effects/subsystembonuscaldarioffensiveassaultmissilelauncherrof.py b/eos/effects/subsystembonuscaldarioffensiveassaultmissilelauncherrof.py
deleted file mode 100644
index 02d2d3d03..000000000
--- a/eos/effects/subsystembonuscaldarioffensiveassaultmissilelauncherrof.py
+++ /dev/null
@@ -1,11 +0,0 @@
-# subsystemBonusCaldariOffensiveAssaultMissileLauncherROF
-#
-# Used by:
-# Variations of subsystem: Tengu Offensive - Accelerated Ejection Bay (3 of 4)
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Rapid Light",
- "speed", module.getModifiedItemAttr("subsystemBonusCaldariOffensive"),
- skill="Caldari Offensive Systems")
diff --git a/eos/effects/subsystembonuscaldarioffensiveheavyassaultmissilelauncherrof.py b/eos/effects/subsystembonuscaldarioffensiveheavyassaultmissilelauncherrof.py
deleted file mode 100644
index b9923a206..000000000
--- a/eos/effects/subsystembonuscaldarioffensiveheavyassaultmissilelauncherrof.py
+++ /dev/null
@@ -1,8 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Heavy Assault",
- "speed", module.getModifiedItemAttr("subsystemBonusCaldariOffensive"),
- skill="Caldari Offensive Systems")
diff --git a/eos/effects/subsystembonuscaldarioffensiveheavymissilelauncherrof.py b/eos/effects/subsystembonuscaldarioffensiveheavymissilelauncherrof.py
deleted file mode 100644
index a0c74ee2a..000000000
--- a/eos/effects/subsystembonuscaldarioffensiveheavymissilelauncherrof.py
+++ /dev/null
@@ -1,8 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Heavy",
- "speed", module.getModifiedItemAttr("subsystemBonusCaldariOffensive"),
- skill="Caldari Offensive Systems")
diff --git a/eos/effects/subsystembonuscaldaripropulsion2warpcapacitor2.py b/eos/effects/subsystembonuscaldaripropulsion2warpcapacitor2.py
deleted file mode 100644
index b4b8221c3..000000000
--- a/eos/effects/subsystembonuscaldaripropulsion2warpcapacitor2.py
+++ /dev/null
@@ -1,7 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.ship.boostItemAttr("warpCapacitorNeed", module.getModifiedItemAttr("subsystemBonusCaldariPropulsion2"),
- skill="Caldari Propulsion Systems")
diff --git a/eos/effects/subsystembonuscaldaripropulsionagility.py b/eos/effects/subsystembonuscaldaripropulsionagility.py
deleted file mode 100644
index 2bd22b70d..000000000
--- a/eos/effects/subsystembonuscaldaripropulsionagility.py
+++ /dev/null
@@ -1,7 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.ship.boostItemAttr("agility", module.getModifiedItemAttr("subsystemBonusCaldariPropulsion"),
- skill="Caldari Propulsion Systems")
diff --git a/eos/effects/subsystembonuscaldaripropulsionwarpspeed.py b/eos/effects/subsystembonuscaldaripropulsionwarpspeed.py
deleted file mode 100644
index cfd450c94..000000000
--- a/eos/effects/subsystembonuscaldaripropulsionwarpspeed.py
+++ /dev/null
@@ -1,10 +0,0 @@
-# subsystemBonusCaldariPropulsionWarpSpeed
-#
-# Used by:
-# Subsystem: Tengu Propulsion - Chassis Optimization
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.ship.boostItemAttr("baseWarpSpeed", module.getModifiedItemAttr("subsystemBonusCaldariPropulsion"),
- skill="Caldari Propulsion Systems")
diff --git a/eos/effects/subsystembonusgallentedefensive2armorrepheat.py b/eos/effects/subsystembonusgallentedefensive2armorrepheat.py
deleted file mode 100644
index e35f7cd1c..000000000
--- a/eos/effects/subsystembonusgallentedefensive2armorrepheat.py
+++ /dev/null
@@ -1,12 +0,0 @@
-# subsystemBonusGallenteDefensive2ArmorRepHeat
-#
-# Used by:
-# Subsystem: Proteus Defensive - Nanobot Injector
-type = "passive"
-
-
-def handler(fit, src, context):
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Systems"), "overloadArmorDamageAmount",
- src.getModifiedItemAttr("subsystemBonusGallenteDefensive2"), skill="Gallente Defensive Systems")
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Systems"), "overloadSelfDurationBonus",
- src.getModifiedItemAttr("subsystemBonusGallenteDefensive2"), skill="Gallente Defensive Systems")
diff --git a/eos/effects/subsystembonusgallentedefensive2remotearmorrepairamount.py b/eos/effects/subsystembonusgallentedefensive2remotearmorrepairamount.py
deleted file mode 100644
index 42f35203d..000000000
--- a/eos/effects/subsystembonusgallentedefensive2remotearmorrepairamount.py
+++ /dev/null
@@ -1,9 +0,0 @@
-# Not used by any item
-type = "passive"
-runTime = "early"
-
-
-def handler(fit, module, context):
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems"),
- "armorDamageAmount", module.getModifiedItemAttr("subsystemBonusGallenteDefensive2"),
- skill="Gallente Defensive Systems")
diff --git a/eos/effects/subsystembonusgallentedefensive3tractorbeambonus.py b/eos/effects/subsystembonusgallentedefensive3tractorbeambonus.py
deleted file mode 100644
index 4493eaa7a..000000000
--- a/eos/effects/subsystembonusgallentedefensive3tractorbeambonus.py
+++ /dev/null
@@ -1,9 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, src, context):
- fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Tractor Beam", "maxRange",
- src.getModifiedItemAttr("subsystemBonusGallenteDefensive3"), skill="Gallente Defensive Systems")
- fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Tractor Beam", "maxTractorVelocity",
- src.getModifiedItemAttr("subsystemBonusGallenteDefensive3"), skill="Gallente Defensive Systems")
diff --git a/eos/effects/subsystembonusgallentedefensivearmoredwarfare.py b/eos/effects/subsystembonusgallentedefensivearmoredwarfare.py
deleted file mode 100644
index 8c7e75a9e..000000000
--- a/eos/effects/subsystembonusgallentedefensivearmoredwarfare.py
+++ /dev/null
@@ -1,20 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, src, context):
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Armored Command"), "buffDuration",
- src.getModifiedItemAttr("subsystemBonusGallenteDefensive"),
- skill="Gallente Defensive Systems")
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Armored Command"), "warfareBuff3Value",
- src.getModifiedItemAttr("subsystemBonusGallenteDefensive"),
- skill="Gallente Defensive Systems")
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Armored Command"), "warfareBuff4Value",
- src.getModifiedItemAttr("subsystemBonusGallenteDefensive"),
- skill="Gallente Defensive Systems")
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Armored Command"), "warfareBuff2Value",
- src.getModifiedItemAttr("subsystemBonusGallenteDefensive"),
- skill="Gallente Defensive Systems")
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Armored Command"), "warfareBuff1Value",
- src.getModifiedItemAttr("subsystemBonusGallenteDefensive"),
- skill="Gallente Defensive Systems")
diff --git a/eos/effects/subsystembonusgallentedefensivearmorresistance.py b/eos/effects/subsystembonusgallentedefensivearmorresistance.py
deleted file mode 100644
index 89c793799..000000000
--- a/eos/effects/subsystembonusgallentedefensivearmorresistance.py
+++ /dev/null
@@ -1,9 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- for type in ("Em", "Explosive", "Kinetic", "Thermal"):
- fit.ship.boostItemAttr("armor{0}DamageResonance".format(type),
- module.getModifiedItemAttr("subsystemBonusGallenteDefensive"),
- skill="Gallente Defensive Systems")
diff --git a/eos/effects/subsystembonusgallentedefensiveinformationwarfare.py b/eos/effects/subsystembonusgallentedefensiveinformationwarfare.py
deleted file mode 100644
index 02d96a8a7..000000000
--- a/eos/effects/subsystembonusgallentedefensiveinformationwarfare.py
+++ /dev/null
@@ -1,20 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, src, context):
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Command"), "warfareBuff4Value",
- src.getModifiedItemAttr("subsystemBonusGallenteDefensive"),
- skill="Gallente Defensive Systems")
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Command"), "warfareBuff2Value",
- src.getModifiedItemAttr("subsystemBonusGallenteDefensive"),
- skill="Gallente Defensive Systems")
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Command"), "warfareBuff3Value",
- src.getModifiedItemAttr("subsystemBonusGallenteDefensive"),
- skill="Gallente Defensive Systems")
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Command"), "buffDuration",
- src.getModifiedItemAttr("subsystemBonusGallenteDefensive"),
- skill="Gallente Defensive Systems")
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Command"), "warfareBuff1Value",
- src.getModifiedItemAttr("subsystemBonusGallenteDefensive"),
- skill="Gallente Defensive Systems")
diff --git a/eos/effects/subsystembonusgallentedefensiveinformationwarfarehidden.py b/eos/effects/subsystembonusgallentedefensiveinformationwarfarehidden.py
deleted file mode 100644
index 19b0cf02e..000000000
--- a/eos/effects/subsystembonusgallentedefensiveinformationwarfarehidden.py
+++ /dev/null
@@ -1,7 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Command Specialist"),
- "commandBonusHidden", module.getModifiedItemAttr("subsystemBonusGallenteDefensive"), skill="Gallente Defensive Systems")
diff --git a/eos/effects/subsystembonusgallentedefensiveskirmishwarfare.py b/eos/effects/subsystembonusgallentedefensiveskirmishwarfare.py
deleted file mode 100644
index e69d3498c..000000000
--- a/eos/effects/subsystembonusgallentedefensiveskirmishwarfare.py
+++ /dev/null
@@ -1,20 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, src, context):
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), "warfareBuff4Value",
- src.getModifiedItemAttr("subsystemBonusGallenteDefensive"),
- skill="Gallente Defensive Systems")
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), "warfareBuff2Value",
- src.getModifiedItemAttr("subsystemBonusGallenteDefensive"),
- skill="Gallente Defensive Systems")
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), "warfareBuff1Value",
- src.getModifiedItemAttr("subsystemBonusGallenteDefensive"),
- skill="Gallente Defensive Systems")
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), "warfareBuff3Value",
- src.getModifiedItemAttr("subsystemBonusGallenteDefensive"),
- skill="Gallente Defensive Systems")
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), "buffDuration",
- src.getModifiedItemAttr("subsystemBonusGallenteDefensive"),
- skill="Gallente Defensive Systems")
diff --git a/eos/effects/subsystembonusgallenteelectronic2maxtargetingrange.py b/eos/effects/subsystembonusgallenteelectronic2maxtargetingrange.py
deleted file mode 100644
index 5cf5da2da..000000000
--- a/eos/effects/subsystembonusgallenteelectronic2maxtargetingrange.py
+++ /dev/null
@@ -1,7 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.ship.boostItemAttr("maxTargetRange", module.getModifiedItemAttr("subsystemBonusGallenteElectronic2"),
- skill="Gallente Electronic Systems")
diff --git a/eos/effects/subsystembonusgallenteelectronic2tractorbeamrange.py b/eos/effects/subsystembonusgallenteelectronic2tractorbeamrange.py
deleted file mode 100644
index f20787889..000000000
--- a/eos/effects/subsystembonusgallenteelectronic2tractorbeamrange.py
+++ /dev/null
@@ -1,8 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Tractor Beam",
- "maxRange", module.getModifiedItemAttr("subsystemBonusGallenteElectronic2"),
- skill="Gallente Electronic Systems")
diff --git a/eos/effects/subsystembonusgallenteelectronic2tractorbeamvelocity.py b/eos/effects/subsystembonusgallenteelectronic2tractorbeamvelocity.py
deleted file mode 100644
index 179582a9f..000000000
--- a/eos/effects/subsystembonusgallenteelectronic2tractorbeamvelocity.py
+++ /dev/null
@@ -1,8 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Tractor Beam",
- "maxTractorVelocity", module.getModifiedItemAttr("subsystemBonusGallenteElectronic2"),
- skill="Gallente Electronic Systems")
diff --git a/eos/effects/subsystembonusgallenteelectroniccpu.py b/eos/effects/subsystembonusgallenteelectroniccpu.py
deleted file mode 100644
index 2feb00f86..000000000
--- a/eos/effects/subsystembonusgallenteelectroniccpu.py
+++ /dev/null
@@ -1,7 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.ship.boostItemAttr("cpuOutput", module.getModifiedItemAttr("subsystemBonusGallenteElectronic"),
- skill="Gallente Electronic Systems")
diff --git a/eos/effects/subsystembonusgallenteelectronicscanprobestrength.py b/eos/effects/subsystembonusgallenteelectronicscanprobestrength.py
deleted file mode 100644
index 9451a037e..000000000
--- a/eos/effects/subsystembonusgallenteelectronicscanprobestrength.py
+++ /dev/null
@@ -1,9 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.modules.filteredChargeBoost(lambda mod: mod.charge.group.name == "Scanner Probe",
- "baseSensorStrength",
- module.getModifiedItemAttr("subsystemBonusGallenteElectronic"),
- skill="Gallente Electronic Systems")
diff --git a/eos/effects/subsystembonusgallenteelectronicscanstrengthmagnetometric.py b/eos/effects/subsystembonusgallenteelectronicscanstrengthmagnetometric.py
deleted file mode 100644
index 34ab8b270..000000000
--- a/eos/effects/subsystembonusgallenteelectronicscanstrengthmagnetometric.py
+++ /dev/null
@@ -1,7 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.ship.boostItemAttr("scanMagnetometricStrength", module.getModifiedItemAttr("subsystemBonusGallenteElectronic"),
- skill="Gallente Electronic Systems")
diff --git a/eos/effects/subsystembonusgallenteelectronicwarpscramblerange.py b/eos/effects/subsystembonusgallenteelectronicwarpscramblerange.py
deleted file mode 100644
index 951c13cea..000000000
--- a/eos/effects/subsystembonusgallenteelectronicwarpscramblerange.py
+++ /dev/null
@@ -1,8 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Warp Scrambler",
- "maxRange", module.getModifiedItemAttr("subsystemBonusGallenteElectronic"),
- skill="Gallente Electronic Systems")
diff --git a/eos/effects/subsystembonusgallenteengineering2dronemwd.py b/eos/effects/subsystembonusgallenteengineering2dronemwd.py
deleted file mode 100644
index e476b9f1d..000000000
--- a/eos/effects/subsystembonusgallenteengineering2dronemwd.py
+++ /dev/null
@@ -1,8 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), "maxVelocity",
- module.getModifiedItemAttr("subsystemBonusGallenteCore2"),
- skill="Gallente Core Systems")
diff --git a/eos/effects/subsystembonusgallenteengineeringcapacitorrecharge.py b/eos/effects/subsystembonusgallenteengineeringcapacitorrecharge.py
deleted file mode 100644
index 72bb25e12..000000000
--- a/eos/effects/subsystembonusgallenteengineeringcapacitorrecharge.py
+++ /dev/null
@@ -1,7 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.ship.boostItemAttr("rechargeRate", module.getModifiedItemAttr("subsystemBonusGallenteCore"),
- skill="Gallente Core Systems")
diff --git a/eos/effects/subsystembonusgallenteengineeringdronehp.py b/eos/effects/subsystembonusgallenteengineeringdronehp.py
deleted file mode 100644
index f9de09f6e..000000000
--- a/eos/effects/subsystembonusgallenteengineeringdronehp.py
+++ /dev/null
@@ -1,9 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- for layer in ("shieldCapacity", "armorHP", "hp"):
- fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), layer,
- module.getModifiedItemAttr("subsystemBonusGallenteCore"),
- skill="Gallente Core Systems")
diff --git a/eos/effects/subsystembonusgallenteengineeringpoweroutput.py b/eos/effects/subsystembonusgallenteengineeringpoweroutput.py
deleted file mode 100644
index 9bcb7adf3..000000000
--- a/eos/effects/subsystembonusgallenteengineeringpoweroutput.py
+++ /dev/null
@@ -1,7 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.ship.boostItemAttr("powerOutput", module.getModifiedItemAttr("subsystemBonusGallenteCore"),
- skill="Gallente Core Systems")
diff --git a/eos/effects/subsystembonusgallenteoffensive3dronedamagemultiplier.py b/eos/effects/subsystembonusgallenteoffensive3dronedamagemultiplier.py
deleted file mode 100644
index d2eb14e1d..000000000
--- a/eos/effects/subsystembonusgallenteoffensive3dronedamagemultiplier.py
+++ /dev/null
@@ -1,8 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"),
- "damageMultiplier", module.getModifiedItemAttr("subsystemBonusGallenteOffensive3"),
- skill="Gallente Offensive Systems")
diff --git a/eos/effects/subsystembonusgallenteoffensivedronehp.py b/eos/effects/subsystembonusgallenteoffensivedronehp.py
deleted file mode 100644
index d02eab954..000000000
--- a/eos/effects/subsystembonusgallenteoffensivedronehp.py
+++ /dev/null
@@ -1,12 +0,0 @@
-# subsystemBonusGallenteOffensiveDroneHP
-#
-# Used by:
-# Subsystem: Proteus Offensive - Drone Synthesis Projector
-type = "passive"
-
-
-def handler(fit, module, context):
- for layer in ("shieldCapacity", "armorHP", "hp"):
- fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), layer,
- module.getModifiedItemAttr("subsystemBonusGallenteOffensive"),
- skill="Gallente Offensive Systems")
diff --git a/eos/effects/subsystembonusgallenteoffensivehybridweapondamagemultiplier.py b/eos/effects/subsystembonusgallenteoffensivehybridweapondamagemultiplier.py
deleted file mode 100644
index a94ff5eb0..000000000
--- a/eos/effects/subsystembonusgallenteoffensivehybridweapondamagemultiplier.py
+++ /dev/null
@@ -1,8 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"),
- "damageMultiplier", module.getModifiedItemAttr("subsystemBonusGallenteOffensive"),
- skill="Gallente Offensive Systems")
diff --git a/eos/effects/subsystembonusgallentepropulsion2warpcapacitor.py b/eos/effects/subsystembonusgallentepropulsion2warpcapacitor.py
deleted file mode 100644
index e74f2d22d..000000000
--- a/eos/effects/subsystembonusgallentepropulsion2warpcapacitor.py
+++ /dev/null
@@ -1,7 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.ship.boostItemAttr("warpCapacitorNeed", module.getModifiedItemAttr("subsystemBonusGallentePropulsion2"),
- skill="Gallente Propulsion Systems")
diff --git a/eos/effects/subsystembonusgallentepropulsionagility.py b/eos/effects/subsystembonusgallentepropulsionagility.py
deleted file mode 100644
index e15ff4dee..000000000
--- a/eos/effects/subsystembonusgallentepropulsionagility.py
+++ /dev/null
@@ -1,7 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.ship.boostItemAttr("agility", module.getModifiedItemAttr("subsystemBonusGallentePropulsion"),
- skill="Gallente Propulsion Systems")
diff --git a/eos/effects/subsystembonusgallentepropulsionmwdpenalty.py b/eos/effects/subsystembonusgallentepropulsionmwdpenalty.py
deleted file mode 100644
index 98e2a1716..000000000
--- a/eos/effects/subsystembonusgallentepropulsionmwdpenalty.py
+++ /dev/null
@@ -1,9 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("High Speed Maneuvering"),
- "signatureRadiusBonus",
- module.getModifiedItemAttr("subsystemBonusGallentePropulsion"),
- skill="Gallente Propulsion Systems")
diff --git a/eos/effects/subsystembonusminmatardefensive2localrepheat.py b/eos/effects/subsystembonusminmatardefensive2localrepheat.py
deleted file mode 100644
index 732ca1779..000000000
--- a/eos/effects/subsystembonusminmatardefensive2localrepheat.py
+++ /dev/null
@@ -1,17 +0,0 @@
-# subsystemBonusMinmatarDefensive2LocalRepHeat
-#
-# Used by:
-# Subsystem: Loki Defensive - Adaptive Defense Node
-type = "passive"
-
-
-def handler(fit, src, context):
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Systems") or mod.item.requiresSkill("Shield Operation"),
- "overloadSelfDurationBonus", src.getModifiedItemAttr("subsystemBonusMinmatarDefensive2"),
- skill="Minmatar Defensive Systems")
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Systems"),
- "overloadArmorDamageAmount", src.getModifiedItemAttr("subsystemBonusMinmatarDefensive2"),
- skill="Minmatar Defensive Systems")
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Operation"),
- "overloadShieldBonus", src.getModifiedItemAttr("subsystemBonusMinmatarDefensive2"),
- skill="Minmatar Defensive Systems")
diff --git a/eos/effects/subsystembonusminmatardefensive2remoteshieldtransporteramount.py b/eos/effects/subsystembonusminmatardefensive2remoteshieldtransporteramount.py
deleted file mode 100644
index a044b34ae..000000000
--- a/eos/effects/subsystembonusminmatardefensive2remoteshieldtransporteramount.py
+++ /dev/null
@@ -1,9 +0,0 @@
-# Not used by any item
-type = "passive"
-runTime = "early"
-
-
-def handler(fit, module, context):
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Emission Systems"),
- "shieldBonus", module.getModifiedItemAttr("subsystemBonusMinmatarDefensive2"),
- skill="Minmatar Defensive Systems")
diff --git a/eos/effects/subsystembonusminmatardefensive3tractorbeambonus.py b/eos/effects/subsystembonusminmatardefensive3tractorbeambonus.py
deleted file mode 100644
index 46c0dc717..000000000
--- a/eos/effects/subsystembonusminmatardefensive3tractorbeambonus.py
+++ /dev/null
@@ -1,9 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, src, context):
- fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Tractor Beam", "maxRange",
- src.getModifiedItemAttr("subsystemBonusMinmatarDefensive3"), skill="Minmatar Defensive Systems")
- fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Tractor Beam", "maxTractorVelocity",
- src.getModifiedItemAttr("subsystemBonusMinmatarDefensive3"), skill="Minmatar Defensive Systems")
diff --git a/eos/effects/subsystembonusminmatardefensivearmoredwarfare.py b/eos/effects/subsystembonusminmatardefensivearmoredwarfare.py
deleted file mode 100644
index b0646226d..000000000
--- a/eos/effects/subsystembonusminmatardefensivearmoredwarfare.py
+++ /dev/null
@@ -1,20 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, src, context):
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Armored Command"), "buffDuration",
- src.getModifiedItemAttr("subsystemBonusMinmatarDefensive"),
- skill="Minmatar Defensive Systems")
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Armored Command"), "warfareBuff2Value",
- src.getModifiedItemAttr("subsystemBonusMinmatarDefensive"),
- skill="Minmatar Defensive Systems")
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Armored Command"), "warfareBuff4Value",
- src.getModifiedItemAttr("subsystemBonusMinmatarDefensive"),
- skill="Minmatar Defensive Systems")
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Armored Command"), "warfareBuff1Value",
- src.getModifiedItemAttr("subsystemBonusMinmatarDefensive"),
- skill="Minmatar Defensive Systems")
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Armored Command"), "warfareBuff3Value",
- src.getModifiedItemAttr("subsystemBonusMinmatarDefensive"),
- skill="Minmatar Defensive Systems")
diff --git a/eos/effects/subsystembonusminmatardefensivearmorresistance.py b/eos/effects/subsystembonusminmatardefensivearmorresistance.py
deleted file mode 100644
index 155c521eb..000000000
--- a/eos/effects/subsystembonusminmatardefensivearmorresistance.py
+++ /dev/null
@@ -1,9 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- for type in ("Em", "Explosive", "Kinetic", "Thermal"):
- fit.ship.boostItemAttr("armor{0}DamageResonance".format(type),
- module.getModifiedItemAttr("subsystemBonusMinmatarDefensive"),
- skill="Minmatar Defensive Systems")
diff --git a/eos/effects/subsystembonusminmatardefensiveshieldresistance.py b/eos/effects/subsystembonusminmatardefensiveshieldresistance.py
deleted file mode 100644
index fe65b628c..000000000
--- a/eos/effects/subsystembonusminmatardefensiveshieldresistance.py
+++ /dev/null
@@ -1,9 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- for type in ("Em", "Explosive", "Kinetic", "Thermal"):
- fit.ship.boostItemAttr("shield{0}DamageResonance".format(type),
- module.getModifiedItemAttr("subsystemBonusMinmatarDefensive"),
- skill="Minmatar Defensive Systems")
diff --git a/eos/effects/subsystembonusminmatardefensivesiegewarfare.py b/eos/effects/subsystembonusminmatardefensivesiegewarfare.py
deleted file mode 100644
index c4fcca1fa..000000000
--- a/eos/effects/subsystembonusminmatardefensivesiegewarfare.py
+++ /dev/null
@@ -1,20 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, src, context):
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Command"), "warfareBuff1Value",
- src.getModifiedItemAttr("subsystemBonusMinmatarDefensive"),
- skill="Minmatar Defensive Systems")
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Command"), "buffDuration",
- src.getModifiedItemAttr("subsystemBonusMinmatarDefensive"),
- skill="Minmatar Defensive Systems")
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Command"), "warfareBuff4Value",
- src.getModifiedItemAttr("subsystemBonusMinmatarDefensive"),
- skill="Minmatar Defensive Systems")
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Command"), "warfareBuff3Value",
- src.getModifiedItemAttr("subsystemBonusMinmatarDefensive"),
- skill="Minmatar Defensive Systems")
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Command"), "warfareBuff2Value",
- src.getModifiedItemAttr("subsystemBonusMinmatarDefensive"),
- skill="Minmatar Defensive Systems")
diff --git a/eos/effects/subsystembonusminmatardefensivesignatureradius.py b/eos/effects/subsystembonusminmatardefensivesignatureradius.py
deleted file mode 100644
index c31b4186f..000000000
--- a/eos/effects/subsystembonusminmatardefensivesignatureradius.py
+++ /dev/null
@@ -1,7 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.ship.boostItemAttr("signatureRadius", module.getModifiedItemAttr("subsystemBonusMinmatarDefensive"),
- skill="Minmatar Defensive Systems")
diff --git a/eos/effects/subsystembonusminmatardefensiveskirmishwarfare.py b/eos/effects/subsystembonusminmatardefensiveskirmishwarfare.py
deleted file mode 100644
index bd9b91cb1..000000000
--- a/eos/effects/subsystembonusminmatardefensiveskirmishwarfare.py
+++ /dev/null
@@ -1,20 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, src, context):
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), "warfareBuff1Value",
- src.getModifiedItemAttr("subsystemBonusMinmatarDefensive"),
- skill="Minmatar Defensive Systems")
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), "warfareBuff3Value",
- src.getModifiedItemAttr("subsystemBonusMinmatarDefensive"),
- skill="Minmatar Defensive Systems")
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), "warfareBuff4Value",
- src.getModifiedItemAttr("subsystemBonusMinmatarDefensive"),
- skill="Minmatar Defensive Systems")
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), "warfareBuff2Value",
- src.getModifiedItemAttr("subsystemBonusMinmatarDefensive"),
- skill="Minmatar Defensive Systems")
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), "buffDuration",
- src.getModifiedItemAttr("subsystemBonusMinmatarDefensive"),
- skill="Minmatar Defensive Systems")
diff --git a/eos/effects/subsystembonusminmatarelectronic2maxtargetingrange.py b/eos/effects/subsystembonusminmatarelectronic2maxtargetingrange.py
deleted file mode 100644
index 5328c7bb9..000000000
--- a/eos/effects/subsystembonusminmatarelectronic2maxtargetingrange.py
+++ /dev/null
@@ -1,7 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.ship.boostItemAttr("maxTargetRange", module.getModifiedItemAttr("subsystemBonusMinmatarElectronic2"),
- skill="Minmatar Electronic Systems")
diff --git a/eos/effects/subsystembonusminmatarelectronic2scanresolution.py b/eos/effects/subsystembonusminmatarelectronic2scanresolution.py
deleted file mode 100644
index 065af593b..000000000
--- a/eos/effects/subsystembonusminmatarelectronic2scanresolution.py
+++ /dev/null
@@ -1,7 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.ship.boostItemAttr("scanResolution", module.getModifiedItemAttr("subsystemBonusMinmatarElectronic2"),
- skill="Minmatar Electronic Systems")
diff --git a/eos/effects/subsystembonusminmatarelectronic2tractorbeamrange.py b/eos/effects/subsystembonusminmatarelectronic2tractorbeamrange.py
deleted file mode 100644
index 2204f35dc..000000000
--- a/eos/effects/subsystembonusminmatarelectronic2tractorbeamrange.py
+++ /dev/null
@@ -1,8 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Tractor Beam",
- "maxRange", module.getModifiedItemAttr("subsystemBonusMinmatarElectronic2"),
- skill="Minmatar Electronic Systems")
diff --git a/eos/effects/subsystembonusminmatarelectronic2tractorbeamvelocity.py b/eos/effects/subsystembonusminmatarelectronic2tractorbeamvelocity.py
deleted file mode 100644
index f647d5b3c..000000000
--- a/eos/effects/subsystembonusminmatarelectronic2tractorbeamvelocity.py
+++ /dev/null
@@ -1,8 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Tractor Beam",
- "maxTractorVelocity", module.getModifiedItemAttr("subsystemBonusMinmatarElectronic2"),
- skill="Minmatar Electronic Systems")
diff --git a/eos/effects/subsystembonusminmatarelectronicscanprobestrength.py b/eos/effects/subsystembonusminmatarelectronicscanprobestrength.py
deleted file mode 100644
index 873aa1eca..000000000
--- a/eos/effects/subsystembonusminmatarelectronicscanprobestrength.py
+++ /dev/null
@@ -1,9 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.modules.filteredChargeBoost(lambda mod: mod.charge.group.name == "Scanner Probe",
- "baseSensorStrength",
- module.getModifiedItemAttr("subsystemBonusMinmatarElectronic"),
- skill="Minmatar Electronic Systems")
diff --git a/eos/effects/subsystembonusminmatarelectronicscanstrengthladar.py b/eos/effects/subsystembonusminmatarelectronicscanstrengthladar.py
deleted file mode 100644
index 531b98d96..000000000
--- a/eos/effects/subsystembonusminmatarelectronicscanstrengthladar.py
+++ /dev/null
@@ -1,7 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.ship.boostItemAttr("scanLadarStrength", module.getModifiedItemAttr("subsystemBonusMinmatarElectronic"),
- skill="Minmatar Electronic Systems")
diff --git a/eos/effects/subsystembonusminmatarelectronicstasiswebifierrange.py b/eos/effects/subsystembonusminmatarelectronicstasiswebifierrange.py
deleted file mode 100644
index 53f0a94aa..000000000
--- a/eos/effects/subsystembonusminmatarelectronicstasiswebifierrange.py
+++ /dev/null
@@ -1,8 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Stasis Web",
- "maxRange", module.getModifiedItemAttr("subsystemBonusMinmatarElectronic"),
- skill="Minmatar Electronic Systems")
diff --git a/eos/effects/subsystembonusminmatarengineeringcapacitorcapacity.py b/eos/effects/subsystembonusminmatarengineeringcapacitorcapacity.py
deleted file mode 100644
index 36ffe1d3f..000000000
--- a/eos/effects/subsystembonusminmatarengineeringcapacitorcapacity.py
+++ /dev/null
@@ -1,7 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.ship.boostItemAttr("capacitorCapacity", module.getModifiedItemAttr("subsystemBonusMinmatarCore"),
- skill="Minmatar Core Systems")
diff --git a/eos/effects/subsystembonusminmatarengineeringcapacitorrecharge.py b/eos/effects/subsystembonusminmatarengineeringcapacitorrecharge.py
deleted file mode 100644
index 3919fbd1c..000000000
--- a/eos/effects/subsystembonusminmatarengineeringcapacitorrecharge.py
+++ /dev/null
@@ -1,7 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.ship.boostItemAttr("rechargeRate", module.getModifiedItemAttr("subsystemBonusMinmatarCore"),
- skill="Minmatar Core Systems")
diff --git a/eos/effects/subsystembonusminmatarengineeringpoweroutput.py b/eos/effects/subsystembonusminmatarengineeringpoweroutput.py
deleted file mode 100644
index b034cfbc0..000000000
--- a/eos/effects/subsystembonusminmatarengineeringpoweroutput.py
+++ /dev/null
@@ -1,7 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.ship.boostItemAttr("powerOutput", module.getModifiedItemAttr("subsystemBonusMinmatarCore"),
- skill="Minmatar Core Systems")
diff --git a/eos/effects/subsystembonusminmataroffensive2projectileweaponrof.py b/eos/effects/subsystembonusminmataroffensive2projectileweaponrof.py
deleted file mode 100644
index 37de5345a..000000000
--- a/eos/effects/subsystembonusminmataroffensive2projectileweaponrof.py
+++ /dev/null
@@ -1,8 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Projectile Turret"),
- "speed", module.getModifiedItemAttr("subsystemBonusMinmatarOffensive2"),
- skill="Minmatar Offensive Systems")
diff --git a/eos/effects/subsystembonusminmataroffensiveassaultmissilelauncherrof.py b/eos/effects/subsystembonusminmataroffensiveassaultmissilelauncherrof.py
deleted file mode 100644
index 545dac076..000000000
--- a/eos/effects/subsystembonusminmataroffensiveassaultmissilelauncherrof.py
+++ /dev/null
@@ -1,8 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Rapid Light",
- "speed", module.getModifiedItemAttr("subsystemBonusMinmatarOffensive"),
- skill="Minmatar Offensive Systems")
diff --git a/eos/effects/subsystembonusminmataroffensiveheavyassaultmissilelauncherrof.py b/eos/effects/subsystembonusminmataroffensiveheavyassaultmissilelauncherrof.py
deleted file mode 100644
index 0cdf31f6c..000000000
--- a/eos/effects/subsystembonusminmataroffensiveheavyassaultmissilelauncherrof.py
+++ /dev/null
@@ -1,8 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Heavy Assault",
- "speed", module.getModifiedItemAttr("subsystemBonusMinmatarOffensive"),
- skill="Minmatar Offensive Systems")
diff --git a/eos/effects/subsystembonusminmataroffensiveheavymissilelauncherrof.py b/eos/effects/subsystembonusminmataroffensiveheavymissilelauncherrof.py
deleted file mode 100644
index 65f3983b2..000000000
--- a/eos/effects/subsystembonusminmataroffensiveheavymissilelauncherrof.py
+++ /dev/null
@@ -1,8 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Heavy",
- "speed", module.getModifiedItemAttr("subsystemBonusMinmatarOffensive"),
- skill="Minmatar Offensive Systems")
diff --git a/eos/effects/subsystembonusminmataroffensiveprojectileweaponrof.py b/eos/effects/subsystembonusminmataroffensiveprojectileweaponrof.py
deleted file mode 100644
index 49993800a..000000000
--- a/eos/effects/subsystembonusminmataroffensiveprojectileweaponrof.py
+++ /dev/null
@@ -1,8 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Projectile Turret"),
- "speed", module.getModifiedItemAttr("subsystemBonusMinmatarOffensive"),
- skill="Minmatar Offensive Systems")
diff --git a/eos/effects/subsystembonusminmatarpropulsionagility.py b/eos/effects/subsystembonusminmatarpropulsionagility.py
deleted file mode 100644
index 3b61c349e..000000000
--- a/eos/effects/subsystembonusminmatarpropulsionagility.py
+++ /dev/null
@@ -1,7 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.ship.boostItemAttr("agility", module.getModifiedItemAttr("subsystemBonusMinmatarPropulsion"),
- skill="Minmatar Propulsion Systems")
diff --git a/eos/effects/subsystembonusoffensivejumpharmonics.py b/eos/effects/subsystembonusoffensivejumpharmonics.py
deleted file mode 100644
index aab0f2334..000000000
--- a/eos/effects/subsystembonusoffensivejumpharmonics.py
+++ /dev/null
@@ -1,9 +0,0 @@
-# subsystemBonusOffensiveJumpHarmonics
-#
-# Used by:
-# Subsystems named like: Offensive Covert Reconfiguration (4 of 4)
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.ship.forceItemAttr("jumpHarmonics", module.getModifiedItemAttr("jumpHarmonicsModifier"))
diff --git a/eos/effects/subsystembonusscanprobelaunchercpu.py b/eos/effects/subsystembonusscanprobelaunchercpu.py
deleted file mode 100644
index edd4a87f0..000000000
--- a/eos/effects/subsystembonusscanprobelaunchercpu.py
+++ /dev/null
@@ -1,7 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, module, context):
- fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Scan Probe Launcher",
- "cpu", module.getModifiedItemAttr("cpuNeedBonus"))
diff --git a/eos/effects/surgicalstrikedamagemultiplierbonuspostpercentdamagemultiplierlocationshipgroupprecursorturret.py b/eos/effects/surgicalstrikedamagemultiplierbonuspostpercentdamagemultiplierlocationshipgroupprecursorturret.py
new file mode 100644
index 000000000..f1aaa88e2
--- /dev/null
+++ b/eos/effects/surgicalstrikedamagemultiplierbonuspostpercentdamagemultiplierlocationshipgroupprecursorturret.py
@@ -0,0 +1,10 @@
+# surgicalStrikeDamageMultiplierBonusPostPercentDamageMultiplierLocationShipGroupPrecursorTurret
+#
+# Used by:
+# Skill: Surgical Strike
+type = "passive"
+
+
+def handler(fit, skill, context):
+ fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Precursor Weapon",
+ "damageMultiplier", skill.getModifiedItemAttr("damageMultiplierBonus") * skill.level)
diff --git a/eos/effects/surgicalstrikedamagemultiplierbonuspostpercentdamagemultiplierlocationshipmodulesrequiringgunnery.py b/eos/effects/surgicalstrikedamagemultiplierbonuspostpercentdamagemultiplierlocationshipmodulesrequiringgunnery.py
index 78b9750ec..5a801aab4 100644
--- a/eos/effects/surgicalstrikedamagemultiplierbonuspostpercentdamagemultiplierlocationshipmodulesrequiringgunnery.py
+++ b/eos/effects/surgicalstrikedamagemultiplierbonuspostpercentdamagemultiplierlocationshipmodulesrequiringgunnery.py
@@ -1,7 +1,7 @@
# surgicalStrikeDamageMultiplierBonusPostPercentDamageMultiplierLocationShipModulesRequiringGunnery
#
# Used by:
-# Implants named like: Agency 'Pyrolancea' DB Dose (3 of 3)
+# Implants named like: Agency 'Pyrolancea' DB Dose (3 of 4)
# Implants named like: Eifyr and Co. 'Gunslinger' Surgical Strike SS (6 of 6)
# Implant: Standard Cerebral Accelerator
type = "passive"
diff --git a/eos/effects/systemsmallprecursorturretdamage.py b/eos/effects/systemsmallprecursorturretdamage.py
new file mode 100644
index 000000000..595b9a679
--- /dev/null
+++ b/eos/effects/systemsmallprecursorturretdamage.py
@@ -0,0 +1,12 @@
+# systemSmallPrecursorTurretDamage
+#
+# Used by:
+# Celestials named like: Wolf Rayet Effect Beacon Class (5 of 6)
+runTime = "early"
+type = ("projected", "passive")
+
+
+def handler(fit, module, context):
+ fit.modules.filteredItemMultiply(lambda mod: mod.item.requiresSkill("Small Precursor Weapon"),
+ "damageMultiplier", module.getModifiedItemAttr("smallWeaponDamageMultiplier"),
+ stackingPenalties=True)
diff --git a/eos/effects/targetabcattack.py b/eos/effects/targetabcattack.py
new file mode 100644
index 000000000..66dac5bc6
--- /dev/null
+++ b/eos/effects/targetabcattack.py
@@ -0,0 +1,10 @@
+# targetABCAttack
+#
+# Used by:
+# Modules from group: Precursor Weapon (15 of 15)
+type = 'active'
+
+
+def handler(fit, module, context):
+ # Set reload time to 1 second
+ module.reloadTime = 1000
diff --git a/eos/effects/targetarmorrepair.py b/eos/effects/targetarmorrepair.py
deleted file mode 100644
index 0a4c0c154..000000000
--- a/eos/effects/targetarmorrepair.py
+++ /dev/null
@@ -1,9 +0,0 @@
-# Not used by any item
-type = "projected", "active"
-
-
-def handler(fit, container, context):
- if "projected" in context:
- bonus = container.getModifiedItemAttr("armorDamageAmount")
- duration = container.getModifiedItemAttr("duration") / 1000.0
- fit.extraAttributes.increase("armorRepair", bonus / duration)
diff --git a/eos/effects/techtwocommandburstbonus.py b/eos/effects/techtwocommandburstbonus.py
deleted file mode 100644
index 1769da1af..000000000
--- a/eos/effects/techtwocommandburstbonus.py
+++ /dev/null
@@ -1,8 +0,0 @@
-# Not used by any item
-type = "passive"
-runTime = "late"
-
-
-def handler(fit, module, context):
- for x in range(1, 4):
- module.boostChargeAttr("warfareBuff{}Multiplier".format(x), module.getModifiedItemAttr("commandBurstStrengthBonus"))
diff --git a/eos/effects/thermodynamicsskilldamagebonus.py b/eos/effects/thermodynamicsskilldamagebonus.py
index 54569b06a..0386ad6e6 100644
--- a/eos/effects/thermodynamicsskilldamagebonus.py
+++ b/eos/effects/thermodynamicsskilldamagebonus.py
@@ -6,5 +6,5 @@ type = "passive"
def handler(fit, skill, context):
- fit.modules.filteredItemBoost(lambda mod: True, "heatDamage",
+ fit.modules.filteredItemBoost(lambda mod: "heatDamage" in mod.item.attributes, "heatDamage",
skill.getModifiedItemAttr("thermodynamicsHeatDamage") * skill.level)
diff --git a/eos/effects/titanturretdamagescaling.py b/eos/effects/titanturretdamagescaling.py
deleted file mode 100644
index a8f00c006..000000000
--- a/eos/effects/titanturretdamagescaling.py
+++ /dev/null
@@ -1,7 +0,0 @@
-# Not used by any item
-type = "passive"
-
-
-def handler(fit, ship, context):
- fit.modules.filteredItemIncrease(lambda mod: mod.item.requiresSkill("Gunnery"),
- "turretDamageScalingRadius", ship.getModifiedItemAttr("titanBonusScalingRadius"))
diff --git a/eos/effects/tractorbeamcan.py b/eos/effects/tractorbeamcan.py
index 293a839ea..27517bdc0 100644
--- a/eos/effects/tractorbeamcan.py
+++ b/eos/effects/tractorbeamcan.py
@@ -1,6 +1,7 @@
# tractorBeamCan
#
# Used by:
+# Deployables from group: Mobile Tractor Unit (3 of 3)
# Modules from group: Tractor Beam (4 of 4)
type = "active"
diff --git a/eos/effects/usemissiles.py b/eos/effects/usemissiles.py
index 57a58372b..7376dd563 100644
--- a/eos/effects/usemissiles.py
+++ b/eos/effects/usemissiles.py
@@ -4,6 +4,7 @@
# Modules from group: Missile Launcher Heavy (12 of 12)
# Modules from group: Missile Launcher Rocket (15 of 15)
# Modules named like: Launcher (154 of 154)
+# Structure Modules named like: Standup Launcher (7 of 7)
type = 'active', "projected"
diff --git a/eos/effects/warpdisruptsphere.py b/eos/effects/warpdisruptsphere.py
index 22787465b..f8ce29992 100644
--- a/eos/effects/warpdisruptsphere.py
+++ b/eos/effects/warpdisruptsphere.py
@@ -1,3 +1,7 @@
+# warpDisruptSphere
+#
+# Used by:
+# Modules from group: Warp Disrupt Field Generator (7 of 7)
# warpDisruptSphere
#
diff --git a/eos/effects/warpscramble.py b/eos/effects/warpscramble.py
index 7424625ae..476608626 100644
--- a/eos/effects/warpscramble.py
+++ b/eos/effects/warpscramble.py
@@ -1,7 +1,7 @@
# warpScramble
#
# Used by:
-# Modules named like: Warp Disruptor (27 of 27)
+# Modules named like: Warp Disruptor (28 of 28)
type = "projected", "active"
diff --git a/eos/effects/warpscrambleblockmwdwithnpceffect.py b/eos/effects/warpscrambleblockmwdwithnpceffect.py
index 27a82548a..0985d4673 100644
--- a/eos/effects/warpscrambleblockmwdwithnpceffect.py
+++ b/eos/effects/warpscrambleblockmwdwithnpceffect.py
@@ -1,7 +1,7 @@
# warpScrambleBlockMWDWithNPCEffect
#
# Used by:
-# Modules named like: Warp Scrambler (26 of 26)
+# Modules named like: Warp Scrambler (27 of 27)
from eos.saveddata.module import State
runTime = "early"
diff --git a/eos/effects/weatherbasic.py b/eos/effects/weatherbasic.py
new file mode 100644
index 000000000..61b26655c
--- /dev/null
+++ b/eos/effects/weatherbasic.py
@@ -0,0 +1,10 @@
+# weather_basic
+#
+# Used by:
+# Celestial: basic_weather
+runTime = "early"
+type = ("projected", "passive")
+
+
+def handler(fit, beacon, context):
+ pass
diff --git a/eos/effects/weathercaustictoxin.py b/eos/effects/weathercaustictoxin.py
new file mode 100644
index 000000000..c13489860
--- /dev/null
+++ b/eos/effects/weathercaustictoxin.py
@@ -0,0 +1,18 @@
+# weather_caustic_toxin
+#
+# Used by:
+# Celestial: caustic_toxin_weather_1
+# Celestial: caustic_toxin_weather_2
+# Celestial: caustic_toxin_weather_3
+runTime = "early"
+type = ("projected", "passive", "gang")
+
+
+def handler(fit, beacon, context, **kwargs):
+ for x in range(1, 3):
+ if beacon.getModifiedItemAttr("warfareBuff{}ID".format(x)):
+ value = beacon.getModifiedItemAttr("warfareBuff{}Value".format(x))
+ id = beacon.getModifiedItemAttr("warfareBuff{}ID".format(x))
+
+ if id:
+ fit.addCommandBonus(id, value, beacon, kwargs['effect'], 'early')
diff --git a/eos/effects/weatherdarkness.py b/eos/effects/weatherdarkness.py
new file mode 100644
index 000000000..d1b17d0f8
--- /dev/null
+++ b/eos/effects/weatherdarkness.py
@@ -0,0 +1,18 @@
+# weather_darkness
+#
+# Used by:
+# Celestial: darkness_weather_1
+# Celestial: darkness_weather_2
+# Celestial: darkness_weather_3
+runTime = "early"
+type = ("projected", "passive", "gang")
+
+
+def handler(fit, beacon, context, **kwargs):
+ for x in range(1, 3):
+ if beacon.getModifiedItemAttr("warfareBuff{}ID".format(x)):
+ value = beacon.getModifiedItemAttr("warfareBuff{}Value".format(x))
+ id = beacon.getModifiedItemAttr("warfareBuff{}ID".format(x))
+
+ if id:
+ fit.addCommandBonus(id, value, beacon, kwargs['effect'], 'early')
diff --git a/eos/effects/weatherelectricstorm.py b/eos/effects/weatherelectricstorm.py
new file mode 100644
index 000000000..b6e78935f
--- /dev/null
+++ b/eos/effects/weatherelectricstorm.py
@@ -0,0 +1,18 @@
+# weather_electric_storm
+#
+# Used by:
+# Celestial: electric_storm_weather_1
+# Celestial: electric_storm_weather_2
+# Celestial: electric_storm_weather_3
+runTime = "early"
+type = ("projected", "passive", "gang")
+
+
+def handler(fit, beacon, context, **kwargs):
+ for x in range(1, 3):
+ if beacon.getModifiedItemAttr("warfareBuff{}ID".format(x)):
+ value = beacon.getModifiedItemAttr("warfareBuff{}Value".format(x))
+ id = beacon.getModifiedItemAttr("warfareBuff{}ID".format(x))
+
+ if id:
+ fit.addCommandBonus(id, value, beacon, kwargs['effect'], 'early')
diff --git a/eos/effects/weatherinfernal.py b/eos/effects/weatherinfernal.py
new file mode 100644
index 000000000..9ddfe1a30
--- /dev/null
+++ b/eos/effects/weatherinfernal.py
@@ -0,0 +1,18 @@
+# weather_infernal
+#
+# Used by:
+# Celestial: infernal_weather_1
+# Celestial: infernal_weather_2
+# Celestial: infernal_weather_3
+runTime = "early"
+type = ("projected", "passive", "gang")
+
+
+def handler(fit, beacon, context, **kwargs):
+ for x in range(1, 3):
+ if beacon.getModifiedItemAttr("warfareBuff{}ID".format(x)):
+ value = beacon.getModifiedItemAttr("warfareBuff{}Value".format(x))
+ id = beacon.getModifiedItemAttr("warfareBuff{}ID".format(x))
+
+ if id:
+ fit.addCommandBonus(id, value, beacon, kwargs['effect'], 'early')
diff --git a/eos/effects/weatherxenongas.py b/eos/effects/weatherxenongas.py
new file mode 100644
index 000000000..913a7de2b
--- /dev/null
+++ b/eos/effects/weatherxenongas.py
@@ -0,0 +1,18 @@
+# weather_xenon_gas
+#
+# Used by:
+# Celestial: xenon_gas_weather_1
+# Celestial: xenon_gas_weather_2
+# Celestial: xenon_gas_weather_3
+runTime = "early"
+type = ("projected", "passive", "gang")
+
+
+def handler(fit, beacon, context, **kwargs):
+ for x in range(1, 3):
+ if beacon.getModifiedItemAttr("warfareBuff{}ID".format(x)):
+ value = beacon.getModifiedItemAttr("warfareBuff{}Value".format(x))
+ id = beacon.getModifiedItemAttr("warfareBuff{}ID".format(x))
+
+ if id:
+ fit.addCommandBonus(id, value, beacon, kwargs['effect'], 'early')
diff --git a/eos/gamedata.py b/eos/gamedata.py
index af7d413a7..7949361b9 100644
--- a/eos/gamedata.py
+++ b/eos/gamedata.py
@@ -372,7 +372,8 @@ class Item(EqBase):
12 : "sisters", # Amarr + Gallente
16 : "jove",
32 : "sansha", # Incrusion Sansha
- 128: "ore"
+ 128: "ore",
+ 135: "triglavian"
}
# Race is None by default
race = None
diff --git a/eos/graph/fitDps.py b/eos/graph/fitDps.py
index 6aead3583..71a95d26e 100644
--- a/eos/graph/fitDps.py
+++ b/eos/graph/fitDps.py
@@ -141,14 +141,14 @@ class FitDpsGraph(Graph):
targetVelocity = data["velocity"]
explosionRadius = ability.fighter.getModifiedItemAttr("{}ExplosionRadius".format(prefix))
explosionVelocity = ability.fighter.getModifiedItemAttr("{}ExplosionVelocity".format(prefix))
- damageReductionFactor = ability.fighter.getModifiedItemAttr("{}ReductionFactor".format(prefix))
+ damageReductionFactor = ability.fighter.getModifiedItemAttr("{}ReductionFactor".format(prefix), None)
# the following conditionals are because CCP can't keep a decent naming convention, as if fighter implementation
# wasn't already fucked.
if damageReductionFactor is None:
damageReductionFactor = ability.fighter.getModifiedItemAttr("{}DamageReductionFactor".format(prefix))
- damageReductionSensitivity = ability.fighter.getModifiedItemAttr("{}ReductionSensitivity".format(prefix))
+ damageReductionSensitivity = ability.fighter.getModifiedItemAttr("{}ReductionSensitivity".format(prefix), None)
if damageReductionSensitivity is None:
damageReductionSensitivity = ability.fighter.getModifiedItemAttr(
"{}DamageReductionSensitivity".format(prefix))
diff --git a/eos/saveddata/character.py b/eos/saveddata/character.py
index 9edb866e8..9316b32f7 100644
--- a/eos/saveddata/character.py
+++ b/eos/saveddata/character.py
@@ -57,8 +57,15 @@ class Character(object):
def init(self):
self.__skillIdMap = {}
+
for skill in self.__skills:
self.__skillIdMap[skill.itemID] = skill
+
+ # get a list of skills that the character does no have, and add them (removal of old skills happens in the
+ # Skill loading)
+ for skillID in set(self.getSkillIDMap().keys()).difference(set(self.__skillIdMap.keys())):
+ self.addSkill(Skill(self, skillID, self.defaultLevel))
+
self.dirtySkills = set()
self.alphaClone = None
@@ -121,6 +128,7 @@ class Character(object):
def clearSkills(self):
del self.__skills[:]
self.__skillIdMap.clear()
+ self.dirtySkills.clear()
@property
def ro(self):
diff --git a/eos/saveddata/fit.py b/eos/saveddata/fit.py
index cb5bedcf9..d44f8adca 100644
--- a/eos/saveddata/fit.py
+++ b/eos/saveddata/fit.py
@@ -672,6 +672,72 @@ class Fit(object):
groups = ("Energy Weapon", "Hybrid Weapon")
self.modules.filteredItemBoost(lambda mod: mod.item.group.name in groups, "maxRange", value, stackingPenalties=True)
+ # Localized environment effects
+
+ if warfareBuffID == 79: # AOE_Beacon_bioluminescence_cloud
+ self.ship.boostItemAttr("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 == 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 == 88: # AOE_Beacon_filament_cloud_shield_booster
+ self.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Operation") or
+ mod.item.requiresSkill("Shield Emission Systems"),
+ "capacitorNeed", value, stackingPenalties=True)
+
+ if warfareBuffID == 89: # AOE_Beacon_filament_cloud_ancillary_charge_usage
+ self.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Operation") or
+ mod.item.requiresSkill("Shield Emission Systems"),
+ "chargeRate", value, stackingPenalties=True)
+
+ # Abysmal Weather Effects
+
+ if warfareBuffID == 90: # Weather_electric_storm_EM_resistance_penalty
+ for tankType in ("shield", "armor"):
+ self.ship.boostItemAttr("{}EmDamageResonance".format(tankType), value)
+ self.ship.boostItemAttr("emDamageResonance", value) # for hull
+
+ if warfareBuffID == 92: # Weather_electric_storm_capacitor_recharge_bonus
+ self.ship.boostItemAttr("rechargeRate", value, stackingPenalties=True)
+
+ if warfareBuffID == 93: # Weather_xenon_gas_explosive_resistance_penalty
+ for tankType in ("shield", "armor"):
+ self.ship.boostItemAttr("{}ExplosiveDamageResonance".format(tankType), value)
+ self.ship.boostItemAttr("explosiveDamageResonance", value) # for hull
+
+ if warfareBuffID == 94: # Weather_xenon_gas_shield_hp_bonus
+ self.ship.boostItemAttr("shieldCapacity", value) # for hull
+
+ if warfareBuffID == 95: # Weather_infernal_thermal_resistance_penalty
+ for tankType in ("shield", "armor"):
+ self.ship.boostItemAttr("{}ThermalDamageResonance".format(tankType), value)
+ self.ship.boostItemAttr("thermalDamageResonance", value) # for hull
+
+ if warfareBuffID == 96: # Weather_infernal_armor_hp_bonus
+ self.ship.boostItemAttr("armorHP", value) # for hull
+
+ if warfareBuffID == 97: # Weather_darkness_turret_range_penalty
+ self.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Gunnery"),
+ "maxRange", value, stackingPenalties=True)
+ self.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Gunnery"),
+ "falloff", value, stackingPenalties=True)
+
+ if warfareBuffID == 98: # Weather_darkness_velocity_bonus
+ self.ship.boostItemAttr("maxVelocity", value)
+
+ if warfareBuffID == 99: # Weather_caustic_toxin_kinetic_resistance_penalty
+ for tankType in ("shield", "armor"):
+ self.ship.boostItemAttr("{}KineticDamageResonance".format(tankType), value)
+ self.ship.boostItemAttr("kineticDamageResonance", value) # for hull
+
+ if warfareBuffID == 100: # Weather_caustic_toxin_scan_resolution_bonus
+ self.ship.boostItemAttr("scanResolution", value, stackingPenalties=True)
+
del self.commandBonuses[warfareBuffID]
def __resetDependentCalcs(self):
@@ -950,6 +1016,16 @@ class Fit(object):
def getNumSlots(self, type):
return self.ship.getModifiedItemAttr(self.slots[type]) or 0
+ def getHardpointsFree(self, type):
+ if type == Hardpoint.NONE:
+ return 1
+ elif type == Hardpoint.TURRET:
+ return self.ship.getModifiedItemAttr('turretSlotsLeft') - self.getHardpointsUsed(Hardpoint.TURRET)
+ elif type == Hardpoint.MISSILE:
+ return self.ship.getModifiedItemAttr('launcherSlotsLeft') - self.getHardpointsUsed(Hardpoint.MISSILE)
+ else:
+ raise ValueError("%d is not a valid value for Hardpoint Enum", type)
+
@property
def calibrationUsed(self):
return self.getItemAttrOnlineSum(self.modules, 'upgradeCost')
diff --git a/eos/saveddata/module.py b/eos/saveddata/module.py
index 4547f49de..f6d27053c 100644
--- a/eos/saveddata/module.py
+++ b/eos/saveddata/module.py
@@ -72,6 +72,7 @@ class Module(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut):
"""An instance of this class represents a module together with its charge and modified attributes"""
DAMAGE_TYPES = ("em", "thermal", "kinetic", "explosive")
MINING_ATTRIBUTES = ("miningAmount",)
+ SYSTEM_GROUPS = ("Effect Beacon", "MassiveEnvironments", "Abyssal Hazards", "Non-Interactable Object")
def __init__(self, item):
"""Initialize a module from the program"""
@@ -165,7 +166,7 @@ class Module(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut):
return False
return self.__item is None or \
(self.__item.category.name not in ("Module", "Subsystem", "Structure Module") and
- self.__item.group.name != "Effect Beacon")
+ self.__item.group.name not in self.SYSTEM_GROUPS)
@property
def numCharges(self):
@@ -336,6 +337,8 @@ class Module(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut):
volley = sum([(func("%sDamage" % attr) or 0) * (1 - getattr(targetResists, "%sAmount" % attr, 0)) for attr in self.DAMAGE_TYPES])
volley *= self.getModifiedItemAttr("damageMultiplier") or 1
+ # Disintegrator-specific ramp-up multiplier
+ volley *= (self.getModifiedItemAttr("damageMultiplierBonusMax") or 0) + 1
if volley:
cycleTime = self.cycleTime
# Some weapons repeat multiple times in one cycle (think doomsdays)
@@ -469,7 +472,8 @@ class Module(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut):
if max is not None:
current = 0 # if self.owner != fit else -1 # Disabled, see #1278
for mod in fit.modules:
- if mod.item and mod.item.groupID == self.item.groupID:
+ if (mod.item and mod.item.groupID == self.item.groupID and
+ self.modPosition != mod.modPosition):
current += 1
if current >= max:
@@ -477,12 +481,8 @@ class Module(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut):
# Check this only if we're told to do so
if hardpointLimit:
- if self.hardpoint == Hardpoint.TURRET:
- if fit.ship.getModifiedItemAttr('turretSlotsLeft') - fit.getHardpointsUsed(Hardpoint.TURRET) < 1:
- return False
- elif self.hardpoint == Hardpoint.MISSILE:
- if fit.ship.getModifiedItemAttr('launcherSlotsLeft') - fit.getHardpointsUsed(Hardpoint.MISSILE) < 1:
- return False
+ if fit.getHardpointsFree(self.hardpoint) < 1:
+ return False
return True
@@ -612,7 +612,7 @@ class Module(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut):
for effectName, slot in effectSlotMap.items():
if effectName in item.effects:
return slot
- if item.group.name == "Effect Beacon":
+ if item.group.name in Module.SYSTEM_GROUPS:
return Slot.SYSTEM
raise ValueError("Passed item does not fit in any known slot")
diff --git a/eve.db b/eve.db
index 5493b4e20..3bf090b22 100644
Binary files a/eve.db and b/eve.db differ
diff --git a/gui/builtinContextMenus/moduleAmmoPicker.py b/gui/builtinContextMenus/moduleAmmoPicker.py
index 69b5e43b8..81c02eab0 100644
--- a/gui/builtinContextMenus/moduleAmmoPicker.py
+++ b/gui/builtinContextMenus/moduleAmmoPicker.py
@@ -60,7 +60,7 @@ class ModuleAmmoPicker(ContextMenu):
damage = 0
range_ = (self.module.item.getAttribute("maxRange")) * \
(charge.getAttribute("weaponRangeMultiplier") or 1)
- falloff = (self.module.item.getAttribute("falloff")) * \
+ falloff = (self.module.item.getAttribute("falloff") or 0) * \
(charge.getAttribute("fallofMultiplier") or 1)
for type_ in self.DAMAGE_TYPES:
d = charge.getAttribute("%sDamage" % type_)
diff --git a/gui/builtinContextMenus/whProjector.py b/gui/builtinContextMenus/whProjector.py
index bafca94ab..ac0bd5c1b 100644
--- a/gui/builtinContextMenus/whProjector.py
+++ b/gui/builtinContextMenus/whProjector.py
@@ -6,9 +6,23 @@ import wx
from service.market import Market
from service.fit import Fit
from service.settings import ContextMenuSettings
+from itertools import chain
+import re
class WhProjector(ContextMenu):
+
+ # CCP doesn't currently provide a mapping between the general Environment, and the specific environment effect
+ # (which can be random when going into Abyssal space). This is how we currently define it:
+ # environment type: specific type name previx
+ abyssal_mapping = {
+ 'caustic_toxin_weather': 47862, # Exotic Particle Storm
+ 'darkness_weather': 47863, # Dark Matter Field
+ 'infernal_weather': 47864, # Plasma Firestorm
+ 'electric_storm_weather': 47865, # Electrical Storm
+ 'xenon_gas_weather': 47866, # Gamma-Ray Afterglow
+ }
+
def __init__(self):
self.mainFrame = gui.mainFrame.MainFrame.getInstance()
self.settings = ContextMenuSettings.getInstance()
@@ -20,32 +34,49 @@ class WhProjector(ContextMenu):
return srcContext == "projected"
def getText(self, itmContext, selection):
- return "Add System Effects"
+ return "Add Environmental Effect"
def getSubMenu(self, context, selection, rootMenu, i, pitem):
msw = True if "wxMSW" in wx.PlatformInfo else False
- sMkt = Market.getInstance()
- effdata = sMkt.getSystemWideEffects()
+
+ # Wormholes
self.idmap = {}
sub = wx.Menu()
- for swType in sorted(effdata):
- subItem = wx.MenuItem(sub, wx.ID_ANY, swType)
- grandSub = wx.Menu()
- subItem.SetSubMenu(grandSub)
- sub.Append(subItem)
+ wormhole_item = wx.MenuItem(sub, wx.ID_ANY, "Wormhole")
+ wormhole_menu = wx.Menu()
+ wormhole_item.SetSubMenu(wormhole_menu)
+ sub.Append(wormhole_item)
+
+ effdata = self.getEffectBeacons()
+ self.buildMenu(effdata, wormhole_menu, rootMenu, msw)
+
+ # Incursions
+
+ effdata = self.getEffectBeacons(incursions=True)
+ self.buildMenu(effdata, sub, rootMenu, msw)
+
+ # Abyssal Weather
+
+ abyssal_item = wx.MenuItem(sub, wx.ID_ANY, "Abyssal Weather")
+ abyssal_menu = wx.Menu()
+ abyssal_item.SetSubMenu(abyssal_menu)
+ sub.Append(abyssal_item)
+
+ effdata = self.getAbyssalWeather()
+ self.buildMenu(effdata, abyssal_menu, rootMenu, msw)
+
+ # Localized Weather
+
+ local_item = wx.MenuItem(sub, wx.ID_ANY, "Localized")
+ local_menu = wx.Menu()
+ local_item.SetSubMenu(local_menu)
+ sub.Append(local_item)
+
+ effdata = self.getLocalizedEnvironments()
+ self.buildMenu(effdata, local_menu, rootMenu, msw)
- for swData in sorted(effdata[swType], key=lambda tpl: tpl[2]):
- wxid = ContextMenu.nextID()
- swObj, swName, swClass = swData
- self.idmap[wxid] = (swObj, swName)
- grandSubItem = wx.MenuItem(grandSub, wxid, swClass)
- if msw:
- rootMenu.Bind(wx.EVT_MENU, self.handleSelection, grandSubItem)
- else:
- grandSub.Bind(wx.EVT_MENU, self.handleSelection, grandSubItem)
- grandSub.Append(grandSubItem)
return sub
def handleSelection(self, event):
@@ -61,5 +92,127 @@ class WhProjector(ContextMenu):
sFit.project(fitID, swObj)
wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID))
+ def buildMenu(self, data, local_menu, rootMenu, msw):
+ for swType in sorted(data):
+ subItem = wx.MenuItem(local_menu, wx.ID_ANY, swType)
+ grandSub = wx.Menu()
+ subItem.SetSubMenu(grandSub)
+ local_menu.Append(subItem)
+
+ for swData in sorted(data[swType], key=lambda tpl: tpl[2]):
+ wxid = ContextMenu.nextID()
+ swObj, swName, swClass = swData
+ self.idmap[wxid] = (swObj, swName)
+ grandSubItem = wx.MenuItem(grandSub, wxid, swClass)
+ if msw:
+ rootMenu.Bind(wx.EVT_MENU, self.handleSelection, grandSubItem)
+ else:
+ grandSub.Bind(wx.EVT_MENU, self.handleSelection, grandSubItem)
+ grandSub.Append(grandSubItem)
+
+ def getEffectBeacons(self, incursions=False):
+ """
+ Get dictionary with system-wide effects
+ """
+ sMkt = Market.getInstance()
+
+ # todo: rework this
+ # Container for system-wide effects
+ effects = {}
+
+ # Expressions for matching when detecting effects we're looking for
+ if incursions:
+ validgroups = ("Incursion ship attributes effects",)
+ else:
+ validgroups = ("Black Hole Effect Beacon",
+ "Cataclysmic Variable Effect Beacon",
+ "Magnetar Effect Beacon",
+ "Pulsar Effect Beacon",
+ "Red Giant Beacon",
+ "Wolf Rayet Effect Beacon")
+
+ # Stuff we don't want to see in names
+ garbages = ("Effect", "Beacon", "ship attributes effects")
+
+ # Get group with all the system-wide beacons
+ grp = sMkt.getGroup("Effect Beacon")
+
+ # Cycle through them
+ for beacon in sMkt.getItemsByGroup(grp):
+ # Check if it belongs to any valid group
+ for group in validgroups:
+ # Check beginning of the name only
+ if re.match(group, beacon.name):
+ # Get full beacon name
+ beaconname = beacon.name
+ for garbage in garbages:
+ beaconname = re.sub(garbage, "", beaconname)
+ beaconname = re.sub(" {2,}", " ", beaconname).strip()
+ # Get short name
+ shortname = re.sub(group, "", beacon.name)
+ for garbage in garbages:
+ shortname = re.sub(garbage, "", shortname)
+ shortname = re.sub(" {2,}", " ", shortname).strip()
+ # Get group name
+ groupname = group
+ for garbage in garbages:
+ groupname = re.sub(garbage, "", groupname)
+ groupname = re.sub(" {2,}", " ", groupname).strip()
+ # Add stuff to dictionary
+ if groupname not in effects:
+ effects[groupname] = set()
+ effects[groupname].add((beacon, beaconname, shortname))
+ # Break loop on 1st result
+ break
+
+ return effects
+
+ def getAbyssalWeather(self):
+ sMkt = Market.getInstance()
+
+ environments = {x.ID: x for x in sMkt.getGroup("Abyssal Environment").items}
+ items = chain(sMkt.getGroup("MassiveEnvironments").items, sMkt.getGroup("Non-Interactable Object").items)
+
+ effects = {}
+
+ for beacon in items:
+ if not beacon.isType('projected'):
+ continue
+
+ type = self.__class__.abyssal_mapping.get(beacon.name[0:-2], None)
+ type = environments.get(type, None)
+ if type is None:
+ continue
+
+ if type.name not in effects:
+ effects[type.name] = set()
+
+ display_name = "{} {}".format(type.name, beacon.name[-1:])
+ effects[type.name].add((beacon, display_name, display_name))
+
+ return effects
+
+ def getLocalizedEnvironments(self):
+ sMkt = Market.getInstance()
+
+ grp = sMkt.getGroup("Abyssal Hazards")
+
+ effects = dict()
+
+ for beacon in grp.items:
+ if not beacon.isType('projected'):
+ continue
+ # Localized effects, currently, have a name like "(size) (type) Cloud"
+ # Until this inevitably changes, do a simple split
+ name_parts = beacon.name.split(" ")
+
+ key = name_parts[1].strip()
+ if key not in effects:
+ effects[key] = set()
+
+ effects[key].add((beacon, beacon.name, beacon.name))
+
+ return effects
+
WhProjector.register()
diff --git a/gui/builtinItemStatsViews/itemAttributes.py b/gui/builtinItemStatsViews/itemAttributes.py
index e40710c45..18432a96d 100644
--- a/gui/builtinItemStatsViews/itemAttributes.py
+++ b/gui/builtinItemStatsViews/itemAttributes.py
@@ -102,7 +102,7 @@ class ItemParams(wx.Panel):
if saveFileDialog.ShowModal() == wx.ID_CANCEL:
return # the user hit cancel...
- with open(saveFileDialog.GetPath(), "wb") as exportFile:
+ with open(saveFileDialog.GetPath(), "w") as exportFile:
writer = csv.writer(exportFile, delimiter=',')
writer.writerow(
diff --git a/gui/builtinItemStatsViews/itemEffects.py b/gui/builtinItemStatsViews/itemEffects.py
index e586786a6..37b37c608 100644
--- a/gui/builtinItemStatsViews/itemEffects.py
+++ b/gui/builtinItemStatsViews/itemEffects.py
@@ -45,7 +45,7 @@ class ItemEffects(wx.Panel):
self.effectList.SetColumnWidth(4, 40)
item = self.item
- effects = item.effects
+ self.effects = effects = item.effects
names = list(effects.keys())
names.sort()
@@ -100,14 +100,15 @@ class ItemEffects(wx.Panel):
self.RefreshValues(event)
- @staticmethod
- def OnRightClick(event):
+ def OnRightClick(self, event):
"""
Debug use: open effect file with default application.
If effect file does not exist, create it
"""
- file_ = os.path.join(config.pyfaPath, "eos", "effects", "%s.py" % event.GetText().lower())
+ effect = self.effects[event.GetText()]
+
+ file_ = os.path.join(config.pyfaPath, "eos", "effects", "%s.py" % effect.handlerName)
if not os.path.isfile(file_):
open(file_, 'a').close()
diff --git a/gui/builtinViewColumns/baseName.py b/gui/builtinViewColumns/baseName.py
index 0628eb2ad..368dd74b6 100644
--- a/gui/builtinViewColumns/baseName.py
+++ b/gui/builtinViewColumns/baseName.py
@@ -28,7 +28,9 @@ from eos.saveddata.fighter import Fighter
from eos.saveddata.module import Module, Slot, Rack
from eos.saveddata.fit import Fit
from service.fit import Fit as FitSvc
+from service.market import Market
from gui.viewColumn import ViewColumn
+from gui.builtinContextMenus.whProjector import WhProjector
import gui.mainFrame
pyfalog = Logger(__name__)
@@ -77,6 +79,15 @@ class BaseName(ViewColumn):
else:
return ""
elif isinstance(stuff, Module):
+ if self.projectedView:
+ # check for projected abyssal name
+ name_check = stuff.item.name[0:-2]
+ type = WhProjector.abyssal_mapping.get(name_check, None)
+ if type:
+ sMkt = Market.getInstance()
+ type = sMkt.getItem(type)
+ return "{} {}".format(type.name, stuff.item.name[-1:])
+
if stuff.isEmpty:
return "%s Slot" % Slot.getName(stuff.slot).capitalize()
else:
diff --git a/gui/builtinViewColumns/maxRange.py b/gui/builtinViewColumns/maxRange.py
index ef420c344..7fcd6cd44 100644
--- a/gui/builtinViewColumns/maxRange.py
+++ b/gui/builtinViewColumns/maxRange.py
@@ -60,7 +60,7 @@ class MaxRange(ViewColumn):
maxRange = stuff.maxRange if hasattr(stuff, "maxRange") else stuff.getModifiedItemAttr("maxRange", None)
falloff = stuff.falloff
- if falloff:
+ if falloff and falloff >= 5:
falloff = "+%sm" % formatAmount(falloff, 3, 0, 3)
else:
falloff = ""
diff --git a/gui/builtinViewColumns/misc.py b/gui/builtinViewColumns/misc.py
index 668979c1f..d89db812e 100644
--- a/gui/builtinViewColumns/misc.py
+++ b/gui/builtinViewColumns/misc.py
@@ -108,6 +108,28 @@ class Miscellanea(ViewColumn):
text = "{0}".format(formatAmount(trackingSpeed, 3, 0, 3))
tooltip = "Tracking speed"
return text, tooltip
+ elif itemGroup == "Precursor Weapon":
+ info = []
+ trackingSpeed = stuff.getModifiedItemAttr("trackingSpeed")
+ if trackingSpeed:
+ text = "{0}".format(formatAmount(trackingSpeed, 3, 0, 3))
+ tooltip = "tracking speed"
+ info.append((text, tooltip))
+ maxBonusDamage = stuff.getModifiedItemAttr("damageMultiplierBonusMax")
+ bonusDamagePerCycle = stuff.getModifiedItemAttr("damageMultiplierBonusPerCycle")
+ cycleTime = stuff.getModifiedItemAttr("speed")
+ if maxBonusDamage and bonusDamagePerCycle and cycleTime:
+ cyclesToFullDamage = int(maxBonusDamage / bonusDamagePerCycle)
+ timeToFullDamage = (cycleTime / 1000) * cyclesToFullDamage
+ if cyclesToFullDamage:
+ text = "{0}s".format(formatAmount(timeToFullDamage, 3, 0, 3))
+ tooltip = "spool-up time"
+ info.append((text, tooltip))
+ if not info:
+ return "", None
+ text = ' | '.join(i[0] for i in info)
+ tooltip = ' and '.join(i[1] for i in info).capitalize()
+ return text, tooltip
elif itemCategory == "Subsystem":
slots = ("hi", "med", "low")
info = []
diff --git a/gui/builtinViews/fittingView.py b/gui/builtinViews/fittingView.py
index 4db377ddb..d6bf4ae0c 100644
--- a/gui/builtinViews/fittingView.py
+++ b/gui/builtinViews/fittingView.py
@@ -39,6 +39,7 @@ from service.fit import Fit
from service.market import Market
from gui.utils.staticHelpers import DragDropHelper
+import gui.utils.fonts as fonts
import gui.globalEvents as GE
@@ -148,6 +149,7 @@ class FittingView(d.Display):
self.mainFrame.Bind(EVT_FIT_RENAMED, self.fitRenamed)
self.mainFrame.Bind(EVT_FIT_REMOVED, self.fitRemoved)
self.mainFrame.Bind(ITEM_SELECTED, self.appendItem)
+ self.font = wx.SystemSettings.GetFont(wx.SYS_DEFAULT_GUI_FONT)
self.Bind(wx.EVT_LEFT_DCLICK, self.removeItem)
self.Bind(wx.EVT_LIST_BEGIN_DRAG, self.startDrag)
@@ -679,14 +681,27 @@ class FittingView(d.Display):
slot = Slot.getValue(slotType)
slotMap[slot] = fit.getSlotsFree(slot) < 0
- font = wx.Font(self.GetClassDefaultAttributes().font)
-
for i, mod in enumerate(self.mods):
self.SetItemBackgroundColour(i, self.GetBackgroundColour())
# only consider changing color if we're dealing with a Module
if type(mod) is Module:
- if slotMap[mod.slot] or getattr(mod, 'restrictionOverridden', None): # Color too many modules as red
+ hasRestrictionOverriden = getattr(mod, 'restrictionOverridden', None)
+ # If module had broken fitting restrictions but now doesn't,
+ # ensure it is now valid, and remove restrictionOverridden
+ # variable. More in #1519
+ if not fit.ignoreRestrictions and hasRestrictionOverriden:
+ clean = False
+ if mod.fits(fit, False):
+ if not mod.hardpoint:
+ clean = True
+ elif fit.getHardpointsFree(mod.hardpoint) >= 0:
+ clean = True
+ if clean:
+ del mod.restrictionOverridden
+ hasRestrictionOverriden = not hasRestrictionOverriden
+
+ if slotMap[mod.slot] or hasRestrictionOverriden: # Color too many modules as red
self.SetItemBackgroundColour(i, wx.Colour(204, 51, 51))
elif sFit.serviceFittingOptions["colorFitBySlot"]: # Color by slot it enabled
self.SetItemBackgroundColour(i, self.slotColour(mod.slot))
@@ -695,11 +710,11 @@ class FittingView(d.Display):
if isinstance(mod, Rack) and \
sFit.serviceFittingOptions["rackSlots"] and \
sFit.serviceFittingOptions["rackLabels"]:
- font.SetWeight(wx.FONTWEIGHT_BOLD)
- self.SetItemFont(i, font)
+ self.font.SetWeight(wx.FONTWEIGHT_BOLD)
+ self.SetItemFont(i, self.font)
else:
- font.SetWeight(wx.FONTWEIGHT_NORMAL)
- self.SetItemFont(i, font)
+ self.font.SetWeight(wx.FONTWEIGHT_NORMAL)
+ self.SetItemFont(i, self.font)
self.Thaw()
self.itemCount = self.GetItemCount()
@@ -726,13 +741,12 @@ class FittingView(d.Display):
# noinspection PyPropertyAccess
def MakeSnapshot(self, maxColumns=1337):
if self.FVsnapshot:
- del self.FVsnapshot
+ self.FVsnapshot = None
tbmp = wx.Bitmap(16, 16)
tdc = wx.MemoryDC()
tdc.SelectObject(tbmp)
- font = wx.SystemSettings.GetFont(wx.SYS_DEFAULT_GUI_FONT)
- tdc.SetFont(font)
+ tdc.SetFont(self.font)
columnsWidths = []
for i in range(len(self.DEFAULT_COLS)):
@@ -828,7 +842,7 @@ class FittingView(d.Display):
mdc.SetBackground(wx.Brush(wx.SystemSettings.GetColour(wx.SYS_COLOUR_WINDOW)))
mdc.Clear()
- mdc.SetFont(font)
+ mdc.SetFont(self.font)
mdc.SetTextForeground(wx.SystemSettings.GetColour(wx.SYS_COLOUR_WINDOWTEXT))
cx = padding
diff --git a/gui/chrome_tabs.py b/gui/chrome_tabs.py
index 10354b9be..521ac6168 100644
--- a/gui/chrome_tabs.py
+++ b/gui/chrome_tabs.py
@@ -20,6 +20,7 @@ from gui.bitmap_loader import BitmapLoader
from gui.utils import draw
from gui.utils import color as color_utils
from service.fit import Fit
+from gui.utils import fonts
_PageChanging, EVT_NOTEBOOK_PAGE_CHANGING = wx.lib.newevent.NewEvent()
_PageChanged, EVT_NOTEBOOK_PAGE_CHANGED = wx.lib.newevent.NewEvent()
@@ -357,7 +358,7 @@ class _TabRenderer:
self.tab_bitmap = None
self.tab_back_bitmap = None
self.padding = 4
- self.font = wx.Font(10, wx.SWISS, wx.NORMAL, wx.NORMAL, False)
+ self.font = wx.Font(fonts.NORMAL, wx.FONTFAMILY_SWISS, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, False)
self.tab_img = img
self.position = (0, 0) # Not used internally for rendering - helper for tab container
@@ -1322,7 +1323,7 @@ class PFNotebookPagePreview(wx.Frame):
self.padding = 15
self.transp = 0
- hfont = wx.Font(10, wx.SWISS, wx.NORMAL, wx.NORMAL, False)
+ hfont = wx.Font(fonts.NORMAL, wx.FONTFAMILY_SWISS, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, False)
self.SetFont(hfont)
tx, ty = self.GetTextExtent(self.title)
@@ -1384,7 +1385,7 @@ class PFNotebookPagePreview(wx.Frame):
mdc.SetBackground(wx.Brush(color))
mdc.Clear()
- font = wx.Font(10, wx.SWISS, wx.NORMAL, wx.NORMAL, False)
+ font = wx.Font(11, wx.FONTFAMILY_SWISS, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, False)
mdc.SetFont(font)
x, y = mdc.GetTextExtent(self.title)
diff --git a/gui/esiFittings.py b/gui/esiFittings.py
index 99d8f33eb..af3da77a5 100644
--- a/gui/esiFittings.py
+++ b/gui/esiFittings.py
@@ -157,6 +157,19 @@ class EveFittings(wx.Frame):
self.statusbar.SetStatusText(msg)
+class ESIServerExceptionHandler(object):
+ def __init__(self, parentWindow, ex):
+ dlg = wx.MessageDialog(parentWindow,
+ "There was an issue starting up the localized server, try setting "
+ "Login Authentication Method to Manual by going to Preferences -> EVE SS0 -> "
+ "Login Authentication Method. If this doesn't fix the problem please file an "
+ "issue on Github.",
+ "Add Character Error",
+ wx.OK | wx.ICON_ERROR)
+ dlg.ShowModal()
+ pyfalog.error(ex)
+
+
class ESIExceptionHandler(object):
# todo: make this a generate excetpion handler for all calls
def __init__(self, parentWindow, ex):
@@ -325,10 +338,12 @@ class SsoCharacterMgmt(wx.Dialog):
self.lcCharacters.SetColumnWidth(0, wx.LIST_AUTOSIZE)
self.lcCharacters.SetColumnWidth(1, wx.LIST_AUTOSIZE)
- @staticmethod
- def addChar(event):
- sEsi = Esi.getInstance()
- sEsi.login()
+ def addChar(self, event):
+ try:
+ sEsi = Esi.getInstance()
+ sEsi.login()
+ except Exception as ex:
+ ESIServerExceptionHandler(self, ex)
def delChar(self, event):
item = self.lcCharacters.GetFirstSelected()
diff --git a/gui/mainFrame.py b/gui/mainFrame.py
index 1ecfd8cd2..4b7366e4a 100644
--- a/gui/mainFrame.py
+++ b/gui/mainFrame.py
@@ -34,7 +34,8 @@ from codecs import open
import config
-from eos.config import gamedata_version
+from eos.config import gamedata_version, gamedata_date
+import datetime
import gui.aboutData
from gui.chrome_tabs import ChromeNotebook
@@ -369,7 +370,8 @@ class MainFrame(wx.Frame):
def ShowAboutBox(self, evt):
info = wx.adv.AboutDialogInfo()
info.Name = "pyfa"
- info.Version = config.getVersion() # gui.aboutData.versionString
+ time = datetime.datetime.fromtimestamp(int(gamedata_date)).strftime('%Y-%m-%d %H:%M:%S')
+ info.Version = config.getVersion() + '\nEVE Data Version: {} ({})'.format(gamedata_version, time) # gui.aboutData.versionString
#
# try:
# import matplotlib
diff --git a/gui/shipBrowser.py b/gui/shipBrowser.py
index 2b12edd8c..afa9d6b71 100644
--- a/gui/shipBrowser.py
+++ b/gui/shipBrowser.py
@@ -189,7 +189,7 @@ class ShipBrowser(wx.Panel):
"amarr", "caldari", "gallente", "minmatar",
"sisters", "ore",
"serpentis", "angel", "blood", "sansha", "guristas", "mordu",
- "jove", "upwell", None
+ "jove", "upwell", "triglavian", None
]
def raceNameKey(self, ship):
diff --git a/gui/utils/exportHtml.py b/gui/utils/exportHtml.py
index 0d5456dd0..796e3aa4c 100644
--- a/gui/utils/exportHtml.py
+++ b/gui/utils/exportHtml.py
@@ -90,7 +90,7 @@ class exportHtmlThread(threading.Thread):