From eade4f0ebdc09e773c799a32543a19fb23c58a89 Mon Sep 17 00:00:00 2001 From: blitzman Date: Sun, 20 Nov 2016 00:59:07 -0500 Subject: [PATCH] Add the four main combat boost module effects --- eos/effects/chargebonuswarfarecharge.py | 74 +++++++++++++++++++++---- 1 file changed, 64 insertions(+), 10 deletions(-) diff --git a/eos/effects/chargebonuswarfarecharge.py b/eos/effects/chargebonuswarfarecharge.py index f5af27ef9..17ed8aa5c 100644 --- a/eos/effects/chargebonuswarfarecharge.py +++ b/eos/effects/chargebonuswarfarecharge.py @@ -16,17 +16,71 @@ def handler(fit, module, context, **kwargs): def runEffect(id, value): print "RUN EFFECT: ", fit, - if id == 21: # Skirmish Burst: Interdiction Maneuvers: Tackle Range - print "Tackle Range" - return - groups = ("Stasis Web", "Warp Scrambler") - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name in groups, - "maxRange", value, - stackingPenalties=True) - if id == 10: - print "Shield Resists" - print "Inside the CHARGE" + if id == 10: # Shield Burst: Shield Harmonizing: Shield Resistance + for damageType in ("Em", "Explosive", "Thermal", "Kinetic"): + fit.ship.boostItemAttr("shield%sDamageResonance" % damageType, value, stackingPenalties=True) + + if id == 11: # Shield Burst: Active Shielding: Repair Duration/Capacitor + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Operation") or mod.item.requiresSkill("Shield Emission Systems"), "capacitorNeed", value) + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Operation") or mod.item.requiresSkill("Shield Emission Systems"), "duration", value) + + if id == 12: # Shield Burst: Shield Extension: Shield HP + fit.ship.boostItemAttr("shieldCapacity", value, stackingPenalties=True) + + if id == 13: # Armor Burst: Armor Energizing: Armor Resistance + for damageType in ("Em", "Thermal", "Explosive", "Kinetic"): + fit.ship.boostItemAttr("armor%sDamageResonance" % damageType, value, stackingPenalties=True) + + if id == 14: # Armor Burst: Rapid Repair: Repair Duration/Capacitor + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems") or mod.item.requiresSkill("Repair Systems"), "capacitorNeed", value) + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems") or mod.item.requiresSkill("Repair Systems"), "duration", value) + + if id == 15: # Armor Burst: Armor Reinforcement: Armor HP + fit.ship.boostItemAttr("armorHP", value, stackingPenalties=True) + + if id == 16: # Information Burst: Sensor Optimization: Scan Resolution + fit.ship.boostItemAttr("scanResolution", value, stackingPenalties=True) + + if id == 17: # Information Burst: Electronic Superiority: EWAR Range and Strength + pass + groups = ("ECM", "Sensor Dampener", "Weapon Disruptor", "Target Painter") + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name in groups, "maxRange", value, stackingPenalties=True) + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name in groups, "falloffEffectiveness", value, stackingPenalties=True) + + for scanType in ("Magnetometric", "Radar", "Ladar", "Gravimetric"): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.nam == "ECM", "scan%sStrengthBonus" % scanType, value, stackingPenalties=True) + + for attr in ("missileVelocityBonus", "explosionDelayBonus", "aoeVelocityBonus", "falloffBonus", + "maxRangeBonus", "aoeCloudSizeBonus", "trackingSpeedBonus"): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Weapon Disruptor", attr, value) + + for attr in ("maxTargetRangeBonus", "scanResolutionBonus"): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Sensor Dampener", attr, value) + + fit.modules.filteredItemBoost(lambda mod: mod.item.gorup.name == "Target Painter", "signatureRadiusBonus", value, stackingPenalties=True) + + if id == 18: # Information Burst: Electronic Hardening: Scan Strength + for scanType in ("Gravimetric", "Radar", "Ladar", "Magnetometric"): + fit.ship.boostItemAttr("scan%sStrength" % scanType, value, stackingPenalties=True) + + if id == 19: # Information Burst: Electronic Hardening: RSD/RWD Resistance + fit.ship.boostItemAttr("sensorDampenerResistance", value) + fit.ship.boostItemAttr("weaponDisruptionResistance", value) + + if id == 26: # Information Burst: Sensor Optimization: Targeting Range + fit.ship.boostItemAttr("maxTargetRange", value) + + if id == 20: # Skirmish Burst: Evasive Maneuvers: Signature Radius + fit.ship.boostItemAttr("signatureRadius", value, stackingPenalties=True) + + if id == 21: # Skirmish Burst: Interdiction Maneuvers: Tackle Range + groups = ("Stasis Web", "Warp Scrambler") + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name in groups, "maxRange", value, + stackingPenalties=True) + + if id == 22: # Skirmish Burst: Rapid Deployment: AB/MWD Speed Increase + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Afterburner") or mod.item.requiresSkill("High Speed Maneuvering"), "speedFactor", value, stackingPenalties=True) for x in xrange(1, 4): if module.getModifiedChargeAttr("warfareBuff{}ID".format(x)):