TrinityCore
Loading...
Searching...
No Matches
zone_blasted_lands.cpp
Go to the documentation of this file.
1/*
2 * This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
3 *
4 * This program is free software; you can redistribute it and/or modify it
5 * under the terms of the GNU General Public License as published by the
6 * Free Software Foundation; either version 2 of the License, or (at your
7 * option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12 * more details.
13 *
14 * You should have received a copy of the GNU General Public License along
15 * with this program. If not, see <http://www.gnu.org/licenses/>.
16 */
17
18#include "ScriptMgr.h"
19#include "SpellScript.h"
20#include "Player.h"
21#include "Group.h"
22
23/*######
24## Quest 3628: You Are Rakh'likh, Demon
25######*/
26
32
33// 27686 - Teleport to Razelikh (GROUP)
35{
37
38 bool Validate(SpellInfo const* /*spell*/) override
39 {
41 }
42
43 void HandleScriptEffect(SpellEffIndex /* effIndex */)
44 {
45 if (Player* player = GetHitPlayer())
46 {
47 if (Group* group = player->GetGroup())
48 {
49 for (GroupReference* itr = group->GetFirstMember(); itr != nullptr; itr = itr->next())
50 if (Player* member = itr->GetSource())
51 if (member->IsWithinDistInMap(player, 20.0f) && !member->isDead())
52 member->CastSpell(member, SPELL_TELEPORT_SINGLE_IN_GROUP, true);
53 }
54 else
55 player->CastSpell(player, SPELL_TELEPORT_SINGLE, true);
56 }
57 }
58
63};
64
#define RegisterSpellScript(spell_script)
Definition ScriptMgr.h:1128
SpellEffIndex
@ EFFECT_0
@ SPELL_EFFECT_SCRIPT_EFFECT
#define SpellEffectFn(F, I, N)
Definition Group.h:165
Player * GetHitPlayer() const
HookList< EffectHandler > OnEffectHitTarget
static bool ValidateSpellInfo(std::initializer_list< uint32 > spellIds)
bool Validate(SpellInfo const *) override
PrepareSpellScript(spell_razelikh_teleport_group)
void AddSC_blasted_lands()
TeleportToRazelikh
@ SPELL_TELEPORT_SINGLE_IN_GROUP
@ SPELL_TELEPORT_SINGLE