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

#include "OutdoorPvPEP.h"

Inheritance diagram for OPvPCapturePointEP_EWT:
OPvPCapturePoint

Public Member Functions

 OPvPCapturePointEP_EWT (OutdoorPvP *pvp)
 
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 ()
 

Protected Member Functions

void SummonSupportUnitAtNorthpassTower (TeamId teamId)
 
void UpdateTowerState ()
 
- 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

uint32 m_TowerState
 
TeamId m_UnitsSummonedSideId
 
- 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
 

Additional Inherited Members

- Public Attributes inherited from OPvPCapturePoint
ObjectGuid::LowType m_capturePointSpawnId
 
GameObjectm_capturePoint
 

Detailed Description

Constructor & Destructor Documentation

◆ OPvPCapturePointEP_EWT()

OPvPCapturePointEP_EWT::OPvPCapturePointEP_EWT ( OutdoorPvP pvp)
33{
36}
@ EP_EWT_FLAGS
Definition: OutdoorPvPEP.h:109
const go_type EPCapturePoints[EP_TOWER_NUM]
Definition: OutdoorPvPEP.h:123
@ EP_TS_N
Definition: OutdoorPvPEP.h:168
@ EP_EWT
Definition: OutdoorPvPEP.h:116
const go_type EPTowerFlags[EP_TOWER_NUM]
Definition: OutdoorPvPEP.h:131
@ TEAM_NEUTRAL
Definition: SharedDefines.h:734
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
TeamId m_UnitsSummonedSideId
Definition: OutdoorPvPEP.h:208
uint32 m_TowerState
Definition: OutdoorPvPEP.h:206

References OPvPCapturePoint::AddObject(), EP_EWT, EP_EWT_FLAGS, EPCapturePoints, EPTowerFlags, and OPvPCapturePoint::SetCapturePointData().

Member Function Documentation

◆ ChangeState()

void OPvPCapturePointEP_EWT::ChangeState ( )
overridevirtual

Implements OPvPCapturePoint.

39{
40 // if changing from controlling alliance to horde or vice versa
42 {
43 sWorld->SendZoneText(EP_GraveYardZone, sObjectMgr->GetAcoreStringForDBCLocale(LANG_OPVP_EP_LOSE_EWT_A));
44 ((OutdoorPvPEP*)m_PvP)->SetControlledState(EP_EWT, TEAM_NEUTRAL);
45 }
47 {
48 sWorld->SendZoneText(EP_GraveYardZone, sObjectMgr->GetAcoreStringForDBCLocale(LANG_OPVP_EP_LOSE_EWT_H));
49 ((OutdoorPvPEP*)m_PvP)->SetControlledState(EP_EWT, TEAM_NEUTRAL);
50 }
51
52 uint32 artkit = 21;
53
54 switch (m_State)
55 {
58 artkit = 2;
60 ((OutdoorPvPEP*)m_PvP)->SetControlledState(EP_EWT, TEAM_ALLIANCE);
61 if (m_OldState != m_State) sWorld->SendZoneText(EP_GraveYardZone, sObjectMgr->GetAcoreStringForDBCLocale(LANG_OPVP_EP_CAPTURE_EWT_A));
62 break;
65 artkit = 1;
67 ((OutdoorPvPEP*)m_PvP)->SetControlledState(EP_EWT, TEAM_HORDE);
68 if (m_OldState != m_State) sWorld->SendZoneText(EP_GraveYardZone, sObjectMgr->GetAcoreStringForDBCLocale(LANG_OPVP_EP_CAPTURE_EWT_H));
69 break;
72 break;
76 break;
80 break;
81 }
82
83 Map* map = sMapMgr->FindMap(0, 0);
84 auto bounds = map->GetGameObjectBySpawnIdStore().equal_range(m_capturePointSpawnId);
85 for (auto itr = bounds.first; itr != bounds.second; ++itr)
86 itr->second->SetGoArtKit(artkit);
87
88 bounds = map->GetGameObjectBySpawnIdStore().equal_range(m_Objects[EP_EWT_FLAGS]);
89 for (auto itr = bounds.first; itr != bounds.second; ++itr)
90 itr->second->SetGoArtKit(artkit);
91
93
94 // complete quest objective
97}
std::uint32_t uint32
Definition: Define.h:108
#define sObjectMgr
Definition: ObjectMgr.h:1640
#define sMapMgr
Definition: MapMgr.h:221
@ LANG_OPVP_EP_LOSE_EWT_H
Definition: Language.h:1249
@ LANG_OPVP_EP_LOSE_EWT_A
Definition: Language.h:1250
@ LANG_OPVP_EP_CAPTURE_EWT_A
Definition: Language.h:1242
@ LANG_OPVP_EP_CAPTURE_EWT_H
Definition: Language.h:1241
@ 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
@ EP_TS_A
Definition: OutdoorPvPEP.h:173
@ EP_TS_N_A
Definition: OutdoorPvPEP.h:169
@ EP_TS_N_H
Definition: OutdoorPvPEP.h:170
@ EP_TS_H
Definition: OutdoorPvPEP.h:174
const uint32 EP_EWT_CM
Definition: OutdoorPvPEP.h:34
const uint32 EP_GraveYardZone
Definition: OutdoorPvPEP.h:28
@ TEAM_ALLIANCE
Definition: SharedDefines.h:732
@ TEAM_HORDE
Definition: SharedDefines.h:733
#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 UpdateTowerState()
Definition: OutdoorPvPEP.cpp:119
void SummonSupportUnitAtNorthpassTower(TeamId teamId)
Definition: OutdoorPvPEP.cpp:147
Definition: OutdoorPvPEP.h:290

References EP_EWT, EP_EWT_CM, EP_EWT_FLAGS, EP_GraveYardZone, EP_TS_A, EP_TS_H, EP_TS_N, EP_TS_N_A, EP_TS_N_H, Map::GetGameObjectBySpawnIdStore(), LANG_OPVP_EP_CAPTURE_EWT_A, LANG_OPVP_EP_CAPTURE_EWT_H, LANG_OPVP_EP_LOSE_EWT_A, LANG_OPVP_EP_LOSE_EWT_H, OPvPCapturePoint::m_capturePointSpawnId, OPvPCapturePoint::m_Objects, OPvPCapturePoint::m_OldState, OPvPCapturePoint::m_PvP, OPvPCapturePoint::m_State, m_TowerState, OBJECTIVESTATE_ALLIANCE, OBJECTIVESTATE_ALLIANCE_HORDE_CHALLENGE, OBJECTIVESTATE_HORDE, OBJECTIVESTATE_HORDE_ALLIANCE_CHALLENGE, OBJECTIVESTATE_NEUTRAL, OBJECTIVESTATE_NEUTRAL_ALLIANCE_CHALLENGE, OBJECTIVESTATE_NEUTRAL_HORDE_CHALLENGE, OPvPCapturePoint::SendObjectiveComplete(), sMapMgr, sObjectMgr, SummonSupportUnitAtNorthpassTower(), sWorld, TEAM_ALLIANCE, TEAM_HORDE, TEAM_NEUTRAL, and UpdateTowerState().

◆ FillInitialWorldStates()

void OPvPCapturePointEP_EWT::FillInitialWorldStates ( WorldPacket data)
overridevirtual

Reimplemented from OPvPCapturePoint.

111{
112 data << EP_EWT_A << uint32(bool(m_TowerState & EP_TS_A));
113 data << EP_EWT_H << uint32(bool(m_TowerState & EP_TS_H));
114 data << EP_EWT_N_A << uint32(bool(m_TowerState & EP_TS_N_A));
115 data << EP_EWT_N_H << uint32(bool(m_TowerState & EP_TS_N_H));
116 data << EP_EWT_N << uint32(bool(m_TowerState & EP_TS_N));
117}
@ EP_EWT_H
Definition: OutdoorPvPEP.h:52
@ EP_EWT_N
Definition: OutdoorPvPEP.h:55
@ EP_EWT_A
Definition: OutdoorPvPEP.h:51
@ EP_EWT_N_H
Definition: OutdoorPvPEP.h:54
@ EP_EWT_N_A
Definition: OutdoorPvPEP.h:53

References EP_EWT_A, EP_EWT_H, EP_EWT_N, EP_EWT_N_A, EP_EWT_N_H, EP_TS_A, EP_TS_H, EP_TS_N, EP_TS_N_A, EP_TS_N_H, and m_TowerState.

◆ HandlePlayerEnter()

bool OPvPCapturePointEP_EWT::HandlePlayerEnter ( Player player)
overridevirtual

Reimplemented from OPvPCapturePoint.

129{
131 {
133 uint32 phase = (uint32)ceil((m_value + m_maxValue) / (2 * m_maxValue) * 100.0f);
136 return true;
137 }
138 return false;
139}
phase
Definition: boss_skadi.cpp:102
@ EP_UI_TOWER_SLIDER_DISPLAY
Definition: OutdoorPvPEP.h:87
@ EP_UI_TOWER_SLIDER_POS
Definition: OutdoorPvPEP.h:88
@ EP_UI_TOWER_SLIDER_N
Definition: OutdoorPvPEP.h:89
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 EP_UI_TOWER_SLIDER_DISPLAY, EP_UI_TOWER_SLIDER_N, EP_UI_TOWER_SLIDER_POS, OPvPCapturePoint::HandlePlayerEnter(), OPvPCapturePoint::m_maxValue, OPvPCapturePoint::m_neutralValuePct, OPvPCapturePoint::m_value, and Player::SendUpdateWorldState().

◆ HandlePlayerLeave()

void OPvPCapturePointEP_EWT::HandlePlayerLeave ( Player player)
overridevirtual

Reimplemented from OPvPCapturePoint.

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

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

◆ SendChangePhase()

void OPvPCapturePointEP_EWT::SendChangePhase ( )
overridevirtual

Reimplemented from OPvPCapturePoint.

100{
101 // send this too, sometimes the slider disappears, dunno why :(
103 // send these updates to only the ones in this objective
104 uint32 phase = (uint32)ceil((m_value + m_maxValue) / (2 * m_maxValue) * 100.0f);
106 // send this too, sometimes it resets :S
108}
void SendUpdateWorldState(uint32 field, uint32 value)
Definition: OutdoorPvP.cpp:420

References EP_UI_TOWER_SLIDER_DISPLAY, EP_UI_TOWER_SLIDER_N, EP_UI_TOWER_SLIDER_POS, OPvPCapturePoint::m_maxValue, OPvPCapturePoint::m_neutralValuePct, OPvPCapturePoint::m_value, and OPvPCapturePoint::SendUpdateWorldState().

◆ SummonSupportUnitAtNorthpassTower()

void OPvPCapturePointEP_EWT::SummonSupportUnitAtNorthpassTower ( TeamId  teamId)
protected
148{
149 if (m_UnitsSummonedSideId != teamId)
150 {
151 m_UnitsSummonedSideId = teamId;
153
154 for (uint8 i = 0; i < EP_EWT_NUM_CREATURES; ++i)
155 {
156 DelCreature(i);
157 AddCreature(i, ct[i].entry, ct[i].map, ct[i].x, ct[i].y, ct[i].z, ct[i].o, 1000000);
158 }
159 }
160}
std::uint8_t uint8
Definition: Define.h:110
const creature_type EP_EWT_Summons_A[EP_EWT_NUM_CREATURES]
Definition: OutdoorPvPEP.h:148
const uint8 EP_EWT_NUM_CREATURES
Definition: OutdoorPvPEP.h:144
const creature_type EP_EWT_Summons_H[EP_EWT_NUM_CREATURES]
Definition: OutdoorPvPEP.h:157
Definition: OutdoorPvP.h:68
bool AddCreature(uint32 type, uint32 entry, uint32 map, float x, float y, float z, float o, uint32 spawntimedelay=0)
Definition: OutdoorPvP.cpp:104
bool DelCreature(uint32 type)
Definition: OutdoorPvP.cpp:139

References OPvPCapturePoint::AddCreature(), OPvPCapturePoint::DelCreature(), EP_EWT_NUM_CREATURES, EP_EWT_Summons_A, EP_EWT_Summons_H, m_UnitsSummonedSideId, and TEAM_ALLIANCE.

Referenced by ChangeState().

◆ UpdateTowerState()

void OPvPCapturePointEP_EWT::UpdateTowerState ( )
protected

Member Data Documentation

◆ m_TowerState

uint32 OPvPCapturePointEP_EWT::m_TowerState
protected

◆ m_UnitsSummonedSideId

TeamId OPvPCapturePointEP_EWT::m_UnitsSummonedSideId
protected