218 player->NearTeleportTo(circle->GetPositionX(), circle->GetPositionY(), circle->GetPositionZ(), circle->GetOrientation());
219 player->RemoveMovementImpairingAuras();
339 target->ModifyHealth(-damage);
343 AddPct(mana, aurEff->GetAmount());
526 if (!warlock || !swapVictim)
534 swapSpellScript =
dynamic_cast<SoulSwapOverrideAuraScript*
>(swapOverrideAura->GetScriptByName(
"spell_warl_soul_swap_override"));
536 if (swapSpellScript == NULL)
539 for (Unit::AuraApplicationMap::const_iterator itr = appliedAuras.begin(); itr != appliedAuras.end(); ++itr)
541 SpellInfo const* spellProto = itr->second->GetBase()->GetSpellInfo();
542 if (itr->second->GetBase()->GetCaster() == warlock)
544 swapSpellScript->
AddDot(itr->first);
583 Unit* swapTarget = NULL;
586 swapTarget = swapScript->GetOriginalSwapSource();
589 if (swapTarget && currentTarget && swapTarget == currentTarget)
599 std::list<uint32> dotList;
600 Unit* swapSource = NULL;
613 for (std::list<uint32>::const_iterator itr = dotList.begin(); itr != dotList.end(); ++itr)
659 if (target->CanHaveThreatList() && target->getThreatManager().getThreat(caster) > 0.0f)
698 int32 damage = aurEff->GetAmount() * 9;
@ SPELL_EFFECT_SCHOOL_DAMAGE
@ TARGET_UNIT_DEST_AREA_ENEMY
@ SPELL_FAILED_BAD_TARGETS
@ SPELL_AURA_ADD_PCT_MODIFIER
@ SPELL_AURA_SCHOOL_IMMUNITY
@ SPELL_AURA_MECHANIC_IMMUNITY
@ SPELL_AURA_PERIODIC_DUMMY
@ AURA_EFFECT_HANDLE_REAL_OR_REAPPLY_MASK
@ AURA_EFFECT_HANDLE_REAPPLY
@ AURA_EFFECT_HANDLE_REAL
#define SpellCheckCastFn(F)
#define AuraEffectProcFn(F, I, N)
#define SpellEffectFn(F, I, N)
#define SpellObjectAreaTargetSelectFn(F, I, N)
#define AuraEffectPeriodicFn(F, I, N)
#define AuraEffectApplyFn(F, I, N, M)
#define AuraCheckProcFn(F)
#define AuraEffectCalcSpellModFn(F, I, N)
bool roll_chance_i(int chance)
T CalculatePct(T base, U pct)
uint32 GetEffIndex() const
void PreventDefaultAction()
HookList< EffectPeriodicHandler > OnEffectPeriodic
SpellInfo const * GetSpellInfo() const
HookList< EffectCalcSpellModHandler > DoEffectCalcSpellMod
AuraEffect * GetEffect(uint8 effIndex) const
HookList< CheckProcHandler > DoCheckProc
HookList< EffectApplyHandler > OnEffectRemove
HookList< AuraDispelHandler > AfterDispel
HookList< EffectProcHandler > OnEffectProc
HookList< EffectApplyHandler > OnEffectApply
Unit * GetDispeller() const
static GameObject * GetGameObject(WorldObject &object, uint64 guid)
DamageInfo * GetDamageInfo() const
SpellEffectInfo Effects[MAX_SPELL_EFFECTS]
float GetMaxRange(bool positive=false, Unit *caster=NULL, Spell *spell=NULL) const
Unit * GetExplTargetUnit()
HookList< CheckCastHandler > OnCheckCast
HookList< HitHandler > AfterHit
SpellInfo const * GetSpellInfo()
HookList< HitHandler > OnHit
void PreventHitDefaultEffect(SpellEffIndex effIndex)
HookList< EffectHandler > OnEffectHitTarget
void SetHitHeal(int32 heal)
HookList< ObjectAreaTargetSelectHandler > OnObjectAreaTargetSelect
HookList< HitHandler > BeforeHit
SpellScriptLoader(const char *name)
void RemoveGameObject(GameObject *gameObj, bool del)
void RemoveAura(AuraApplicationMap::iterator &i, AuraRemoveMode mode=AURA_REMOVE_BY_DEFAULT)
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 RemoveAurasDueToSpell(uint32 spellId, uint64 casterGUID=0, uint32 reqEffMask=0, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
std::multimap< uint32, AuraApplication * > AuraApplicationMap
Aura * GetAura(uint32 spellId, uint64 casterGUID=0, uint64 itemCasterGUID=0, uint32 reqEffMask=0) const
Aura * AddAura(uint32 spellId, Unit *target)
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)
uint32 CountPctFromMaxHealth(int32 pct) const
AuraEffect * GetDummyAuraEffect(SpellFamilyNames name, uint32 iconId, uint8 effIndex) const
AuraApplicationMap & GetAppliedAuras()
Guardian * GetGuardianPet() const
PrepareSpellScript(spell_warl_banish_SpellScript)
SpellScript * GetSpellScript() const OVERRIDE
PrepareAuraScript(spell_warl_chaotic_energy_AuraScript)
void HandleEffectCalcSpellMod(AuraEffect const *aurEff, SpellModifier *&spellMod)
AuraScript * GetAuraScript() const OVERRIDE
spell_warl_chaotic_energy()
PrepareAuraScript(spell_warl_demonic_circle_summon_AuraScript)
void HandleDummyTick(AuraEffect const *)
void HandleRemove(AuraEffect const *, AuraEffectHandleModes mode)
spell_warl_demonic_circle_summon()
AuraScript * GetAuraScript() const OVERRIDE
PrepareAuraScript(spell_warl_demonic_circle_teleport_AuraScript)
void HandleTeleport(AuraEffect const *, AuraEffectHandleModes)
spell_warl_demonic_circle_teleport()
AuraScript * GetAuraScript() const OVERRIDE
void OnProc(AuraEffect const *aurEff, ProcEventInfo &eventInfo)
bool Validate(SpellInfo const *) OVERRIDE
PrepareAuraScript(spell_warl_fel_synergy_AuraScript)
bool CheckProc(ProcEventInfo &eventInfo)
AuraScript * GetAuraScript() const OVERRIDE
PrepareSpellScript(spell_warl_healthstone_heal_SpellScript)
SpellScript * GetSpellScript() const OVERRIDE
spell_warl_healthstone_heal()
bool Validate(SpellInfo const *) OVERRIDE
SpellCastResult CheckCast()
void HandleDummy(SpellEffIndex)
PrepareSpellScript(spell_warl_life_tap_SpellScript)
SpellScript * GetSpellScript() const OVERRIDE
PrepareSpellScript(spell_warl_seed_of_corruption_SpellScript)
void FilterTargets(std::list< WorldObject * > &targets)
spell_warl_seed_of_corruption()
SpellScript * GetSpellScript() const OVERRIDE
bool Validate(SpellInfo const *) OVERRIDE
void OnProc(AuraEffect const *aurEff, ProcEventInfo &)
PrepareAuraScript(spell_warl_shadow_trance_proc_AuraScript)
AuraScript * GetAuraScript() const OVERRIDE
spell_warl_shadow_trance_proc()
bool Validate(SpellInfo const *) OVERRIDE
PrepareSpellScript(spell_warl_soul_swap_SpellScript)
void HandleHit(SpellEffIndex)
void HandleHit(SpellEffIndex effIndex)
PrepareSpellScript(spell_warl_soul_swap_dot_marker_SpellScript)
Soul Swap Copy Spells - 92795 - Simply copies spell IDs.
spell_warl_soul_swap_dot_marker()
SpellScript * GetSpellScript() const OVERRIDE
void OnEffectHit(SpellEffIndex)
bool Validate(SpellInfo const *) OVERRIDE
PrepareSpellScript(spell_warl_soul_swap_exhale_SpellScript)
SpellCastResult CheckCast()
SpellScript * GetSpellScript() const OVERRIDE
spell_warl_soul_swap_exhale()
std::list< uint32 > _dotList
Unit * GetOriginalSwapSource() const
void Register() OVERRIDE
Forced to, pure virtual functions must have a body when linking.
void SetOriginalSwapSource(Unit *victim)
PrepareAuraScript(spell_warl_soul_swap_override_AuraScript)
std::list< uint32 > const GetDotList() const
AuraScript * GetAuraScript() const OVERRIDE
spell_warl_soul_swap_override()
SpellScript * GetSpellScript() const OVERRIDE
void HandleDummy(SpellEffIndex)
bool Validate(SpellInfo const *) OVERRIDE
PrepareSpellScript(spell_warl_soulshatter_SpellScript)
SpellScript * GetSpellScript() const OVERRIDE
void HandleDispel(DispelInfo *dispelInfo)
bool Validate(SpellInfo const *) OVERRIDE
PrepareAuraScript(spell_warl_unstable_affliction_AuraScript)
AuraScript * GetAuraScript() const OVERRIDE
spell_warl_unstable_affliction()
@ SPELL_PRIEST_SHADOW_WORD_DEATH
@ SPELL_GEN_REPLENISHMENT
void AddSC_warlock_spell_scripts()
spell_warl_soul_swap_override::spell_warl_soul_swap_override_AuraScript SoulSwapOverrideAuraScript
@ SPELL_WARLOCK_SOUL_SWAP_MOD_COST
@ SPELL_WARLOCK_DEMONIC_CIRCLE_TELEPORT
@ SPELL_WARLOCK_SIPHON_LIFE_HEAL
@ SPELL_WARLOCK_SOUL_SWAP_DOT_MARKER
@ SPELL_WARLOCK_RAIN_OF_FIRE
@ SPELL_WARLOCK_DEMONIC_CIRCLE_SUMMON
@ SPELL_WARLOCK_SHADOW_TRANCE
@ SPELL_WARLOCK_SOUL_SWAP_OVERRIDE
@ SPELL_WARLOCK_SOUL_SWAP_CD_MARKER
@ SPELL_WARLOCK_FEL_SYNERGY_HEAL
@ SPELL_WARLOCK_LIFE_TAP_ENERGIZE
@ SPELL_WARLOCK_DEMONIC_CIRCLE_ALLOW_CAST
@ SPELL_WARLOCK_CREATE_HEALTHSTONE
@ SPELL_WARLOCK_AFTERMATH_STUN
@ SPELL_WARLOCK_UNSTABLE_AFFLICTION_DISPEL
@ SPELL_WARLOCK_SOULSHATTER
@ WARLOCK_ICON_ID_MANA_FEED
@ WARLOCK_ICON_ID_IMPROVED_LIFE_TAP