TrinityCore
Loading...
Searching...
No Matches
utgarde_pinnacle.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 "SpellInfo.h"
20#include "SpellScript.h"
21#include "Unit.h"
22#include "utgarde_pinnacle.h"
23
30
31// 48876 - Beast's Mark
32// 59237 - Beast's Mark
34{
36
37 bool Validate(SpellInfo const* /*spell*/) override
38 {
40 }
41
42 bool CheckProc(ProcEventInfo& eventInfo)
43 {
44 if (DamageInfo* damageInfo = eventInfo.GetDamageInfo())
45 {
46 Unit* attacker = damageInfo->GetAttacker();
47 if (!attacker || !damageInfo->GetDamage())
48 return false;
49
50 return attacker->GetCreatureType() == CREATURE_TYPE_BEAST;
51 }
52
53 return false;
54 }
55
56 void HandleProc(AuraEffect const* aurEff, ProcEventInfo& /*eventInfo*/)
57 {
59 Unit* target = GetTarget();
61 target->CastSpell(target, spellId, aurEff);
62 }
63
69};
70
uint32_t uint32
Definition Define.h:133
#define RegisterSpellScript(spell_script)
Definition ScriptMgr.h:1128
@ EFFECT_0
@ CREATURE_TYPE_BEAST
@ SPELL_AURA_PROC_TRIGGER_SPELL
#define AuraEffectProcFn(F, I, N)
#define AuraCheckProcFn(F)
void PreventDefaultAction()
Unit * GetTarget() const
HookList< CheckProcHandler > DoCheckProc
HookList< EffectProcHandler > OnEffectProc
DamageInfo * GetDamageInfo() const
Definition Unit.h:519
Definition Unit.h:769
uint32 GetCreatureType() const
Definition Unit.cpp:8940
SpellCastResult CastSpell(CastSpellTargetArg const &targets, uint32 spellId, CastSpellExtraArgs const &args={ })
Definition Object.cpp:2832
static bool ValidateSpellInfo(std::initializer_list< uint32 > spellIds)
uint32 m_scriptSpellId
PrepareAuraScript(spell_utgarde_pinnacle_beast_mark)
bool Validate(SpellInfo const *) override
void HandleProc(AuraEffect const *aurEff, ProcEventInfo &)
bool CheckProc(ProcEventInfo &eventInfo)
void AddSC_utgarde_pinnacle()
UtgardeSpells
@ SPELL_BEAST_MARK_DAMAGE_H
@ SPELL_BEAST_MARK_NORMAL
@ SPELL_BEAST_MARK_DAMAGE_N