TrinityCore
OutdoorPvPHP.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 OUTDOOR_PVP_HP_
19#define OUTDOOR_PVP_HP_
20
21#include "OutdoorPvP.h"
22#include <array>
23
25{
26 TEXT_OVERLOOK_TAKEN_ALLIANCE = 14841, // '|cffffff00The Overlook has been taken by the Alliance!|r'
27 TEXT_OVERLOOK_TAKEN_HORDE = 14842, // '|cffffff00The Overlook has been taken by the Horde!|r'
28 TEXT_STADIUM_TAKEN_ALLIANCE = 14843, // '|cffffff00The Stadium has been taken by the Alliance!|r'
29 TEXT_STADIUM_TAKEN_HORDE = 14844, // '|cffffff00The Stadium has been taken by the Horde!|r'
30 TEXT_BROKEN_HILL_TAKEN_ALLIANCE = 14845, // '|cffffff00Broken Hill has been taken by the Alliance!|r'
31 TEXT_BROKEN_HILL_TAKEN_HORDE = 14846, // '|cffffff00Broken Hill has been taken by the Horde!|r'
32};
33
35{
38 AllianceBuff = 32071,
39 HordeBuff = 32049
40};
41
43{
47 HP_TOWER_NUM = 3
48};
49
51{
54
57
61
65
68 HP_UI_TOWER_W_N = 2472
69};
70
72{
77
82
87};
88
90{
93 HP_GO_ENTRY_TOWER_S = 182175
94};
95
97{
102
103class OutdoorPvPHP;
104
106{
107public:
108 explicit HPControlZoneHandler(OutdoorPvPHP* pvp);
109
110 void SetFlagGuid(ObjectGuid const& guid) { _flagGuid = guid; }
114 void SetFlagArtKitHorde(uint32 artKit) { _flagArtKitHorde = artKit; }
119 void SetKillCredit(uint32 credit) { _killCredit = credit; }
120
121 void HandleProgressEventHorde([[maybe_unused]] GameObject* controlZone) override;
122 void HandleProgressEventAlliance([[maybe_unused]] GameObject* controlZone) override;
123 void HandleNeutralEventHorde([[maybe_unused]] GameObject* controlZone) override;
124 void HandleNeutralEventAlliance([[maybe_unused]] GameObject* controlZone) override;
125 void HandleNeutralEvent([[maybe_unused]] GameObject* controlZone) override;
126
130
132
133private:
144};
145
147{
148 public:
149 OutdoorPvPHP(Map* map);
150
151 bool SetupOutdoorPvP() override;
152
153 void OnGameObjectCreate(GameObject* go) override;
154
155 void HandlePlayerEnterZone(Player* player, uint32 zone) override;
156 void HandlePlayerLeaveZone(Player* player, uint32 zone) override;
157
158 void Update(uint32 diff) override;
159 void SendRemoveWorldStates(Player* player) override;
160 void HandleKillImpl(Player* player, Unit* killed) override;
161
166
167 private:
168 uint32 m_AllianceTowersControlled; // how many towers are controlled
170
172
176};
177
178#endif
uint32_t uint32
Definition: Define.h:142
std::unordered_set< ObjectGuid > GuidUnorderedSet
Definition: ObjectGuid.h:396
OutdoorPvPHPSpells
Definition: OutdoorPvPHP.h:35
@ AllianceBuff
Definition: OutdoorPvPHP.h:38
@ HordePlayerKillReward
Definition: OutdoorPvPHP.h:37
@ HordeBuff
Definition: OutdoorPvPHP.h:39
@ AlliancePlayerKillReward
Definition: OutdoorPvPHP.h:36
OutdoorPvPHPEvents
Definition: OutdoorPvPHP.h:72
@ HP_EVENT_TOWER_W_NEUTRAL_HORDE
Definition: OutdoorPvPHP.h:75
@ HP_EVENT_TOWER_N_PROGRESS_HORDE
Definition: OutdoorPvPHP.h:78
@ HP_EVENT_TOWER_N_NEUTRAL_ALLIANCE
Definition: OutdoorPvPHP.h:81
@ HP_EVENT_TOWER_W_NEUTRAL_ALLIANCE
Definition: OutdoorPvPHP.h:76
@ HP_EVENT_TOWER_W_PROGRESS_HORDE
Definition: OutdoorPvPHP.h:73
@ HP_EVENT_TOWER_S_NEUTRAL_HORDE
Definition: OutdoorPvPHP.h:85
@ HP_EVENT_TOWER_N_PROGRESS_ALLIANCE
Definition: OutdoorPvPHP.h:79
@ HP_EVENT_TOWER_S_PROGRESS_ALLIANCE
Definition: OutdoorPvPHP.h:84
@ HP_EVENT_TOWER_W_PROGRESS_ALLIANCE
Definition: OutdoorPvPHP.h:74
@ HP_EVENT_TOWER_S_PROGRESS_HORDE
Definition: OutdoorPvPHP.h:83
@ HP_EVENT_TOWER_S_NEUTRAL_ALLIANCE
Definition: OutdoorPvPHP.h:86
@ HP_EVENT_TOWER_N_NEUTRAL_HORDE
Definition: OutdoorPvPHP.h:80
OutdoorPvPHPWorldStates
Definition: OutdoorPvPHP.h:51
@ HP_UI_TOWER_S_N
Definition: OutdoorPvPHP.h:60
@ HP_UI_TOWER_W_A
Definition: OutdoorPvPHP.h:66
@ HP_UI_TOWER_W_H
Definition: OutdoorPvPHP.h:67
@ HP_UI_TOWER_COUNT_A
Definition: OutdoorPvPHP.h:56
@ HP_UI_TOWER_N_A
Definition: OutdoorPvPHP.h:62
@ HP_UI_TOWER_W_N
Definition: OutdoorPvPHP.h:68
@ HP_UI_TOWER_DISPLAY_A
Definition: OutdoorPvPHP.h:52
@ HP_UI_TOWER_N_N
Definition: OutdoorPvPHP.h:64
@ HP_UI_TOWER_DISPLAY_H
Definition: OutdoorPvPHP.h:53
@ HP_UI_TOWER_COUNT_H
Definition: OutdoorPvPHP.h:55
@ HP_UI_TOWER_S_H
Definition: OutdoorPvPHP.h:59
@ HP_UI_TOWER_N_H
Definition: OutdoorPvPHP.h:63
@ HP_UI_TOWER_S_A
Definition: OutdoorPvPHP.h:58
OutdoorPvPHPGameObjectEntries
Definition: OutdoorPvPHP.h:90
@ HP_GO_ENTRY_TOWER_W
Definition: OutdoorPvPHP.h:91
@ HP_GO_ENTRY_TOWER_N
Definition: OutdoorPvPHP.h:92
@ HP_GO_ENTRY_TOWER_S
Definition: OutdoorPvPHP.h:93
OutdoorPvPHPCredit
Definition: OutdoorPvPHP.h:97
@ HP_KILL_CREDIT_TOWER_S
Definition: OutdoorPvPHP.h:98
@ HP_KILL_CREDIT_TOWER_W
Definition: OutdoorPvPHP.h:100
@ HP_KILL_CREDIT_TOWER_N
Definition: OutdoorPvPHP.h:99
DefenseMessages
Definition: OutdoorPvPHP.h:25
@ TEXT_OVERLOOK_TAKEN_ALLIANCE
Definition: OutdoorPvPHP.h:26
@ TEXT_BROKEN_HILL_TAKEN_HORDE
Definition: OutdoorPvPHP.h:31
@ TEXT_STADIUM_TAKEN_ALLIANCE
Definition: OutdoorPvPHP.h:28
@ TEXT_STADIUM_TAKEN_HORDE
Definition: OutdoorPvPHP.h:29
@ TEXT_OVERLOOK_TAKEN_HORDE
Definition: OutdoorPvPHP.h:27
@ TEXT_BROKEN_HILL_TAKEN_ALLIANCE
Definition: OutdoorPvPHP.h:30
OutdoorPvPHPTowerType
Definition: OutdoorPvPHP.h:43
@ HP_TOWER_STADIUM
Definition: OutdoorPvPHP.h:46
@ HP_TOWER_NUM
Definition: OutdoorPvPHP.h:47
@ HP_TOWER_OVERLOOK
Definition: OutdoorPvPHP.h:45
@ HP_TOWER_BROKEN_HILL
Definition: OutdoorPvPHP.h:44
HPControlZoneHandler(OutdoorPvPHP *pvp)
void HandleNeutralEventAlliance(GameObject *controlZone) override
void SetTextCaptureAlliance(uint32 text)
Definition: OutdoorPvPHP.h:112
void SetKillCredit(uint32 credit)
Definition: OutdoorPvPHP.h:119
void SetFlagArtKitNeutral(uint32 artKit)
Definition: OutdoorPvPHP.h:113
uint32 GetWorldStateNeutral()
Definition: OutdoorPvPHP.h:127
void SetTextCaptureHorde(uint32 text)
Definition: OutdoorPvPHP.h:111
uint32 GetWorldStateHorde()
Definition: OutdoorPvPHP.h:128
void HandleProgressEventHorde(GameObject *controlZone) override
void SetFlagArtKitAlliance(uint32 artKit)
Definition: OutdoorPvPHP.h:115
void SetFlagGuid(ObjectGuid const &guid)
Definition: OutdoorPvPHP.h:110
void HandleNeutralEvent(GameObject *controlZone) override
uint32 GetWorldStateAlliance()
Definition: OutdoorPvPHP.h:129
OutdoorPvPHP * GetOutdoorPvPHP() const
void SetWorldstateNeutral(uint32 id)
Definition: OutdoorPvPHP.h:116
void SetWorldstateHorde(uint32 id)
Definition: OutdoorPvPHP.h:117
void SetFlagArtKitHorde(uint32 artKit)
Definition: OutdoorPvPHP.h:114
void HandleNeutralEventHorde(GameObject *controlZone) override
void HandleProgressEventAlliance(GameObject *controlZone) override
void SetWorldstateAlliance(uint32 id)
Definition: OutdoorPvPHP.h:118
Definition: Map.h:189
OutdoorPvPHP(Map *map)
void HandlePlayerEnterZone(Player *player, uint32 zone) override
void SetAllianceTowersControlled(uint32 count)
GuidUnorderedSet _controlZoneGUIDs
Definition: OutdoorPvPHP.h:171
HPControlZoneHandler & GetControlZoneTowerSouthHandler()
Definition: OutdoorPvPHP.h:174
void OnGameObjectCreate(GameObject *go) override
uint32 m_AllianceTowersControlled
Definition: OutdoorPvPHP.h:168
uint32 GetHordeTowersControlled() const
HPControlZoneHandler & GetControlZoneTowerWestHandler()
Definition: OutdoorPvPHP.h:175
void HandleKillImpl(Player *player, Unit *killed) override
void HandlePlayerLeaveZone(Player *player, uint32 zone) override
void SendRemoveWorldStates(Player *player) override
uint32 m_HordeTowersControlled
Definition: OutdoorPvPHP.h:169
HPControlZoneHandler & GetControlZoneTowerNorthHandler()
Definition: OutdoorPvPHP.h:173
void SetHordeTowersControlled(uint32 count)
uint32 GetAllianceTowersControlled() const
bool SetupOutdoorPvP() override
void Update(uint32 diff) override
ControlZoneHandlerMap ControlZoneHandlers
Definition: OutdoorPvP.h:204
Definition: Unit.h:627