TrinityCore
spell_dh.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/*
19 * Scripts for spells with SPELLFAMILY_DEMONHUNTER and SPELLFAMILY_GENERIC spells used by demon hunter players.
20 * Ordered alphabetically using scriptname.
21 * Scriptnames of files in this file should be prefixed with "spell_dh_".
22 */
23
24#include "AreaTrigger.h"
25#include "AreaTriggerAI.h"
26#include "Player.h"
27#include "ScriptMgr.h"
28#include "SpellAuraEffects.h"
29#include "SpellAuras.h"
30#include "SpellHistory.h"
31#include "SpellMgr.h"
32#include "SpellScript.h"
33#include "Unit.h"
34
36{
43
49 SPELL_DH_BLUR = 212800,
173};
174
175// 197125 - Chaos Strike
177{
178 bool Validate(SpellInfo const* /*spellInfo*/) override
179 {
181 }
182
183 void HandleEffectProc(AuraEffect* aurEff, ProcEventInfo& /*eventInfo*/)
184 {
188 args.SetTriggeringAura(aurEff);
190 }
191
192 void Register() override
193 {
195 }
196};
197
198// 206416 - First Blood
200{
201public:
202 ObjectGuid const& GetFirstTarget() const { return _firstTargetGUID; }
203 void SetFirstTarget(ObjectGuid const& targetGuid) { _firstTargetGUID = targetGuid; }
204
205private:
206 void Register() override
207 {
208 }
209
210private:
212};
213
214// 188499 - Blade Dance
215// 210152 - Death Sweep
217{
218 bool Validate(SpellInfo const* /*spellInfo*/) override
219 {
221 }
222
223 void DecideFirstTarget(std::list<WorldObject*>& targetList)
224 {
225 if (targetList.empty())
226 return;
227
229 if (!aura)
230 return;
231
232 ObjectGuid firstTargetGUID = ObjectGuid::Empty;
233 ObjectGuid selectedTarget = GetCaster()->GetTarget();
234
235 // Prefer the selected target if he is one of the enemies
236 if (targetList.size() > 1 && !selectedTarget.IsEmpty())
237 {
238 auto it = std::find_if(targetList.begin(), targetList.end(), [selectedTarget](WorldObject* object)
239 {
240 return object->GetGUID() == selectedTarget;
241 });
242 if (it != targetList.end())
243 firstTargetGUID = (*it)->GetGUID();
244 }
245
246 if (firstTargetGUID.IsEmpty())
247 firstTargetGUID = targetList.front()->GetGUID();
248
250 script->SetFirstTarget(firstTargetGUID);
251 }
252
253 void Register() override
254 {
256 }
257};
258
259// 199552 - Blade Dance
260// 200685 - Blade Dance
261// 210153 - Death Sweep
262// 210155 - Death Sweep
264{
265 bool Validate(SpellInfo const* /*spellInfo*/) override
266 {
268 }
269
271 {
272 int32 damage = GetHitDamage();
273
274 if (AuraEffect* aurEff = GetCaster()->GetAuraEffect(SPELL_DH_FIRST_BLOOD, EFFECT_0))
275 if (spell_dh_first_blood* script = aurEff->GetBase()->GetScript<spell_dh_first_blood>())
276 if (GetHitUnit()->GetGUID() == script->GetFirstTarget())
277 AddPct(damage, aurEff->GetAmount());
278
279 SetHitDamage(damage);
280 }
281
282 void Register() override
283 {
285 }
286};
287
288// 204596 - Sigil of Flame
289// 207684 - Sigil of Misery
290// 202137 - Sigil of Silence
291template<uint32 TriggerSpellId>
293{
294public:
296
297 template<uint32 Trigger>
299 {
301
302 void OnRemove() override
303 {
304 if (Unit* caster = at->GetCaster())
305 caster->CastSpell(at->GetPosition(), Trigger);
306 }
307 };
308
309 AreaTriggerAI* GetAI(AreaTrigger* at) const override
310 {
312 }
313};
314
315// 208673 - Sigil of Chains
317{
318 bool Validate(SpellInfo const* /*spellInfo*/) override
319 {
321 }
322
324 {
325 if (WorldLocation const* loc = GetExplTargetDest())
326 {
328 GetHitUnit()->CastSpell(loc->GetPosition(), SPELL_DH_SIGIL_OF_CHAINS_GRIP, true);
329 }
330 }
331
332 void Register() override
333 {
335 }
336};
337
338// 202138 - Sigil of Chains
340{
342
343 void OnRemove() override
344 {
345 if (Unit* caster = at->GetCaster())
346 {
347 caster->CastSpell(at->GetPosition(), SPELL_DH_SIGIL_OF_CHAINS_VISUAL);
349 }
350 }
351};
352
353// 131347 - Glide
355{
356 bool Validate(SpellInfo const* /*spellInfo*/) override
357 {
359 }
360
362 {
363 Unit* caster = GetCaster();
364 if (caster->IsMounted() || caster->GetVehicleBase())
366
367 if (!caster->IsFalling())
369
370 return SPELL_CAST_OK;
371 }
372
374 {
375 Player* caster = GetCaster()->ToPlayer();
376 if (!caster)
377 return;
378
379 caster->CastSpell(caster, SPELL_DH_GLIDE_KNOCKBACK, true);
380 caster->CastSpell(caster, SPELL_DH_GLIDE_DURATION, true);
381
382 caster->GetSpellHistory()->StartCooldown(sSpellMgr->AssertSpellInfo(SPELL_DH_VENGEFUL_RETREAT_TRIGGER, GetCastDifficulty()), 0, nullptr, false, 250ms);
383 caster->GetSpellHistory()->StartCooldown(sSpellMgr->AssertSpellInfo(SPELL_DH_FEL_RUSH, GetCastDifficulty()), 0, nullptr, false, 250ms);
384 }
385
386 void Register() override
387 {
390 }
391};
392
393// 131347 - Glide
395{
396 bool Validate(SpellInfo const* /*spellInfo*/) override
397 {
399 }
400
401 void OnRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
402 {
404 }
405
406 void Register() override
407 {
409 }
410};
411
412// 197154 - Glide
414{
415 bool Validate(SpellInfo const* /*spellInfo*/) override
416 {
418 }
419
420 void OnRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
421 {
423 }
424
425 void Register() override
426 {
428 }
429};
430
431// 391166 - Soul Furnace
433{
434 bool Validate(SpellInfo const* /*spellInfo*/) override
435 {
437 }
438
439 void CalculateSpellMod(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
440 {
441 if (GetStackAmount() == GetAura()->CalcMaxStackAmount())
442 {
444 Remove();
445 }
446 }
447
448 void Register() override
449 {
451 }
452};
453
454// 339424 - Soul Furnace
456{
457 void CalculateSpellMod(AuraEffect const* aurEff, SpellModifier*& spellMod)
458 {
459 if (aurEff->GetAmount() == 10)
460 {
461 if (!spellMod)
462 {
463 spellMod = new SpellModifierByClassMask(GetAura());
465 spellMod->type = SPELLMOD_PCT;
466 spellMod->spellId = GetId();
467 static_cast<SpellModifierByClassMask*>(spellMod)->mask = flag128(0x80000000);
468 static_cast<SpellModifierByClassMask*>(spellMod)->value = GetEffect(EFFECT_1)->GetAmount() + 1;
469 }
470 }
471 }
472
473 void Register() override
474 {
476 }
477};
478
480{
482
483 new areatrigger_dh_generic_sigil<SPELL_DH_SIGIL_OF_SILENCE_AOE>("areatrigger_dh_sigil_of_silence");
484 new areatrigger_dh_generic_sigil<SPELL_DH_SIGIL_OF_MISERY_AOE>("areatrigger_dh_sigil_of_misery");
485 new areatrigger_dh_generic_sigil<SPELL_DH_SIGIL_OF_FLAME_AOE>("areatrigger_dh_sigil_of_flame");
488
489 // Havoc
490
491 /* Spells & Auras */
492
493 /* Auras */
494
496
497 /* AreaTrigger */
498
499 /* Spells */
500
503
504 // Vengeance
506
507 // Vengeance & Havoc
508
511
512 // Soulbind conduits
514}
int32_t int32
Definition: Define.h:138
@ SPELLMOD_PCT
Definition: Player.h:158
#define RegisterSpellAndAuraScriptPair(script_1, script_2)
Definition: ScriptMgr.h:1371
#define RegisterAreaTriggerAI(ai_name)
Definition: ScriptMgr.h:1416
#define RegisterSpellScript(spell_script)
Definition: ScriptMgr.h:1369
SpellEffIndex
Definition: SharedDefines.h:29
@ EFFECT_1
Definition: SharedDefines.h:31
@ EFFECT_0
Definition: SharedDefines.h:30
@ TARGET_UNIT_SRC_AREA_ENEMY
@ SPELL_EFFECT_DUMMY
SpellCastResult
@ SPELL_FAILED_NOT_ON_GROUND
@ SPELL_FAILED_DONT_REPORT
@ SPELL_CAST_OK
AuraEffectHandleModes
@ AURA_EFFECT_HANDLE_REAL_OR_REAPPLY_MASK
@ AURA_EFFECT_HANDLE_REAL
@ SPELL_AURA_FEATHER_FALL
@ SPELL_AURA_PROC_TRIGGER_SPELL
@ SPELL_AURA_DUMMY
@ TRIGGERED_FULL_MASK
Used when doing CastSpell with triggered == true.
Definition: SpellDefines.h:266
@ SPELLVALUE_BASE_POINT0
Definition: SpellDefines.h:196
#define sSpellMgr
Definition: SpellMgr.h:849
#define SpellCheckCastFn(F)
Definition: SpellScript.h:830
#define AuraEffectProcFn(F, I, N)
Definition: SpellScript.h:2160
#define SpellEffectFn(F, I, N)
Definition: SpellScript.h:842
#define SpellObjectAreaTargetSelectFn(F, I, N)
Definition: SpellScript.h:864
#define SpellCastFn(F)
Definition: SpellScript.h:825
#define AuraEffectApplyFn(F, I, N, M)
Definition: SpellScript.h:2029
#define SpellHitFn(F)
Definition: SpellScript.h:854
#define AuraEffectCalcSpellModFn(F, I, N)
Definition: SpellScript.h:2070
#define AuraEffectRemoveFn(F, I, N, M)
Definition: SpellScript.h:2040
T AddPct(T &base, U pct)
Definition: Util.h:85
AreaTrigger *const at
Definition: AreaTriggerAI.h:33
Unit * GetCaster() const
int32 GetAmount() const
void PreventDefaultAction()
HookList< EffectApplyHandler > AfterEffectRemove
Definition: SpellScript.h:2039
HookList< EffectApplyHandler > AfterEffectApply
Definition: SpellScript.h:2028
HookList< EffectCalcSpellModHandler > DoEffectCalcSpellMod
Definition: SpellScript.h:2069
AuraEffect * GetEffect(uint8 effIndex) const
Aura * GetAura() const
Unit * GetTarget() const
void Remove(AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
HookList< EffectProcHandler > OnEffectProc
Definition: SpellScript.h:2155
uint8 GetStackAmount() const
uint32 GetId() const
Script * GetScript() const
Definition: SpellAuras.h:301
static ObjectGuid const Empty
Definition: ObjectGuid.h:274
bool IsEmpty() const
Definition: ObjectGuid.h:319
static Player * ToPlayer(Object *o)
Definition: Object.h:213
void StartCooldown(SpellInfo const *spellInfo, uint32 itemId, Spell *spell=nullptr, bool onHold=false, Optional< Duration > forcedCooldown={})
static bool ValidateSpellInfo(std::initializer_list< uint32 > spellIds)
Definition: SpellScript.h:162
HookList< CheckCastHandler > OnCheckCast
Definition: SpellScript.h:829
int32 GetHitDamage() const
Unit * GetCaster() const
HookList< HitHandler > OnHit
Definition: SpellScript.h:850
Unit * GetHitUnit() const
HookList< EffectHandler > OnEffectHitTarget
Definition: SpellScript.h:840
HookList< CastHandler > BeforeCast
Definition: SpellScript.h:820
Difficulty GetCastDifficulty() const
void SetHitDamage(int32 damage)
WorldLocation const * GetExplTargetDest() const
HookList< ObjectAreaTargetSelectHandler > OnObjectAreaTargetSelect
Definition: SpellScript.h:863
Definition: Unit.h:627
void RemoveAura(AuraApplicationMap::iterator &i, AuraRemoveMode mode=AURA_REMOVE_BY_DEFAULT)
Definition: Unit.cpp:3685
Unit * GetVehicleBase() const
Definition: Unit.cpp:11480
Aura * GetAura(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, ObjectGuid itemCasterGUID=ObjectGuid::Empty, uint32 reqEffMask=0) const
Definition: Unit.cpp:4560
bool IsMounted() const
Definition: Unit.h:898
SpellHistory * GetSpellHistory()
Definition: Unit.h:1457
bool IsFalling() const
Definition: Unit.cpp:12308
ObjectGuid GetTarget() const
Definition: Unit.h:1759
SpellCastResult CastSpell(CastSpellTargetArg const &targets, uint32 spellId, CastSpellExtraArgs const &args={ })
Definition: Object.cpp:2896
areatrigger_dh_generic_sigil(char const *script)
Definition: spell_dh.cpp:295
AreaTriggerAI * GetAI(AreaTrigger *at) const override
Definition: spell_dh.cpp:309
bool Validate(SpellInfo const *) override
Definition: spell_dh.cpp:265
void Register() override
Definition: spell_dh.cpp:282
void Register() override
Definition: spell_dh.cpp:253
bool Validate(SpellInfo const *) override
Definition: spell_dh.cpp:218
void DecideFirstTarget(std::list< WorldObject * > &targetList)
Definition: spell_dh.cpp:223
bool Validate(SpellInfo const *) override
Definition: spell_dh.cpp:178
void Register() override
Definition: spell_dh.cpp:192
void HandleEffectProc(AuraEffect *aurEff, ProcEventInfo &)
Definition: spell_dh.cpp:183
ObjectGuid const & GetFirstTarget() const
Definition: spell_dh.cpp:202
ObjectGuid _firstTargetGUID
Definition: spell_dh.cpp:211
void SetFirstTarget(ObjectGuid const &targetGuid)
Definition: spell_dh.cpp:203
void Register() override
Definition: spell_dh.cpp:206
void OnRemove(AuraEffect const *, AuraEffectHandleModes)
Definition: spell_dh.cpp:401
void Register() override
Definition: spell_dh.cpp:406
bool Validate(SpellInfo const *) override
Definition: spell_dh.cpp:396
void OnRemove(AuraEffect const *, AuraEffectHandleModes)
Definition: spell_dh.cpp:420
bool Validate(SpellInfo const *) override
Definition: spell_dh.cpp:415
void Register() override
Definition: spell_dh.cpp:425
void HandleCast()
Definition: spell_dh.cpp:373
void Register() override
Definition: spell_dh.cpp:386
SpellCastResult CheckCast()
Definition: spell_dh.cpp:361
bool Validate(SpellInfo const *) override
Definition: spell_dh.cpp:356
void Register() override
Definition: spell_dh.cpp:332
bool Validate(SpellInfo const *) override
Definition: spell_dh.cpp:318
void HandleEffectHitTarget(SpellEffIndex)
Definition: spell_dh.cpp:323
void CalculateSpellMod(AuraEffect const *aurEff, SpellModifier *&spellMod)
Definition: spell_dh.cpp:457
void Register() override
Definition: spell_dh.cpp:448
bool Validate(SpellInfo const *) override
Definition: spell_dh.cpp:434
void CalculateSpellMod(AuraEffect const *, AuraEffectHandleModes)
Definition: spell_dh.cpp:439
TC_GAME_API void Trigger(uint32 gameEventId, WorldObject *source, WorldObject *target)
void AddSC_demon_hunter_spell_scripts()
Definition: spell_dh.cpp:479
DemonHunterSpells
Definition: spell_dh.cpp:36
@ SPELL_DH_CONSUME_SOUL_HAVOC
Definition: spell_dh.cpp:58
@ SPELL_DH_FIERY_BRAND_DOT
Definition: spell_dh.cpp:99
@ SPELL_DH_METAMORPHOSIS_DUMMY
Definition: spell_dh.cpp:118
@ AREATRIGGER_DH_SHATTERED_SOULS_VENGEANCE
Definition: spell_dh.cpp:39
@ SPELL_DH_FEL_RUSH_GROUND
Definition: spell_dh.cpp:89
@ SPELL_DH_NEMESIS_ELEMENTALS
Definition: spell_dh.cpp:129
@ SPELL_DH_JAGGED_SPIKES
Definition: spell_dh.cpp:113
@ SPELL_DH_SIGIL_OF_FLAME_DAMAGE
Definition: spell_dh.cpp:154
@ SPELL_DH_NEMESIS_DEMONS
Definition: spell_dh.cpp:127
@ AREATRIGGER_DH_SOUL_FRAGMENT_VENGEANCE
Definition: spell_dh.cpp:42
@ SPELL_DH_SIGIL_OF_CHAINS_SNARE
Definition: spell_dh.cpp:150
@ SPELL_DH_NEMESIS_ABERRATIONS
Definition: spell_dh.cpp:124
@ SPELL_DH_DEMONIC_ORIGINS
Definition: spell_dh.cpp:70
@ SPELL_DH_SHATTERED_SOUL_LESSER_SOUL_FRAGMENT_1
Definition: spell_dh.cpp:143
@ SPELL_DH_CONSUME_SOUL_HAVOC_DEMON
Definition: spell_dh.cpp:59
@ SPELL_DH_EYE_OF_LEOTHERAS_DMG
Definition: spell_dh.cpp:77
@ SPELL_DH_FELBLADE_PROC_VISUAL
Definition: spell_dh.cpp:95
@ SPELL_DH_SHATTERED_SOUL
Definition: spell_dh.cpp:142
@ SPELL_DH_METAMORPHOSIS_IMPACT_DAMAGE
Definition: spell_dh.cpp:119
@ SPELL_DH_JAGGED_SPIKES_DMG
Definition: spell_dh.cpp:114
@ SPELL_DH_INFERNAL_STRIKE_JUMP
Definition: spell_dh.cpp:112
@ SPELL_DH_DEMON_SPIKES
Definition: spell_dh.cpp:67
@ SPELL_DH_SIGIL_OF_CHAINS_GRIP
Definition: spell_dh.cpp:147
@ SPELL_DH_FELBLADE_DMG
Definition: spell_dh.cpp:93
@ SPELL_DH_ANNIHILATION_MH
Definition: spell_dh.cpp:46
@ SPELL_DH_EYE_BEAM_DMG
Definition: spell_dh.cpp:76
@ SPELL_DH_SOUL_CLEAVE
Definition: spell_dh.cpp:161
@ SPELL_DH_METAMORPHOSIS
Definition: spell_dh.cpp:117
@ SPELL_DH_FELBLADE_PROC
Definition: spell_dh.cpp:94
@ SPELL_DH_SIGIL_OF_CHAINS_VISUAL
Definition: spell_dh.cpp:152
@ SPELL_DH_SIGIL_OF_FLAME_AOE
Definition: spell_dh.cpp:153
@ SPELL_DH_CONSUME_SOUL_VENGEANCE_SHATTERED
Definition: spell_dh.cpp:64
@ SPELL_DH_NEMESIS_MECHANICALS
Definition: spell_dh.cpp:132
@ SPELL_DH_GLIDE_KNOCKBACK
Definition: spell_dh.cpp:105
@ SPELL_DH_SPIRIT_BOMB_VISUAL
Definition: spell_dh.cpp:168
@ SPELL_DH_FEL_BARRAGE
Definition: spell_dh.cpp:81
@ SPELL_DH_RAIN_OF_CHAOS_IMPACT
Definition: spell_dh.cpp:136
@ SPELL_DH_CHAOS_NOVA
Definition: spell_dh.cpp:53
@ SPELL_DH_FEL_BARRAGE_DMG
Definition: spell_dh.cpp:82
@ SPELL_DH_RAIN_OF_CHAOS
Definition: spell_dh.cpp:135
@ SPELL_DH_CHAOS_STRIKE_OH
Definition: spell_dh.cpp:57
@ SPELL_DH_GLIDE_DURATION
Definition: spell_dh.cpp:104
@ SPELL_DH_SIGIL_OF_SILENCE_AOE
Definition: spell_dh.cpp:159
@ SPELL_DH_CHAOS_STRIKE_MH
Definition: spell_dh.cpp:56
@ SPELL_DH_MOMENTUM
Definition: spell_dh.cpp:123
@ SPELL_DH_BLUR_TRIGGER
Definition: spell_dh.cpp:50
@ SPELL_DH_FEL_RUSH
Definition: spell_dh.cpp:87
@ SPELL_DH_METAMORPHOSIS_RESET
Definition: spell_dh.cpp:120
@ SPELL_DH_SPIRIT_BOMB_DAMAGE
Definition: spell_dh.cpp:166
@ SPELL_DH_VENGEFUL_RETREAT
Definition: spell_dh.cpp:171
@ SPELL_DH_SHEAR
Definition: spell_dh.cpp:145
@ SPELL_DH_SOUL_FURNACE_DAMAGE_BUFF
Definition: spell_dh.cpp:164
@ SPELL_DH_FLAME_CRASH
Definition: spell_dh.cpp:101
@ SPELL_DH_ILLIDANS_GRASP_JUMP_DEST
Definition: spell_dh.cpp:109
@ SPELL_DH_ANNIHILATION_OH
Definition: spell_dh.cpp:47
@ SPELL_DH_SHATTER_SOUL_1
Definition: spell_dh.cpp:140
@ SPELL_DH_SOUL_RENDING
Definition: spell_dh.cpp:165
@ SPELL_DH_FEL_DEVASTATION_DMG
Definition: spell_dh.cpp:85
@ SPELL_DH_RAZOR_SPIKES
Definition: spell_dh.cpp:137
@ SPELL_DH_SIGIL_OF_MISERY_AOE
Definition: spell_dh.cpp:157
@ SPELL_DH_ANNIHILATION
Definition: spell_dh.cpp:45
@ SPELL_DH_FELBLADE_PROC1
Definition: spell_dh.cpp:96
@ SPELL_DH_ILLIDANS_GRASP_DAMAGE
Definition: spell_dh.cpp:108
@ SPELL_DH_AWAKEN_THE_DEMON_WITHIN_CD
Definition: spell_dh.cpp:48
@ AREATRIGGER_DH_SOUL_FRAGMENT_HAVOC
Definition: spell_dh.cpp:41
@ SPELL_DH_FEL_RUSH_WATER_AIR
Definition: spell_dh.cpp:90
@ SPELL_DH_NEMESIS_UNDEAD
Definition: spell_dh.cpp:133
@ SPELL_DH_FELBLADE_CHARGE
Definition: spell_dh.cpp:92
@ SPELL_DH_DEMONS_BITE
Definition: spell_dh.cpp:74
@ SPELL_DH_EYE_BEAM
Definition: spell_dh.cpp:75
@ SPELL_DH_DARKNESS_ABSORB
Definition: spell_dh.cpp:65
@ SPELL_DH_JAGGED_SPIKES_PROC
Definition: spell_dh.cpp:115
@ SPELL_DH_ABYSSAL_STRIKE
Definition: spell_dh.cpp:44
@ SPELL_DH_SOUL_FRAGMENT_COUNTER
Definition: spell_dh.cpp:163
@ SPELL_DH_METAMORPHOSIS_VENGEANCE_TRANSFORM
Definition: spell_dh.cpp:122
@ SPELL_DH_FELBLADE
Definition: spell_dh.cpp:91
@ SPELL_DH_SHATTERED_SOUL_LESSER_SOUL_FRAGMENT_2
Definition: spell_dh.cpp:144
@ AREATRIGGER_DH_SHATTERED_SOULS_VENGEANCE_DEMON
Definition: spell_dh.cpp:40
@ SPELL_DH_FIRST_BLOOD
Definition: spell_dh.cpp:100
@ SPELL_DH_CONSUME_SOUL_HEAL
Definition: spell_dh.cpp:61
@ SPELL_DH_FEL_BARRAGE_PROC
Definition: spell_dh.cpp:83
@ SPELL_DH_BLUR
Definition: spell_dh.cpp:49
@ SPELL_DH_FEL_RUSH_DMG
Definition: spell_dh.cpp:88
@ SPELL_DH_INFERNAL_STRIKE_IMPACT_DAMAGE
Definition: spell_dh.cpp:111
@ SPELL_DH_DEMONIC_ORIGINS_BUFF
Definition: spell_dh.cpp:71
@ SPELL_DH_NEMESIS_BEASTS
Definition: spell_dh.cpp:125
@ SPELL_DH_FEED_THE_DEMON
Definition: spell_dh.cpp:80
@ SPELL_DH_SOUL_CLEAVE_DMG
Definition: spell_dh.cpp:162
@ SPELL_DH_RAIN_FROM_ABOVE
Definition: spell_dh.cpp:134
@ SPELL_DH_SOUL_BARRIER
Definition: spell_dh.cpp:160
@ SPELL_DH_METAMORPHOSIS_TRANSFORM
Definition: spell_dh.cpp:121
@ SPELL_DH_HAVOC_MASTERY
Definition: spell_dh.cpp:106
@ SPELL_DH_SHATTER_SOUL
Definition: spell_dh.cpp:139
@ SPELL_DH_SHATTER_SOUL_2
Definition: spell_dh.cpp:141
@ SPELL_DH_DEMONIC
Definition: spell_dh.cpp:69
@ SPELL_DH_SPIRIT_BOMB_HEAL
Definition: spell_dh.cpp:167
@ SPELL_DH_NEMESIS_HUMANOIDS
Definition: spell_dh.cpp:131
@ SPELL_DH_DEMONIC_TRAMPLE_STUN
Definition: spell_dh.cpp:73
@ SPELL_DH_DEMON_SPIKES_TRIGGER
Definition: spell_dh.cpp:68
@ AREATRIGGER_DH_SHATTERED_SOULS_HAVOC_DEMON
Definition: spell_dh.cpp:38
@ SPELL_DH_SIGIL_OF_CHAINS_SLOW
Definition: spell_dh.cpp:149
@ SPELL_DH_NEMESIS_CRITTERS
Definition: spell_dh.cpp:126
@ SPELL_DH_SIGIL_OF_FLAME_FLAME_CRASH
Definition: spell_dh.cpp:155
@ SPELL_DH_FEAST_OF_SOULS
Definition: spell_dh.cpp:78
@ SPELL_DH_FEL_DEVASTATION_HEAL
Definition: spell_dh.cpp:86
@ SPELL_DH_SIGIL_OF_SILENCE
Definition: spell_dh.cpp:158
@ SPELL_DH_INFERNAL_STRIKE_CAST
Definition: spell_dh.cpp:110
@ SPELL_DH_VENGEFUL_RETREAT_TRIGGER
Definition: spell_dh.cpp:172
@ SPELL_DH_BURNING_ALIVE_TARGET_SELECTOR
Definition: spell_dh.cpp:52
@ SPELL_DH_CHAOS_STRIKE_ENERGIZE
Definition: spell_dh.cpp:55
@ SPELL_DH_NEMESIS_GIANTS
Definition: spell_dh.cpp:130
@ SPELL_DH_DEMON_BLADES_DMG
Definition: spell_dh.cpp:66
@ SPELL_DH_ILLIDANS_GRASP
Definition: spell_dh.cpp:107
@ SPELL_DH_BURNING_ALIVE
Definition: spell_dh.cpp:51
@ SPELL_DH_FRAILTY
Definition: spell_dh.cpp:102
@ SPELL_DH_CONSUME_SOUL_VENGEANCE_DEMON
Definition: spell_dh.cpp:63
@ SPELL_DH_SIGIL_OF_CHAINS_JUMP
Definition: spell_dh.cpp:148
@ SPELL_DH_SIGIL_OF_CHAINS_AREA_SELECTOR
Definition: spell_dh.cpp:146
@ SPELL_DH_CONSUME_SOUL_VENGEANCE
Definition: spell_dh.cpp:62
@ AREATRIGGER_DH_SHATTERED_SOULS_HAVOC
Definition: spell_dh.cpp:37
@ SPELL_DH_GLIDE
Definition: spell_dh.cpp:103
@ SPELL_DH_SIGIL_OF_MISERY
Definition: spell_dh.cpp:156
@ SPELL_DH_FIERY_BRAND
Definition: spell_dh.cpp:97
@ SPELL_DH_FEAST_OF_SOULS_PERIODIC_HEAL
Definition: spell_dh.cpp:79
@ SPELL_DH_MANA_RIFT_DMG_POWER_BURN
Definition: spell_dh.cpp:116
@ SPELL_DH_THROW_GLAIVE
Definition: spell_dh.cpp:169
@ SPELL_DH_NEMESIS_DRAGONKIN
Definition: spell_dh.cpp:128
@ SPELL_DH_FIERY_BRAND_DMG_REDUCTION_DEBUFF
Definition: spell_dh.cpp:98
@ SPELL_DH_SIGIL_OF_CHAINS_TARGET_SELECT
Definition: spell_dh.cpp:151
@ SPELL_DH_CONSUME_SOUL_HAVOC_SHATTERED
Definition: spell_dh.cpp:60
@ SPELL_DH_DEMONIC_TRAMPLE_DMG
Definition: spell_dh.cpp:72
@ SPELL_DH_CHAOS_STRIKE
Definition: spell_dh.cpp:54
@ SPELL_DH_FEL_DEVASTATION
Definition: spell_dh.cpp:84
@ SPELL_DH_UNCONTAINED_FEL
Definition: spell_dh.cpp:170
@ SPELL_DH_SEVER
Definition: spell_dh.cpp:138
CastSpellExtraArgs & AddSpellMod(SpellValueMod mod, int32 val)
Definition: SpellDefines.h:474
CastSpellExtraArgs & SetTriggeringAura(AuraEffect const *triggeringAura)
Definition: Spell.cpp:9414
constexpr void GetPosition(float &x, float &y) const
Definition: Position.h:81
SpellModOp op
Definition: Player.h:229
SpellModType type
Definition: Player.h:230
uint32 spellId
Definition: Player.h:232
areatrigger_dh_sigil_of_chains(AreaTrigger *at)
Definition: spell_dh.cpp:341