158 player->
CastSpell(player, spellId,
true);
159 aura = player->
GetAura(spellId);
178 gameObject->UseDoorOrButton();
179 gameObject->DespawnOrUnsummon(3s);
193 return gameObject->GetFlagState();
201 return gameObject->GetFlagCarrierGUID();
212 if (trigger->GetInsideUnits().contains(player->
GetGUID()))
220 auto transformValueToOtherTeamControlWorldState = [](
FlagState value)
432 player->
CastSpell(player, recentlyDroppedSpellId,
true);
uint32 BG_WSG_Honor[2][BG_WSG_REWARD_NUM]
@ WS_EXPLOIT_TELEPORT_LOCATION_HORDE
@ WS_EXPLOIT_TELEPORT_LOCATION_ALLIANCE
static constexpr uint32 WS_EVENT_START_BATTLE
@ BG_WS_SPELL_QUICK_CAP_TIMER
@ BG_WS_SOUND_FLAG_CAPTURED_HORDE
@ BG_WS_SOUND_FLAGS_RESPAWNED
@ BG_WS_SOUND_FLAG_CAPTURED_ALLIANCE
@ BG_WS_SOUND_HORDE_FLAG_PICKED_UP
@ BG_WS_SOUND_ALLIANCE_FLAG_PICKED_UP
@ BG_WS_SOUND_FLAG_RETURNED
static constexpr uint16 FLAG_BRUTAL_ASSAULT_STACK_COUNT
@ WS_SPELL_BRUTAL_ASSAULT
@ SPELL_CAPTURED_HORDE_COSMETIC_FX
@ SPELL_CAPTURED_ALLIANCE_COSMETIC_FX
@ WS_SPELL_FOCUSED_ASSAULT
@ BG_WS_TEXT_START_HALF_MINUTE
@ BG_WS_TEXT_HORDE_FLAG_PICKED_UP
@ BG_WS_TEXT_ALLIANCE_FLAG_DROPPED
@ BG_WS_TEXT_ALLIANCE_FLAG_RETURNED
@ BG_WS_TEXT_ALLIANCE_FLAG_PICKED_UP
@ BG_WS_TEXT_CAPTURED_HORDE_FLAG
@ BG_WS_TEXT_BATTLE_HAS_BEGUN
@ BG_WS_TEXT_CAPTURED_ALLIANCE_FLAG
@ BG_WS_TEXT_HORDE_FLAG_DROPPED
@ BG_WS_TEXT_START_ONE_MINUTE
@ BG_WS_TEXT_HORDE_FLAG_RETURNED
@ BG_WS_TEXT_FLAGS_PLACED
static constexpr Seconds FLAG_ASSAULT_TIMER
@ BG_WS_OBJECT_HORDE_FLAG_IN_BASE
@ BG_WS_OBJECT_PORTCULLIS_002
@ BG_WS_OBJECT_HORDE_GATE_1
@ BG_WS_OBJECT_HORDE_GATE_2
@ BG_WS_OBJECT_COLLISION_PC_SIZE
@ BG_WS_OBJECT_ALLIANCE_FLAG_IN_BASE
@ BG_WS_OBJECT_PORTCULLIS_009
@ BG_WS_OBJECT_ALLIANCE_DOOR
@ AT_CAPTURE_POINT_ALLIANCE
@ BG_WS_FLAG_STATE_ALLIANCE
@ BG_WS_FLAG_CAPTURES_HORDE
@ BG_WS_STATE_TIMER_ACTIVE
@ BG_WS_FLAG_CONTROL_HORDE
@ BG_WS_FLAG_CONTROL_ALLIANCE
@ BG_WS_FLAG_CAPTURES_ALLIANCE
@ SPELL_RECENTLY_DROPPED_ALLIANCE_FLAG
@ SPELL_RECENTLY_DROPPED_HORDE_FLAG
@ BG_STARTING_EVENT_THIRD
@ BG_STARTING_EVENT_SECOND
@ BG_STARTING_EVENT_FOURTH
std::chrono::seconds Seconds
Seconds shorthand typedef.
@ CHAT_MSG_BG_SYSTEM_ALLIANCE
@ CHAT_MSG_BG_SYSTEM_HORDE
@ CHAT_MSG_BG_SYSTEM_NEUTRAL
constexpr std::underlying_type< E >::type AsUnderlyingType(E enumValue)
bool IsStaticSpawn() const
void SetStackAmount(uint8 num)
static bool IsBGWeekend(BattlegroundTypeId bgTypeId)
TimeTracker _flagAssaultTimer
Team _lastFlagCaptureTeam
WorldSafeLocsEntry const * GetClosestGraveyard(Player *player) override
void EndBattleground(Team winner) override
uint32 m_ReputationCapture
void HandleKillPlayer(Player *player, Player *killer) override
std::array< ObjectGuid, 2 > _flags
void OnFlagStateChange(GameObject *flagInBase, FlagState oldValue, FlagState newValue, Player *player) override
BattlegroundWS(BattlegroundTemplate const *battlegroundTemplate)
FlagState GetFlagState(TeamId team) const
void UpdateFlagState(uint32 team, FlagState value)
void ResetAssaultDebuff()
void HandleFlagRoomCapturePoint()
void SetLastFlagCapture(Team team)
void RemoveAssaultDebuffFromPlayer(Player *player)
std::array< ObjectGuid, 2 > _capturePointAreaTriggers
Team GetPrematureWinner() override
void UpdateTeamScore(TeamId team)
bool SetupBattleground() override
void OnGameObjectCreate(GameObject *gameObject) override
void OnAreaTriggerCreate(AreaTrigger *areaTrigger) override
void ApplyAssaultDebuffToPlayer(Player *player)
WorldSafeLocsEntry const * GetExploitTeleportLocation(Team team) override
ObjectGuid const & GetFlagCarrierGUID(TeamId team) const
void OnCaptureFlag(AreaTrigger *areatrigger, Player *player) override
void PostUpdateImpl(uint32 diff) override
Post-update hook.
void AddPoint(Team team, uint32 Points=1)
void DoForFlagKeepers(std::function< void(Player *)> action) const
uint16 _assaultStackCount
void StartingEventOpenDoors() override
bool CanCaptureFlag(AreaTrigger *areatrigger, Player *player) override
virtual Team GetPrematureWinner()
virtual void HandleKillPlayer(Player *player, Player *killer)
void PlaySoundToAll(uint32 SoundID)
uint32 GetTeamScore(TeamId teamId) const
void RewardHonorToTeam(uint32 Honor, Team team)
BattlegroundMap * GetBgMap() const
BattlegroundMap * FindBgMap() const
BattlegroundTypeId GetTypeID() const
void TriggerGameEvent(uint32 gameEventId, WorldObject *source=nullptr, WorldObject *target=nullptr) override
int32 m_TeamScores[PVP_TEAMS_COUNT]
Team GetOtherTeam(Team team) const
static TeamId GetTeamIndexByTeamId(Team team)
void UpdateWorldState(int32 worldStateId, int32 value, bool hidden=false)
virtual void EndBattleground(Team winner)
void SendBroadcastText(uint32 id, ChatMsg msgType, WorldObject const *target=nullptr)
void RewardReputationToTeam(uint32 faction_id, uint32 Reputation, Team team)
BattlegroundStatus GetStatus() const
Team GetPlayerTeam(ObjectGuid guid) const
virtual void EventPlayerDroppedFlag(Player *)
uint32 GetBonusHonorFromKill(uint32 kills) const
void UpdatePvpStat(Player *player, uint32 pvpStatId, uint32 value)
uint32 GetElapsedTime() const
uint32 StartMessageIds[BG_STARTING_EVENT_COUNT]
time_t GetFlagTakenFromBaseTime() const
static ObjectGuid const Empty
static ObjectGuid GetGUID(Object const *o)
void StartCriteria(CriteriaStartEvent startEvent, uint32 entry, Milliseconds timeLost=Milliseconds::zero())
Aura * GetAura(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, ObjectGuid itemCasterGUID=ObjectGuid::Empty, uint32 reqEffMask=0) const
void RemoveAurasWithInterruptFlags(InterruptFlags flag, SpellInfo const *source=nullptr)
void RemoveAurasDueToSpell(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, uint32 reqEffMask=0, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
SpellCastResult CastSpell(CastSpellTargetArg const &targets, uint32 spellId, CastSpellExtraArgs const &args={ })
TC_GAME_API GameObject * GetGameObject(WorldObject const &u, ObjectGuid const &guid)
TC_GAME_API AreaTrigger * GetAreaTrigger(WorldObject const &u, ObjectGuid const &guid)
TC_GAME_API Player * FindPlayer(ObjectGuid const &)