diff --git a/eos/effects/cloakingprototype.py b/eos/effects/cloakingprototype.py new file mode 100644 index 000000000..9e7c65c17 --- /dev/null +++ b/eos/effects/cloakingprototype.py @@ -0,0 +1,14 @@ +# cloakingPrototype +# +# Used by: +# Modules named like: Prototype Cloaking Device I (2 of 2) +type = "active" +runTime = "early" +#TODO: Rewrite this effect +def handler(fit, module, context): + # Set flag which is used to determine if ship is cloaked or not + # This is used to apply cloak-only bonuses, like Black Ops' speed bonus + # Doesn't apply to covops cloaks + fit.extraAttributes["cloaked"] = True + # Apply speed penalty + fit.ship.multiplyItemAttr("maxVelocity", module.getModifiedItemAttr("maxVelocityBonus")) diff --git a/eos/effects/drawbackwarpspeed.py b/eos/effects/drawbackwarpspeed.py new file mode 100644 index 000000000..70ae85e3b --- /dev/null +++ b/eos/effects/drawbackwarpspeed.py @@ -0,0 +1,7 @@ +# drawbackWarpSpeed +# +# Used by: +# Modules named like: Higgs Anchor I (4 of 4) +type = "passive" +def handler(fit, module, context): + fit.ship.boostItemAttr("warpSpeedMultiplier", module.getModifiedItemAttr("drawback"), stackingPenalties=True) diff --git a/eos/effects/elitebonusheavyinterdictorlightmissilevelocitybonus.py b/eos/effects/elitebonusheavyinterdictorlightmissilevelocitybonus.py new file mode 100644 index 000000000..fb3d8e6b4 --- /dev/null +++ b/eos/effects/elitebonusheavyinterdictorlightmissilevelocitybonus.py @@ -0,0 +1,9 @@ +# eliteBonusHeavyInterdictorLightMissileVelocityBonus +# +# Used by: +# Ship: Onyx +type = "passive" +def handler(fit, ship, context): + level = fit.character.getSkill("Heavy Interdiction Cruisers").level + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Light Missiles"), + "maxVelocity", ship.getModifiedItemAttr("eliteBonusHeavyInterdictors1") * level) diff --git a/eos/effects/elitebonusheavyinterdictorshybridoptimal1.py b/eos/effects/elitebonusheavyinterdictorshybridoptimal1.py new file mode 100644 index 000000000..d3ab00f75 --- /dev/null +++ b/eos/effects/elitebonusheavyinterdictorshybridoptimal1.py @@ -0,0 +1,9 @@ +# eliteBonusHeavyInterdictorsHybridOptimal1 +# +# Used by: +# Ship: Phobos +type = "passive" +def handler(fit, ship, context): + level = fit.character.getSkill("Heavy Interdiction Cruisers").level + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), + "maxRange", ship.getModifiedItemAttr("eliteBonusHeavyInterdictors1") * level) diff --git a/eos/effects/elitebonusheavyinterdictorsmetoptimal.py b/eos/effects/elitebonusheavyinterdictorsmetoptimal.py new file mode 100644 index 000000000..e7f159fe2 --- /dev/null +++ b/eos/effects/elitebonusheavyinterdictorsmetoptimal.py @@ -0,0 +1,9 @@ +# eliteBonusHeavyInterdictorsMETOptimal +# +# Used by: +# Ship: Devoter +type = "passive" +def handler(fit, ship, context): + level = fit.character.getSkill("Heavy Interdiction Cruisers").level + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Energy Turret"), + "maxRange", ship.getModifiedItemAttr("eliteBonusHeavyInterdictors1") * level) diff --git a/eos/effects/massreductionbonuspassive.py b/eos/effects/massreductionbonuspassive.py new file mode 100644 index 000000000..f3d5c8f6f --- /dev/null +++ b/eos/effects/massreductionbonuspassive.py @@ -0,0 +1,7 @@ +# massReductionBonusPassive +# +# Used by: +# Modules named like: Higgs Anchor I (4 of 4) +type = "passive" +def handler(fit, module, context): + fit.ship.boostItemAttr("mass", module.getModifiedItemAttr("massBonusPercentage"), stackingPenalties=True) diff --git a/eos/effects/resistancekillerhullall.py b/eos/effects/resistancekillerhullall.py new file mode 100644 index 000000000..19f670dd7 --- /dev/null +++ b/eos/effects/resistancekillerhullall.py @@ -0,0 +1,9 @@ +# resistanceKillerHullAll +# +# Used by: +# Modules named like: Polarized (12 of 18) +type = "passive" +def handler(fit, module, context): + for dmgType in ('em', 'thermal', 'kinetic', 'explosive'): + tgtAttr = '{}DamageResonance'.format(dmgType) + fit.ship.forceItemAttr(tgtAttr, module.getModifiedItemAttr("resistanceKillerHull")) diff --git a/eos/effects/resistancekillershieldarmorall.py b/eos/effects/resistancekillershieldarmorall.py new file mode 100644 index 000000000..d513103fe --- /dev/null +++ b/eos/effects/resistancekillershieldarmorall.py @@ -0,0 +1,10 @@ +# resistanceKillerShieldArmorAll +# +# Used by: +# Modules named like: Polarized (12 of 18) +type = "passive" +def handler(fit, module, context): + for layer in ('armor', 'shield'): + for dmgType in ('em', 'thermal', 'kinetic', 'explosive'): + tgtAttr = '{}{}DamageResonance'.format(layer, dmgType.capitalize()) + fit.ship.forceItemAttr(tgtAttr, module.getModifiedItemAttr("resistanceKiller")) diff --git a/eos/effects/shiphybridtrackinggc.py b/eos/effects/shiphybridtrackinggc.py new file mode 100644 index 000000000..f99cea0b0 --- /dev/null +++ b/eos/effects/shiphybridtrackinggc.py @@ -0,0 +1,9 @@ +# shipHybridTrackingGC +# +# Used by: +# Ship: Phobos +type = "passive" +def handler(fit, ship, context): + level = fit.character.getSkill("Gallente Cruiser").level + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), + "trackingSpeed", ship.getModifiedItemAttr("shipBonusGC") * level) diff --git a/eos/effects/shipmetdamagebonusac2.py b/eos/effects/shipmetdamagebonusac2.py new file mode 100644 index 000000000..8d01df52d --- /dev/null +++ b/eos/effects/shipmetdamagebonusac2.py @@ -0,0 +1,9 @@ +# shipMETDamageBonusAC2 +# +# Used by: +# Ship: Devoter +type = "passive" +def handler(fit, ship, context): + level = fit.character.getSkill("Amarr Cruiser").level + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Energy Turret"), + "damageMultiplier", ship.getModifiedItemAttr("shipBonusAC2") * level) diff --git a/eos/effects/shipmissilelauncherrofcc2.py b/eos/effects/shipmissilelauncherrofcc2.py new file mode 100644 index 000000000..8cab36a7e --- /dev/null +++ b/eos/effects/shipmissilelauncherrofcc2.py @@ -0,0 +1,9 @@ +# shipMissileLauncherRofCC2 +# +# Used by: +# Ship: Onyx +type = "passive" +def handler(fit, ship, context): + level = fit.character.getSkill("Caldari Cruiser").level + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Missile Launcher Operation"), + "speed", ship.getModifiedItemAttr("shipBonusCC2") * level)