add / update effects for citadels

This commit is contained in:
blitzmann
2018-02-16 00:44:26 -05:00
parent 636ee1de23
commit fa3cf90421
23 changed files with 240 additions and 2 deletions

View 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"))

View 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)

View 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)

View 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)

View 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)

View 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)

View 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"))

View 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"))

View 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"))

View 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"))

View 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"))

View File

@@ -1,3 +1,10 @@
# shipBonusDroneTrackingEliteGunship2
#
# Used by:
# Ship: Ishkur
type = "passive"
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")

View 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"))

View 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"))

View File

@@ -0,0 +1,6 @@
# Not used by any item
type = "passive"
def handler(fit, ship, context):
fit.ship.increaseItemAttr("capacitorCapacity", ship.getModifiedItemAttr("capacitorBonus"))

View 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)

View 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)

View 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"))

View 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)

View File

@@ -0,0 +1,6 @@
# Not used by any item
type = "passive"
def handler(fit, module, context):
fit.ship.multiplyItemAttr("rechargeRate", module.getModifiedItemAttr("capacitorRechargeRateMultiplier"))

View File

@@ -0,0 +1,6 @@
# Not used by any item
type = "passive"
def handler(fit, module, context):
fit.ship.boostItemAttr("maxTargetRange", module.getModifiedItemAttr("structureRigMaxTargetRangeBonus"))

View File

@@ -107,7 +107,7 @@ class Fighter(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut):
"Heavy" : Slot.F_HEAVY,
"StandupLight": Slot.FS_LIGHT,
"StandupSupport": Slot.FS_SUPPORT,
"StandupHeavy":Slot.FS_HEAVY
"StandupHeavy": Slot.FS_HEAVY
}
for t, slot in types.iteritems():

View File

@@ -61,6 +61,7 @@ class Slot(Enum):
FS_SUPPORT = 14
FS_HEAVY = 15
class Hardpoint(Enum):
NONE = 0
MISSILE = 1