aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorariel- <ariel-@users.noreply.github.com>2018-02-08 23:18:45 -0300
committerShauren <shauren.trinity@gmail.com>2021-06-19 23:33:25 +0200
commit3485cb38ed38aa241b6c6c19981c6df3e274e90c (patch)
treea2f8a7a7798175e296c3993e78899fc6e36936ee
parenta22ffcc18a197eb024adb3c4db087d971e439f79 (diff)
Core/Spells: remove 'Vanish Purge' hack, the spell is present on DB and is copy of one in vanilla DBC
Thanks to killerwife for the heads-up (cherry picked from commit 303efcf0e4ee9ce3cfe308a3d6aa2aece1aa39da)
-rw-r--r--src/server/game/Spells/SpellEffects.cpp7
-rw-r--r--src/server/scripts/Spells/spell_rogue.cpp99
2 files changed, 38 insertions, 68 deletions
diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp
index 69a37a4ebd1..79843c5d10f 100644
--- a/src/server/game/Spells/SpellEffects.cpp
+++ b/src/server/game/Spells/SpellEffects.cpp
@@ -635,13 +635,6 @@ void Spell::EffectTriggerSpell(SpellEffIndex /*effIndex*/)
// special cases
switch (triggered_spell_id)
{
- // Vanish (not exist)
- case 18461:
- {
- unitTarget->RemoveMovementImpairingAuras(true);
- unitTarget->RemoveAurasByType(SPELL_AURA_MOD_STALKED);
- return;
- }
// Demonic Empowerment -- succubus
case 54437:
{
diff --git a/src/server/scripts/Spells/spell_rogue.cpp b/src/server/scripts/Spells/spell_rogue.cpp
index 033e8b255be..6141e0f1a41 100644
--- a/src/server/scripts/Spells/spell_rogue.cpp
+++ b/src/server/scripts/Spells/spell_rogue.cpp
@@ -431,80 +431,57 @@ class spell_rog_stealth : public SpellScriptLoader
};
// 1856 - Vanish
-class spell_rog_vanish : public SpellScriptLoader
+class spell_rog_vanish : public SpellScript
{
- public:
- spell_rog_vanish() : SpellScriptLoader("spell_rog_vanish") { }
-
- class spell_rog_vanish_SpellScript : public SpellScript
- {
- PrepareSpellScript(spell_rog_vanish_SpellScript);
-
- bool Validate(SpellInfo const* /*spellInfo*/) override
- {
- return ValidateSpellInfo({ SPELL_ROGUE_VANISH_AURA, SPELL_ROGUE_STEALTH_SHAPESHIFT_AURA });
- }
+ PrepareSpellScript(spell_rog_vanish);
- void OnLaunchTarget(SpellEffIndex effIndex)
- {
- PreventHitDefaultEffect(effIndex);
+ bool Validate(SpellInfo const* /*spellInfo*/) override
+ {
+ return ValidateSpellInfo({ SPELL_ROGUE_VANISH_AURA, SPELL_ROGUE_STEALTH_SHAPESHIFT_AURA });
+ }
- Unit* target = GetHitUnit();
+ void OnLaunchTarget(SpellEffIndex effIndex)
+ {
+ PreventHitDefaultEffect(effIndex);
- target->RemoveMovementImpairingAuras(true);
- target->RemoveAurasByType(SPELL_AURA_MOD_STALKED);
- if (target->GetTypeId() != TYPEID_PLAYER)
- return;
+ Unit* target = GetHitUnit();
- if (target->HasAura(SPELL_ROGUE_VANISH_AURA))
- return;
+ target->RemoveAurasByType(SPELL_AURA_MOD_STALKED);
+ if (target->GetTypeId() != TYPEID_PLAYER)
+ return;
- target->CastSpell(target, SPELL_ROGUE_VANISH_AURA, TRIGGERED_FULL_MASK);
- target->CastSpell(target, SPELL_ROGUE_STEALTH_SHAPESHIFT_AURA, TRIGGERED_FULL_MASK);
- }
+ if (target->HasAura(SPELL_ROGUE_VANISH_AURA))
+ return;
- void Register() override
- {
- OnEffectLaunchTarget += SpellEffectFn(spell_rog_vanish_SpellScript::OnLaunchTarget, EFFECT_1, SPELL_EFFECT_TRIGGER_SPELL);
- }
- };
+ target->CastSpell(target, SPELL_ROGUE_VANISH_AURA, TRIGGERED_FULL_MASK);
+ target->CastSpell(target, SPELL_ROGUE_STEALTH_SHAPESHIFT_AURA, TRIGGERED_FULL_MASK);
+ }
- SpellScript* GetSpellScript() const override
- {
- return new spell_rog_vanish_SpellScript();
- }
+ void Register() override
+ {
+ OnEffectLaunchTarget += SpellEffectFn(spell_rog_vanish::OnLaunchTarget, EFFECT_1, SPELL_EFFECT_TRIGGER_SPELL);
+ }
};
// 11327 - Vanish
-class spell_rog_vanish_aura : public SpellScriptLoader
+class spell_rog_vanish_aura : public AuraScript
{
- public:
- spell_rog_vanish_aura() : SpellScriptLoader("spell_rog_vanish_aura") { }
-
- class spell_rog_vanish_aura_AuraScript : public AuraScript
- {
- PrepareAuraScript(spell_rog_vanish_aura_AuraScript);
+ PrepareAuraScript(spell_rog_vanish_aura);
- bool Validate(SpellInfo const* /*spellInfo*/) override
- {
- return ValidateSpellInfo({ SPELL_ROGUE_STEALTH });
- }
-
- void HandleEffectRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
- {
- GetTarget()->CastSpell(GetTarget(), SPELL_ROGUE_STEALTH, TRIGGERED_FULL_MASK);
- }
+ bool Validate(SpellInfo const* /*spellInfo*/) override
+ {
+ return ValidateSpellInfo({ SPELL_ROGUE_STEALTH });
+ }
- void Register() override
- {
- AfterEffectRemove += AuraEffectRemoveFn(spell_rog_vanish_aura_AuraScript::HandleEffectRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
- }
- };
+ void HandleEffectRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
+ {
+ GetTarget()->CastSpell(GetTarget(), SPELL_ROGUE_STEALTH, TRIGGERED_FULL_MASK);
+ }
- AuraScript* GetAuraScript() const override
- {
- return new spell_rog_vanish_aura_AuraScript();
- }
+ void Register() override
+ {
+ AfterEffectRemove += AuraEffectRemoveFn(spell_rog_vanish_aura::HandleEffectRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
+ }
};
// 57934 - Tricks of the Trade
@@ -699,8 +676,8 @@ void AddSC_rogue_spell_scripts()
new spell_rog_killing_spree();
new spell_rog_rupture();
new spell_rog_stealth();
- new spell_rog_vanish();
- new spell_rog_vanish_aura();
+ RegisterSpellScript(spell_rog_vanish);
+ RegisterAuraScript(spell_rog_vanish_aura);
RegisterSpellAndAuraScriptPair(spell_rog_tricks_of_the_trade, spell_rog_tricks_of_the_trade_aura);
RegisterAuraScript(spell_rog_tricks_of_the_trade_proc);
new spell_rog_honor_among_thieves();