TrinityCore
BattlegroundIC Class Reference

#include <BattlegroundIC.h>

+ Inheritance diagram for BattlegroundIC:

Public Member Functions

 BattlegroundIC (BattlegroundTemplate const *battlegroundTemplate)
 
 ~BattlegroundIC () override
 
void StartingEventOpenDoors () override
 
void PostUpdateImpl (uint32 diff) override
 Post-update hook. More...
 
void HandleKillUnit (Creature *unit, Unit *killer) override
 
void HandleKillPlayer (Player *player, Player *killer) override
 
WorldSafeLocsEntry const * GetExploitTeleportLocation (Team team) override
 
void OnCreatureCreate (Creature *creature) override
 
void OnGameObjectCreate (GameObject *gameobject) override
 
void OnMapSet (BattlegroundMap *map) override
 
void DoAction (uint32 actionId, WorldObject *source, WorldObject *target) override
 
void OnPlayerInteractWithBanner (Player *player, GameObject *banner)
 
void OnPlayerAssaultNode (Player *player, ICNodePoint &node)
 
void OnPlayerDefendNode (Player *player, ICNodePoint &node)
 
void ProcessEvent (WorldObject *target, uint32 eventId, WorldObject *invoker) override
 
- Public Member Functions inherited from Battleground
 Battleground (BattlegroundTemplate const *battlegroundTemplate)
 
 Battleground (Battleground const &)
 
virtual ~Battleground ()
 
Battlegroundoperator= (Battleground const &)=delete
 
void Update (uint32 diff)
 
virtual bool SetupBattleground ()
 
virtual void Reset ()
 
virtual void StartingEventCloseDoors ()
 
virtual void StartingEventOpenDoors ()
 
virtual void DestroyGate (Player *, GameObject *)
 
void TriggerGameEvent (uint32 gameEventId, WorldObject *source=nullptr, WorldObject *target=nullptr) override
 
char const * GetName () const
 
BattlegroundTypeId GetTypeID () const
 
BattlegroundBracketId GetBracketId () const
 
uint32 GetInstanceID () const
 
BattlegroundStatus GetStatus () const
 
uint32 GetClientInstanceID () const
 
uint32 GetElapsedTime () const
 
uint32 GetRemainingTime () const
 
uint32 GetMaxPlayers () const
 
uint32 GetMinPlayers () const
 
uint32 GetMinLevel () const
 
uint32 GetMaxLevel () const
 
uint32 GetMaxPlayersPerTeam () const
 
uint32 GetMinPlayersPerTeam () const
 
int32 GetStartDelayTime () const
 
uint8 GetArenaType () const
 
PvPTeamId GetWinner () const
 
uint32 GetScriptId () const
 
uint32 GetBonusHonorFromKill (uint32 kills) const
 
void SetBracket (PVPDifficultyEntry const *bracketEntry)
 
void SetInstanceID (uint32 InstanceID)
 
void SetStatus (BattlegroundStatus Status)
 
void SetClientInstanceID (uint32 InstanceID)
 
void SetElapsedTime (uint32 Time)
 
void SetRemainingTime (uint32 Time)
 
void SetRated (bool state)
 
void SetArenaType (uint8 type)
 
void SetWinner (PvPTeamId winnerTeamId)
 
std::unordered_set< uint32 > const * GetPvpStatIds () const
 
void ModifyStartDelayTime (int diff)
 
void SetStartDelayTime (int Time)
 
void AddToBGFreeSlotQueue ()
 
void RemoveFromBGFreeSlotQueue ()
 
void DecreaseInvitedCount (Team team)
 
void IncreaseInvitedCount (Team team)
 
uint32 GetInvitedCount (Team team) const
 
bool HasFreeSlots () const
 
uint32 GetFreeSlotsForTeam (Team team) const
 
bool isArena () const
 
bool isBattleground () const
 
bool isRated () const
 
BattlegroundPlayerMap const & GetPlayers () const
 
uint32 GetPlayersSize () const
 
uint32 GetPlayerScoresSize () const
 
void StartBattleground ()
 
GameObjectGetBGObject (uint32 type, bool logError=true)
 
CreatureGetBGCreature (uint32 type, bool logError=true)
 
uint32 GetMapId () const
 
void SetBgMap (BattlegroundMap *map)
 
BattlegroundMapGetBgMap () const
 
BattlegroundMapFindBgMap () const
 
WorldSafeLocsEntry const * GetTeamStartPosition (TeamId teamId) const
 
float GetStartMaxDist () const
 
void SendPacketToTeam (Team team, WorldPacket const *packet, Player *except=nullptr) const
 
void SendPacketToAll (WorldPacket const *packet) const
 
void SendChatMessage (Creature *source, uint8 textId, WorldObject *target=nullptr)
 
void SendBroadcastText (uint32 id, ChatMsg msgType, WorldObject const *target=nullptr)
 
template<class Do >
void BroadcastWorker (Do &_do)
 
void PlaySoundToTeam (uint32 SoundID, Team team)
 
void PlaySoundToAll (uint32 SoundID)
 
void CastSpellOnTeam (uint32 SpellID, Team team)
 
void RemoveAuraOnTeam (uint32 SpellID, Team team)
 
void RewardHonorToTeam (uint32 Honor, Team team)
 
void RewardReputationToTeam (uint32 faction_id, uint32 Reputation, Team team)
 
void UpdateWorldState (int32 worldStateId, int32 value, bool hidden=false)
 
virtual void EndBattleground (Team winner)
 
void BlockMovement (Player *player)
 
void SendMessageToAll (uint32 entry, ChatMsg type, Player const *source=nullptr)
 
void PSendMessageToAll (uint32 entry, ChatMsg type, Player const *source,...)
 
GroupGetBgRaid (Team team) const
 
void SetBgRaid (Team team, Group *bg_raid)
 
virtual void BuildPvPLogDataPacket (WorldPackets::Battleground::PVPMatchStatistics &pvpLogData) const
 
BattlegroundScore const * GetBattlegroundScore (Player *player) const
 
virtual bool UpdatePlayerScore (Player *player, uint32 type, uint32 value, bool doAddHonor=true)
 
void UpdatePvpStat (Player *player, uint32 pvpStatId, uint32 value)
 
uint32 GetPlayersCountByTeam (Team team) const
 
uint32 GetAlivePlayersCountByTeam (Team team) const
 
void UpdatePlayersCountByTeam (Team team, bool remove)
 
virtual void CheckWinConditions ()
 
void SetArenaTeamIdForTeam (Team team, uint32 ArenaTeamId)
 
uint32 GetArenaTeamIdForTeam (Team team) const
 
uint32 GetArenaTeamIdByIndex (TeamId teamId) const
 
void SetArenaMatchmakerRating (Team team, uint32 MMR)
 
uint32 GetArenaMatchmakerRating (Team team) const
 
virtual void HandleAreaTrigger (Player *, uint32, bool)
 
virtual void HandleKillPlayer (Player *player, Player *killer)
 
virtual void HandleKillUnit (Creature *, Unit *)
 
virtual void EventPlayerDroppedFlag (Player *)
 
virtual void EventPlayerClickedOnFlag (Player *, GameObject *)
 
void EventPlayerLoggedIn (Player *player)
 
void EventPlayerLoggedOut (Player *player)
 
void ProcessEvent (WorldObject *, uint32, WorldObject *) override
 
virtual void HandlePlayerResurrect (Player *)
 
virtual WorldSafeLocsEntry const * GetClosestGraveyard (Player *player)
 
virtual WorldSafeLocsEntry const * GetExploitTeleportLocation (Team)
 
void TeleportPlayerToExploitLocation (Player *player)
 
virtual void AddPlayer (Player *player, BattlegroundQueueTypeId queueId)
 
void AddOrSetPlayerToCorrectBgGroup (Player *player, Team team)
 
virtual void RemovePlayerAtLeave (ObjectGuid guid, bool Transport, bool SendPacket)
 
void SpawnBGObject (uint32 type, uint32 respawntime)
 
virtual bool AddObject (uint32 type, uint32 entry, float x, float y, float z, float o, float rotation0, float rotation1, float rotation2, float rotation3, uint32 respawnTime=0, GOState goState=GO_STATE_READY)
 
bool AddObject (uint32 type, uint32 entry, Position const &pos, float rotation0, float rotation1, float rotation2, float rotation3, uint32 respawnTime=0, GOState goState=GO_STATE_READY)
 
virtual CreatureAddCreature (uint32 entry, uint32 type, float x, float y, float z, float o, TeamId teamId=TEAM_NEUTRAL, uint32 respawntime=0, Transport *transport=nullptr)
 
CreatureAddCreature (uint32 entry, uint32 type, Position const &pos, TeamId teamId=TEAM_NEUTRAL, uint32 respawntime=0, Transport *transport=nullptr)
 
bool DelCreature (uint32 type)
 
bool DelObject (uint32 type)
 
bool RemoveObjectFromWorld (uint32 type)
 
virtual bool AddSpiritGuide (uint32 type, float x, float y, float z, float o, TeamId teamId=TEAM_NEUTRAL)
 
bool AddSpiritGuide (uint32 type, Position const &pos, TeamId teamId=TEAM_NEUTRAL)
 
int32 GetObjectType (ObjectGuid guid)
 
void DoorOpen (uint32 type)
 
void DoorClose (uint32 type)
 
virtual bool HandlePlayerUnderMap (Player *)
 
Team GetPlayerTeam (ObjectGuid guid) const
 
Team GetOtherTeam (Team team) const
 
bool IsPlayerInBattleground (ObjectGuid guid) const
 
bool IsPlayerMercenaryInBattleground (ObjectGuid guid) const
 
bool ToBeDeleted () const
 
void SetDeleteThis ()
 
void RewardXPAtKill (Player *killer, Player *victim)
 
bool CanAwardArenaPoints () const
 
virtual ObjectGuid GetFlagPickerGUID (int32=-1) const
 
virtual void SetDroppedFlagGUID (ObjectGuid, int32=-1)
 
virtual void HandleQuestComplete (uint32, Player *)
 
virtual bool CanActivateGO (int32, uint32) const
 
virtual bool IsSpellAllowed (uint32, Player const *) const
 
uint32 GetTeamScore (TeamId teamId) const
 
virtual Team GetPrematureWinner ()
 
uint8 GetUniqueBracketId () const
 
void AddPlayerPosition (WorldPackets::Battleground::BattlegroundPlayerPosition const &position)
 
void RemovePlayerPosition (ObjectGuid guid)
 
BattlegroundPlayer const * GetBattlegroundPlayerData (ObjectGuid const &playerGuid) const
 
virtual void OnMapSet (BattlegroundMap *map)
 
Trinity::unique_weak_ptr< BattlegroundGetWeakPtr () const
 
void SetWeakPtr (Trinity::unique_weak_ptr< Battleground > weakRef)
 
- Public Member Functions inherited from ZoneScript
 ZoneScript ()
 
 ZoneScript (ZoneScript const &right)
 
 ZoneScript (ZoneScript &&right) noexcept
 
ZoneScriptoperator= (ZoneScript const &right)
 
ZoneScriptoperator= (ZoneScript &&right) noexcept
 
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 OnAreaTriggerCreate (AreaTrigger *areaTrigger)
 
virtual void OnAreaTriggerRemove (AreaTrigger *areaTrigger)
 
virtual void OnUnitDeath (Unit *unit)
 
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 TriggerGameEvent (uint32 gameEventId, WorldObject *source=nullptr, WorldObject *target=nullptr)
 
virtual void ProcessEvent (WorldObject *, uint32, WorldObject *)
 
virtual void DoAction (uint32 actionId, WorldObject *source=nullptr, WorldObject *target=nullptr)
 
virtual void OnFlagStateChange (GameObject *flagInBase, FlagState oldValue, FlagState newValue, Player *player)
 
virtual bool CanCaptureFlag (AreaTrigger *areaTrigger, Player *player)
 
virtual void OnCaptureFlag (AreaTrigger *areaTrigger, Player *player)
 

Private Member Functions

void UpdateNodeWorldState (ICNodePoint const &node)
 
void HandleCapturedNodes (ICNodePoint &node)
 
void HandleCaptureNodeAction (GameObject *banner)
 
void OnGateDestroyed (GameObject *gate, WorldObject *destroyer)
 

Static Private Member Functions

static uint32 GetGateIDFromEntry (uint32 id)
 
static int32 GetWorldStateFromGateEntry (uint32 id, bool open)
 
static ICNodePointType BannerToNodeType (uint32 bannerId)
 

Private Attributes

std::array< uint16, PVP_TEAMS_COUNT_factionReinforcements
 
std::array< BG_IC_GateState, 6 > _gateStatus
 
std::array< std::unique_ptr< ICNodePoint >, 7 > _nodePoints
 
std::array< ObjectGuid, PVP_TEAMS_COUNT_gunshipGUIDs
 
GuidVector _teleporterGUIDs
 
GuidVector _teleporterEffectGUIDs
 
GuidVector _mainGateDoorGUIDs
 
GuidVector _portcullisGUIDs
 
GuidVector _wallGUIDs
 
std::array< GuidVector, PVP_TEAMS_COUNT_cannonGUIDs
 
std::array< GuidVector, PVP_TEAMS_COUNT_keepGateGUIDs
 
std::array< ObjectGuid, PVP_TEAMS_COUNT_keepBannerGUIDs
 
ObjectGuid _gunshipTeleportTarget
 
TaskScheduler _scheduler
 
TimeTracker _resourceTimer
 

Additional Inherited Members

- Public Types inherited from Battleground
typedef std::map< ObjectGuid, BattlegroundPlayerBattlegroundPlayerMap
 
typedef std::map< ObjectGuid, BattlegroundScore * > BattlegroundScoreMap
 
- Static Public Member Functions inherited from Battleground
static TeamId GetTeamIndexByTeamId (Team team)
 
- Public Attributes inherited from Battleground
GuidVector BgObjects
 
GuidVector BgCreatures
 
- Protected Member Functions inherited from Battleground
void EndNow ()
 
void PlayerAddedToBGCheckIfBGIsRunning (Player *player)
 
Player_GetPlayer (ObjectGuid guid, bool offlineRemove, char const *context) const
 
Player_GetPlayer (BattlegroundPlayerMap::iterator itr, char const *context)
 
Player_GetPlayer (BattlegroundPlayerMap::const_iterator itr, char const *context) const
 
Player_GetPlayerForTeam (Team team, BattlegroundPlayerMap::const_iterator itr, char const *context) const
 
virtual bool PreUpdateImpl (uint32)
 Pre-update hook. More...
 
virtual void PostUpdateImpl (uint32)
 Post-update hook. More...
 
void _ProcessOfflineQueue ()
 
void _ProcessProgress (uint32 diff)
 
void _ProcessLeave (uint32 diff)
 
void _ProcessJoin (uint32 diff)
 
void _CheckSafePositions (uint32 diff)
 
void _ProcessPlayerPositionBroadcast (uint32 diff)
 
virtual void RemovePlayer (Player *, ObjectGuid, uint32)
 
- Protected Attributes inherited from Battleground
BattlegroundScoreMap PlayerScores
 
BattlegroundPlayerMap m_Players
 
uint8 m_Events
 
BattlegroundStartTimeIntervals StartDelayTimes [BG_STARTING_EVENT_COUNT]
 
uint32 StartMessageIds [BG_STARTING_EVENT_COUNT]
 
int32 m_TeamScores [PVP_TEAMS_COUNT]
 

Detailed Description

Definition at line 322 of file BattlegroundIC.h.

Constructor & Destructor Documentation

◆ BattlegroundIC()

BattlegroundIC::BattlegroundIC ( BattlegroundTemplate const *  battlegroundTemplate)

Definition at line 119 of file BattlegroundIC.cpp.

+ Here is the call graph for this function:

◆ ~BattlegroundIC()

BattlegroundIC::~BattlegroundIC ( )
overridedefault

Member Function Documentation

◆ BannerToNodeType()

ICNodePointType BattlegroundIC::BannerToNodeType ( uint32  bannerId)
staticprivate

Definition at line 308 of file BattlegroundIC.cpp.

+ Here is the caller graph for this function:

◆ DoAction()

void BattlegroundIC::DoAction ( uint32  actionId,
WorldObject source,
WorldObject target 
)
overridevirtual

Reimplemented from ZoneScript.

Definition at line 486 of file BattlegroundIC.cpp.

+ Here is the call graph for this function:

◆ GetExploitTeleportLocation()

WorldSafeLocsEntry const * BattlegroundIC::GetExploitTeleportLocation ( Team  team)
overridevirtual

Reimplemented from Battleground.

Definition at line 389 of file BattlegroundIC.cpp.

◆ GetGateIDFromEntry()

uint32 BattlegroundIC::GetGateIDFromEntry ( uint32  id)
staticprivate

Definition at line 248 of file BattlegroundIC.cpp.

+ Here is the caller graph for this function:

◆ GetWorldStateFromGateEntry()

int32 BattlegroundIC::GetWorldStateFromGateEntry ( uint32  id,
bool  open 
)
staticprivate

Definition at line 269 of file BattlegroundIC.cpp.

+ Here is the caller graph for this function:

◆ HandleCapturedNodes()

void BattlegroundIC::HandleCapturedNodes ( ICNodePoint node)
private

Definition at line 359 of file BattlegroundIC.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ HandleCaptureNodeAction()

void BattlegroundIC::HandleCaptureNodeAction ( GameObject banner)
private

Definition at line 619 of file BattlegroundIC.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ HandleKillPlayer()

void BattlegroundIC::HandleKillPlayer ( Player player,
Player killer 
)
overridevirtual

Reimplemented from Battleground.

Definition at line 231 of file BattlegroundIC.cpp.

+ Here is the call graph for this function:

◆ HandleKillUnit()

void BattlegroundIC::HandleKillUnit ( Creature unit,
Unit killer 
)
overridevirtual

Reimplemented from Battleground.

Definition at line 205 of file BattlegroundIC.cpp.

+ Here is the call graph for this function:

◆ OnCreatureCreate()

void BattlegroundIC::OnCreatureCreate ( Creature creature)
overridevirtual

Reimplemented from ZoneScript.

Definition at line 394 of file BattlegroundIC.cpp.

+ Here is the call graph for this function:

◆ OnGameObjectCreate()

void BattlegroundIC::OnGameObjectCreate ( GameObject gameobject)
overridevirtual

Reimplemented from ZoneScript.

Definition at line 419 of file BattlegroundIC.cpp.

+ Here is the call graph for this function:

◆ OnGateDestroyed()

void BattlegroundIC::OnGateDestroyed ( GameObject gate,
WorldObject destroyer 
)
private

Definition at line 642 of file BattlegroundIC.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ OnMapSet()

void BattlegroundIC::OnMapSet ( BattlegroundMap map)
overridevirtual

Reimplemented from Battleground.

Definition at line 469 of file BattlegroundIC.cpp.

+ Here is the call graph for this function:

◆ OnPlayerAssaultNode()

void BattlegroundIC::OnPlayerAssaultNode ( Player player,
ICNodePoint node 
)

Definition at line 547 of file BattlegroundIC.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ OnPlayerDefendNode()

void BattlegroundIC::OnPlayerDefendNode ( Player player,
ICNodePoint node 
)

Definition at line 592 of file BattlegroundIC.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ OnPlayerInteractWithBanner()

void BattlegroundIC::OnPlayerInteractWithBanner ( Player player,
GameObject banner 
)

Definition at line 502 of file BattlegroundIC.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ PostUpdateImpl()

void BattlegroundIC::PostUpdateImpl ( uint32  )
overridevirtual

Post-update hook.

Will be called after battleground update has passed. May be used to implement custom update effects in subclasses.

Parameters
diffa time difference between two worldserver update loops in milliseconds.
See also
Update(), PreUpdateImpl().

Reimplemented from Battleground.

Definition at line 144 of file BattlegroundIC.cpp.

+ Here is the call graph for this function:

◆ ProcessEvent()

void BattlegroundIC::ProcessEvent ( WorldObject target,
uint32  eventId,
WorldObject invoker 
)
overridevirtual

Reimplemented from Battleground.

Definition at line 609 of file BattlegroundIC.cpp.

+ Here is the call graph for this function:

◆ StartingEventOpenDoors()

void BattlegroundIC::StartingEventOpenDoors ( )
overridevirtual

Reimplemented from Battleground.

Definition at line 167 of file BattlegroundIC.cpp.

+ Here is the call graph for this function:

◆ UpdateNodeWorldState()

void BattlegroundIC::UpdateNodeWorldState ( ICNodePoint const &  node)
private

Definition at line 299 of file BattlegroundIC.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Member Data Documentation

◆ _cannonGUIDs

std::array<GuidVector, PVP_TEAMS_COUNT> BattlegroundIC::_cannonGUIDs
private

Definition at line 357 of file BattlegroundIC.h.

◆ _factionReinforcements

std::array<uint16, PVP_TEAMS_COUNT> BattlegroundIC::_factionReinforcements
private

Definition at line 348 of file BattlegroundIC.h.

◆ _gateStatus

std::array<BG_IC_GateState, 6> BattlegroundIC::_gateStatus
private

Definition at line 349 of file BattlegroundIC.h.

◆ _gunshipGUIDs

std::array<ObjectGuid, PVP_TEAMS_COUNT> BattlegroundIC::_gunshipGUIDs
private

Definition at line 351 of file BattlegroundIC.h.

◆ _gunshipTeleportTarget

ObjectGuid BattlegroundIC::_gunshipTeleportTarget
private

Definition at line 360 of file BattlegroundIC.h.

◆ _keepBannerGUIDs

std::array<ObjectGuid, PVP_TEAMS_COUNT> BattlegroundIC::_keepBannerGUIDs
private

Definition at line 359 of file BattlegroundIC.h.

◆ _keepGateGUIDs

std::array<GuidVector, PVP_TEAMS_COUNT> BattlegroundIC::_keepGateGUIDs
private

Definition at line 358 of file BattlegroundIC.h.

◆ _mainGateDoorGUIDs

GuidVector BattlegroundIC::_mainGateDoorGUIDs
private

Definition at line 354 of file BattlegroundIC.h.

◆ _nodePoints

std::array<std::unique_ptr<ICNodePoint>, 7> BattlegroundIC::_nodePoints
private

Definition at line 350 of file BattlegroundIC.h.

◆ _portcullisGUIDs

GuidVector BattlegroundIC::_portcullisGUIDs
private

Definition at line 355 of file BattlegroundIC.h.

◆ _resourceTimer

TimeTracker BattlegroundIC::_resourceTimer
private

Definition at line 363 of file BattlegroundIC.h.

◆ _scheduler

TaskScheduler BattlegroundIC::_scheduler
private

Definition at line 362 of file BattlegroundIC.h.

◆ _teleporterEffectGUIDs

GuidVector BattlegroundIC::_teleporterEffectGUIDs
private

Definition at line 353 of file BattlegroundIC.h.

◆ _teleporterGUIDs

GuidVector BattlegroundIC::_teleporterGUIDs
private

Definition at line 352 of file BattlegroundIC.h.

◆ _wallGUIDs

GuidVector BattlegroundIC::_wallGUIDs
private

Definition at line 356 of file BattlegroundIC.h.


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