Revert "Remove effect files that are not used by any item"
This reverts commit b29fa2467a.
This commit is contained in:
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"))
|
||||
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)
|
||||
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)
|
||||
6
eos/effects/elitebonuscommanddestroyerinfohidden1.py
Normal file
6
eos/effects/elitebonuscommanddestroyerinfohidden1.py
Normal file
@@ -0,0 +1,6 @@
|
||||
# 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")
|
||||
5
eos/effects/elitebonuscommandshipinformationhiddencs3.py
Normal file
5
eos/effects/elitebonuscommandshipinformationhiddencs3.py
Normal file
@@ -0,0 +1,5 @@
|
||||
# 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")
|
||||
13
eos/effects/energydestabilizationnew.py
Normal file
13
eos/effects/energydestabilizationnew.py
Normal file
@@ -0,0 +1,13 @@
|
||||
# Not used by any item
|
||||
from eos.types 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
|
||||
21
eos/effects/fighterabilityecm.py
Normal file
21
eos/effects/fighterabilityecm.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 = "ECM"
|
||||
|
||||
prefix = "fighterAbilityECM"
|
||||
|
||||
type = "projected", "active"
|
||||
|
||||
|
||||
def handler(fit, module, context):
|
||||
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)) / fit.scanStrength
|
||||
|
||||
fit.ecmProjectedStr *= strModifier
|
||||
17
eos/effects/fighterabilityenergyneutralizer.py
Normal file
17
eos/effects/fighterabilityenergyneutralizer.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 = "Energy Neutralizer"
|
||||
prefix = "fighterAbilityEnergyNeutralizer"
|
||||
type = "active", "projected"
|
||||
|
||||
|
||||
def handler(fit, src, context):
|
||||
if "projected" in context:
|
||||
amount = src.getModifiedItemAttr("{}Amount".format(prefix))
|
||||
time = src.getModifiedItemAttr("{}Duration".format(prefix))
|
||||
|
||||
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
|
||||
20
eos/effects/fighterabilitymicrowarpdrive.py
Normal file
20
eos/effects/fighterabilitymicrowarpdrive.py
Normal file
@@ -0,0 +1,20 @@
|
||||
# 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"))
|
||||
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"
|
||||
|
||||
|
||||
def handler(fit, src, context):
|
||||
if "projected" not in context:
|
||||
return
|
||||
fit.ship.boostItemAttr("maxVelocity", src.getModifiedItemAttr("{}SpeedPenalty".format(prefix)))
|
||||
16
eos/effects/fighterabilitywarpdisruption.py
Normal file
16
eos/effects/fighterabilitywarpdisruption.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 = "Warp Disruption"
|
||||
prefix = "fighterAbilityWarpDisruption"
|
||||
type = "active", "projected"
|
||||
|
||||
|
||||
def handler(fit, src, context):
|
||||
if "projected" not in context:
|
||||
return
|
||||
fit.ship.increaseItemAttr("warpScrambleStatus", src.getModifiedItemAttr("{}PointStrength".format(prefix)))
|
||||
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"))
|
||||
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/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")
|
||||
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/remotehullrepair.py
Normal file
10
eos/effects/remotehullrepair.py
Normal file
@@ -0,0 +1,10 @@
|
||||
# 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)
|
||||
@@ -1,8 +1,8 @@
|
||||
# setBonusAsklepian
|
||||
#
|
||||
# Used by:
|
||||
# Implants named like: Asklepian Omega (3 of 3)
|
||||
# Implants named like: Grade Asklepian (16 of 16)
|
||||
# Implants named like: grade Asklepian Omega (2 of 2)
|
||||
runTime = "early"
|
||||
type = "passive"
|
||||
|
||||
|
||||
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/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("shipBonusPirateFaction"))
|
||||
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))
|
||||
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))
|
||||
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 AXL Missile Launcher", "Structure ASML Missile Launcher")
|
||||
fit.modules.filteredItemMultiply(lambda mod: mod.item.group.name in launcherGroups,
|
||||
"speed", module.getModifiedItemAttr("speedMultiplier"),
|
||||
stackingPenalties=True)
|
||||
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.types import State
|
||||
|
||||
type = "active", "projected"
|
||||
|
||||
|
||||
def handler(fit, container, context):
|
||||
amount = 0
|
||||
if "projected" in context and ((hasattr(container, "state")
|
||||
and container.state >= State.ACTIVE) or hasattr(container, "amountActive")):
|
||||
amount = container.getModifiedItemAttr("energyNeutralizerAmount")
|
||||
time = container.getModifiedItemAttr("duration")
|
||||
fit.addDrain(time, amount, 0)
|
||||
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):
|
||||
if "projected" not in context:
|
||||
return
|
||||
|
||||
fit.ship.boostItemAttr("maxTargetRange", module.getModifiedItemAttr("maxTargetRangeBonus"),
|
||||
stackingPenalties=True, remoteResists=True)
|
||||
|
||||
fit.ship.boostItemAttr("scanResolution", module.getModifiedItemAttr("scanResolutionBonus"),
|
||||
stackingPenalties=True, remoteResists=True)
|
||||
8
eos/effects/structuremoduleeffectstasiswebifier.py
Normal file
8
eos/effects/structuremoduleeffectstasiswebifier.py
Normal file
@@ -0,0 +1,8 @@
|
||||
# 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, remoteResists=True)
|
||||
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):
|
||||
if "projected" in context:
|
||||
fit.ship.boostItemAttr("signatureRadius", container.getModifiedItemAttr("signatureRadiusBonus"),
|
||||
stackingPenalties=True, remoteResists=True)
|
||||
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):
|
||||
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, remoteResists=True)
|
||||
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Gunnery"),
|
||||
"trackingSpeed", module.getModifiedItemAttr("trackingSpeedBonus"),
|
||||
stackingPenalties=True, remoteResists=True)
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Gunnery"),
|
||||
"maxRange", module.getModifiedItemAttr("maxRangeBonus"),
|
||||
stackingPenalties=True, remoteResists=True)
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Gunnery"),
|
||||
"falloff", module.getModifiedItemAttr("falloffBonus"),
|
||||
stackingPenalties=True, remoteResists=True)
|
||||
@@ -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/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.ship.increaseItemAttr("maxLockedTargets", 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)
|
||||
15
eos/effects/structurewarpscrambleblockmwdwithnpceffect.py
Normal file
15
eos/effects/structurewarpscrambleblockmwdwithnpceffect.py
Normal file
@@ -0,0 +1,15 @@
|
||||
# Not used by any item
|
||||
from eos.types import State
|
||||
|
||||
# Not used by any item
|
||||
runTime = "early"
|
||||
type = "projected", "active"
|
||||
|
||||
|
||||
def handler(fit, module, context):
|
||||
if "projected" not in context:
|
||||
return
|
||||
# this is such a dirty hack
|
||||
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
|
||||
@@ -0,0 +1,5 @@
|
||||
# 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")
|
||||
@@ -0,0 +1,5 @@
|
||||
# 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")
|
||||
@@ -0,0 +1,5 @@
|
||||
# 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")
|
||||
7
eos/effects/techtwocommandburstbonus.py
Normal file
7
eos/effects/techtwocommandburstbonus.py
Normal file
@@ -0,0 +1,7 @@
|
||||
# Not used by any item
|
||||
type = "passive"
|
||||
runTime = "late"
|
||||
|
||||
def handler(fit, module, context):
|
||||
for x in xrange(1, 4):
|
||||
module.boostChargeAttr("warfareBuff{}Multiplier".format(x), module.getModifiedItemAttr("commandBurstStrengthBonus"))
|
||||
7
eos/effects/titanturretdamagescaling.py
Normal file
7
eos/effects/titanturretdamagescaling.py
Normal file
@@ -0,0 +1,7 @@
|
||||
# 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"))
|
||||
@@ -0,0 +1,15 @@
|
||||
# Not used by any item
|
||||
type = "projected", "active"
|
||||
|
||||
|
||||
def handler(fit, container, context):
|
||||
if "projected" in context:
|
||||
fit.modules.filteredItemMultiply(lambda mod: mod.item.requiresSkill("Gunnery"),
|
||||
"trackingSpeed", container.getModifiedItemAttr("trackingSpeedMultiplier"),
|
||||
stackingPenalties=True, penaltyGroup="postMul")
|
||||
fit.modules.filteredItemMultiply(lambda mod: mod.item.requiresSkill("Gunnery"),
|
||||
"maxRange", container.getModifiedItemAttr("maxRangeMultiplier"),
|
||||
stackingPenalties=True, penaltyGroup="postMul")
|
||||
fit.modules.filteredItemMultiply(lambda mod: mod.item.requiresSkill("Gunnery"),
|
||||
"falloff", container.getModifiedItemAttr("fallofMultiplier"),
|
||||
stackingPenalties=True, penaltyGroup="postMul")
|
||||
Reference in New Issue
Block a user