Add bastion effect and fix some stuff in siege effect
This commit is contained in:
47
eos/effects/maraudermodeeffect25.py
Normal file
47
eos/effects/maraudermodeeffect25.py
Normal file
@@ -0,0 +1,47 @@
|
||||
# Used by:
|
||||
# Module: Bastion Module I
|
||||
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)
|
||||
fit.ship.multiplyItemAttr(bonus, module.getModifiedItemAttr(booster),
|
||||
stackingPenalties=True, 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"),
|
||||
"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,12 +7,14 @@ def handler(fit, module, context):
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Energy Turret") or \
|
||||
mod.item.requiresSkill("Capital Hybrid Turret") or \
|
||||
mod.item.requiresSkill("Capital Projectile Turret"),
|
||||
"damageMultiplier", module.getModifiedItemAttr("damageMultiplierBonus"))
|
||||
"damageMultiplier", module.getModifiedItemAttr("damageMultiplierBonus"),
|
||||
stackingPenalties=True)
|
||||
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Energy Turret") or \
|
||||
mod.item.requiresSkill("Capital Hybrid Turret") or \
|
||||
mod.item.requiresSkill("Capital Projectile Turret"),
|
||||
"trackingSpeed", module.getModifiedItemAttr("trackingSpeedBonus"))
|
||||
"trackingSpeed", module.getModifiedItemAttr("trackingSpeedBonus"),
|
||||
stackingPenalties=True)
|
||||
|
||||
#Missiles
|
||||
for type in ("kinetic", "thermal", "explosive", "em"):
|
||||
@@ -26,15 +28,19 @@ def handler(fit, module, context):
|
||||
|
||||
#Shield Boosters
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Shield Operation"),
|
||||
"duration", module.getModifiedItemAttr("shieldBonusDurationBonus"))
|
||||
"duration", module.getModifiedItemAttr("shieldBonusDurationBonus"),
|
||||
stackingPenalties=True)
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Shield Operation"),
|
||||
"shieldBonus", module.getModifiedItemAttr("shieldBoostMultiplier"))
|
||||
"shieldBonus", module.getModifiedItemAttr("shieldBoostMultiplier"),
|
||||
stackingPenalties=True)
|
||||
|
||||
#Armor Reppers
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Armor Repair Unit",
|
||||
"armorDamageAmount", module.getModifiedItemAttr("armorDamageAmountBonus"))
|
||||
"armorDamageAmount", module.getModifiedItemAttr("armorDamageAmountBonus"),
|
||||
stackingPenalties=True)
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Armor Repair Unit",
|
||||
"duration", module.getModifiedItemAttr("armorDamageDurationBonus"))
|
||||
"duration", module.getModifiedItemAttr("armorDamageDurationBonus"),
|
||||
stackingPenalties=True)
|
||||
|
||||
#Speed penalty
|
||||
fit.ship.boostItemAttr("maxVelocity", module.getModifiedItemAttr("speedFactor"))
|
||||
@@ -43,7 +49,8 @@ def handler(fit, module, context):
|
||||
fit.ship.multiplyItemAttr("mass", module.getModifiedItemAttr("massMultiplier"))
|
||||
|
||||
#Scan resolution
|
||||
fit.ship.multiplyItemAttr("scanResolution", module.getModifiedItemAttr("scanResolutionMultiplier"))
|
||||
fit.ship.multiplyItemAttr("scanResolution", module.getModifiedItemAttr("scanResolutionMultiplier"),
|
||||
stackingPenalties=True)
|
||||
|
||||
#Max locked targets
|
||||
fit.ship.forceItemAttr("maxLockedTargets", module.getModifiedItemAttr("maxLockedTargets"))
|
||||
|
||||
Reference in New Issue
Block a user