18#ifndef __BATTLEGROUNDSA_H
19#define __BATTLEGROUNDSA_H
247 void Reset()
override;
259 if (gate.GameObjectId == entry)
StrandOfTheAncientSharedActions
@ ACTION_SOTA_CAPTURE_GRAVEYARD
StrandOfTheAncientsGraveyard
@ BG_SA_HORDE_GATE_DAMAGED
@ BG_SA_HORDE_GATE_DESTROYED
@ BG_SA_ALLIANCE_GATE_DESTROYED
@ BG_SA_ALLIANCE_GATE_DAMAGED
StrandOfTheAncientsGameObjects
@ GO_CHAMBER_OF_ANCIENT_RELICS
@ GO_GATE_OF_THE_YELLOW_MOON
@ GO_GATE_OF_THE_BLUE_SAPPHIRE
@ GO_GATE_OF_THE_PURPLE_AMETHYST
@ GO_GATE_OF_THE_GREEN_EMERALD
@ TEXT_YELLOW_GATE_DESTROYED
@ TEXT_EAST_GRAVEYARD_CAPTURED_A
@ TEXT_PURPLE_GATE_DESTROYED
@ TEXT_PURPLE_GATE_UNDER_ATTACK
@ TEXT_RED_GATE_DESTROYED
@ TEXT_GREEN_GATE_UNDER_ATTACK
@ TEXT_ANCIENT_GATE_UNDER_ATTACK
@ TEXT_SPARKLIGHT_RIGSPARK_SPAWN
@ TEXT_SOUTH_GRAVEYARD_CAPTURED_A
@ TEXT_RED_GATE_UNDER_ATTACK
@ TEXT_ANCIENT_GATE_DESTROYED
@ TEXT_WEST_GRAVEYARD_CAPTURED_A
@ TEXT_GREEN_GATE_DESTROYED
@ TEXT_WEST_GRAVEYARD_CAPTURED_H
@ TEXT_EAST_GRAVEYARD_CAPTURED_H
@ TEXT_YELLOW_GATE_UNDER_ATTACK
@ TEXT_SOUTH_GRAVEYARD_CAPTURED_H
@ TEXT_BLUE_GATE_DESTROYED
@ TEXT_BLUE_GATE_UNDER_ATTACK
@ SOUND_WALL_DESTROYED_HORDE
@ SOUND_WALL_ATTACKED_HORDE
@ SOUND_GRAVEYARD_TAKEN_ALLIANCE
@ SOUND_WALL_DESTROYED_ALLIANCE
@ SOUND_GRAVEYARD_TAKEN_HORDE
@ SOUND_WALL_ATTACKED_ALLIANCE
uint32 const BG_SA_Factions[2]
@ BG_SA_DESTROYED_HORDE_VEHICLES
@ BG_SA_LEFT_ATT_TOKEN_ALL
@ BG_SA_CENTER_GY_ALLIANCE
@ BG_SA_RIGHT_ATT_TOKEN_HRD
@ BG_SA_RIGHT_ATT_TOKEN_ALL
@ BG_SA_ALLIANCE_DEFENCE_TOKEN
@ BG_SA_DESTROYED_ALLIANCE_VEHICLES
@ BG_SA_RIGHT_GY_ALLIANCE
@ BG_SA_HORDE_DEFENCE_TOKEN
@ BG_SA_LEFT_ATT_TOKEN_HRD
@ BG_SA_TEXT_ROUND_TWO_START_ONE_MINUTE
@ BG_SA_TEXT_ALLIANCE_CAPTURED_TITAN_PORTAL
@ BG_SA_TEXT_ROUND_TWO_START_HALF_MINUTE
@ BG_SA_TEXT_HORDE_CAPTURED_TITAN_PORTAL
std::unordered_set< ObjectGuid > GuidUnorderedSet
uint8 constexpr PVP_TEAMS_COUNT
Class for manage Strand of Ancient battleground.
bool TimerEnabled
used for know we are in timer phase or not (used for worldstate update)
GateInfo const * GetGate(uint32 entry)
Return GateInfo, relative to bg data, according to gameobject entry.
void SendTransportInit(Player *player)
Send packet to player for create boats (client part)
void ToggleTimer()
Switch on/off timer worldstate.
BG_SA_Status Status
Statu of battle (Start or not, and what round)
void PostUpdateImpl(uint32 diff) override
Called every time for update battle data -Update timer -Round switch.
TeamId Attackers
Id of attacker team.
uint32 EndRoundTimer
Max time of round.
BattlegroundSA(BattlegroundTemplate const *battlegroundTemplate)
bool SignaledRoundTwo
for know if warning about second round start has been sent
void TeleportPlayers() const
Called between the two round -Teleport all players to good location.
uint32 GetData(uint32 dataId) const override
std::array< GuidUnorderedSet, PVP_TEAMS_COUNT > _staticBombGUIDs
Creature * FindKanrethad() const
void RemovePlayer(Player *player, ObjectGuid guid, uint32 team) override
Called when a player leave battleground.
void OnCreatureCreate(Creature *creature) override
void OnMapSet(BattlegroundMap *map) override
bool SignaledRoundTwoHalfMin
for know if warning about second round start has been sent
ObjectGuid _graveyardCentral
ObjectGuid _collisionDoorGUID
void DestroyGate(Player *player, GameObject *go) override
Called when a gate is destroy -Give honor to player witch destroy it -Update worldstate -Delete gameo...
BG_SA_RoundScore RoundScores[2]
Score of each round.
uint32 UpdateWaitTimer
5secs before starting the 1min countdown for second round
void EndBattleground(Team winner) override
Called on battleground ending.
void DoAction(uint32 actionId, WorldObject *source, WorldObject *target) override
std::array< std::array< ObjectGuid, 2 >, PVP_TEAMS_COUNT > _boatGUIDs
void HandleCaptureGraveyardAction(GameObject *graveyardBanner, Player *player)
void MakeObjectsInteractable(DefenseLine defenseLine)
void OnGameObjectCreate(GameObject *gameobject) override
bool SetupBattleground() override
Called for ini battleground, after that the first player be entered.
bool ShipsStarted
For know if boats has start moving or not yet.
bool InitSecondRound
for know if second round has been init
ObjectGuid _graveyardWest
bool IsGateDestroyed(GateInfo const *gateInfo) const
bool ResetObjs()
Called on setup and between the two round -Delete all gameobject / creature -Respawn all gameobject /...
void AddPlayer(Player *player, BattlegroundQueueTypeId queueId) override
Called when a player join battle.
void CaptureGraveyard(StrandOfTheAncientsGraveyard graveyard, TeamId teamId)
Called when a graveyard is capture -Update spiritguide -Update gameobject (flag) -Update Worldstate -...
GuidUnorderedSet _dynamicBombGUIDs
void TeleportToEntrancePosition(Player *player) const
ObjectGuid _graveyardEast
void TitanRelicActivated(Player *clicker)
Called when a player clicked on relic.
void StartShips()
Called for start ship movement.
void ProcessEvent(WorldObject *, uint32, WorldObject *=nullptr) override
Called when someone activates an event.
void SendTransportsRemove(Player *player)
Send packet to player for destroy boats (client part)
ObjectGuid _kanrethadGUID
void HandleKillUnit(Creature *creature, Unit *killer) override
Called when a player kill a unit in bg.
ObjectGuid _titanRelicGUID
GuidUnorderedSet _gateGUIDs
uint32 TotalTime
Totale elapsed time of current round.
DefenseLine LineOfDefense