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

#include "OutdoorPvPEP.h"

Inheritance diagram for OutdoorPvPEP:
OutdoorPvP ZoneScript

Public Member Functions

 OutdoorPvPEP ()
 
bool SetupOutdoorPvP () override
 
void HandlePlayerEnterZone (Player *player, uint32 zone) override
 
void HandlePlayerLeaveZone (Player *player, uint32 zone) override
 
bool Update (uint32 diff) override
 
void FillInitialWorldStates (WorldPacket &data) override
 
void SendRemoveWorldStates (Player *player) override
 
void BuffTeams ()
 
void SetControlledState (uint32 index, TeamId teamId)
 
- Public Member Functions inherited from OutdoorPvP
 OutdoorPvP ()=default
 
 ~OutdoorPvP () override
 
void DeleteSpawns ()
 
virtual void FillInitialWorldStates (WorldPacket &)
 
virtual bool HandleAreaTrigger (Player *player, uint32 trigger)
 
virtual bool HandleCustomSpell (Player *player, uint32 spellId, GameObject *go)
 
virtual bool HandleOpenGo (Player *player, GameObject *go)
 
virtual bool SetupOutdoorPvP ()
 
void OnGameObjectCreate (GameObject *go) override
 
void OnGameObjectRemove (GameObject *go) override
 
void OnCreatureCreate (Creature *creature) override
 
void OnCreatureRemove (Creature *creature) override
 
void SendUpdateWorldState (uint32 field, uint32 value)
 
virtual bool Update (uint32 diff)
 
virtual void HandleKill (Player *killer, Unit *killed)
 
virtual void HandleKillImpl (Player *, Unit *)
 
bool IsInsideObjective (Player *player) const
 
virtual void AwardKillBonus (Player *)
 
uint32 GetTypeId () const
 
virtual bool HandleDropFlag (Player *player, uint32 spellId)
 
virtual bool HandleGossipOption (Player *player, Creature *creature, uint32 gossipId)
 
virtual bool CanTalkTo (Player *player, Creature *c, GossipMenuItems const &gso)
 
void TeamApplyBuff (TeamId teamId, uint32 spellId, uint32 spellId2=0, Player *sameMapPlr=nullptr)
 
MapGetMap () const
 
- Public Member Functions inherited from ZoneScript
 ZoneScript ()
 
virtual ~ZoneScript ()
 
virtual uint32 GetCreatureEntry (ObjectGuid::LowType, CreatureData const *data)
 
virtual uint32 GetGameObjectEntry (ObjectGuid::LowType, uint32 entry)
 
virtual void OnCreatureCreate (Creature *)
 
virtual void OnCreatureRemove (Creature *)
 
virtual void OnGameObjectCreate (GameObject *)
 
virtual void OnGameObjectRemove (GameObject *)
 
virtual void OnUnitDeath (Unit *)
 
virtual void OnCreatureEvade (Creature *)
 
virtual ObjectGuid GetGuidData (uint32) const
 
virtual void SetGuidData (uint32, ObjectGuid)
 
virtual uint64 GetData64 (uint32) const
 
virtual void SetData64 (uint32, uint64)
 
virtual uint32 GetData (uint32) const
 
virtual void SetData (uint32, uint32)
 
virtual void ProcessEvent (WorldObject *, uint32)
 

Private Attributes

TeamId EP_ControlsId [EP_TOWER_NUM]
 
uint32 m_AllianceTowersControlled
 
uint32 m_HordeTowersControlled
 

Additional Inherited Members

- Public Types inherited from OutdoorPvP
typedef std::map< ObjectGuid::LowType, OPvPCapturePoint * > OPvPCapturePointMap
 
typedef std::pair< ObjectGuid::LowType, GameObject * > GoScriptPair
 
typedef std::pair< ObjectGuid::LowType, Creature * > CreatureScriptPair
 
- Protected Member Functions inherited from OutdoorPvP
void BroadcastPacket (WorldPacket &data) const
 
virtual void SendRemoveWorldStates (Player *)
 
virtual void HandlePlayerEnterZone (Player *player, uint32 zone)
 
virtual void HandlePlayerLeaveZone (Player *player, uint32 zone)
 
virtual void HandlePlayerResurrects (Player *player, uint32 zone)
 
void AddCapturePoint (OPvPCapturePoint *cp)
 
OPvPCapturePointGetCapturePoint (ObjectGuid::LowType spawnId) const
 
void RegisterZone (uint32 zoneid)
 
bool HasPlayer (Player const *player) const
 
void TeamCastSpell (TeamId team, int32 spellId, Player *sameMapPlr=nullptr)
 
void SetMapFromZone (uint32 zone)
 
- Protected Attributes inherited from OutdoorPvP
OPvPCapturePointMap _capturePoints
 
std::array< PlayerSet, 2 > _players
 
uint32 _typeId {}
 
bool _sendUpdate { true }
 
Map_map {}
 
std::unordered_map< ObjectGuid::LowType, GameObject * > _goScriptStore
 
std::unordered_map< ObjectGuid::LowType, Creature * > _creatureScriptStore
 

Detailed Description

Constructor & Destructor Documentation

◆ OutdoorPvPEP()

OutdoorPvPEP::OutdoorPvPEP ( )
611{
613 memset(EP_ControlsId, TEAM_NEUTRAL, sizeof(EP_ControlsId));
616}
@ OUTDOOR_PVP_EP
Definition: OutdoorPvP.h:35
@ TEAM_NEUTRAL
Definition: SharedDefines.h:762
uint32 _typeId
Definition: OutdoorPvP.h:270
uint32 m_AllianceTowersControlled
Definition: OutdoorPvPEP.h:313
uint32 m_HordeTowersControlled
Definition: OutdoorPvPEP.h:314
TeamId EP_ControlsId[EP_TOWER_NUM]
Definition: OutdoorPvPEP.h:311

References OutdoorPvP::_typeId, EP_ControlsId, m_AllianceTowersControlled, m_HordeTowersControlled, OUTDOOR_PVP_EP, and TEAM_NEUTRAL.

Member Function Documentation

◆ BuffTeams()

void OutdoorPvPEP::BuffTeams ( )
687{
688 for (PlayerSet::iterator itr = _players[0].begin(); itr != _players[0].end(); ++itr)
689 {
690 if (Player* player = ObjectAccessor::FindPlayer(*itr))
691 {
692 for (int i = 0; i < 4; ++i)
693 player->RemoveAurasDueToSpell(EP_AllianceBuffs[i]);
695 player->CastSpell(player, EP_AllianceBuffs[m_AllianceTowersControlled - 1], true);
696 }
697 }
698 for (PlayerSet::iterator itr = _players[1].begin(); itr != _players[1].end(); ++itr)
699 {
700 if (Player* player = ObjectAccessor::FindPlayer(*itr))
701 {
702 for (int i = 0; i < 4; ++i)
703 player->RemoveAurasDueToSpell(EP_HordeBuffs[i]);
705 player->CastSpell(player, EP_HordeBuffs[m_HordeTowersControlled - 1], true);
706 }
707 }
708}
const uint32 EP_AllianceBuffs[4]
Definition: OutdoorPvPEP.h:24
const uint32 EP_HordeBuffs[4]
Definition: OutdoorPvPEP.h:26
Player * FindPlayer(ObjectGuid const guid)
Definition: ObjectAccessor.cpp:248
Definition: Player.h:1056
std::array< PlayerSet, 2 > _players
Definition: OutdoorPvP.h:269

References OutdoorPvP::_players, EP_AllianceBuffs, EP_HordeBuffs, ObjectAccessor::FindPlayer(), m_AllianceTowersControlled, and m_HordeTowersControlled.

Referenced by Update().

◆ FillInitialWorldStates()

void OutdoorPvPEP::FillInitialWorldStates ( WorldPacket data)
overridevirtual

Reimplemented from OutdoorPvP.

716{
720 data << EP_UI_TOWER_SLIDER_POS << uint32(50);
721 data << EP_UI_TOWER_SLIDER_N << uint32(100);
722 for (OPvPCapturePointMap::iterator itr = _capturePoints.begin(); itr != _capturePoints.end(); ++itr)
723 {
724 itr->second->FillInitialWorldStates(data);
725 }
726}
std::uint32_t uint32
Definition: Define.h:108
@ EP_UI_TOWER_SLIDER_DISPLAY
Definition: OutdoorPvPEP.h:87
@ EP_UI_TOWER_COUNT_H
Definition: OutdoorPvPEP.h:92
@ EP_UI_TOWER_COUNT_A
Definition: OutdoorPvPEP.h:91
@ EP_UI_TOWER_SLIDER_POS
Definition: OutdoorPvPEP.h:88
@ EP_UI_TOWER_SLIDER_N
Definition: OutdoorPvPEP.h:89
OPvPCapturePointMap _capturePoints
Definition: OutdoorPvP.h:268

References OutdoorPvP::_capturePoints, EP_UI_TOWER_COUNT_A, EP_UI_TOWER_COUNT_H, EP_UI_TOWER_SLIDER_DISPLAY, EP_UI_TOWER_SLIDER_N, EP_UI_TOWER_SLIDER_POS, m_AllianceTowersControlled, and m_HordeTowersControlled.

◆ HandlePlayerEnterZone()

void OutdoorPvPEP::HandlePlayerEnterZone ( Player player,
uint32  zone 
)
overridevirtual

Reimplemented from OutdoorPvP.

655{
656 // add buffs
657 if (player->GetTeamId() == TEAM_ALLIANCE)
658 {
660 player->CastSpell(player, EP_AllianceBuffs[m_AllianceTowersControlled - 1], true);
661 }
662 else
663 {
665 player->CastSpell(player, EP_HordeBuffs[m_HordeTowersControlled - 1], true);
666 }
668}
@ TEAM_ALLIANCE
Definition: SharedDefines.h:760
TeamId GetTeamId(bool original=false) const
Definition: Player.h:2072
SpellCastResult CastSpell(SpellCastTargets const &targets, SpellInfo const *spellInfo, CustomSpellValues const *value, TriggerCastFlags triggerFlags=TRIGGERED_NONE, Item *castItem=nullptr, AuraEffect const *triggeredByAura=nullptr, ObjectGuid originalCaster=ObjectGuid::Empty)
Definition: Unit.cpp:1169
virtual void HandlePlayerEnterZone(Player *player, uint32 zone)
Definition: OutdoorPvP.cpp:277

References Unit::CastSpell(), EP_AllianceBuffs, EP_HordeBuffs, Player::GetTeamId(), OutdoorPvP::HandlePlayerEnterZone(), m_AllianceTowersControlled, m_HordeTowersControlled, and TEAM_ALLIANCE.

◆ HandlePlayerLeaveZone()

void OutdoorPvPEP::HandlePlayerLeaveZone ( Player player,
uint32  zone 
)
overridevirtual

Reimplemented from OutdoorPvP.

671{
672 // remove buffs
673 if (player->GetTeamId() == TEAM_ALLIANCE)
674 {
675 for (int i = 0; i < 4; ++i)
677 }
678 else
679 {
680 for (int i = 0; i < 4; ++i)
682 }
684}
void RemoveAurasDueToSpell(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, uint8 reqEffMask=0, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
Definition: Unit.cpp:4855
virtual void HandlePlayerLeaveZone(Player *player, uint32 zone)
Definition: OutdoorPvP.cpp:282

References EP_AllianceBuffs, EP_HordeBuffs, Player::GetTeamId(), OutdoorPvP::HandlePlayerLeaveZone(), Unit::RemoveAurasDueToSpell(), and TEAM_ALLIANCE.

◆ SendRemoveWorldStates()

void OutdoorPvPEP::SendRemoveWorldStates ( Player player)
overridevirtual

Reimplemented from OutdoorPvP.

729{
735
736 player->SendUpdateWorldState(EP_EWT_A, 0);
737 player->SendUpdateWorldState(EP_EWT_H, 0);
738 player->SendUpdateWorldState(EP_EWT_N, 0);
741
742 player->SendUpdateWorldState(EP_PWT_A, 0);
743 player->SendUpdateWorldState(EP_PWT_H, 0);
744 player->SendUpdateWorldState(EP_PWT_N, 0);
747
748 player->SendUpdateWorldState(EP_NPT_A, 0);
749 player->SendUpdateWorldState(EP_NPT_H, 0);
750 player->SendUpdateWorldState(EP_NPT_N, 0);
753
754 player->SendUpdateWorldState(EP_CGT_A, 0);
755 player->SendUpdateWorldState(EP_CGT_H, 0);
756 player->SendUpdateWorldState(EP_CGT_N, 0);
759}
@ EP_PWT_N_A
Definition: OutdoorPvPEP.h:69
@ EP_PWT_A
Definition: OutdoorPvPEP.h:71
@ EP_PWT_H
Definition: OutdoorPvPEP.h:72
@ EP_PWT_N
Definition: OutdoorPvPEP.h:73
@ EP_PWT_N_H
Definition: OutdoorPvPEP.h:70
@ 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
@ EP_CGT_N
Definition: OutdoorPvPEP.h:82
@ EP_CGT_H
Definition: OutdoorPvPEP.h:81
@ EP_CGT_N_H
Definition: OutdoorPvPEP.h:79
@ EP_CGT_A
Definition: OutdoorPvPEP.h:80
@ EP_CGT_N_A
Definition: OutdoorPvPEP.h:78
@ EP_NPT_A
Definition: OutdoorPvPEP.h:63
@ EP_NPT_N
Definition: OutdoorPvPEP.h:60
@ EP_NPT_N_H
Definition: OutdoorPvPEP.h:62
@ EP_NPT_H
Definition: OutdoorPvPEP.h:64
@ EP_NPT_N_A
Definition: OutdoorPvPEP.h:61
void SendUpdateWorldState(uint32 variable, uint32 value) const
Definition: PlayerUpdates.cpp:2197

References EP_CGT_A, EP_CGT_H, EP_CGT_N, EP_CGT_N_A, EP_CGT_N_H, EP_EWT_A, EP_EWT_H, EP_EWT_N, EP_EWT_N_A, EP_EWT_N_H, EP_NPT_A, EP_NPT_H, EP_NPT_N, EP_NPT_N_A, EP_NPT_N_H, EP_PWT_A, EP_PWT_H, EP_PWT_N, EP_PWT_N_A, EP_PWT_N_H, EP_UI_TOWER_COUNT_A, EP_UI_TOWER_COUNT_H, EP_UI_TOWER_SLIDER_DISPLAY, EP_UI_TOWER_SLIDER_N, EP_UI_TOWER_SLIDER_POS, and Player::SendUpdateWorldState().

◆ SetControlledState()

void OutdoorPvPEP::SetControlledState ( uint32  index,
TeamId  teamId 
)
711{
712 EP_ControlsId[index] = teamId;
713}

References EP_ControlsId.

◆ SetupOutdoorPvP()

bool OutdoorPvPEP::SetupOutdoorPvP ( )
overridevirtual

Reimplemented from OutdoorPvP.

619{
620 for (uint8 i = 0; i < EPBuffZonesNum; ++i)
622
624
629
630 return true;
631}
std::uint8_t uint8
Definition: Define.h:110
const uint32 EPBuffZones[EPBuffZonesNum]
Definition: OutdoorPvPEP.h:39
const uint8 EPBuffZonesNum
Definition: OutdoorPvPEP.h:32
void RegisterZone(uint32 zoneid)
Definition: OutdoorPvP.cpp:642
void SetMapFromZone(uint32 zone)
Definition: OutdoorPvP.cpp:719
void AddCapturePoint(OPvPCapturePoint *cp)
Definition: OutdoorPvP.h:254
Definition: OutdoorPvPEP.h:186
Definition: OutdoorPvPEP.h:212
Definition: OutdoorPvPEP.h:238
Definition: OutdoorPvPEP.h:264

References OutdoorPvP::AddCapturePoint(), EPBuffZones, EPBuffZonesNum, OutdoorPvP::RegisterZone(), and OutdoorPvP::SetMapFromZone().

◆ Update()

bool OutdoorPvPEP::Update ( uint32  diff)
overridevirtual

Reimplemented from OutdoorPvP.

634{
635 if (OutdoorPvP::Update(diff))
636 {
639 for (int i = 0; i < EP_TOWER_NUM; ++i)
640 {
643 else if (EP_ControlsId[i] == TEAM_HORDE)
647 BuffTeams();
648 }
649 return true;
650 }
651 return false;
652}
@ EP_TOWER_NUM
Definition: OutdoorPvPEP.h:120
@ TEAM_HORDE
Definition: SharedDefines.h:761
virtual bool Update(uint32 diff)
Definition: OutdoorPvP.cpp:305
void SendUpdateWorldState(uint32 field, uint32 value)
Definition: OutdoorPvP.cpp:457
void BuffTeams()
Definition: OutdoorPvPEP.cpp:686

References BuffTeams(), EP_ControlsId, EP_TOWER_NUM, EP_UI_TOWER_COUNT_A, EP_UI_TOWER_COUNT_H, m_AllianceTowersControlled, m_HordeTowersControlled, OutdoorPvP::SendUpdateWorldState(), TEAM_ALLIANCE, TEAM_HORDE, and OutdoorPvP::Update().

Member Data Documentation

◆ EP_ControlsId

TeamId OutdoorPvPEP::EP_ControlsId[EP_TOWER_NUM]
private

◆ m_AllianceTowersControlled

uint32 OutdoorPvPEP::m_AllianceTowersControlled
private

◆ m_HordeTowersControlled

uint32 OutdoorPvPEP::m_HordeTowersControlled
private