TrinityCore
Arena.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 TRINITY_ARENA_H
19#define TRINITY_ARENA_H
20
21#include "ArenaScore.h"
22#include "Battleground.h"
23
25{
30};
31
33{
38
39 SPELL_LAST_MAN_STANDING = 26549 // Achievement Credit
40};
41
43{
54};
55
57{
58 protected:
59 Arena(BattlegroundTemplate const* battlegroundTemplate);
60
61 void AddPlayer(Player* player, BattlegroundQueueTypeId queueId) override;
62 void RemovePlayer(Player* /*player*/, ObjectGuid /*guid*/, uint32 /*team*/) override;
63
64 void UpdateArenaWorldState();
65
66 void HandleKillPlayer(Player* player, Player* killer) override;
67
69
70 private:
71 void RemovePlayerAtLeave(ObjectGuid guid, bool transport, bool sendPacket) override;
72 void CheckWinConditions() override;
73 void EndBattleground(Team winner) override;
74
76};
77
78#endif // TRINITY_ARENA_H
ArenaSpellIds
Definition: Arena.h:33
@ SPELL_LAST_MAN_STANDING
Definition: Arena.h:39
@ SPELL_ALLIANCE_GOLD_FLAG
Definition: Arena.h:34
@ SPELL_HORDE_GOLD_FLAG
Definition: Arena.h:36
@ SPELL_HORDE_GREEN_FLAG
Definition: Arena.h:37
@ SPELL_ALLIANCE_GREEN_FLAG
Definition: Arena.h:35
ArenaBroadcastTexts
Definition: Arena.h:25
@ ARENA_TEXT_START_ONE_MINUTE
Definition: Arena.h:26
@ ARENA_TEXT_START_THIRTY_SECONDS
Definition: Arena.h:27
@ ARENA_TEXT_START_BATTLE_HAS_BEGUN
Definition: Arena.h:29
@ ARENA_TEXT_START_FIFTEEN_SECONDS
Definition: Arena.h:28
ArenaWorldStates
Definition: Arena.h:43
@ ARENA_WORLD_STATE_SOLO_SHUFFLE_ROUND
Definition: Arena.h:52
@ ARENA_WORLD_STATE_GOLD_TEAM_EXTRA_LIVES
Definition: Arena.h:50
@ ARENA_WORLD_STATE_SHOW_SOLO_SHUFFLE_ROUND
Definition: Arena.h:53
@ ARENA_WORLD_STATE_SHOW_EXTRA_LIVES
Definition: Arena.h:51
@ ARENA_WORLD_STATE_SHOW_ALIVE_PLAYERS
Definition: Arena.h:46
@ ARENA_WORLD_STATE_TIME_REMAINING
Definition: Arena.h:47
@ ARENA_WORLD_STATE_GREEN_TEAM_EXTRA_LIVES
Definition: Arena.h:49
@ ARENA_WORLD_STATE_SHOW_TIME_REMAINING
Definition: Arena.h:48
@ ARENA_WORLD_STATE_ALIVE_PLAYERS_GREEN
Definition: Arena.h:44
@ ARENA_WORLD_STATE_ALIVE_PLAYERS_GOLD
Definition: Arena.h:45
#define TC_GAME_API
Definition: Define.h:123
uint32_t uint32
Definition: Define.h:142
uint8 constexpr PVP_TEAMS_COUNT
Team
Definition: Arena.h:57
virtual void HandleKillPlayer(Player *player, Player *killer)
virtual void RemovePlayer(Player *, ObjectGuid, uint32)
Definition: Battleground.h:554
virtual void EndBattleground(Team winner)
virtual void AddPlayer(Player *player, BattlegroundQueueTypeId queueId)
virtual void CheckWinConditions()
Definition: Battleground.h:403
virtual void BuildPvPLogDataPacket(WorldPackets::Battleground::PVPMatchStatistics &pvpLogData) const
virtual void RemovePlayerAtLeave(ObjectGuid guid, bool Transport, bool SendPacket)