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{
36 bool Validate(SpellInfo const* /*spell*/) override
37 {
39 }
40
41 void HandleScriptEffect(SpellEffIndex /* effIndex */)
42 {
43 if (Player* player = GetHitPlayer())
44 {
45 if (Group* group = player->GetGroup())
46 {
47 for (GroupReference const& itr : group->GetMembers())
48 {
49 Player* member = itr.GetSource();
50 if (member->IsWithinDistInMap(player, 20.0f) && !member->isDead())
51 member->CastSpell(member, SPELL_TELEPORT_SINGLE_IN_GROUP, true);
52 }
53 }
54 else
55 player->CastSpell(player, SPELL_TELEPORT_SINGLE, true);
56 }
57 }
58
63};
64
65/*######
66## Quests 36881 and 34398: Warlords of Draenor: The Dark Portal
67######*/
68
75
77{
78public:
79 player_teleport_to_tanaan() : PlayerScript("player_teleport_to_tanaan") { }
80
81 void OnMovieComplete(Player* player, uint32 movieId) override
82 {
83 if (movieId == MOVIE_INTO_THE_PORTAL)
84 player->CastSpell(player, SPELL_TELEPORT_TO_TANAAN, true);
85 }
86};
87
uint32_t uint32
Definition Define.h:154
#define RegisterSpellScript(spell_script)
Definition ScriptMgr.h:1383
SpellEffIndex
@ EFFECT_0
@ SPELL_EFFECT_SCRIPT_EFFECT
#define SpellEffectFn(F, I, N)
Definition Group.h:205
static bool ValidateSpellInfo(std::initializer_list< uint32 > spellIds)
Player * GetHitPlayer() const
HookList< EffectHandler > OnEffectHitTarget
bool isDead() const
Definition Unit.h:1187
SpellCastResult CastSpell(CastSpellTargetArg const &targets, uint32 spellId, CastSpellExtraArgs const &args={ })
Definition Object.cpp:2217
bool IsWithinDistInMap(WorldObject const *obj, float dist2compare, bool is3D=true, bool incOwnRadius=true, bool incTargetRadius=true) const
Definition Object.cpp:501
void OnMovieComplete(Player *player, uint32 movieId) override
bool Validate(SpellInfo const *) override
@ SPELL_TELEPORT_TO_TANAAN
@ MOVIE_INTO_THE_PORTAL
void AddSC_blasted_lands()
TeleportToRazelikh
@ SPELL_TELEPORT_SINGLE_IN_GROUP
@ SPELL_TELEPORT_SINGLE