diff --git a/eos/effects/caldarishipewfalloffrangecb3.py b/eos/effects/caldarishipewfalloffrangecb3.py index c5e520bee..53a325271 100644 --- a/eos/effects/caldarishipewfalloffrangecb3.py +++ b/eos/effects/caldarishipewfalloffrangecb3.py @@ -5,4 +5,4 @@ type = "passive" def handler(fit, ship, context): fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", - "falloff", ship.getModifiedItemAttr("shipBonusCB3"), skill="Caldari Battleship") + "falloffEffectiveness", ship.getModifiedItemAttr("shipBonusCB3"), skill="Caldari Battleship") diff --git a/eos/effects/caldarishipewfalloffrangecc2.py b/eos/effects/caldarishipewfalloffrangecc2.py index c1a05d6d6..33edac024 100644 --- a/eos/effects/caldarishipewfalloffrangecc2.py +++ b/eos/effects/caldarishipewfalloffrangecc2.py @@ -5,4 +5,4 @@ type = "passive" def handler(fit, ship, context): fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", - "falloff", ship.getModifiedItemAttr("shipBonusCC2"), skill="Caldari Cruiser") + "falloffEffectiveness", ship.getModifiedItemAttr("shipBonusCC2"), skill="Caldari Cruiser") diff --git a/eos/effects/damagecontrol.py b/eos/effects/damagecontrol.py index 998a767bb..83107e12b 100644 --- a/eos/effects/damagecontrol.py +++ b/eos/effects/damagecontrol.py @@ -2,7 +2,7 @@ # # Used by: # Modules from group: Damage Control (14 of 14) -type = "active" +type = "passive" def handler(fit, module, context): for layer, attrPrefix in (('shield', 'shield'), ('armor', 'armor'), ('hull', '')): for damageType in ('Kinetic', 'Thermal', 'Explosive', 'Em'): diff --git a/eos/effects/ewskillecmburstfalloffbonus.py b/eos/effects/ewskillecmburstfalloffbonus.py index 609802237..6b442c75e 100644 --- a/eos/effects/ewskillecmburstfalloffbonus.py +++ b/eos/effects/ewskillecmburstfalloffbonus.py @@ -5,4 +5,4 @@ type = "passive" def handler(fit, skill, context): fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM Burst", - "falloff", skill.getModifiedItemAttr("falloffBonus") * skill.level) + "falloffEffectiveness", skill.getModifiedItemAttr("falloffBonus") * skill.level) diff --git a/eos/effects/ewskillewfalloffbonus.py b/eos/effects/ewskillewfalloffbonus.py index e8246dd00..839f16faa 100644 --- a/eos/effects/ewskillewfalloffbonus.py +++ b/eos/effects/ewskillewfalloffbonus.py @@ -5,4 +5,4 @@ type = "passive" def handler(fit, skill, context): fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", - "falloff", skill.getModifiedItemAttr("falloffBonus") * skill.level) \ No newline at end of file + "falloffEffectiveness", skill.getModifiedItemAttr("falloffBonus") * skill.level) diff --git a/eos/effects/ewskillrsdfalloffbonus.py b/eos/effects/ewskillrsdfalloffbonus.py index 4cdaecb4e..aa9ab09bd 100644 --- a/eos/effects/ewskillrsdfalloffbonus.py +++ b/eos/effects/ewskillrsdfalloffbonus.py @@ -5,4 +5,4 @@ type = "passive" def handler(fit, skill, context): fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Sensor Linking"), - "falloff", skill.getModifiedItemAttr("falloffBonus") * skill.level) + "falloffEffectiveness", skill.getModifiedItemAttr("falloffBonus") * skill.level) diff --git a/eos/effects/ewskilltdfalloffbonus.py b/eos/effects/ewskilltdfalloffbonus.py index 60b860ea0..9951a09e8 100644 --- a/eos/effects/ewskilltdfalloffbonus.py +++ b/eos/effects/ewskilltdfalloffbonus.py @@ -5,4 +5,4 @@ type = "passive" def handler(fit, skill, context): fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Weapon Disruptor", - "falloff", skill.getModifiedItemAttr("falloffBonus") * skill.level) \ No newline at end of file + "falloffEffectiveness", skill.getModifiedItemAttr("falloffBonus") * skill.level) diff --git a/eos/effects/ewskilltpfalloffbonus.py b/eos/effects/ewskilltpfalloffbonus.py index 11204a306..2ebb5d98d 100644 --- a/eos/effects/ewskilltpfalloffbonus.py +++ b/eos/effects/ewskilltpfalloffbonus.py @@ -5,4 +5,4 @@ type = "passive" def handler(fit, skill, context): fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Target Painter", - "falloff", skill.getModifiedItemAttr("falloffBonus") * skill.level) \ No newline at end of file + "falloffEffectiveness", skill.getModifiedItemAttr("falloffBonus") * skill.level) diff --git a/eos/effects/modifyenergywarfareresistance.py b/eos/effects/modifyenergywarfareresistance.py new file mode 100644 index 000000000..2685b4a01 --- /dev/null +++ b/eos/effects/modifyenergywarfareresistance.py @@ -0,0 +1,5 @@ +type = "passive" +def handler(fit, module, context): + fit.ship.boostItemAttr("energyWarfareResistance", + module.getModifiedItemAttr("energyWarfareResistanceBonus"), + stackingPenalties = True diff --git a/eos/effects/overloadselfsensormodulebonus.py b/eos/effects/overloadselfsensormodulebonus.py index 859e4830b..f5a4e0d5a 100644 --- a/eos/effects/overloadselfsensormodulebonus.py +++ b/eos/effects/overloadselfsensormodulebonus.py @@ -9,3 +9,10 @@ def handler(fit, module, context): module.boostItemAttr("maxTargetRangeBonus", module.getModifiedItemAttr("overloadSensorModuleStrengthBonus")) module.boostItemAttr("scanResolutionBonus", module.getModifiedItemAttr("overloadSensorModuleStrengthBonus"), stackingPenalties=True) + + for scanType in ("Gravimetric", "Magnetometric", "Radar", "Ladar"): + module.boostItemAttr( + "scan{}StrengthPercent".format(scanType), + module.getModifiedItemAttr("overloadSensorModuleStrengthBonus"), + stackingPenalties=True + ) diff --git a/eos/effects/propulsionskillcapneedbonusskilllevel.py b/eos/effects/propulsionskillcapneedbonusskilllevel.py index 99f25f16b..388e6603e 100644 --- a/eos/effects/propulsionskillcapneedbonusskilllevel.py +++ b/eos/effects/propulsionskillcapneedbonusskilllevel.py @@ -5,7 +5,7 @@ # Skill: Propulsion Jamming type = "passive" def handler(fit, container, context): - groups = ("Stasis Web", "Warp Scrambler", "Warp Disrupt Field Generator") + groups = ("Stasis Web", "Stasis Grappler", "Warp Scrambler", "Warp Disrupt Field Generator") level = container.level if "skill" in context else 1 fit.modules.filteredItemBoost(lambda mod: mod.item.group.name in groups, "capacitorNeed", container.getModifiedItemAttr("capNeedBonus") * level) diff --git a/eos/effects/remoteecmfalloff.py b/eos/effects/remoteecmfalloff.py new file mode 100644 index 000000000..ff841419e --- /dev/null +++ b/eos/effects/remoteecmfalloff.py @@ -0,0 +1,7 @@ +type = "projected", "active" +def handler(fit, module, context): + if "projected" in context: + # jam formula: 1 - (1- (jammer str/ship str))^(# of jam mods with same str)) + strModifier = 1 - module.getModifiedItemAttr("scan{0}StrengthBonus".format(fit.scanType))/fit.scanStrength + + fit.ecmProjectedStr *= strModifier diff --git a/eos/effects/remotesensorboostfalloff.py b/eos/effects/remotesensorboostfalloff.py new file mode 100644 index 000000000..1f503247e --- /dev/null +++ b/eos/effects/remotesensorboostfalloff.py @@ -0,0 +1,16 @@ +type= "projected", "active" +def handler(fit, module, context): + if "projected" not in context: + return + + fit.ship.boostItemAttr("maxTargetRange", module.getModifiedItemAttr("maxTargetRangeBonus"), + stackingPenalties = True) + fit.ship.boostItemAttr("scanResolution", module.getModifiedItemAttr("scanResolutionBonus"), + stackingPenalties = True) + + for scanType in ("Gravimetric", "Magnetometric", "Radar", "Ladar"): + fit.ship.boostItemAttr( + "scan{}Strength".format(scanType), + module.getModifiedItemAttr("scan{}StrengthPercent".format(scanType)), + stackingPenalties=True + ) diff --git a/eos/effects/remotesensordampfalloff.py b/eos/effects/remotesensordampfalloff.py new file mode 100644 index 000000000..7fc0de1e5 --- /dev/null +++ b/eos/effects/remotesensordampfalloff.py @@ -0,0 +1,8 @@ +type= "projected", "active" +def handler(fit, module, context): + if "projected" not in context: + return + fit.ship.boostItemAttr("maxTargetRange", module.getModifiedItemAttr("maxTargetRangeBonus"), + stackingPenalties = True) + fit.ship.boostItemAttr("scanResolution", module.getModifiedItemAttr("scanResolutionBonus"), + stackingPenalties = True diff --git a/eos/effects/remotetargetpaintfalloff.py b/eos/effects/remotetargetpaintfalloff.py new file mode 100644 index 000000000..3d8c84a3f --- /dev/null +++ b/eos/effects/remotetargetpaintfalloff.py @@ -0,0 +1,5 @@ +type = "projected", "active" +def handler(fit, container, context): + if "projected" in context: + fit.ship.boostItemAttr("signatureRadius", container.getModifiedItemAttr("signatureRadiusBonus"), + stackingPenalties = True) diff --git a/eos/effects/remotetrackingassistfalloff.py b/eos/effects/remotetrackingassistfalloff.py new file mode 100644 index 000000000..24780926a --- /dev/null +++ b/eos/effects/remotetrackingassistfalloff.py @@ -0,0 +1,12 @@ +type= "projected", "active" +def handler(fit, module, context): + if "projected" in context: + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Gunnery"), + "trackingSpeed", module.getModifiedItemAttr("trackingSpeedBonus"), + stackingPenalties = True) + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Gunnery"), + "maxRange", module.getModifiedItemAttr("maxRangeBonus"), + stackingPenalties = True) + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Gunnery"), + "falloff", module.getModifiedItemAttr("falloffBonus"), + stackingPenalties = True) diff --git a/eos/effects/remotewebifierfalloff.py b/eos/effects/remotewebifierfalloff.py new file mode 100644 index 000000000..05009bfe4 --- /dev/null +++ b/eos/effects/remotewebifierfalloff.py @@ -0,0 +1,5 @@ +type = "active", "projected" +def handler(fit, module, context): + if "projected" not in context: return + fit.ship.boostItemAttr("maxVelocity", module.getModifiedItemAttr("speedFactor"), + stackingPenalties = True) diff --git a/eos/effects/rolebonusecmrange.py b/eos/effects/rolebonusecmrange.py index dbf1a08f4..3d4c4c91e 100644 --- a/eos/effects/rolebonusecmrange.py +++ b/eos/effects/rolebonusecmrange.py @@ -4,5 +4,5 @@ # Ship: Griffin Navy Issue type = "passive" def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", "falloff", src.getModifiedItemAttr("roleBonus")) + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", "falloffEffectiveness", src.getModifiedItemAttr("roleBonus")) fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", "maxRange", src.getModifiedItemAttr("roleBonus")) diff --git a/eos/effects/scriptsensorboostersensorstrengthbonusbonus.py b/eos/effects/scriptsensorboostersensorstrengthbonusbonus.py new file mode 100644 index 000000000..294600120 --- /dev/null +++ b/eos/effects/scriptsensorboostersensorstrengthbonusbonus.py @@ -0,0 +1,4 @@ +type = "active" +def handler(fit, module, context): + for scanType in ("Gravimetric", "Magnetometric", "Radar", "Ladar"): + module.boostItemAttr("scan{}StrengthPercent".format(scanType), module.getModifiedChargeAttr("sensorStrengthBonusBonus")) diff --git a/eos/effects/sensorboosteractivepercentage.py b/eos/effects/sensorboosteractivepercentage.py index 6026acbc7..eaf23f58c 100644 --- a/eos/effects/sensorboosteractivepercentage.py +++ b/eos/effects/sensorboosteractivepercentage.py @@ -8,3 +8,10 @@ def handler(fit, module, context): stackingPenalties = True) fit.ship.boostItemAttr("scanResolution", module.getModifiedItemAttr("scanResolutionBonus"), stackingPenalties = True) + + for scanType in ("Gravimetric", "Magnetometric", "Radar", "Ladar"): + fit.ship.boostItemAttr( + "scan{}Strength".format(scanType), + module.getModifiedItemAttr("scan{}StrengthPercent".format(scanType)), + stackingPenalties=True + ) diff --git a/eos/effects/shipbonusewremotesensordampenerfalloffbonusgc1.py b/eos/effects/shipbonusewremotesensordampenerfalloffbonusgc1.py index 7ecc88cbc..ae6cccaf9 100644 --- a/eos/effects/shipbonusewremotesensordampenerfalloffbonusgc1.py +++ b/eos/effects/shipbonusewremotesensordampenerfalloffbonusgc1.py @@ -5,4 +5,4 @@ type = "passive" def handler(fit, ship, context): fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Sensor Damper", - "falloff", ship.getModifiedItemAttr("shipBonusGC"), skill="Gallente Cruiser") + "falloffEffectiveness", ship.getModifiedItemAttr("shipBonusGC"), skill="Gallente Cruiser") diff --git a/eos/effects/shipbonusremotetrackingcomputerfalloffgc2.py b/eos/effects/shipbonusremotetrackingcomputerfalloffgc2.py new file mode 100644 index 000000000..19a946193 --- /dev/null +++ b/eos/effects/shipbonusremotetrackingcomputerfalloffgc2.py @@ -0,0 +1,4 @@ +type = "passive" +def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Tracking Computer", + "falloffEffectiveness", ship.getModifiedItemAttr("shipBonusGC2"), skill="Gallente Cruiser") diff --git a/eos/effects/shipbonusremotetrackingcomputerfalloffmc.py b/eos/effects/shipbonusremotetrackingcomputerfalloffmc.py new file mode 100644 index 000000000..adaab06de --- /dev/null +++ b/eos/effects/shipbonusremotetrackingcomputerfalloffmc.py @@ -0,0 +1,4 @@ +type = "passive" +def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Tracking Computer", + "falloffEffectiveness", ship.getModifiedItemAttr("shipBonusMC"), skill="Minmatar Cruiser") diff --git a/eos/saveddata/module.py b/eos/saveddata/module.py index 2cb9d168b..1f5e84ec1 100644 --- a/eos/saveddata/module.py +++ b/eos/saveddata/module.py @@ -254,7 +254,7 @@ class Module(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut): @property def falloff(self): - attrs = ("falloff", "shipScanFalloff", "falloffEffectiveness") + attrs = ("falloffEffectiveness", "falloff", "shipScanFalloff") for attr in attrs: falloff = self.getModifiedItemAttr(attr) if falloff is not None: return falloff diff --git a/eve.db b/eve.db index 560001fc7..ffc1a069d 100644 Binary files a/eve.db and b/eve.db differ