aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/scripts/Spells/spell_generic.cpp56
1 files changed, 56 insertions, 0 deletions
diff --git a/src/server/scripts/Spells/spell_generic.cpp b/src/server/scripts/Spells/spell_generic.cpp
index ddf4324a715..f693c1b249e 100644
--- a/src/server/scripts/Spells/spell_generic.cpp
+++ b/src/server/scripts/Spells/spell_generic.cpp
@@ -1105,6 +1105,61 @@ class spell_gen_lifeblood : public SpellScriptLoader
}
};
+enum MagicRoosterSpells
+{
+ SPELL_MAGIC_ROOSTER_NORMAL = 66122,
+ SPELL_MAGIC_ROOSTER_DRAENEI_MALE = 66123,
+ SPELL_MAGIC_ROOSTER_TAUREN_MALE = 66124,
+};
+
+class spell_gen_magic_rooster : public SpellScriptLoader
+{
+ public:
+ spell_gen_magic_rooster() : SpellScriptLoader("spell_gen_magic_rooster") { }
+
+ class spell_gen_magic_rooster_SpellScript : public SpellScript
+ {
+ PrepareSpellScript(spell_gen_magic_rooster_SpellScript);
+
+ void HandleScript(SpellEffIndex effIndex)
+ {
+ PreventHitDefaultEffect(effIndex);
+ Player* target = GetHitPlayer();
+ if (!target)
+ return;
+
+ // prevent client crashes from stacking mounts
+ target->RemoveAurasByType(SPELL_AURA_MOUNTED);
+
+ uint32 spellId = SPELL_MAGIC_ROOSTER_NORMAL;
+ switch (target->getRace())
+ {
+ case RACE_DRAENEI:
+ if (target->getGender() == GENDER_MALE)
+ spellId = SPELL_MAGIC_ROOSTER_DRAENEI_MALE;
+ break;
+ case RACE_TAUREN:
+ if (target->getGender() == GENDER_MALE)
+ spellId = SPELL_MAGIC_ROOSTER_TAUREN_MALE;
+ break;
+ default:
+ break;
+ }
+
+ target->CastSpell(target, spellId, true);
+ }
+
+ void Register()
+ {
+ OnEffect += SpellEffectFn(spell_gen_magic_rooster_SpellScript::HandleScript, EFFECT_2, SPELL_EFFECT_SCRIPT_EFFECT);
+ }
+ };
+
+ SpellScript* GetSpellScript() const
+ {
+ return new spell_gen_magic_rooster_SpellScript();
+ }
+};
void AddSC_generic_spell_scripts()
{
@@ -1132,4 +1187,5 @@ void AddSC_generic_spell_scripts()
new spell_gen_seaforium_blast();
new spell_gen_turkey_marker();
new spell_gen_lifeblood();
+ new spell_gen_magic_rooster();
}