94 aura->SetDuration(aura->GetDuration() / 2);
95 aura->SetMaxDuration(aura->GetMaxDuration() / 2);
266 for (SpellCooldowns::const_iterator itr = cm.begin(); itr != cm.end();)
346 if (level < spellData.minLevel || level > spellData.
maxLevel)
419 if (level < spellData.minLevel || level > spellData.
maxLevel)
625 if (aura->GetCasterGUID() !=
GetTarget()->GetGUID())
671 for (
uint32 i = 0; i < 6; i++)
681 target->CastSpell(target,
PolymorhForms[std::rand() % 5],
true);
744 std::list<Creature*> MinionList;
748 for (std::list<Creature*>::iterator itr = MinionList.begin(); itr != MinionList.end(); ++itr)
805 float inRadius = 4.7f;
807 for (std::list<WorldObject*>::iterator itr = targets.begin(); itr != targets.end(); ++itr)
810 targets.erase(itr--);
937 switch (player->GetTalentSpecialization(player->GetActiveSpec()))
952 caster->
CastSpell(caster, spellId,
true);
std::map< uint32, SpellCooldown > SpellCooldowns
@ SPELL_EFFECT_SCHOOL_DAMAGE
@ TARGET_UNIT_DEST_AREA_ENEMY
@ TARGET_UNIT_CASTER_AREA_RAID
@ SPELL_AURA_PERIODIC_DAMAGE
@ SPELL_AURA_PERIODIC_DAMAGE_PERCENT
@ SPELL_AURA_PERIODIC_LEECH
@ SPELL_AURA_PERIODIC_TRIGGER_SPELL
@ AURA_EFFECT_HANDLE_REAL_OR_REAPPLY_MASK
@ AURA_EFFECT_HANDLE_REAL
#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 AuraEffectRemoveFn(F, I, N, M)
@ AURA_REMOVE_BY_ENEMY_SPELL
bool roll_chance_i(int chance)
T CalculatePct(T base, U pct)
AuraRemoveMode GetRemoveMode() const
void PreventDefaultAction()
AuraApplication const * GetTargetApplication() const
HookList< EffectApplyHandler > AfterEffectRemove
HookList< EffectPeriodicHandler > OnEffectPeriodic
SpellInfo const * GetSpellInfo() const
int32 GetMaxDuration() const
HookList< CheckProcHandler > DoCheckProc
HookList< EffectProcHandler > OnEffectProc
HookList< EffectApplyHandler > OnEffectApply
void DespawnOrUnsummon(uint32 msTimeToDespawn=0)
SpellCooldowns const & GetSpellCooldownMap() const
void RemoveSpellCooldown(uint32 spell_id, bool update=false)
DamageInfo * GetDamageInfo() const
Unit * GetProcTarget() const
int32 CalcValue(Unit const *caster=NULL, int32 const *basePoints=NULL, Unit const *target=NULL) const
SpellEffectInfo Effects[MAX_SPELL_EFFECTS]
uint32 GetMaxTicks() const
HookList< CastHandler > AfterCast
WorldLocation const * GetExplTargetDest()
HookList< HitHandler > AfterHit
SpellInfo const * GetSpellInfo()
HookList< HitHandler > OnHit
HookList< EffectHandler > OnEffectHit
HookList< EffectHandler > OnEffectHitTarget
void SetHitDamage(int32 damage)
HookList< ObjectAreaTargetSelectHandler > OnObjectAreaTargetSelect
SpellScriptLoader(const char *name)
uint32 GetRemainingPeriodicAmount(uint64 caster, uint32 spellId, AuraType auraType, uint8 effectIndex=0) const
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)
Aura * GetAura(uint32 spellId, uint64 casterGUID=0, uint64 itemCasterGUID=0, uint32 reqEffMask=0) const
TempSummon * ToTempSummon()
bool HasAura(uint32 spellId, uint64 casterGUID=0, uint64 itemCasterGUID=0, uint32 reqEffMask=0) const
void RemoveAurasByType(AuraType auraType, uint64 casterGUID=0, Aura *except=NULL, bool negative=true, bool positive=true)
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)
void GetAllMinionsByEntry(std::list< Creature * > &Minions, uint32 entry)
bool Validate(SpellInfo const *) override
PrepareSpellScript(spell_mage_blast_wave_SpellScript)
void CountTargets(std::list< WorldObject * > &targetList)
void HandleImprovedFlamestrike()
SpellScript * GetSpellScript() const override
PrepareSpellScript(spell_mage_cold_snap_SpellScript)
void HandleDummy(SpellEffIndex)
SpellScript * GetSpellScript() const override
bool Validate(SpellInfo const *) override
void HandleDummy(SpellEffIndex)
PrepareSpellScript(spell_mage_conjure_refreshment_SpellScript)
PrepareSpellScript(spell_mage_conjure_refreshment_table_SpellScript)
void HandleDummy(SpellEffIndex)
bool Validate(SpellInfo const *) override
spell_mage_conjure_refreshment_table()
SpellScript * GetSpellScript() const override
SpellScript * GetSpellScript() const override
spell_mage_conjure_refreshment()
bool Validate(SpellInfo const *) OVERRIDE
PrepareSpellScript(spell_mage_frostjaw_SpellScript)
SpellScript * GetSpellScript() const OVERRIDE
bool CheckProc(ProcEventInfo &)
void HandleEffectProc(AuraEffect const *, ProcEventInfo &)
bool Validate(SpellInfo const *) override
PrepareAuraScript(spell_mage_glyph_of_ice_block_AuraScript)
AuraScript * GetAuraScript() const override
spell_mage_glyph_of_ice_block()
bool Validate(SpellInfo const *) override
PrepareAuraScript(spell_mage_glyph_of_polymorph_AuraScript)
void HandleEffectProc(AuraEffect const *, ProcEventInfo &eventInfo)
spell_mage_glyph_of_polymorph()
AuraScript * GetAuraScript() const override
bool Validate(SpellInfo const *) override
void HandleProc(AuraEffect const *aurEff, ProcEventInfo &eventInfo)
PrepareAuraScript(spell_mage_ignite_AuraScript)
bool CheckProc(ProcEventInfo &eventInfo)
AuraScript * GetAuraScript() const override
PrepareAuraScript(spell_mage_living_bomb_AuraScript)
void AfterRemove(AuraEffect const *aurEff, AuraEffectHandleModes)
bool Validate(SpellInfo const *spellInfo) override
AuraScript * GetAuraScript() const override
PrepareSpellScript(spell_mage_mirror_image_SpellScript)
void HandleDummy(SpellEffIndex)
bool Validate(SpellInfo const *) override
spell_mage_mirror_image()
SpellScript * GetSpellScript() const override
bool DoCheck(ProcEventInfo &eventInfo)
PrepareAuraScript(spell_mage_nether_vortex_AuraScript)
bool Validate(SpellInfo const *) override
void HandleEffectProc(AuraEffect const *aurEff, ProcEventInfo &eventInfo)
spell_mage_nether_vortex()
AuraScript * GetAuraScript() const override
bool Validate(SpellInfo const *) override
static const uint32 PolymorhForms[6]
PrepareSpellScript(spell_mage_polymorph_cast_visual_SpellScript)
void HandleDummy(SpellEffIndex)
SpellScript * GetSpellScript() const override
spell_mage_polymorph_cast_visual()
PrepareSpellScript(spell_mage_pyroblast_SpellScript)
bool Validate(SpellInfo const *) override
void RecalculateDamage(SpellEffIndex)
SpellScript * GetSpellScript() const override
void Apply(AuraEffect const *, AuraEffectHandleModes)
void HandleEffectPeriodic(AuraEffect const *)
PrepareAuraScript(spell_mage_ring_of_frost_AuraScript)
bool Validate(SpellInfo const *) override
void OnRemove(AuraEffect const *, AuraEffectHandleModes)
bool Validate(SpellInfo const *) override
PrepareAuraScript(spell_mage_ring_of_frost_freeze_AuraScript)
PrepareSpellScript(spell_mage_ring_of_frost_freeze_SpellScript)
bool Validate(SpellInfo const *) override
void FilterTargets(std::list< WorldObject * > &targets)
SpellScript * GetSpellScript() const override
AuraScript * GetAuraScript() const override
spell_mage_ring_of_frost_freeze()
AuraScript * GetAuraScript() const override
spell_mage_ring_of_frost()
bool Validate(SpellInfo const *) override
PrepareSpellScript(spell_mage_time_warp_SpellScript)
void RemoveInvalidTargets(std::list< WorldObject * > &targets)
SpellScript * GetSpellScript() const override
void CountTargets(std::list< WorldObject * > &targetList)
void HandleImprovedFreeze()
bool Validate(SpellInfo const *) override
PrepareSpellScript(spell_mage_water_elemental_freeze_SpellScript)
SpellScript * GetSpellScript() const
spell_mage_water_elemental_freeze()
ConjureRefreshmentData const _conjureData[MAX_CONJURE_REFRESHMENT_SPELLS]
uint8 const MAX_CONJURE_REFRESHMENT_TABLE_SPELLS
ConjureRefreshmentTableData const _conjureTableData[MAX_CONJURE_REFRESHMENT_TABLE_SPELLS]
@ ICON_MAGE_IMPROVED_FLAMESTRIKE
@ ICON_MAGE_IMPROVED_MANA_GEM
@ ICON_MAGE_IMPROVED_FREEZE
@ ICON_MAGE_INCANTER_S_ABSORPTION
@ SPELL_PRIEST_SHADOW_WORD_DEATH
void AddSC_mage_spell_scripts()
@ SPELL_MAGE_RING_OF_FROST_SUMMON
@ SPELL_MAGE_PYROBLAST_CLEARCAST
@ SPELL_MAGE_GIRAFFE_FORM
@ SPELL_MAGE_FINGERS_OF_FROST
@ SPELL_MAGE_TEMPORAL_DISPLACEMENT
@ SPELL_MAGE_DRAGONHAWK_FORM
@ SPELL_MAGE_RING_OF_FROST_FREEZE
@ SPELL_MAGE_SQUIRREL_FORM
@ SPELL_MAGE_SUMMON_IMAGES_FIRE
@ SPELL_MAGE_GLYPH_OF_MIRROR_IMAGE
@ SPELL_MAGE_SERPENT_FORM
@ SPELL_MAGE_SUMMON_IMAGES_ARCANE
@ SPELL_MAGE_SUMMON_IMAGES_FROST
@ SPELL_MAGE_RING_OF_FROST_DUMMY
uint8 const MAX_CONJURE_REFRESHMENT_SPELLS
void GetPosition(float &x, float &y) const