Allow RAH-specific pattern control

This commit is contained in:
DarkPhoenix
2022-03-12 02:19:03 +03:00
parent 0c292e8d6e
commit ae115b640a
9 changed files with 152 additions and 41 deletions

View File

@@ -16439,13 +16439,10 @@ class Effect4928(BaseEffect):
def handler(fit, module, context, projectionRange, **kwargs):
# pyfalog = Logger(__name__)
damagePattern = fit.damagePattern
damagePattern = module.rahPatternOverride if module.rahPatternOverride is not None else fit.damagePattern
# pyfalog.debug('==============================')
static_adaptive_behavior = eos.config.settings['useStaticAdaptiveArmorHardener']
if (damagePattern.emAmount == damagePattern.thermalAmount == damagePattern.kineticAmount == damagePattern.explosiveAmount) and static_adaptive_behavior:
# pyfalog.debug('Setting adaptivearmorhardener resists to uniform profile.')
if damagePattern == 'disable':
for attr in ('armorEmDamageResonance', 'armorThermalDamageResonance', 'armorKineticDamageResonance', 'armorExplosiveDamageResonance'):
fit.ship.multiplyItemAttr(attr, module.getModifiedItemAttr(attr), stackingPenalties=True, penaltyGroup='preMul')
return

View File

@@ -122,6 +122,8 @@ class Module(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut, M
if self.__charge and self.__charge.category.name != "Charge":
self.__charge = None
self.rahPatternOverride = None
self.__baseVolley = None
self.__baseRRAmount = None
self.__miningYield = None
@@ -1075,6 +1077,7 @@ class Module(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut, M
copy.spoolType = self.spoolType
copy.spoolAmount = self.spoolAmount
copy.projectionRange = self.projectionRange
copy.rahPatternOverride = self.rahPatternOverride
self._mutaApplyMutators(mutatorClass=MutatorModule, targetInstance=copy)
return copy
@@ -1085,6 +1088,7 @@ class Module(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut, M
spoolType = self.spoolType
spoolAmount = self.spoolAmount
projectionRange = self.projectionRange
rahPatternOverride = self.rahPatternOverride
Module.__init__(self, item, self.baseItem, self.mutaplasmid)
self.state = state
@@ -1093,6 +1097,7 @@ class Module(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut, M
self.spoolType = spoolType
self.spoolAmount = spoolAmount
self.projectionRange = projectionRange
self.rahPatternOverride = rahPatternOverride
self._mutaApplyMutators(mutatorClass=MutatorModule)
def __repr__(self):