18#ifndef __BATTLEGROUNDAB_H
19#define __BATTLEGROUNDAB_H
177 {
BG_AB_NODE_FARM, 10217, 10218, 10219, 10220, 10221, 10222, 10288, 10289 },
210#define BG_AB_NotABBGWeekendHonorTicks 260
211#define BG_AB_ABBGWeekendHonorTicks 160
212#define BG_AB_NotABBGWeekendReputationTicks 160
213#define BG_AB_ABBGWeekendReputationTicks 120
215#define AB_EVENT_START_BATTLE 9158
219 {1166.785f, 1200.132f, -56.70859f, 0.9075713f},
220 {977.0156f, 1046.616f, -44.80923f, -2.600541f},
221 {806.1821f, 874.2723f, -55.99371f, -2.303835f},
222 {856.1419f, 1148.902f, 11.18469f, -2.303835f},
223 {1146.923f, 848.1782f, -110.917f, -0.7330382f}
229 {1284.597f, 1281.167f, -15.97792f, 0.7068594f, 0.012957f, -0.060288f, 0.344959f, 0.93659f},
230 {708.0903f, 708.4479f, -17.8342f, -2.391099f, 0.050291f, 0.015127f, 0.929217f, -0.365784f}
243 {1185.566f, 1184.629f, -56.36329f, 2.303831f},
244 {990.1131f, 1008.73f, -42.60328f, 0.8203033f},
245 {818.0089f, 842.3543f, -56.54062f, 3.176533f},
246 {808.8463f, 1185.417f, 11.92161f, 5.619962f},
247 {1147.091f, 816.8362f, -98.39896f, 6.056293f}
252 {1200.03f, 1171.09f, -56.47f, 5.15f},
253 {1017.43f, 960.61f, -42.95f, 4.88f},
254 {833.00f, 793.00f, -57.25f, 5.27f},
255 {775.17f, 1206.40f, 15.79f, 1.90f},
256 {1207.48f, 787.00f, -83.36f, 5.51f},
257 {1354.05f, 1275.48f, -11.30f, 4.77f},
258 {714.61f, 646.15f, -10.87f, 4.34f}
312 void Reset()
override;
Position const BG_AB_NodePositions[BG_AB_DYNAMIC_NODES_COUNT]
const uint32 BG_AB_TickPoints[6]
Position const BG_AB_SpiritGuidePos[BG_AB_ALL_NODES_COUNT]
@ BG_AB_OBJECT_REGENBUFF_BLACKSMITH
@ BG_AB_OBJECT_REGENBUFF_FARM
@ BG_AB_OBJECT_BANNER_HORDE
@ BG_AB_OBJECT_SPEEDBUFF_GOLD_MINE
@ BG_AB_OBJECT_REGENBUFF_LUMBER_MILL
@ BG_AB_OBJECT_BANNER_ALLY
@ BG_AB_OBJECT_AURA_HORDE
@ BG_AB_OBJECT_SPEEDBUFF_FARM
@ BG_AB_OBJECT_BERSERKBUFF_BLACKSMITH
@ BG_AB_OBJECT_SPEEDBUFF_BLACKSMITH
@ BG_AB_OBJECT_BERSERKBUFF_FARM
@ BG_AB_OBJECT_REGENBUFF_GOLD_MINE
@ BG_AB_OBJECT_BANNER_NEUTRAL
@ BG_AB_OBJECT_SPEEDBUFF_LUMBER_MILL
@ BG_AB_OBJECT_BANNER_CONT_H
@ BG_AB_OBJECT_BERSERKBUFF_STABLES
@ BG_AB_OBJECT_BERSERKBUFF_GOLD_MINE
@ BG_AB_OBJECT_SPEEDBUFF_STABLES
@ BG_AB_OBJECT_BANNER_CONT_A
@ BG_AB_OBJECT_BERSERKBUFF_LUMBER_MILL
@ BG_AB_OBJECT_REGENBUFF_STABLES
@ BG_AB_OBJECT_AURA_CONTESTED
const float BG_AB_BuffPositions[BG_AB_DYNAMIC_NODES_COUNT][4]
@ BG_AB_TEXT_ALLIANCE_NEAR_VICTORY
@ BG_AB_TEXT_HORDE_NEAR_VICTORY
@ BG_AB_NODE_TYPE_OCCUPIED
@ BG_AB_NODE_STATUS_ALLY_CONTESTED
@ BG_AB_NODE_STATUS_ALLY_OCCUPIED
@ BG_AB_NODE_STATUS_HORDE_OCCUPIED
@ BG_AB_NODE_STATUS_HORDE_CONTESTED
@ BG_AB_NODE_TYPE_NEUTRAL
@ BG_AB_NODE_TYPE_CONTESTED
const uint32 BG_AB_TickIntervals[6]
ABNodeInfo const ABNodes[BG_AB_DYNAMIC_NODES_COUNT]
const float BG_AB_DoorPositions[2][8]
const uint32 BG_AB_GraveyardIds[BG_AB_ALL_NODES_COUNT]
@ BG_AB_OBJECTID_BANNER_CONT_A
@ BG_AB_OBJECTID_BANNER_A
@ BG_AB_OBJECTID_BANNER_H
@ BG_AB_OBJECTID_BANNER_CONT_H
@ BG_AB_DYNAMIC_NODES_COUNT
const uint32 BG_AB_OP_NODEICONS[5]
@ BG_AB_OBJECTID_NODE_BANNER_3
@ BG_AB_OBJECTID_NODE_BANNER_4
@ BG_AB_OBJECTID_NODE_BANNER_2
@ BG_AB_OBJECTID_NODE_BANNER_1
@ BG_AB_OBJECTID_NODE_BANNER_0
@ BG_AB_FLAG_CAPTURING_TIME
@ AB_OBJECTIVE_ASSAULT_BASE
@ AB_OBJECTIVE_DEFEND_BASE
const uint32 BG_AB_OP_NODESTATES[5]
@ BG_AB_OP_RESOURCES_ALLY
@ BG_AB_OP_OCCUPIED_BASES_HORDE
@ BG_AB_OP_RESOURCES_HORDE
@ BG_AB_OP_RESOURCES_WARNING
@ BG_AB_OP_OCCUPIED_BASES_ALLY
@ BG_AB_WARNING_NEAR_VICTORY_SCORE
@ BG_AB_SOUND_NEAR_VICTORY_ALLIANCE
@ BG_AB_SOUND_NODE_CAPTURED_HORDE
@ BG_AB_SOUND_NODE_ASSAULTED_ALLIANCE
@ BG_AB_SOUND_NODE_ASSAULTED_HORDE
@ BG_AB_SOUND_NEAR_VICTORY_HORDE
@ BG_AB_SOUND_NODE_CLAIMED
@ BG_AB_SOUND_NODE_CAPTURED_ALLIANCE
uint8 constexpr PVP_TEAMS_COUNT
void FillInitialWorldStates(WorldPackets::WorldState::InitWorldStates &packet) override
WorldSafeLocsEntry const * GetClosestGraveyard(Player *player) override
void _NodeOccupied(uint8 node, Team team)
bool m_TeamScores500Disadvantage[PVP_TEAMS_COUNT]
bool IsAllNodesControlledByTeam(uint32 team) const override
void StartingEventOpenDoors() override
void StartingEventCloseDoors() override
void EventPlayerClickedOnFlag(Player *source, GameObject *target_obj) override
uint32 GetPrematureWinner() override
bool SetupBattleground() override
void RemovePlayer(Player *player, ObjectGuid guid, uint32 team) override
void _SendNodeUpdate(uint8 node)
uint32 m_NodeTimers[BG_AB_DYNAMIC_NODES_COUNT]
uint8 m_Nodes[BG_AB_DYNAMIC_NODES_COUNT]
uint32 m_HonorScoreTics[PVP_TEAMS_COUNT]
bool CheckAchievementCriteriaMeet(uint32, Player const *, Unit const *=nullptr, uint32=0) override
void HandleAreaTrigger(Player *Source, uint32 Trigger) override
bool m_IsInformedNearVictory
void _CreateBanner(uint8 node, uint8 type, uint8 teamIndex, bool delay)
void _DelBanner(uint8 node, uint8 type, uint8 teamIndex)
uint32 m_ReputationScoreTics[PVP_TEAMS_COUNT]
void PostUpdateImpl(uint32 diff) override
Post-update hook.
uint8 m_prevNodes[BG_AB_DYNAMIC_NODES_COUNT]
bool UpdatePlayerScore(Player *player, uint32 type, uint32 value, bool doAddHonor=true) override
uint32 m_lastTick[PVP_TEAMS_COUNT]
void _NodeDeOccupied(uint8 node)
void AddPlayer(Player *player) override
BG_AB_BannerTimer m_BannerTimers[BG_AB_DYNAMIC_NODES_COUNT]
void EndBattleground(uint32 winner) override
uint32 TextAllianceClaims
uint32 TextAllianceAssaulted
uint32 TextHordeAssaulted
uint32 TextAllianceDefended
void UpdateScore(uint32 type, uint32 value) override
uint32 GetAttr2() const override
void BuildObjectivesBlock(WorldPackets::Battleground::PVPLogData_Player &playerData) override
BattlegroundABScore(ObjectGuid playerGuid)
uint32 GetAttr1() const override
virtual void UpdateScore(uint32 type, uint32 value)