198 target->CastSpell(target, triggerspell, aurEff);
226 if (caster->ToPlayer()->GetRuneCooldown(i) == 0)
461 if (!damageInfo || !damageInfo->
GetDamage())
531 && target->GetDisplayId() == target->GetNativeDisplayId())
580 targets.push_back(target);
605 if (unitTarget->IsAlive())
678 damage += auraEffect->GetBaseAmount();
777 if (targetList.empty())
788 if (targetList.empty())
897 uint32 count = target->GetDiseasesByCaster(caster->
GetGUID());
1006 for (Unit::AuraEffectList::const_iterator i = mPeriodic.begin(); i != mPeriodic.end(); ++i)
1021 countMax += epidemic->GetAmount();
1023 if (countMin < countMax)
1129 int32 value = amount;
1133 value -=
int32((defValue - 400) * 0.15);
1138 int32 valMax = -aurEff->GetAmount();
1419 return damageInfo && damageInfo->
GetDamage();
1466 float donePct = aurOld->GetDonePct();
1467 float critChance = aurOld->GetCritChance();
1475 aurNew->SetCritChance(critChance);
1476 aurNew->SetDonePct(donePct);
1478 aurEffNew->ChangeAmount(aurEffNew->CalculateAmount(aurEffNew->GetCaster()),
false);
1485 float donePct = aurOld->GetDonePct();
1493 aurNew->SetDonePct(donePct);
1495 aurEffNew->ChangeAmount(aurEffNew->CalculateAmount(aurEffNew->GetCaster()),
false);
1574 int32 bp = impAurEff->GetSpellInfo()->GetEffect(
EFFECT_1).CalcValue();
1616 if (!target->IsAlive()
1619 && target->GetDisplayId() == target->GetNativeDisplayId())
1671 if (reagentSpell->
Reagent[i] <= 0)
1688 if (targets.empty())
1698 targets.push_back(target);
1860 AddPct(bp, aurEff->GetAmount());
1938 spellId = spellInfo->
Id;
2038 return damageInfo && damageInfo->
GetDamage();
2051 AddPct(amount, glyph->GetAmount());
2125 return damageInfo && damageInfo->
GetDamage();
2175 if (!firstRankSpellInfo)
2179 if (!spellInfo->
IsRankOf(firstRankSpellInfo))
2213 if (remainingHp < minHp)
2308 if (target->IsResurrectRequested())
2334 if (!ghoul || !ghoul->
IsAlive())
2350 static char constexpr const ScriptName[] =
"spell_dk_raise_ally";
2375 if (!originalCaster)
2473 ghoul->RemoveCharmedBy(player);
2474 ghoul->DespawnOrUnsummon(1s);
2522 APBonus *= 0.05f * frenzy->GetStackAmount();
2542#define DKBloodTapScriptName "spell_dk_blood_tap"
2672 if (caster->GetLevel() >= 60)
2673 damage += (caster->GetLevel() - 60) * 4;
2715 std::list<Creature*> runeWeapons;
2719 if (temp->IsAIEnabled())
2721 temp->GetThreatManager().RegisterRedirectThreat(
GetId(), caster->
GetGUID(), 100);
2752 Unit* runeWeapon =
nullptr;
#define MAX_SPELL_REAGENTS
#define MAX_SPELL_EFFECTS
DBCStorage< SummonPropertiesEntry > sSummonPropertiesStore(SummonPropertiesfmt)
#define SPELL_DK_RAISE_ALLY
int32 irand(int32 min, int32 max)
bool roll_chance_f(float chance)
bool roll_chance_i(int chance)
#define RegisterSpellScript(spell_script)
@ SPELL_EFFECT_SCRIPT_EFFECT
@ SPELL_EFFECT_ACTIVATE_RUNE
@ SPELL_EFFECT_SCHOOL_DAMAGE
@ SPELL_EFFECT_APPLY_AURA
@ TARGET_UNIT_DEST_AREA_ALLY
@ TARGET_UNIT_CASTER_AREA_PARTY
@ TARGET_UNIT_DEST_AREA_ENEMY
@ TARGET_UNIT_DEST_AREA_ENTRY
@ SPELL_SCHOOL_MASK_NORMAL
SpellSchools GetFirstSchoolInMask(SpellSchoolMask mask)
uint32 const CREATURE_TYPEMASK_MECHANICAL_OR_ELEMENTAL
@ SPELLFAMILY_DEATHKNIGHT
@ SPELL_CUSTOM_ERROR_MUST_BE_DEATH_KNIGHT
@ SPELL_FAILED_UNIT_NOT_INFRONT
@ SPELL_FAILED_TARGET_NOT_DEAD
@ SPELL_FAILED_CUSTOM_ERROR
@ SPELL_FAILED_DONT_REPORT
@ SPELL_FAILED_CANT_DO_THAT_RIGHT_NOW
@ SPELL_FAILED_BAD_TARGETS
@ SPELL_FAILED_NO_VALID_TARGETS
@ AURA_REMOVE_BY_ENEMY_SPELL
@ AURA_EFFECT_HANDLE_REAL
@ SPELL_AURA_PERIODIC_DAMAGE
@ SPELL_AURA_ADD_PCT_MODIFIER
@ SPELL_AURA_PROC_TRIGGER_SPELL
@ SPELL_AURA_CONVERT_RUNE
@ SPELL_AURA_MOD_INCREASE_HEALTH
@ SPELL_AURA_ADD_FLAT_MODIFIER
@ SPELL_AURA_PROC_TRIGGER_SPELL_WITH_VALUE
@ SPELL_AURA_MOD_DAMAGE_PERCENT_TAKEN
@ SPELL_AURA_DEFLECT_SPELLS
@ SPELL_AURA_MECHANIC_IMMUNITY
@ SPELL_AURA_MOD_DECREASE_SPEED
@ SPELL_AURA_SCHOOL_ABSORB
@ SPELL_AURA_PERIODIC_DUMMY
@ TRIGGERED_FULL_MASK
Will return SPELL_FAILED_DONT_REPORT in CheckCast functions.
@ TRIGGERED_IGNORE_POWER_AND_REAGENT_COST
Will ignore Spell and Category cooldowns.
#define SpellObjectTargetSelectFn(F, I, N)
#define SpellCheckCastFn(F)
#define AuraEffectProcFn(F, I, N)
#define SpellEffectFn(F, I, N)
#define AuraEffectCalcAmountFn(F, I, N)
#define SpellObjectAreaTargetSelectFn(F, I, N)
#define AuraEffectPeriodicFn(F, I, N)
#define AuraEffectAbsorbFn(F, I)
#define AuraEffectApplyFn(F, I, N, M)
#define AuraCheckProcFn(F)
#define AuraEffectRemoveFn(F, I, N, M)
@ PLAYER_PARRY_PERCENTAGE
T CalculatePct(T base, U pct)
SpellInfo const * GetSpellInfo() const
SpellEffectInfo const & GetSpellEffectInfo() const
void ResetPeriodic(bool resetPeriodicTimer=false)
ObjectGuid GetCasterGUID() const
void PreventDefaultAction()
HookList< EffectApplyHandler > AfterEffectRemove
HookList< EffectPeriodicHandler > OnEffectPeriodic
SpellInfo const * GetSpellInfo() const
HookList< EffectApplyHandler > AfterEffectApply
HookList< EffectAbsorbHandler > AfterEffectAbsorb
HookList< EffectCalcAmountHandler > DoEffectCalcAmount
SpellEffectInfo const & GetEffectInfo(SpellEffIndex effIndex) const
AuraEffect * GetEffect(uint8 effIndex) const
HookList< EffectAbsorbHandler > OnEffectAbsorb
HookList< CheckProcHandler > DoCheckProc
HookList< AuraDispelHandler > AfterDispel
HookList< EffectProcHandler > OnEffectProc
Unit * GetUnitOwner() const
HookList< AuraProcHandler > OnProc
HookList< EffectApplyHandler > OnEffectApply
bool ModStackAmount(int32 num, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
int32 GetMaxDuration() const
int32 GetDuration() const
void SetDuration(int32 duration, bool withMods=false)
void SetMaxDuration(int32 duration)
void RecalculateAmountOfEffects()
CorpseExplosionCheck(ObjectGuid casterGUID, bool allowGhoul)
bool operator()(WorldObject *obj) const
DamageEffectType GetDamageType() const
SpellSchoolMask GetSchoolMask() const
TempSummon * SummonCreature(uint32 entry, Position const &pos, SummonPropertiesEntry const *properties=nullptr, uint32 duration=0, WorldObject *summoner=nullptr, uint32 spellId=0, uint32 vehId=0, ObjectGuid privateObjectOwner=ObjectGuid::Empty)
static Unit * ToUnit(Object *o)
static ObjectGuid GetGUID(Object const *o)
static Player * ToPlayer(Object *o)
void SetRuneCooldown(uint8 index, uint32 cooldown, bool casted=false)
void RemoveRunesByAuraEffect(AuraEffect const *aura)
bool HasItemCount(uint32 item, uint32 count=1, bool inBankAlso=false) const
uint8 GetRunesState() const
bool CanNoReagentCast(SpellInfo const *spellInfo) const
void ClearResurrectRequestData()
uint32 GetRuneCooldown(uint8 index) const
void AddRuneByAuraEffect(uint8 index, RuneType newType, AuraEffect const *aura)
RuneType GetCurrentRune(uint8 index) const
uint32 GetRuneBaseCooldown(uint8 index) const
bool isHonorOrXPTarget(Unit const *victim) const
uint32 GetLastRuneGraceTimer(uint8 index) const
RuneType GetBaseRune(uint8 index) const
Unit * GetActionTarget() const
SpellInfo const * GetSpellInfo() const
DamageInfo * GetDamageInfo() const
bool operator()(WorldObject *obj) const
RaiseDeadCheck(Player const *caster)
int32 CalcValue(WorldObject const *caster=nullptr, int32 const *basePoints=nullptr) const
void ResetCooldown(uint32 spellId, bool update=false)
void StartCooldown(SpellInfo const *spellInfo, uint32 itemId, Spell *spell=nullptr, bool onHold=false)
void ResetCooldowns(Predicate predicate, bool update=false)
bool IsRankOf(SpellInfo const *spellInfo) const
uint32 GetMaxTicks() const
std::array< int32, MAX_SPELL_REAGENTS > Reagent
uint32 GetCategory() const
int32 GetMaxDuration() const
std::array< uint32, MAX_SPELL_REAGENTS > ReagentCount
SpellEffectInfo const & GetEffect(SpellEffIndex index) const
uint32 GetAllEffectsMechanicMask() const
SpellInfo const * GetNextRankSpell() const
HookList< CastHandler > AfterCast
WorldLocation * GetHitDest() const
HookList< CheckCastHandler > OnCheckCast
Player * GetHitPlayer() const
void SetEffectValue(int32 value)
int32 GetHitDamage() const
HookList< HitHandler > AfterHit
HookList< HitHandler > OnHit
HookList< EffectHandler > OnEffectHit
void PreventHitDefaultEffect(SpellEffIndex effIndex)
Unit * GetHitUnit() const
int32 GetEffectValue() const
SpellEffectInfo const & GetEffectInfo() const
HookList< EffectHandler > OnEffectHitTarget
HookList< ObjectTargetSelectHandler > OnObjectTargetSelect
HookList< CastHandler > OnCast
Aura * GetHitAura(bool dynObjAura=false) const
void SetCustomCastResultMessage(SpellCustomErrors result)
HookList< EffectHandler > OnEffectLaunchTarget
WorldLocation const * GetExplTargetDest() const
HookList< EffectHandler > OnEffectLaunch
Unit * GetExplTargetUnit() const
SpellInfo const * GetSpellInfo() const
void FinishCast(SpellCastResult result, uint32 *param1=nullptr, uint32 *param2=nullptr)
HookList< ObjectAreaTargetSelectHandler > OnObjectAreaTargetSelect
Unit * GetOriginalCaster() const
void SelectSpellTargets()
void SendResurrectRequest(Player *target)
static void SendCastResult(Player *caster, SpellInfo const *spellInfo, uint8 castCount, SpellCastResult result, SpellCustomErrors customError=SPELL_CUSTOM_ERROR_NONE, uint32 *param1=nullptr, uint32 *param2=nullptr)
static uint32 DealDamage(Unit *attacker, Unit *victim, uint32 damage, CleanDamage const *cleanDamage=nullptr, DamageEffectType damagetype=DIRECT_DAMAGE, SpellSchoolMask damageSchoolMask=SPELL_SCHOOL_MASK_NORMAL, SpellInfo const *spellProto=nullptr, bool durabilityLoss=true)
AuraEffectList const & GetAuraEffectsByType(AuraType type) const
Aura * GetAura(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, ObjectGuid itemCasterGUID=ObjectGuid::Empty, uint8 reqEffMask=0) const
void RemoveAura(AuraApplicationMap::iterator &i, AuraRemoveMode mode=AURA_REMOVE_BY_DEFAULT)
bool HasBreakableByDamageCrowdControlAura(Unit *excludeCasterChannel=nullptr) const
ObjectGuid GetOwnerGUID() const override
bool haveOffhandWeapon() const
AuraEffect * GetAuraEffect(uint32 spellId, uint8 effIndex, ObjectGuid casterGUID=ObjectGuid::Empty) const
void SetMaxPower(Powers power, uint32 val)
bool HasAura(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, ObjectGuid itemCasterGUID=ObjectGuid::Empty, uint8 reqEffMask=0) const
virtual bool HasSpell(uint32) const
uint32 GetCreatureType() const
bool HasUnitMovementFlag(uint32 f) const
AuraEffect * GetAuraEffectOfRankedSpell(uint32 spellId, uint8 effIndex, ObjectGuid casterGUID=ObjectGuid::Empty) const
void RemoveAurasDueToSpell(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, uint8 reqEffMask=0, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
bool HasUnitState(const uint32 f) const
uint32 CountPctFromMaxHealth(int32 pct) const
SpellHistory * GetSpellHistory()
bool SetCharmedBy(Unit *charmer, CharmType type, AuraApplication const *aurApp=nullptr)
std::list< AuraEffect * > AuraEffectList
void PushAI(UnitAI *newAI)
void GetAllMinionsByEntry(std::list< Creature * > &Minions, uint32 entry)
float GetUnitCriticalChanceAgainst(WeaponAttackType attackType, Unit const *victim) const
float GetTotalAttackPowerValue(WeaponAttackType attType) const
SpellCastResult CastSpell(CastSpellTargetArg const &targets, uint32 spellId, CastSpellExtraArgs const &args={ })
bool isInFront(WorldObject const *target, float arc=float(M_PI)) const
float GetDistance(WorldObject const *obj) const
bool IsFriendlyTo(WorldObject const *target) const
int32 CalculateSpellDamage(SpellEffectInfo const &spellEffectInfo, int32 const *basePoints=nullptr) const
static bool ValidateSpellInfo(std::initializer_list< uint32 > spellIds)
player_ghoulAI(Player *player, ObjectGuid ghoulGUID)
void UpdateAI(uint32 diff) override
bool Validate(SpellInfo const *) override
void HandleProc(AuraEffect const *aurEff, ProcEventInfo &eventInfo)
bool CheckProc(ProcEventInfo &eventInfo)
PrepareAuraScript(spell_dk_acclimation)
PrepareAuraScript(spell_dk_advantage_t10_4p)
bool Validate(SpellInfo const *) override
bool CheckProc(ProcEventInfo &eventInfo)
void CalculateAmount(AuraEffect const *, int32 &amount, bool &)
spell_dk_anti_magic_shell_raid()
PrepareAuraScript(spell_dk_anti_magic_shell_raid)
void Absorb(AuraEffect *, DamageInfo &dmgInfo, uint32 &absorbAmount)
spell_dk_anti_magic_shell_self()
void Absorb(AuraEffect *, DamageInfo &dmgInfo, uint32 &absorbAmount)
bool Validate(SpellInfo const *) override
void CalculateAmount(AuraEffect const *, int32 &amount, bool &)
void Trigger(AuraEffect *aurEff, DamageInfo &, uint32 &absorbAmount)
PrepareAuraScript(spell_dk_anti_magic_shell_self)
void CalculateAmount(AuraEffect const *, int32 &amount, bool &)
spell_dk_anti_magic_zone()
bool Validate(SpellInfo const *) override
PrepareAuraScript(spell_dk_anti_magic_zone)
void Absorb(AuraEffect *, DamageInfo &dmgInfo, uint32 &absorbAmount)
PrepareAuraScript(spell_dk_blade_barrier)
bool CheckProc(ProcEventInfo &eventInfo)
PrepareSpellScript(spell_dk_blood_boil)
bool Validate(SpellInfo const *) override
PrepareAuraScript(spell_dk_blood_gorged)
bool CheckProc(ProcEventInfo &)
bool Validate(SpellInfo const *) override
void HandleProc(AuraEffect const *aurEff, ProcEventInfo &eventInfo)
void SetRuneIndex(uint8 index)
spell_dk_blood_tap_AuraScript()
PrepareAuraScript(spell_dk_blood_tap_AuraScript)
void HandleApply(AuraEffect const *aurEff, AuraEffectHandleModes)
void SetRuneIndex(SpellEffIndex)
void HandleEffect(SpellEffIndex effIndex)
spell_dk_blood_tap_SpellScript()
PrepareSpellScript(spell_dk_blood_tap_SpellScript)
AuraScript * GetAuraScript() const override
SpellScript * GetSpellScript() const override
void HandleProc(AuraEffect const *aurEff, ProcEventInfo &)
PrepareAuraScript(spell_dk_bloodworms)
bool Validate(SpellInfo const *) override
void HandleProc(AuraEffect const *aurEff, ProcEventInfo &eventInfo)
PrepareAuraScript(spell_dk_butchery)
void HandleCorpseExplosion(SpellEffIndex effIndex)
bool Validate(SpellInfo const *spellInfo) override
void CheckTargets(std::list< WorldObject * > &targets)
PrepareSpellScript(spell_dk_corpse_explosion)
void CheckTarget(WorldObject *&target)
void HandleDamage(SpellEffIndex effIndex, Unit *target)
void HandleTarget(AuraEffect const *, AuraEffectHandleModes)
bool Validate(SpellInfo const *) override
bool CheckProc(ProcEventInfo &eventInfo)
PrepareAuraScript(spell_dk_dancing_rune_weapon)
void HandleProc(AuraEffect const *, ProcEventInfo &eventInfo)
PrepareAuraScript(spell_dk_death_and_decay)
void HandleDummyTick(AuraEffect const *aurEff)
PrepareSpellScript(spell_dk_death_coil)
bool Validate(SpellInfo const *) override
SpellCastResult CheckCast()
void HandleDummy(SpellEffIndex)
void HandleScript(SpellEffIndex effIndex)
PrepareSpellScript(spell_dk_death_gate)
SpellCastResult CheckClass()
PrepareSpellScript(spell_dk_death_grip_initial)
SpellCastResult CheckCast()
void HandleDummy(SpellEffIndex)
void HandleDummy(SpellEffIndex)
PrepareSpellScript(spell_dk_death_grip)
void FilterTargets(std::list< WorldObject * > &targetList)
PrepareSpellScript(spell_dk_death_pact)
bool CheckProc(ProcEventInfo &eventInfo)
void PeriodicTick(AuraEffect const *aurEff)
PrepareAuraScript(spell_dk_death_rune)
void HandleProc(ProcEventInfo &eventInfo)
PrepareSpellScript(spell_dk_death_strike)
bool Validate(SpellInfo const *) override
void HandleDummy(SpellEffIndex)
PrepareAuraScript(spell_dk_frost_fever)
void HandleDispel(DispelInfo *)
void HandleDamage(SpellEffIndex)
bool Validate(SpellInfo const *spellInfo) override
PrepareSpellScript(spell_dk_ghoul_explode)
void Suicide(SpellEffIndex)
void CalcDamage(SpellEffIndex)
PrepareSpellScript(spell_dk_ghoul_thrash)
bool Validate(SpellInfo const *) override
PrepareAuraScript(spell_dk_glyph_of_death_grip)
bool Validate(SpellInfo const *) override
void HandleProc(AuraEffect const *, ProcEventInfo &eventInfo)
PrepareSpellScript(spell_dk_glyph_of_scourge_strike_script)
void HandleScriptEffect(SpellEffIndex)
bool Validate(SpellInfo const *) override
PrepareAuraScript(spell_dk_glyph_of_scourge_strike)
void HandleProc(AuraEffect const *aurEff, ProcEventInfo &eventInfo)
void HandleDummy(SpellEffIndex)
bool Validate(SpellInfo const *) override
PrepareSpellScript(spell_dk_hungering_cold_init)
PrepareAuraScript(spell_dk_hungering_cold)
bool CheckProc(ProcEventInfo &eventInfo)
void PeriodicTick(AuraEffect const *aurEff)
PrepareAuraScript(spell_dk_hysteria)
PrepareAuraScript(spell_dk_icebound_fortitude)
void CalculateAmount(AuraEffect const *, int32 &amount, bool &)
PrepareAuraScript(spell_dk_improved_blood_presence_triggered)
bool CheckProc(ProcEventInfo &eventInfo)
void HandleProc(AuraEffect const *aurEff, ProcEventInfo &eventInfo)
bool Validate(SpellInfo const *) override
PrepareAuraScript(spell_dk_improved_blood_presence)
void HandleEffectApply(AuraEffect const *aurEff, AuraEffectHandleModes)
void HandleEffectRemove(AuraEffect const *, AuraEffectHandleModes)
bool Validate(SpellInfo const *) override
PrepareAuraScript(spell_dk_improved_frost_presence)
void HandleEffectApply(AuraEffect const *aurEff, AuraEffectHandleModes)
void HandleEffectRemove(AuraEffect const *, AuraEffectHandleModes)
bool Validate(SpellInfo const *) override
void HandleEffectRemove(AuraEffect const *, AuraEffectHandleModes)
void HandleEffectApply(AuraEffect const *aurEff, AuraEffectHandleModes)
PrepareAuraScript(spell_dk_improved_unholy_presence)
bool Validate(SpellInfo const *) override
PrepareAuraScript(spell_dk_lichborne)
bool Validate(SpellInfo const *) override
void AfterRemove(AuraEffect const *, AuraEffectHandleModes)
void AfterApply(AuraEffect const *, AuraEffectHandleModes)
void HandleProc(AuraEffect const *aurEff, ProcEventInfo &eventInfo)
bool Validate(SpellInfo const *) override
PrepareAuraScript(spell_dk_mark_of_blood)
bool CheckProc(ProcEventInfo &eventInfo)
PrepareAuraScript(spell_dk_necrosis)
bool Validate(SpellInfo const *) override
void HandleProc(AuraEffect const *aurEff, ProcEventInfo &eventInfo)
bool Validate(SpellInfo const *) override
PrepareSpellScript(spell_dk_pestilence)
void OnHit(SpellEffIndex)
void HandleImprovedBloodPresence(AuraEffect const *aurEff, AuraEffectHandleModes)
void HandleImprovedFrostPresence(AuraEffect const *aurEff, AuraEffectHandleModes)
void HandleEffectRemove(AuraEffect const *, AuraEffectHandleModes)
void HandleImprovedUnholyPresence(AuraEffect const *aurEff, AuraEffectHandleModes)
PrepareAuraScript(spell_dk_presence)
bool Validate(SpellInfo const *) override
bool CheckProc(ProcEventInfo &eventInfo)
void HandleProc(AuraEffect const *aurEff, ProcEventInfo &eventInfo)
PrepareAuraScript(spell_dk_pvp_4p_bonus)
bool Validate(SpellInfo const *) override
PrepareAuraScript(spell_dk_raise_ally_AuraScript)
void OnApply(AuraEffect const *, AuraEffectHandleModes)
void OnRemove(AuraEffect const *, AuraEffectHandleModes)
void SetGhoulGuid(ObjectGuid guid)
PrepareSpellScript(spell_dk_raise_ally_SpellScript)
void SetGhoul(SpellEffIndex)
void HandleSummon(SpellEffIndex effIndex)
PrepareSpellScript(spell_dk_raise_ally_initial)
bool Validate(SpellInfo const *spellInfo) override
SpellCastResult CheckCast()
void HandleDummy(SpellEffIndex)
static char constexpr const ScriptName[]
AuraScript * GetAuraScript() const override
SpellScript * GetSpellScript() const override
SpellCastResult CheckCast()
void HandleRaiseDead(SpellEffIndex)
PrepareSpellScript(spell_dk_raise_dead)
SpellCastResult CheckReagents()
bool Validate(SpellInfo const *spellInfo) override
void CheckTarget(WorldObject *&target)
void CheckTargets(std::list< WorldObject * > &targets)
void HandleProc(AuraEffect const *, ProcEventInfo &)
bool CheckProc(ProcEventInfo &)
PrepareAuraScript(spell_dk_rime)
PrepareSpellScript(spell_dk_rune_tap_party)
void CheckTargets(std::list< WorldObject * > &targets)
bool Validate(SpellInfo const *) override
void HandleProc(AuraEffect const *aurEff, ProcEventInfo &)
PrepareAuraScript(spell_dk_scent_of_blood)
bool Validate(SpellInfo const *) override
spell_dk_scourge_strike()
void HandleDummy(SpellEffIndex)
PrepareSpellScript(spell_dk_scourge_strike)
void CalculateAmount(AuraEffect const *, int32 &amount, bool &)
spell_dk_spell_deflection()
PrepareAuraScript(spell_dk_spell_deflection)
void Absorb(AuraEffect *, DamageInfo &dmgInfo, uint32 &absorbAmount)
void HandleProc(AuraEffect const *aurEff, ProcEventInfo &eventInfo)
PrepareAuraScript(spell_dk_sudden_doom)
bool Validate(SpellInfo const *) override
bool Validate(SpellInfo const *) override
void HandleProc(AuraEffect const *aurEff, ProcEventInfo &eventInfo)
PrepareAuraScript(spell_dk_threat_of_thassarian)
void HandleProc(AuraEffect const *aurEff, ProcEventInfo &eventInfo)
PrepareAuraScript(spell_dk_unholy_blight)
bool Validate(SpellInfo const *) override
bool CheckProc(ProcEventInfo &eventInfo)
PrepareAuraScript(spell_dk_vampiric_blood)
void CalculateAmount(AuraEffect const *, int32 &amount, bool &)
PrepareAuraScript(spell_dk_vendetta)
void HandleProc(AuraEffect const *aurEff, ProcEventInfo &eventInfo)
bool Validate(SpellInfo const *) override
PrepareSpellScript(spell_dk_wandering_plague_damage)
void FilterTargets(std::list< WorldObject * > &targets)
void HandleProc(AuraEffect const *aurEff, ProcEventInfo &eventInfo)
bool CheckProc(ProcEventInfo &eventInfo)
bool Validate(SpellInfo const *) override
PrepareAuraScript(spell_dk_wandering_plague)
void Absorb(AuraEffect *, DamageInfo &dmgInfo, uint32 &absorbAmount)
PrepareAuraScript(spell_dk_will_of_the_necropolis)
void CalculateAmount(AuraEffect const *, int32 &amount, bool &)
bool Validate(SpellInfo const *spellInfo) override
PrepareSpellScript(spell_pet_dk_gargoyle_strike)
void HandleDamageCalc(SpellEffIndex)
TC_GAME_API Creature * GetCreature(WorldObject const &u, ObjectGuid const &guid)
auto SelectRandomContainerElement(C const &container) -> typename std::add_const< decltype(*std::begin(container))>::type &
void RandomResize(C &container, std::size_t requestedSize)
#define DKBloodTapScriptName
@ SPELL_DK_ACCLIMATION_ARCANE
@ SPELL_DK_GLYPH_OF_ICEBOUND_FORTITUDE
@ SPELL_DK_ACCLIMATION_FROST
@ SPELL_DK_RAISE_DEAD_USE_REAGENT
@ SPELL_DK_IMPROVED_FROST_PRESENCE_R1
@ SPELL_DK_FROST_PRESENCE
@ SPELL_DK_IMPROVED_UNHOLY_PRESENCE_R1
@ SPELL_DK_DEATH_STRIKE_OFF_HAND_R1
@ SPELL_DK_ITEM_SIGIL_VENGEFUL_HEART
@ SPELL_DK_ADVANTAGE_T10_4P_MELEE
@ SPELL_DK_IMPROVED_BLOOD_PRESENCE_HEAL
@ SPELL_DK_HUNGERING_COLD_PROC
@ SPELL_DK_BLOOD_BOIL_TRIGGERED
@ SPELL_DK_GLYPH_OF_SCOURGE_STRIKE_SCRIPT
@ SPELL_DK_ANTI_MAGIC_SHELL_TALENT
@ SPELL_DK_RUNE_STRIKE_OFF_HAND_R1
@ SPELL_DK_MARK_OF_BLOOD_HEAL
@ SPELL_DK_ACCLIMATION_HOLY
@ SPELL_DK_CORPSE_EXPLOSION_VISUAL
@ SPELL_DK_SCOURGE_STRIKE_TRIGGERED
@ SPELL_DK_PLAGUE_STRIKE_OFF_HAND_R1
@ SPELL_DK_ACCLIMATION_SHADOW
@ SPELL_DK_BLOOD_GORGED_HEAL
@ SPELL_DK_DEATH_AND_DECAY_DAMAGE
@ SPELL_DK_UNHOLY_BLIGHT_DAMAGE
@ SPELL_DK_MASTER_OF_GHOULS
@ SPELL_DK_ACCLIMATION_FIRE
@ SPELL_DK_IMPROVED_UNHOLY_PRESENCE_TRIGGERED
@ SPELL_DK_BLOOD_STRIKE_OFF_HAND_R1
@ SPELL_DK_WILL_OF_THE_NECROPOLIS_AURA_R1
@ SPELL_DK_DEATH_COIL_HEAL
@ SPELL_DK_WILL_OF_THE_NECROPOLIS_TALENT_R1
@ SPELL_DK_IMPROVED_BLOOD_PRESENCE_TRIGGERED
@ SPELL_DK_OBLITERATE_OFF_HAND_R1
@ SPELL_DK_GLYPH_OF_DISEASE
@ SPELL_DK_ACCLIMATION_NATURE
@ SPELL_DK_DEATH_STRIKE_HEAL
@ SPELL_DK_FROST_STRIKE_OFF_HAND_R1
@ SPELL_DK_FROST_PRESENCE_TRIGGERED
@ SPELL_DK_RUNIC_POWER_ENERGIZE
@ SPELL_DK_NECROSIS_DAMAGE
@ SPELL_DK_BUTCHERY_RUNIC_POWER
@ SPELL_DK_ITEM_T8_MELEE_4P_BONUS
@ SPELL_DK_IMPROVED_BLOOD_PRESENCE_R1
@ SPELL_DK_SCENT_OF_BLOOD
@ SPELL_DK_WANDERING_PLAGUE_DAMAGE
@ SPELL_DK_DEATH_GRIP_INITIAL
@ SPELL_DK_UNHOLY_PRESENCE
@ SPELL_DK_GLYPH_OF_UNHOLY_BLIGHT
@ SPELL_DK_BLOOD_PRESENCE
@ SPELL_DK_UNHOLY_PRESENCE_TRIGGERED
@ SPELL_DK_DEATH_COIL_DAMAGE
@ SPELL_DK_CORPSE_EXPLOSION_TRIGGERED
@ SPELL_CATEGORY_HOWLING_BLAST
@ NPC_DK_DANCING_RUNE_WEAPON
@ DK_ICON_ID_IMPROVED_DEATH_STRIKE
@ SPELL_DK_PET_SCALING___MASTER_SPELL_03___INTELLECT_SPIRIT_RESILIENCE
@ SPELL_DK_PET_SCALING___MASTER_SPELL_06___SPELL_HIT_EXPERTISE_SPELL_PENETRATION
@ SPELL_DK_DEATH_KNIGHT_PET_SCALING_03
@ SPELL_DK_DEATH_KNIGHT_RUNE_WEAPON_SCALING_02
@ SPELL_DK_MIRROR_NAME_TRIGGERED
@ SPELL_DK_RISEN_GHOUL_SELF_STUN
@ SPELL_DK_DEATH_KNIGHT_PET_SCALING_01
@ SPELL_DK_RISEN_GHOUL_SPAWN__IN
@ DATA_INITIAL_TARGET_GUID
void AddSC_deathknight_spell_scripts()