diff options
author | Naddley <64811442+Naddley@users.noreply.github.com> | 2023-03-31 23:01:50 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-03-31 23:01:50 +0200 |
commit | 1440fe03de1b161b37dc6026e88a7cefd44cb220 (patch) | |
tree | 2ff7e701d9baef02a53af6a8e3c9e051814df067 /src/server/scripts/Maelstrom | |
parent | 4c67e2ff7ecb1c36693cb134a54c6805eed4d3d3 (diff) |
Scripts/Deepholm: Scripted quest "All Our Friends Are Dead" (#28889)
Diffstat (limited to 'src/server/scripts/Maelstrom')
-rw-r--r-- | src/server/scripts/Maelstrom/maelstrom_script_loader.cpp | 2 | ||||
-rw-r--r-- | src/server/scripts/Maelstrom/zone_deepholm.cpp | 61 |
2 files changed, 63 insertions, 0 deletions
diff --git a/src/server/scripts/Maelstrom/maelstrom_script_loader.cpp b/src/server/scripts/Maelstrom/maelstrom_script_loader.cpp index 463efc0d9f6..2ec7cf98344 100644 --- a/src/server/scripts/Maelstrom/maelstrom_script_loader.cpp +++ b/src/server/scripts/Maelstrom/maelstrom_script_loader.cpp @@ -17,6 +17,7 @@ // This is where scripts' loading functions should be declared: void AddSC_kezan(); +void AddSC_deepholm(); void AddSC_instance_stonecore(); // Stonecore void AddSC_stonecore(); void AddSC_boss_corborus(); @@ -29,6 +30,7 @@ void AddSC_boss_high_priestess_azil(); void AddMaelstromScripts() { AddSC_kezan(); + AddSC_deepholm(); AddSC_instance_stonecore(); // Stonecore AddSC_stonecore(); AddSC_boss_corborus(); diff --git a/src/server/scripts/Maelstrom/zone_deepholm.cpp b/src/server/scripts/Maelstrom/zone_deepholm.cpp new file mode 100644 index 00000000000..afe4a95cfe1 --- /dev/null +++ b/src/server/scripts/Maelstrom/zone_deepholm.cpp @@ -0,0 +1,61 @@ +/* +* 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 <http://www.gnu.org/licenses/>. +*/ + +#include "ScriptMgr.h" +#include "ScriptedCreature.h" +#include "SpellScript.h" +#include "SpellAuraEffects.h" + +enum AllOurFriendsAreDead +{ + // spells + SPELL_SPEAK_TO_FALLEN_SPIRIT_FEMALE = 94879, + SPELL_SPEAK_TO_FALLEN_SPIRIT_MALE = 79658, + + // npcs + NPC_SLAIN_CREW_MEMBER_MALE = 42681 +}; + +// 79614 - Spirit Totem +class spell_spirit_totem : public SpellScript +{ + PrepareSpellScript(spell_spirit_totem); + + bool Validate(SpellInfo const* /*spellInfo*/) override + { + return ValidateSpellInfo({ SPELL_SPEAK_TO_FALLEN_SPIRIT_FEMALE, SPELL_SPEAK_TO_FALLEN_SPIRIT_MALE }); + } + + void HandleHit(SpellEffIndex /*effIndex*/) + { + uint32 spellId = SPELL_SPEAK_TO_FALLEN_SPIRIT_FEMALE; + if (GetHitUnit()->GetEntry() == NPC_SLAIN_CREW_MEMBER_MALE) + spellId = SPELL_SPEAK_TO_FALLEN_SPIRIT_MALE; + + GetHitUnit()->CastSpell(GetCaster(), spellId, true); + } + + void Register() override + { + OnEffectHitTarget += SpellEffectFn(spell_spirit_totem::HandleHit, EFFECT_0, SPELL_EFFECT_DUMMY); + } +}; + +void AddSC_deepholm() +{ + RegisterSpellScript(spell_spirit_totem); +} |