aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorModoX <moardox@gmail.com>2023-05-14 18:30:45 +0200
committerModoX <moardox@gmail.com>2023-05-14 18:35:02 +0200
commitd64f7c332e1c6b9d15240979f3f95db4131ff17c (patch)
treecbecdae8e96f37f7ee3d43c68fec07adc62ca58c /src
parenteadafb0347d606e5e3e660d21227aa15378bdb21 (diff)
Scripts/Warrior: Implemented Fueled by Violence
Closes #28976 Co-authored-by: SargeroDeV <83485584+SargeroDeV@users.noreply.github.com>
Diffstat (limited to 'src')
-rw-r--r--src/server/scripts/Spells/spell_warrior.cpp42
1 files changed, 42 insertions, 0 deletions
diff --git a/src/server/scripts/Spells/spell_warrior.cpp b/src/server/scripts/Spells/spell_warrior.cpp
index dde78d06f96..b37b8ce1c6c 100644
--- a/src/server/scripts/Spells/spell_warrior.cpp
+++ b/src/server/scripts/Spells/spell_warrior.cpp
@@ -44,6 +44,7 @@ enum WarriorSpells
SPELL_WARRIOR_COLOSSUS_SMASH = 167105,
SPELL_WARRIOR_COLOSSUS_SMASH_EFFECT = 208086,
SPELL_WARRIOR_EXECUTE = 20647,
+ SPELL_WARRIOR_FUELED_BY_VIOLENCE_HEAL = 383104,
SPELL_WARRIOR_GLYPH_OF_THE_BLAZING_TRAIL = 123779,
SPELL_WARRIOR_GLYPH_OF_HEROIC_LEAP = 159708,
SPELL_WARRIOR_GLYPH_OF_HEROIC_LEAP_BUFF = 133278,
@@ -199,6 +200,46 @@ class spell_warr_colossus_smash : public SpellScript
}
};
+// 383103 - Fueled by Violence
+class spell_warr_fueled_by_violence : public AuraScript
+{
+ PrepareAuraScript(spell_warr_fueled_by_violence);
+
+ bool Validate(SpellInfo const* spellInfo) override
+ {
+ return ValidateSpellInfo({ SPELL_WARRIOR_FUELED_BY_VIOLENCE_HEAL });
+ }
+
+ void HandleProc(ProcEventInfo& eventInfo)
+ {
+ PreventDefaultAction();
+
+ _nextHealAmount += CalculatePct(eventInfo.GetDamageInfo()->GetDamage(), GetEffectInfo(EFFECT_0).CalcValue(GetTarget()));
+ }
+
+ void HandlePeriodic(AuraEffect const* aurEff)
+ {
+ if (_nextHealAmount == 0)
+ return;
+
+ Unit* target = GetTarget();
+ CastSpellExtraArgs args(TRIGGERED_FULL_MASK);
+ args.AddSpellBP0(_nextHealAmount);
+
+ target->CastSpell(target, SPELL_WARRIOR_FUELED_BY_VIOLENCE_HEAL, args);
+ _nextHealAmount = 0;
+ }
+
+ void Register() override
+ {
+ OnProc += AuraProcFn(spell_warr_fueled_by_violence::HandleProc);
+ OnEffectPeriodic += AuraEffectPeriodicFn(spell_warr_fueled_by_violence::HandlePeriodic, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY);
+ }
+
+private:
+ uint32 _nextHealAmount;
+};
+
// 6544 - Heroic leap
class spell_warr_heroic_leap : public SpellScript
{
@@ -640,6 +681,7 @@ void AddSC_warrior_spell_scripts()
RegisterSpellScript(spell_warr_charge_drop_fire_periodic);
RegisterSpellScript(spell_warr_charge_effect);
RegisterSpellScript(spell_warr_colossus_smash);
+ RegisterSpellScript(spell_warr_fueled_by_violence);
RegisterSpellScript(spell_warr_heroic_leap);
RegisterSpellScript(spell_warr_heroic_leap_jump);
RegisterSpellScript(spell_warr_impending_victory);