69 absorbAmount = std::min(
limit, absorbAmount);
253 TC_LOG_ERROR(
"spells",
"Aura {} structure has been changed - first aura is no longer SPELL_AURA_MOD_POWER_REGEN",
GetId());
416 inline static std::unordered_map<Races, std::array<uint32, 2>>
const RaceDisplayIds =
456 if (
sObjectMgr->GetPlayerInfo(charBaseInfo->OtherFactionRaceID, playerClass))
457 return Races(charBaseInfo->OtherFactionRaceID);
465 return (*displayIds)[gender];
477 for (
uint32 displayId : displayIds)
523 if (std::vector<SkillLineAbilityEntry const*>
const* skillLineAbilities =
sDB2Manager.GetSkillLineAbilitiesBySkill(racialSkillId))
556 if (caster->HealthBelowPct(35))
601 if (
Item* item = target->GetItemByGuid(auraOnGuard->GetCastItemGUID()))
602 target->DestroyItemCount(item->GetEntry(), 1,
true);
676 rider->CastSpell(target, spellId,
false);
684 for (Unit::AuraApplicationMap::const_iterator itr = auras.begin(); itr != auras.end(); ++itr)
686 if (
Aura* aura = itr->second->GetBase())
688 if (aura->GetId() == 62552 || aura->GetId() == 62719 || aura->GetId() == 64100 || aura->GetId() == 66482)
693 if (
Aura* defend = rider->GetAura(aura->GetId()))
813 int32 basepoints0 = 100;
1030 damage = createdBySpell->GetEffect(
EFFECT_1).CalcValueAsInt();
1065 else if (target->GetTeam() ==
HORDE)
1091 switch (spellInfo->
Id)
1116 uint8 gender = player->GetNativeGender();
1254 if (
Unit* rider = vehicle->GetSummonerUnit())
1255 rider->RemoveAurasDueToSpell(
GetId());
1291 target->DespawnOrUnsummon();
1326 target->DespawnOrUnsummon();
1374 float verticalSpeed = 8.0f;
1377 player->KnockbackFrom(target->GetPosition(), horizontalSpeed, verticalSpeed);
1408 return levelDiff <= 9;
1415 std::list<TempSummon*> minionList;
1417 for (
Creature* minion : minionList)
1419 if (minion->IsAIEnabled())
1614 creature->InitializeReactState();
1649 creature->InitializeReactState();
1683 creature->InitializeReactState();
1714 creature->InitializeReactState();
1744 creature->InitializeReactState();
1800 target->ModifyMoney(5000 *
GOLD);
1996 if (target->CanHaveThreatList())
1997 target->GetThreatManager().ModifyThreatByPercent(
GetCaster(), -100);
2200 vehicle->CastSpell(target, spellId,
false);
2209 for (Unit::AuraApplicationMap::const_iterator itr = auras.begin(); itr != auras.end(); ++itr)
2211 if (
Aura* aura = itr->second->GetBase())
2213 if (aura->GetId() == 62552 || aura->GetId() == 62719 || aura->GetId() == 64100 || aura->GetId() == 66482)
2218 if (
Aura* defend = rider->GetAura(aura->GetId()))
2253 rider->CastSpell(
GetHitUnit(), spellId,
false);
2306 for (
uint8 i = 0; i < 5; ++i)
2328 for (
uint8 i = 0; i < 5; ++i)
2527 uint8 gender = target->GetNativeGender();
2614 if (!damageInfo || !damageInfo->
GetDamage())
2665 if (target->IsFalling())
2698 Pet* newPet =
new Pet(player, newPetType);
2777 for (
int i = 0; i < 2; ++i)
2779 caster->
LearnSpell(discoveredSpellId,
false);
2782 caster->
LearnSpell(discoveredSpellId,
false);
2985 if (caster->InArena())
2988 targets.push_back(caster);
2995 uint8 const maxTargets = 10;
2997 if (targets.size() > maxTargets)
3000 targets.resize(maxTargets);
3099 if (std::distance(alteredFormAuras.begin(), alteredFormAuras.end()) > 1)
3198 spiritHealerConfirm.
Npc = target->GetGUID();
3200 spiritHealerConfirm.
Success =
true;
3225 if (
GetCaster()->IsInDisallowedMountForm())
3308 if (!caster->GetVehicleBase())
3309 caster->RemoveAurasDueToSpell(
GetId());
3393template <u
int32 TriggeredSpellId>
3453 int32 removeCount = 0;
3492 for (
uint8 i = 0; i < 5; ++i)
3494 if (player->HasItemCount(itemId[i], 1,
true))
3526 if (!damageInfo || !damageInfo->
GetDamage())
3557 float baseItemLevel;
3564 baseItemLevel = 205.0f;
3568 baseItemLevel = 170.0f;
3573 if (avgILvl < baseItemLevel)
3576 amount = (avgILvl - baseItemLevel) * factor;
3657 if (
Player* target = casterSummon->GetSummonerUnit()->
ToPlayer())
3692 if (
Player* player = targetSummon->GetSummonerUnit()->
ToPlayer())
3693 targetSummon->AI()->Talk(
_text, player);
3709 vehicle->RemoveAllPassengers();
3734 passenger->ExitVehicle();
3756 if (
Unit* passenger = vehicle->GetPassenger(
_seatId))
3757 passenger->ExitVehicle();
3786 player->CombatStop();
3787 if (player->IsNonMeleeSpellCast(
true))
3788 player->InterruptNonMeleeSpells(
true);
3794 if (
Pet* pet = player->GetPet())
3811 player->SetFactionForRace(player->GetRace());
4114 TC_LOG_ERROR(
"spells",
"SpellId {} couldn't be processed in spell_gen_mixology_bonus",
GetId());
4161 target->RemoveOwnedAuras([](
Aura const* aura)
4251 std::list<Creature*> targets;
4256 if (!targets.empty())
4307 std::list<Creature*> targets;
4312 if (!targets.empty())
4377 if (!spellInfo->GetEffects().empty())
4396 spellCooldown.
Caster = owner->GetGUID();
4399 owner->SendDirectMessage(spellCooldown.
Write());
4457 target->SetHealth(target->CountPctFromMaxHealth(25));
4680 :
Loc(mapId, x, y, z, o),
AreaId(areaId) { }
4755 if (
sObjectMgr->GetCreatureTemplate(creatureId))
4765 summon->SetImmuneToAll(
true);
4797 if (remainingCooldown > SpellHistory::Duration::zero())
4799 if (remainingCooldown < expectedCooldown)
4821 creature->SetHomePosition(creature->GetPositionX(), creature->GetPositionY(), creature->GetPositionZ(), creature->GetOrientation());
4836 uint32 mountDisplayId = 0;
4850 if (summoner->
IsFlying() && summonedData->FlyingMountDisplayID)
4851 mountDisplayId = *summonedData->FlyingMountDisplayID;
4852 else if (summonedData->GroundMountDisplayID)
4853 mountDisplayId = *summonedData->GroundMountDisplayID;
4896 caster->
CastSpell(caster, spellId,
true);
4914 for (
uint8 i = 2; i < 8; i++)
4917 passenger->ExitVehicle();
5015 auto getSkinningLearningSpellBySkill = [&]() ->
uint32
5017 switch (skinningSkill)
5035 if (!player->
HasSkill(skinningSkill))
5036 if (
uint32 spellId = getSkinningLearningSpellBySkill())
5037 player->
CastSpell(
nullptr, spellId,
true);
5123 targets.remove_if([caster](
WorldObject* target) ->
bool
5126 return !playerTarget->CanAcceptAreaSpiritHealFrom(caster);
5253 bonusSpellId = spellId;
5261 bonusSpellId = spellId;
5265 bonusSpellId = spellId;
5273 return healingIncreaseEffect->GetAmount();
5347 if (targets.empty())
5396 if (targets.empty())
5404 return GetTeamIdForTeam(player->GetBGTeam()) != controlZone->GetControllingTeam();
5416 for (
AuraEffect const* auraEffect : auraEffects)
5417 if (
GameObject const* gameobject = caster->GetGameObject(auraEffect->GetSpellInfo()->Id))
5440 if (!controlZone->GetInsidePlayers()->contains(
GetTarget()->GetGUID()))
5449 for (
AuraEffect const* auraEffect : auraEffects)
5450 if (
GameObject const* gameobject = caster->GetGameObject(auraEffect->GetSpellInfo()->Id))
5471 template <
bool apply>
5530 .TriggerFlags = TRIGGERED_IGNORE_CAST_IN_PROGRESS | TRIGGERED_DONT_REPORT_CAST_ERROR,
5531 .TriggeringSpell = GetSpell()
@ SPELL_SPIRIT_HEAL_CHANNEL_AOE
DB2Storage< SkillLineEntry > sSkillLineStore("SkillLine.db2", &SkillLineLoadInfo::Instance)
DB2Storage< SummonPropertiesEntry > sSummonPropertiesStore("SummonProperties.db2", &SummonPropertiesLoadInfo::Instance)
DB2Storage< BroadcastTextEntry > sBroadcastTextStore("BroadcastText.db2", &BroadcastTextLoadInfo::Instance)
DB2Storage< ChrRacesEntry > sChrRacesStore("ChrRaces.db2", &ChrRacesLoadInfo::Instance)
DB2Storage< CreatureDisplayInfoEntry > sCreatureDisplayInfoStore("CreatureDisplayInfo.db2", &CreatureDisplayInfoLoadInfo::Instance)
DB2Storage< ContentTuningEntry > sContentTuningStore("ContentTuning.db2", &ContentTuningLoadInfo::Instance)
DB2Storage< MountCapabilityEntry > sMountCapabilityStore("MountCapability.db2", &MountCapabilityLoadInfo::Instance)
DB2Storage< FactionEntry > sFactionStore("Faction.db2", &FactionLoadInfo::Instance)
@ RacialForThePurposeOfTemporaryRaceChange
std::chrono::milliseconds Milliseconds
Milliseconds shorthand typedef.
@ ITEM_SUBCLASS_WEAPON_FISHING_POLE
#define TC_LOG_ERROR(filterType__, message__,...)
@ EQUIPMENT_SLOT_MAINHAND
#define INVENTORY_SLOT_BAG_0
@ RACE_LIGHTFORGED_DRAENEI
@ RACE_EARTHEN_DWARF_HORDE
@ RACE_HIGHMOUNTAIN_TAUREN
@ RACE_EARTHEN_DWARF_ALLIANCE
int32 irand(int32 min, int32 max)
uint32 urand(uint32 min, uint32 max)
bool roll_chance(T chance)
#define RegisterSpellAndAuraScriptPair(script_1, script_2)
#define RegisterAreaTriggerAI(ai_name)
#define RegisterSpellScript(spell_script)
#define RegisterSpellScriptWithArgs(spell_script, script_name,...)
#define EFFECT_FIRST_FOUND
@ GAMEOBJECT_TYPE_DESTRUCTIBLE_BUILDING
constexpr TeamId GetTeamIdForTeam(Team team)
@ TARGET_UNIT_DEST_AREA_ALLY
@ TARGET_UNIT_SRC_AREA_ALLY
@ TARGET_UNIT_SRC_AREA_ENEMY
@ TARGET_UNIT_CASTER_AREA_RAID
@ EMOTE_ONESHOT_EXCLAMATION
SpellSchools GetFirstSchoolInMask(SpellSchoolMask mask)
@ SPELL_EFFECT_SCRIPT_EFFECT
@ SPELL_EFFECT_SCHOOL_DAMAGE
@ SPELL_EFFECT_GAMEOBJECT_DAMAGE
@ SPELL_EFFECT_APPLY_AURA
@ SPELL_CUSTOM_ERROR_NOTHING_TO_DISCOVER
@ SPELL_CUSTOM_ERROR_MUST_HAVE_LANCE_EQUIPPED
@ SPELL_CUSTOM_ERROR_CANT_TRANSFORM
@ SPELL_FAILED_CUSTOM_ERROR
@ SPELL_FAILED_DONT_REPORT
@ SPELL_FAILED_TARGET_AURASTATE
@ SPELL_FAILED_CANT_DO_THAT_RIGHT_NOW
@ SPELL_FAILED_NO_EDIBLE_CORPSES
@ WS_WAR_MODE_HORDE_BUFF_VALUE
@ WS_WAR_MODE_ALLIANCE_BUFF_VALUE
@ SKILL_DRAGON_ISLES_SKINNING
@ SKILL_CATACLYSM_SKINNING
@ SKILL_KUL_TIRAN_SKINNING
@ SKILL_PANDARIA_SKINNING
@ SKILL_SHADOWLANDS_SKINNING
@ SKILL_NORTHREND_SKINNING
uint32 GetExplicitDiscoverySpell(uint32 spellId, Player *player)
bool HasDiscoveredAllSpells(uint32 spellId, Player *player)
bool HasDiscoveredAnySpell(uint32 spellId, Player *player)
@ AURA_EFFECT_HANDLE_REAL_OR_REAPPLY_MASK
@ AURA_EFFECT_HANDLE_SEND_FOR_CLIENT_MASK
@ AURA_EFFECT_HANDLE_REAL
@ AURA_REMOVE_BY_ENEMY_SPELL
@ SPELL_AURA_PERIODIC_DAMAGE
@ SPELL_AURA_MOD_SHAPESHIFT
@ SPELL_AURA_PROC_TRIGGER_SPELL
@ SPELL_AURA_MOD_POWER_REGEN
@ SPELL_AURA_WORGEN_ALTERED_FORM
@ SPELL_AURA_MOD_XP_QUEST_PCT
@ SPELL_AURA_PERIODIC_HEAL
@ SPELL_AURA_PERIODIC_DAMAGE_PERCENT
@ SPELL_AURA_MOD_HEALING_PCT
@ SPELL_AURA_MOD_MANA_REGEN_INTERRUPT
@ SPELL_AURA_MOD_DAMAGE_PERCENT_DONE
@ SPELL_AURA_MOD_ANIMA_GAIN
@ SPELL_AURA_MOD_MONEY_GAIN
@ SPELL_AURA_MOD_DECREASE_SPEED
@ SPELL_AURA_SCHOOL_ABSORB
@ SPELL_AURA_PERIODIC_ENERGIZE
@ SPELL_AURA_ACT_AS_CONTROL_ZONE
@ SPELL_AURA_PERIODIC_DUMMY
@ SPELL_AURA_MOD_INCREASE_MOUNTED_FLIGHT_SPEED
@ SPELL_AURA_MOD_CURRENCY_GAIN_FROM_SOURCE
@ SPELL_AURA_PERIODIC_TRIGGER_SPELL
@ SPELL_AURA_MOD_INCREASE_HEALTH_PERCENT
double SpellEffectValue
This is a double instead of float to be able to store full range of int32.
@ TRIGGERED_FULL_MASK
Used when doing CastSpell with triggered == true.
@ TRIGGERED_DONT_REPORT_CAST_ERROR
Will return SPELL_FAILED_DONT_REPORT in CheckCast functions.
@ SPELL_COOLDOWN_FLAG_NONE
@ TARGET_OBJECT_TYPE_CORPSE_ENEMY
#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 AuraEffectUpdatePeriodicFn(F, I, N)
#define AuraEffectCalcHealingFn(F, I, N)
#define SpellCalcDamageFn(F)
#define SpellDestinationTargetSelectFn(F, I, N)
#define AuraEffectAbsorbFn(F, I)
#define AuraEffectCalcPeriodicFn(F, I, N)
#define AuraEffectApplyFn(F, I, N, M)
#define AuraCheckProcFn(F)
#define SpellCalcHealingFn(F)
#define AuraCheckAreaTargetFn(F)
#define AuraEffectRemoveFn(F, I, N, M)
@ UNIT_STAND_STATE_SUBMERGED
@ UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT
@ UNIT_FLAG_NON_ATTACKABLE
#define DISPLAYID_HIDDEN_MOUNT
T CalculatePct(T base, U pct)
AreaTriggerAI(AreaTrigger *a, uint32 scriptId={}) noexcept
void InitSplines(std::vector< G3D::Vector3 > const &splinePoints, Optional< float > overrideSpeed={}, Optional< bool > speedIsTimeInSeconds={})
uint32 GetSpellId() const
void SetDuration(int32 newDuration)
void ChangeAmount(SpellEffectValue newAmount, bool mark=true, bool onStackOrReapply=false, AuraEffect const *triggeredBy=nullptr)
uint32 GetTickNumber() const
SpellEffIndex GetEffIndex() const
SpellEffectInfo const & GetSpellEffectInfo() const
int32 GetAmountAsInt() const
void SetPeriodic(bool isPeriodic)
uint32 GetTotalTicks() const
SpellEffectValue GetAmount() const
HookList< EffectCalcDamageAndHealingHandler > DoEffectCalcDamageAndHealing
void PreventDefaultAction()
void SetMaxDuration(int32 duration)
HookList< EffectCalcPeriodicHandler > DoEffectCalcPeriodic
AuraApplication const * GetTargetApplication() const
int32 GetDuration() const
HookList< EffectApplyHandler > AfterEffectRemove
HookList< CheckEffectProcHandler > DoCheckEffectProc
HookList< EffectPeriodicHandler > OnEffectPeriodic
SpellInfo const * GetSpellInfo() const
HookList< EffectApplyHandler > AfterEffectApply
int32 GetMaxDuration() const
HookList< EffectCalcAmountHandler > DoEffectCalcAmount
HookList< EffectUpdatePeriodicHandler > OnEffectUpdatePeriodic
void SetDuration(int32 duration, bool withMods=false)
SpellEffectInfo const & GetEffectInfo(SpellEffIndex effIndex) const
HookList< EffectAbsorbHandler > OnEffectAbsorb
HookList< CheckAreaTargetHandler > DoCheckAreaTarget
ObjectGuid GetCasterGUID() const
HookList< CheckProcHandler > DoCheckProc
HookList< EffectApplyHandler > OnEffectRemove
HookList< EffectProcHandler > OnEffectProc
Unit * GetUnitOwner() const
HookList< AuraProcHandler > OnProc
uint8 GetStackAmount() const
HookList< EffectApplyHandler > OnEffectApply
bool ModStackAmount(int32 num, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
AuraEffect * GetEffect(uint32 index) const
uint8 GetStackAmount() const
SpellInfo const * GetSpellInfo() const
ObjectGuid const & GetGUID() const
bool IsBattlePetSystemEnabled()
bool operator()(Unit *u) const
CorruptingPlagueSearcher(Unit *obj, float distance)
void DespawnOrUnsummon(Milliseconds timeToDespawn=0s, Seconds forceRespawnTime=0s)
static CharBaseInfoEntry const * GetCharBaseInfo(Races race, Classes class_)
Unit * GetAttacker() const
void AddEventAtOffset(BasicEvent *event, Milliseconds offset)
ObjectGuid GetOwnerGUID() const override
ItemTemplate const * GetTemplate() const
ZLiquidStatus GetLiquidStatus(PhaseShift const &phaseShift, float x, float y, float z, Optional< map_liquidHeaderTypeFlags > ReqLiquidType={}, LiquidData *data=nullptr, float collisionHeight=2.03128f)
bool IsBattleground() const
TempSummon * SummonCreature(uint32 entry, Position const &pos, SummonPropertiesEntry const *properties=nullptr, Milliseconds duration=0ms, WorldObject *summoner=nullptr, uint32 spellId=0, uint32 vehId=0, ObjectGuid privateObjectOwner=ObjectGuid::Empty, SmoothPhasingInfo const *smoothPhasingInfo=nullptr)
bool operator()(WorldObject *target) const
static ObjectGuid const Empty
void SetEntry(uint32 entry)
Movement::PointsArray const & GetPath() const
bool CalculatePath(float srcX, float srcY, float srcZ, float destX, float destY, float destZ, bool forceDest=false)
bool LoadPetFromDB(Player *owner, uint32 petEntry, uint32 petnumber, bool current, Optional< PetSaveMode > forcedSlot={})
void setDeathState(DeathState s) override
static bool OnConditionChange(WorldObject *object, bool updateVisibility=true)
void SendPlayerBound(ObjectGuid const &binderGuid, uint32 areaId) const
void SendBindPointUpdate() const
void SendDirectMessage(WorldPacket const *data) const
bool HasAchieved(uint32 achievementId) const
WorldSession * GetSession() const
void LearnSpell(uint32 spell_id, bool dependent, int32 fromSkill=0, bool suppressMessaging=false, Optional< PlayerSpellTrait > trait={})
Item * GetItemByPos(uint16 pos) const
bool HasSkill(uint32 skill) const
bool CanAcceptAreaSpiritHealFrom(Unit *spiritHealer) const
uint32 GetLastPetNumber() const
uint32 GetProfessionSkillForExp(uint32 skill, int32 expansion) const
void RemoveSpell(uint32 spell_id, bool disabled=false, bool learn_low_rank=true, bool suppressMessaging=false)
float GetAverageItemLevel() const
QuestStatus GetQuestStatus(uint32 quest_id) const
void SetAreaSpiritHealer(Creature *creature)
void SetHomebind(WorldLocation const &loc, uint32 areaId)
Team GetEffectiveTeam() const
ReputationMgr & GetReputationMgr()
void LearnSkillRewardedSpells(uint32 skillId, uint32 skillValue, Races race)
SpellSchoolMask GetSchoolMask() const
Unit * GetActionTarget() const
SpellInfo const * GetSpellInfo() const
DamageInfo * GetDamageInfo() const
Unit * GetProcTarget() const
RecastSpiritHealChannelEvent(Unit *caster)
bool Execute(uint64, uint32) override
bool operator()(WorldObject *obj) const
int32 GetReputation(uint32 faction_id) const
bool SetReputation(FactionEntry const *factionEntry, int32 standing)
SpellEffectValue CalcValue(WorldObject const *caster=nullptr, SpellEffectValue const *basePoints=nullptr, Unit const *target=nullptr, float *variance=nullptr, uint32 castItemId=0, int32 itemLevel=-1) const
int32 CalcValueAsInt(WorldObject const *caster=nullptr, SpellEffectValue const *basePoints=nullptr, Unit const *target=nullptr, float *variance=nullptr, uint32 castItemId=0, int32 itemLevel=-1) const
Duration GetRemainingCategoryCooldown(uint32 categoryId) const
void ResetCooldown(uint32 spellId, bool update=false)
void ModifyCooldown(uint32 spellId, Duration cooldownMod, bool withoutCategoryCooldown=false)
void StartCooldown(SpellInfo const *spellInfo, uint32 itemId, Spell *spell=nullptr, bool onHold=false, Optional< Duration > forcedCooldown={})
uint32 ExcludeTargetAuraSpell
float GetMaxRange(bool positive=false, WorldObject const *caster=nullptr, Spell *spell=nullptr) const
bool HasEffect(SpellEffectName effect) const
SpellEffectInfo const & GetEffect(SpellEffIndex index) const
std::vector< SpellEffectInfo > const & GetEffects() const
uint32 ExcludeCasterAuraSpell
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< DamageAndHealingCalcHandler > CalcDamage
HookList< CastHandler > AfterCast
WorldLocation * GetHitDest() const
HookList< CheckCastHandler > OnCheckCast
Creature * GetHitCreature() const
Player * GetHitPlayer() const
Aura * GetHitAura(bool dynObjAura=false, bool withRemoved=false) const
int32 GetHitDamage() const
HookList< HitHandler > AfterHit
SpellEffectValue GetEffectValue() const
HookList< DestinationTargetSelectHandler > OnDestinationTargetSelect
int32 GetEffectValueAsInt() const
void CreateItem(uint32 itemId, ItemContext context)
HookList< HitHandler > OnHit
HookList< EffectHandler > OnEffectHit
void PreventHitDefaultEffect(SpellEffIndex effIndex)
Unit * GetHitUnit() const
SpellValue const * GetSpellValue() const
SpellEffectInfo const & GetEffectInfo() const
HookList< EffectHandler > OnEffectHitTarget
Item * GetCastItem() const
HookList< CastHandler > OnCast
void SetCustomCastResultMessage(SpellCustomErrors result)
Difficulty GetCastDifficulty() const
void SetHitDamage(int32 damage)
HookList< EffectHandler > OnEffectLaunch
HookList< DamageAndHealingCalcHandler > CalcHealing
GameObject * GetGObjCaster() const
Unit * GetExplTargetUnit() const
SpellInfo const * GetSpellInfo() const
HookList< ObjectAreaTargetSelectHandler > OnObjectAreaTargetSelect
Unit * GetOriginalCaster() const
GameObject * GetHitGObj() const
StasisFieldSearcher(Unit *obj, float distance)
bool operator()(Unit *u) const
WorldObject * GetSummoner() const
void ModifyThreatByPercent(Unit *target, float percent)
Binary predicate for sorting Units based on percent value of a power.
uint32 GetChannelSpellId() const
void ApplySpellImmune(uint32 spellId, SpellImmunity op, uint32 type, bool apply)
int32 ModifyPower(Powers power, int32 val, bool withPowerUpdate=true)
void SetImmuneToAll(bool apply, bool keepCombat)
void RemoveOwnedAura(AuraMap::iterator &i, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
void RemoveAurasByType(AuraType auraType, std::function< bool(AuraApplication const *)> const &check, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
AuraEffectList const & GetAuraEffectsByType(AuraType type) const
void SetHealth(uint64 val)
void SetVirtualItem(uint32 slot, uint32 itemId, uint16 appearanceModId=0, uint16 itemVisual=0)
uint64 CountPctFromMaxHealth(float pct) const
void SetUnitFlag3(UnitFlags3 flags)
void RemoveAura(AuraApplicationMap::iterator &i, AuraRemoveMode mode=AURA_REMOVE_BY_DEFAULT)
void SetStandState(UnitStandStateType state, uint32 animKitID=0)
void EnergizeBySpell(Unit *victim, SpellInfo const *spellInfo, int32 damage, Powers powerType)
ThreatManager & GetThreatManager()
uint32 GetMountDisplayId() const
float GetCollisionHeight() const override
std::multimap< uint32, AuraApplication * > AuraApplicationMap
Unit * GetCharmer() const
std::forward_list< AuraEffect * > AuraEffectList
MotionMaster * GetMotionMaster()
Powers GetPowerType() const
Aura * AddAura(uint32 spellId, Unit *target)
AuraEffect * GetAuraEffect(uint32 spellId, uint8 effIndex, ObjectGuid casterGUID=ObjectGuid::Empty) const
void SetUnitFlag2(UnitFlags2 flags)
int32 GetMaxPower(Powers power) const
int32 HealBySpell(HealInfo &healInfo, bool critical=false)
void RemoveAllAurasOnDeath()
TempSummon * ToTempSummon()
void RemoveUnitFlag3(UnitFlags3 flags)
bool SetDisableGravity(bool disable, bool updateAnimTier=true)
void SetUninteractible(bool apply)
void Mount(uint32 mount, uint32 vehicleId=0, uint32 creatureEntry=0)
bool IsCharmedOwnedByPlayerOrPlayer() const
virtual Gender GetNativeGender() const
uint32 GetVirtualItemId(uint32 slot) const
uint64 GetMaxHealth() const
uint16 GetMaxSkillValueForLevel(Unit const *target=nullptr) const
void RemoveUnitFlag2(UnitFlags2 flags)
bool HasAuraType(AuraType auraType) const
bool HealthBelowPctDamaged(float pct, uint32 damage) const
void GetAllMinionsByEntry(std::list< TempSummon * > &Minions, uint32 entry)
void SetFullPower(Powers power)
float GetSpeedRate(UnitMoveType mtype) const
int32 GetPower(Powers power) const
void SetSpeedRate(UnitMoveType mtype, float rate)
DeathState getDeathState() const
bool HasAura(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, ObjectGuid itemCasterGUID=ObjectGuid::Empty, uint32 reqEffMask=0) const
SpellHistory * GetSpellHistory()
void HandleEmoteCommand(Emote emoteId, Player *target=nullptr, Trinity::IteratorPair< int32 const * > spellVisualKitIds={}, int32 sequenceVariation=0)
void SetUnitFlag(UnitFlags flags)
AuraApplicationMap & GetAppliedAuras()
void RemoveMovementImpairingAuras(bool withRoot)
Vehicle * GetVehicleKit() const
void RemoveAurasDueToSpell(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, uint32 reqEffMask=0, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
void SetMountDisplayId(uint32 mountDisplayId)
virtual void SetDisplayId(uint32 displayId, bool setNative=false)
void RemoveUnitFlag(UnitFlags flags)
AreaTrigger * GetAreaTrigger(uint32 spellId) const
virtual void ExitVehicle(Position const *exitPosition=nullptr)
Unit * GetPassenger(int8 seatId) const
Gets a passenger on specified seat.
SpellCastResult CastSpell(CastSpellTargetArg const &targets, uint32 spellId, CastSpellExtraArgs const &args={ })
PhaseShift & GetPhaseShift()
float GetDistance2d(WorldObject const *obj) const
Player * GetCharmerOrOwnerPlayerOrPlayerItself() const
void MovePositionToFirstCollision(Position &pos, float dist, float angle) const
float GetDistance(WorldObject const *obj) const
PlayerInteractionType InteractionType
WorldPacket const * Write() override
WorldPacket const * Write() override
std::vector< SpellCooldownStruct > SpellCooldowns
BattlePets::BattlePetMgr * GetBattlePetMgr() const
GameObject const * GetControlZone() const
void OnPeriodic(AuraEffect const *) const
GameObject const * GetControlZone() const
void FilterTargets(std::list< WorldObject * > &targets) const
void HandleScript(SpellEffIndex)
bool Validate(SpellInfo const *) override
void OnPeriodic(AuraEffect const *)
void HandleDummy(SpellEffIndex)
bool Validate(SpellInfo const *) override
void HandleDummy(SpellEffIndex)
bool Validate(SpellInfo const *) override
void HandleScriptEffect(SpellEffIndex)
bool CheckProc(ProcEventInfo &eventInfo)
void HandleProc(AuraEffect *, ProcEventInfo &eventInfo)
bool Validate(SpellInfo const *) override
void HandleScriptEffect(SpellEffIndex)
void HandleDamage(SpellEffIndex)
bool Validate(SpellInfo const *) override
void HandleScript(SpellEffIndex)
void HandleHitTarget(SpellEffIndex) const
void Absorb(AuraEffect *, DamageInfo &, uint32 &absorbAmount)
void HandleProc(AuraEffect *aurEff, ProcEventInfo &eventInfo)
bool CheckProc(ProcEventInfo &eventInfo)
bool Validate(SpellInfo const *) override
SpellCastResult CheckRequirement()
bool Validate(SpellInfo const *) override
static constexpr uint32 AncestralCallBuffs[]
void HandleScript(SpellEffIndex)
void HandleDummy(SpellEffIndex)
void OnRemove(AuraEffect const *, AuraEffectHandleModes)
bool Validate(SpellInfo const *) override
void OnApply(AuraEffect const *, AuraEffectHandleModes)
void CalcAmount(AuraEffect const *, SpellEffectValue &amount, bool &)
bool Validate(SpellInfo const *spellInfo) override
void CalcPeriodic(AuraEffect const *, bool &isPeriodic, int32 &)
void UpdatePeriodic(AuraEffect *aurEff)
bool Validate(SpellInfo const *spellInfo) override
void PeriodicTick(AuraEffect const *aurEff)
bool CheckAreaTarget(Unit *target)
void HandleDummy(SpellEffIndex)
bool Validate(SpellInfo const *) override
SpellCastResult CheckCast()
void HandleApply(AuraEffect const *, AuraEffectHandleModes mode) const
void HandleRemove(AuraEffect const *, AuraEffectHandleModes) const
static uint32 GetDisplayIdForRace(Races race, Gender gender)
void UpdateRacials(Races oldRace, Races newRace) const
static std::vector< uint32 > RacialSkills
static std::unordered_map< Races, std::array< uint32, 2 > > const RaceDisplayIds
static Races GetReplacementRace(Races nativeRace, Classes playerClass)
bool Validate(SpellInfo const *) override
void HandleProc(AuraEffect *aurEff, ProcEventInfo &eventInfo)
bool CheckProc(ProcEventInfo &eventInfo)
bool Validate(SpellInfo const *) override
spell_gen_bloodlust(uint32 exhaustionSpellId)
void HandleHit(SpellEffIndex)
void FilterTargets(std::list< WorldObject * > &targets)
uint32 _exhaustionSpellId
bool Validate(SpellInfo const *) override
void HandleScript(SpellEffIndex)
bool CheckProc(AuraEffect const *, ProcEventInfo &procInfo)
bool Validate(SpellInfo const *) override
static constexpr uint32 SPELL_DIVINE_SHIELD
static constexpr uint32 SPELL_POWER_WORD_SHIELD
void HandleScriptEffect(SpellEffIndex effIndex)
bool Validate(SpellInfo const *) override
void HandleApply(AuraEffect const *, AuraEffectHandleModes)
bool Validate(SpellInfo const *spellInfo) override
void HandleRemove(AuraEffect const *, AuraEffectHandleModes)
bool Validate(SpellInfo const *) override
void HandleDummy(SpellEffIndex)
SpellCastResult CheckIfCorpseNear()
bool Validate(SpellInfo const *) override
void HandleScript(SpellEffIndex)
void UpdatePeriodic(AuraEffect *aurEff)
bool Validate(SpellInfo const *) override
void HandleDummy(SpellEffIndex)
void HandleScript(SpellEffIndex)
void OnApply(AuraEffect const *, AuraEffectHandleModes)
void OnRemove(AuraEffect const *, AuraEffectHandleModes)
bool Validate(SpellInfo const *) override
void HandleScriptEffect(SpellEffIndex effIndex)
void HandleScriptEffect(SpellEffIndex effIndex)
void HandleEffect(AuraEffect const *, AuraEffectHandleModes) const
bool Validate(SpellInfo const *) override
void CalculateDamage(SpellEffectInfo const &, Unit const *, int32 &damage, int32 &, float &) const
spell_gen_count_pct_from_max_hp(int32 damagePct=0)
bool Validate(SpellInfo const *) override
void HandleScript(SpellEffIndex effIndex)
void HandleScript(SpellEffIndex)
bool Validate(SpellInfo const *spellInfo) override
spell_gen_decay_over_time_aura()=default
bool CheckProc(ProcEventInfo &eventInfo)
void Decay(ProcEventInfo &)
void ModDuration(AuraEffect const *, AuraEffectHandleModes)
void RemoveDummyFromDriver(AuraEffect const *, AuraEffectHandleModes)
bool Validate(SpellInfo const *) override
void RemoveVisualShields(AuraEffect const *, AuraEffectHandleModes)
void RefreshVisualShields(AuraEffect const *aurEff, AuraEffectHandleModes)
void HandleScriptEffect(SpellEffIndex)
void OnRemove(AuraEffect const *, AuraEffectHandleModes)
void HandleDummy(SpellEffIndex)
void HandleDespawn(SpellEffIndex)
bool Validate(SpellInfo const *) override
void HandleScript(SpellEffIndex)
void HandleScript(SpellEffIndex)
void RemoveVehicleAuras()
spell_gen_eject_passenger_with_seatId(uint8 seatId)
void EjectPassenger(SpellEffIndex)
void EjectPassenger(SpellEffIndex)
bool Validate(SpellInfo const *spellInfo) override
void HandleScriptEffect(SpellEffIndex)
void OnRemove(AuraEffect const *, AuraEffectHandleModes)
bool Validate(SpellInfo const *spellInfo) override
bool Validate(SpellInfo const *) override
void HandleScript(SpellEffIndex)
void OnRemove(AuraEffect const *, AuraEffectHandleModes) const
void HandleEffectApply(AuraEffect const *, AuraEffectHandleModes) const
void HandleEffectApply(AuraEffect const *, AuraEffectHandleModes)
void OnRemove(AuraEffect const *, AuraEffectHandleModes)
void OnRemove(AuraEffect const *, AuraEffectHandleModes)
void HandleEffectApply(AuraEffect const *, AuraEffectHandleModes)
void HandleEffectApply(AuraEffect const *, AuraEffectHandleModes)
void OnRemove(AuraEffect const *, AuraEffectHandleModes)
void OnRemove(AuraEffect const *, AuraEffectHandleModes)
void HandleEffectApply(AuraEffect const *, AuraEffectHandleModes)
void HandleDummy(SpellEffIndex effIndex)
bool Validate(SpellInfo const *) override
void AfterApply(AuraEffect const *, AuraEffectHandleModes) const
void AfterRemove(AuraEffect const *, AuraEffectHandleModes) const
void AfterApply(AuraEffect const *, AuraEffectHandleModes)
bool Validate(SpellInfo const *) override
void AfterRemove(AuraEffect const *, AuraEffectHandleModes)
void HandleDummy(SpellEffIndex)
bool Validate(SpellInfo const *) override
bool Validate(SpellInfo const *spellInfo) override
void CalculateAmount(AuraEffect const *aurEff, SpellEffectValue &amount, bool &)
void OnRemove(AuraEffect const *, AuraEffectHandleModes)
void OnApply(AuraEffect const *, AuraEffectHandleModes)
bool Validate(SpellInfo const *) override
bool Validate(SpellInfo const *) override
void HandleDummy(SpellEffIndex)
void HandleEffectPeriodic(AuraEffect const *)
void HandleDummy(SpellEffIndex)
void HandleDummy(SpellEffIndex)
void HandleDummy(SpellEffIndex)
void HandleDummy(SpellEffIndex)
void OnRemove(AuraEffect const *effect, AuraEffectHandleModes)
bool Validate(SpellInfo const *) override
void HandleDummy(SpellEffIndex)
void HandleProc(AuraEffect *aurEff, ProcEventInfo &eventInfo)
bool Validate(SpellInfo const *) override
void HandleScript(SpellEffIndex)
bool Validate(SpellInfo const *) override
spell_gen_lifebloom(uint32 spellId)
void AfterRemove(AuraEffect const *aurEff, AuraEffectHandleModes)
void CalculateHealingBonus(AuraEffect const *, Unit *, int32 &, int32 &, float &pctMod) const
bool Validate(SpellInfo const *) override
void CalculateHealingBonus(SpellEffectInfo const &, Unit *, int32 &, int32 &, float &pctMod) const
bool Validate(SpellInfo const *) override
void OnPeriodic(AuraEffect const *aurEff)
bool Validate(SpellInfo const *) override
void FilterTargets(std::list< WorldObject * > &targets)
void CalculateAmount(AuraEffect const *aurEff, SpellEffectValue &amount, bool &)
void SetBonusValueForEffect(SpellEffIndex effIndex, int32 value, AuraEffect const *aurEff)
bool Validate(SpellInfo const *spellInfo) override
void HandleProc(AuraEffect *aurEff, ProcEventInfo &eventInfo)
bool Validate(SpellInfo const *) override
void OnPeriodic(AuraEffect const *)
void HandleScriptEffect(SpellEffIndex effIndex)
void HandleChargeEffect(SpellEffIndex)
bool Validate(SpellInfo const *) override
void HandleScript(SpellEffIndex effIndex)
bool Validate(SpellInfo const *) override
bool Validate(SpellInfo const *) override
void HandleScript(SpellEffIndex effIndex)
void PeriodicTick(AuraEffect const *)
static void CalculateAmount(AuraScript const &, AuraEffect const *, SpellEffectValue &amount, bool &)
void HandleAbsorb(AuraEffect const *, DamageInfo const &dmgInfo, uint32 &absorbAmount)
spell_gen_no_npc_damage_below_override(float healthPct)
bool CheckProc(ProcEventInfo &eventInfo)
void OnProc(AuraEffect *aurEff, ProcEventInfo &eventInfo)
bool Validate(SpellInfo const *) override
bool Validate(SpellInfo const *spellInfo) override
void HandleDummy(SpellEffIndex)
bool Validate(SpellInfo const *) override
void HandleScript(SpellEffIndex)
void HandleEffectPeriodic(AuraEffect const *)
bool Validate(SpellInfo const *) override
bool Validate(SpellInfo const *) override
void HandleStun(AuraEffect const *aurEff, AuraEffectHandleModes)
void HandleScript(SpellEffIndex)
void HandleScript(SpellEffIndex)
bool Validate(SpellInfo const *spellInfo) override
void HandleScript(SpellEffIndex)
void HandleEffectPeriodic(AuraEffect const *)
void HandleEffectApply(AuraEffect const *, AuraEffectHandleModes)
void OnRemove(AuraEffect const *, AuraEffectHandleModes)
bool CheckProc(ProcEventInfo &eventInfo)
void HandleChargeDrop(ProcEventInfo &)
void HandleScript(SpellEffIndex)
SpellCastResult CheckRequirement()
bool Validate(SpellInfo const *spellInfo) override
void HandleTauntEffect(SpellEffIndex effIndex)
void SelectRandomTarget(std::list< WorldObject * > &targets)
void HandleScript(SpellEffIndex)
void HandleScriptEffect(SpellEffIndex)
void PeriodicTick(AuraEffect const *)
void PeriodicTick(AuraEffect const *aurEff)
void PeriodicTick(AuraEffect const *)
bool Validate(SpellInfo const *spellInfo) override
void CalculateAmount(AuraEffect const *, SpellEffectValue &amount, bool &)
void RemoveInvalidTargets(std::list< WorldObject * > &targets)
void PeriodicTick(AuraEffect const *)
void HandleScript(SpellEffIndex effIndex)
void HandleMount(AuraEffect const *aurEff, AuraEffectHandleModes)
bool Validate(SpellInfo const *) override
void OnPrecast() override
bool Validate(SpellInfo const *) override
void TriggerParachute(AuraEffect const *, AuraEffectHandleModes) const
static constexpr uint32 SPELL_PARACHUTE
bool Validate(SpellInfo const *) override
bool Validate(SpellInfo const *) override
void AchievementCredit(SpellEffIndex)
spell_gen_set_health(uint64 health)
void HandleHit(SpellEffIndex)
void HandleSkinningEffect(SpellEffIndex)
bool Validate(SpellInfo const *) override
bool Validate(SpellInfo const *) override
void HandleDummy(SpellEffIndex) const
void HandleDummy(SpellEffIndex)
void FilterTargets(std::list< WorldObject * > &targets)
void OnRemove(AuraEffect const *, AuraEffectHandleModes)
static constexpr uint32 SPELL_SPIRIT_HEAL_EFFECT
void OnRemove(AuraEffect const *, AuraEffectHandleModes)
void HandleDummy(SpellEffIndex)
void HandleScript(SpellEffIndex)
void HandleScript(SpellEffIndex)
SpellCastResult CheckIfLanceEquiped()
bool Validate(SpellInfo const *) override
void HandleScript(SpellEffIndex)
void HandleScriptEffect(SpellEffIndex effIndex)
void HandleScriptEffect(SpellEffIndex)
bool Validate(SpellInfo const *) override
void HandleApplyEffect(AuraEffect const *, AuraEffectHandleModes)
bool Validate(SpellInfo const *) override
void UpdateReviveBattlePetCooldown(AuraEffect const *, AuraEffectHandleModes)
bool Validate(SpellInfo const *spellInfo) override
bool Validate(SpellInfo const *spellInfo) override
std::list< uint32 > _applyTimes
void OnApply(AuraEffect const *aurEff, AuraEffectHandleModes)
void OnPeriodic(AuraEffect const *)
void HandleScript(SpellEffIndex)
void HandleProc(AuraEffect *aurEff, ProcEventInfo &eventInfo)
bool Validate(SpellInfo const *) override
void OnRemove(AuraEffect const *, AuraEffectHandleModes)
void CalculateAmount(AuraEffect const *, SpellEffectValue &amount, bool &)
void HandleDummy(SpellEffIndex)
void OnRemove(AuraEffect const *, AuraEffectHandleModes)
void CalcWarModeBonus(AuraEffect const *, SpellEffectValue &amount, bool &)
SpellCastResult CheckCast()
void HandleEffectPeriodic(AuraEffect const *)
bool Validate(SpellInfo const *) override
void HandleScript(SpellEffIndex)
spell_gen_whisper_to_controller_random(uint32 text)
void HandleScript(SpellEffIndex)
bool Validate(SpellInfo const *spellInfo) override
bool Validate(SpellInfo const *) override
void SetDest(SpellDestination &dest)
void OnPeriodic(AuraEffect const *)
bool Validate(SpellInfo const *) override
void HandleRemove(AuraEffect const *, AuraEffectHandleModes)
void HandleSummon(SpellEffIndex effIndex)
@ SPELL_REVIVE_BATTLE_PETS
SpellEffectValue GetBonusMultiplier(Unit const *unit, uint32 spellId)
auto SelectRandomContainerElement(C const &container) -> std::add_const_t< decltype(*std::ranges::begin(container))> &
auto MapGetValuePtr(M &map, typename M::key_type const &key)
void RandomResize(C &container, std::size_t requestedSize)
TC_GAME_API int32 GetValue(int32 worldStateId, Map const *map)
@ SPELL_SHADOWLANDS_SKINNING
@ SPELL_PANDARIA_SKINNING
@ SPELL_ZANDALARI_SKINNING
@ SPELL_CATACLYSM_SKINNING
@ SPELL_NORTHREND_SKINNING
@ SPELL_KUL_TIRAN_SKINNING
@ SPELL_DRAGON_ISLES_SKINNING
@ SPELL_VAMPIRIC_TOUCH_HEAL
@ SPELL_PLANT_CHARGES_CREDIT_ACHIEVEMENT
@ SPELL_SPATIAL_RIFT_AREATRIGGER
@ SPELL_SPATIAL_RIFT_TELEPORT
@ SPELL_GEN_THROW_INTERRUPT
PvPTrinketTriggeredSpells
@ SPELL_WILL_OF_THE_FORSAKEN_COOLDOWN_TRIGGER
@ SPELL_WILL_OF_THE_FORSAKEN_COOLDOWN_TRIGGER_WOTF
@ SPELL_EVOKER_EXHAUSTION
@ SPELL_MAGE_TEMPORAL_DISPLACEMENT
@ SPELL_SHAMAN_EXHAUSTION
@ SPELL_MARK_OF_KAZROGAL_DAMAGE_HELLFIRE
@ SPELL_MARK_OF_KAZROGAL_HELLFIRE
@ SPELL_SIEGE_TANK_CONTROL
@ SPELL_INFINITE_REPLENISHMENT
@ SPELL_TRANSPORTER_EVIL_TWIN
@ SPELL_TRANSPORTER_MALFUNCTION_MISS
@ SPELL_TRANSPORTER_MALFUNCTION_POLYMORPH
@ SPELL_ELIXIR_OF_MIGHTY_FORTITUDE
@ SPELL_FLASK_OF_THE_FROST_WYRM
@ SPELL_ELIXIR_OF_GREATER_FIREPOWER
@ SPELL_MIGHTY_TROLLS_BLOOD_ELIXIR
@ SPELL_WEAK_TROLLS_BLOOD_ELIXIR
@ SPELL_ELIXIR_OF_DEADLY_STRIKES
@ SPELL_ELIXIR_OF_MAJOR_MAGEBLOOD
@ SPELL_ELIXIR_OF_OGRES_STRENGTH
@ SPELL_SHADOWPOWER_ELIXIR
@ SPELL_LESSER_FLASK_OF_RESISTANCE
@ SPELL_ELIXIR_OF_GREATER_DEFENSE
@ SPELL_FLASK_OF_BLINDING_LIGHT
@ SPELL_FLASK_OF_STONEBLOOD
@ SPELL_ELIXIR_OF_MAJOR_DEFENSE
@ SPELL_ELIXIR_OF_DEFENSE
@ SPELL_LESSER_FLASK_OF_TOUGHNESS
@ SPELL_ELIXIR_OF_MAJOR_STRENGTH
@ SPELL_ELIXIR_OF_MINOR_FORTITUDE
@ SPELL_ELIXIR_OF_FORTITUDE
@ SPELL_ELIXIR_OF_AGILITY
@ SPELL_ELIXIR_OF_SUPERIOR_DEFENSE
@ SPELL_FLASK_OF_SUPREME_POWER
@ SPELL_FLASK_OF_FORTIFICATION
@ SPELL_ELIXIR_OF_DRAENIC_WISDOM
@ SPELL_ELIXIR_OF_HEALING_POWER
@ SPELL_ELIXIR_OF_MIGHTY_STRENGTH
@ SPELL_ELIXIR_OF_MIGHTY_MAGEBLOOD
@ SPELL_ELIXIR_OF_MAJOR_FROST_POWER
@ SPELL_ELIXIR_OF_FIREPOWER
@ SPELL_ELIXIR_OF_PROTECTION
@ SPELL_FLASK_OF_CHROMATIC_RESISTANCE
@ SPELL_ELIXIR_OF_MAJOR_AGILITY
@ SPELL_FLASK_OF_RELENTLESS_ASSAULT
@ SPELL_ELIXIR_OF_MIGHTY_DEFENSE
@ SPELL_ELIXIR_OF_GREATER_AGILITY
@ SPELL_FLASK_OF_THE_TITANS
@ SPELL_STRONG_TROLLS_BLOOD_ELIXIR
@ SPELL_FLASK_OF_PURE_MOJO
@ SPELL_ELIXIR_OF_LIGHTNING_SPEED
@ SPELL_FLASK_OF_PURE_DEATH
@ SPELL_ELIXIR_OF_LESSER_AGILITY
@ SPELL_FLASK_OF_ENDLESS_RAGE
@ SPELL_ELIXIR_OF_MIGHTY_TOUGHTS
@ SPELL_ELIXIR_OF_SHADOW_POWER
@ SPELL_ELIXIR_OF_GREATER_INTELLECT
@ SPELL_FLASK_OF_MIGHTY_RESTORATION
@ SPELL_ELIXIR_OF_IRONSKIN
@ SPELL_ELIXIR_OF_GIANTH_GROWTH
@ SPELL_ELIXIR_OF_MINOR_AGILITY
@ SPELL_ELIXIR_OF_MINOR_DEFENSE
@ SPELL_ELIXIR_OF_ARMOR_PIERCING
@ SPELL_FEL_STRENGTH_ELIXIR
@ SPELL_ELIXIR_OF_DEMONSLAYING
@ SPELL_ELIXIR_OF_MINOR_ACCURACY
@ SPELL_ELIXIR_OF_EXPERTISE
@ SPELL_ELIXIR_OF_MAJOR_SHADOW_POWER
@ SPELL_ELIXIR_OF_MIGHTY_AGILITY
@ SPELL_ELIXIR_OF_MAJOR_FIREPOWER
@ SPELL_MAJOR_TROLLS_BLLOOD_ELIXIR
@ SPELL_ELIXIR_OF_LIONS_STRENGTH
@ SPELL_ELIXIR_OF_MAJOR_FORTITUDE
@ SPELL_ELIXIR_OF_FROST_POWER
@ SPELL_FLASK_OF_DISTILLED_WISDOM
@ SPELL_ELIXIR_OF_MASTERY
@ SPELL_ELIXIR_OF_THE_MONGOOSE
@ SPELL_ELIXIR_OF_ACCURACY
@ SPELL_FLASK_OF_CHROMATIC_WONDER
@ SPELL_ELIXIR_OF_BRUTE_FORCE
@ SPELL_ELIXIR_OF_EMPOWERMENT
@ SPELL_GREATER_ARCANE_ELIXIR
@ SPELL_BOUNTIFUL_FEAST_FOOD
@ SPELL_FISH_FEAST_REFRESHMENT
@ SPELL_BOUNTIFUL_FEAST_REFRESHMENT
@ SPELL_GREAT_FEAST_REFRESHMENT
@ SPELL_SMALL_FEAST_REFRESHMENT
@ SPELL_GIGANTIC_FEAST_REFRESHMENT
@ SPELL_BOUNTIFUL_FEAST_DRINK
@ SPELL_PROC_TRIGGER_ON_KILL_AURA
@ SPELL_ETHEREAL_PET_AURA
@ NPC_ETHEREAL_SOUL_TRADER
@ SPELL_STEAL_ESSENCE_VISUAL
@ SPELL_SUNREAVER_DISGUISE_MALE
@ SPELL_SUNREAVER_DISGUISE_TRIGGER
@ SPELL_SILVER_COVENANT_DISGUISE_FEMALE
@ SPELL_SILVER_COVENANT_DISGUISE_MALE
@ SPELL_SUNREAVER_DISGUISE_FEMALE
@ SPELL_SILVER_COVENANT_DISGUISE_TRIGGER
@ SPELL_TELEPORT_SPIRE_UP
@ SPELL_TELEPORT_SPIRE_DOWN
@ AREA_VIOLET_CITADEL_SPIRE
@ SPELL_GEN_BLOOD_RESERVE_AURA
@ SPELL_GEN_BLOOD_RESERVE_HEAL
@ SPELL_CANNON_BLAST_DAMAGE
@ SPELL_FISHING_WITH_POLE
@ SPELL_FISHING_NO_FISHING_POLE
@ SPELL_CHARGE_CHARGING_EFFECT_8K5
@ SPELL_CHARGE_CHARGING_EFFECT_20K_2
@ SPELL_CHARGE_TRIGGER_FACTION_MOUNTS
@ SPELL_CHARGE_TRIGGER_TRIAL_CHAMPION
@ SPELL_CHARGE_DAMAGE_45K
@ SPELL_CHARGE_MISS_EFFECT
@ SPELL_CHARGE_CHARGING_EFFECT_20K_1
@ SPELL_CHARGE_DAMAGE_8K5
@ SPELL_CHARGE_CHARGING_EFFECT_45K_1
@ SPELL_CHARGE_DAMAGE_20K
@ SPELL_CHARGE_CHARGING_EFFECT_45K_2
@ SPELL_RECENTLY_BANDAGED
WhisperGulchYoggSaronWhisper
@ SPELL_YOGG_SARON_WHISPER_DUMMY
@ SPELL_GEN_ADAPTIVE_WARDING_ARCANE
@ SPELL_GEN_ADAPTIVE_WARDING_FIRE
@ SPELL_GEN_ADAPTIVE_WARDING_NATURE
@ SPELL_GEN_ADAPTIVE_WARDING_FROST
@ SPELL_GEN_ADAPTIVE_WARDING_SHADOW
MajorHealingCooldownSpell
@ SPELL_PRIEST_DIVINE_HYMN_HEAL
@ SPELL_DRUID_TRANQUILITY
@ SPELL_SHAMAN_HEALING_TIDE_TOTEM_HEAL
@ SPELL_SHAMAN_HEALING_TIDE_TOTEM
@ SPELL_PRIEST_LUMINOUS_BARRIER
@ SPELL_DRUID_TRANQUILITY_HEAL
@ SPELL_PRIEST_DIVINE_HYMN
@ QUEST_DEFENDER_OF_AZEROTH_HORDE
@ QUEST_DEFENDER_OF_AZEROTH_ALLIANCE
@ SPELL_DEATH_GATE_TELEPORT_STORMWIND
@ SPELL_DEATH_GATE_TELEPORT_ORGRIMMAR
@ SPELL_ORC_DISGUISE_FEMALE
@ SPELL_ORC_DISGUISE_MALE
@ SPELL_ORC_DISGUISE_TRIGGER
@ SPELL_NORTHREND_INSCRIPTION_RESEARCH
@ SPELL_TRANSPORTER_FAILURE
@ SPELL_TRANSPORTER_SUCCESS
@ SPELL_NIGHTMARE_FIGMENT_MIRROR_IMAGE
@ SPELL_NETHERBLOOM_POLLEN_1
@ SPELL_FREEZING_CIRCLE_PIT_OF_SARON_HEROIC
@ SPELL_FREEZING_CIRCLE_PIT_OF_SARON_NORMAL
@ MAP_ID_BLOOD_IN_THE_SNOW_SCENARIO
@ SPELL_FREEZING_CIRCLE_SCENARIO
@ SPELL_GEN_OBSIDIAN_ARMOR_HOLY
@ SPELL_GEN_OBSIDIAN_ARMOR_FIRE
@ SPELL_GEN_OBSIDIAN_ARMOR_ARCANE
@ SPELL_GEN_OBSIDIAN_ARMOR_FROST
@ SPELL_GEN_OBSIDIAN_ARMOR_SHADOW
@ SPELL_GEN_OBSIDIAN_ARMOR_NATURE
@ NPC_AMPHITHEATER_VENDOR
@ SAY_AMPHITHEATER_VENDOR
LandmineKnockbackAchievement
@ SPELL_LANDMINE_KNOCKBACK_ACHIEVEMENT
@ SPELL_COPY_OFFHAND_2_AURA
@ SPELL_COPY_WEAPON_3_AURA
@ SPELL_COPY_OFFHAND_AURA
@ SPELL_COPY_WEAPON_2_AURA
@ SPELL_CORRUPTING_PLAGUE
static Emote const EmoteArray[]
@ SPELL_PVP_TRINKET_ALLIANCE
@ SPELL_PVP_TRINKET_HORDE
@ SPELL_CREATE_LANCE_ALLIANCE
@ SPELL_CREATE_LANCE_HORDE
BindLocation const OrgrimmarInnLoc(1, 1573.18f, -4441.62f, 16.06f, 1.818284034729003906f, 8618)
void AddSC_generic_spell_scripts()
@ SPELL_FACTION_CHAMPIONS_DRU_LIFEBLOOM_FINAL_HEAL
@ SPELL_CENARION_SCOUT_LIFEBLOOM_FINAL_HEAL
@ SPELL_TUR_RAGEPAW_LIFEBLOOM_FINAL_HEAL
@ SPELL_HEXLORD_MALACRASS_LIFEBLOOM_FINAL_HEAL
@ SPELL_TWISTED_VISAGE_LIFEBLOOM_FINAL_HEAL
BindLocation const StormwindInnLoc(0, -8868.1f, 675.82f, 97.9f, 5.164778709411621093f, 5148)
@ SPELL_FOAM_SWORD_DEFEAT
@ SPELL_CANNIBALIZE_TRIGGERED
@ SPELL_BREAK_SHIELD_DAMAGE_10K
@ SPELL_BREAK_SHIELD_TRIGGER_FACTION_MOUNTS
@ SPELL_BREAK_SHIELD_TRIGGER_UNK
@ SPELL_BREAK_SHIELD_DAMAGE_2K
@ SPELL_BREAK_SHIELD_TRIGGER_CAMPAING_WARHORSE
@ SPELL_ON_TOURNAMENT_MOUNT
@ SPELL_MIGHT_OF_THE_BLACKROCK
@ SPELL_RICTUS_OF_THE_LAUGHING_SKULL
@ SPELL_FEROCITY_OF_THE_FROSTWOLF
@ SPELL_ZEAL_OF_THE_BURNING_BLADE
BindLocation(uint32 mapId, float x, float y, float z, float o, uint32 areaId)
static void VisitGridObjects(WorldObject const *obj, T &visitor, float radius, bool dont_load=true)
static void VisitWorldObjects(WorldObject const *obj, T &visitor, float radius, bool dont_load=true)
uint32 GetSubClass() const
constexpr float GetPositionX() const
constexpr float GetPositionY() const
constexpr void GetPosition(float &x, float &y) const
constexpr float GetPositionZ() const
void Relocate(Position const &pos)
void OnInitialize() override