add / update effects for citadels
This commit is contained in:
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"))
|
||||||
16
eos/effects/doomsdayaoedamp.py
Normal file
16
eos/effects/doomsdayaoedamp.py
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
# doomsdayAOEDamp
|
||||||
|
#
|
||||||
|
# Used by:
|
||||||
|
# Module: Sensor Dampening Burst Projector
|
||||||
|
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)
|
||||||
21
eos/effects/doomsdayaoeneut.py
Normal file
21
eos/effects/doomsdayaoeneut.py
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
# doomsdayAOENeut
|
||||||
|
#
|
||||||
|
# Used by:
|
||||||
|
# Module: Energy Neutralization Burst Projector
|
||||||
|
from eos.saveddata.module import State
|
||||||
|
from eos.modifiedAttributeDict import ModifiedAttributeDict
|
||||||
|
|
||||||
|
type = "active", "projected"
|
||||||
|
|
||||||
|
|
||||||
|
def handler(fit, src, context, **kwargs):
|
||||||
|
if "projected" in context and ((hasattr(src, "state") and src.state >= State.ACTIVE) or
|
||||||
|
hasattr(src, "amountActive")):
|
||||||
|
amount = src.getModifiedItemAttr("energyNeutralizerAmount")
|
||||||
|
|
||||||
|
if 'effect' in kwargs:
|
||||||
|
amount *= ModifiedAttributeDict.getResistance(fit, kwargs['effect'])
|
||||||
|
|
||||||
|
time = src.getModifiedItemAttr("duration")
|
||||||
|
|
||||||
|
fit.addDrain(src, time, amount, 0)
|
||||||
11
eos/effects/doomsdayaoepaint.py
Normal file
11
eos/effects/doomsdayaoepaint.py
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
# doomsdayAOEPaint
|
||||||
|
#
|
||||||
|
# Used by:
|
||||||
|
# Module: Target Illumination Burst Projector
|
||||||
|
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)
|
||||||
29
eos/effects/doomsdayaoetrack.py
Normal file
29
eos/effects/doomsdayaoetrack.py
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
# doomsdayAOETrack
|
||||||
|
#
|
||||||
|
# Used by:
|
||||||
|
# Module: Weapon Disruption Burst Projector
|
||||||
|
|
||||||
|
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)
|
||||||
12
eos/effects/doomsdayaoeweb.py
Normal file
12
eos/effects/doomsdayaoeweb.py
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
# doomsdayAOEWeb
|
||||||
|
#
|
||||||
|
# Used by:
|
||||||
|
# Module: Stasis Webification Burst Projector
|
||||||
|
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)
|
||||||
10
eos/effects/scriptscangravimetricstrengthbonusbonus.py
Normal file
10
eos/effects/scriptscangravimetricstrengthbonusbonus.py
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
# scriptscanGravimetricStrengthBonusBonus
|
||||||
|
#
|
||||||
|
# Used by:
|
||||||
|
# Charges from group: Structure ECM script (4 of 4)
|
||||||
|
type = "passive"
|
||||||
|
runTime = "early"
|
||||||
|
|
||||||
|
|
||||||
|
def handler(fit, src, context, *args, **kwargs):
|
||||||
|
src.boostItemAttr("scanGravimetricStrengthBonus", src.getModifiedChargeAttr("scanGravimetricStrengthBonusBonus"))
|
||||||
10
eos/effects/scriptscanladarstrengthbonusbonus.py
Normal file
10
eos/effects/scriptscanladarstrengthbonusbonus.py
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
# scriptscanLadarStrengthBonusBonus
|
||||||
|
#
|
||||||
|
# Used by:
|
||||||
|
# Charges from group: Structure ECM script (4 of 4)
|
||||||
|
type = "passive"
|
||||||
|
runTime = "early"
|
||||||
|
|
||||||
|
|
||||||
|
def handler(fit, src, context, *args, **kwargs):
|
||||||
|
src.boostItemAttr("scanLadarStrengthBonus", src.getModifiedChargeAttr("scanLadarStrengthBonusBonus"))
|
||||||
10
eos/effects/scriptscanmagnetometricstrengthbonusbonus.py
Normal file
10
eos/effects/scriptscanmagnetometricstrengthbonusbonus.py
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
# scriptscanMagnetometricStrengthBonusBonus
|
||||||
|
#
|
||||||
|
# Used by:
|
||||||
|
# Charges from group: Structure ECM script (4 of 4)
|
||||||
|
type = "passive"
|
||||||
|
runTime = "early"
|
||||||
|
|
||||||
|
|
||||||
|
def handler(fit, src, context, *args, **kwargs):
|
||||||
|
src.boostItemAttr("scanMagnetometricStrengthBonus", src.getModifiedChargeAttr("scanMagnetometricStrengthBonusBonus"))
|
||||||
10
eos/effects/scriptscanradarstrengthbonusbonus.py
Normal file
10
eos/effects/scriptscanradarstrengthbonusbonus.py
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
# scriptscanRadarStrengthBonusBonus
|
||||||
|
#
|
||||||
|
# Used by:
|
||||||
|
# Charges from group: Structure ECM script (4 of 4)
|
||||||
|
type = "passive"
|
||||||
|
runTime = "early"
|
||||||
|
|
||||||
|
|
||||||
|
def handler(fit, src, context, *args, **kwargs):
|
||||||
|
src.boostItemAttr("scanRadarStrengthBonus", src.getModifiedChargeAttr("scanRadarStrengthBonusBonus"))
|
||||||
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.multiplyItemAttr("structureFullPowerStateHitpointMultiplier", src.getModifiedItemAttr("serviceModuleFullPowerStateHitpointMultiplier"))
|
||||||
@@ -1,3 +1,10 @@
|
|||||||
|
# shipBonusDroneTrackingEliteGunship2
|
||||||
|
#
|
||||||
|
# Used by:
|
||||||
|
# Ship: Ishkur
|
||||||
type = "passive"
|
type = "passive"
|
||||||
|
|
||||||
|
|
||||||
def handler(fit, src, context):
|
def handler(fit, src, context):
|
||||||
fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), "trackingSpeed", src.getModifiedItemAttr("eliteBonusGunship2"), skill="Assault Frigates")
|
fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), "trackingSpeed",
|
||||||
|
src.getModifiedItemAttr("eliteBonusGunship2"), skill="Assault Frigates")
|
||||||
|
|||||||
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"))
|
||||||
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"))
|
||||||
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"))
|
||||||
14
eos/effects/structuremissileguidanceenhancer.py
Normal file
14
eos/effects/structuremissileguidanceenhancer.py
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
# Not used by any item
|
||||||
|
type = "active"
|
||||||
|
|
||||||
|
|
||||||
|
def handler(fit, container, 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, 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"))
|
||||||
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"))
|
||||||
@@ -107,7 +107,7 @@ class Fighter(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut):
|
|||||||
"Heavy" : Slot.F_HEAVY,
|
"Heavy" : Slot.F_HEAVY,
|
||||||
"StandupLight": Slot.FS_LIGHT,
|
"StandupLight": Slot.FS_LIGHT,
|
||||||
"StandupSupport": Slot.FS_SUPPORT,
|
"StandupSupport": Slot.FS_SUPPORT,
|
||||||
"StandupHeavy":Slot.FS_HEAVY
|
"StandupHeavy": Slot.FS_HEAVY
|
||||||
}
|
}
|
||||||
|
|
||||||
for t, slot in types.iteritems():
|
for t, slot in types.iteritems():
|
||||||
|
|||||||
@@ -61,6 +61,7 @@ class Slot(Enum):
|
|||||||
FS_SUPPORT = 14
|
FS_SUPPORT = 14
|
||||||
FS_HEAVY = 15
|
FS_HEAVY = 15
|
||||||
|
|
||||||
|
|
||||||
class Hardpoint(Enum):
|
class Hardpoint(Enum):
|
||||||
NONE = 0
|
NONE = 0
|
||||||
MISSILE = 1
|
MISSILE = 1
|
||||||
|
|||||||
Reference in New Issue
Block a user