Added Effects Files for Citadel Modules
This commit is contained in:
@@ -3,7 +3,7 @@
|
||||
# Used by:
|
||||
# Modules from group: Missile Guidance Enhancer (3 of 3)
|
||||
type = "passive"
|
||||
def handler(fit, container, context):
|
||||
def handler(fit, module, context):
|
||||
fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"),
|
||||
"aoeCloudSize", container.getModifiedItemAttr("aoeCloudSizeBonus"),
|
||||
"aoeCloudSize", module.getModifiedItemAttr("aoeCloudSizeBonus"),
|
||||
stackingPenalties=True)
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
# Used by:
|
||||
# Modules from group: Missile Guidance Enhancer (3 of 3)
|
||||
type = "passive"
|
||||
def handler(fit, container, context):
|
||||
def handler(fit, module, context):
|
||||
fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"),
|
||||
"aoeVelocity", container.getModifiedItemAttr("aoeVelocityBonus"),
|
||||
"aoeVelocity", module.getModifiedItemAttr("aoeVelocityBonus"),
|
||||
stackingPenalties=True)
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
# Used by:
|
||||
# Modules from group: Missile Guidance Enhancer (3 of 3)
|
||||
type = "passive"
|
||||
def handler(fit, container, context):
|
||||
def handler(fit, module, context):
|
||||
fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"),
|
||||
"explosionDelay", container.getModifiedItemAttr("explosionDelayBonus"),
|
||||
"explosionDelay", module.getModifiedItemAttr("explosionDelayBonus"),
|
||||
stackingPenalties=True)
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
# Used by:
|
||||
# Modules from group: Missile Guidance Enhancer (3 of 3)
|
||||
type = "passive"
|
||||
def handler(fit, container, context):
|
||||
def handler(fit, module, context):
|
||||
fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"),
|
||||
"maxVelocity", container.getModifiedItemAttr("missileVelocityBonus"),
|
||||
"maxVelocity", module.getModifiedItemAttr("missileVelocityBonus"),
|
||||
stackingPenalties=True)
|
||||
|
||||
13
eos/effects/pointdefense.py
Normal file
13
eos/effects/pointdefense.py
Normal file
@@ -0,0 +1,13 @@
|
||||
# targetAttack
|
||||
#
|
||||
# Used by:
|
||||
# Citadel Point Defense
|
||||
type = 'active'
|
||||
def handler(fit, module, context):
|
||||
# Set reload time to 1 second
|
||||
module.reloadTime = 1000
|
||||
|
||||
# TODO
|
||||
# believe this doesn't actual require skills to use.
|
||||
# Need to figure out how to remove the skill req *OR* tie it to the structure.
|
||||
# also doesn't have reload so...
|
||||
@@ -4,7 +4,7 @@
|
||||
# Variations of module: Guidance Disruptor I (6 of 6)
|
||||
type = "active", "projected"
|
||||
|
||||
def handler(fit, src, context):
|
||||
def handler(fit, module, context):
|
||||
if "projected" in context:
|
||||
for srcAttr, tgtAttr in (
|
||||
("aoeCloudSizeBonus", "aoeCloudSize"),
|
||||
@@ -13,5 +13,5 @@ def handler(fit, src, context):
|
||||
("explosionDelayBonus", "explosionDelay"),
|
||||
):
|
||||
fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"),
|
||||
tgtAttr, src.getModifiedItemAttr(srcAttr),
|
||||
tgtAttr, module.getModifiedItemAttr(srcAttr),
|
||||
stackingPenalties=True, remoteResists=True)
|
||||
|
||||
18
eos/effects/structureMissileGuidanceEnhancer.py
Normal file
18
eos/effects/structureMissileGuidanceEnhancer.py
Normal file
@@ -0,0 +1,18 @@
|
||||
# missileAOECloudSizeBonusOnline
|
||||
#
|
||||
# Used by:
|
||||
# Modules from group: Missile Guidance Enhancer (3 of 3)
|
||||
type = "passive"
|
||||
def handler(fit, module, context):
|
||||
fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"),
|
||||
"aoeCloudSize", module.getModifiedItemAttr("aoeCloudSizeBonus"),
|
||||
stackingPenalties=True)
|
||||
fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"),
|
||||
"aoeVelocity", module.getModifiedItemAttr("aoeVelocityBonus"),
|
||||
stackingPenalties=True)
|
||||
fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"),
|
||||
"explosionDelay", module.getModifiedItemAttr("explosionDelayBonus"),
|
||||
stackingPenalties=True)
|
||||
fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"),
|
||||
"maxVelocity", module.getModifiedItemAttr("missileVelocityBonus"),
|
||||
stackingPenalties=True)
|
||||
14
eos/effects/structureballisticcontrolsystem.py
Normal file
14
eos/effects/structureballisticcontrolsystem.py
Normal file
@@ -0,0 +1,14 @@
|
||||
# missileDMGBonus
|
||||
#
|
||||
# Used by:
|
||||
# Modules from group: Ballistic Control system (17 of 17)
|
||||
# Modules named like: QA Multiship Module Players (4 of 4)
|
||||
type = "passive"
|
||||
def handler(fit, module, context):
|
||||
for dmgType in ("em", "kinetic", "explosive", "thermal"):
|
||||
fit.modules.filteredChargeMultiply(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"),
|
||||
"%sDamage" % dmgType, module.getModifiedItemAttr("missileDamageMultiplierBonus"),
|
||||
stackingPenalties = True)
|
||||
fit.modules.filteredItemMultiply(lambda mod: mod.item.requiresSkill("Missile Launcher Operation"),
|
||||
"speed", module.getModifiedItemAttr("speedMultiplier"),
|
||||
stackingPenalties=True)
|
||||
17
eos/effects/structureenergyneutralizerfalloff.py
Normal file
17
eos/effects/structureenergyneutralizerfalloff.py
Normal file
@@ -0,0 +1,17 @@
|
||||
# energyNeutralizerFalloff
|
||||
#
|
||||
# Used by:
|
||||
# Modules from group: Energy Neutralizer (51 of 51)
|
||||
from eos.types import State
|
||||
type = "active", "projected"
|
||||
def handler(fit, container, context):
|
||||
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)
|
||||
|
||||
|
||||
# TODO
|
||||
# believe this doesn't actual require skills to use.
|
||||
# Need to figure out how to remove the skill req *OR* tie it to the structure.`
|
||||
15
eos/effects/structuremoduleeffectecm.py
Normal file
15
eos/effects/structuremoduleeffectecm.py
Normal file
@@ -0,0 +1,15 @@
|
||||
# remoteECMFalloff
|
||||
#
|
||||
# Used by:
|
||||
# Modules from group: ECM (39 of 39)
|
||||
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
|
||||
|
||||
# TODO
|
||||
# believe this doesn't actual require skills to use.
|
||||
# Need to figure out how to remove the skill req *OR* tie it to the structure.
|
||||
18
eos/effects/structuremoduleeffectremotesensordampener.py
Normal file
18
eos/effects/structuremoduleeffectremotesensordampener.py
Normal file
@@ -0,0 +1,18 @@
|
||||
# remoteSensorDampFalloff
|
||||
#
|
||||
# Used by:
|
||||
# Modules from group: Sensor Dampener (6 of 6)
|
||||
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)
|
||||
|
||||
# TODO
|
||||
# believe this doesn't actual require skills to use.
|
||||
# Need to figure out how to remove the skill req *OR* tie it to the structure.
|
||||
15
eos/effects/structuremoduleeffectstasiswebifier.py
Normal file
15
eos/effects/structuremoduleeffectstasiswebifier.py
Normal file
@@ -0,0 +1,15 @@
|
||||
# remoteWebifierFalloff
|
||||
#
|
||||
# Used by:
|
||||
# Modules from group: Stasis Grappler (7 of 7)
|
||||
# Modules from group: Stasis Web (18 of 18)
|
||||
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)
|
||||
|
||||
|
||||
# TODO
|
||||
# believe this doesn't actual require skills to use.
|
||||
# Need to figure out how to remove the skill req *OR* tie it to the structure.
|
||||
13
eos/effects/structuremoduleeffecttargetpainter.py
Normal file
13
eos/effects/structuremoduleeffecttargetpainter.py
Normal file
@@ -0,0 +1,13 @@
|
||||
# remoteTargetPaintFalloff
|
||||
#
|
||||
# Used by:
|
||||
# Modules from group: Target Painter (8 of 8)
|
||||
type = "projected", "active"
|
||||
def handler(fit, container, context):
|
||||
if "projected" in context:
|
||||
fit.ship.boostItemAttr("signatureRadius", container.getModifiedItemAttr("signatureRadiusBonus"),
|
||||
stackingPenalties = True, remoteResists=True)
|
||||
|
||||
# TODO
|
||||
# believe this doesn't actual require skills to use.
|
||||
# Need to figure out how to remove the skill req *OR* tie it to the structure.
|
||||
31
eos/effects/structuremoduleeffectweapondisruption.py
Normal file
31
eos/effects/structuremoduleeffectweapondisruption.py
Normal file
@@ -0,0 +1,31 @@
|
||||
# remoteGuidanceDisruptFalloff
|
||||
#
|
||||
# Used by:
|
||||
# Variations of module: Standup Weapon Disruptor
|
||||
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, src.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)
|
||||
|
||||
# TODO
|
||||
# believe this doesn't actual require skills to use.
|
||||
# Need to figure out how to remove the skill req *OR* tie it to the structure.
|
||||
21
eos/effects/structurewarpscrambleblockmwdwithnpceffect.py
Normal file
21
eos/effects/structurewarpscrambleblockmwdwithnpceffect.py
Normal file
@@ -0,0 +1,21 @@
|
||||
# structureWarpScrambleBlockMWDWithNPCEffect
|
||||
#
|
||||
# Used by:
|
||||
# Modules named like: Standup Warp Scrambler
|
||||
runTime = "early"
|
||||
type = "projected", "active"
|
||||
|
||||
from eos.types import State
|
||||
|
||||
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
|
||||
|
||||
|
||||
# TODO
|
||||
# believe this doesn't actual require skills to use.
|
||||
# Need to figure out how to remove the skill req *OR* tie it to the structure.
|
||||
Reference in New Issue
Block a user