73 lines
4.2 KiB
Python
73 lines
4.2 KiB
Python
# Used by:
|
|
# Module: Triage Module I
|
|
type = "active"
|
|
runTime = "early"
|
|
def handler(fit, src, context):
|
|
# Remote effect bonuses (duration / amount / range / fallout)
|
|
for skill, amtAttr, stack in (
|
|
("Capital Remote Armor Repair Systems", "armorDamageAmount", True),
|
|
("Capital Shield Emission Systems", "shieldBonus", True),
|
|
("Capital Capacitor Emission Systems", "powerTransferAmount", False),
|
|
("Capital Remote Hull Repair Systems", "structureDamageAmount", False)):
|
|
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill(skill), "duration", src.getModifiedItemAttr("siegeRemoteLogisticsDurationBonus"))
|
|
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill(skill), amtAttr, src.getModifiedItemAttr("siegeRemoteLogisticsAmountBonus"), stackingPenalties=stack)
|
|
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill(skill), "maxRange", src.getModifiedItemAttr("siegeRemoteLogisticsRangeBonus"), stackingPenalties=True)
|
|
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill(skill), "falloffEffectiveness", src.getModifiedItemAttr("siegeRemoteLogisticsRangeBonus"), stackingPenalties=True)
|
|
|
|
# Local armor/shield rep effects (duration / amoutn)
|
|
for skill, amtAttr in (
|
|
("Capital Shield Operation", "shieldBonus"),
|
|
("Capital Repair Systems", "armorDamageAmount")):
|
|
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill(skill), "duration", src.getModifiedItemAttr("siegeLocalLogisticsDurationBonus"))
|
|
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill(skill), amtAttr, src.getModifiedItemAttr("siegeLocalLogisticsAmountBonus"))
|
|
|
|
|
|
# Speed bonus
|
|
fit.ship.boostItemAttr("maxVelocity", src.getModifiedItemAttr("speedFactor"), stackingPenalties=True)
|
|
|
|
# Scan resolution multiplier
|
|
fit.ship.multiplyItemAttr("scanResolution", src.getModifiedItemAttr("scanResolutionMultiplier"), stackingPenalties=True)
|
|
|
|
# Mass multiplier
|
|
fit.ship.multiplyItemAttr("mass", src.getModifiedItemAttr("siegeMassMultiplier"), stackingPenalties=True)
|
|
|
|
# Max locked targets
|
|
fit.ship.increaseItemAttr("maxLockedTargets", src.getModifiedItemAttr("maxLockedTargetsBonus"))
|
|
|
|
|
|
# EW cap need increase
|
|
groups = [
|
|
'Burst Jammer',
|
|
'Weapon Disruptor',
|
|
'ECM',
|
|
'Sensor Dampener',
|
|
'Target Painter']
|
|
|
|
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name in groups or
|
|
mod.item.requiresSkill("Propulsion Jamming"),
|
|
"capacitorNeed", src.getModifiedItemAttr("ewCapacitorNeedBonus"))
|
|
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Propulsion Jamming"),
|
|
"capacitorNeed", src.getModifiedItemAttr("ewCapacitorNeedBonus"))
|
|
|
|
# todo: test for April 2016 release
|
|
# Block EWAR & projected effects
|
|
fit.ship.forceItemAttr("disallowOffensiveModifiers", src.getModifiedItemAttr("disallowOffensiveModifiers"))
|
|
fit.ship.forceItemAttr("disallowAssistance", src.getModifiedItemAttr("disallowAssistance"))
|
|
|
|
# new in April 2016 release
|
|
|
|
for scanType in ('Magnetometric', 'Ladar', 'Gravimetric', 'Radar'):
|
|
fit.ship.boostItemAttr("scan{}Strength".format(scanType),
|
|
src.getModifiedItemAttr("scan{}StrengthPercent".format(scanType)),
|
|
stackingPenalties=True)
|
|
|
|
fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), "damageMultiplier", src.getModifiedItemAttr("droneDamageBonus"), stackingPenalties=True)
|
|
|
|
fit.ship.increaseItemAttr("warpScrambleStatus", src.getModifiedItemAttr("siegeModeWarpStatus"))
|
|
fit.ship.boostItemAttr("sensorDampenerResistance", src.getModifiedItemAttr("sensorDampenerResistanceBonus"))
|
|
fit.ship.boostItemAttr("remoteAssistanceImpedance", src.getModifiedItemAttr("remoteAssistanceImpedanceBonus"))
|
|
fit.ship.boostItemAttr("remoteRepairImpedance", src.getModifiedItemAttr("remoteRepairImpedanceBonus"))
|
|
|
|
fit.ship.forceItemAttr("disallowTethering", src.getModifiedItemAttr("disallowTethering"))
|
|
fit.ship.forceItemAttr("disallowDocking", src.getModifiedItemAttr("disallowDocking"))
|