aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAqua Deus <95978183+aquadeus@users.noreply.github.com>2025-05-24 19:15:58 +0200
committerGitHub <noreply@github.com>2025-05-24 19:15:58 +0200
commitecdd12ea6c0812fe2a57c98309ee782e7d20c633 (patch)
treee9406ecf9d1946e5ce8e27182e2342896c4c83ae
parentdc4740cbb749a36855d8d932ef746112ed18a3ad (diff)
Scripts/Spells: Fix warrior talent Avatar removing movement impairing auras (#30985)
-rw-r--r--sql/updates/world/master/2025_05_24_00_world.sql3
-rw-r--r--src/server/scripts/Spells/spell_warrior.cpp15
2 files changed, 18 insertions, 0 deletions
diff --git a/sql/updates/world/master/2025_05_24_00_world.sql b/sql/updates/world/master/2025_05_24_00_world.sql
new file mode 100644
index 00000000000..00f8e6ca11b
--- /dev/null
+++ b/sql/updates/world/master/2025_05_24_00_world.sql
@@ -0,0 +1,3 @@
+DELETE FROM `spell_script_names` WHERE `ScriptName`='spell_warr_avatar';
+INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
+(107574, 'spell_warr_avatar');
diff --git a/src/server/scripts/Spells/spell_warrior.cpp b/src/server/scripts/Spells/spell_warrior.cpp
index 16df4f1dc3b..00fdaa531fd 100644
--- a/src/server/scripts/Spells/spell_warrior.cpp
+++ b/src/server/scripts/Spells/spell_warrior.cpp
@@ -83,6 +83,20 @@ enum WarriorMisc
SPELL_VISUAL_BLAZING_CHARGE = 26423
};
+// 107574 - Avatar
+class spell_warr_avatar : public SpellScript
+{
+ void HandleRemoveImpairingAuras(SpellEffIndex /*effIndex*/) const
+ {
+ GetCaster()->RemoveMovementImpairingAuras(true);
+ }
+
+ void Register() override
+ {
+ OnEffectHitTarget += SpellEffectFn(spell_warr_avatar::HandleRemoveImpairingAuras, EFFECT_5, SPELL_EFFECT_SCRIPT_EFFECT);
+ }
+};
+
// 23881 - Bloodthirst
class spell_warr_bloodthirst : public SpellScript
{
@@ -860,6 +874,7 @@ class spell_warr_victory_rush : public SpellScript
void AddSC_warrior_spell_scripts()
{
+ RegisterSpellScript(spell_warr_avatar);
RegisterSpellScript(spell_warr_bloodthirst);
RegisterSpellScript(spell_warr_brutal_vitality);
RegisterSpellScript(spell_warr_charge);