diff --git a/eos/effects/commandbonustdmultiplywithcommandbonushidden.py b/eos/effects/commandbonustdmultiplywithcommandbonushidden.py index 215d539b9..11987a66b 100644 --- a/eos/effects/commandbonustdmultiplywithcommandbonushidden.py +++ b/eos/effects/commandbonustdmultiplywithcommandbonushidden.py @@ -7,6 +7,14 @@ gangBoost = "ewarStrTD" type = "active", "gang" def handler(fit, module, context): if "gang" not in context: return - for bonus in ("maxRangeBonus", "falloffBonus", "trackingSpeedBonus"): + for bonus in ( + "missileVelocityBonus", + "explosionDelayBonus", + "aoeVelocityBonus", + "falloffBonus", + "maxRangeBonus", + "aoeCloudSizeBonus", + "trackingSpeedBonus" + ): fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Weapon Disruption"), bonus, module.getModifiedItemAttr("commandBonusTD")) diff --git a/eos/effects/commandbonustpmultiplywithcommandbonushidden.py b/eos/effects/commandbonustpmultiplywithcommandbonushidden.py index ba2627080..f3ae01698 100644 --- a/eos/effects/commandbonustpmultiplywithcommandbonushidden.py +++ b/eos/effects/commandbonustpmultiplywithcommandbonushidden.py @@ -7,6 +7,6 @@ gangBoost = "ewarStrTP" type = "active", "gang" def handler(fit, module, context): if "gang" not in context: return - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Target Painter", + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Target Painting"), "signatureRadiusBonus", module.getModifiedItemAttr("commandBonusTP"), stackingPenalties = True) diff --git a/eos/effects/energytransferarraymaxrangebonus.py b/eos/effects/energytransferarraymaxrangebonus.py index 67a59b742..3ec67bee9 100644 --- a/eos/effects/energytransferarraymaxrangebonus.py +++ b/eos/effects/energytransferarraymaxrangebonus.py @@ -6,4 +6,4 @@ type = "passive" def handler(fit, ship, context): fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Capacitor Transmitter", - "powerTransferRange", ship.getModifiedItemAttr("maxRangeBonus")) + "powerTransferRange", ship.getModifiedItemAttr("maxRangeBonus2")) diff --git a/eos/effects/ewskillguidancedisruptionbonus.py b/eos/effects/ewskillguidancedisruptionbonus.py new file mode 100644 index 000000000..994070ac0 --- /dev/null +++ b/eos/effects/ewskillguidancedisruptionbonus.py @@ -0,0 +1,11 @@ +type = "passive" +def handler(fit, src, context): + level = src.level if "skill" in context else 1 + for attr in ( + "explosionDelayBonus", + "aoeVelocityBonus", + "aoeCloudSizeBonus", + "missileVelocityBonus" + ): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Weapon Disruption"), + attr, src.getModifiedItemAttr("scanSkillEwStrengthBonus") * level) \ No newline at end of file diff --git a/eos/effects/ganginformationwarfaresuperiorityall2.py b/eos/effects/ganginformationwarfaresuperiorityall2.py new file mode 100644 index 000000000..9dc9cd81c --- /dev/null +++ b/eos/effects/ganginformationwarfaresuperiorityall2.py @@ -0,0 +1,6 @@ +type = "active" +def handler(fit, module, context): + module.multiplyItemAttr("commandBonusTD", module.getModifiedItemAttr("commandBonusHidden")) + module.multiplyItemAttr("commandBonusECM", module.getModifiedItemAttr("commandBonusHidden")) + module.multiplyItemAttr("commandBonusRSD", module.getModifiedItemAttr("commandBonusHidden")) + module.multiplyItemAttr("commandBonusTP", module.getModifiedItemAttr("commandBonusHidden")) \ No newline at end of file diff --git a/eos/effects/ignorecloakvelocitypenalty.py b/eos/effects/ignorecloakvelocitypenalty.py new file mode 100644 index 000000000..7b0e9e80b --- /dev/null +++ b/eos/effects/ignorecloakvelocitypenalty.py @@ -0,0 +1,5 @@ +type = "passive" +runTime = "early" +def handler(fit, src, context): + fit.modules.filteredItemForce(lambda mod: mod.item.group.name == "Cloaking Device", + "maxVelocityBonus", src.getModifiedItemAttr("velocityPenaltyReduction")) diff --git a/eos/effects/overloadselfmissileguidancemodulebonus.py b/eos/effects/overloadselfmissileguidancemodulebonus.py new file mode 100644 index 000000000..09a75f04c --- /dev/null +++ b/eos/effects/overloadselfmissileguidancemodulebonus.py @@ -0,0 +1,9 @@ +type = "overheat" +def handler(fit, module, context): + for tgtAttr in ( + "aoeCloudSizeBonus", + "explosionDelayBonus", + "missileVelocityBonus", + "aoeVelocityBonus" + ): + module.boostItemAttr(tgtAttr, module.getModifiedItemAttr("overloadTrackingModuleStrengthBonus")) \ No newline at end of file diff --git a/eos/effects/remotehullrepairfalloff.py b/eos/effects/remotehullrepairfalloff.py new file mode 100644 index 000000000..bb15c0a11 --- /dev/null +++ b/eos/effects/remotehullrepairfalloff.py @@ -0,0 +1,12 @@ +# remoteHullRepair +# +# Used by: +# Modules from group: Remote Hull Repairer (7 of 7) +# Drones named like: Hull Maintenance Bot (6 of 6) +type = "projected", "active" +runTime = "late" +def handler(fit, module, context): + if "projected" not in context: return + bonus = module.getModifiedItemAttr("structureDamageAmount") + duration = module.getModifiedItemAttr("duration") / 1000.0 + fit.extraAttributes.increase("hullRepair", bonus / duration) diff --git a/eos/effects/rolebonusjustscramblerstrength.py b/eos/effects/rolebonusjustscramblerstrength.py new file mode 100644 index 000000000..cbf2667e2 --- /dev/null +++ b/eos/effects/rolebonusjustscramblerstrength.py @@ -0,0 +1,4 @@ +type = "passive" +def handler(fit, ship, context): + fit.modules.filteredItemIncrease(lambda mod: mod.item.requiresSkill("Navigation"), + "warpScrambleStrength", ship.getModifiedItemAttr("roleBonus")) \ No newline at end of file diff --git a/eos/effects/shipbonusewweapondisruptionstrengthac1.py b/eos/effects/shipbonusewweapondisruptionstrengthac1.py new file mode 100644 index 000000000..5a947e8e4 --- /dev/null +++ b/eos/effects/shipbonusewweapondisruptionstrengthac1.py @@ -0,0 +1,9 @@ +type = "passive" +def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Weapon Disruption"), "missileVelocityBonus", src.getModifiedItemAttr("shipBonusAC"), skill="Amarr Cruiser") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Weapon Disruption"), "aoeVelocityBonus", src.getModifiedItemAttr("shipBonusAC"), skill="Amarr Cruiser") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Weapon Disruption"), "maxRangeBonus", src.getModifiedItemAttr("shipBonusAC"), skill="Amarr Cruiser") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Weapon Disruption"), "explosionDelayBonus", src.getModifiedItemAttr("shipBonusAC"), skill="Amarr Cruiser") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Weapon Disruption"), "aoeCloudSizeBonus", src.getModifiedItemAttr("shipBonusAC"), skill="Amarr Cruiser") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Weapon Disruption"), "trackingSpeedBonus", src.getModifiedItemAttr("shipBonusAC"), skill="Amarr Cruiser") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Weapon Disruption"), "falloffBonus", src.getModifiedItemAttr("shipBonusAC"), skill="Amarr Cruiser") diff --git a/eos/effects/targetmissiledisruptorhostile.py b/eos/effects/targetmissiledisruptorhostile.py new file mode 100644 index 000000000..489c4d99b --- /dev/null +++ b/eos/effects/targetmissiledisruptorhostile.py @@ -0,0 +1,51 @@ +# targetMissileDisruptorHostile +# Modifier 1: +# # state: active +# # scope: projected +# # srcattr: explosionDelayBonus 596 +# # operator: post_percent 8 +# # tgtattr: explosionDelay (penalized) 281 +# # location: ship +# # filter type: skill +# # filter value: Missile Launcher Operation +# Modifier 2: +# # state: active +# # scope: projected +# # srcattr: aoeVelocityBonus 847 +# # operator: post_percent 8 +# # tgtattr: aoeVelocity (penalized) 653 +# # location: ship +# # filter type: skill +# # filter value: Missile Launcher Operation +# Modifier 3: +# # state: active +# # scope: projected +# # srcattr: aoeCloudSizeBonus 848 +# # operator: post_percent 8 +# # tgtattr: aoeCloudSize (penalized) 654 +# # location: ship +# # filter type: skill +# # filter value: Missile Launcher Operation +# Modifier 4: +# # state: active +# # scope: projected +# # srcattr: missileVelocityBonus 547 +# # operator: post_percent 8 +# # tgtattr: maxVelocity (penalized) 37 +# # location: ship +# # filter type: skill +# # filter value: Missile Launcher Operation +# +type = "active", "projected" + +def handler(fit, src, context): + if "projected" in context: + for srcAttr, tgtAttr in ( + ("aoeCloudSizeBonus", "aoeCloudSize"), + ("aoeVelocityBonus", "aoeVelocity"), + ("missileVelocityBonus", "maxVelocity"), + ("explosionDelayBonus", "explosionDelay"), + ): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), + tgtAttr, src.getModifiedItemAttr(srcAttr), + stackingPenalties=True) diff --git a/eve.db b/eve.db index 4ca166e48..708420716 100644 Binary files a/eve.db and b/eve.db differ