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 (WorldPackets::WorldState::InitWorldStates &packet) 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 bool HandleAreaTrigger (Player *player, uint32 trigger)
 
virtual bool HandleCustomSpell (Player *player, uint32 spellId, GameObject *go)
 
virtual bool HandleOpenGo (Player *player, GameObject *go)
 
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 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 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 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 ( )
617{
619 memset(EP_ControlsId, TEAM_NEUTRAL, sizeof(EP_ControlsId));
622}
@ OUTDOOR_PVP_EP
Definition OutdoorPvP.h:35
@ TEAM_NEUTRAL
Definition SharedDefines.h:762
uint32 m_AllianceTowersControlled
Definition OutdoorPvPEP.h:267
uint32 m_HordeTowersControlled
Definition OutdoorPvPEP.h:268
TeamId EP_ControlsId[EP_TOWER_NUM]
Definition OutdoorPvPEP.h:265
uint32 _typeId
Definition OutdoorPvP.h:270

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

Member Function Documentation

◆ BuffTeams()

void OutdoorPvPEP::BuffTeams ( )
693{
694 for (PlayerSet::iterator itr = _players[0].begin(); itr != _players[0].end(); ++itr)
695 {
696 if (Player* player = ObjectAccessor::FindPlayer(*itr))
697 {
698 for (int i = 0; i < 4; ++i)
699 player->RemoveAurasDueToSpell(EP_AllianceBuffs[i]);
701 player->CastSpell(player, EP_AllianceBuffs[m_AllianceTowersControlled - 1], true);
702 }
703 }
704 for (PlayerSet::iterator itr = _players[1].begin(); itr != _players[1].end(); ++itr)
705 {
706 if (Player* player = ObjectAccessor::FindPlayer(*itr))
707 {
708 for (int i = 0; i < 4; ++i)
709 player->RemoveAurasDueToSpell(EP_HordeBuffs[i]);
711 player->CastSpell(player, EP_HordeBuffs[m_HordeTowersControlled - 1], true);
712 }
713 }
714}
const uint32 EP_AllianceBuffs[4]
Definition OutdoorPvPEP.h:24
const uint32 EP_HordeBuffs[4]
Definition OutdoorPvPEP.h:26
std::array< PlayerSet, 2 > _players
Definition OutdoorPvP.h:269
Definition Player.h:1081
Player * FindPlayer(ObjectGuid const guid)
Definition ObjectAccessor.cpp:245

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

Referenced by Update().

◆ FillInitialWorldStates()

void OutdoorPvPEP::FillInitialWorldStates ( WorldPackets::WorldState::InitWorldStates packet)
overridevirtual

Reimplemented from OutdoorPvP.

722{
723 packet.Worldstates.reserve(5);
728 packet.Worldstates.emplace_back(WORLD_STATE_OPVP_EP_UI_TOWER_SLIDER_N, 100);
729
730 for (OPvPCapturePointMap::iterator itr = _capturePoints.begin(); itr != _capturePoints.end(); ++itr)
731 {
732 itr->second->FillInitialWorldStates(packet);
733 }
734}
@ WORLD_STATE_OPVP_EP_UI_TOWER_SLIDER_DISPLAY
Definition WorldStateDefines.h:384
@ WORLD_STATE_OPVP_EP_UI_TOWER_SLIDER_POS
Definition WorldStateDefines.h:385
@ WORLD_STATE_OPVP_EP_UI_TOWER_COUNT_A
Definition WorldStateDefines.h:362
@ WORLD_STATE_OPVP_EP_UI_TOWER_SLIDER_N
Definition WorldStateDefines.h:386
@ WORLD_STATE_OPVP_EP_UI_TOWER_COUNT_H
Definition WorldStateDefines.h:363
OPvPCapturePointMap _capturePoints
Definition OutdoorPvP.h:268
std::vector< WorldStateInfo > Worldstates
Definition WorldStatePackets.h:46

References OutdoorPvP::_capturePoints, m_AllianceTowersControlled, m_HordeTowersControlled, WORLD_STATE_OPVP_EP_UI_TOWER_COUNT_A, WORLD_STATE_OPVP_EP_UI_TOWER_COUNT_H, WORLD_STATE_OPVP_EP_UI_TOWER_SLIDER_DISPLAY, WORLD_STATE_OPVP_EP_UI_TOWER_SLIDER_N, WORLD_STATE_OPVP_EP_UI_TOWER_SLIDER_POS, and WorldPackets::WorldState::InitWorldStates::Worldstates.

◆ HandlePlayerEnterZone()

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

Reimplemented from OutdoorPvP.

661{
662 // add buffs
663 if (player->GetTeamId() == TEAM_ALLIANCE)
664 {
666 player->CastSpell(player, EP_AllianceBuffs[m_AllianceTowersControlled - 1], true);
667 }
668 else
669 {
671 player->CastSpell(player, EP_HordeBuffs[m_HordeTowersControlled - 1], true);
672 }
674}
@ TEAM_ALLIANCE
Definition SharedDefines.h:760
virtual void HandlePlayerEnterZone(Player *player, uint32 zone)
Definition OutdoorPvP.cpp:277
TeamId GetTeamId(bool original=false) const
Definition Player.h:2116
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:1178

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.

677{
678 // remove buffs
679 if (player->GetTeamId() == TEAM_ALLIANCE)
680 {
681 for (int i = 0; i < 4; ++i)
683 }
684 else
685 {
686 for (int i = 0; i < 4; ++i)
688 }
690}
virtual void HandlePlayerLeaveZone(Player *player, uint32 zone)
Definition OutdoorPvP.cpp:282
void RemoveAurasDueToSpell(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, uint8 reqEffMask=0, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
Definition Unit.cpp:4941

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

◆ SendRemoveWorldStates()

void OutdoorPvPEP::SendRemoveWorldStates ( Player player)
overridevirtual

Reimplemented from OutdoorPvP.

737{
743
749
755
761
767}
@ WORLD_STATE_OPVP_EP_PLAGUEWOODTOWER_N
Definition WorldStateDefines.h:365
@ WORLD_STATE_OPVP_EP_PLAGUEWOODTOWER_N_A
Definition WorldStateDefines.h:375
@ WORLD_STATE_OPVP_EP_NORTHPASSTOWER_N_A
Definition WorldStateDefines.h:373
@ WORLD_STATE_OPVP_EP_NORTHPASSTOWER_N_H
Definition WorldStateDefines.h:374
@ WORLD_STATE_OPVP_EP_CROWNGUARDTOWER_N_H
Definition WorldStateDefines.h:381
@ WORLD_STATE_OPVP_EP_EASTWALLTOWER_N_A
Definition WorldStateDefines.h:370
@ WORLD_STATE_OPVP_EP_EASTWALLTOWER_H
Definition WorldStateDefines.h:369
@ WORLD_STATE_OPVP_EP_CROWNGUARDTOWER_N_A
Definition WorldStateDefines.h:380
@ WORLD_STATE_OPVP_EP_NORTHPASSTOWER_N
Definition WorldStateDefines.h:364
@ WORLD_STATE_OPVP_EP_CROWNGUARDTOWER_H
Definition WorldStateDefines.h:383
@ WORLD_STATE_OPVP_EP_PLAGUEWOODTOWER_A
Definition WorldStateDefines.h:376
@ WORLD_STATE_OPVP_EP_PLAGUEWOODTOWER_H
Definition WorldStateDefines.h:377
@ WORLD_STATE_OPVP_EP_EASTWALLTOWER_N
Definition WorldStateDefines.h:372
@ WORLD_STATE_OPVP_EP_CROWNGUARDTOWER_N
Definition WorldStateDefines.h:368
@ WORLD_STATE_OPVP_EP_CROWNGUARDTOWER_A
Definition WorldStateDefines.h:382
@ WORLD_STATE_OPVP_EP_PLAGUEWOODTOWER_N_H
Definition WorldStateDefines.h:366
@ WORLD_STATE_OPVP_EP_NORTHPASSTOWER_A
Definition WorldStateDefines.h:378
@ WORLD_STATE_OPVP_EP_EASTWALLTOWER_A
Definition WorldStateDefines.h:367
@ WORLD_STATE_OPVP_EP_NORTHPASSTOWER_H
Definition WorldStateDefines.h:379
@ WORLD_STATE_OPVP_EP_EASTWALLTOWER_N_H
Definition WorldStateDefines.h:371
void SendUpdateWorldState(uint32 variable, uint32 value) const
Definition PlayerUpdates.cpp:2243

References Player::SendUpdateWorldState(), WORLD_STATE_OPVP_EP_CROWNGUARDTOWER_A, WORLD_STATE_OPVP_EP_CROWNGUARDTOWER_H, WORLD_STATE_OPVP_EP_CROWNGUARDTOWER_N, WORLD_STATE_OPVP_EP_CROWNGUARDTOWER_N_A, WORLD_STATE_OPVP_EP_CROWNGUARDTOWER_N_H, WORLD_STATE_OPVP_EP_EASTWALLTOWER_A, WORLD_STATE_OPVP_EP_EASTWALLTOWER_H, WORLD_STATE_OPVP_EP_EASTWALLTOWER_N, WORLD_STATE_OPVP_EP_EASTWALLTOWER_N_A, WORLD_STATE_OPVP_EP_EASTWALLTOWER_N_H, WORLD_STATE_OPVP_EP_NORTHPASSTOWER_A, WORLD_STATE_OPVP_EP_NORTHPASSTOWER_H, WORLD_STATE_OPVP_EP_NORTHPASSTOWER_N, WORLD_STATE_OPVP_EP_NORTHPASSTOWER_N_A, WORLD_STATE_OPVP_EP_NORTHPASSTOWER_N_H, WORLD_STATE_OPVP_EP_PLAGUEWOODTOWER_A, WORLD_STATE_OPVP_EP_PLAGUEWOODTOWER_H, WORLD_STATE_OPVP_EP_PLAGUEWOODTOWER_N, WORLD_STATE_OPVP_EP_PLAGUEWOODTOWER_N_A, WORLD_STATE_OPVP_EP_PLAGUEWOODTOWER_N_H, WORLD_STATE_OPVP_EP_UI_TOWER_COUNT_A, WORLD_STATE_OPVP_EP_UI_TOWER_COUNT_H, WORLD_STATE_OPVP_EP_UI_TOWER_SLIDER_DISPLAY, WORLD_STATE_OPVP_EP_UI_TOWER_SLIDER_N, and WORLD_STATE_OPVP_EP_UI_TOWER_SLIDER_POS.

◆ SetControlledState()

void OutdoorPvPEP::SetControlledState ( uint32  index,
TeamId  teamId 
)
717{
718 EP_ControlsId[index] = teamId;
719}

References EP_ControlsId.

◆ SetupOutdoorPvP()

bool OutdoorPvPEP::SetupOutdoorPvP ( )
overridevirtual

Reimplemented from OutdoorPvP.

625{
626 for (uint8 i = 0; i < EPBuffZonesNum; ++i)
628
630
635
636 return true;
637}
std::uint8_t uint8
Definition Define.h:109
const uint32 EPBuffZones[EPBuffZonesNum]
Definition OutdoorPvPEP.h:39
const uint8 EPBuffZonesNum
Definition OutdoorPvPEP.h:32
Definition OutdoorPvPEP.h:192
Definition OutdoorPvPEP.h:140
Definition OutdoorPvPEP.h:166
Definition OutdoorPvPEP.h:218
void RegisterZone(uint32 zoneid)
Definition OutdoorPvP.cpp:641
void SetMapFromZone(uint32 zone)
Definition OutdoorPvP.cpp:718
void AddCapturePoint(OPvPCapturePoint *cp)
Definition OutdoorPvP.h:254

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

◆ Update()

bool OutdoorPvPEP::Update ( uint32  diff)
overridevirtual

Reimplemented from OutdoorPvP.

640{
641 if (OutdoorPvP::Update(diff))
642 {
645 for (int i = 0; i < EP_TOWER_NUM; ++i)
646 {
649 else if (EP_ControlsId[i] == TEAM_HORDE)
653 BuffTeams();
654 }
655 return true;
656 }
657 return false;
658}
@ EP_TOWER_NUM
Definition OutdoorPvPEP.h:74
@ TEAM_HORDE
Definition SharedDefines.h:761
void BuffTeams()
Definition OutdoorPvPEP.cpp:692
virtual bool Update(uint32 diff)
Definition OutdoorPvP.cpp:304
void SendUpdateWorldState(uint32 field, uint32 value)
Definition OutdoorPvP.cpp:456

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

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

The documentation for this class was generated from the following files: