aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/updates/world/master/9999_99_99_99_world.sql3
-rw-r--r--src/server/scripts/Spells/spell_paladin.cpp64
2 files changed, 67 insertions, 0 deletions
diff --git a/sql/updates/world/master/9999_99_99_99_world.sql b/sql/updates/world/master/9999_99_99_99_world.sql
new file mode 100644
index 00000000000..218232fe696
--- /dev/null
+++ b/sql/updates/world/master/9999_99_99_99_world.sql
@@ -0,0 +1,3 @@
+DELETE FROM `spell_script_names` WHERE `ScriptName`='spell_pal_divine_steed';
+INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
+('190784', 'spell_pal_divine_steed');
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();