MCPcopy Index your code
hub / github.com/pyfa-org/Pyfa / handler

Method handler

eos/effects.py:29937–30015  ·  view source on GitHub ↗
(fit, src, context, projectionRange, **kwargs)

Source from the content-addressed store, hash-verified

29935
29936 @staticmethod
29937 def handler(fit, src, context, projectionRange, **kwargs):
29938 # Resistances
29939 for layer, attrPrefix in (('shield', 'shield'), ('armor', 'armor'), ('hull', '')):
29940 for damageType in ('Kinetic', 'Thermal', 'Explosive', 'Em'):
29941 bonus = '%s%sDamageResonance' % (attrPrefix, damageType)
29942 bonus = '%s%s' % (bonus[0].lower(), bonus[1:])
29943 booster = '%s%sDamageResonance' % (layer, damageType)
29944 penalize = False if layer == 'hull' else True
29945 fit.ship.multiplyItemAttr(bonus, src.getModifiedItemAttr(booster),
29946 stackingPenalties=penalize, penaltyGroup='preMul', **kwargs)
29947
29948 # Turrets
29949 fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill('Large Energy Turret') or
29950 mod.item.requiresSkill('Large Hybrid Turret') or
29951 mod.item.requiresSkill('Large Projectile Turret') or
29952 mod.item.requiresSkill('Large Precursor Weapon'),
29953 'maxRange', src.getModifiedItemAttr('maxRangeBonus'),
29954 stackingPenalties=True, **kwargs)
29955 fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill('Large Energy Turret') or
29956 mod.item.requiresSkill('Large Hybrid Turret') or
29957 mod.item.requiresSkill('Large Projectile Turret'),
29958 'falloff', src.getModifiedItemAttr('falloffBonus'),
29959 stackingPenalties=True, **kwargs)
29960 fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill('Large Energy Turret') or
29961 mod.item.requiresSkill('Large Hybrid Turret') or
29962 mod.item.requiresSkill('Large Projectile Turret') or
29963 mod.item.requiresSkill('Large Precursor Weapon'),
29964 'speed', src.getModifiedItemAttr('bastionTurretROFBonus'),
29965 stackingPenalties=True, penaltyGroup='postPerc', **kwargs)
29966
29967 # Missiles
29968 fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill('Torpedoes') or
29969 mod.charge.requiresSkill('Cruise Missiles') or
29970 mod.charge.requiresSkill('Heavy Missiles'),
29971 'maxVelocity', src.getModifiedItemAttr('missileVelocityBonus'),
29972 stackingPenalties=True, **kwargs)
29973 fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill('Cruise Missiles') or
29974 mod.item.requiresSkill('Torpedoes') or
29975 mod.item.requiresSkill('Torpedo Specialization') or
29976 mod.item.requiresSkill('Cruise Missile Specialization'),
29977 'speed', src.getModifiedItemAttr('bastionMissileROFBonus'),
29978 stackingPenalties=True, penaltyGroup='postPerc', **kwargs)
29979
29980 # Tanking
29981 fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill('Repair Systems'),
29982 'armorDamageAmount', src.getModifiedItemAttr('armorDamageAmountBonus'),
29983 stackingPenalties=True, **kwargs)
29984 fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill('Shield Operation'),
29985 'shieldBonus', src.getModifiedItemAttr('shieldBoostMultiplier'),
29986 stackingPenalties=True, **kwargs)
29987 for attrName in ('duration', 'capacitorNeed'):
29988 fit.modules.filteredItemBoost(
29989 lambda mod: mod.item.requiresSkill('Repair Systems'),
29990 attrName, src.getModifiedItemAttr('bastionModeArmorRepairCapDurationBonus'), **kwargs)
29991 fit.modules.filteredItemBoost(
29992 lambda mod: mod.item.requiresSkill('Shield Operation'),
29993 attrName, src.getModifiedItemAttr('bastionModeShieldBoosterCapDurationBonus'), **kwargs)
29994

Callers

nothing calls this directly

Calls 9

multiplyItemAttrMethod · 0.80
filteredItemBoostMethod · 0.80
requiresSkillMethod · 0.80
filteredChargeBoostMethod · 0.80
boostItemAttrMethod · 0.80
filteredItemIncreaseMethod · 0.80
increaseItemAttrMethod · 0.80
forceItemAttrMethod · 0.80
getModifiedItemAttrMethod · 0.45

Tested by

no test coverage detected