TrinityCore
OutdoorPvPTF.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_TF_
19#define OUTDOOR_PVP_TF_
20
21#include "OutdoorPvP.h"
22
24{
25 TEXT_BONE_WASTES_TAKEN_ALLIANCE = 16120, // (NYI) '|cffffff00The Alliance has taken control of The Bone Wastes!|r'
26 TEXT_BONE_WASTES_TAKEN_HORDE = 16119, // (NYI) '|cffffff00The Horde has taken control of The Bone Wastes!|r'
27 TEXT_SPIRIT_TOWER_TAKEN_ALLIANCE = 18285, // '|cffffff00The Alliance has taken control of a Spirit Tower!|r'
28 TEXT_SPIRIT_TOWER_TAKEN_HORDE = 18286, // '|cffffff00The Horde has taken control of a Spirit Tower!|r'
29 TEXT_SPIRIT_TOWER_LOSE_ALLIANCE = 18288, // '|cffffff00The Alliance has lost control of a Spirit Tower!|r'
30 TEXT_SPIRIT_TOWER_LOSE_HORDE = 18287 // '|cffffff00The Horde has lost control of a Spirit Tower!|r'
31};
32
34{
41};
42
44{
48
55};
56
58{
63
68
73
78
83};
84
86{
91 TF_ENTRY_TOWER_S = 183414
92};
93
94class OutdoorPvPTF;
95
97{
98public:
99 explicit TFControlZoneHandler(OutdoorPvPTF* pvp, uint32 worldstateHorde, uint32 worldstateAlliance, uint32 worldstateNeutral);
100
101 void HandleProgressEventHorde([[maybe_unused]] GameObject* controlZone) override;
102 void HandleProgressEventAlliance([[maybe_unused]] GameObject* controlZone) override;
103 void HandleNeutralEventHorde([[maybe_unused]] GameObject* controlZone) override;
104 void HandleNeutralEventAlliance([[maybe_unused]] GameObject* controlZone) override;
105 void HandleNeutralEvent([[maybe_unused]] GameObject* controlZone) override;
106
110
112
113private:
117};
118
120{
121 public:
122 OutdoorPvPTF(Map* map);
123
124 bool SetupOutdoorPvP() override;
125 void OnGameObjectCreate(GameObject* go) override;
126 void HandlePlayerEnterZone(Player* player, uint32 zone) override;
127 void HandlePlayerLeaveZone(Player* player, uint32 zone) override;
128 void Update(uint32 diff) override;
129 void SendRemoveWorldStates(Player* player) override;
130
135 bool IsLocked() const;
136
137 void ProcessEvent(WorldObject* obj, uint32 eventId, WorldObject* invoker) override;
138 void HandleCapture(TeamId team);
139 private:
147 std::unordered_map<uint32 /*control zone entry*/, std::unique_ptr<TFControlZoneHandler>> _controlZoneHandlers;
148};
149
150#endif
uint32_t uint32
Definition: Define.h:142
std::unordered_set< ObjectGuid > GuidUnorderedSet
Definition: ObjectGuid.h:396
DefenseMessages
Definition: OutdoorPvPHP.h:25
TFWorldStates
Definition: OutdoorPvPTF.h:44
@ TF_UI_LOCKED_TIME_MINUTES_FIRST_DIGIT
Definition: OutdoorPvPTF.h:49
@ TF_UI_LOCKED_DISPLAY_ALLIANCE
Definition: OutdoorPvPTF.h:54
@ TF_UI_LOCKED_TIME_MINUTES_SECOND_DIGIT
Definition: OutdoorPvPTF.h:50
@ TF_UI_LOCKED_DISPLAY_NEUTRAL
Definition: OutdoorPvPTF.h:52
@ TF_UI_LOCKED_DISPLAY_HORDE
Definition: OutdoorPvPTF.h:53
@ TF_UI_TOWER_COUNT_H
Definition: OutdoorPvPTF.h:45
@ TF_UI_TOWERS_CONTROLLED_DISPLAY
Definition: OutdoorPvPTF.h:47
@ TF_UI_TOWER_COUNT_A
Definition: OutdoorPvPTF.h:46
@ TF_UI_LOCKED_TIME_HOURS
Definition: OutdoorPvPTF.h:51
OutdoorPvPTF_TowerType
Definition: OutdoorPvPTF.h:34
@ TF_TOWER_SE
Definition: OutdoorPvPTF.h:38
@ TF_TOWER_N
Definition: OutdoorPvPTF.h:36
@ TF_TOWER_NE
Definition: OutdoorPvPTF.h:37
@ TF_TOWER_NW
Definition: OutdoorPvPTF.h:35
@ TF_TOWER_NUM
Definition: OutdoorPvPTF.h:40
@ TF_TOWER_S
Definition: OutdoorPvPTF.h:39
@ TEXT_SPIRIT_TOWER_LOSE_HORDE
Definition: OutdoorPvPTF.h:30
@ TEXT_SPIRIT_TOWER_TAKEN_ALLIANCE
Definition: OutdoorPvPTF.h:27
@ TEXT_SPIRIT_TOWER_TAKEN_HORDE
Definition: OutdoorPvPTF.h:28
@ TEXT_BONE_WASTES_TAKEN_HORDE
Definition: OutdoorPvPTF.h:26
@ TEXT_BONE_WASTES_TAKEN_ALLIANCE
Definition: OutdoorPvPTF.h:25
@ TEXT_SPIRIT_TOWER_LOSE_ALLIANCE
Definition: OutdoorPvPTF.h:29
TFGameEvents
Definition: OutdoorPvPTF.h:58
@ TF_EVENT_TOWER_S_NEUTRAL_ALLIANCE
Definition: OutdoorPvPTF.h:80
@ TF_EVENT_TOWER_S_NEUTRAL_HORDE
Definition: OutdoorPvPTF.h:79
@ TF_EVENT_TOWER_NE_HORDE_PROGRESS
Definition: OutdoorPvPTF.h:64
@ TF_EVENT_TOWER_NW_NEUTRAL_HORDE
Definition: OutdoorPvPTF.h:62
@ TF_EVENT_TOWER_SE_HORDE_PROGRESS
Definition: OutdoorPvPTF.h:77
@ TF_EVENT_TOWER_SE_NEUTRAL_ALLIANCE
Definition: OutdoorPvPTF.h:75
@ TF_EVENT_TOWER_SE_ALLIANCE_PROGRESS
Definition: OutdoorPvPTF.h:76
@ TF_EVENT_TOWER_NE_ALLIANCE_PROGRESS
Definition: OutdoorPvPTF.h:65
@ TF_EVENT_TOWER_NE_NEUTRAL_HORDE
Definition: OutdoorPvPTF.h:66
@ TF_EVENT_TOWER_SE_NEUTRAL_HORDE
Definition: OutdoorPvPTF.h:74
@ TF_EVENT_TOWER_NE_NEUTRAL_ALLIANCE
Definition: OutdoorPvPTF.h:67
@ TF_EVENT_TOWER_N_HORDE_PROGRESS
Definition: OutdoorPvPTF.h:72
@ TF_EVENT_TOWER_S_HORDE_PROGRESS
Definition: OutdoorPvPTF.h:82
@ TF_EVENT_TOWER_NW_NEUTRAL_ALLIANCE
Definition: OutdoorPvPTF.h:61
@ TF_EVENT_TOWER_NW_ALLIANCE_PROGRESS
Definition: OutdoorPvPTF.h:59
@ TF_EVENT_TOWER_N_ALLIANCE_PROGRESS
Definition: OutdoorPvPTF.h:71
@ TF_EVENT_TOWER_S_ALLIANCE_PROGRESS
Definition: OutdoorPvPTF.h:81
@ TF_EVENT_TOWER_N_NEUTRAL_HORDE
Definition: OutdoorPvPTF.h:69
@ TF_EVENT_TOWER_N_NEUTRAL_ALLIANCE
Definition: OutdoorPvPTF.h:70
@ TF_EVENT_TOWER_NW_HORDE_PROGRESS
Definition: OutdoorPvPTF.h:60
TFGameObjects
Definition: OutdoorPvPTF.h:86
@ TF_ENTRY_TOWER_SE
Definition: OutdoorPvPTF.h:90
@ TF_ENTRY_TOWER_N
Definition: OutdoorPvPTF.h:88
@ TF_ENTRY_TOWER_NW
Definition: OutdoorPvPTF.h:87
@ TF_ENTRY_TOWER_S
Definition: OutdoorPvPTF.h:91
@ TF_ENTRY_TOWER_NE
Definition: OutdoorPvPTF.h:89
TeamId
Definition: Map.h:189
void HandlePlayerEnterZone(Player *player, uint32 zone) override
void SendRemoveWorldStates(Player *player) override
void SetHordeTowersControlled(uint32 count)
void ProcessEvent(WorldObject *obj, uint32 eventId, WorldObject *invoker) override
uint32 GetHordeTowersControlled() const
void OnGameObjectCreate(GameObject *go) override
uint32 GetAllianceTowersControlled() const
uint32 m_HordeTowersControlled
Definition: OutdoorPvPTF.h:144
bool IsLocked() const
uint32 m_AllianceTowersControlled
Definition: OutdoorPvPTF.h:143
uint32 second_digit
Definition: OutdoorPvPTF.h:145
uint32 m_LockTimer
Definition: OutdoorPvPTF.h:141
void HandlePlayerLeaveZone(Player *player, uint32 zone) override
OutdoorPvPTF(Map *map)
void HandleCapture(TeamId team)
bool SetupOutdoorPvP() override
uint32 m_LockTimerUpdate
Definition: OutdoorPvPTF.h:142
void Update(uint32 diff) override
std::unordered_map< uint32, std::unique_ptr< TFControlZoneHandler > > _controlZoneHandlers
Definition: OutdoorPvPTF.h:147
uint32 hours_left
Definition: OutdoorPvPTF.h:145
uint32 first_digit
Definition: OutdoorPvPTF.h:145
GuidUnorderedSet _controlZoneGUIDs
Definition: OutdoorPvPTF.h:146
void SetAllianceTowersControlled(uint32 count)
void HandleNeutralEventAlliance(GameObject *controlZone) override
uint32 GetWorldStateHorde()
Definition: OutdoorPvPTF.h:107
void HandleNeutralEvent(GameObject *controlZone) override
void HandleNeutralEventHorde(GameObject *controlZone) override
TFControlZoneHandler(OutdoorPvPTF *pvp, uint32 worldstateHorde, uint32 worldstateAlliance, uint32 worldstateNeutral)
void HandleProgressEventAlliance(GameObject *controlZone) override
uint32 GetWorldStateAlliance()
Definition: OutdoorPvPTF.h:108
uint32 GetWorldStateNeutral()
Definition: OutdoorPvPTF.h:109
void HandleProgressEventHorde(GameObject *controlZone) override
OutdoorPvPTF * GetOutdoorPvPTF() const