From 6d36a4f77abc031cb7dcb262e4ac8a339c1c2c0a Mon Sep 17 00:00:00 2001 From: offl <11556157+offl@users.noreply.github.com> Date: Mon, 1 Nov 2021 18:11:39 +0200 Subject: Scripts/Quest: Make 'Search and Rescue' less hacky (#27227) (cherry picked from commit 6e07acbbdeb5fdc3072af480175267ca5969efc2) --- .../Northrend/DraktharonKeep/drak_tharon_keep.cpp | 53 ++++++++++++++++++++++ .../scripts/Northrend/northrend_script_loader.cpp | 2 + 2 files changed, 55 insertions(+) create mode 100644 src/server/scripts/Northrend/DraktharonKeep/drak_tharon_keep.cpp (limited to 'src') diff --git a/src/server/scripts/Northrend/DraktharonKeep/drak_tharon_keep.cpp b/src/server/scripts/Northrend/DraktharonKeep/drak_tharon_keep.cpp new file mode 100644 index 00000000000..bd5d5ac69c8 --- /dev/null +++ b/src/server/scripts/Northrend/DraktharonKeep/drak_tharon_keep.cpp @@ -0,0 +1,53 @@ +/* + * This file is part of the TrinityCore Project. See AUTHORS file for Copyright information + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2 of the License, or (at your + * option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along + * with this program. If not, see . + */ + +#include "CreatureAIImpl.h" +#include "ScriptMgr.h" +#include "SpellScript.h" +#include "Unit.h" + +enum SummonRandomDrakkari +{ + SPELL_SUMMON_DRAKKARI_SHAMAN = 49958, + SPELL_SUMMON_DRAKKARI_GUARDIAN = 49959 +}; + +// 49960 - Summon Random Drakkari +class spell_summon_random_drakkari : public SpellScript +{ + PrepareSpellScript(spell_summon_random_drakkari); + + bool Validate(SpellInfo const* /*spellInfo*/) override + { + return ValidateSpellInfo({ SPELL_SUMMON_DRAKKARI_SHAMAN, SPELL_SUMMON_DRAKKARI_GUARDIAN }); + } + + void HandleScript(SpellEffIndex /*effIndex*/) + { + GetCaster()->CastSpell(GetCaster(), RAND(SPELL_SUMMON_DRAKKARI_SHAMAN, SPELL_SUMMON_DRAKKARI_GUARDIAN), true); + } + + void Register() override + { + OnEffectHitTarget += SpellEffectFn(spell_summon_random_drakkari::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT); + } +}; + +void AddSC_drak_tharon_keep() +{ + RegisterSpellScript(spell_summon_random_drakkari); +} diff --git a/src/server/scripts/Northrend/northrend_script_loader.cpp b/src/server/scripts/Northrend/northrend_script_loader.cpp index 4f435411732..78d3b00c213 100644 --- a/src/server/scripts/Northrend/northrend_script_loader.cpp +++ b/src/server/scripts/Northrend/northrend_script_loader.cpp @@ -41,6 +41,7 @@ void AddSC_boss_novos(); void AddSC_boss_king_dred(); void AddSC_boss_tharon_ja(); void AddSC_instance_drak_tharon_keep(); +void AddSC_drak_tharon_keep(); // Trial of the Champion void AddSC_boss_argent_challenge(); void AddSC_boss_black_knight(); @@ -237,6 +238,7 @@ void AddNorthrendScripts() AddSC_boss_king_dred(); AddSC_boss_tharon_ja(); AddSC_instance_drak_tharon_keep(); + AddSC_drak_tharon_keep(); // Trial of the Champion AddSC_boss_argent_challenge(); AddSC_boss_black_knight(); -- cgit v1.2.3