TrinityCore
Loading...
Searching...
No Matches
BattlegroundSA.h
Go to the documentation of this file.
1/*
2 * This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
3 *
4 * This program is free software; you can redistribute it and/or modify it
5 * under the terms of the GNU General Public License as published by the
6 * Free Software Foundation; either version 2 of the License, or (at your
7 * option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12 * more details.
13 *
14 * You should have received a copy of the GNU General Public License along
15 * with this program. If not, see <http://www.gnu.org/licenses/>.
16 */
17
18#ifndef __BATTLEGROUNDSA_H
19#define __BATTLEGROUNDSA_H
20
21#include "Battleground.h"
22#include "BattlegroundScore.h"
23#include "Object.h"
24
25#define BG_SA_FLAG_AMOUNT 3
26#define BG_SA_DEMOLISHER_AMOUNT 4
27
37
44
67
77
90
100
107
121
151
180
206
214
243
245{
246 // Cannons
247 { 1436.429f, 110.05f, 41.407f, 5.4f },
248 { 1404.9023f, 84.758f, 41.183f, 5.46f },
249 { 1068.693f, -86.951f, 93.81f, 0.02f },
250 { 1068.83f, -127.56f, 96.45f, 0.0912f },
251 { 1422.115f, -196.433f, 42.1825f, 1.0222f },
252 { 1454.887f, -220.454f, 41.956f, 0.9627f },
253 { 1232.345f, -187.517f, 66.945f, 0.45f },
254 { 1249.634f, -224.189f, 66.72f, 0.635f },
255 { 1236.213f, 92.287f, 64.965f, 5.751f },
256 { 1215.11f, 57.772f, 64.739f, 5.78f },
257 // Demolishers
258 { 1611.597656f, -117.270073f, 8.719355f, 2.513274f},
259 { 1575.562500f, -158.421875f, 5.024450f, 2.129302f},
260 { 1618.047729f, 61.424641f, 7.248210f, 3.979351f},
261 { 1575.103149f, 98.873344f, 2.830360f, 3.752458f},
262 // Demolishers 2
263 { 1371.055786f, -317.071136f, 35.007359f, 1.947460f},
264 { 1424.034912f, -260.195190f, 31.084425f, 2.820013f},
265 { 1353.139893f, 223.745438f, 35.265411f, 4.343684f},
266 { 1404.809570f, 197.027237f, 32.046032f, 3.605401f},
267 // Npcs
268 { 1348.644165f, -298.786469f, 31.080130f, 1.710423f},
269 { 1358.191040f, 195.527786f, 31.018187f, 4.171337f},
270 { 841.921f, -134.194f, 196.838f, 6.23082f }
271};
272
303
305{
306 { 1411.57f, 108.163f, 28.692f, 5.441f },
307 { 1055.452f, -108.1f, 82.134f, 0.034f },
308 { 1431.3413f, -219.437f, 30.893f, 0.9736f },
309 { 1227.667f, -212.555f, 55.372f, 0.5023f },
310 { 1214.681f, 81.21f, 53.413f, 5.745f },
311 { 878.555f, -108.2f, 117.845f, 0.0f },
312 { 836.5f, -108.8f, 120.219f, 0.0f },
313 // Portal
314 {1468.380005f, -225.798996f, 30.896200f, 0.0f}, //blue
315 {1394.270020f, 72.551399f, 31.054300f, 0.0f}, //green
316 {1065.260010f, -89.79501f, 81.073402f, 0.0f}, //yellow
317 {1216.069946f, 47.904301f, 54.278198f, 0.0f}, //purple
318 {1255.569946f, -233.548996f, 56.43699f, 0.0f}, //red
319 // Ships
320 { 2679.696777f, -826.891235f, 3.712860f, 5.78367f}, //rot2 1 rot3 0.0002f
321 { 2574.003662f, 981.261475f, 2.603424f, 0.807696f},
322 // Sigils
323 { 1414.054f, 106.72f, 41.442f, 5.441f },
324 { 1060.63f, -107.8f, 94.7f, 0.034f },
325 { 1433.383f, -216.4f, 43.642f, 0.9736f },
326 { 1230.75f, -210.724f, 67.611f, 0.5023f },
327 { 1217.8f, 79.532f, 66.58f, 5.745f },
328 // Flagpoles
329 { 1215.114258f, -65.711861f, 70.084267f, -3.124123f},
330 {1338.863892f, -153.336533f, 30.895121f, -2.530723f},
331 {1309.124268f, 9.410645f, 30.893402f, -1.623156f},
332 // Flags
333 { 1215.108032f, -65.715767f, 70.084267f, -3.124123f},
334 { 1338.859253f, -153.327316f, 30.895077f, -2.530723f},
335 { 1309.192017f, 9.416233f, 30.893402f, 1.518436f},
336 // Bombs
337 {1333.45f, 211.354f, 31.0538f, 5.03666f},
338 {1334.29f, 209.582f, 31.0532f, 1.28088f},
339 {1332.72f, 210.049f, 31.0532f, 1.28088f},
340 {1334.28f, 210.78f, 31.0538f, 3.85856f},
341 {1332.64f, 211.39f, 31.0532f, 1.29266f},
342 {1371.41f, 194.028f, 31.5107f, 0.753095f},
343 {1372.39f, 194.951f, 31.4679f, 0.753095f},
344 {1371.58f, 196.942f, 30.9349f, 1.01777f},
345 {1370.43f, 196.614f, 30.9349f, 0.957299f},
346 {1369.46f, 196.877f, 30.9351f, 2.45348f},
347 {1370.35f, 197.361f, 30.9349f, 1.08689f},
348 {1369.47f, 197.941f, 30.9349f, 0.984787f},
349 {1592.49f, 47.5969f, 7.52271f, 4.63218f},
350 {1593.91f, 47.8036f, 7.65856f, 4.63218f},
351 {1593.13f, 46.8106f, 7.54073f, 4.63218f},
352 {1589.22f, 36.3616f, 7.45975f, 4.64396f},
353 {1588.24f, 35.5842f, 7.55613f, 4.79564f},
354 {1588.14f, 36.7611f, 7.49675f, 4.79564f},
355 {1595.74f, 35.5278f, 7.46602f, 4.90246f},
356 {1596, 36.6475f, 7.47991f, 4.90246f},
357 {1597.03f, 36.2356f, 7.48631f, 4.90246f},
358 {1597.93f, 37.1214f, 7.51725f, 4.90246f},
359 {1598.16f, 35.888f, 7.50018f, 4.90246f},
360 {1579.6f, -98.0917f, 8.48478f, 1.37996f},
361 {1581.2f, -98.401f, 8.47483f, 1.37996f},
362 {1580.38f, -98.9556f, 8.4772f, 1.38781f},
363 {1585.68f, -104.966f, 8.88551f, 0.493246f},
364 {1586.15f, -106.033f, 9.10616f, 0.493246f},
365 {1584.88f, -105.394f, 8.82985f, 0.493246f},
366 {1581.87f, -100.899f, 8.46164f, 0.929142f},
367 {1581.48f, -99.4657f, 8.46926f, 0.929142f},
368 {1583.2f, -91.2291f, 8.49227f, 1.40038f},
369 {1581.94f, -91.0119f, 8.49977f, 1.40038f},
370 {1582.33f, -91.951f, 8.49353f, 1.1844f},
371 {1342.06f, -304.049f, 30.9532f, 5.59507f},
372 {1340.96f, -304.536f, 30.9458f, 1.28323f},
373 {1341.22f, -303.316f, 30.9413f, 0.486051f},
374 {1342.22f, -302.939f, 30.986f, 4.87643f},
375 {1382.16f, -287.466f, 32.3063f, 4.80968f},
376 {1381, -287.58f, 32.2805f, 4.80968f},
377 {1381.55f, -286.536f, 32.3929f, 2.84225f},
378 {1382.75f, -286.354f, 32.4099f, 1.00442f},
379 {1379.92f, -287.34f, 32.2872f, 3.81615f},
380 {1100.52f, -2.41391f, 70.2984f, 0.131054f},
381 {1099.35f, -2.13851f, 70.3375f, 4.4586f},
382 {1099.59f, -1.00329f, 70.238f, 2.49903f},
383 {1097.79f, 0.571316f, 70.159f, 4.00307f},
384 {1098.74f, -7.23252f, 70.7972f, 4.1523f},
385 {1098.46f, -5.91443f, 70.6715f, 4.1523f},
386 {1097.53f, -7.39704f, 70.7959f, 4.1523f},
387 {1097.32f, -6.64233f, 70.7424f, 4.1523f},
388 {1096.45f, -5.96664f, 70.7242f, 4.1523f},
389 {971.725f, 0.496763f, 86.8467f, 2.09233f},
390 {973.589f, 0.119518f, 86.7985f, 3.17225f},
391 {972.524f, 1.25333f, 86.8351f, 5.28497f},
392 {971.993f, 2.05668f, 86.8584f, 5.28497f},
393 {973.635f, 2.11805f, 86.8197f, 2.36722f},
394 {974.791f, 1.74679f, 86.7942f, 1.5936f},
395 {974.771f, 3.0445f, 86.8125f, 0.647199f},
396 {979.554f, 3.6037f, 86.7923f, 1.69178f},
397 {979.758f, 2.57519f, 86.7748f, 1.76639f},
398 {980.769f, 3.48904f, 86.7939f, 1.76639f},
399 {979.122f, 2.87109f, 86.7794f, 1.76639f},
400 {986.167f, 4.85363f, 86.8439f, 1.5779f},
401 {986.176f, 3.50367f, 86.8217f, 1.5779f},
402 {987.33f, 4.67389f, 86.8486f, 1.5779f},
403 {985.23f, 4.65898f, 86.8368f, 1.5779f},
404 {984.556f, 3.54097f, 86.8137f, 1.5779f},
405};
406
407/* Ships:
408 * 193182 - ally
409 * 193183 - horde
410 * 193184 - horde
411 * 193185 - ally
412 * Banners:
413 * 191308 - left one,
414 * 191306 - right one,
415 * 191310 - central,
416 * Ally ones, substract 1
417 * to get horde ones.
418 */
419
421{
422 190722,
423 190727,
424 190724,
425 190726,
426 190723,
427 192549,
428 192834,
429 192819,
430 192819,
431 192819,
432 192819,
433 192819,
434 0, // Boat
435 0, // Boat
436 192687,
437 192685,
438 192689,
439 192690,
440 192691,
441 191311,
442 191311,
443 191311,
444 191310,
445 191306,
446 191308,
447 190753
448};
449
451{
452 1732,
453 1735,
454};
455
465
467{
468 1350,
469 1349,
470 1347,
471 1346,
472 1348,
473};
474
476{
477 6.202f,
478 1.926f, // right capturable GY
479 3.917f, // left capturable GY
480 3.104f, // center, capturable
481 6.148f, // defender last GY
482};
483
492
501
502#define MAX_GATES 6
512
518
520{
521 friend class BattlegroundSA;
522
523 protected:
525
526 void UpdateScore(uint32 type, uint32 value) override
527 {
528 switch (type)
529 {
531 DemolishersDestroyed += value;
532 break;
534 GatesDestroyed += value;
535 break;
536 default:
538 break;
539 }
540 }
541
543
544 uint32 GetAttr1() const override { return DemolishersDestroyed; }
545 uint32 GetAttr2() const override { return GatesDestroyed; }
546
549};
550
553{
554 public:
557
563 void PostUpdateImpl(uint32 diff) override;
564
565 /* inherited from BattlegroundClass */
567 void AddPlayer(Player* player) override;
569 void StartingEventCloseDoors() override;
570 void StartingEventOpenDoors() override;
572 bool SetupBattleground() override;
573 void Reset() override;
577 void HandleKillUnit(Creature* creature, Player* killer) override;
579 WorldSafeLocsEntry const* GetClosestGraveyard(Player* player) override;
581 void ProcessEvent(WorldObject* /*obj*/, uint32 /*eventId*/, WorldObject* /*invoker*/ = nullptr) override;
583 void EventPlayerClickedOnFlag(Player* source, GameObject* go) override;
585 void TitanRelicActivated(Player* clicker);
586
588 GateInfo const* GetGate(uint32 entry)
589 {
590 for (uint8 i = 0; i < MAX_GATES; ++i)
591 if (Gates[i].GameObjectId == entry)
592 return &Gates[i];
593 return nullptr;
594 }
595
597 void EndBattleground(uint32 winner) override;
598
600 void RemovePlayer(Player* player, ObjectGuid guid, uint32 team) override;
601 void HandleAreaTrigger(Player* Source, uint32 Trigger) override;
602
603 /* Scorekeeping */
604
605 // Achievement: Not Even a Scratch
606 bool CheckAchievementCriteriaMeet(uint32 criteriaId, Player const* source, Unit const* target = nullptr, uint32 miscValue = 0) override;
607
608 // Control Phase Shift
609 bool IsSpellAllowed(uint32 spellId, Player const* player) const override;
610
611 private:
612
618 bool ResetObjs();
620 void StartShips();
625 void TeleportPlayers();
631 void OverrideGunFaction();
633 void DemolisherStartState(bool start);
635 bool CanInteractWithObject(uint32 objectId);
645 void DestroyGate(Player* player, GameObject* go) override;
647 void SendTime();
659 void ToggleTimer();
660
663
665 void SendTransportInit(Player* player);
667 void SendTransportsRemove(Player* player);
668
671
696 std::map<uint32/*id*/, uint32/*timer*/> DemoliserRespawnList;
697
698 // Achievement: Defense of the Ancients
700
701 // Achievement: Not Even a Scratch
703};
704#endif
BG_SA_Graveyards
@ BG_SA_DEFENDER_LAST_GY
@ BG_SA_CENTRAL_CAPTURABLE_GY
@ BG_SA_BEACH_GY
@ BG_SA_MAX_GY
@ BG_SA_LEFT_CAPTURABLE_GY
@ BG_SA_RIGHT_CAPTURABLE_GY
BG_SA_Timers
@ BG_SA_BOAT_START
@ BG_SA_WARMUPLENGTH
@ BG_SA_ROUNDLENGTH
BG_SA_GateState
@ BG_SA_GATE_DESTROYED
@ BG_SA_GATE_OK
@ BG_SA_GATE_DAMAGED
BG_SA_Status
@ BG_SA_ROUND_ONE
@ BG_SA_NOT_STARTED
@ BG_SA_ROUND_TWO
@ BG_SA_SECOND_WARMUP
@ BG_SA_BONUS_ROUND
@ BG_SA_WARMUP
BG_SA_Boat
@ BG_SA_BOAT_ONE_H
@ BG_SA_BOAT_TWO_H
@ BG_SA_BOAT_ONE_A
@ BG_SA_BOAT_TWO_A
SASpellIds
@ SPELL_TELEPORT_DEFENDER
@ SPELL_TELEPORT_ATTACKERS
@ SPELL_HORDE_CONTROL_PHASE_SHIFT
@ SPELL_REMOVE_SEAFORIUM
@ SPELL_END_OF_ROUND
@ SPELL_ALLIANCE_CONTROL_PHASE_SHIFT
const uint32 BG_SA_GYEntries[BG_SA_MAX_GY]
Position const BG_SA_ObjSpawnlocs[BG_SA_MAXOBJ]
#define BG_SA_FLAG_AMOUNT
SATexts
@ 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_ROUND_1_FINISHED
@ TEXT_SPARKLIGHT_RIGSPARK_SPAWN
@ TEXT_SOUTH_GRAVEYARD_CAPTURED_A
@ TEXT_ROUND_STARTED
@ 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
uint32 const BG_SA_ObjEntries[BG_SA_MAXOBJ+BG_SA_FLAG_AMOUNT]
SASounds
@ SOUND_DEFEAT_ALLIANCE
@ SOUND_WALL_DESTROYED_HORDE
@ SOUND_VICTORY_HORDE
@ SOUND_DEFEAT_HORDE
@ SOUND_WALL_ATTACKED_HORDE
@ SOUND_GRAVEYARD_TAKEN_ALLIANCE
@ SOUND_WALL_DESTROYED_ALLIANCE
@ SOUND_VICTORY_ALLIANCE
@ SOUND_GRAVEYARD_TAKEN_HORDE
@ SOUND_WALL_ATTACKED_ALLIANCE
SACreatureIds
@ NPC_RIGGER_SPARKLIGHT
@ NPC_WORLD_TRIGGER
@ NPC_KANRETHAD
@ NPC_GORGRIL_RIGSPARK
@ NPC_WORLD_TRIGGER_LARGE_AOI_NOT_IMMUNE_PC_NPC
@ NPC_DEMOLISHER_SA
@ NPC_INVISIBLE_STALKER
@ NPC_ANTI_PERSONNAL_CANNON
float const BG_SA_GYOrientation[BG_SA_MAX_GY]
uint32 const BG_SA_Factions[2]
SAWorldStates
@ BG_SA_ENABLE_TIMER
@ BG_SA_ANCIENT_GATEWS
@ BG_SA_LEFT_ATT_TOKEN_ALL
@ BG_SA_PURPLE_GATEWS
@ BG_SA_TIMER_SEC_TENS
@ BG_SA_RED_GATEWS
@ BG_SA_BLUE_GATEWS
@ BG_SA_CENTER_GY_ALLIANCE
@ BG_SA_RIGHT_ATT_TOKEN_HRD
@ BG_SA_LEFT_GY_ALLIANCE
@ BG_SA_RIGHT_ATT_TOKEN_ALL
@ BG_SA_YELLOW_GATEWS
@ BG_SA_LEFT_GY_HORDE
@ BG_SA_ALLIANCE_DEFENCE_TOKEN
@ BG_SA_RIGHT_GY_ALLIANCE
@ BG_SA_HORDE_DEFENCE_TOKEN
@ BG_SA_LEFT_ATT_TOKEN_HRD
@ BG_SA_CENTER_GY_HORDE
@ BG_SA_GREEN_GATEWS
@ BG_SA_RIGHT_GY_HORDE
@ BG_SA_ALLY_ATTACKS
@ BG_SA_HORDE_ATTACKS
@ BG_SA_TIMER_SEC_DECS
@ BG_SA_BONUS_TIMER
@ BG_SA_TIMER_MINS
SAGameObjectIds
@ GO_CHAMBER_OF_ANCIENT_RELICS
@ GO_GATE_OF_THE_YELLOW_MOON
@ GO_GATE_OF_THE_BLUE_SAPPHIRE
@ GO_GATE_OF_THE_RED_SUN
@ GO_GATE_OF_THE_PURPLE_AMETHYST
@ GO_GATE_OF_THE_GREEN_EMERALD
BG_SA_Objects
@ BG_SA_CENTRAL_FLAGPOLE
@ BG_SA_MAXOBJ
@ BG_SA_YELLOW_GATE
@ BG_SA_BOAT_ONE
@ BG_SA_SIGIL_2
@ BG_SA_GREEN_GATE
@ BG_SA_PORTAL_DEFFENDER_PURPLE
@ BG_SA_CENTRAL_FLAG
@ BG_SA_SIGIL_1
@ BG_SA_PORTAL_DEFFENDER_GREEN
@ BG_SA_SIGIL_5
@ BG_SA_RED_GATE
@ BG_SA_LEFT_FLAGPOLE
@ BG_SA_PURPLE_GATE
@ BG_SA_RIGHT_FLAG
@ BG_SA_RIGHT_FLAGPOLE
@ BG_SA_PORTAL_DEFFENDER_BLUE
@ BG_SA_BLUE_GATE
@ BG_SA_PORTAL_DEFFENDER_RED
@ BG_SA_BOAT_TWO
@ BG_SA_SIGIL_4
@ BG_SA_ANCIENT_GATE
@ BG_SA_LEFT_FLAG
@ BG_SA_TITAN_RELIC
@ BG_SA_BOMB
@ BG_SA_PORTAL_DEFFENDER_YELLOW
@ BG_SA_SIGIL_3
#define MAX_GATES
BG_SA_EventIds
@ BG_SA_EVENT_RED_GATE_DESTROYED
@ BG_SA_EVENT_RED_GATE_DAMAGED
@ BG_SA_EVENT_BLUE_GATE_DESTROYED
@ BG_SA_EVENT_YELLOW_GATE_DAMAGED
@ BG_SA_EVENT_YELLOW_GATE_DESTROYED
@ BG_SA_EVENT_PURPLE_GATE_DAMAGED
@ BG_SA_EVENT_ANCIENT_GATE_DESTROYED
@ BG_SA_EVENT_GREEN_GATE_DESTROYED
@ BG_SA_EVENT_BLUE_GATE_DAMAGED
@ BG_SA_EVENT_TITAN_RELIC_ACTIVATED
@ BG_SA_EVENT_GREEN_GATE_DAMAGED
@ BG_SA_EVENT_ANCIENT_GATE_DAMAGED
@ BG_SA_EVENT_PURPLE_GATE_DESTROYED
Position const BG_SA_NpcSpawnlocs[BG_SA_MAXNPC]
BG_SA_NPCs
@ BG_SA_DEMOLISHER_3
@ BG_SA_GUN_3
@ BG_SA_GUN_10
@ BG_SA_GUN_4
@ BG_SA_DEMOLISHER_1
@ BG_SA_DEMOLISHER_4
@ BG_SA_GUN_2
@ BG_SA_DEMOLISHER_6
@ BG_SA_DEMOLISHER_7
@ BG_SA_DEMOLISHER_5
@ BG_SA_MAXNPC
@ BG_SA_NPC_RIGSPARK
@ BG_SA_DEMOLISHER_2
@ BG_SA_NPC_SPARKLIGHT
@ BG_SA_GUN_7
@ BG_SA_GUN_1
@ BG_SA_GUN_8
@ BG_SA_GUN_5
@ BG_SA_GUN_9
@ BG_SA_NPC_KANRETHAD
@ BG_SA_GUN_6
@ BG_SA_DEMOLISHER_8
uint32 const BG_SA_NpcEntries[BG_SA_MAXNPC]
BG_SA_BroadcastTexts
@ 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
GateInfo const Gates[MAX_GATES]
@ SCORE_DESTROYED_WALL
@ SCORE_DESTROYED_DEMOLISHER
@ IN_MILLISECONDS
Definition Common.h:35
uint8_t uint8
Definition Define.h:135
uint32_t uint32
Definition Define.h:133
TeamId
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.
void EventPlayerClickedOnFlag(Player *source, GameObject *go) override
Called when a player click on flag (graveyard flag)
bool SignaledRoundTwo
for know if warning about second round start has been sent
void EndBattleground(uint32 winner) override
Called on battleground ending.
void DemolisherStartState(bool start)
Set selectable or not demolisher, called on battle start, when boats arrive to dock.
void OverrideGunFaction()
Called on start and between the two round -Update faction of all vehicle.
void Reset() override
void RemovePlayer(Player *player, ObjectGuid guid, uint32 team) override
Called when a player leave battleground.
void StartingEventCloseDoors() override
Called when battle start.
bool SignaledRoundTwoHalfMin
for know if warning about second round start has been sent
void TeleportPlayers()
Called between the two round -Teleport all players to good location.
bool CheckAchievementCriteriaMeet(uint32 criteriaId, Player const *source, Unit const *target=nullptr, uint32 miscValue=0) override
void SendTime()
Update timer worldstate.
bool _allVehiclesAlive[PVP_TEAMS_COUNT]
void HandleKillUnit(Creature *creature, Player *killer) override
Called when a player kill a unit in bg.
void DestroyGate(Player *player, GameObject *go) override
Called when a gate is destroy -Give honor to player witch destroy it -Update worldstate -Delete gameo...
void StartingEventOpenDoors() override
BG_SA_RoundScore RoundScores[2]
Score of each round.
void CaptureGraveyard(BG_SA_Graveyards i, Player *Source)
Called when a graveyard is capture -Update spiritguide -Update gameobject (flag) -Update Worldstate -...
uint32 UpdateWaitTimer
5secs before starting the 1min countdown for second round
void HandleAreaTrigger(Player *Source, uint32 Trigger) override
void AddPlayer(Player *player) override
Called when a player join battle.
void UpdateDemolisherSpawns()
Respawn dead demolisher.
BG_SA_GateState GateStatus[MAX_GATES]
Status of each gate (Destroy/Damage/Intact)
WorldSafeLocsEntry const * GetClosestGraveyard(Player *player) override
Return the nearest graveyard where player can respawn.
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
bool ResetObjs()
Called on setup and between the two round -Delete all gameobject / creature -Respawn all gameobject /...
std::map< uint32, uint32 > DemoliserRespawnList
bool IsSpellAllowed(uint32 spellId, Player const *player) const override
void TeleportToEntrancePosition(Player *player)
void FillInitialWorldStates(WorldPackets::WorldState::InitWorldStates &packet) override
Called for generate packet contain worldstate data.
void TitanRelicActivated(Player *clicker)
Called when a player clicked on relic.
void StartShips()
Called for start ship movement.
bool CanInteractWithObject(uint32 objectId)
Checks if a player can interact with the given object.
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)
void UpdateObjectInteractionFlags()
TeamId GraveyardStatus[BG_SA_MAX_GY]
Team witch conntrol each graveyard.
uint32 TotalTime
Totale elapsed time of current round.
Definition Unit.h:769
void UpdateScore(uint32 type, uint32 value) override
uint32 GetAttr1() const override
uint32 GetAttr2() const override
void BuildObjectivesBlock(WorldPackets::Battleground::PVPLogData_Player &playerData) override
BattlegroundSAScore(ObjectGuid playerGuid)
virtual void UpdateScore(uint32 type, uint32 value)
uint8 DamagedText
uint32 WorldState
uint32 GameObjectId
uint8 DestroyedText