diff options
| author | Shauren <shauren.trinity@gmail.com> | 2016-04-29 20:05:41 +0200 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2016-04-29 20:05:41 +0200 |
| commit | cc262ec12e8e51e5b295a160b1c02e4568bd5810 (patch) | |
| tree | 6ed8a6ebcf739524ec1440ca10ef60657758c723 /src/server/scripts | |
| parent | c963e703d53a9578cb5320ac0c3de24996e05906 (diff) | |
Core/Spells: Updated Eviscerate and Envenom formulas
Closes #16886
Closes #16887
Diffstat (limited to 'src/server/scripts')
| -rw-r--r-- | src/server/scripts/Spells/spell_rogue.cpp | 67 |
1 files changed, 66 insertions, 1 deletions
diff --git a/src/server/scripts/Spells/spell_rogue.cpp b/src/server/scripts/Spells/spell_rogue.cpp index 6e315e32e5a..a4f876b289e 100644 --- a/src/server/scripts/Spells/spell_rogue.cpp +++ b/src/server/scripts/Spells/spell_rogue.cpp @@ -53,7 +53,8 @@ enum RogueSpells SPELL_ROGUE_SERRATED_BLADES_R1 = 14171, SPELL_ROGUE_RUPTURE = 1943, SPELL_ROGUE_HONOR_AMONG_THIEVES = 51698, - SPELL_ROGUE_HONOR_AMONG_THIEVES_PROC = 51699 + SPELL_ROGUE_HONOR_AMONG_THIEVES_PROC = 51699, + SPELL_ROGUE_T5_2P_SET_BONUS = 37169 }; enum RogueSpellIcons @@ -944,6 +945,68 @@ public: } }; +// 2098 - Eviscerate +class spell_rog_eviscerate : public SpellScriptLoader +{ +public: + spell_rog_eviscerate() : SpellScriptLoader("spell_rog_eviscerate") { } + + class spell_rog_eviscerate_SpellScript : public SpellScript + { + PrepareSpellScript(spell_rog_eviscerate_SpellScript); + + void CalculateDamage(SpellEffIndex /*effIndex*/) + { + int32 damagePerCombo = int32(GetCaster()->GetTotalAttackPowerValue(BASE_ATTACK) * 0.559f); + if (AuraEffect const* t5 = GetCaster()->GetAuraEffect(SPELL_ROGUE_T5_2P_SET_BONUS, EFFECT_0)) + damagePerCombo += t5->GetAmount(); + + SetEffectValue(GetEffectValue() + damagePerCombo * GetCaster()->GetPower(POWER_COMBO_POINTS)); + } + + void Register() override + { + OnEffectLaunchTarget += SpellEffectFn(spell_rog_eviscerate_SpellScript::CalculateDamage, EFFECT_0, SPELL_EFFECT_SCHOOL_DAMAGE); + } + }; + + SpellScript* GetSpellScript() const override + { + return new spell_rog_eviscerate_SpellScript(); + } +}; + +// 32645 - Envenom +class spell_rog_envenom : public SpellScriptLoader +{ +public: + spell_rog_envenom() : SpellScriptLoader("spell_rog_envenom") { } + + class spell_rog_envenom_SpellScript : public SpellScript + { + PrepareSpellScript(spell_rog_envenom_SpellScript); + + void CalculateDamage(SpellEffIndex /*effIndex*/) + { + int32 damagePerCombo = int32(GetCaster()->GetTotalAttackPowerValue(BASE_ATTACK) * 0.417f); + if (AuraEffect const* t5 = GetCaster()->GetAuraEffect(SPELL_ROGUE_T5_2P_SET_BONUS, EFFECT_0)) + damagePerCombo += t5->GetAmount(); + + SetEffectValue(GetEffectValue() + damagePerCombo * GetCaster()->GetPower(POWER_COMBO_POINTS)); + } + + void Register() override + { + OnEffectLaunchTarget += SpellEffectFn(spell_rog_envenom_SpellScript::CalculateDamage, EFFECT_0, SPELL_EFFECT_SCHOOL_DAMAGE); + } + }; + + SpellScript* GetSpellScript() const override + { + return new spell_rog_envenom_SpellScript(); + } +}; + void AddSC_rogue_spell_scripts() { new spell_rog_blade_flurry(); @@ -963,4 +1026,6 @@ void AddSC_rogue_spell_scripts() new spell_rog_tricks_of_the_trade_proc(); new spell_rog_serrated_blades(); new spell_rog_honor_among_thieves(); + new spell_rog_eviscerate(); + new spell_rog_envenom(); } |
