diff options
| author | DoctorKraft <david.serdobbel.bizness@gmail.com> | 2017-02-02 18:19:08 +0100 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2017-02-02 18:19:08 +0100 |
| commit | 8aa07daff38b2f006b5f4b648bb1eea37fe633d7 (patch) | |
| tree | 3379631b3612d74f96bc0a86c4f60ac05e611856 /src | |
| parent | 9850e1eef65ff8058eba651e49241011165ac251 (diff) | |
Core/Spells: Divine Steed (#19027)
Diffstat (limited to 'src')
| -rw-r--r-- | src/server/scripts/Spells/spell_paladin.cpp | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/src/server/scripts/Spells/spell_paladin.cpp b/src/server/scripts/Spells/spell_paladin.cpp index 2cf48ae687a..ac5ebd7122f 100644 --- a/src/server/scripts/Spells/spell_paladin.cpp +++ b/src/server/scripts/Spells/spell_paladin.cpp @@ -41,6 +41,10 @@ enum PaladinSpells SPELL_PALADIN_CONCENTRACTION_AURA = 19746, SPELL_PALADIN_DIVINE_PURPOSE_PROC = 90174, SPELL_PALADIN_DIVINE_SACRIFICE = 64205, + SPELL_PALADIN_DIVINE_STEED_HUMAN = 221883, + SPELL_PALADIN_DIVINE_STEED_DRAENEI = 221887, + SPELL_PALADIN_DIVINE_STEED_BLOODELF = 221886, + SPELL_PALADIN_DIVINE_STEED_TAUREN = 221885, SPELL_PALADIN_DIVINE_STORM = 53385, SPELL_PALADIN_DIVINE_STORM_DUMMY = 54171, SPELL_PALADIN_DIVINE_STORM_HEAL = 54172, @@ -340,6 +344,65 @@ class spell_pal_blessing_of_faith : public SpellScriptLoader } }; +// 190784 - Divine Steed +class spell_pal_divine_steed : public SpellScriptLoader +{ +public: + spell_pal_divine_steed() : SpellScriptLoader("spell_pal_divine_steed") { } + + class spell_pal_divine_steed_SpellScript : public SpellScript + { + PrepareSpellScript(spell_pal_divine_steed_SpellScript); + + bool Validate(SpellInfo const* /*spellInfo*/) override + { + if (!sSpellMgr->GetSpellInfo(SPELL_PALADIN_DIVINE_STEED_HUMAN) || + !sSpellMgr->GetSpellInfo(SPELL_PALADIN_DIVINE_STEED_DRAENEI) || + !sSpellMgr->GetSpellInfo(SPELL_PALADIN_DIVINE_STEED_BLOODELF) || + !sSpellMgr->GetSpellInfo(SPELL_PALADIN_DIVINE_STEED_TAUREN)) + return false; + return true; + } + + void HandleOnCast() + { + Unit* caster = GetCaster(); + + uint32 spellId = SPELL_PALADIN_DIVINE_STEED_HUMAN; + switch (caster->getRace()) + { + case RACE_HUMAN: + case RACE_DWARF: + spellId = SPELL_PALADIN_DIVINE_STEED_HUMAN; + break; + case RACE_DRAENEI: + spellId = SPELL_PALADIN_DIVINE_STEED_DRAENEI; + break; + case RACE_BLOODELF: + spellId = SPELL_PALADIN_DIVINE_STEED_BLOODELF; + break; + case RACE_TAUREN: + spellId = SPELL_PALADIN_DIVINE_STEED_TAUREN; + break; + default: + break; + } + + caster->CastSpell(caster, spellId, true); + } + + void Register() + { + OnCast += SpellCastFn(spell_pal_divine_steed_SpellScript::HandleOnCast); + } + }; + + SpellScript* GetSpellScript() const override + { + return new spell_pal_divine_steed_SpellScript(); + } +}; + // 53385 - Divine Storm class spell_pal_divine_storm : public SpellScriptLoader { @@ -1221,6 +1284,7 @@ void AddSC_paladin_spell_scripts() new spell_pal_aura_mastery_immune(); new spell_pal_avenging_wrath(); new spell_pal_blessing_of_faith(); + new spell_pal_divine_steed(); new spell_pal_divine_storm(); new spell_pal_divine_storm_dummy(); new spell_pal_exorcism_and_holy_wrath_damage(); |
