aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authoroffl <11556157+offl@users.noreply.github.com>2022-01-22 19:04:25 +0200
committerShauren <shauren.trinity@gmail.com>2022-03-25 23:45:29 +0100
commit3de50c52fde034e7659e7db1aaf8577a63192b5e (patch)
tree752324f11a9a5808dc11d87caa232371abff417e /src
parent8be723788dff8ccdd6d7f870d34dec83d348cdcd (diff)
Scripts/Spells: Handle player talk in spell scripts pt 3 (#27657)
(cherry picked from commit e3409e277d22d80c42d406748aa0cc2505b3bb9f)
Diffstat (limited to 'src')
-rw-r--r--src/server/scripts/Northrend/zone_borean_tundra.cpp66
1 files changed, 66 insertions, 0 deletions
diff --git a/src/server/scripts/Northrend/zone_borean_tundra.cpp b/src/server/scripts/Northrend/zone_borean_tundra.cpp
index c7a23a39d50..c06b811a3bd 100644
--- a/src/server/scripts/Northrend/zone_borean_tundra.cpp
+++ b/src/server/scripts/Northrend/zone_borean_tundra.cpp
@@ -17,6 +17,7 @@
#include "ScriptMgr.h"
#include "CreatureAIImpl.h"
+#include "DB2Stores.h"
#include "GameObject.h"
#include "MotionMaster.h"
#include "ObjectAccessor.h"
@@ -1893,6 +1894,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 sBroadcastTextStore.HasRecord(TEXT_DELIVERED_1) &&
+ sBroadcastTextStore.HasRecord(TEXT_DELIVERED_2) &&
+ sBroadcastTextStore.HasRecord(TEXT_DELIVERED_3) &&
+ sBroadcastTextStore.HasRecord(TEXT_DELIVERED_4) &&
+ sBroadcastTextStore.HasRecord(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();
@@ -1917,4 +1981,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);
}