18#ifndef BATTLEFIELD_TB_
19#define BATTLEFIELD_TB_
223 { -930.4685f, 1020.178f, 121.5658f, 0.1537642f },
224 { -831.5157f, 975.816f, 121.5255f, 5.022717f },
225 { -837.0773f, 943.9008f, 121.5055f, 5.461119f },
226 { -839.1646f, 1024.046f, 121.5505f, 4.782219f },
227 { -881.283f, 1033.25f, 121.5243f, 0.0f },
228 { -883.038f, 924.955f, 121.5243f, 0.0f },
229 { -883.913f, 978.059f, 121.5243f, 3.388291f },
230 { -883.6224f, 950.8459f, 121.5122f, 0.8307042f },
231 { -895.181f, 1015.2f, 121.5505f, 2.652318f },
232 { -943.4023f, 961.7462f, 121.5658f, 5.258394f },
233 { -958.649f, 926.877f, 121.5243f, 0.0f },
234 { -959.743f, 1029.09f, 121.5243f, 0.0f },
235 { -964.6652f, 978.5373f, 121.5257f, 0.02025719f },
236 { -1407.14f, 721.42f, 123.5033f, 0.0f },
237 { -1414.46f, 671.66f, 123.5043f, 0.0f },
238 { -1431.7f, 623.073f, 123.5043f, 0.0f },
239 { -1434.162f, 655.8566f, 123.5051f, 4.84886f },
240 { -1445.19f, 739.729f, 123.5457f, 5.767949f },
241 { -1460.954f, 718.418f, 123.6453f, 5.178094f },
242 { -1462.48f, 694.378f, 123.5463f, 0.3441857f },
243 { -1372.23f, 683.707f, 123.5043f, 0.0f },
244 { -1479.46f, 635.799f, 123.5043f, 0.0f },
245 { -1491.259f, 734.5692f, 123.4525f, 1.529741f },
246 { -1509.024f, 688.8625f, 123.5463f, 6.243045f },
247 { -1419.311f, 1310.25f, 133.8389f, 0.0f },
248 { -1444.24f, 1266.439f, 133.8229f, 0.0f },
249 { -1450.569f, 1337.351f, 133.914f, 0.0f },
250 { -1479.819f, 1331.34f, 153.2f, 0.0f },
251 { -1497.62f, 1276.429f, 133.6676f, 3.147845f },
252 { -1498.37f, 1379.689f, 133.827f, 0.0f },
253 { -1499.97f, 1232.87f, 133.8239f, 0.0f },
254 { -1505.7f, 1261.99f, 133.7089f, 0.6167698f },
255 { -1531.84f, 1316.569f, 153.2f, 0.0f },
256 { -1533.141f, 1267.66f, 133.836f, 0.0f },
257 { -1547.59f, 1300.21f, 133.7094f, 1.908187f },
258 { -1563.3f, 1325.79f, 133.6673f, 0.0f },
275 { -1272.951f, 964.8854f, 119.5782f, 3.193953f },
276 { -1274.394f, 997.6511f, 119.5743f, 3.193953f },
277 { -1248.226f, 1018.476f, 119.8113f, 1.605703f },
278 { -1218.948f, 943.5695f, 119.5994f, 4.625123f },
279 { -1195.417f, 965.5364f, 119.8113f, 0.0f },
280 { -1220.832f, 1018.497f, 119.8113f, 1.605703f },
281 { -1196.151f, 999.5121f, 119.5966f, 0.0f },
282 { -1249.304f, 942.9063f, 119.5782f, 4.625123f },
389 { { -896.96f, 979.497f, 121.441f, 3.124123f },
TB_BASE_IRONCLAD_GARRISON, {
GO_CAPTURE_POINT_NORTH_A_DEFENDING,
GO_CAPTURE_POINT_NORTH_H_DEFENDING }, {
WS_BATTLEFIELD_TB_GARRISON_ALLIANCE_CONTROLLED,
WS_BATTLEFIELD_TB_GARRISON_HORDE_CONTROLLED }, {
WS_BATTLEFIELD_TB_GARRISON_ALLIANCE_CAPTURING,
WS_BATTLEFIELD_TB_GARRISON_HORDE_CAPTURING },
WS_BATTLEFIELD_TB_GARRISON_NEUTRAL, {
TB_TEXT_GARRISON_ALLIANCE_GAINED,
TB_TEXT_GARRISON_HORDE_GAINED }, {
TB_TEXT_GARRISON_ALLIANCE_LOST,
TB_TEXT_GARRISON_HORDE_LOST } },
390 { { -1492.34f, 1309.87f, 152.961f, 5.462882f },
TB_BASE_WARDENS_VIGIL, {
GO_CAPTURE_POINT_WEST_A_DEFENDING,
GO_CAPTURE_POINT_WEST_H_DEFENDING }, {
WS_BATTLEFIELD_TB_VIGIL_ALLIANCE_CONTROLLED,
WS_BATTLEFIELD_TB_VIGIL_HORDE_CONTROLLED }, {
WS_BATTLEFIELD_TB_VIGIL_ALLIANCE_CAPTURING,
WS_BATTLEFIELD_TB_VIGIL_HORDE_CAPTURING },
WS_BATTLEFIELD_TB_VIGIL_NEUTRAL, {
TB_TEXT_VIGIL_ALLIANCE_GAINED,
TB_TEXT_VIGIL_HORDE_GAINED }, {
TB_TEXT_VIGIL_ALLIANCE_LOST,
TB_TEXT_VIGIL_HORDE_LOST } },
391 { { -1437.f, 685.556f, 123.421f, 0.802851f },
TB_BASE_SLAGWORKS, {
GO_CAPTURE_POINT_EAST_A_DEFENDING,
GO_CAPTURE_POINT_EAST_H_DEFENDING }, {
WS_BATTLEFIELD_TB_SLAGWORKS_ALLIANCE_CONTROLLED,
WS_BATTLEFIELD_TB_SLAGWORKS_HORDE_CONTROLLED }, {
WS_BATTLEFIELD_TB_SLAGWORKS_ALLIANCE_CAPTURING,
WS_BATTLEFIELD_TB_SLAGWORKS_HORDE_CAPTURING },
WS_BATTLEFIELD_TB_SLAGWORKS_NEUTRAL, {
TB_TEXT_SLAGWORKS_ALLIANCE_GAINED,
TB_TEXT_SLAGWORKS_HORDE_GAINED }, {
TB_TEXT_SLAGWORKS_ALLIANCE_LOST,
TB_TEXT_SLAGWORKS_HORDE_LOST } },
416 { { -1013.279f, 529.5382f, 146.427f, 1.97222f },
GO_EAST_SPIRE,
TB_TEXT_EAST_SPIRE_DAMAGED,
TB_TEXT_EAST_SPIRE_DESTROYED, {
WS_BATTLEFIELD_TB_EAST_INTACT_ALLIANCE,
WS_BATTLEFIELD_TB_EAST_INTACT_HORDE }, {
WS_BATTLEFIELD_TB_EAST_DAMAGED_ALLIANCE,
WS_BATTLEFIELD_TB_EAST_DAMAGED_HORDE },
WS_BATTLEFIELD_TB_EAST_DESTROYED_NEUTRAL },
417 { { -1618.91f, 954.5417f, 168.601f, 0.06981169f },
GO_SOUTH_SPIRE,
TB_TEXT_SOUTH_SPIRE_DAMAGED,
TB_TEXT_SOUTH_SPIRE_DESTROYED, {
WS_BATTLEFIELD_TB_SOUTH_INTACT_ALLIANCE,
WS_BATTLEFIELD_TB_SOUTH_INTACT_HORDE }, {
WS_BATTLEFIELD_TB_SOUTH_DAMAGED_ALLIANCE,
WS_BATTLEFIELD_TB_SOUTH_DAMAGED_HORDE },
WS_BATTLEFIELD_TB_SOUTH_DESTROYED_NEUTRAL },
418 { { -950.4097f, 1469.101f, 176.596f, 4.180066f },
GO_WEST_SPIRE,
TB_TEXT_WEST_SPIRE_DAMAGED,
TB_TEXT_WEST_SPIRE_DESTROYED, {
WS_BATTLEFIELD_TB_WEST_INTACT_ALLIANCE,
WS_BATTLEFIELD_TB_WEST_INTACT_HORDE }, {
WS_BATTLEFIELD_TB_WEST_DAMAGED_ALLIANCE,
WS_BATTLEFIELD_TB_WEST_DAMAGED_HORDE },
WS_BATTLEFIELD_TB_WEST_DESTROYED_NEUTRAL },
430 { -1106.57f, 1196.34f, 121.8023f, 0.4014257f },
431 { -1108.52f, 1111.33f, 121.2783f, 1.37881f },
432 { -1213.01f, 782.236f, 121.4473f, 1.675516f },
433 { -1258.26f, 780.497f, 122.4413f, 1.48353f },
434 { -1438.3f, 1095.24f, 121.1363f, 5.288348f },
435 { -1442.3f, 1141.07f, 123.6323f, 4.24115f },
450 { -987.6129f, 963.9861f, 121.4506f, 2.617989f },
451 { -988.118f, 993.0087f, 121.6746f, 3.612838f },
452 { -1195.941f, 964.342f, 119.728f, 0.8901166f },
453 { -1196.892f, 1000.957f, 119.8211f, 5.445428f },
454 { -1198.236f, 1081.898f, 120.2007f, 1.06465f },
455 { -1089.337f, 1157.161f, 120.2749f, 3.036838f },
456 { -1090.033f, 1143.476f, 120.2656f, 3.036838f },
457 { -1217.495f, 944.0261f, 119.4949f, 1.989672f },
458 { -1219.226f, 1018.168f, 119.728f, 2.251473f },
459 { -1210.319f, 1081.885f, 120.2396f, 2.007128f },
460 { -1226.903f, 786.7656f, 119.4592f, 1.553341f },
461 { -1228.464f, 979.7379f, 119.3814f, 0.03490625f },
462 { -1239.668f, 786.7899f, 119.4271f, 1.553341f },
463 { -1250.262f, 1017.887f, 119.728f, 0.8377575f },
464 { -1250.693f, 943.4496f, 119.4949f, 5.305802f },
465 { -1272.29f, 963.5208f, 119.4949f, 2.617989f },
466 { -1273.997f, 998.7934f, 119.4884f, 3.665196f },
467 { -1378.363f, 725.0087f, 124.2978f, 1.326448f },
468 { -1401.97f, 747.0972f, 123.2302f, 0.2443456f },
469 { -1421.953f, 1263.559f, 133.6141f, 5.009095f },
470 { -1446.497f, 1238.964f, 133.7601f, 5.969027f },
471 { -1488.908f, 1118.747f, 124.9255f, 6.248279f },
472 { -1488.533f, 1131.608f, 124.6363f, 6.248279f },
487 { -598.7656f, 1377.974f, 21.91898f, 0.0f },
488 { -1257.729f, 1060.365f, 106.9938f, 5.462882f },
@ NPC_HORDE_DRUID_INFANTRY
@ NPC_HORDE_MAGE_INFANTRY
@ NPC_ALLIANCE_HUNTER_INFANTRY
@ NPC_ALLIANCE_PALADIN_INFANTRY
@ NPC_HORDE_SHAMAN_INFANTRY
@ NPC_ALLIANCE_MAGE_INFANTRY
@ NPC_ALLIANCE_WARRIOR_INFANTRY
@ NPC_HORDE_ROGUE_INFANTRY
uint8 const TB_BANNER_MAX
TBCapturePointSpawnData const TBCapturePoints[TB_BASE_COUNT]
@ GO_BARADINS_WARDEN_BANNER
@ GO_HELLSCREAM_REACH_BANNER
int8 const TB_ABANDONED_SIEGE_ENGINE_COUNT
TBQuestAreaInfo const TBQuestAreas[CELLBLOCK_MAX]
Position const GuardNPCSpawns[TB_GUARDS_MAX]
TBGraveyardInfo const TBGraveyards[BATTLEFIELD_TB_GRAVEYARD_MAX]
@ NPC_ABANDONED_SIEGE_ENGINE
uint8 const TB_GUARDS_MAX
Position const TBAbandonedSiegeEngineSpawnData[TB_ABANDONED_SIEGE_ENGINE_COUNT]
@ TB_TEXT_PREPARATIONS_IN_1_MIN
@ TB_TEXT_FORTRESS_DEFEND_ALLIANCE
@ TB_TEXT_VIGIL_HORDE_LOST
@ TB_TEXT_GARRISON_ALLIANCE_LOST
@ TB_TEXT_EAST_SPIRE_DAMAGED
@ TB_TEXT_PREPARATIONS_IN_2_MIN
@ TB_TEXT_SLAGWORKS_ALLIANCE_LOST
@ TB_TEXT_EAST_SPIRE_DESTROYED
@ TB_TEXT_SLAGWORKS_HORDE_LOST
@ TB_TEXT_PREPARATIONS_IN_5_MIN
@ TB_TEXT_FORTRESS_CAPTURE_ALLIANCE
@ TB_TEXT_SLAGWORKS_ALLIANCE_GAINED
@ TB_TEXT_GARRISON_ALLIANCE_GAINED
@ TB_TEXT_VIGIL_ALLIANCE_GAINED
@ TB_TEXT_VIGIL_HORDE_GAINED
@ TB_TEXT_SOUTH_SPIRE_DAMAGED
@ TB_TEXT_WEST_SPIRE_DESTROYED
@ TB_TEXT_GARRISON_HORDE_GAINED
@ TB_TEXT_VEHICLE_OUTSIDE_WARNING
@ TB_TEXT_SLAGWORKS_HORDE_GAINED
@ TB_TEXT_FORTRESS_CAPTURE_HORDE
@ TB_TEXT_WEST_SPIRE_DAMAGED
@ TB_TEXT_FORTRESS_DEFEND_HORDE
@ TB_TEXT_VIGIL_ALLIANCE_LOST
@ TB_TEXT_SOUTH_SPIRE_DESTROYED
@ TB_TEXT_GARRISON_HORDE_LOST
Position const RandomQuestgiverPos
TBFactionNPCInfo const FactionNPCSpawns[TB_FACTION_NPC_MAX]
uint32 const RandomQuestgivers[PVP_TEAMS_COUNT][CELLBLOCK_MAX]
TBTowerInfo const TBTowers[TB_TOWERS_COUNT]
uint8 const TB_PORTAL_MAX
@ TB_GO_ARTKIT_FLAG_HORDE
@ TB_GO_ARTKIT_FLAG_ALLIANCE
@ EVENT_COUNT_CAPTURED_BASE
uint32 const TBBannerEntry[PVP_TEAMS_COUNT]
Position const TBBanners[TB_BANNER_MAX]
@ SPELL_REWARD_TOWER_DESTROYED
@ SPELL_TOWER_RANGE_FINDER
@ SPELL_TOWER_RANGE_FINDER_PERIODIC
@ SPELL_REWARD_TOWER_INTACT
@ SPELL_REWARD_TOWER_DAMAGED
@ SPELL_SIEGE_CANNON_AURA
@ SPELL_DEPLOY_SIEGE_MODE
@ SPELL_TOWER_ATTACK_BONUS
@ SPELL_TB_SPIRITUAL_IMMUNITY
@ SPELL_RIDE_TOL_BARAD_VEHICLE
@ SPELL_REWARD_VICTORY_ALLIANCE
@ SPELL_TB_CURSED_DEPTHS_TELEPORT
@ SPELL_THICK_LAYER_OF_RUST
@ SPELL_TB_D_BLOCK_TELEPORT
@ SPELL_TB_THE_HOLE_TELEPORT
@ SPELL_REWARD_VICTORY_HORDE
Position const TolBaradDebugAnnouncerPos
@ CELLBLOCK_CURSED_DEPTHS
@ GO_DUSTY_PRISON_JOURNAL
@ GO_CRATE_OF_CELLBLOCK_RATIONS
Position const TBQuestInfantrySpawnData[TB_QUEST_INFANTRY_MAX]
Position const TBPortals[TB_PORTAL_MAX]
@ BATTLEFIELD_TB_DATA_TOWERS_INTACT
@ BATTLEFIELD_TB_DATA_MAX
const uint32 TBFactions[PVP_TEAMS_COUNT]
@ NPC_DRILLMASTER_RAZGOTH
@ NPC_2ND_LIEUTENANT_WANSWORTH
@ NPC_STAFF_SERGEANT_LAZGAR
uint8 const TB_QUEST_INFANTRY_MAX
@ TB_GY_IRONCLAD_GARRISON
@ BATTLEFIELD_TB_GRAVEYARD_MAX
uint8 const TB_FACTION_NPC_MAX
uint32 const TB_QUEST_INFANTRY[PVP_TEAMS_COUNT][4]
@ TB_BASE_IRONCLAD_GARRISON
@ GO_CAPTURE_POINT_NORTH_A_DEFENDING
@ GO_CAPTURE_POINT_EAST_H_DEFENDING
@ GO_CAPTURE_POINT_NORTH_H_DEFENDING
@ GO_CAPTURE_POINT_WEST_A_DEFENDING
@ GO_TB_INSTANCE_VISUAL_3
@ GO_TB_INSTANCE_VISUAL_4
@ GO_TB_INSTANCE_VISUAL_2
@ GO_CAPTURE_POINT_WEST_H_DEFENDING
@ GO_CAPTURE_POINT_EAST_A_DEFENDING
@ GO_TB_INSTANCE_VISUAL_1
@ NPC_TOLBARAD_JAILED_WRATHGUARD
@ NPC_TB_GY_SPIRIT_EAST_SPIRE_H
@ NPC_TB_GY_SPIRIT_IRONCLAD_GARRISON_H
@ NPC_TOLBARAD_EXILED_MAGE
@ NPC_TB_GY_SPIRIT_SOUTH_SPIRE_H
@ NPC_TB_GY_SPIRIT_WARDENS_VIGIL_H
@ NPC_TB_GY_SPIRIT_WEST_SPIRE_H
@ NPC_TOLBARAD_ARCHMAGE_GALUS
@ NPC_TOLBARAD_IMPRISONED_IMP
@ NPC_TOLBARAD_CELL_WATCHER
@ NPC_TB_GY_SPIRIT_BARADIN_HOLD_H
@ NPC_TB_GY_SPIRIT_EAST_SPIRE_A
@ NPC_TOLBARAD_WARDEN_SILVA
@ NPC_TOLBARAD_IMPRISONED_WORKER
@ NPC_TOLBARAD_GHASTLY_CONVICT
@ NPC_TOLBARAD_WARDEN_GUARD
@ NPC_TOLBARAD_CELLBLOCK_OOZE
@ NPC_TB_GY_SPIRIT_SLAGWORKS_H
@ NPC_TB_GY_SPIRIT_SOUTH_SPIRE_A
@ NPC_TB_GY_SPIRIT_SLAGWORKS_A
@ NPC_TOWER_CANNON_TARGET
@ NPC_TOLBARAD_SHIVARRA_DESTROYER
@ NPC_TB_GY_SPIRIT_WARDENS_VIGIL_A
@ NPC_TB_GY_SPIRIT_IRONCLAD_GARRISON_A
@ NPC_TOLBARAD_CAPTIVE_SPIRIT
@ NPC_TB_GY_SPIRIT_BARADIN_HOLD_A
@ NPC_SIEGE_ENGINE_TURRET
@ NPC_TB_GY_SPIRIT_WEST_SPIRE_A
std::set< ObjectGuid > GuidSet
uint8 constexpr PVP_TEAMS_COUNT
@ WS_BATTLEFIELD_TB_SLAGWORKS_NEUTRAL
@ WS_BATTLEFIELD_TB_EAST_INTACT_ALLIANCE
@ WS_BATTLEFIELD_TB_SLAGWORKS_HORDE_CAPTURING
@ WS_BATTLEFIELD_TB_WEST_DESTROYED_NEUTRAL
@ WS_BATTLEFIELD_TB_VIGIL_HORDE_CONTROLLED
@ WS_BATTLEFIELD_TB_GARRISON_HORDE_CAPTURING
@ WS_BATTLEFIELD_TB_SLAGWORKS_ALLIANCE_CONTROLLED
@ WS_BATTLEFIELD_TB_VIGIL_NEUTRAL
@ WS_BATTLEFIELD_TB_WEST_INTACT_ALLIANCE
@ WS_BATTLEFIELD_TB_VIGIL_ALLIANCE_CAPTURING
@ WS_BATTLEFIELD_TB_WEST_DAMAGED_ALLIANCE
@ WS_BATTLEFIELD_TB_SLAGWORKS_ALLIANCE_CAPTURING
@ WS_BATTLEFIELD_TB_SOUTH_DAMAGED_HORDE
@ WS_BATTLEFIELD_TB_WEST_DAMAGED_HORDE
@ WS_BATTLEFIELD_TB_WEST_INTACT_HORDE
@ WS_BATTLEFIELD_TB_SOUTH_DAMAGED_ALLIANCE
@ WS_BATTLEFIELD_TB_VIGIL_ALLIANCE_CONTROLLED
@ WS_BATTLEFIELD_TB_GARRISON_ALLIANCE_CONTROLLED
@ WS_BATTLEFIELD_TB_SOUTH_INTACT_HORDE
@ WS_BATTLEFIELD_TB_EAST_DESTROYED_NEUTRAL
@ WS_BATTLEFIELD_TB_SOUTH_DESTROYED_NEUTRAL
@ WS_BATTLEFIELD_TB_EAST_DAMAGED_HORDE
@ WS_BATTLEFIELD_TB_GARRISON_NEUTRAL
@ WS_BATTLEFIELD_TB_VIGIL_HORDE_CAPTURING
@ WS_BATTLEFIELD_TB_SLAGWORKS_HORDE_CONTROLLED
@ WS_BATTLEFIELD_TB_GARRISON_HORDE_CONTROLLED
@ WS_BATTLEFIELD_TB_EAST_DAMAGED_ALLIANCE
@ WS_BATTLEFIELD_TB_EAST_INTACT_HORDE
@ WS_BATTLEFIELD_TB_SOUTH_INTACT_ALLIANCE
@ WS_BATTLEFIELD_TB_GARRISON_ALLIANCE_CAPTURING
void OnPlayerLeaveWar(Player *player) override
Called when a player leave the battle.
void RemoveAurasFromPlayer(Player *player)
void OnBattleEnd(bool endByTimer) override
Called at the end of battle.
bool Update(uint32 diff) override
Called every time for update bf data and time.
void ProcessEvent(WorldObject *obj, uint32 eventId, WorldObject *invoker) override
void OnBattleStart() override
Called on start.
void TowerDestroyed(TBTowerId tbTowerId)
void OnPlayerJoinWar(Player *player) override
Called when a player accept to join the battle.
ObjectGuid m_gateCursedDepthsGUID
bool SetupBattlefield() override
Call this to init the Battlefield.
void HandleKill(Player *killer, Unit *victim) override
Called when a Unit is kill in battlefield zone.
void OnStartGrouping() override
Called x minutes before battle start when player in zone are invite to join queue.
GuidSet BattleInactiveNPCs
void OnPlayerEnterZone(Player *player) override
Called when a player enter in battlefield zone.
void OnGameObjectCreate(GameObject *go) override
void OnCreatureCreate(Creature *creature) override
uint32 m_updateObjectsTimer
void UpdateCapturedBaseCount()
ObjectGuid m_gateDBlockGUID
void TowerDamaged(TBTowerId tbTowerId)
bool updatedNPCAndObjects
void OnPlayerLeaveZone(Player *player) override
Called when a player leave battlefield zone.
void CreateCapturePoints()
GuidSet BattleInactiveGOs
void PromotePlayer(Player *killer)
ObjectGuid m_gateToTheHoleGUID
void UpdateNPCsAndGameObjects()
Battlefield(Map *map)
Constructor.
uint32 _worldstateHordeCapturing
uint32 _textIdAllianceLost
uint32 _worldstateHordeControlled
void HandleContestedEventAlliance(GameObject *controlZone) override
void HandleNeutralEventHorde(GameObject *controlZone) override
void HandleContestedEventHorde(GameObject *controlZone) override
void HandleNeutralEvent(GameObject *controlZone) override
void HandleNeutralEventAlliance(GameObject *controlZone) override
void HandleProgressEventAlliance(GameObject *controlZone) override
uint32 _worldstateAllianceCapturing
uint32 _worldstateAllianceControlled
TolBaradCapturePoint(BattlefieldTB *battlefield, TBCapturePointSpawnData const &data)
uint32 _textIdAllianceCaptured
uint32 GetWorldStateHordeControlled() const
uint32 _textIdHordeCaptured
uint32 _worldstateNeutral
void HandleProgressEventHorde(GameObject *controlZone) override
uint32 GetWorldStateAllianceControlled() const
uint32 spiritEntry[PVP_TEAMS_COUNT]
uint32 wsDamaged[PVP_TEAMS_COUNT]
uint32 wsIntact[PVP_TEAMS_COUNT]