176 switch (unitTarget->GetClass())
195 caster->
CastSpell(caster, spellId,
true);
255 caster->
CastSpell(
nullptr, spellId, args);
277template <u
int8 StackAmount>
283 template <u
int8 Stacks>
313 caster->
CastSpell(target, spellId, aurEff);
390 static std::vector<uint32>
const triggeredSpells[
MAX_CLASSES] =
421 caster->
CastSpell(caster, spellId, aurEff);
504 if (!healInfo || !healInfo->
GetHeal())
511 protEff->SetAmount(std::min<int32>(protEff->GetAmount() + absorb, 20000));
514 protEff->GetBase()->RefreshDuration();
607template <u
int32 StrengthSpellId, u
int32 AgilitySpellId, u
int32 APSpellId, u
int32 CriticalSpellId, u
int32 HasteSpellId>
613 template <u
int32 Strength, u
int32 Agility, u
int32 AttackPower, u
int32 Critical, u
int32 Haste>
630 static std::vector<uint32>
const triggeredSpells[
MAX_CLASSES] =
635 { Strength, Critical, Haste },
637 { Strength, Critical, Haste },
639 { Agility, Critical, AttackPower },
641 { Agility, Haste, AttackPower },
645 { Strength, Critical, Haste },
647 { Agility, Haste, AttackPower },
655 { Strength, Agility, Haste }
660 std::vector<uint32>
const& randomSpells = triggeredSpells[caster->
GetClass()];
661 if (randomSpells.empty())
665 caster->
CastSpell(caster, spellId, aurEff);
704 static uint32 const minimum = 1;
705 static uint32 const maximum = 100;
875 caster->
CastSpell(caster, spellId,
true);
996 if (targets.size() < 2)
1003 targets.push_back(target);
1095 caster->Unit::TextEmote(
_text, caster,
false);
1125 std::vector<uint32> possibleSpells;
1152 if (possibleSpells.empty())
1154 TC_LOG_WARN(
"spells",
"Missing spells for class {} in script spell_item_flask_of_the_north", caster->
GetClass());
1185 if (!damageInfo || !damageInfo->
GetDamage())
1220 if (
urand(0, 99) < 15)
1276template <u
int32 Energy, u
int32 Mana, u
int32 Rage, u
int32 RunicPower>
1309 spellId = RunicPower;
1315 caster->
CastSpell(
nullptr, spellId, aurEff);
1361 if (healTarget->GetHealth() - healInfo->GetEffectiveHeal() <= healTarget->CountPctFromMaxHealth(pct))
1407 switch (
urand(1, 5))
1414 caster->
CastSpell(caster, spellId,
true);
1553 if (!damageInfo || !damageInfo->
GetDamage())
1640 switch (
urand(1, 3))
1646 caster->
CastSpell(caster, spellId,
true);
1662 std::vector<SpellPowerCost>
const& costs = spell->GetPowerCost();
1663 auto m = std::find_if(costs.begin(), costs.end(), [](
SpellPowerCost const& cost) { return cost.Power == POWER_MANA && cost.Amount > 0; });
1664 if (m != costs.end())
1703 if (shield->GetAmount() > bp0)
1737 if (!damageInfo || !damageInfo->
GetDamage())
1838 switch (
urand(1, 2))
1845 caster->
CastSpell(caster, spellId,
true);
1877 uint8 maxSafeLevel = 0;
1893 if (caster->
GetLevel() > maxSafeLevel)
1991 switch (
urand(0, 6))
2021 caster->
CastSpell(caster, spellId,
true);
2058 switch (
urand(0, 3))
2079 caster->
CastSpell(caster, spellId,
true);
2124 if (!caster || !target)
2173 if (soulFragments->GetStackAmount() >= 10)
2176 soulFragments->Remove();
2285 if (
urand(0, 100) <= 30)
2380 switch (
urand(1, 3))
2385 caster->
CastSpell(caster, spellId,
true);
2465 static uint32 const minimum = 1;
2466 static uint32 const maximum = 6;
2507 player->GetSpellHistory()->CancelGlobalCooldown(
GetSpellInfo());
2546 caster->
LearnSpell(discoveredSpellId,
false);
2566 std::list<TempSummon*> ghouls;
2633 caster->
CastSpell(caster, spellId,
true);
2674 if (
urand(0, 60) < 1)
2701 switch (
urand(0, 5))
2893 if (creature->isDead())
2953 if (target->GetEntry() ==
NPC_LEVIROTH && !target->HealthBelowPct(95))
2956 target->ResetPlayerDamageReq();
3017 bool success =
true;
3085 bg->EventPlayerDroppedFlag(caster);
3143 aura->RefreshDuration();
3147 if (!aura || aura->GetStackAmount() < 5 || !
roll_chance_i(50))
3223 if (target->isDead())
3224 target->DespawnOrUnsummon();
3265template <u
int32 HealProcSpellId, u
int32 DamageProcSpellId>
3271 template <u
int32 HealProc, u
int32 DamageProc>
3290 caster->
CastSpell(target, HealProc, aurEff);
3293 caster->
CastSpell(target, DamageProc, aurEff);
3389template <u
int32 AldorSpellId, u
int32 ScryersSpellId>
3395 template <u
int32 Aldors, u
int32 Scryers>
3420 player->
CastSpell(target, Aldors, aurEff);
3423 player->
CastSpell(target, Scryers, aurEff);
3447 target->PlayDistanceSound(soundEntry->SoundID);
3494 switch (aurEff->
GetId())
3664 caster->
CastSpell(caster, spellTrigger, aurEff);
3701 if (target && target->
IsAlive())
3734 if (targets.empty())
3772 switch (
urand(1, 6))
3867 else if (chance < 25)
4121 std::vector<uint32> availableElixirs =
4149 availableElixirs.push_back(28509);
4153 bool useElixir =
true;
4164 for (
auto itr = auraMap.begin(); itr != auraMap.end(); ++itr)
4166 uint32 spellId = itr->second->GetBase()->GetId();
4167 if (
sSpellMgr->IsSpellMemberOfSpellGroup(spellId, chosenSpellGroup) && spellId != chosenElixir)
4190 std::vector<uint32> availableElixirs =
4208 availableElixirs.push_back(53753);
4210 availableElixirs.push_back(43186);
4285 if (!isCrowdControl)
4350 else if (!target->
HasAura(aura))
4351 target->
CastSpell(target, aura, aurEff);
4528 if (
GetSpell()->m_castItemLevel >= 0)
4620 aurEff->CalculatePeriodic(
GetCaster(),
false);
4676 if (!isCrowdControl)
First const & RAND(First const &first, Second const &second, Rest const &... rest)
DB2Storage< ChrClassesEntry > sChrClassesStore("ChrClasses.db2", &ChrClassesLoadInfo::Instance)
DB2Storage< BroadcastTextEntry > sBroadcastTextStore("BroadcastText.db2", &BroadcastTextLoadInfo::Instance)
DB2Storage< FactionEntry > sFactionStore("Faction.db2", &FactionLoadInfo::Instance)
@ ITEM_SUBCLASS_ARMOR_MAIL
@ ITEM_SUBCLASS_ARMOR_CLOTH
@ ITEM_SUBCLASS_ARMOR_LEATHER
@ ITEM_SUBCLASS_ARMOR_PLATE
#define TC_LOG_WARN(filterType__,...)
LootStore LootTemplates_Skinning("skinning_loot_template", "creature skinning id", true)
@ QUEST_STATUS_INCOMPLETE
float frand(float min, float max)
int32 irand(int32 min, int32 max)
uint32 urand(uint32 min, uint32 max)
bool roll_chance_i(int chance)
#define RegisterSpellScript(spell_script)
#define RegisterSpellScriptWithArgs(spell_script, script_name,...)
@ TARGET_UNIT_DEST_AREA_ALLY
@ TARGET_CORPSE_SRC_AREA_ENEMY
@ TARGET_UNIT_SRC_AREA_ALLY
@ EMOTE_ONESHOT_DANCESPECIAL
@ CREATURE_TYPE_GAS_CLOUD
@ SPELL_EFFECT_SCRIPT_EFFECT
@ SPELL_EFFECT_TELEPORT_UNITS
@ SPELL_EFFECT_APPLY_AURA
@ SPELL_CUSTOM_ERROR_TOO_MANY_GHOULS
@ SPELL_CUSTOM_ERROR_MUST_BE_CLOSE_TO_SINKHOLE
@ SPELL_CUSTOM_ERROR_LEARNED_EVERYTHING
@ SPELL_FAILED_CUSTOM_ERROR
@ SPELL_FAILED_CANT_DO_THAT_RIGHT_NOW
@ SPELL_FAILED_ONLY_ABOVEWATER
@ SPELL_FAILED_NO_VALID_TARGETS
uint32 GetExplicitDiscoverySpell(uint32 spellId, Player *player)
bool HasDiscoveredAllSpells(uint32 spellId, Player *player)
@ AURA_EFFECT_HANDLE_REAPPLY
@ AURA_EFFECT_HANDLE_REAL
@ SPELL_AURA_MOD_TOTAL_STAT_PERCENTAGE
@ SPELL_AURA_PROC_TRIGGER_SPELL
@ SPELL_AURA_MOD_DAMAGE_PERCENT_DONE
@ SPELL_AURA_MOD_PACIFY_SILENCE
@ SPELL_AURA_PERIODIC_DUMMY
@ SPELL_AURA_PERIODIC_TRIGGER_SPELL
@ TRIGGERED_FULL_MASK
Used when doing CastSpell with triggered == true.
@ SPELL_GROUP_ELIXIR_BATTLE
@ SPELL_GROUP_ELIXIR_GUARDIAN
@ PROC_FLAG_DEAL_RANGED_ABILITY
@ PROC_FLAG_DEAL_RANGED_ATTACK
@ PROC_FLAG_DEAL_HELPFUL_SPELL
@ PROC_FLAG_DEAL_HARMFUL_SPELL
#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 AuraCheckEffectProcFn(F, I, N)
#define AuraEffectCalcPeriodicFn(F, I, N)
#define AuraEffectApplyFn(F, I, N, M)
#define AuraCheckProcFn(F)
#define AuraCheckAreaTargetFn(F)
#define AuraEffectRemoveFn(F, I, N, M)
T CalculatePct(T base, U pct)
SpellEffectInfo const & GetSpellEffectInfo() const
void PreventDefaultAction()
HookList< EffectCalcPeriodicHandler > DoEffectCalcPeriodic
AuraApplication const * GetTargetApplication() const
int32 GetDuration() const
HookList< EffectApplyHandler > AfterEffectRemove
HookList< CheckEffectProcHandler > DoCheckEffectProc
HookList< EffectPeriodicHandler > OnEffectPeriodic
SpellInfo const * GetSpellInfo() const
WorldObject * GetOwner() const
HookList< EffectApplyHandler > AfterEffectApply
HookList< EffectProcHandler > AfterEffectProc
HookList< EffectCalcAmountHandler > DoEffectCalcAmount
SpellEffectInfo const & GetEffectInfo(SpellEffIndex effIndex) const
AuraEffect * GetEffect(uint8 effIndex) const
HookList< CheckAreaTargetHandler > DoCheckAreaTarget
ObjectGuid GetCasterGUID() const
HookList< AuraProcHandler > AfterProc
HookList< CheckProcHandler > DoCheckProc
HookList< EffectApplyHandler > OnEffectRemove
HookList< EffectProcHandler > OnEffectProc
Unit * GetUnitOwner() const
HookList< AuraProcHandler > OnProc
uint8 GetStackAmount() const
HookList< EffectApplyHandler > OnEffectApply
ObjectGuid GetCastId() const
uint8 GetStackAmount() const
virtual void Remove(AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)=0
CreatureDifficulty const * GetCreatureDifficulty() const
void DespawnOrUnsummon(Milliseconds timeToDespawn=0s, Seconds forceRespawnTime=0s)
SpellInfo const * GetSpellInfo() const
void AddEventAtOffset(BasicEvent *event, Milliseconds offset)
uint32 GetEffectiveHeal() const
static Creature * ToCreature(Object *o)
static ObjectGuid GetGUID(Object const *o)
static Player * ToPlayer(Object *o)
PartyTimeEmoteEvent(Player *player)
bool Execute(uint64, uint32) override
void LearnSpell(uint32 spell_id, bool dependent, int32 fromSkill=0, bool suppressMessaging=false, Optional< int32 > traitDefinitionId={})
void AutoStoreLoot(uint8 bag, uint8 slot, uint32 loot_id, LootStore const &store, ItemContext context=ItemContext::NONE, bool broadcast=false, bool createdByPlayer=false)
ChrSpecialization GetPrimarySpecialization() const
uint32 DoRandomRoll(uint32 minimum, uint32 maximum)
Battleground * GetBattleground() const
QuestStatus GetQuestStatus(uint32 quest_id) const
ReputationRank GetReputationRank(uint32 faction_id) const
HealInfo * GetHealInfo() const
Unit * GetActionTarget() const
Spell const * GetProcSpell() const
ProcFlagsHit GetHitMask() const
SpellInfo const * GetSpellInfo() const
ProcFlagsInit GetTypeMask() const
DamageInfo * GetDamageInfo() const
Unit * GetProcTarget() const
int32 CalcValue(WorldObject const *caster=nullptr, int32 const *basePoints=nullptr, Unit const *target=nullptr, float *variance=nullptr, uint32 castItemId=0, int32 itemLevel=-1) const
void ResetCooldown(uint32 spellId, bool update=false)
bool HasEffect(SpellEffectName effect) const
SpellEffectInfo const & GetEffect(SpellEffIndex index) const
bool HasAura(AuraType aura) const
static bool ValidateSpellInfo(std::initializer_list< uint32 > spellIds)
static bool ValidateSpellEffect(std::initializer_list< std::pair< uint32, SpellEffIndex > > effects)
HookList< CastHandler > AfterCast
HookList< CheckCastHandler > OnCheckCast
Creature * GetHitCreature() const
Player * GetHitPlayer() const
HookList< HitHandler > AfterHit
HookList< EffectHandler > OnEffectHit
void PreventHitDefaultEffect(SpellEffIndex effIndex)
int64 GetUnitTargetCountForEffect(SpellEffIndex effect) const
SpellInfo const * GetTriggeringSpell() const
Unit * GetHitUnit() const
HookList< EffectHandler > OnEffectHitTarget
Item * GetCastItem() const
void SetCustomCastResultMessage(SpellCustomErrors result)
void FinishCast(SpellCastResult result, int32 *param1=nullptr, int32 *param2=nullptr)
Difficulty GetCastDifficulty() const
void SetHitHeal(int32 heal)
SpellInfo const * GetSpellInfo() const
HookList< ObjectAreaTargetSelectHandler > OnObjectAreaTargetSelect
SpellInfo const * GetSpellInfo() const
ObjectGuid m_originalCastId
Binary predicate for sorting Units based on percent value of health.
float GetHealthPct() const
std::multimap< uint32, AuraApplication * > AuraApplicationMap
Powers GetPowerType() const
AuraEffect * GetAuraEffect(uint32 spellId, uint8 effIndex, ObjectGuid casterGUID=ObjectGuid::Empty) const
virtual Gender GetNativeGender() const
uint32 GetCreatureType() const
Aura * GetAura(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, ObjectGuid itemCasterGUID=ObjectGuid::Empty, uint32 reqEffMask=0) const
virtual void TextEmote(std::string_view text, WorldObject const *target=nullptr, bool isBossEmote=false)
void GetAllMinionsByEntry(std::list< TempSummon * > &Minions, uint32 entry)
void RemoveAuraFromStack(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT, uint16 num=1)
uint64 CountPctFromMaxHealth(int32 pct) const
void SetFacingTo(float const ori, bool force=true)
bool HasAura(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, ObjectGuid itemCasterGUID=ObjectGuid::Empty, uint32 reqEffMask=0) const
float GetStat(Stats stat) const
SpellHistory * GetSpellHistory()
void HandleEmoteCommand(Emote emoteId, Player *target=nullptr, Trinity::IteratorPair< int32 const * > spellVisualKitIds={}, int32 sequenceVariation=0)
bool HealthBelowPctDamaged(int32 pct, uint32 damage) const
AuraApplicationMap & GetAppliedAuras()
void RemoveAurasDueToSpell(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, uint32 reqEffMask=0, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
ObjectGuid GetTarget() const
virtual void SetDisplayId(uint32 displayId, bool setNative=false)
void PlayDirectSound(uint32 soundId, Player const *target=nullptr, uint32 broadcastTextId=0) const
SpellCastResult CastSpell(CastSpellTargetArg const &targets, uint32 spellId, CastSpellExtraArgs const &args={ })
Creature * FindNearestCreature(uint32 entry, float range, bool alive=true) const
void PeriodicTick(AuraEffect const *aurEff)
bool Validate(SpellInfo const *) override
void HandleProc(AuraEffect *aurEff, ProcEventInfo &)
bool Validate(SpellInfo const *) override
bool CheckProc(ProcEventInfo &eventInfo)
bool Validate(SpellInfo const *) override
void HandleProc(AuraEffect *aurEff, ProcEventInfo &eventInfo)
bool Validate(SpellInfo const *) override
void TriggerManaRestoration(AuraEffect const *aurEff, AuraEffectHandleModes)
void ForcePeriodic(AuraEffect const *, bool &isPeriodic, int32 &litude)
void UpdateSpecAura(AuraEffect const *aurEff)
bool Validate(SpellInfo const *) override
void OnRemove(AuraEffect const *, AuraEffectHandleModes)
void HandleProc(AuraEffect *aurEff, ProcEventInfo &eventInfo)
bool Validate(SpellInfo const *) override
spell_item_anger_capacitor(char const *ScriptName)
AuraScript * GetAuraScript() const override
void CalculateAmount(AuraEffect const *, int32 &amount, bool &)
bool Validate(SpellInfo const *spellInfo) override
void CalculateAmount(AuraEffect const *, int32 &amount, bool &)
void CalculateAmount(AuraEffect const *, int32 &amount, bool &)
bool Validate(SpellInfo const *spellInfo) override
void OnDummyEffect(SpellEffIndex effIndex)
bool Validate(SpellInfo const *) override
void HandleProc(AuraEffect *aurEff, ProcEventInfo &eventInfo)
void OnRemove(AuraEffect const *effect, AuraEffectHandleModes)
bool Validate(SpellInfo const *) override
bool CheckProc(ProcEventInfo &eventInfo)
bool Validate(SpellInfo const *) override
void HandleProc(AuraEffect *aurEff, ProcEventInfo &eventInfo)
bool Validate(SpellInfo const *) override
void HandleDummy(SpellEffIndex)
SpellCastResult CheckRequirement()
void HandleScript(SpellEffIndex)
bool Validate(SpellInfo const *) override
void HandleScript(SpellEffIndex)
bool Validate(SpellInfo const *) override
void OnRemove(AuraEffect const *effect, AuraEffectHandleModes)
void HandleDummy(SpellEffIndex)
bool Validate(SpellInfo const *) override
bool Validate(SpellInfo const *) override
void HandleDummy(SpellEffIndex)
bool Validate(SpellInfo const *spellInfo) override
bool CheckProc(ProcEventInfo &eventInfo)
bool Validate(SpellInfo const *) override
void HandleProc(AuraEffect *aurEff, ProcEventInfo &eventInfo)
void HandleDummy(SpellEffIndex)
bool Validate(SpellInfo const *) override
void HandleStackDrop(AuraEffect *, ProcEventInfo &)
void HandleProc(AuraEffect *aurEff, ProcEventInfo &eventInfo)
bool Validate(SpellInfo const *) override
void HandleProc(AuraEffect *aurEff, ProcEventInfo &eventInfo)
bool Validate(SpellInfo const *) override
AuraScript * GetAuraScript() const override
spell_item_deathbringers_will(char const *ScriptName)
bool Validate(SpellInfo const *) override
void HandleScript(SpellEffIndex)
@ TEXT_DECAHEDRAL_DWARVEN_DICE
spell_item_defibrillate_SpellScript(uint8 chance, uint32 failSpell)
void HandleScript(SpellEffIndex effIndex)
bool Validate(SpellInfo const *) override
SpellScript * GetSpellScript() const override
spell_item_defibrillate(char const *name, uint8 chance, uint32 failSpell=0)
bool Validate(SpellInfo const *) override
void HandlePeriodicDummy(AuraEffect const *aurEff)
bool Validate(SpellInfo const *) override
void HandleDummy(SpellEffIndex)
SpellCastResult CheckRequirement()
void HandleProc(AuraEffect *aurEff, ProcEventInfo &)
bool Validate(SpellInfo const *) override
void HandleDummy(SpellEffIndex)
bool Validate(SpellInfo const *) override
bool Validate(SpellInfo const *) override
void HandleScript(SpellEffIndex)
bool Validate(SpellInfo const *) override
void HandleScript(SpellEffIndex)
void AfterApply(AuraEffect const *, AuraEffectHandleModes)
void HandleProc(AuraEffect *aurEff, ProcEventInfo &eventInfo)
bool Validate(SpellInfo const *) override
void FilterTargets(std::list< WorldObject * > &targets)
bool Validate(SpellInfo const *) override
void HandleScript(SpellEffIndex)
bool Validate(SpellInfo const *) override
void HandleProc(AuraEffect *, ProcEventInfo &)
void HandleScript(SpellEffIndex)
spell_item_feast(uint32 text)
bool Validate(SpellInfo const *) override
bool Validate(SpellInfo const *) override
void HandleDummy(SpellEffIndex)
void HandleProc(AuraEffect *aurEff, ProcEventInfo &eventInfo)
bool Validate(SpellInfo const *) override
SpellCastResult CheckRequirement()
void HandleDummy(SpellEffIndex)
bool Validate(SpellInfo const *) override
bool Validate(SpellInfo const *) override
void HandleDummy(SpellEffIndex)
void HandleScript(SpellEffIndex)
void HandleDummy(SpellEffIndex)
bool Validate(SpellInfo const *spellInfo) override
bool CheckHealth(AuraEffect const *, ProcEventInfo &eventInfo)
bool Validate(SpellInfo const *) override
void HandleProc(ProcEventInfo &)
bool Validate(SpellInfo const *) override
void HandleProc(AuraEffect *aurEff, ProcEventInfo &eventInfo)
bool CheckHealth(AuraEffect const *aurEff, ProcEventInfo &eventInfo)
void Heal(AuraEffect *aurEff, ProcEventInfo &)
bool Validate(SpellInfo const *) override
void HandleDummy(SpellEffIndex)
bool Validate(SpellInfo const *) override
bool Validate(SpellInfo const *) override
void HandleDummy(SpellEffIndex)
void TriggerCooldown(ProcEventInfo &)
static constexpr uint32 SPELL_METTLE_COOLDOWN
bool Validate(SpellInfo const *) override
bool CheckProc(ProcEventInfo &eventInfo)
void OnRemove(AuraEffect const *effect, AuraEffectHandleModes)
bool Validate(SpellInfo const *) override
void HandleDummy(SpellEffIndex)
bool Validate(SpellInfo const *) override
bool IsDemon(AuraEffect const *, ProcEventInfo &eventInfo)
bool Validate(SpellInfo const *) override
void HandleDummy(SpellEffIndex)
void HandleProc(AuraEffect *aurEff, ProcEventInfo &eventInfo)
bool Validate(SpellInfo const *) override
SpellCastResult CheckSinkholes()
bool Validate(SpellInfo const *) override
void HandleProc(AuraEffect *aurEff, ProcEventInfo &eventInfo)
void HandleScript(SpellEffIndex)
bool Validate(SpellInfo const *) override
void HandleDummy(SpellEffIndex)
bool Validate(SpellInfo const *) override
bool Validate(SpellInfo const *) override
void HandleDummy(SpellEffIndex)
void HandleScriptEffect(SpellEffIndex)
void HandleDummy(SpellEffIndex)
bool CheckProc(ProcEventInfo &eventInfo)
bool Validate(SpellInfo const *) override
void HandleProc(AuraEffect *aurEff, ProcEventInfo &eventInfo)
void HandleDummy(SpellEffIndex)
bool Validate(SpellInfo const *) override
bool Validate(SpellInfo const *) override
void HandleDummy(SpellEffIndex)
bool Validate(SpellInfo const *) override
void HandleApply(AuraEffect const *, AuraEffectHandleModes)
void HandlePeriodicDummy(AuraEffect const *effect)
void HandleDummy(SpellEffIndex)
bool Validate(SpellInfo const *) override
bool Validate(SpellInfo const *) override
void HandleDummy(SpellEffIndex)
void HandleEffectApply(AuraEffect const *, AuraEffectHandleModes)
bool CheckProc(ProcEventInfo &eventInfo)
void HandleProc(AuraEffect *aurEff, ProcEventInfo &eventInfo)
bool Validate(SpellInfo const *) override
bool CheckProc(ProcEventInfo &eventInfo)
void HandleProc(AuraEffect *aurEff, ProcEventInfo &eventInfo)
bool Validate(SpellInfo const *) override
void CalculatePeriod(AuraEffect const *, bool &, int32 &period)
void HandleScript(SpellEffIndex effIndex)
void HandleDummy(SpellEffIndex)
bool Validate(SpellInfo const *) override
bool Validate(SpellInfo const *) override
void OnApply(AuraEffect const *, AuraEffectHandleModes)
void OnRemove(AuraEffect const *, AuraEffectHandleModes)
bool CheckCaster(Unit *target)
void HandleDummy(SpellEffIndex)
bool Validate(SpellInfo const *) override
bool Validate(SpellInfo const *) override
void HandleDummy(SpellEffIndex)
void HandleScript(SpellEffIndex effIndex)
bool Validate(SpellInfo const *) override
void HandleDummy(SpellEffIndex)
bool Validate(SpellInfo const *) override
SpellCastResult CheckCast()
void HandleHeal(SpellEffIndex)
void HandleDummy(SpellEffIndex)
bool Validate(SpellInfo const *) override
bool Validate(SpellInfo const *spellInfo) override
bool CheckCooldownAura(ProcEventInfo &eventInfo)
void TriggerAdditionalDamage()
bool Validate(SpellInfo const *) override
void TriggerIsolatedStrikeCheck(AuraEffect *aurEff, ProcEventInfo &eventInfo)
bool CheckProc(AuraEffect const *, ProcEventInfo &eventInfo)
void HandleProc(AuraEffect *aurEff, ProcEventInfo &procInfo)
bool Validate(SpellInfo const *) override
bool IsDemon(AuraEffect const *, ProcEventInfo &eventInfo)
void OnRemove(AuraEffect const *, AuraEffectHandleModes)
bool Validate(SpellInfo const *) override
void OnStackChange(AuraEffect const *, AuraEffectHandleModes)
bool Validate(SpellInfo const *) override
bool CheckProc(ProcEventInfo &eventInfo)
void HandleProc(AuraEffect *aurEff, ProcEventInfo &eventInfo)
void OnRemove(AuraEffect const *, AuraEffectHandleModes)
void HandleProc(ProcEventInfo &procInfo)
void HandleProc(AuraEffect *aurEff, ProcEventInfo &eventInfo)
bool Validate(SpellInfo const *) override
AuraScript * GetAuraScript() const override
spell_item_shard_of_the_scale(char const *ScriptName)
ShiverVenomSpell _additionalProcSpellId
spell_item_shiver_venom_weapon_proc(ShiverVenomSpell additionalProcSpellId)
void HandleAdditionalProc(AuraEffect *aurEff, ProcEventInfo &procInfo)
bool Validate(SpellInfo const *) override
void HandleDummy(SpellEffIndex)
bool Validate(SpellInfo const *) override
bool Validate(SpellInfo const *) override
void HandleDummy(SpellEffIndex)
bool Validate(SpellInfo const *) override
void HandleProc(AuraEffect *aurEff, ProcEventInfo &eventInfo)
bool Validate(SpellInfo const *) override
bool CheckProc(ProcEventInfo &eventInfo)
void HandleProc(AuraEffect *aurEff, ProcEventInfo &eventInfo)
spell_item_sunwell_neck(char const *ScriptName)
AuraScript * GetAuraScript() const override
void HandleProc(AuraEffect *aurEff, ProcEventInfo &eventInfo)
bool Validate(SpellInfo const *) override
void OnRemove(AuraEffect const *effect, AuraEffectHandleModes)
bool Validate(SpellInfo const *) override
bool Validate(SpellInfo const *) override
void HandleDummy(SpellEffIndex)
void FilterTargets(std::list< WorldObject * > &targets)
void CalculateAmount(AuraEffect const *, int32 &amount, bool &)
void HandleTargets(std::list< WorldObject * > &targetList)
void HandleDummy(SpellEffIndex)
void HandleDummy(SpellEffIndex)
bool Validate(SpellInfo const *) override
spell_item_trigger_spell_SpellScript(uint32 triggeredSpellId)
SpellScript * GetSpellScript() const override
spell_item_trigger_spell(char const *name, uint32 triggeredSpellId)
void OnRemove(AuraEffect const *, AuraEffectHandleModes)
bool Validate(SpellInfo const *) override
spell_item_trinket_stack_AuraScript(uint32 stackSpell, uint32 triggerSpell)
void HandleProc(AuraEffect *aurEff, ProcEventInfo &eventInfo)
spell_item_trinket_stack(char const *scriptName, uint32 stackSpell, uint32 triggerSpell)
AuraScript * GetAuraScript() const override
void HandleScript(SpellEffIndex)
bool Validate(SpellInfo const *) override
void HandleDummy(SpellEffIndex)
bool Validate(SpellInfo const *) override
bool Validate(SpellInfo const *) override
void HandleDummy(SpellEffIndex)
bool CheckProc(ProcEventInfo &procInfo)
void HandleDummy(SpellEffIndex)
bool CheckProc(ProcEventInfo &eventInfo)
void HandleDummy(SpellEffIndex)
bool Validate(SpellInfo const *) override
void OnRemove(AuraEffect const *, AuraEffectHandleModes)
bool Validate(SpellInfo const *spellInfo) override
void OnRemove(AuraEffect const *effect, AuraEffectHandleModes)
bool Validate(SpellInfo const *) override
void HandleTeleport(SpellEffIndex effIndex)
bool Validate(SpellInfo const *) override
bool Validate(SpellInfo const *) override
void HandleScript(SpellEffIndex)
spell_item_zandalarian_charm_AuraScript(uint32 SpellId)
bool CheckProc(ProcEventInfo &eventInfo)
void HandleStackDrop(AuraEffect *, ProcEventInfo &)
bool Validate(SpellInfo const *) override
AuraScript * GetAuraScript() const override
spell_item_zandalarian_charm(char const *ScriptName, uint32 SpellId)
bool CheckProc(AuraEffect const *, ProcEventInfo &eventInfo)
void HandleTriggerSpell(AuraEffect const *)
auto SelectRandomContainerElement(C const &container) -> typename std::add_const< decltype(*std::begin(container))>::type &
void RandomResize(C &container, std::size_t requestedSize)
@ SPELL_DARKMOON_CARD_STRENGTH
@ SPELL_DARKMOON_CARD_AGILITY
@ SPELL_DARKMOON_CARD_VERSATILITY
@ SPELL_DARKMOON_CARD_INTELLECT
@ SPELL_GNOMISH_DEATH_RAY_SELF
@ SPELL_GNOMISH_DEATH_RAY_TARGET
@ SPELL_SCROLL_OF_RECALL_III
@ SPELL_SCROLL_OF_RECALL_FAIL_ALLIANCE_1
@ SPELL_SCROLL_OF_RECALL_I
@ SPELL_SCROLL_OF_RECALL_II
@ SPELL_SCROLL_OF_RECALL_FAIL_HORDE_1
@ SPELL_HIGHFATHERS_TIMEKEEPING_HEAL
@ SPELL_INVIGORATION_RP_HERO
@ SPELL_INVIGORATION_MANA
@ SPELL_INVIGORATION_ENERGY_HERO
@ SPELL_INVIGORATION_MANA_HERO
@ SPELL_INVIGORATION_RAGE_HERO
@ SPELL_INVIGORATION_RAGE
@ SPELL_INVIGORATION_ENERGY
@ SPELL_PROTECTION_OF_ANCIENT_KINGS
@ SPELL_NITRO_BOOSTS_SUCCESS
@ SPELL_NITRO_BOOSTS_PARACHUTE
@ SPELL_NITRO_BOOSTS_BACKFIRE
@ SPELL_FLASK_OF_THE_NORTH_SP
@ SPELL_FLASK_OF_THE_NORTH_STR
@ SPELL_FLASK_OF_THE_NORTH_AP
@ SPELL_FORCEFIELD_COLLAPSE
@ SPELL_MECHANICAL_DRAGONLING
@ SPELL_MITHRIL_MECHANICAL_DRAGONLING
@ SPELL_ARCANITE_DRAGONLING
@ SPELL_UNDERBELLY_ELIXIR_TRIGGERED2
@ SPELL_UNDERBELLY_ELIXIR_TRIGGERED1
@ SPELL_UNDERBELLY_ELIXIR_TRIGGERED3
@ SPELL_POULTRYIZER_SUCCESS
@ SPELL_POULTRYIZER_BACKFIRE
@ SPELL_MANA_DRAIN_ENERGIZE
@ SPELL_NOGGENFOGGER_ELIXIR_TRIGGERED1
@ SPELL_NOGGENFOGGER_ELIXIR_TRIGGERED2
@ SPELL_NOGGENFOGGER_ELIXIR_TRIGGERED3
@ SPELL_GOBLIN_JUMPER_CABLES_XL_FAIL
@ SPELL_GOBLIN_JUMPER_CABLES_FAIL
@ SPELL_SWIFT_HAND_OF_JUSTICE_HEAL
@ SPELL_ROCKET_BOOTS_PROC
@ NPC_ABYSSAL_FLAMEBRINGER
@ SPELL_CREATE_DEMON_BROILED_SURPRISE
@ SPELL_GNOMISH_MIND_CONTROL_CAP
@ ROLL_CHANCE_NO_BACKFIRE
@ SPELL_ITEM_NECROTIC_TOUCH_PROC
@ SPELL_RESTLESS_STRENGTH_AURA_STACK
@ SPELL_UNSTABLE_POWER_AURA_STACK
@ SPELL_CREATE_FORTUNE_10
@ SPELL_CREATE_FORTUNE_19
@ SPELL_CREATE_FORTUNE_20
@ SPELL_CREATE_FORTUNE_17
@ SPELL_CREATE_FORTUNE_12
@ SPELL_CREATE_FORTUNE_18
@ SPELL_CREATE_FORTUNE_16
@ SPELL_CREATE_FORTUNE_13
@ SPELL_CREATE_FORTUNE_15
@ SPELL_CREATE_FORTUNE_14
@ SPELL_CREATE_FORTUNE_11
@ SPELL_AIR_RIFLE_SHOOT_SELF
@ SPELL_AIR_RIFLE_HOLD_VISUAL
@ SPELL_MOBILITY_MALFUNCTION
@ MODEL_CLASS_MAIL_FEMALE
@ MODEL_CLASS_LEATHER_FEMALE
@ MODEL_CLASS_CLOTH_FEMALE
@ MODEL_CLASS_LEATHER_MALE
@ MODEL_CLASS_PLATE_FEMALE
@ SPELL_SUMMON_FURIOUS_MR_PINCHY
@ SPELL_TINY_MAGICAL_CRAWDAD
@ SPELL_SUMMON_MIGHTY_MR_PINCHY
@ SPELL_MR_PINCHYS_BLESSING
@ SPELL_COMPLETE_VULNERABILITY
@ SPELL_NIGH_INVULNERABILITY
@ SPELL_WORLD_QUELLER_FOCUS
@ SPELL_TALISMAN_OF_ASCENDANCE
@ SPELL_FORCE_CAST_SUMMON_GNOME_SOUL
void AddSC_item_spell_scripts()
@ SPELL_TRANSFORM_ALLIANCE
@ SPELL_TRANSPORTER_MALFUNCTION_CHICKEN
@ SPELL_TRANSPORTER_MALFUNCTION_SMALLER
@ SPELL_TRANSPORTER_MALFUNCTION_FIRE
@ SPELL_TRANSPORTER_MALFUNCTION_BIGGER
@ SPELL_DEATH_CHOICE_HEROIC_AURA
@ SPELL_DEATH_CHOICE_HEROIC_STRENGTH
@ SPELL_DEATH_CHOICE_NORMAL_AURA
@ SPELL_DEATH_CHOICE_NORMAL_STRENGTH
@ SPELL_DEATH_CHOICE_NORMAL_AGILITY
@ SPELL_DEATH_CHOICE_HEROIC_AGILITY
FateRuneOfUnsurpassedVigor
@ SPELL_UNSURPASSED_VIGOR
@ SPELL_RAPTOR_CAPTURE_CREDIT
@ SPELL_BLESSING_OF_LOWER_CITY_SHAMAN
@ SPELL_BLESSING_OF_LOWER_CITY_PALADIN
@ SPELL_BLESSING_OF_LOWER_CITY_DRUID
@ SPELL_BLESSING_OF_LOWER_CITY_PRIEST
@ SPELL_SOUL_PRESERVER_PALADIN
@ SPELL_SOUL_PRESERVER_SHAMAN
@ SPELL_SOUL_PRESERVER_DRUID
@ SPELL_SOUL_PRESERVER_PRIEST
@ SPELL_PERSONALIZED_WEATHER2
@ SPELL_PERSONALIZED_WEATHER1
@ SPELL_PERSONALIZED_WEATHER4
@ SPELL_PERSONALIZED_WEATHER3
@ SPELL_ALCHEMIST_STONE_EXTRA_HEAL
@ SPELL_ALCHEMIST_STONE_EXTRA_MANA
@ SPELL_SEPHUZS_SECRET_COOLDOWN
uint32 const WormholeTargetLocations[]
@ SPELL_CAPTURE_CHICKEN_ESCAPE
@ SPELL_AGILITY_OF_THE_VRYKUL_HERO
@ SPELL_STRENGTH_OF_THE_TAUNKA_HERO
@ SPELL_POWER_OF_THE_TAUNKA
@ SPELL_POWER_OF_THE_TAUNKA_HERO
@ SPELL_SPEED_OF_THE_VRYKUL
@ SPELL_STRENGTH_OF_THE_TAUNKA
@ SPELL_AIM_OF_THE_IRON_DWARVES
@ SPELL_SPEED_OF_THE_VRYKUL_HERO
@ SPELL_AIM_OF_THE_IRON_DWARVES_HERO
@ SPELL_AGILITY_OF_THE_VRYKUL
@ SPELL_SHADOWMOURNE_VISUAL_HIGH
@ SPELL_SHADOWMOURNE_CHAOS_BANE_BUFF
@ SPELL_SHADOWMOURNE_SOUL_FRAGMENT
@ SPELL_SHADOWMOURNE_CHAOS_BANE_DAMAGE
@ SPELL_SHADOWMOURNE_VISUAL_LOW
@ SPELL_MANIFEST_ANGER_OFF_HAND
@ SPELL_MANIFEST_ANGER_MAIN_HAND
@ SPELL_PURIFIED_CAUTERIZING_HEAL
@ SPELL_PURIFIED_SEARING_FLAMES
@ SPELL_SHINY_SEARING_FLAMES
@ SPELL_SHINY_CAUTERIZING_HEAL
@ SPELL_PERSISTENT_SHIELD_TRIGGERED
@ SPELL_SUMMON_TOXIC_HELBOAR_MEAT
@ SPELL_SUMMON_PURIFIED_HELBOAR_MEAT
WormholeGeneratorPandariaSpell
@ SPELL_WORMHOLE_PANDARIA_CRANE_STATUE
@ SPELL_WORMHOLE_PANDARIA_ISLE_OF_RECKONING
@ SPELL_WORMHOLE_PANDARIA_SRA_VESS
@ SPELL_WORMHOLE_PANDARIA_WHITEPETAL_LAKE
@ SPELL_WORMHOLE_PANDARIA_EMPERORS_OMEN
@ SPELL_WORMHOLE_PANDARIA_KUNLAI_UNDERWATER
@ SPELL_WORMHOLE_PANDARIA_ZANVESS_TREE
@ SPELL_WORMHOLE_PANDARIA_RIKKITUN_VILLAGE
@ SPELL_WORMHOLE_PANDARIA_ANGLERS_WHARF
@ SPELL_BROOD_AFFLICTION_BRONZE
@ SPELL_MALFUNCTION_EXPLOSION
@ SPELL_SUMMON_GOBLIN_BOMB
@ SPELL_MARK_OF_CONQUEST_ENERGIZE
@ SPELL_SUMMON_FELHOUND_MINION
@ SPELL_PYGMY_OIL_SMALLER_AURA
@ SPELL_PYGMY_OIL_PYGMY_AURA
@ SPELL_FRAGILE_ECHOES_DRUID
@ SPELL_FRAGILE_ECHO_ENERGIZE
@ SPELL_FRAGILE_ECHOES_PRIEST_DISCIPLINE
@ SPELL_FRAGILE_ECHOES_MONK
@ SPELL_FRAGILE_ECHOES_PALADIN
@ SPELL_FRAGILE_ECHOES_SHAMAN
@ SPELL_FRAGILE_ECHOES_PRIEST_HOLY
@ SPELL_NET_O_MATIC_TRIGGERED2
@ SPELL_NET_O_MATIC_TRIGGERED1
@ SPELL_NET_O_MATIC_TRIGGERED3
@ SPELL_LEVIROTH_SELF_IMPALE
@ SPELL_SOCRETHAR_FROM_SEAT
@ SPELL_SOCRETHAR_TO_SEAT
@ SPELL_SHADOW_STRIKE_AOE_CHECK
std::array< uint32, 20 > const CreateFortuneSpells
@ SPELL_LIGHTNING_CAPACITOR_AURA
@ SPELL_THUNDER_CAPACITOR_AURA
@ SPELL_TOC25_CASTER_TRINKET_HEROIC_TRIGGER
@ SPELL_LIGHTNING_CAPACITOR_TRIGGER
@ SPELL_TOC25_CASTER_TRINKET_HEROIC_STACK
@ SPELL_TOC25_CASTER_TRINKET_NORMAL_TRIGGER
@ SPELL_TOC25_CASTER_TRINKET_NORMAL_AURA
@ SPELL_THUNDER_CAPACITOR_TRIGGER
@ SPELL_TOC25_CASTER_TRINKET_NORMAL_STACK
@ SPELL_THUNDER_CAPACITOR_STACK
@ SPELL_LIGHTNING_CAPACITOR_STACK
@ SPELL_TOC25_CASTER_TRINKET_HEROIC_AURA
@ SPELL_AERIE_PEAK_PALE_ALE
@ SPELL_DISCERNING_EYE_BEAST
constexpr float GetPositionZ() const