aboutsummaryrefslogtreecommitdiff
path: root/src/server/scripts/Outland
diff options
context:
space:
mode:
authoroffl <11556157+offl@users.noreply.github.com>2021-05-27 19:05:47 +0300
committerShauren <shauren.trinity@gmail.com>2022-03-10 22:36:09 +0100
commit09551b663a8190ef2ce9af6ad3e7cb5058e82b2e (patch)
tree57b69fe4ce06afce7ae759b7aabc6ee1a90222ce /src/server/scripts/Outland
parent86e77891602797be24c30fe7dfad7ed484a4fcf0 (diff)
Scripts/Quest: Rework cocooned creatures (#26554)
(cherry picked from commit 78bd609e8a37caa354c42ee6da798ab6c0bb3009)
Diffstat (limited to 'src/server/scripts/Outland')
-rw-r--r--src/server/scripts/Outland/zone_terokkar_forest.cpp69
1 files changed, 69 insertions, 0 deletions
diff --git a/src/server/scripts/Outland/zone_terokkar_forest.cpp b/src/server/scripts/Outland/zone_terokkar_forest.cpp
index a77e34f1fe2..b30ef7719a6 100644
--- a/src/server/scripts/Outland/zone_terokkar_forest.cpp
+++ b/src/server/scripts/Outland/zone_terokkar_forest.cpp
@@ -174,8 +174,77 @@ class spell_skyguard_flare : public SpellScript
}
};
+/*######
+## Quest 10873: Taken in the Night
+######*/
+
+enum FreeWebbedTerokkar
+{
+ SPELL_FREE_WEBBED_1 = 38953,
+ SPELL_FREE_WEBBED_2 = 38955,
+ SPELL_FREE_WEBBED_3 = 38956,
+ SPELL_FREE_WEBBED_4 = 38957,
+ SPELL_FREE_WEBBED_5 = 38958,
+ SPELL_FREE_WEBBED_6 = 38978
+};
+
+uint32 const CocoonSummonSpells[5] =
+{
+ SPELL_FREE_WEBBED_1, SPELL_FREE_WEBBED_2, SPELL_FREE_WEBBED_3, SPELL_FREE_WEBBED_4, SPELL_FREE_WEBBED_5
+};
+
+// 38949 - Terrokar Free Webbed Creature
+class spell_free_webbed_terokkar : public SpellScript
+{
+ PrepareSpellScript(spell_free_webbed_terokkar);
+
+ bool Validate(SpellInfo const* /*spellInfo*/) override
+ {
+ return ValidateSpellInfo(CocoonSummonSpells);
+ }
+
+ void HandleDummy(SpellEffIndex /*effIndex*/)
+ {
+ GetCaster()->CastSpell(GetCaster(), Trinity::Containers::SelectRandomContainerElement(CocoonSummonSpells), true);
+ }
+
+ void Register() override
+ {
+ OnEffectHit += SpellEffectFn(spell_free_webbed_terokkar::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
+ }
+};
+
+// 38950 - Terokkar Free Webbed Creature ON QUEST
+class spell_free_webbed_terokkar_on_quest : public SpellScript
+{
+ PrepareSpellScript(spell_free_webbed_terokkar_on_quest);
+
+ bool Validate(SpellInfo const* /*spellInfo*/) override
+ {
+ return ValidateSpellInfo(CocoonSummonSpells) && ValidateSpellInfo({ SPELL_FREE_WEBBED_6 });
+ }
+
+ void HandleDummy(SpellEffIndex /*effIndex*/)
+ {
+ Unit* caster = GetCaster();
+ Unit* target = GetHitUnit();
+
+ if (roll_chance_i(66))
+ caster->CastSpell(caster, Trinity::Containers::SelectRandomContainerElement(CocoonSummonSpells), true);
+ else
+ target->CastSpell(caster, SPELL_FREE_WEBBED_6, true);
+ }
+
+ void Register() override
+ {
+ OnEffectHitTarget += SpellEffectFn(spell_free_webbed_terokkar_on_quest::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
+ }
+};
+
void AddSC_terokkar_forest()
{
new npc_unkor_the_ruthless();
RegisterSpellScript(spell_skyguard_flare);
+ RegisterSpellScript(spell_free_webbed_terokkar);
+ RegisterSpellScript(spell_free_webbed_terokkar_on_quest);
}