diff options
author | offl <11556157+offl@users.noreply.github.com> | 2022-01-22 19:04:25 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-01-22 19:04:25 +0200 |
commit | e3409e277d22d80c42d406748aa0cc2505b3bb9f (patch) | |
tree | 90dc59b339dfc0fc399375948808eb604d905c14 /src | |
parent | 7a4f1fd2016c14b8f518dbd9fdad0b92c4270ce4 (diff) |
Scripts/Spells: Handle player talk in spell scripts pt 3 (#27657)
Diffstat (limited to 'src')
-rw-r--r-- | src/server/scripts/Northrend/zone_borean_tundra.cpp | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/src/server/scripts/Northrend/zone_borean_tundra.cpp b/src/server/scripts/Northrend/zone_borean_tundra.cpp index 30d141dafc0..22300db39c0 100644 --- a/src/server/scripts/Northrend/zone_borean_tundra.cpp +++ b/src/server/scripts/Northrend/zone_borean_tundra.cpp @@ -1896,6 +1896,69 @@ class spell_dispel_freed_soldier_debuff : public SpellScript } }; +/*###### +## Quest 11690: Bring 'Em Back Alive +######*/ + +enum BringEmBackAlive +{ + SPELL_KODO_DELIVERED = 48203, + + TEXT_DELIVERED_1 = 24881, + TEXT_DELIVERED_2 = 24882, + TEXT_DELIVERED_3 = 26284, + TEXT_DELIVERED_4 = 26285, + TEXT_DELIVERED_5 = 26286 +}; + +// 45877 - Deliver Kodo +class spell_deliver_kodo : public SpellScript +{ + PrepareSpellScript(spell_deliver_kodo); + + bool Validate(SpellInfo const* /*spell*/) override + { + return ValidateSpellInfo({ SPELL_KODO_DELIVERED }); + } + + void HandleScript(SpellEffIndex /*effIndex*/) + { + if (Unit* caster = GetCaster()) + caster->CastSpell(caster, SPELL_KODO_DELIVERED, true); + } + + void Register() override + { + OnEffectHit += SpellEffectFn(spell_deliver_kodo::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT); + } +}; + +// 48204 - Kodo Delivered +class spell_kodo_delivered : public SpellScript +{ + PrepareSpellScript(spell_kodo_delivered); + + bool Validate(SpellInfo const* /*spellInfo*/) override + { + return sObjectMgr->GetBroadcastText(TEXT_DELIVERED_1) && + sObjectMgr->GetBroadcastText(TEXT_DELIVERED_2) && + sObjectMgr->GetBroadcastText(TEXT_DELIVERED_3) && + sObjectMgr->GetBroadcastText(TEXT_DELIVERED_4) && + sObjectMgr->GetBroadcastText(TEXT_DELIVERED_5); + } + + void HandleScript(SpellEffIndex /*effIndex*/) + { + if (Unit* caster = GetCaster()) + caster->Unit::Say(RAND(TEXT_DELIVERED_1, TEXT_DELIVERED_2, TEXT_DELIVERED_3, TEXT_DELIVERED_4, TEXT_DELIVERED_5), caster); + } + + void Register() override + { + OnEffectHit += SpellEffectFn(spell_kodo_delivered::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT); + } +}; + void AddSC_borean_tundra() { new npc_corastrasza(); @@ -1920,4 +1983,6 @@ void AddSC_borean_tundra() RegisterSpellScript(spell_nerubar_web_random_unit_not_on_quest_dummy); RegisterSpellScript(spell_nerubar_web_random_unit_on_quest_dummy); RegisterSpellScript(spell_dispel_freed_soldier_debuff); + RegisterSpellScript(spell_deliver_kodo); + RegisterSpellScript(spell_kodo_delivered); } |