aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNay <dnpd.dd@gmail.com>2012-08-09 11:40:26 -0700
committerNay <dnpd.dd@gmail.com>2012-08-09 11:40:26 -0700
commit081acfde534e924bf280493ea9188c5c12024b42 (patch)
tree71a7bca381820b748ce44db0a829ecb69947a012
parentca0a54f3572e91f75f880ff9b8e74c450f7d9c36 (diff)
parent68bfe8c831c107ccdd43475ed2a89b7848b6ab32 (diff)
Merge pull request #6520 from Vincent-Michael/shadowstep
Core/Spell: Fix not using Shadowstep while rooted
-rw-r--r--sql/updates/world/2012_05_15_00_world_spell_script_names.sql3
-rw-r--r--src/server/scripts/Spells/spell_rogue.cpp29
2 files changed, 32 insertions, 0 deletions
diff --git a/sql/updates/world/2012_05_15_00_world_spell_script_names.sql b/sql/updates/world/2012_05_15_00_world_spell_script_names.sql
new file mode 100644
index 00000000000..980aceff519
--- /dev/null
+++ b/sql/updates/world/2012_05_15_00_world_spell_script_names.sql
@@ -0,0 +1,3 @@
+DELETE FROM `spell_script_names` WHERE `spell_id`=36554;
+INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
+(36554,'spell_rog_shadowstep');
diff --git a/src/server/scripts/Spells/spell_rogue.cpp b/src/server/scripts/Spells/spell_rogue.cpp
index bb0fd1e73ab..ad437c5e431 100644
--- a/src/server/scripts/Spells/spell_rogue.cpp
+++ b/src/server/scripts/Spells/spell_rogue.cpp
@@ -386,6 +386,34 @@ class spell_rog_deadly_poison : public SpellScriptLoader
}
};
+class spell_rog_shadowstep : public SpellScriptLoader
+{
+ public:
+ spell_rog_shadowstep() : SpellScriptLoader("spell_rog_shadowstep") { }
+
+ class spell_rog_shadowstep_SpellScript : public SpellScript
+ {
+ PrepareSpellScript(spell_rog_shadowstep_SpellScript);
+
+ SpellCastResult CheckCast()
+ {
+ if (GetCaster()->HasUnitState(UNIT_STATE_ROOT))
+ return SPELL_FAILED_ROOTED;
+ return SPELL_CAST_OK;
+ }
+
+ void Register()
+ {
+ OnCheckCast += SpellCheckCastFn(spell_rog_shadowstep_SpellScript::CheckCast);
+ }
+ };
+
+ SpellScript* GetSpellScript() const
+ {
+ return new spell_rog_shadowstep_SpellScript();
+ }
+};
+
void AddSC_rogue_spell_scripts()
{
new spell_rog_cheat_death();
@@ -394,4 +422,5 @@ void AddSC_rogue_spell_scripts()
new spell_rog_prey_on_the_weak();
new spell_rog_shiv();
new spell_rog_deadly_poison();
+ new spell_rog_shadowstep();
}