(fit, src, context, projectionRange, **kwargs)
| 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 |
nothing calls this directly
no test coverage detected