19 lines
901 B
Python
19 lines
901 B
Python
# adaptiveArmorHardener
|
|
#
|
|
# Used by:
|
|
# Module: Reactive Armor Hardener
|
|
type = "active"
|
|
def handler(fit, module, context):
|
|
for type in ("kinetic", "thermal", "explosive", "em"):
|
|
attr = "armor%sDamageResonance" % type.capitalize()
|
|
|
|
#Adjust RAH to match the current damage pattern
|
|
damagePattern = fit.damagePattern
|
|
attrDamagePattern = "%sAmount" % type
|
|
damagePatternModifier = getattr(damagePattern,attrDamagePattern)/float(sum((damagePattern.emAmount,damagePattern.thermalAmount,damagePattern.kineticAmount,damagePattern.explosiveAmount)))
|
|
modifiedResistModifier = (1-(((1-module.getModifiedItemAttr(attr))*4)*(damagePatternModifier)))
|
|
module.forceItemAttr(attr, modifiedResistModifier)
|
|
|
|
fit.ship.multiplyItemAttr(attr, module.getModifiedItemAttr(attr),
|
|
stackingPenalties=True, penaltyGroup="preMul")
|