AzerothCore 3.3.5a
OpenSource WoW Emulator
Loading...
Searching...
No Matches
OPvPCapturePointHP Class Reference

#include "OutdoorPvPHP.h"

Inheritance diagram for OPvPCapturePointHP:
OPvPCapturePoint

Public Member Functions

 OPvPCapturePointHP (OutdoorPvP *pvp, OutdoorPvPHPTowerType type)
 
void ChangeState () override
 
void SendChangePhase () override
 
void FillInitialWorldStates (WorldPacket &data) override
 
bool HandlePlayerEnter (Player *player) override
 
void HandlePlayerLeave (Player *player) override
 
- Public Member Functions inherited from OPvPCapturePoint
 OPvPCapturePoint (OutdoorPvP *pvp)
 
virtual ~OPvPCapturePoint ()
 
virtual void FillInitialWorldStates (WorldPacket &)
 
void SendUpdateWorldState (uint32 field, uint32 value)
 
void SendObjectiveComplete (uint32 id, ObjectGuid guid=ObjectGuid::Empty)
 
virtual bool HandlePlayerEnter (Player *player)
 
virtual void HandlePlayerLeave (Player *player)
 
bool IsInsideObjective (Player *player) const
 
virtual bool HandleCustomSpell (Player *player, uint32 spellId, GameObject *go)
 
virtual int32 HandleOpenGo (Player *player, GameObject *go)
 
virtual bool Update (uint32 diff)
 
virtual void ChangeState ()=0
 
virtual void ChangeTeam (TeamId)
 
virtual void SendChangePhase ()
 
virtual bool HandleGossipOption (Player *player, Creature *creature, uint32 gossipid)
 
virtual bool CanTalkTo (Player *player, Creature *c, GossipMenuItems const &gso)
 
virtual bool HandleDropFlag (Player *player, uint32 spellId)
 
virtual void DeleteSpawns ()
 
void AddGO (uint32 type, ObjectGuid::LowType guid, uint32 entry=0)
 
void AddCre (uint32 type, ObjectGuid::LowType guid, uint32 entry=0)
 
bool SetCapturePointData (uint32 entry, uint32 map, float x, float y, float z, float o=0, float rotation0=0, float rotation1=0, float rotation2=0, float rotation3=0)
 
void SetSlider (float slider)
 
float GetSlider ()
 

Private Attributes

OutdoorPvPHPTowerType m_TowerType
 

Additional Inherited Members

- Public Attributes inherited from OPvPCapturePoint
ObjectGuid::LowType m_capturePointSpawnId
 
GameObjectm_capturePoint
 
- Protected Member Functions inherited from OPvPCapturePoint
bool AddObject (uint32 type, uint32 entry, uint32 map, float x, float y, float z, float o, float rotation0, float rotation1, float rotation2, float rotation3)
 
bool AddCreature (uint32 type, uint32 entry, uint32 map, float x, float y, float z, float o, uint32 spawntimedelay=0)
 
bool DelCreature (uint32 type)
 
bool DelObject (uint32 type)
 
bool DelCapturePoint ()
 
- Protected Attributes inherited from OPvPCapturePoint
PlayerSet m_activePlayers [2]
 
float m_maxValue
 
float m_minValue
 
float m_maxSpeed
 
float m_value
 
TeamId m_team
 
ObjectiveStates m_OldState
 
ObjectiveStates m_State
 
uint32 m_neutralValuePct
 
OutdoorPvPm_PvP
 
std::map< uint32, ObjectGuid::LowTypem_Objects
 
std::map< uint32, ObjectGuid::LowTypem_Creatures
 
std::map< ObjectGuid::LowType, uint32m_ObjectTypes
 
std::map< ObjectGuid::LowType, uint32m_CreatureTypes
 

Detailed Description

Constructor & Destructor Documentation

◆ OPvPCapturePointHP()

OPvPCapturePointHP::OPvPCapturePointHP ( OutdoorPvP pvp,
OutdoorPvPHPTowerType  type 
)
38 : OPvPCapturePoint(pvp), m_TowerType(type)
39{
41 HPCapturePoints[type].map,
42 HPCapturePoints[type].x,
43 HPCapturePoints[type].y,
44 HPCapturePoints[type].z,
45 HPCapturePoints[type].o,
46 HPCapturePoints[type].rot0,
47 HPCapturePoints[type].rot1,
48 HPCapturePoints[type].rot2,
49 HPCapturePoints[type].rot3);
50 AddObject(type,
51 HPTowerFlags[type].entry,
52 HPTowerFlags[type].map,
53 HPTowerFlags[type].x,
54 HPTowerFlags[type].y,
55 HPTowerFlags[type].z,
56 HPTowerFlags[type].o,
57 HPTowerFlags[type].rot0,
58 HPTowerFlags[type].rot1,
59 HPTowerFlags[type].rot2,
60 HPTowerFlags[type].rot3);
61}
const go_type HPCapturePoints[HP_TOWER_NUM]
Definition: OutdoorPvPHP.h:74
const go_type HPTowerFlags[HP_TOWER_NUM]
Definition: OutdoorPvPHP.h:81
Definition: OutdoorPvP.h:89
bool AddObject(uint32 type, uint32 entry, uint32 map, float x, float y, float z, float o, float rotation0, float rotation1, float rotation2, float rotation3)
Definition: OutdoorPvP.cpp:93
bool SetCapturePointData(uint32 entry, uint32 map, float x, float y, float z, float o=0, float rotation0=0, float rotation1=0, float rotation2=0, float rotation3=0)
Definition: OutdoorPvP.cpp:115
OutdoorPvPHPTowerType m_TowerType
Definition: OutdoorPvPHP.h:104

References OPvPCapturePoint::AddObject(), HPCapturePoints, HPTowerFlags, and OPvPCapturePoint::SetCapturePointData().

Member Function Documentation

◆ ChangeState()

void OPvPCapturePointHP::ChangeState ( )
overridevirtual

Implements OPvPCapturePoint.

172{
173 uint32 field = 0;
174 switch (m_OldState)
175 {
177 field = HP_MAP_N[m_TowerType];
178 break;
180 field = HP_MAP_A[m_TowerType];
181 if (uint32 alliance_towers = ((OutdoorPvPHP*)m_PvP)->GetAllianceTowersControlled())
182 ((OutdoorPvPHP*)m_PvP)->SetAllianceTowersControlled(--alliance_towers);
183 sWorld->SendZoneText(OutdoorPvPHPBuffZones[0], sObjectMgr->GetAcoreStringForDBCLocale(HP_LANG_LOSE_A[m_TowerType]));
184 break;
186 field = HP_MAP_H[m_TowerType];
187 if (uint32 horde_towers = ((OutdoorPvPHP*)m_PvP)->GetHordeTowersControlled())
188 ((OutdoorPvPHP*)m_PvP)->SetHordeTowersControlled(--horde_towers);
189 sWorld->SendZoneText(OutdoorPvPHPBuffZones[0], sObjectMgr->GetAcoreStringForDBCLocale(HP_LANG_LOSE_H[m_TowerType]));
190 break;
192 field = HP_MAP_N[m_TowerType];
193 break;
195 field = HP_MAP_N[m_TowerType];
196 break;
198 field = HP_MAP_A[m_TowerType];
199 break;
201 field = HP_MAP_H[m_TowerType];
202 break;
203 }
204
205 // send world state update
206 if (field)
207 {
208 m_PvP->SendUpdateWorldState(field, 0);
209 field = 0;
210 }
211 uint32 artkit = 21;
213 switch (m_State)
214 {
216 field = HP_MAP_N[m_TowerType];
217 break;
219 {
220 field = HP_MAP_A[m_TowerType];
221 artkit = 2;
222 artkit2 = HP_TowerArtKit_A[m_TowerType];
223 uint32 alliance_towers = ((OutdoorPvPHP*)m_PvP)->GetAllianceTowersControlled();
224 if (alliance_towers < 3)
225 ((OutdoorPvPHP*)m_PvP)->SetAllianceTowersControlled(++alliance_towers);
226 sWorld->SendZoneText(OutdoorPvPHPBuffZones[0], sObjectMgr->GetAcoreStringForDBCLocale(HP_LANG_CAPTURE_A[m_TowerType]));
227 break;
228 }
230 {
231 field = HP_MAP_H[m_TowerType];
232 artkit = 1;
233 artkit2 = HP_TowerArtKit_H[m_TowerType];
234 uint32 horde_towers = ((OutdoorPvPHP*)m_PvP)->GetHordeTowersControlled();
235 if (horde_towers < 3)
236 ((OutdoorPvPHP*)m_PvP)->SetHordeTowersControlled(++horde_towers);
237 sWorld->SendZoneText(OutdoorPvPHPBuffZones[0], sObjectMgr->GetAcoreStringForDBCLocale(HP_LANG_CAPTURE_H[m_TowerType]));
238 break;
239 }
244 field = HP_MAP_N[m_TowerType];
245 break;
246 }
247
248 Map* map = sMapMgr->FindMap(530, 0);
249 auto bounds = map->GetGameObjectBySpawnIdStore().equal_range(m_capturePointSpawnId);
250 for (auto itr = bounds.first; itr != bounds.second; ++itr)
251 itr->second->SetGoArtKit(artkit);
252
253 bounds = map->GetGameObjectBySpawnIdStore().equal_range(m_Objects[m_TowerType]);
254 for (auto itr = bounds.first; itr != bounds.second; ++itr)
255 itr->second->SetGoArtKit(artkit2);
256
257 // send world state update
258 if (field)
259 m_PvP->SendUpdateWorldState(field, 1);
260
261 // complete quest objective
264}
std::uint32_t uint32
Definition: Define.h:108
#define sObjectMgr
Definition: ObjectMgr.h:1640
#define sMapMgr
Definition: MapMgr.h:221
@ OBJECTIVESTATE_HORDE
Definition: OutdoorPvP.h:44
@ OBJECTIVESTATE_NEUTRAL_HORDE_CHALLENGE
Definition: OutdoorPvP.h:46
@ OBJECTIVESTATE_ALLIANCE
Definition: OutdoorPvP.h:43
@ OBJECTIVESTATE_NEUTRAL_ALLIANCE_CHALLENGE
Definition: OutdoorPvP.h:45
@ OBJECTIVESTATE_HORDE_ALLIANCE_CHALLENGE
Definition: OutdoorPvP.h:48
@ OBJECTIVESTATE_NEUTRAL
Definition: OutdoorPvP.h:42
@ OBJECTIVESTATE_ALLIANCE_HORDE_CHALLENGE
Definition: OutdoorPvP.h:47
const uint32 HP_LANG_LOSE_A[HP_TOWER_NUM]
Definition: OutdoorPvPHP.cpp:29
const uint32 HP_LANG_CAPTURE_H[HP_TOWER_NUM]
Definition: OutdoorPvPHP.cpp:35
const uint32 HP_LANG_CAPTURE_A[HP_TOWER_NUM]
Definition: OutdoorPvPHP.cpp:33
const uint32 HP_LANG_LOSE_H[HP_TOWER_NUM]
Definition: OutdoorPvPHP.cpp:31
const uint32 HP_CREDITMARKER[HP_TOWER_NUM]
Definition: OutdoorPvPHP.h:43
const uint32 HP_TowerArtKit_H[HP_TOWER_NUM]
Definition: OutdoorPvPHP.h:70
const uint32 OutdoorPvPHPBuffZones[OutdoorPvPHPBuffZonesNum]
Definition: OutdoorPvPHP.h:25
const uint32 HP_MAP_N[HP_TOWER_NUM]
Definition: OutdoorPvPHP.h:62
const uint32 HP_MAP_H[HP_TOWER_NUM]
Definition: OutdoorPvPHP.h:66
const uint32 HP_MAP_A[HP_TOWER_NUM]
Definition: OutdoorPvPHP.h:64
const uint32 HP_TowerArtKit_A[HP_TOWER_NUM]
Definition: OutdoorPvPHP.h:68
const uint32 HP_TowerArtKit_N[HP_TOWER_NUM]
Definition: OutdoorPvPHP.h:72
#define sWorld
Definition: World.h:451
Definition: Map.h:312
GameObjectBySpawnIdContainer & GetGameObjectBySpawnIdStore()
Definition: Map.h:521
ObjectiveStates m_OldState
Definition: OutdoorPvP.h:178
OutdoorPvP * m_PvP
Definition: OutdoorPvP.h:185
ObjectiveStates m_State
Definition: OutdoorPvP.h:179
std::map< uint32, ObjectGuid::LowType > m_Objects
Definition: OutdoorPvP.h:189
ObjectGuid::LowType m_capturePointSpawnId
Definition: OutdoorPvP.h:131
void SendObjectiveComplete(uint32 id, ObjectGuid guid=ObjectGuid::Empty)
Definition: OutdoorPvP.cpp:431
void SendUpdateWorldState(uint32 field, uint32 value)
Definition: OutdoorPvP.cpp:411
Definition: OutdoorPvPHP.h:108

References Map::GetGameObjectBySpawnIdStore(), HP_CREDITMARKER, HP_LANG_CAPTURE_A, HP_LANG_CAPTURE_H, HP_LANG_LOSE_A, HP_LANG_LOSE_H, HP_MAP_A, HP_MAP_H, HP_MAP_N, HP_TowerArtKit_A, HP_TowerArtKit_H, HP_TowerArtKit_N, OPvPCapturePoint::m_capturePointSpawnId, OPvPCapturePoint::m_Objects, OPvPCapturePoint::m_OldState, OPvPCapturePoint::m_PvP, OPvPCapturePoint::m_State, m_TowerType, OBJECTIVESTATE_ALLIANCE, OBJECTIVESTATE_ALLIANCE_HORDE_CHALLENGE, OBJECTIVESTATE_HORDE, OBJECTIVESTATE_HORDE_ALLIANCE_CHALLENGE, OBJECTIVESTATE_NEUTRAL, OBJECTIVESTATE_NEUTRAL_ALLIANCE_CHALLENGE, OBJECTIVESTATE_NEUTRAL_HORDE_CHALLENGE, OutdoorPvPHPBuffZones, OPvPCapturePoint::SendObjectiveComplete(), OutdoorPvP::SendUpdateWorldState(), sMapMgr, sObjectMgr, and sWorld.

◆ FillInitialWorldStates()

◆ HandlePlayerEnter()

bool OPvPCapturePointHP::HandlePlayerEnter ( Player player)
overridevirtual

Reimplemented from OPvPCapturePoint.

304{
306 {
308 uint32 phase = (uint32)ceil((m_value + m_maxValue) / (2 * m_maxValue) * 100.0f);
311 return true;
312 }
313 return false;
314}
phase
Definition: boss_skadi.cpp:102
@ HP_UI_TOWER_SLIDER_POS
Definition: OutdoorPvPHP.h:58
@ HP_UI_TOWER_SLIDER_N
Definition: OutdoorPvPHP.h:57
@ HP_UI_TOWER_SLIDER_DISPLAY
Definition: OutdoorPvPHP.h:59
void SendUpdateWorldState(uint32 variable, uint32 value) const
Definition: PlayerUpdates.cpp:2194
float m_value
Definition: OutdoorPvP.h:173
uint32 m_neutralValuePct
Definition: OutdoorPvP.h:182
float m_maxValue
Definition: OutdoorPvP.h:166
virtual bool HandlePlayerEnter(Player *player)
Definition: OutdoorPvP.cpp:36

References OPvPCapturePoint::HandlePlayerEnter(), HP_UI_TOWER_SLIDER_DISPLAY, HP_UI_TOWER_SLIDER_N, HP_UI_TOWER_SLIDER_POS, OPvPCapturePoint::m_maxValue, OPvPCapturePoint::m_neutralValuePct, OPvPCapturePoint::m_value, and Player::SendUpdateWorldState().

◆ HandlePlayerLeave()

void OPvPCapturePointHP::HandlePlayerLeave ( Player player)
overridevirtual

Reimplemented from OPvPCapturePoint.

317{
320}
virtual void HandlePlayerLeave(Player *player)
Definition: OutdoorPvP.cpp:47

References OPvPCapturePoint::HandlePlayerLeave(), HP_UI_TOWER_SLIDER_DISPLAY, and Player::SendUpdateWorldState().

◆ SendChangePhase()

void OPvPCapturePointHP::SendChangePhase ( )
overridevirtual

Reimplemented from OPvPCapturePoint.

267{
269 // send these updates to only the ones in this objective
270 uint32 phase = (uint32)ceil((m_value + m_maxValue) / (2 * m_maxValue) * 100.0f);
272 // send this too, sometimes the slider disappears, dunno why :(
274}
void SendUpdateWorldState(uint32 field, uint32 value)
Definition: OutdoorPvP.cpp:420

References HP_UI_TOWER_SLIDER_DISPLAY, HP_UI_TOWER_SLIDER_N, HP_UI_TOWER_SLIDER_POS, OPvPCapturePoint::m_maxValue, OPvPCapturePoint::m_neutralValuePct, OPvPCapturePoint::m_value, and OPvPCapturePoint::SendUpdateWorldState().

Member Data Documentation

◆ m_TowerType

OutdoorPvPHPTowerType OPvPCapturePointHP::m_TowerType
private