32 namespace AreaTriggers
106 namespace WorldStates
181 gameObject->UseDoorOrButton();
182 gameObject->DespawnOrUnsummon(3s);
193 template <std::invocable<Player*> Action>
228 player->
CastSpell(player, spellId,
true);
229 aura = player->
GetAura(spellId);
245 return flag->GetFlagState();
253 return flag->GetFlagCarrierGUID();
264 if (trigger->GetInsideUnits().contains(player->
GetGUID()))
272 auto transformValueToOtherTeamControlWorldState = [](
FlagState state)
309 if (teamScore == 2 && otherTeamScore == 0)
416 player->
CastSpell(player, recentlyDroppedSpellId,
true);
563 std::array<ObjectGuid, PVP_TEAMS_COUNT>
_flags;
@ SPELL_RECENTLY_DROPPED_ALLIANCE_FLAG
@ SPELL_RECENTLY_DROPPED_HORDE_FLAG
std::chrono::seconds Seconds
Seconds shorthand typedef.
std::set< ObjectGuid > GuidSet
#define RegisterBattlegroundMapScript(script_name, mapId)
constexpr TeamId GetOtherTeam(TeamId team)
@ CHAT_MSG_BG_SYSTEM_ALLIANCE
@ CHAT_MSG_BG_SYSTEM_HORDE
@ CHAT_MSG_BG_SYSTEM_NEUTRAL
constexpr std::underlying_type< E >::type AsUnderlyingType(E enumValue)
void AddSC_battleground_twin_peaks()
bool IsStaticSpawn() const
void SetStackAmount(uint8 num)
ObjectGuid const & GetGUID() const
Battleground * battleground
void TriggerGameEvent(uint32 gameEventId, WorldObject *source=nullptr, WorldObject *target=nullptr) override
BattlegroundMap * battlegroundMap
virtual void OnUpdate(uint32 diff)
virtual Team GetPrematureWinner()
void UpdateWorldState(int32 worldStateId, int32 value, bool hidden=false) const
void PlaySoundToAll(uint32 SoundID)
uint32 GetTeamScore(TeamId teamId) const
void RewardHonorToTeam(uint32 Honor, Team team)
static TeamId GetTeamIndexByTeamId(Team team)
virtual void EndBattleground(Team winner)
void SendBroadcastText(uint32 id, ChatMsg msgType, WorldObject const *target=nullptr)
BattlegroundStatus GetStatus() const
void AddPoint(Team team, uint32 points=1)
Team GetPlayerTeam(ObjectGuid guid) const
uint32 GetBonusHonorFromKill(uint32 kills) const
void UpdatePvpStat(Player *player, uint32 pvpStatId, uint32 value)
uint32 GetElapsedTime() const
time_t GetFlagTakenFromBaseTime() const
GameObject * GetGameObject(ObjectGuid const &guid)
AreaTrigger * GetAreaTrigger(ObjectGuid const &guid)
static ObjectGuid const Empty
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={ })
virtual void OnCaptureFlag(AreaTrigger *areaTrigger, Player *player)
virtual void OnFlagStateChange(GameObject *flagInBase, FlagState oldValue, FlagState newValue, Player *player)
virtual void OnAreaTriggerCreate(AreaTrigger *areaTrigger)
virtual void OnGameObjectCreate(GameObject *)
SystemTimePoint GetSystemTime()
Current chrono system_clock time point.
TC_GAME_API Player * FindPlayer(ObjectGuid const &)
static constexpr uint32 CapturePointHorde
static constexpr uint32 CapturePointAlliance
static constexpr uint32 StartBattle
static constexpr uint32 Portcullis
static constexpr uint32 HordeFlag
static constexpr uint32 Gate1
static constexpr uint32 AllianceFlag
static constexpr uint32 WildHammerGate1
static constexpr uint32 WildHammerGate2
static constexpr uint32 WildHammerGate3
static constexpr uint32 GhostGate
static constexpr uint32 Gate3
static constexpr uint32 Gate2
static constexpr uint8 FlagBrutalAssaultStackCount
static constexpr uint8 MaxTeamScore
static constexpr uint32 FlagCaptures
static constexpr uint32 FlagReturns
static constexpr uint32 PvpFlagCapturedAlliance
static constexpr uint32 PvpFlagTakenHorde
static constexpr uint32 FlagsRespawned
static constexpr uint32 PvpFlagTakenAlliance
static constexpr uint32 FlagReturned
static constexpr uint32 PvpFlagCapturedHorde
static constexpr uint32 CapturedAllianceCosmeticFx
static constexpr uint32 BrutalAssault
static constexpr uint32 QuickCapTimer
static constexpr uint32 FocusedAssault
static constexpr uint32 CapturedHordeCosmeticFx
static constexpr uint32 FlagsPlaced
static constexpr uint32 AllianceFlagReturned
static constexpr uint32 AllianceFlagPickedUp
static constexpr uint32 CapturedHordeFlag
static constexpr uint32 CapturedAllianceFlag
static constexpr uint32 HordeFlagDropped
static constexpr uint32 HordeFlagPickedUp
static constexpr uint32 AllianceFlagDropped
static constexpr uint32 HordeFlagReturned
static constexpr Seconds FlagAssaultTimer
static constexpr uint32 TimerActive
static constexpr uint32 FlagControlAlliance
static constexpr uint32 FlagStateHorde
static constexpr uint32 DoubleJeopardyAllianceEnabled
static constexpr uint32 FlagControlHorde
static constexpr uint32 FlagCapturesHorde
static constexpr uint32 Timer
static constexpr uint32 DoubleJeopardyHordeEnabled
static constexpr uint32 FlagStateAlliance
static constexpr uint32 FlagCapturesAlliance
void UpdateFlagState(uint32 team, FlagState value) const
void SetLastFlagCapture(Team team)
void OnCaptureFlag(AreaTrigger *areaTrigger, Player *player) override
void OnAreaTriggerCreate(AreaTrigger *areaTrigger) override
Team GetPrematureWinner() override
void RemoveAssaultDebuffFromPlayer(Player *player) const
std::array< ObjectGuid, PVP_TEAMS_COUNT > _capturePointAreaTriggers
void OnUpdate(uint32 diff) override
bool CanCaptureFlag(AreaTrigger *areaTrigger, Player *player) override
void ApplyAssaultDebuffToPlayer(Player *player) const
TimeTracker _flagAssaultTimer
void ResetAssaultDebuff()
void DoForFlagKeepers(Action const &action) const
void UpdateTeamScore(TeamId team) const
std::array< ObjectGuid, PVP_TEAMS_COUNT > _flags
FlagState GetFlagState(TeamId team) const
ObjectGuid const & GetFlagCarrierGUID(TeamId team) const
void OnFlagStateChange(GameObject *flagInBase, FlagState oldValue, FlagState newValue, Player *player) override
Team _lastFlagCaptureTeam
battleground_twin_peaks(BattlegroundMap *map)
void HandleFlagRoomCapturePoint()
void OnGameObjectCreate(GameObject *gameObject) override