TrinityCore
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
25{
29};
30
31// 48876 - Beast's Mark
32// 59237 - Beast's Mark
34{
35 bool Validate(SpellInfo const* /*spell*/) override
36 {
38 }
39
40 bool CheckProc(ProcEventInfo& eventInfo)
41 {
42 if (DamageInfo* damageInfo = eventInfo.GetDamageInfo())
43 {
44 Unit* attacker = damageInfo->GetAttacker();
45 if (!attacker || !damageInfo->GetDamage())
46 return false;
47
48 return attacker->GetCreatureType() == CREATURE_TYPE_BEAST;
49 }
50
51 return false;
52 }
53
54 void HandleProc(AuraEffect* aurEff, ProcEventInfo& /*eventInfo*/)
55 {
57 Unit* target = GetTarget();
59 target->CastSpell(target, spellId, aurEff);
60 }
61
62 void Register() override
63 {
66 }
67};
68
70{
72}
uint32_t uint32
Definition: Define.h:142
#define RegisterSpellScript(spell_script)
Definition: ScriptMgr.h:1369
@ EFFECT_0
Definition: SharedDefines.h:30
@ CREATURE_TYPE_BEAST
@ SPELL_AURA_PROC_TRIGGER_SPELL
#define AuraEffectProcFn(F, I, N)
Definition: SpellScript.h:2160
#define AuraCheckProcFn(F)
Definition: SpellScript.h:2130
void PreventDefaultAction()
Unit * GetTarget() const
HookList< CheckProcHandler > DoCheckProc
Definition: SpellScript.h:2129
HookList< EffectProcHandler > OnEffectProc
Definition: SpellScript.h:2155
DamageInfo * GetDamageInfo() const
Definition: Unit.h:505
uint32 m_scriptSpellId
Definition: SpellScript.h:134
static bool ValidateSpellInfo(std::initializer_list< uint32 > spellIds)
Definition: SpellScript.h:162
Definition: Unit.h:627
uint32 GetCreatureType() const
Definition: Unit.cpp:8880
SpellCastResult CastSpell(CastSpellTargetArg const &targets, uint32 spellId, CastSpellExtraArgs const &args={ })
Definition: Object.cpp:2896
void HandleProc(AuraEffect *aurEff, ProcEventInfo &)
bool Validate(SpellInfo const *) override
bool CheckProc(ProcEventInfo &eventInfo)
void AddSC_utgarde_pinnacle()
UtgardeSpells
@ SPELL_BEAST_MARK_DAMAGE_H
@ SPELL_BEAST_MARK_NORMAL
@ SPELL_BEAST_MARK_DAMAGE_N