138 int cid =
rand32() % (4 - 1);
539 std::list<WorldObject*> ClusterList;
544 for (std::list<WorldObject*>::const_iterator i = ClusterList.begin(); i != ClusterList.end(); ++i)
551 switch (go->GetGOInfo()->displayId)
572 switch (go->GetGOInfo()->displayId)
613 auraGo->RemoveFromWorld();
666 auraGo->RemoveFromWorld();
720 cluster->GetPosition(x, y, z, o);
741 relic->GetPosition(x, y, z, o);
770 DoCast(player, rewSpell,
true);
786 guardian->AI()->AttackStart(player);
823 if (player->isDead())
906 bunny->AI()->SetGUID(player->
GetGUID(), large);
1115 if (
GetTarget()->GetCharmedGUID().IsEmpty())
1123 marmot->DespawnOrUnsummon();
1144 creature->DespawnOrUnsummon(1ms);
1170 if (
Player* player =
GetCaster()->GetCharmerOrOwnerPlayerOrPlayerItself())
1188 player->CastSpell(
nullptr, spellId,
true);
1297 std::vector<Player*> playerList;
1299 for (
Player* player : playerList)
First const & RAND(First const &first, Second const &second, Rest const &... rest)
@ TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT
@ TEMPSUMMON_TIMED_OR_DEAD_DESPAWN
@ TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN
@ QUEST_STATUS_INCOMPLETE
#define RegisterCreatureAI(ai_name)
#define RegisterSpellScript(spell_script)
Creature * GetClosestCreatureWithEntry(WorldObject *source, uint32 entry, float maxSearchRange, bool alive=true)
void CloseGossipMenuFor(Player *player)
@ SPELL_EFFECT_SCRIPT_EFFECT
@ SPELL_EFFECT_APPLY_AURA
@ SPELL_FAILED_CANT_DO_THAT_RIGHT_NOW
@ AURA_EFFECT_HANDLE_REAL
@ SPELL_AURA_MOD_INVISIBILITY
@ SPELL_AURA_PERIODIC_DUMMY
@ SPELL_AURA_MOD_INCREASE_MOUNTED_FLIGHT_SPEED
@ SPELL_AURA_PERIODIC_TRIGGER_SPELL
@ TRIGGERED_FULL_MASK
Will return SPELL_FAILED_DONT_REPORT in CheckCast functions.
@ TRIGGERED_IGNORE_CASTER_MOUNTED_OR_ON_VEHICLE
Disallows proc events from triggered spell (default)
#define SpellCheckCastFn(F)
#define SpellEffectFn(F, I, N)
#define AuraEffectPeriodicFn(F, I, N)
#define AuraEffectApplyFn(F, I, N, M)
#define AuraEffectRemoveFn(F, I, N, M)
@ UNIT_FLAG_NON_ATTACKABLE
@ UNIT_FLAG_UNINTERACTIBLE
HookList< EffectApplyHandler > AfterEffectRemove
HookList< EffectPeriodicHandler > OnEffectPeriodic
HookList< EffectApplyHandler > AfterEffectApply
void Remove(AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
virtual void MoveInLineOfSight(Unit *)
virtual void EnterEvadeMode(EvadeReason why=EVADE_REASON_OTHER)
void SetObjectScale(float scale) override
void DespawnOrUnsummon(Milliseconds timeToDespawn=0s, Seconds forceRespawnTime=0s)
bool UpdateEntry(uint32 entry, CreatureData const *data=nullptr, bool updateLevel=true)
void CancelEvent(EventId eventId)
void CancelEventGroup(GroupIndex group)
void ScheduleEvent(EventId eventId, Milliseconds time, GroupIndex group=0u, PhaseIndex phase=0u)
void AddFlag(FLAG_TYPE flag)
GameObjectTemplate const * GetGOInfo() const
void MovePoint(uint32 id, Position const &pos, bool generatePath=true, Optional< float > finalOrient={})
static Unit * ToUnit(Object *o)
static GameObject * ToGameObject(Object *o)
static ObjectGuid GetGUID(Object const *o)
static Player * ToPlayer(Object *o)
bool HasItemCount(uint32 item, uint32 count=1, bool inBankAlso=false) const
void SendPreparedGossip(WorldObject *source)
QuestStatus GetQuestStatus(uint32 quest_id) const
void PrepareGossipMenu(WorldObject *source, uint32 menuId=0, bool showQuests=false)
HookList< CheckCastHandler > OnCheckCast
Player * GetHitPlayer() const
HookList< EffectHandler > OnEffectHit
Unit * GetHitUnit() const
HookList< EffectHandler > OnEffectHitTarget
void DoMeleeAttackIfReady()
SpellCastResult DoCastVictim(uint32 spellId, CastSpellExtraArgs const &args={})
SpellCastResult DoCast(uint32 spellId)
MotionMaster * GetMotionMaster()
Powers GetPowerType() const
bool HasUnitFlag(UnitFlags flags) const
uint32 GetMaxHealth() const
bool SetCanFly(bool enable, bool packetOnly=false)
bool HasAuraType(AuraType auraType) const
void NearTeleportTo(Position const &pos, bool casting=false)
void RemoveAurasDueToSpell(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, uint8 reqEffMask=0, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
void SetUnitFlag(UnitFlags flags)
void RemoveUnitFlag(UnitFlags flags)
void GetPlayerListInGrid(Container &playerContainer, float maxSearchRange, bool alive=true) const
GameObject * FindNearestGameObject(uint32 entry, float range, bool spawnedOnly=true) const
SpellCastResult CastSpell(CastSpellTargetArg const &targets, uint32 spellId, CastSpellExtraArgs const &args={ })
FlaggedValuesArray32< int32, uint32, InvisibilityType, TOTAL_INVISIBILITY_TYPES > m_invisibilityDetect
TempSummon * SummonCreature(uint32 entry, Position const &pos, TempSummonType despawnType=TEMPSUMMON_MANUAL_DESPAWN, Milliseconds despawnTime=0s, uint32 vehId=0, uint32 spellId=0, ObjectGuid privateObjectOwner=ObjectGuid::Empty)
GameObject * SummonGameObject(uint32 entry, Position const &pos, QuaternionData const &rot, Seconds respawnTime, GOSummonType summonType=GO_SUMMON_TIMED_OR_CORPSE_DESPAWN)
Creature * FindNearestCreature(uint32 entry, float range, bool alive=true) const
static bool ValidateSpellInfo(std::initializer_list< uint32 > spellIds)
GameObjectAI * GetAI(GameObject *go) const override
GameObjectAI * GetAI(GameObject *go) const override
GameObjectAI * GetAI(GameObject *go) const override
CreatureAI * GetAI(Creature *creature) const override
CreatureAI * GetAI(Creature *creature) const override
npc_oscillating_frequency_scanner_master_bunny()
CreatureAI * GetAI(Creature *creature) const override
PrepareAuraScript(spell_bem_aggro_burst)
void HandleEffectPeriodic(AuraEffect const *)
PrepareAuraScript(spell_bem_aggro_check_aura)
void HandleTriggerSpell(AuraEffect const *)
PrepareSpellScript(spell_bem_aggro_check)
void HandleDummy(SpellEffIndex)
void AfterRemove(AuraEffect const *, AuraEffectHandleModes)
bool Validate(SpellInfo const *) override
PrepareAuraScript(spell_bem_apexis_swiftness)
void OnRemove(AuraEffect const *, AuraEffectHandleModes)
PrepareAuraScript(spell_bem_charm_rexxars_rodent)
SpellCastResult CheckRequirement()
PrepareSpellScript(spell_bem_check_fly_mount)
PrepareSpellScript(spell_bem_choose_loc)
void HandleDummy(SpellEffIndex)
void HandleEffectRemove(AuraEffect const *, AuraEffectHandleModes)
PrepareAuraScript(spell_bem_coax_marmot)
void HandleEffectApply(AuraEffect const *, AuraEffectHandleModes)
bool Validate(SpellInfo const *) override
PrepareSpellScript(spell_bem_dispelling_analysis)
void HandleScript(SpellEffIndex)
void HandleDummy(SpellEffIndex)
PrepareSpellScript(spell_bem_kfc_the_bolt)
bool Validate(SpellInfo const *) override
PrepareSpellScript(spell_bem_q10720_poison_keg)
bool Validate(SpellInfo const *) override
void HandleScriptEffect(SpellEffIndex)
void HandleDummy(SpellEffIndex)
PrepareSpellScript(spell_bem_summon_spirit)
bool Validate(SpellInfo const *) override
void AfterApply(AuraEffect const *, AuraEffectHandleModes)
PrepareAuraScript(spell_bem_vision_guide)
bool Validate(SpellInfo const *) override
PrepareSpellScript(spell_bem_wicked_strong_fetish)
void HandleScript(SpellEffIndex)
void HandleEffect(SpellEffIndex)
PrepareSpellScript(spell_oscillating_field_SpellScript)
SpellScript * GetSpellScript() const override
spell_oscillating_field()
TC_GAME_API Player * GetPlayer(Map const *, ObjectGuid const &guid)
static void VisitAllObjects(WorldObject const *obj, T &visitor, float radius, bool dont_load=true)
struct GameObjectTemplate::@191::@202 goober
struct GameObjectTemplate::@191::@195 questgiver
float GetPositionZ() const
float GetOrientation() const
float GetPositionX() const
float GetPositionY() const
void AttackStart(Unit *) override
ScriptedAI(Creature *creature)
void DoPlaySoundToSet(WorldObject *source, uint32 soundId)
go_apexis_relicAI(GameObject *go)
bool OnGossipSelect(Player *player, uint32, uint32) override
bool OnGossipHello(Player *player) override
go_legion_obeliskAI(GameObject *go)
bool OnGossipHello(Player *player) override
go_simon_clusterAI(GameObject *go)
bool OnGossipHello(Player *player) override
void SpellHit(WorldObject *caster, SpellInfo const *spellInfo) override
void JustEngagedWith(Unit *) override
npc_nether_drakeAI(Creature *creature)
void MoveInLineOfSight(Unit *who) override
void UpdateAI(uint32 diff) override
uint32 IntangiblePresence_Timer
void MovementInform(uint32 type, uint32 id) override
npc_oscillating_frequency_scanner_master_bunnyAI(Creature *creature)
void IsSummonedBy(WorldObject *summoner) override
void UpdateAI(uint32 diff) override
npc_q10720_keg_credit(Creature *creature)
void IsSummonedBy(WorldObject *summoner) override
void SetData(uint32 type, uint32) override
void PlayColor(uint8 color)
uint32 clusterIds[SIMON_MAX_COLORS]
std::list< uint8 > playableSequence
void SpellHitTarget(WorldObject *target, SpellInfo const *spellInfo) override
void CheckPlayerSequence()
std::list< uint8 > playerSequence
void DoAction(int32 action) override
void GenerateColorSequence()
void SetGUID(ObjectGuid const &guid, int32 id) override
void UpdateAI(uint32 diff) override
void PrepareClusters(bool clustersOnly=false)
std::list< uint8 > colorSequence
void GiveRewardForLevel(uint8 level)
npc_simon_bunnyAI(Creature *creature)
@ GO_LEGION_OBELISK_THREE
@ SPELL_SWIFTNESS_APEXIS_EMANATIONS
@ SPELL_SWIFTNESS_APEXIS_VIBRATIONS
@ SPELL_APEXIS_VIBRATIONS
@ SPELL_APEXIS_ENLIGHTENMENT
@ SPELL_SWIFTNESS_APEXIS_ENLIGHTENMENT
@ SPELL_APEXIS_EMANATIONS
@ SPELL_TAKE_REAGENTS_SOLO
@ SPELL_TAKE_REAGENTS_GROUP
void AddSC_blades_edge_mountains()
@ SPELL_REXXARS_BIRD_EFFECT
@ SPELL_INTANGIBLE_PRESENCE
@ SPELL_T_PHASE_MODULATOR
@ EVENT_SIMON_RESET_CLUSTERS
@ ACTION_SIMON_ROUND_FINISHED
@ EVENT_SIMON_PLAY_SEQUENCE
@ EVENT_SIMON_TOO_LONG_TIME
@ EVENT_SIMON_SETUP_PRE_GAME
@ EVENT_SIMON_PERIODIC_PLAYER_CHECK
@ ACTION_SIMON_WRONG_SEQUENCE
@ ACTION_SIMON_CORRECT_FULL_SEQUENCE
@ EVENT_SIMON_ROUND_FINISHED
@ SPELL_FLAK_CANNON_TRIGGER
@ GO_YELLOW_CLUSTER_DISPLAY
@ GO_BLUE_CLUSTER_DISPLAY_LARGE
@ GO_GREEN_CLUSTER_DISPLAY
@ GO_BLUE_CLUSTER_DISPLAY
@ GO_GREEN_CLUSTER_DISPLAY_LARGE
@ SPELL_VISUAL_START_PLAYER_LEVEL
@ SPELL_AUDIBLE_GAME_TICK
@ GO_RED_CLUSTER_DISPLAY_LARGE
@ GO_YELLOW_CLUSTER_DISPLAY_LARGE
@ SPELL_BAD_PRESS_TRIGGER
@ SPELL_VISUAL_START_AI_LEVEL
@ SPELL_LASHHAN_CHANNELING
@ SPELL_CHARM_REXXARS_RODENT
@ NPC_RIPE_MOONSHINE_KEG_CREDIT
@ NPC_GREEN_SPOT_GROG_KEG_CREDIT
@ SPELL_RIPE_MOONSHINE_CREDIT
@ SPELL_GREEN_EYE_GROG_CREDIT
@ SPELL_FERMENTED_SEED_BEER_CREDIT
@ NPC_FERMENTED_SEED_BEER_KEG_CREDIT
ACurseUponBothOfYourClans
@ NPC_OGRE_BUILDING_BUNNY_LARGE
@ NPC_OSCILLATING_FREQUENCY_SCANNER_TOP_BUNNY
@ GO_OSCILLATING_FREQUENCY_SCANNER
@ QUEST_GAUGING_THE_RESONANT_FREQUENCY
@ SPELL_OSCILLATION_FIELD