@@ -5,7 +5,7 @@
|
||||
# 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 Exotic Plasma Charge (5 of 6)
|
||||
# Charges from group: Advanced Charge Bottle (5 of 6)
|
||||
# Charges from group: Advanced Pulse Laser Crystal (8 of 8)
|
||||
# Charges from group: Advanced Railgun Charge (8 of 8)
|
||||
# Charges from group: Projectile Ammo (128 of 128)
|
||||
|
||||
10
eos/effects/armorwarfarearmorhpreplacer.py
Normal file
10
eos/effects/armorwarfarearmorhpreplacer.py
Normal file
@@ -0,0 +1,10 @@
|
||||
# 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"))
|
||||
21
eos/effects/citadelrigbonus.py
Normal file
21
eos/effects/citadelrigbonus.py
Normal file
@@ -0,0 +1,21 @@
|
||||
# Not used by any item
|
||||
type = "passive"
|
||||
runTime = "early"
|
||||
|
||||
|
||||
def handler(fit, src, context):
|
||||
|
||||
for attr in [
|
||||
"structureRigDoomsdayDamageLossTargetBonus",
|
||||
"structureRigScanResBonus",
|
||||
"structureRigPDRangeBonus",
|
||||
"structureRigPDCapUseBonus",
|
||||
"structureRigMissileExploVeloBonus",
|
||||
"structureRigMissileVelocityBonus",
|
||||
"structureRigEwarOptimalBonus",
|
||||
"structureRigEwarFalloffBonus",
|
||||
"structureRigEwarCapUseBonus",
|
||||
"structureRigMissileExplosionRadiusBonus"
|
||||
]:
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Jury Rigging"),
|
||||
attr, src.getModifiedItemAttr("structureRoleBonus"))
|
||||
9
eos/effects/decreasetargetspeed.py
Normal file
9
eos/effects/decreasetargetspeed.py
Normal file
@@ -0,0 +1,9 @@
|
||||
# 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)
|
||||
@@ -1,7 +1,7 @@
|
||||
# disintegratorWeaponDamageMultiply
|
||||
#
|
||||
# Used by:
|
||||
# Modules from group: Entropic Radiation Sink (3 of 3)
|
||||
# Modules from group: Entropic Suppressor (3 of 3)
|
||||
type = "passive"
|
||||
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# disintegratorWeaponSpeedMultiply
|
||||
#
|
||||
# Used by:
|
||||
# Modules from group: Entropic Radiation Sink (3 of 3)
|
||||
# Modules from group: Entropic Suppressor (3 of 3)
|
||||
type = "passive"
|
||||
|
||||
|
||||
|
||||
7
eos/effects/dronedamagebonusrequringdrones.py
Normal file
7
eos/effects/dronedamagebonusrequringdrones.py
Normal file
@@ -0,0 +1,7 @@
|
||||
# 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)
|
||||
9
eos/effects/elitebonuscommanddestroyerinfohidden1.py
Normal file
9
eos/effects/elitebonuscommanddestroyerinfohidden1.py
Normal file
@@ -0,0 +1,9 @@
|
||||
# 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")
|
||||
7
eos/effects/elitebonuscommanddestroyermwdsigradius3.py
Normal file
7
eos/effects/elitebonuscommanddestroyermwdsigradius3.py
Normal file
@@ -0,0 +1,7 @@
|
||||
# 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")
|
||||
7
eos/effects/elitebonuscommandshipinformationhiddencs3.py
Normal file
7
eos/effects/elitebonuscommandshipinformationhiddencs3.py
Normal file
@@ -0,0 +1,7 @@
|
||||
# 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")
|
||||
6
eos/effects/elitebonusgunshipdronecapacity2.py
Normal file
6
eos/effects/elitebonusgunshipdronecapacity2.py
Normal file
@@ -0,0 +1,6 @@
|
||||
# Not used by any item
|
||||
type = "passive"
|
||||
|
||||
|
||||
def handler(fit, ship, context):
|
||||
fit.ship.increaseItemAttr("droneCapacity", ship.getModifiedItemAttr("eliteBonusGunship2"), skill="Assault Frigates")
|
||||
7
eos/effects/elitebonusgunshipdronetracking2.py
Normal file
7
eos/effects/elitebonusgunshipdronetracking2.py
Normal file
@@ -0,0 +1,7 @@
|
||||
# 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")
|
||||
8
eos/effects/elitebonusgunshipprojectiledamage2.py
Normal file
8
eos/effects/elitebonusgunshipprojectiledamage2.py
Normal file
@@ -0,0 +1,8 @@
|
||||
# Not used by any item
|
||||
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")
|
||||
7
eos/effects/elitebonusgunshipprojectileoptimal1.py
Normal file
7
eos/effects/elitebonusgunshipprojectileoptimal1.py
Normal file
@@ -0,0 +1,7 @@
|
||||
# Not used by any item
|
||||
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")
|
||||
12
eos/effects/energydestabilizationnew.py
Normal file
12
eos/effects/energydestabilizationnew.py
Normal file
@@ -0,0 +1,12 @@
|
||||
# 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)
|
||||
9
eos/effects/energytransfer.py
Normal file
9
eos/effects/energytransfer.py
Normal file
@@ -0,0 +1,9 @@
|
||||
# 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)
|
||||
8
eos/effects/ewtargetpaint.py
Normal file
8
eos/effects/ewtargetpaint.py
Normal file
@@ -0,0 +1,8 @@
|
||||
# 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)
|
||||
16
eos/effects/fighterabilityattackm.py
Normal file
16
eos/effects/fighterabilityattackm.py
Normal file
@@ -0,0 +1,16 @@
|
||||
# Not used by any item
|
||||
"""
|
||||
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.
|
||||
"""
|
||||
# User-friendly name for the ability
|
||||
displayName = "Turret Attack"
|
||||
|
||||
# Attribute prefix that this ability targets
|
||||
prefix = "fighterAbilityAttackMissile"
|
||||
|
||||
type = "active"
|
||||
|
||||
|
||||
def handler(fit, src, context):
|
||||
pass
|
||||
26
eos/effects/fighterabilityecm.py
Normal file
26
eos/effects/fighterabilityecm.py
Normal file
@@ -0,0 +1,26 @@
|
||||
# Not used by any item
|
||||
"""
|
||||
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.
|
||||
"""
|
||||
from eos.modifiedAttributeDict import ModifiedAttributeDict
|
||||
|
||||
# User-friendly name for the ability
|
||||
displayName = "ECM"
|
||||
|
||||
prefix = "fighterAbilityECM"
|
||||
|
||||
type = "projected", "active"
|
||||
grouped = True
|
||||
|
||||
|
||||
def handler(fit, module, context, **kwargs):
|
||||
if "projected" not in context:
|
||||
return
|
||||
# jam formula: 1 - (1- (jammer str/ship str))^(# of jam mods with same str))
|
||||
strModifier = 1 - (module.getModifiedItemAttr("{}Strength{}".format(prefix, fit.scanType)) * module.amountActive) / fit.scanStrength
|
||||
|
||||
if 'effect' in kwargs:
|
||||
strModifier *= ModifiedAttributeDict.getResistance(fit, kwargs['effect'])
|
||||
|
||||
fit.ecmProjectedStr *= strModifier
|
||||
23
eos/effects/fighterabilityenergyneutralizer.py
Normal file
23
eos/effects/fighterabilityenergyneutralizer.py
Normal file
@@ -0,0 +1,23 @@
|
||||
# Not used by any item
|
||||
"""
|
||||
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.
|
||||
"""
|
||||
# User-friendly name for the ability
|
||||
from eos.modifiedAttributeDict import ModifiedAttributeDict
|
||||
|
||||
displayName = "Energy Neutralizer"
|
||||
prefix = "fighterAbilityEnergyNeutralizer"
|
||||
type = "active", "projected"
|
||||
grouped = True
|
||||
|
||||
|
||||
def handler(fit, src, context, **kwargs):
|
||||
if "projected" in context:
|
||||
amount = src.getModifiedItemAttr("{}Amount".format(prefix)) * src.amountActive
|
||||
time = src.getModifiedItemAttr("{}Duration".format(prefix))
|
||||
|
||||
if 'effect' in kwargs:
|
||||
amount *= ModifiedAttributeDict.getResistance(fit, kwargs['effect'])
|
||||
|
||||
fit.addDrain(src, time, amount, 0)
|
||||
37
eos/effects/fighterabilityevasivemaneuvers.py
Normal file
37
eos/effects/fighterabilityevasivemaneuvers.py
Normal file
@@ -0,0 +1,37 @@
|
||||
# Not used by any item
|
||||
"""
|
||||
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.
|
||||
"""
|
||||
# User-friendly name for the ability
|
||||
displayName = "Evasive Maneuvers"
|
||||
|
||||
prefix = "fighterAbilityEvasiveManeuvers"
|
||||
|
||||
# Is ability applied to the fighter squad as a whole, or per fighter?
|
||||
grouped = True
|
||||
|
||||
type = "active"
|
||||
runTime = "late"
|
||||
|
||||
|
||||
def handler(fit, container, context):
|
||||
container.boostItemAttr("maxVelocity",
|
||||
container.getModifiedItemAttr("fighterAbilityEvasiveManeuversSpeedBonus"))
|
||||
container.boostItemAttr("signatureRadius",
|
||||
container.getModifiedItemAttr("fighterAbilityEvasiveManeuversSignatureRadiusBonus"),
|
||||
stackingPenalties=True)
|
||||
|
||||
# These may not have stacking penalties, but there's nothing else that affects the attributes yet to check.
|
||||
container.multiplyItemAttr("shieldEmDamageResonance",
|
||||
container.getModifiedItemAttr("fighterAbilityEvasiveManeuversEmResonance"),
|
||||
stackingPenalties=True)
|
||||
container.multiplyItemAttr("shieldThermalDamageResonance",
|
||||
container.getModifiedItemAttr("fighterAbilityEvasiveManeuversThermResonance"),
|
||||
stackingPenalties=True)
|
||||
container.multiplyItemAttr("shieldKineticDamageResonance",
|
||||
container.getModifiedItemAttr("fighterAbilityEvasiveManeuversKinResonance"),
|
||||
stackingPenalties=True)
|
||||
container.multiplyItemAttr("shieldExplosiveDamageResonance",
|
||||
container.getModifiedItemAttr("fighterAbilityEvasiveManeuversExpResonance"),
|
||||
stackingPenalties=True)
|
||||
19
eos/effects/fighterabilitylaunchbomb.py
Normal file
19
eos/effects/fighterabilitylaunchbomb.py
Normal file
@@ -0,0 +1,19 @@
|
||||
# Not used by any item
|
||||
"""
|
||||
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.
|
||||
"""
|
||||
# User-friendly name for the ability
|
||||
displayName = "Bomb"
|
||||
|
||||
# Attribute prefix that this ability targets
|
||||
prefix = "fighterAbilityLaunchBomb"
|
||||
|
||||
type = "active"
|
||||
|
||||
# This flag is required for effects that use charges in order to properly calculate reload time
|
||||
hasCharges = True
|
||||
|
||||
|
||||
def handler(fit, src, context):
|
||||
pass
|
||||
21
eos/effects/fighterabilitymicrowarpdrive.py
Normal file
21
eos/effects/fighterabilitymicrowarpdrive.py
Normal file
@@ -0,0 +1,21 @@
|
||||
# Not used by any item
|
||||
"""
|
||||
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.
|
||||
"""
|
||||
# User-friendly name for the ability
|
||||
displayName = "Microwarpdrive"
|
||||
|
||||
# Is ability applied to the fighter squad as a whole, or per fighter?
|
||||
grouped = True
|
||||
|
||||
type = "active"
|
||||
runTime = "late"
|
||||
|
||||
|
||||
def handler(fit, module, context):
|
||||
module.boostItemAttr("maxVelocity", module.getModifiedItemAttr("fighterAbilityMicroWarpDriveSpeedBonus"),
|
||||
stackingPenalties=True)
|
||||
module.boostItemAttr("signatureRadius",
|
||||
module.getModifiedItemAttr("fighterAbilityMicroWarpDriveSignatureRadiusBonus"),
|
||||
stackingPenalties=True)
|
||||
19
eos/effects/fighterabilitymissiles.py
Normal file
19
eos/effects/fighterabilitymissiles.py
Normal file
@@ -0,0 +1,19 @@
|
||||
# Not used by any item
|
||||
"""
|
||||
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.
|
||||
"""
|
||||
# User-friendly name for the ability
|
||||
displayName = "Missile Attack"
|
||||
|
||||
# Attribute prefix that this ability targets
|
||||
prefix = "fighterAbilityMissiles"
|
||||
|
||||
type = "active"
|
||||
|
||||
# This flag is required for effects that use charges in order to properly calculate reload time
|
||||
hasCharges = True
|
||||
|
||||
|
||||
def handler(fit, src, context):
|
||||
pass
|
||||
18
eos/effects/fighterabilitystasiswebifier.py
Normal file
18
eos/effects/fighterabilitystasiswebifier.py
Normal file
@@ -0,0 +1,18 @@
|
||||
# Not used by any item
|
||||
"""
|
||||
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.
|
||||
"""
|
||||
|
||||
# User-friendly name for the ability
|
||||
displayName = "Stasis Webifier"
|
||||
prefix = "fighterAbilityStasisWebifier"
|
||||
type = "active", "projected"
|
||||
grouped = True
|
||||
|
||||
|
||||
def handler(fit, src, context):
|
||||
if "projected" not in context:
|
||||
return
|
||||
fit.ship.boostItemAttr("maxVelocity", src.getModifiedItemAttr("{}SpeedPenalty".format(prefix)) * src.amountActive,
|
||||
stackingPenalties=True)
|
||||
17
eos/effects/fighterabilitywarpdisruption.py
Normal file
17
eos/effects/fighterabilitywarpdisruption.py
Normal file
@@ -0,0 +1,17 @@
|
||||
# Not used by any item
|
||||
"""
|
||||
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.
|
||||
"""
|
||||
|
||||
# User-friendly name for the ability
|
||||
displayName = "Warp Disruption"
|
||||
prefix = "fighterAbilityWarpDisruption"
|
||||
type = "active", "projected"
|
||||
grouped = True
|
||||
|
||||
|
||||
def handler(fit, src, context):
|
||||
if "projected" not in context:
|
||||
return
|
||||
fit.ship.increaseItemAttr("warpScrambleStatus", src.getModifiedItemAttr("{}PointStrength".format(prefix)) * src.amountActive)
|
||||
11
eos/effects/flagshipmultirelayeffect.py
Normal file
11
eos/effects/flagshipmultirelayeffect.py
Normal file
@@ -0,0 +1,11 @@
|
||||
# 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)
|
||||
7
eos/effects/iceharvestercapacitorneedmultiplier.py
Normal file
7
eos/effects/iceharvestercapacitorneedmultiplier.py
Normal file
@@ -0,0 +1,7 @@
|
||||
# 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"))
|
||||
8
eos/effects/informationwarfaremaxtargetrangebonus.py
Normal file
8
eos/effects/informationwarfaremaxtargetrangebonus.py
Normal file
@@ -0,0 +1,8 @@
|
||||
# Not used by any item
|
||||
type = "gang"
|
||||
gangBoost = "maxTargetRange"
|
||||
gangBonus = "maxTargetRangeBonus"
|
||||
|
||||
|
||||
def handler(fit, container, context):
|
||||
fit.ship.boostItemAttr(gangBoost, container.getModifiedItemAttr(gangBonus))
|
||||
8
eos/effects/informationwarfaremindlinkhidden.py
Normal file
8
eos/effects/informationwarfaremindlinkhidden.py
Normal file
@@ -0,0 +1,8 @@
|
||||
# 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"))
|
||||
6
eos/effects/lightningweapon.py
Normal file
6
eos/effects/lightningweapon.py
Normal file
@@ -0,0 +1,6 @@
|
||||
# Not used by any item
|
||||
type = 'active'
|
||||
|
||||
|
||||
def handler(fit, module, context):
|
||||
pass
|
||||
52
eos/effects/maraudermodeeffect26.py
Normal file
52
eos/effects/maraudermodeeffect26.py
Normal file
@@ -0,0 +1,52 @@
|
||||
# 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"))
|
||||
6
eos/effects/massaddpassive.py
Normal file
6
eos/effects/massaddpassive.py
Normal file
@@ -0,0 +1,6 @@
|
||||
# Not used by any item
|
||||
type = "passive"
|
||||
|
||||
|
||||
def handler(fit, module, context):
|
||||
fit.ship.increaseItemAttr("mass", module.getModifiedItemAttr("mass") or 0)
|
||||
6
eos/effects/maxvelocityaddpassive.py
Normal file
6
eos/effects/maxvelocityaddpassive.py
Normal file
@@ -0,0 +1,6 @@
|
||||
# Not used by any item
|
||||
type = "passive"
|
||||
|
||||
|
||||
def handler(fit, module, context):
|
||||
fit.ship.increaseItemAttr("maxVelocity", module.getModifiedItemAttr("maxVelocity"))
|
||||
7
eos/effects/miningdirectorbonuscommandbonuseffective.py
Normal file
7
eos/effects/miningdirectorbonuscommandbonuseffective.py
Normal file
@@ -0,0 +1,7 @@
|
||||
# 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"))
|
||||
8
eos/effects/modifyarmorresonancepassivepreassignment.py
Normal file
8
eos/effects/modifyarmorresonancepassivepreassignment.py
Normal file
@@ -0,0 +1,8 @@
|
||||
# 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)))
|
||||
8
eos/effects/modifyshieldresonancepassivepreassignment.py
Normal file
8
eos/effects/modifyshieldresonancepassivepreassignment.py
Normal file
@@ -0,0 +1,8 @@
|
||||
# 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)))
|
||||
7
eos/effects/modifyshipagilitypassivepreassignment.py
Normal file
7
eos/effects/modifyshipagilitypassivepreassignment.py
Normal file
@@ -0,0 +1,7 @@
|
||||
# Not used by any item
|
||||
runTime = "early"
|
||||
type = "passive"
|
||||
|
||||
|
||||
def handler(fit, module, context):
|
||||
fit.ship.preAssignItemAttr("agility", module.getModifiedItemAttr("agility"))
|
||||
10
eos/effects/noscpuneedbonuseffect.py
Normal file
10
eos/effects/noscpuneedbonuseffect.py
Normal file
@@ -0,0 +1,10 @@
|
||||
# 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"))
|
||||
8
eos/effects/orecapitalshipshieldtransferfalloff.py
Normal file
8
eos/effects/orecapitalshipshieldtransferfalloff.py
Normal file
@@ -0,0 +1,8 @@
|
||||
# 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")
|
||||
8
eos/effects/orecapitalshipshieldtransferrange.py
Normal file
8
eos/effects/orecapitalshipshieldtransferrange.py
Normal file
@@ -0,0 +1,8 @@
|
||||
# Not used by any item
|
||||
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")
|
||||
@@ -3,7 +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 (14 of 14)
|
||||
# Modules from group: Precursor Turret (14 of 14)
|
||||
# Modules from group: Projectile Weapon (99 of 165)
|
||||
type = "overheat"
|
||||
|
||||
|
||||
6
eos/effects/pointdefense.py
Normal file
6
eos/effects/pointdefense.py
Normal file
@@ -0,0 +1,6 @@
|
||||
# Not used by any item
|
||||
type = 'active'
|
||||
|
||||
|
||||
def handler(fit, module, context):
|
||||
pass
|
||||
10
eos/effects/probelaunchercpupercentbonustacticaldestroyer.py
Normal file
10
eos/effects/probelaunchercpupercentbonustacticaldestroyer.py
Normal file
@@ -0,0 +1,10 @@
|
||||
# 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"))
|
||||
6
eos/effects/rechargerateaddpassive.py
Normal file
6
eos/effects/rechargerateaddpassive.py
Normal file
@@ -0,0 +1,6 @@
|
||||
# Not used by any item
|
||||
type = "passive"
|
||||
|
||||
|
||||
def handler(fit, module, context):
|
||||
fit.ship.increaseItemAttr("rechargeRate", module.getModifiedItemAttr("rechargeRate"))
|
||||
11
eos/effects/remotehullrepair.py
Normal file
11
eos/effects/remotehullrepair.py
Normal file
@@ -0,0 +1,11 @@
|
||||
# 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)
|
||||
7
eos/effects/rigdrawbackbonuseffect.py
Normal file
7
eos/effects/rigdrawbackbonuseffect.py
Normal file
@@ -0,0 +1,7 @@
|
||||
# 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)
|
||||
6
eos/effects/scanresolutionaddpassive.py
Normal file
6
eos/effects/scanresolutionaddpassive.py
Normal file
@@ -0,0 +1,6 @@
|
||||
# Not used by any item
|
||||
type = "passive"
|
||||
|
||||
|
||||
def handler(fit, module, context):
|
||||
fit.ship.increaseItemAttr("scanResolution", module.getModifiedItemAttr("scanResolution"))
|
||||
9
eos/effects/scanstrengthaddpassive.py
Normal file
9
eos/effects/scanstrengthaddpassive.py
Normal file
@@ -0,0 +1,9 @@
|
||||
# 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))
|
||||
11
eos/effects/scanstrengthbonuspercentactivate.py
Normal file
11
eos/effects/scanstrengthbonuspercentactivate.py
Normal file
@@ -0,0 +1,11 @@
|
||||
# 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
|
||||
)
|
||||
7
eos/effects/servicemodulefullpowerhitpointpostassign.py
Normal file
7
eos/effects/servicemodulefullpowerhitpointpostassign.py
Normal file
@@ -0,0 +1,7 @@
|
||||
# Not used by any item
|
||||
type = "passive"
|
||||
runTime = "early"
|
||||
|
||||
|
||||
def handler(fit, src, context):
|
||||
fit.ship.forceItemAttr("structureFullPowerStateHitpointMultiplier", src.getModifiedItemAttr("serviceModuleFullPowerStateHitpointMultiplier"))
|
||||
6
eos/effects/shieldrechargerateaddpassive.py
Normal file
6
eos/effects/shieldrechargerateaddpassive.py
Normal file
@@ -0,0 +1,6 @@
|
||||
# Not used by any item
|
||||
type = "passive"
|
||||
|
||||
|
||||
def handler(fit, module, context):
|
||||
fit.ship.increaseItemAttr("shieldRechargeRate", module.getModifiedItemAttr("shieldRechargeRate") or 0)
|
||||
9
eos/effects/shieldtransfer.py
Normal file
9
eos/effects/shieldtransfer.py
Normal file
@@ -0,0 +1,9 @@
|
||||
# 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)
|
||||
7
eos/effects/shipbonusenergyvampirerangead2.py
Normal file
7
eos/effects/shipbonusenergyvampirerangead2.py
Normal file
@@ -0,0 +1,7 @@
|
||||
# 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")
|
||||
@@ -0,0 +1,9 @@
|
||||
# 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")
|
||||
8
eos/effects/shipbonusorecapshipdronedmgbonus.py
Normal file
8
eos/effects/shipbonusorecapshipdronedmgbonus.py
Normal file
@@ -0,0 +1,8 @@
|
||||
# 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")
|
||||
@@ -0,0 +1,8 @@
|
||||
# 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")
|
||||
11
eos/effects/shipmodescanrespostdiv.py
Normal file
11
eos/effects/shipmodescanrespostdiv.py
Normal file
@@ -0,0 +1,11 @@
|
||||
# Not used by any item
|
||||
type = "passive"
|
||||
|
||||
|
||||
def handler(fit, module, context):
|
||||
fit.ship.multiplyItemAttr(
|
||||
"scanResolution",
|
||||
1 / module.getModifiedItemAttr("modeScanResPostDiv"),
|
||||
stackingPenalties=True,
|
||||
penaltyGroup="postDiv"
|
||||
)
|
||||
7
eos/effects/shipsettrackingbonusaf.py
Normal file
7
eos/effects/shipsettrackingbonusaf.py
Normal file
@@ -0,0 +1,7 @@
|
||||
# Not used by any item
|
||||
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")
|
||||
7
eos/effects/shipxlprojectiledamagerole.py
Normal file
7
eos/effects/shipxlprojectiledamagerole.py
Normal file
@@ -0,0 +1,7 @@
|
||||
# Not used by any item
|
||||
type = "passive"
|
||||
|
||||
|
||||
def handler(fit, ship, context):
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Projectile Turret"),
|
||||
"damageMultiplier", ship.getModifiedItemAttr("shipBonusRole7"))
|
||||
8
eos/effects/siegewarfareshieldcapacitybonusreplacer.py
Normal file
8
eos/effects/siegewarfareshieldcapacitybonusreplacer.py
Normal file
@@ -0,0 +1,8 @@
|
||||
# Not used by any item
|
||||
type = "gang"
|
||||
gangBoost = "shieldCapacity"
|
||||
gangBonus = "shieldCapacityBonus"
|
||||
|
||||
|
||||
def handler(fit, container, context):
|
||||
fit.ship.boostItemAttr(gangBoost, container.getModifiedItemAttr(gangBonus))
|
||||
7
eos/effects/signatureradiuspreassignment.py
Normal file
7
eos/effects/signatureradiuspreassignment.py
Normal file
@@ -0,0 +1,7 @@
|
||||
# Not used by any item
|
||||
type = "passive"
|
||||
runTime = "early"
|
||||
|
||||
|
||||
def handler(fit, module, context):
|
||||
fit.ship.preAssignItemAttr("signatureRadius", module.getModifiedItemAttr("signatureRadius"))
|
||||
8
eos/effects/skirmishwarfareagilitybonusreplacer.py
Normal file
8
eos/effects/skirmishwarfareagilitybonusreplacer.py
Normal file
@@ -0,0 +1,8 @@
|
||||
# Not used by any item
|
||||
type = "gang"
|
||||
gangBoost = "agility"
|
||||
gangBonus = "agilityBonus"
|
||||
|
||||
|
||||
def handler(fit, container, context):
|
||||
fit.ship.boostItemAttr(gangBoost, container.getModifiedItemAttr(gangBonus))
|
||||
11
eos/effects/structureaoerofrolebonus.py
Normal file
11
eos/effects/structureaoerofrolebonus.py
Normal file
@@ -0,0 +1,11 @@
|
||||
# Not used by any item
|
||||
type = "passive"
|
||||
|
||||
|
||||
def handler(fit, ship, context):
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Structure Guided Bomb Launcher",
|
||||
"speed", ship.getModifiedItemAttr("structureAoERoFRoleBonus"))
|
||||
for attr in ["duration", "durationTargetIlluminationBurstProjector", "durationWeaponDisruptionBurstProjector",
|
||||
"durationECMJammerBurstProjector", "durationSensorDampeningBurstProjector", "capacitorNeed"]:
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Structure Burst Projector",
|
||||
attr, ship.getModifiedItemAttr("structureAoERoFRoleBonus"))
|
||||
7
eos/effects/structurearmorhpmultiply.py
Normal file
7
eos/effects/structurearmorhpmultiply.py
Normal file
@@ -0,0 +1,7 @@
|
||||
# Not used by any item
|
||||
type = "passive"
|
||||
runTime = "early"
|
||||
|
||||
|
||||
def handler(fit, src, context):
|
||||
fit.ship.multiplyItemAttr("hiddenArmorHPMultiplier", src.getModifiedItemAttr("armorHPMultiplier"))
|
||||
17
eos/effects/structureballisticcontrolsystem.py
Normal file
17
eos/effects/structureballisticcontrolsystem.py
Normal file
@@ -0,0 +1,17 @@
|
||||
# Not used by any item
|
||||
type = "passive"
|
||||
|
||||
|
||||
def handler(fit, module, context):
|
||||
missileGroups = ("Structure Anti-Capital Missile", "Structure Anti-Subcapital Missile")
|
||||
|
||||
for dmgType in ("em", "kinetic", "explosive", "thermal"):
|
||||
fit.modules.filteredChargeMultiply(lambda mod: mod.charge.group.name in missileGroups,
|
||||
"%sDamage" % dmgType,
|
||||
module.getModifiedItemAttr("missileDamageMultiplierBonus"),
|
||||
stackingPenalties=True)
|
||||
|
||||
launcherGroups = ("Structure XL Missile Launcher", "Structure Multirole Missile Launcher")
|
||||
fit.modules.filteredItemMultiply(lambda mod: mod.item.group.name in launcherGroups,
|
||||
"speed", module.getModifiedItemAttr("speedMultiplier"),
|
||||
stackingPenalties=True)
|
||||
6
eos/effects/structurecapacitorcapacitybonus.py
Normal file
6
eos/effects/structurecapacitorcapacitybonus.py
Normal file
@@ -0,0 +1,6 @@
|
||||
# Not used by any item
|
||||
type = "passive"
|
||||
|
||||
|
||||
def handler(fit, ship, context):
|
||||
fit.ship.increaseItemAttr("capacitorCapacity", ship.getModifiedItemAttr("capacitorBonus"))
|
||||
13
eos/effects/structureenergyneutralizerfalloff.py
Normal file
13
eos/effects/structureenergyneutralizerfalloff.py
Normal file
@@ -0,0 +1,13 @@
|
||||
# Not used by any item
|
||||
from eos.saveddata.module import State
|
||||
|
||||
type = "active", "projected"
|
||||
|
||||
|
||||
def handler(fit, container, context):
|
||||
amount = 0
|
||||
if "projected" in context:
|
||||
if (hasattr(container, "state") and container.state >= State.ACTIVE) or hasattr(container, "amountActive"):
|
||||
amount = container.getModifiedItemAttr("energyNeutralizerAmount")
|
||||
time = container.getModifiedItemAttr("duration")
|
||||
fit.addDrain(container, time, amount, 0)
|
||||
7
eos/effects/structurefullpowerstatehitpointmodifier.py
Normal file
7
eos/effects/structurefullpowerstatehitpointmodifier.py
Normal file
@@ -0,0 +1,7 @@
|
||||
# Not used by any item
|
||||
type = "passive"
|
||||
|
||||
|
||||
def handler(fit, src, context):
|
||||
fit.ship.multiplyItemAttr("shieldCapacity", src.getModifiedItemAttr("structureFullPowerStateHitpointMultiplier") or 0)
|
||||
fit.ship.multiplyItemAttr("armorHP", src.getModifiedItemAttr("structureFullPowerStateHitpointMultiplier") or 0)
|
||||
6
eos/effects/structurehiddenarmorhpmultiplier.py
Normal file
6
eos/effects/structurehiddenarmorhpmultiplier.py
Normal file
@@ -0,0 +1,6 @@
|
||||
# Not used by any item
|
||||
type = "passive"
|
||||
|
||||
|
||||
def handler(fit, src, context):
|
||||
fit.ship.multiplyItemAttr("armorHP", src.getModifiedItemAttr("hiddenArmorHPMultiplier") or 0)
|
||||
10
eos/effects/structurehiddenmissiledamagemultiplier.py
Normal file
10
eos/effects/structurehiddenmissiledamagemultiplier.py
Normal file
@@ -0,0 +1,10 @@
|
||||
# Not used by any item
|
||||
type = "passive"
|
||||
|
||||
|
||||
def handler(fit, src, context):
|
||||
groups = ("Structure Anti-Subcapital Missile", "Structure Anti-Capital Missile")
|
||||
for dmgType in ("em", "kinetic", "explosive", "thermal"):
|
||||
fit.modules.filteredChargeMultiply(lambda mod: mod.item.group.name in groups,
|
||||
"%sDamage" % dmgType,
|
||||
src.getModifiedItemAttr("hiddenMissileDamageMultiplier"))
|
||||
15
eos/effects/structuremissileguidanceenhancer.py
Normal file
15
eos/effects/structuremissileguidanceenhancer.py
Normal file
@@ -0,0 +1,15 @@
|
||||
# Not used by any item
|
||||
type = "passive"
|
||||
|
||||
|
||||
def handler(fit, container, context):
|
||||
missileGroups = ("Structure Anti-Capital Missile", "Structure Anti-Subcapital Missile")
|
||||
for srcAttr, tgtAttr in (
|
||||
("aoeCloudSizeBonus", "aoeCloudSize"),
|
||||
("aoeVelocityBonus", "aoeVelocity"),
|
||||
("missileVelocityBonus", "maxVelocity"),
|
||||
("explosionDelayBonus", "explosionDelay"),
|
||||
):
|
||||
fit.modules.filteredChargeBoost(lambda mod: mod.charge.group.name in missileGroups,
|
||||
tgtAttr, container.getModifiedItemAttr(srcAttr),
|
||||
stackingPenalties=True)
|
||||
6
eos/effects/structuremodifypowerrechargerate.py
Normal file
6
eos/effects/structuremodifypowerrechargerate.py
Normal file
@@ -0,0 +1,6 @@
|
||||
# Not used by any item
|
||||
type = "passive"
|
||||
|
||||
|
||||
def handler(fit, module, context):
|
||||
fit.ship.multiplyItemAttr("rechargeRate", module.getModifiedItemAttr("capacitorRechargeRateMultiplier"))
|
||||
10
eos/effects/structuremoduleeffectecm.py
Normal file
10
eos/effects/structuremoduleeffectecm.py
Normal file
@@ -0,0 +1,10 @@
|
||||
# Not used by any item
|
||||
type = "projected", "active"
|
||||
|
||||
|
||||
def handler(fit, module, context):
|
||||
if "projected" in context:
|
||||
# jam formula: 1 - (1- (jammer str/ship str))^(# of jam mods with same str))
|
||||
strModifier = 1 - module.getModifiedItemAttr("scan{0}StrengthBonus".format(fit.scanType)) / fit.scanStrength
|
||||
|
||||
fit.ecmProjectedStr *= strModifier
|
||||
14
eos/effects/structuremoduleeffectremotesensordampener.py
Normal file
14
eos/effects/structuremoduleeffectremotesensordampener.py
Normal file
@@ -0,0 +1,14 @@
|
||||
# Not used by any item
|
||||
|
||||
type = "projected", "active"
|
||||
|
||||
|
||||
def handler(fit, module, context, *args, **kwargs):
|
||||
if "projected" not in context:
|
||||
return
|
||||
|
||||
fit.ship.boostItemAttr("maxTargetRange", module.getModifiedItemAttr("maxTargetRangeBonus"),
|
||||
stackingPenalties=True, *args, **kwargs)
|
||||
|
||||
fit.ship.boostItemAttr("scanResolution", module.getModifiedItemAttr("scanResolutionBonus"),
|
||||
stackingPenalties=True, *args, **kwargs)
|
||||
9
eos/effects/structuremoduleeffectstasiswebifier.py
Normal file
9
eos/effects/structuremoduleeffectstasiswebifier.py
Normal file
@@ -0,0 +1,9 @@
|
||||
# Not used by any item
|
||||
type = "active", "projected"
|
||||
|
||||
|
||||
def handler(fit, module, context, *args, **kwargs):
|
||||
if "projected" not in context:
|
||||
return
|
||||
fit.ship.boostItemAttr("maxVelocity", module.getModifiedItemAttr("speedFactor"),
|
||||
stackingPenalties=True, *args, **kwargs)
|
||||
8
eos/effects/structuremoduleeffecttargetpainter.py
Normal file
8
eos/effects/structuremoduleeffecttargetpainter.py
Normal file
@@ -0,0 +1,8 @@
|
||||
# Not used by any item
|
||||
type = "projected", "active"
|
||||
|
||||
|
||||
def handler(fit, container, context, *args, **kwargs):
|
||||
if "projected" in context:
|
||||
fit.ship.boostItemAttr("signatureRadius", container.getModifiedItemAttr("signatureRadiusBonus"),
|
||||
stackingPenalties=True, *args, **kwargs)
|
||||
26
eos/effects/structuremoduleeffectweapondisruption.py
Normal file
26
eos/effects/structuremoduleeffectweapondisruption.py
Normal file
@@ -0,0 +1,26 @@
|
||||
# Not used by any item
|
||||
|
||||
type = "active", "projected"
|
||||
|
||||
|
||||
def handler(fit, module, context, *args, **kwargs):
|
||||
if "projected" in context:
|
||||
for srcAttr, tgtAttr in (
|
||||
("aoeCloudSizeBonus", "aoeCloudSize"),
|
||||
("aoeVelocityBonus", "aoeVelocity"),
|
||||
("missileVelocityBonus", "maxVelocity"),
|
||||
("explosionDelayBonus", "explosionDelay"),
|
||||
):
|
||||
fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"),
|
||||
tgtAttr, module.getModifiedItemAttr(srcAttr),
|
||||
stackingPenalties=True, *args, **kwargs)
|
||||
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Gunnery"),
|
||||
"trackingSpeed", module.getModifiedItemAttr("trackingSpeedBonus"),
|
||||
stackingPenalties=True, *args, **kwargs)
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Gunnery"),
|
||||
"maxRange", module.getModifiedItemAttr("maxRangeBonus"),
|
||||
stackingPenalties=True, *args, **kwargs)
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Gunnery"),
|
||||
"falloff", module.getModifiedItemAttr("falloffBonus"),
|
||||
stackingPenalties=True, *args, **kwargs)
|
||||
@@ -0,0 +1,10 @@
|
||||
# Not used by any item
|
||||
type = "passive"
|
||||
|
||||
|
||||
def handler(fit, src, context):
|
||||
groups = ("Structure Anti-Subcapital Missile", "Structure Anti-Capital Missile")
|
||||
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.charge.group.name in groups,
|
||||
"aoeVelocity", src.getModifiedItemAttr("structureRigMissileExploVeloBonus"),
|
||||
stackingPenalties=True)
|
||||
8
eos/effects/structurerigdoomsdaydamageloss.py
Normal file
8
eos/effects/structurerigdoomsdaydamageloss.py
Normal file
@@ -0,0 +1,8 @@
|
||||
# Not used by any item
|
||||
type = "passive"
|
||||
|
||||
|
||||
def handler(fit, src, context):
|
||||
fit.modules.filteredItemIncrease(lambda mod: mod.item.group.name == "Structure Doomsday Weapon",
|
||||
"lightningWeaponDamageLossTarget",
|
||||
src.getModifiedItemAttr("structureRigDoomsdayDamageLossTargetBonus"))
|
||||
8
eos/effects/structurerigdoomsdaytargetamountbonus.py
Normal file
8
eos/effects/structurerigdoomsdaytargetamountbonus.py
Normal file
@@ -0,0 +1,8 @@
|
||||
# Not used by any item
|
||||
type = "passive"
|
||||
|
||||
|
||||
def handler(fit, src, context):
|
||||
fit.modules.filteredItemIncrease(lambda mod: mod.item.group.name == "Structure Doomsday Weapon",
|
||||
"lightningWeaponTargetAmount",
|
||||
src.getModifiedItemAttr("structureRigDoomsdayTargetAmountBonus"))
|
||||
9
eos/effects/structurerigewcapacitorneed.py
Normal file
9
eos/effects/structurerigewcapacitorneed.py
Normal file
@@ -0,0 +1,9 @@
|
||||
# Not used by any item
|
||||
type = "passive"
|
||||
|
||||
|
||||
def handler(fit, src, context):
|
||||
groups = ("Structure ECM Battery", "Structure Disruption Battery")
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name in groups,
|
||||
"capacitorNeed", src.getModifiedItemAttr("structureRigEwarCapUseBonus"),
|
||||
stackingPenalties=True)
|
||||
18
eos/effects/structurerigewmaxrangefalloff.py
Normal file
18
eos/effects/structurerigewmaxrangefalloff.py
Normal file
@@ -0,0 +1,18 @@
|
||||
# Not used by any item
|
||||
type = "passive"
|
||||
|
||||
|
||||
def handler(fit, src, context):
|
||||
groups = ("Structure ECM Battery", "Structure Disruption Battery")
|
||||
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name in groups,
|
||||
"falloff", src.getModifiedItemAttr("structureRigEwarFalloffBonus"),
|
||||
stackingPenalties=True)
|
||||
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name in groups,
|
||||
"maxRange", src.getModifiedItemAttr("structureRigEwarOptimalBonus"),
|
||||
stackingPenalties=True)
|
||||
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name in groups,
|
||||
"falloffEffectiveness", src.getModifiedItemAttr("structureRigEwarFalloffBonus"),
|
||||
stackingPenalties=True)
|
||||
@@ -0,0 +1,8 @@
|
||||
# Not used by any item
|
||||
type = "passive"
|
||||
|
||||
|
||||
def handler(fit, src, context):
|
||||
fit.modules.filteredChargeBoost(lambda mod: mod.charge.group.name == "Structure Guided Bomb",
|
||||
"aoeCloudSize", src.getModifiedItemAttr("structureRigMissileExplosionRadiusBonus"),
|
||||
stackingPenalties=True)
|
||||
6
eos/effects/structurerigmaxtargetrange.py
Normal file
6
eos/effects/structurerigmaxtargetrange.py
Normal file
@@ -0,0 +1,6 @@
|
||||
# Not used by any item
|
||||
type = "passive"
|
||||
|
||||
|
||||
def handler(fit, module, context):
|
||||
fit.ship.boostItemAttr("maxTargetRange", module.getModifiedItemAttr("structureRigMaxTargetRangeBonus"))
|
||||
6
eos/effects/structurerigmaxtargets.py
Normal file
6
eos/effects/structurerigmaxtargets.py
Normal file
@@ -0,0 +1,6 @@
|
||||
# Not used by any item
|
||||
type = "passive"
|
||||
|
||||
|
||||
def handler(fit, src, context):
|
||||
fit.extraAttributes.increase("maxTargetsLockedFromSkills", src.getModifiedItemAttr("structureRigMaxTargetBonus"))
|
||||
8
eos/effects/structurerigneutralizercapacitorneed.py
Normal file
8
eos/effects/structurerigneutralizercapacitorneed.py
Normal file
@@ -0,0 +1,8 @@
|
||||
# Not used by any item
|
||||
type = "passive"
|
||||
|
||||
|
||||
def handler(fit, src, context):
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Structure Energy Neutralizer",
|
||||
"capacitorNeed", src.getModifiedItemAttr("structureRigEwarCapUseBonus"),
|
||||
stackingPenalties=True)
|
||||
@@ -0,0 +1,12 @@
|
||||
# Not used by any item
|
||||
type = "passive"
|
||||
|
||||
|
||||
def handler(fit, src, context):
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Structure Energy Neutralizer",
|
||||
"maxRange", src.getModifiedItemAttr("structureRigEwarOptimalBonus"),
|
||||
stackingPenalties=True)
|
||||
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Structure Energy Neutralizer",
|
||||
"falloffEffectiveness", src.getModifiedItemAttr("structureRigEwarFalloffBonus"),
|
||||
stackingPenalties=True)
|
||||
8
eos/effects/structurerigpdbcapacitorneed.py
Normal file
8
eos/effects/structurerigpdbcapacitorneed.py
Normal file
@@ -0,0 +1,8 @@
|
||||
# Not used by any item
|
||||
type = "passive"
|
||||
|
||||
|
||||
def handler(fit, src, context):
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Structure Area Denial Module",
|
||||
"capacitorNeed", src.getModifiedItemAttr("structureRigPDCapUseBonus"),
|
||||
stackingPenalties=True)
|
||||
8
eos/effects/structurerigpdbmaxrange.py
Normal file
8
eos/effects/structurerigpdbmaxrange.py
Normal file
@@ -0,0 +1,8 @@
|
||||
# Not used by any item
|
||||
type = "passive"
|
||||
|
||||
|
||||
def handler(fit, src, context):
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Structure Area Denial Module",
|
||||
"empFieldRange", src.getModifiedItemAttr("structureRigPDRangeBonus"),
|
||||
stackingPenalties=True)
|
||||
7
eos/effects/structurerigsensorresolution.py
Normal file
7
eos/effects/structurerigsensorresolution.py
Normal file
@@ -0,0 +1,7 @@
|
||||
# Not used by any item
|
||||
type = "passive"
|
||||
|
||||
|
||||
def handler(fit, src, context):
|
||||
fit.ship.boostItemAttr("scanResolution", src.getModifiedItemAttr("structureRigScanResBonus"),
|
||||
stackingPenalties=True)
|
||||
8
eos/effects/structurerigvelocitybonusaoemissiles.py
Normal file
8
eos/effects/structurerigvelocitybonusaoemissiles.py
Normal file
@@ -0,0 +1,8 @@
|
||||
# Not used by any item
|
||||
type = "passive"
|
||||
|
||||
|
||||
def handler(fit, src, context):
|
||||
fit.modules.filteredChargeBoost(lambda mod: mod.charge.group.name == "Structure Guided Bomb",
|
||||
"maxVelocity", src.getModifiedItemAttr("structureRigMissileVelocityBonus"),
|
||||
stackingPenalties=True)
|
||||
@@ -0,0 +1,9 @@
|
||||
# Not used by any item
|
||||
type = "passive"
|
||||
|
||||
|
||||
def handler(fit, src, context):
|
||||
groups = ("Structure Anti-Subcapital Missile", "Structure Anti-Capital Missile")
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.charge.group.name in groups,
|
||||
"maxVelocity", src.getModifiedItemAttr("structureRigMissileVelocityBonus"),
|
||||
stackingPenalties=True)
|
||||
17
eos/effects/structurewarpscrambleblockmwdwithnpceffect.py
Normal file
17
eos/effects/structurewarpscrambleblockmwdwithnpceffect.py
Normal file
@@ -0,0 +1,17 @@
|
||||
# Not used by any item
|
||||
from eos.saveddata.module import State
|
||||
|
||||
# Not used by any item
|
||||
runTime = "early"
|
||||
type = "projected", "active"
|
||||
|
||||
|
||||
def handler(fit, module, context):
|
||||
if "projected" in context:
|
||||
fit.ship.increaseItemAttr("warpScrambleStatus", module.getModifiedItemAttr("warpScrambleStrength"))
|
||||
if module.charge is not None and module.charge.ID == 47336:
|
||||
for mod in fit.modules:
|
||||
if not mod.isEmpty and mod.item.requiresSkill("High Speed Maneuvering") and mod.state > State.ONLINE:
|
||||
mod.state = State.ONLINE
|
||||
if not mod.isEmpty and mod.item.requiresSkill("Micro Jump Drive Operation") and mod.state > State.ONLINE:
|
||||
mod.state = State.ONLINE
|
||||
12
eos/effects/subsystembonusamarrdefensive2armorrepheat.py
Normal file
12
eos/effects/subsystembonusamarrdefensive2armorrepheat.py
Normal file
@@ -0,0 +1,12 @@
|
||||
# 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")
|
||||
@@ -0,0 +1,9 @@
|
||||
# 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")
|
||||
20
eos/effects/subsystembonusamarrdefensivearmoredwarfare.py
Normal file
20
eos/effects/subsystembonusamarrdefensivearmoredwarfare.py
Normal file
@@ -0,0 +1,20 @@
|
||||
# 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")
|
||||
@@ -0,0 +1,9 @@
|
||||
# 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")
|
||||
@@ -0,0 +1,20 @@
|
||||
# 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")
|
||||
@@ -0,0 +1,7 @@
|
||||
# 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")
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user