66 std::list<Unit*> tempList;
67 std::list<Unit*> gripList;
69 target->GetAttackableUnitListInRange(tempList, 20.0f);
71 for (std::list<Unit*>::iterator itr = tempList.begin(); itr != tempList.end(); ++itr)
76 if (tlist->
GetGUID() == target->GetGUID())
79 if (!_player->IsValidAttackTarget(tlist))
90 if (_player->HasVisionObscured(tlist))
96 gripList.push_back(tlist);
99 for (std::list<Unit*>::iterator itr = gripList.begin(); itr != gripList.end(); ++itr)
101 Unit* glist = (*itr);
104 target->CombatStart(_player,
true);
142 std::set<uint8> runes;
144 if (_player->GetRuneCooldown(i) == _player->GetRuneBaseCooldown(i))
148 std::set<uint8>::iterator itr = runes.begin();
149 std::advance(itr, std::rand() % (runes.size() - 1));
150 _player->SetRuneCooldown((*itr), 0);
189 int32 basepoints0 = runicCorruption->GetAmount();
191 aur->SetDuration(aur->GetDuration() + 3000);
325 int32 bp = absorbAmount * 2 / 10;
599 for (Unit::ControlList::const_iterator itr = player->m_Controlled.begin(); itr != player->m_Controlled.end(); ++itr)
601 if (undeadPet->IsAlive() &&
602 undeadPet->GetOwnerGUID() == player->GetGUID() &&
604 undeadPet->IsWithinDist(player, 100.0f,
false))
613 for (std::list<WorldObject*>::iterator itr = targetList.begin(); itr != targetList.end(); ++itr)
625 targetList.push_back(target);
669 heal =
AddPct(heal, aurEff->GetAmount());
706 for (
uint8 i = 0; i < 5; ++i)
720 for (
uint8 i = 0; i < 5; ++i)
737 for (
uint8 i = 4; i > 0; --i)
744 canBeRecalculated =
true;
746 for (
uint8 i = 0; i < 5; ++i)
826 int32 value = amount;
830 value -=
int32((defValue - 400) * 0.15);
835 int32 valMax = -aurEff->GetAmount();
@ SPELL_EFFECT_SCRIPT_EFFECT
@ SPELL_EFFECT_SCHOOL_DAMAGE
@ TARGET_UNIT_DEST_AREA_ALLY
@ TARGET_UNIT_CASTER_AREA_PARTY
@ SPELLFAMILY_DEATHKNIGHT
@ SPELL_CUSTOM_ERROR_MUST_BE_DEATH_KNIGHT
@ SPELL_FAILED_BAD_TARGETS
@ SPELL_FAILED_CUSTOM_ERROR
@ SPELL_FAILED_UNIT_NOT_INFRONT
@ SPELL_AURA_PROC_TRIGGER_SPELL
@ SPELL_AURA_MOD_INCREASE_HEALTH
@ SPELL_AURA_SCHOOL_HEAL_ABSORB
@ SPELL_AURA_MOD_DAMAGE_PERCENT_TAKEN
@ SPELL_AURA_DEFLECT_SPELLS
@ SPELL_AURA_SCHOOL_ABSORB
#define SpellCheckCastFn(F)
#define AuraEffectProcFn(F, I, N)
#define SpellEffectFn(F, I, N)
#define AuraEffectCalcAmountFn(F, I, N)
#define SpellObjectAreaTargetSelectFn(F, I, N)
#define AuraEffectUpdatePeriodicFn(F, I, N)
#define AuraEffectAbsorbFn(F, I)
#define AuraEffectCalcPeriodicFn(F, I, N)
#define AuraCheckProcFn(F)
bool roll_chance_i(int chance)
T CalculatePct(T base, U pct)
void PreventDefaultAction()
HookList< EffectCalcPeriodicHandler > DoEffectCalcPeriodic
SpellInfo const * GetSpellInfo() const
HookList< EffectAbsorbHandler > AfterEffectAbsorb
HookList< EffectCalcAmountHandler > DoEffectCalcAmount
HookList< EffectUpdatePeriodicHandler > OnEffectUpdatePeriodic
HookList< EffectAbsorbHandler > OnEffectAbsorb
HookList< CheckProcHandler > DoCheckProc
HookList< EffectProcHandler > OnEffectProc
Unit * GetUnitOwner() const
bool HasFlag(uint16 index, uint32 flag) const
DamageInfo * GetDamageInfo() const
int32 CalcValue(Unit const *caster=NULL, int32 const *basePoints=NULL, Unit const *target=NULL) const
SpellEffectInfo Effects[MAX_SPELL_EFFECTS]
Unit * GetExplTargetUnit()
HookList< CheckCastHandler > OnCheckCast
WorldLocation const * GetExplTargetDest()
HookList< HitHandler > AfterHit
SpellInfo const * GetSpellInfo()
HookList< HitHandler > OnHit
HookList< EffectHandler > OnEffectHit
void PreventHitDefaultEffect(SpellEffIndex effIndex)
HookList< EffectHandler > OnEffectHitTarget
void SetCustomCastResultMessage(SpellCustomErrors result)
HookList< ObjectAreaTargetSelectHandler > OnObjectAreaTargetSelect
SpellScriptLoader(const char *name)
void CastSpell(SpellCastTargets const &targets, SpellInfo const *spellInfo, CustomSpellValues const *value, TriggerCastFlags triggerFlags=TRIGGERED_NONE, Item *castItem=NULL, AuraEffect const *triggeredByAura=NULL, uint64 originalCaster=0)
void RemoveAuraFromStack(uint32 spellId, uint64 casterGUID=0, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
void CombatStart(Unit *target, bool initialAggro=true)
virtual bool IsImmunedToSpell(SpellInfo const *spellInfo) const
AuraEffect * GetAuraEffect(uint32 spellId, uint8 effIndex, uint64 casterGUID=0) const
void CastCustomSpell(Unit *victim, uint32 spellId, int32 const *bp0, int32 const *bp1, int32 const *bp2, bool triggered, Item *castItem=NULL, AuraEffect const *triggeredByAura=NULL, uint64 originalCaster=0)
bool IsFriendlyTo(Unit const *unit) const
uint32 CountPctFromMaxHealth(int32 pct) const
bool isInFront(WorldObject const *target, float arc=M_PI) const
bool IsWithinLOSInMap(WorldObject const *obj) const
void Absorb(AuraEffect *, DamageInfo &dmgInfo, uint32 &absorbAmount)
PrepareAuraScript(spell_dk_anti_magic_shell_raid_AuraScript)
void CalculateAmount(AuraEffect const *, int32 &amount, bool &)
spell_dk_anti_magic_shell_raid()
AuraScript * GetAuraScript() const OVERRIDE
void Trigger(AuraEffect *aurEff, DamageInfo &, uint32 &absorbAmount)
void CalculateAmount(AuraEffect const *, int32 &amount, bool &)
PrepareAuraScript(spell_dk_anti_magic_shell_self_AuraScript)
void Absorb(AuraEffect *, DamageInfo &dmgInfo, uint32 &absorbAmount)
bool Validate(SpellInfo const *) OVERRIDE
spell_dk_anti_magic_shell_self()
AuraScript * GetAuraScript() const OVERRIDE
void Absorb(AuraEffect *, DamageInfo &dmgInfo, uint32 &absorbAmount)
bool Validate(SpellInfo const *) OVERRIDE
void CalculateAmount(AuraEffect const *, int32 &amount, bool &)
PrepareAuraScript(spell_dk_anti_magic_zone_AuraScript)
spell_dk_anti_magic_zone()
AuraScript * GetAuraScript() const OVERRIDE
void HandleProc(AuraEffect const *aurEff, ProcEventInfo &eventInfo)
bool CheckProc(ProcEventInfo &)
PrepareAuraScript(spell_dk_blood_gorged_AuraScript)
bool Validate(SpellInfo const *) OVERRIDE
AuraScript * GetAuraScript() const OVERRIDE
void HandleDummy(SpellEffIndex)
SpellCastResult CheckCast()
PrepareSpellScript(spell_dk_death_coil_SpellScript)
bool Validate(SpellInfo const *) OVERRIDE
SpellScript * GetSpellScript() const OVERRIDE
PrepareSpellScript(spell_dk_death_gate_SpellScript)
SpellCastResult CheckClass()
void HandleScript(SpellEffIndex effIndex)
SpellScript * GetSpellScript() const OVERRIDE
PrepareSpellScript(spell_dk_death_grip_SpellScript)
void HandleDummy(SpellEffIndex)
SpellScript * GetSpellScript() const OVERRIDE
PrepareSpellScript(spell_dk_death_pact_SpellScript)
void FilterTargets(std::list< WorldObject * > &targetList)
SpellCastResult CheckCast()
SpellScript * GetSpellScript() const OVERRIDE
void HandleDummy(SpellEffIndex)
PrepareSpellScript(spell_dk_death_strike_SpellScript)
bool Validate(SpellInfo const *) OVERRIDE
void HandleCalcAmount(AuraEffect const *, int32 &amount, bool &canBeRecalculated)
void Update(AuraEffect *)
void HandleProc(AuraEffect const *, ProcEventInfo &eventInfo)
bool CheckProc(ProcEventInfo &eventInfo)
void CalcPeriodic(AuraEffect const *, bool &isPeriodic, int32 &litude)
PrepareAuraScript(spell_dk_death_strike_enabler_AuraScript)
uint32 _damagePerSecond[5]
AuraScript * GetAuraScript() const OVERRIDE
spell_dk_death_strike_enabler()
SpellScript * GetSpellScript() const OVERRIDE
bool Validate(SpellInfo const *) OVERRIDE
PrepareSpellScript(spell_dk_ghoul_explode_SpellScript)
void Suicide(SpellEffIndex)
SpellScript * GetSpellScript() const OVERRIDE
PrepareSpellScript(spell_dk_gorefiends_grasp_SpellScript)
spell_dk_gorefiends_grasp()
SpellScript * GetSpellScript() const OVERRIDE
PrepareAuraScript(spell_dk_icebound_fortitude_AuraScript)
void CalculateAmount(AuraEffect const *, int32 &amount, bool &)
AuraScript * GetAuraScript() const OVERRIDE
spell_dk_icebound_fortitude()
void CalculateAmount(AuraEffect const *, int32 &amount, bool &)
PrepareAuraScript(spell_dk_necrotic_strike_AuraScript)
AuraScript * GetAuraScript() const OVERRIDE
spell_dk_necrotic_strike()
void HandleDummy(SpellEffIndex)
PrepareSpellScript(spell_dk_raise_dead_SpellScript)
SpellScript * GetSpellScript() const OVERRIDE
void CheckTargets(std::list< WorldObject * > &targets)
PrepareSpellScript(spell_dk_rune_tap_party_SpellScript)
SpellScript * GetSpellScript() const OVERRIDE
spell_dk_rune_tap_party()
PrepareSpellScript(spell_dk_runic_corruption_SpellScript)
spell_dk_runic_corruption()
SpellScript * GetSpellScript() const OVERRIDE
PrepareSpellScript(spell_dk_runic_empowerment_SpellScript)
SpellScript * GetSpellScript() const OVERRIDE
spell_dk_runic_empowerment()
bool Validate(SpellInfo const *) OVERRIDE
void OnProc(AuraEffect const *aurEff, ProcEventInfo &)
PrepareAuraScript(spell_dk_scent_of_blood_AuraScript)
spell_dk_scent_of_blood()
AuraScript * GetAuraScript() const OVERRIDE
void HandleDummy(SpellEffIndex)
PrepareSpellScript(spell_dk_scourge_strike_SpellScript)
bool Validate(SpellInfo const *) OVERRIDE
spell_dk_scourge_strike()
SpellScript * GetSpellScript() const OVERRIDE
PrepareAuraScript(spell_dk_vampiric_blood_AuraScript)
void CalculateAmount(AuraEffect const *, int32 &amount, bool &)
AuraScript * GetAuraScript() const OVERRIDE
spell_dk_vampiric_blood()
@ SPELL_DK_GLYPH_OF_ICEBOUND_FORTITUDE
@ SPELL_DK_FROST_PRESENCE
@ SPELL_DK_GHOUL_AS_GUARDIAN
@ SPELL_DK_ANTI_MAGIC_SHELL_TALENT
@ SPELL_DK_CORPSE_EXPLOSION_VISUAL
@ SPELL_DK_SCOURGE_STRIKE_TRIGGERED
@ SPELL_DK_BLOOD_GORGED_HEAL
@ SPELL_DK_MASTER_OF_GHOULS
@ SPELL_DK_RUNIC_EMPOWERMENT
@ SPELL_DK_BLOOD_SHIELD_ABSORB
@ SPELL_DK_IMPROVED_DEATH_STRIKE
@ SPELL_DK_DEATH_COIL_HEAL
@ SPELL_DK_GOREFIENDS_GRASP_GRIP_VISUAL
@ SPELL_DK_BLOOD_SHIELD_MASTERY
@ SPELL_DK_DEATH_STRIKE_HEAL
@ SPELL_DK_RUNIC_POWER_ENERGIZE
@ SPELL_DK_RUNIC_CORRUPTION_REGEN
@ SPELL_DK_ITEM_T8_MELEE_4P_BONUS
@ SPELL_DK_DEATH_GRIP_ONLY_JUMP
@ SPELL_DK_SCENT_OF_BLOOD
@ SPELL_DK_DEATH_STRIKE_ENABLER
@ SPELL_DK_UNHOLY_PRESENCE
@ SPELL_DK_BLOOD_PRESENCE
@ SPELL_DK_DEATH_COIL_DAMAGE
@ SPELL_DK_CORPSE_EXPLOSION_TRIGGERED
void AddSC_deathknight_spell_scripts()
float GetPositionZ() const
float GetPositionX() const
float GetPositionY() const