Files
pyfa/eos/effects/industrialcoreeffect2.py

115 lines
6.5 KiB
Python

# industrialCoreEffect2
#
# Used by:
# Variations of module: Industrial Core I (2 of 2)
type = "active"
runTime = "early"
def handler(fit, src, context):
fit.extraAttributes["siege"] = True
fit.ship.boostItemAttr("maxVelocity", src.getModifiedItemAttr("speedFactor"), stackingPenalties=True)
fit.ship.multiplyItemAttr("mass", src.getModifiedItemAttr("siegeMassMultiplier"))
fit.ship.multiplyItemAttr("scanResolution",
src.getModifiedItemAttr("scanResolutionMultiplier"),
stackingPenalties=True)
# Remote Shield Repper Bonuses
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Shield Emission Systems"),
"duration",
src.getModifiedItemAttr("industrialCoreRemoteLogisticsDurationBonus"),
)
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Shield Emission Systems"),
"maxRange",
src.getModifiedItemAttr("industrialCoreRemoteLogisticsRangeBonus"),
stackingPenalties=True
)
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Shield Emission Systems"),
"capacitorNeed",
src.getModifiedItemAttr("industrialCoreRemoteLogisticsDurationBonus")
)
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Shield Emission Systems"),
"falloffEffectiveness",
src.getModifiedItemAttr("industrialCoreRemoteLogisticsRangeBonus"),
stackingPenalties=True
)
# Local Shield Repper Bonuses
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Shield Operation"),
"duration",
src.getModifiedItemAttr("industrialCoreLocalLogisticsDurationBonus"),
)
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Shield Operation"),
"shieldBonus",
src.getModifiedItemAttr("industrialCoreLocalLogisticsAmountBonus"),
stackingPenalties=True
)
# Mining Burst Bonuses
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Mining Foreman"),
"warfareBuff1Value",
src.getModifiedItemAttr("industrialCoreBonusMiningBurstStrength"),
)
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Mining Foreman"),
"warfareBuff2Value",
src.getModifiedItemAttr("industrialCoreBonusMiningBurstStrength"),
)
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Mining Foreman"),
"warfareBuff3Value",
src.getModifiedItemAttr("industrialCoreBonusMiningBurstStrength"),
)
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Mining Foreman"),
"warfareBuff4Value",
src.getModifiedItemAttr("industrialCoreBonusMiningBurstStrength"),
)
# Command Burst Range Bonus
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Leadership"),
"maxRange",
src.getModifiedItemAttr("industrialCoreBonusCommandBurstRange"),
stackingPenalties=True
)
# Drone Bonuses
fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Ice Harvesting Drone Operation"),
"duration",
src.getModifiedItemAttr("industrialCoreBonusDroneIceHarvesting"),
)
fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Mining Drone Operation"),
"miningAmount",
src.getModifiedItemAttr("industrialCoreBonusDroneMining"),
)
fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"),
"maxVelocity",
src.getModifiedItemAttr("industrialCoreBonusDroneVelocity"),
)
fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"),
"damageMultiplier",
src.getModifiedItemAttr("industrialCoreBonusDroneDamageHP"),
stackingPenalties=True
)
fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"),
"shieldCapacity",
src.getModifiedItemAttr("industrialCoreBonusDroneDamageHP"),
)
fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"),
"armorHP",
src.getModifiedItemAttr("industrialCoreBonusDroneDamageHP"),
)
fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"),
"hp",
src.getModifiedItemAttr("industrialCoreBonusDroneDamageHP"),
)
# Todo: remote impedance (no reps, etc)
fit.ship.increaseItemAttr("warpScrambleStatus", src.getModifiedItemAttr("siegeModeWarpStatus"))
fit.ship.boostItemAttr("remoteRepairImpedance", src.getModifiedItemAttr("remoteRepairImpedanceBonus"))
fit.ship.increaseItemAttr("disallowTethering", src.getModifiedItemAttr("disallowTethering"))
fit.ship.boostItemAttr("sensorDampenerResistance", src.getModifiedItemAttr("sensorDampenerResistanceBonus"))
fit.ship.boostItemAttr("remoteAssistanceImpedance", src.getModifiedItemAttr("remoteAssistanceImpedanceBonus"))
fit.ship.increaseItemAttr("disallowDocking", src.getModifiedItemAttr("disallowDocking"))