Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Loading...
Searching...
No Matches
BattlefieldWG Class Reference

#include <BattlefieldWG.h>

Inheritance diagram for BattlefieldWG:
Collaboration diagram for BattlefieldWG:

Public Member Functions

void BrokenWallOrTower (TeamId team)
 Called when a wall/tower is broken.
bool CanInteractWithRelic () const
 Check if players can interact with the relic (Only if the last door has been broken).
void DoCompleteOrIncrementAchievement (uint32 achievement, Player *player, uint8 incrementNumber=1)
void FillInitialWorldStates (WorldStateBuilder &builder)
bool FindAndRemoveVehicleFromList (Unit *vehicle)
uint32 GetData (uint32 data) const
GameObjectGetRelic ()
 Return pointer to relic object.
uint8 GetSpiritGraveyardId (uint32 areaId) const
void HandleKill (Player *killer, Unit *victim)
 Called when a Unit is kill in battlefield zone.
void OnBattleEnd (bool endByTimer)
 Called when battle end.
void OnBattleStart ()
 Called when the battle start.
void OnCreatureCreate (Creature *creature)
 Called when a creature is created.
void OnCreatureRemove (Creature *creature)
 Called when a creature is removed.
void OnGameObjectCreate (GameObject *go)
 Called when a gameobject is created.
void OnPlayerEnterZone (Player *player)
 Called when player enters in WG zone.
void OnPlayerJoinWar (Player *player)
 Called when player accept invite to join battle.
void OnPlayerLeaveWar (Player *player)
 Called when player left the battle.
void OnPlayerLeaveZone (Player *player)
 Called when player left the WG zone.
void OnStartGrouping ()
 Called when grouping starts (15 minutes before battlestart).
void OnUnitDeath (Unit *unit)
void ProcessEvent (WorldObject *obj, uint32 eventId)
void PromotePlayer (Player *killer)
void RemoveAurasFromPlayer (Player *player)
void SendInitWorldStatesTo (Player *player)
void SendInitWorldStatesToAll ()
 Send all worldstate data to all player in zone.
void SetRelic (uint64 relicGUID)
 Define relic object.
void SetRelicInteractible (bool allow)
 Define if player can interact with the relic.
bool SetupBattlefield ()
 Called when battlefield is setup, at server start.
bool Update (uint32 diff)
 Called for update battlefield data.
void UpdateCounterVehicle (bool init)
void UpdateDamagedTowerCount (TeamId team)
 Called when a tower is damaged.
void UpdatedDestroyedTowerCount (TeamId team)
 Called when tower is broken.
void UpdateTenacity ()
void UpdateVehicleCountWG ()
 ~BattlefieldWG ()
Public Member Functions inherited from Battlefield
bool AddOrSetPlayerToCorrectBfGroup (Player *player)
 Force player to join a battlefield group.
virtual void AddPlayerToResurrectQueue (uint64 npc_guid, uint64 player_guid)
void AskToLeaveQueue (Player *player)
 Battlefield ()
 Constructor.
bool CanFlyIn () const
 Return if we can use mount in battlefield.
void DoPlaySoundToAll (uint32 SoundID)
void EndBattle (bool endByTimer)
TeamId GetAttackerTeam () const
uint32 GetBattleId () const
WorldSafeLocsEntry const * GetClosestGraveYard (Player *player)
CreatureGetCreature (uint64 GUID)
virtual uint64 GetData64 (uint32 dataId) const
TeamId GetDefenderTeam () const
GroupGetFreeBfRaid (TeamIdTeamId TeamIdTeamId)
 Find a not full battlefield group, if there is no, create one.
GameObjectGetGameObject (uint64 GUID)
BfGraveyardGetGraveyardById (uint32 id) const
GraveyardVect GetGraveyardVector ()
GroupGetGroupPlayer (uint64 guid, TeamIdTeamId TeamIdTeamId)
 Return battlefield group where player is.
uint64 GetGUID () const
TeamId GetOtherTeam (TeamId team)
uint32 GetTimer () const
uint32 GetTypeId () const
uint32 GetZoneId () const
void HandlePlayerEnterZone (Player *player, uint32 zone)
 Called when player (player) enter in zone.
void HandlePlayerLeaveZone (Player *player, uint32 zone)
 Called when player (player) leave the zone.
void HideNpc (Creature *creature)
void InitStalker (uint32 entry, float x, float y, float z, float o)
void InvitePlayersInQueueToWar ()
 Invite all players in queue to join battle on battle start.
void InvitePlayersInZoneToQueue ()
 Invite all players in zone to join the queue, called x minutes before battle start in Update().
void InvitePlayersInZoneToWar ()
 Invite all players in zone to join battle on battle start.
void InvitePlayerToQueue (Player *player)
void InvitePlayerToWar (Player *player)
bool IsEnabled () const
 Return if battlefield is enable.
bool IsWarTime () const
 Return true if battle is start, false if battle is not started.
void KickPlayerFromBattlefield (uint64 guid)
 Kick player from battlefield and teleport him to kick-point location.
void PlayerAcceptInviteToQueue (Player *player)
void PlayerAcceptInviteToWar (Player *player)
void RemovePlayerFromResurrectQueue (uint64 player_guid)
void SendAreaSpiritHealerQueryOpcode (Player *player, uint64 guid)
void SendUpdateWorldState (uint32 field, uint32 value)
 Update data of a worldstate to all players present in zone.
void SendWarningToAllInZone (uint32 entry)
void SendWarningToPlayer (Player *player, uint32 entry)
virtual void SetData (uint32 dataId, uint32 value)
virtual void SetData64 (uint32 dataId, uint64 value)
void SetDefenderTeam (TeamId team)
void SetGraveyardNumber (uint32 number)
void SetTimer (uint32 timer)
void ShowNpc (Creature *creature, bool aggressive)
CreatureSpawnCreature (uint32 entry, const Position &pos, TeamId team)
CreatureSpawnCreature (uint32 entry, float x, float y, float z, float o, TeamId team)
GameObjectSpawnGameObject (uint32 entry, float x, float y, float z, float o)
void StartBattle ()
void TeamApplyBuff (TeamId team, uint32 spellId, uint32 spellId2=0)
void ToggleBattlefield (bool enable)
 Enable or Disable battlefield.
virtual void UpdateData (uint32 index, int32 pad)
virtual ~Battlefield ()
 Destructor.
Public Member Functions inherited from ZoneScript
virtual uint32 GetCreatureEntry (uint32, CreatureData const *data)
virtual uint32 GetGameObjectEntry (uint32, uint32 entry)
virtual void OnGameObjectRemove (GameObject *)
 ZoneScript ()
virtual ~ZoneScript ()

Protected Attributes

GameObjectBuilding BuildingsInZone
GuidSet CanonList
GuidSet DefenderPortalList
GuidSet KeepCreature [2]
bool m_isRelicInteractible
GuidSet m_KeepGameObject [2]
uint32 m_saveTimer
uint32 m_tenacityStack
uint64 m_titansRelicGUID
GuidSet m_vehicles [2]
GuidSet OutsideCreature [2]
Workshop WorkshopsList
Protected Attributes inherited from Battlefield
WorldLocation KickPosition
uint32 m_BattleId
uint32 m_BattleTime
BfCapturePointMap m_capturePoints
std::vector< uint32m_Data32
std::vector< uint64m_Data64
TeamId m_DefenderTeam
GraveyardVect m_GraveyardList
GuidSet m_Groups [BG_TEAMS_COUNT]
uint64 m_Guid
PlayerTimerMap m_InvitedPlayers [BG_TEAMS_COUNT]
bool m_isActive
bool m_IsEnabled
uint32 m_LastResurectTimer
Mapm_Map
uint32 m_MapId
uint32 m_MaxPlayer
uint32 m_MinLevel
uint32 m_MinPlayer
uint32 m_NoWarBattleTime
GuidSet m_players [BG_TEAMS_COUNT]
GuidSet m_PlayersInQueue [BG_TEAMS_COUNT]
GuidSet m_PlayersInWar [BG_TEAMS_COUNT]
PlayerTimerMap m_PlayersWillBeKick [BG_TEAMS_COUNT]
uint32 m_RestartAfterCrash
bool m_StartGrouping
uint32 m_StartGroupingTimer
uint32 m_TimeForAcceptInvite
uint32 m_Timer
uint32 m_TypeId
uint32 m_uiKickAfkPlayersTimer
uint32 m_uiKickDontAcceptTimer
uint32 m_ZoneId
uint64 StalkerGuid

Additional Inherited Members

Public Types inherited from Battlefield
typedef std::map< uint32, BfCapturePoint * > BfCapturePointMap
 typedef of map witch store capturepoint and the associate gameobject entry
Protected Member Functions inherited from Battlefield
void AddCapturePoint (BfCapturePoint *cp)
void BroadcastPacketToQueue (WorldPacket &data) const
void BroadcastPacketToWar (WorldPacket &data) const
void BroadcastPacketToZone (WorldPacket &data) const
BfCapturePointGetCapturePoint (uint32 lowguid) const
bool HasPlayer (Player *player) const
void KickAfkPlayers ()
void RegisterZone (uint32 zoneid)
virtual void SendRemoveWorldStates (Player *)
void TeamCastSpell (TeamId team, int32 spellId)

Detailed Description

Definition at line 258 of file BattlefieldWG.h.

Constructor & Destructor Documentation

◆ ~BattlefieldWG()

BattlefieldWG::~BattlefieldWG ( )

Definition at line 29 of file BattlefieldWG.cpp.

References BuildingsInZone, and WorkshopsList.

Member Function Documentation

◆ BrokenWallOrTower()

void BattlefieldWG::BrokenWallOrTower ( TeamId team)

Called when a wall/tower is broken.

  • Update quest

Definition at line 847 of file BattlefieldWG.cpp.

◆ CanInteractWithRelic()

bool BattlefieldWG::CanInteractWithRelic ( ) const
inline

Check if players can interact with the relic (Only if the last door has been broken).

Definition at line 378 of file BattlefieldWG.h.

References m_isRelicInteractible.

Referenced by ProcessEvent().

◆ DoCompleteOrIncrementAchievement()

void BattlefieldWG::DoCompleteOrIncrementAchievement ( uint32 achievement,
Player * player,
uint8 incrementNumber = 1 )
virtual

Reimplemented from Battlefield.

Definition at line 417 of file BattlefieldWG.cpp.

References ACHIEVEMENTS_WIN_WG_100, Player::CompletedAchievement(), and sAchievementMgr.

Referenced by OnBattleEnd(), and UpdatedDestroyedTowerCount().

◆ FillInitialWorldStates()

◆ FindAndRemoveVehicleFromList()

bool BattlefieldWG::FindAndRemoveVehicleFromList ( Unit * vehicle)

◆ GetData()

◆ GetRelic()

GameObject * BattlefieldWG::GetRelic ( )
inline

Return pointer to relic object.

Definition at line 372 of file BattlefieldWG.h.

References Battlefield::GetGameObject(), and m_titansRelicGUID.

Referenced by ProcessEvent().

◆ GetSpiritGraveyardId()

◆ HandleKill()

void BattlefieldWG::HandleKill ( Player * killer,
Unit * victim )
virtual

Called when a Unit is kill in battlefield zone.

@todoRecent PvP activity worldstate

Reimplemented from Battlefield.

Definition at line 616 of file BattlefieldWG.cpp.

References Battlefield::GetCreature(), Object::GetEntry(), Battlefield::GetOtherTeam(), Player::GetTeamId(), Object::GetTypeId(), KeepCreature, Battlefield::m_PlayersInWar, PromotePlayer(), sObjectAccessor, and TYPEID_PLAYER.

◆ OnBattleEnd()

◆ OnBattleStart()

◆ OnCreatureCreate()

◆ OnCreatureRemove()

void BattlefieldWG::OnCreatureRemove ( Creature * creature)
virtual

Called when a creature is removed.

  • Update vehicle count

Reimplemented from ZoneScript.

Definition at line 543 of file BattlefieldWG.cpp.

◆ OnGameObjectCreate()

◆ OnPlayerEnterZone()

void BattlefieldWG::OnPlayerEnterZone ( Player * player)
virtual

Called when player enters in WG zone.

  • Update aura
  • Update worldstate
    Parameters
    player: Player who enters the zone

Reimplemented from Battlefield.

Definition at line 780 of file BattlefieldWG.cpp.

References Unit::AddAura(), Battlefield::m_DefenderTeam, Battlefield::m_isActive, RemoveAurasFromPlayer(), SendInitWorldStatesTo(), SPELL_ALLIANCE_CONTROL_PHASE_SHIFT, SPELL_HORDE_CONTROL_PHASE_SHIFT, and TEAM_HORDE.

◆ OnPlayerJoinWar()

void BattlefieldWG::OnPlayerJoinWar ( Player * player)
virtual

Called when player accept invite to join battle.

  • Update aura
  • Teleport if it needed
  • Update worldstate
  • Update tenacity
    Parameters
    playerPlayer who accepted invite

Reimplemented from Battlefield.

Definition at line 718 of file BattlefieldWG.cpp.

References BATTLEFIELD_WG_DATA_BROKEN_TOWER_ATT, Unit::CastSpell(), Battlefield::GetAttackerTeam(), GetData(), Battlefield::GetDefenderTeam(), Player::GetTeamId(), WorldObject::GetZoneId(), Battlefield::m_ZoneId, RemoveAurasFromPlayer(), SendInitWorldStatesTo(), Unit::SetAuraStack(), SPELL_RECRUIT, SPELL_TOWER_CONTROL, TEAM_HORDE, Player::TeleportTo(), and UpdateTenacity().

◆ OnPlayerLeaveWar()

void BattlefieldWG::OnPlayerLeaveWar ( Player * player)
virtual

◆ OnPlayerLeaveZone()

void BattlefieldWG::OnPlayerLeaveZone ( Player * player)
virtual

◆ OnStartGrouping()

void BattlefieldWG::OnStartGrouping ( )
virtual

Called when grouping starts (15 minutes before battlestart).

  • Invite all player in zone to join queue

Reimplemented from Battlefield.

Definition at line 439 of file BattlefieldWG.cpp.

References BATTLEFIELD_WG_TEXT_WILL_START, and Battlefield::SendWarningToAllInZone().

◆ OnUnitDeath()

void BattlefieldWG::OnUnitDeath ( Unit * unit)
virtual

◆ ProcessEvent()

◆ PromotePlayer()

◆ RemoveAurasFromPlayer()

◆ SendInitWorldStatesTo()

◆ SendInitWorldStatesToAll()

void BattlefieldWG::SendInitWorldStatesToAll ( )
virtual

Send all worldstate data to all player in zone.

Implements Battlefield.

Definition at line 839 of file BattlefieldWG.cpp.

References Battlefield::m_players, SendInitWorldStatesTo(), and sObjectAccessor.

Referenced by UpdatedDestroyedTowerCount().

◆ SetRelic()

void BattlefieldWG::SetRelic ( uint64 relicGUID)
inline

Define relic object.

Definition at line 375 of file BattlefieldWG.h.

References m_titansRelicGUID.

◆ SetRelicInteractible()

void BattlefieldWG::SetRelicInteractible ( bool allow)
inline

Define if player can interact with the relic.

Definition at line 381 of file BattlefieldWG.h.

References m_isRelicInteractible.

◆ SetupBattlefield()

bool BattlefieldWG::SetupBattlefield ( )
virtual

Called when battlefield is setup, at server start.

Reimplemented from Battlefield.

Definition at line 38 of file BattlefieldWG.cpp.

References BATTLEFIELD_BATTLEID_WG, BATTLEFIELD_WG, BATTLEFIELD_WG_DATA_MAX, BATTLEFIELD_WG_GRAVEYARD_MAX, BATTLEFIELD_WG_MAPID, BATTLEFIELD_WG_NPC_STALKER, BATTLEFIELD_WG_WORKSHOP_KEEP_WEST, BATTLEFIELD_WG_WORLD_STATE_ACTIVE, BATTLEFIELD_WG_WORLD_STATE_DEFENDER, BATTLEFIELD_WG_ZONEID, BuildingsInZone, CanonList, ClockWorldState, CONFIG_WINTERGRASP_BATTLETIME, CONFIG_WINTERGRASP_ENABLE, CONFIG_WINTERGRASP_NOBATTLETIME, CONFIG_WINTERGRASP_PLR_MAX, CONFIG_WINTERGRASP_PLR_MIN, CONFIG_WINTERGRASP_PLR_MIN_LVL, CONFIG_WINTERGRASP_RESTART_AFTER_CRASH, DefenderPortalList, GAMEOBJECT_FIELD_FACTION_TEMPLATE, Battlefield::GetAttackerTeam(), Battlefield::GetCreature(), Battlefield::GetDefenderTeam(), WGWorkshop::GiveControlTo(), GO_DESTRUCTIBLE_DESTROYED, GO_WINTERGRASP_VAULT_GATE, Battlefield::HideNpc(), IN_MILLISECONDS, BfWGGameObjectBuilding::Init(), BfGraveyard::Initialize(), Battlefield::InitStalker(), Battlefield::IsEnabled(), KeepCreature, Battlefield::KickPosition, Battlefield::m_BattleId, Battlefield::m_BattleTime, Battlefield::m_Data32, Battlefield::m_DefenderTeam, Battlefield::m_GraveyardList, Battlefield::m_isActive, Battlefield::m_IsEnabled, Battlefield::m_Map, Battlefield::m_MapId, Battlefield::m_MaxPlayer, Battlefield::m_MinLevel, Battlefield::m_MinPlayer, Battlefield::m_NoWarBattleTime, Battlefield::m_RestartAfterCrash, m_saveTimer, Battlefield::m_StartGrouping, Battlefield::m_StartGroupingTimer, m_tenacityStack, Battlefield::m_TimeForAcceptInvite, Battlefield::m_Timer, Battlefield::m_TypeId, Battlefield::m_ZoneId, MINUTE, NPC_WINTERGRASP_TOWER_CANNON, OutsideCreature, Battlefield::RegisterZone(), Battlefield::SetGraveyardNumber(), BfGraveyardWG::SetTextId(), sMapMgr, Battlefield::SpawnCreature(), Battlefield::SpawnGameObject(), sWorld, TEAM_ALLIANCE, TEAM_HORDE, TEAM_NEUTRAL, UpdateCounterVehicle(), WG_MAX_KEEP_NPC, WG_MAX_OBJ, WG_MAX_OUTSIDE_NPC, WG_MAX_TELEPORTER, WG_MAX_TURRET, WG_MAX_WORKSHOP, WG_OUTSIDE_ALLIANCE_NPC, WGGameObjectBuilding, WGGraveYard, WGKeepNPC, WGOutsideNPC, WGPortalDefenderData, WGTurret, WintergraspFaction, WintergraspStalkerPos, and WorkshopsList.

◆ Update()

bool BattlefieldWG::Update ( uint32 diff)
virtual

Called for update battlefield data.

  • Save battle timer in database every minutes
  • Update imunity aura from graveyard
    Parameters
    diff: time elapsed since the last call (in ms)

Reimplemented from Battlefield.

Definition at line 191 of file BattlefieldWG.cpp.

References BATTLEFIELD_WG_WORLD_STATE_ACTIVE, BATTLEFIELD_WG_WORLD_STATE_DEFENDER, ClockWorldState, IN_MILLISECONDS, Battlefield::m_DefenderTeam, Battlefield::m_isActive, m_saveTimer, Battlefield::m_Timer, sWorld, and Battlefield::Update().

◆ UpdateCounterVehicle()

◆ UpdateDamagedTowerCount()

void BattlefieldWG::UpdateDamagedTowerCount ( TeamId team)

Called when a tower is damaged.

  • Update tower count (for reward calcul)

Definition at line 939 of file BattlefieldWG.cpp.

References BATTLEFIELD_WG_DATA_DAMAGED_TOWER_ATT, BATTLEFIELD_WG_DATA_DAMAGED_TOWER_DEF, Battlefield::GetAttackerTeam(), and Battlefield::UpdateData().

◆ UpdatedDestroyedTowerCount()

◆ UpdateTenacity()

◆ UpdateVehicleCountWG()

Member Data Documentation

◆ BuildingsInZone

GameObjectBuilding BattlefieldWG::BuildingsInZone
protected

◆ CanonList

GuidSet BattlefieldWG::CanonList
protected

Definition at line 414 of file BattlefieldWG.h.

Referenced by OnBattleEnd(), OnBattleStart(), and SetupBattlefield().

◆ DefenderPortalList

GuidSet BattlefieldWG::DefenderPortalList
protected

Definition at line 409 of file BattlefieldWG.h.

Referenced by OnBattleEnd(), and SetupBattlefield().

◆ KeepCreature

GuidSet BattlefieldWG::KeepCreature[2]
protected

Definition at line 415 of file BattlefieldWG.h.

Referenced by HandleKill(), OnBattleEnd(), and SetupBattlefield().

◆ m_isRelicInteractible

bool BattlefieldWG::m_isRelicInteractible
protected

Definition at line 405 of file BattlefieldWG.h.

Referenced by CanInteractWithRelic(), and SetRelicInteractible().

◆ m_KeepGameObject

GuidSet BattlefieldWG::m_KeepGameObject[2]
protected

Definition at line 410 of file BattlefieldWG.h.

Referenced by OnBattleEnd().

◆ m_saveTimer

uint32 BattlefieldWG::m_saveTimer
protected

Definition at line 419 of file BattlefieldWG.h.

Referenced by SetupBattlefield(), and Update().

◆ m_tenacityStack

uint32 BattlefieldWG::m_tenacityStack
protected

Definition at line 418 of file BattlefieldWG.h.

Referenced by SetupBattlefield(), and UpdateTenacity().

◆ m_titansRelicGUID

uint64 BattlefieldWG::m_titansRelicGUID
protected

Definition at line 421 of file BattlefieldWG.h.

Referenced by GetRelic(), OnBattleEnd(), OnBattleStart(), and SetRelic().

◆ m_vehicles

GuidSet BattlefieldWG::m_vehicles[2]
protected

◆ OutsideCreature

GuidSet BattlefieldWG::OutsideCreature[2]
protected

Definition at line 416 of file BattlefieldWG.h.

Referenced by OnBattleEnd(), and SetupBattlefield().

◆ WorkshopsList

Workshop BattlefieldWG::WorkshopsList
protected

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