aboutsummaryrefslogtreecommitdiff
path: root/src/server/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/scripts')
-rw-r--r--src/server/scripts/Spells/spell_quest.cpp111
1 files changed, 111 insertions, 0 deletions
diff --git a/src/server/scripts/Spells/spell_quest.cpp b/src/server/scripts/Spells/spell_quest.cpp
index 95ef83bf73d..fb79e01f604 100644
--- a/src/server/scripts/Spells/spell_quest.cpp
+++ b/src/server/scripts/Spells/spell_quest.cpp
@@ -2347,6 +2347,116 @@ class spell_q11896_weakness_to_lightning_46444 : public SpellScript
}
};
+enum TamingTheBeast
+{
+ SPELL_TAME_ICE_CLAW_BEAR = 19548,
+ SPELL_TAME_LARGE_CRAG_BOAR = 19674,
+ SPELL_TAME_SNOW_LEOPARD = 19687,
+ SPELL_TAME_ADULT_PLAINSTRIDER = 19688,
+ SPELL_TAME_PRAIRIE_STALKER = 19689,
+ SPELL_TAME_SWOOP = 19692,
+ SPELL_TAME_WEBWOOD_LURKER = 19693,
+ SPELL_TAME_DIRE_MOTTLED_BOAR = 19694,
+ SPELL_TAME_SURF_CRAWLER = 19696,
+ SPELL_TAME_ARMORED_SCORPID = 19697,
+ SPELL_TAME_NIGHTSABER_STALKER = 19699,
+ SPELL_TAME_STRIGID_SCREECHER = 19700,
+ SPELL_TAME_BARBED_CRAWLER = 30646,
+ SPELL_TAME_GREATER_TIMBERSTRIDER = 30653,
+ SPELL_TAME_NIGHTSTALKER = 30654,
+ SPELL_TAME_CRAZED_DRAGONHAWK = 30099,
+ SPELL_TAME_ELDER_SPRINGPAW = 30102,
+ SPELL_TAME_MISTBAT = 30105,
+ SPELL_TAME_ICE_CLAW_BEAR_1 = 19597,
+ SPELL_TAME_LARGE_CRAG_BOAR_1 = 19677,
+ SPELL_TAME_SNOW_LEOPARD_1 = 19676,
+ SPELL_TAME_ADULT_PLAINSTRIDER_1 = 19678,
+ SPELL_TAME_PRAIRIE_STALKER_1 = 19679,
+ SPELL_TAME_SWOOP_1 = 19680,
+ SPELL_TAME_WEBWOOD_LURKER_1 = 19684,
+ SPELL_TAME_DIRE_MOTTLED_BOAR_1 = 19681,
+ SPELL_TAME_SURF_CRAWLER_1 = 19682,
+ SPELL_TAME_ARMORED_SCORPID_1 = 19683,
+ SPELL_TAME_NIGHTSABER_STALKER_1 = 19685,
+ SPELL_TAME_STRIGID_SCREECHER_1 = 19686,
+ SPELL_TAME_BARBED_CRAWLER_1 = 30647,
+ SPELL_TAME_GREATER_TIMBERSTRIDER_1 = 30648,
+ SPELL_TAME_NIGHTSTALKER_1 = 30652,
+ SPELL_TAME_CRAZED_DRAGONHAWK_1 = 30100,
+ SPELL_TAME_ELDER_SPRINGPAW_1 = 30103,
+ SPELL_TAME_MISTBAT_1 = 30104
+};
+
+class spell_quest_taming_the_beast : public AuraScript
+{
+ PrepareAuraScript(spell_quest_taming_the_beast);
+
+ bool Validate(SpellInfo const* /*spellInfo*/) override
+ {
+ return ValidateSpellInfo(
+ {
+ SPELL_TAME_ICE_CLAW_BEAR_1,
+ SPELL_TAME_LARGE_CRAG_BOAR_1,
+ SPELL_TAME_SNOW_LEOPARD_1,
+ SPELL_TAME_ADULT_PLAINSTRIDER_1,
+ SPELL_TAME_PRAIRIE_STALKER_1,
+ SPELL_TAME_SWOOP_1,
+ SPELL_TAME_WEBWOOD_LURKER_1,
+ SPELL_TAME_DIRE_MOTTLED_BOAR_1,
+ SPELL_TAME_SURF_CRAWLER_1,
+ SPELL_TAME_ARMORED_SCORPID_1,
+ SPELL_TAME_NIGHTSABER_STALKER_1,
+ SPELL_TAME_STRIGID_SCREECHER_1,
+ SPELL_TAME_BARBED_CRAWLER_1,
+ SPELL_TAME_GREATER_TIMBERSTRIDER_1,
+ SPELL_TAME_NIGHTSTALKER_1,
+ SPELL_TAME_CRAZED_DRAGONHAWK_1,
+ SPELL_TAME_ELDER_SPRINGPAW_1,
+ SPELL_TAME_MISTBAT_1
+ });
+ }
+
+ void OnRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
+ {
+ if (!GetCaster() || !GetCaster()->IsAlive() || !GetTarget()->IsAlive())
+ return;
+
+ if (GetTargetApplication()->GetRemoveMode() != AURA_REMOVE_BY_EXPIRE)
+ return;
+
+ uint32 finalSpellId = 0;
+ switch (GetId())
+ {
+ case SPELL_TAME_ICE_CLAW_BEAR: finalSpellId = SPELL_TAME_ICE_CLAW_BEAR_1; break;
+ case SPELL_TAME_LARGE_CRAG_BOAR: finalSpellId = SPELL_TAME_LARGE_CRAG_BOAR_1; break;
+ case SPELL_TAME_SNOW_LEOPARD: finalSpellId = SPELL_TAME_SNOW_LEOPARD_1; break;
+ case SPELL_TAME_ADULT_PLAINSTRIDER: finalSpellId = SPELL_TAME_ADULT_PLAINSTRIDER_1; break;
+ case SPELL_TAME_PRAIRIE_STALKER: finalSpellId = SPELL_TAME_PRAIRIE_STALKER_1; break;
+ case SPELL_TAME_SWOOP: finalSpellId = SPELL_TAME_SWOOP_1; break;
+ case SPELL_TAME_WEBWOOD_LURKER: finalSpellId = SPELL_TAME_WEBWOOD_LURKER_1; break;
+ case SPELL_TAME_DIRE_MOTTLED_BOAR: finalSpellId = SPELL_TAME_DIRE_MOTTLED_BOAR_1; break;
+ case SPELL_TAME_SURF_CRAWLER: finalSpellId = SPELL_TAME_SURF_CRAWLER_1; break;
+ case SPELL_TAME_ARMORED_SCORPID: finalSpellId = SPELL_TAME_ARMORED_SCORPID_1; break;
+ case SPELL_TAME_NIGHTSABER_STALKER: finalSpellId = SPELL_TAME_NIGHTSABER_STALKER_1; break;
+ case SPELL_TAME_STRIGID_SCREECHER: finalSpellId = SPELL_TAME_STRIGID_SCREECHER_1; break;
+ case SPELL_TAME_BARBED_CRAWLER: finalSpellId = SPELL_TAME_BARBED_CRAWLER_1; break;
+ case SPELL_TAME_GREATER_TIMBERSTRIDER: finalSpellId = SPELL_TAME_GREATER_TIMBERSTRIDER_1; break;
+ case SPELL_TAME_NIGHTSTALKER: finalSpellId = SPELL_TAME_NIGHTSTALKER_1; break;
+ case SPELL_TAME_CRAZED_DRAGONHAWK: finalSpellId = SPELL_TAME_CRAZED_DRAGONHAWK_1; break;
+ case SPELL_TAME_ELDER_SPRINGPAW: finalSpellId = SPELL_TAME_ELDER_SPRINGPAW_1; break;
+ case SPELL_TAME_MISTBAT: finalSpellId = SPELL_TAME_MISTBAT_1; break;
+ }
+
+ if (finalSpellId)
+ GetCaster()->CastSpell(GetTarget(), finalSpellId, true);
+ }
+
+ void Register() override
+ {
+ AfterEffectRemove += AuraEffectRemoveFn(spell_quest_taming_the_beast::OnRemove, EFFECT_1, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
+ }
+};
+
/*######
## Quest 14386 Leader of the Pack
######*/
@@ -2456,5 +2566,6 @@ void AddSC_quest_spell_scripts()
RegisterSpellScript(spell_q11306_mixing_vrykul_blood);
RegisterSpellScript(spell_q11306_failed_mix_43376);
RegisterSpellScript(spell_q11306_failed_mix_43378);
+ RegisterSpellScript(spell_quest_taming_the_beast);
RegisterSpellScript(spell_q14386_call_attack_mastiffs);
}