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

#include "BattlegroundIC.h"

Inheritance diagram for BattlegroundIC:
Battleground

Public Member Functions

 BattlegroundIC ()
 
void AddPlayer (Player *player) override
 
void StartingEventCloseDoors () override
 
void StartingEventOpenDoors () override
 
void PostUpdateImpl (uint32 diff) override
 Post-update hook.
 
void RemovePlayer (Player *player) override
 
void HandleAreaTrigger (Player *player, uint32 trigger) override
 
bool SetupBattleground () override
 
void HandleKillUnit (Creature *unit, Player *killer) override
 
void HandleKillPlayer (Player *player, Player *killer) override
 
void EventPlayerClickedOnFlag (Player *source, GameObject *) override
 
void EventPlayerDamagedGO (Player *, GameObject *, uint32) override
 
void DestroyGate (Player *player, GameObject *go) override
 
GraveyardStruct const * GetClosestGraveyard (Player *player) override
 
bool UpdatePlayerScore (Player *player, uint32 type, uint32 value, bool doAddHonor=true) override
 
void FillInitialWorldStates (WorldPacket &data) override
 
void HandlePlayerResurrect (Player *player) override
 
uint32 GetNodeState (uint8 nodeType) const
 
bool AllNodesConrolledByTeam (TeamId teamId) const override
 
bool IsResourceGlutAllowed (TeamId teamId) const
 
void DoAction (uint32 action, ObjectGuid guid) override
 
- Public Member Functions inherited from Battleground
 Battleground ()
 
virtual ~Battleground ()
 
void Update (uint32 diff)
 
virtual bool SetupBattleground ()
 
virtual void Init ()
 
virtual void StartingEventCloseDoors ()
 
virtual void StartingEventOpenDoors ()
 
virtual void ResetBGSubclass ()
 
virtual void DestroyGate (Player *, GameObject *)
 
virtual bool AllNodesConrolledByTeam (TeamId) const
 
void StartTimedAchievement (AchievementCriteriaTimedTypes type, uint32 entry)
 
std::string GetName () const
 
BattlegroundTypeId GetBgTypeID (bool GetRandom=false) const
 
BattlegroundBracketId GetBracketId () const
 
uint32 GetInstanceID () const
 
BattlegroundStatus GetStatus () const
 
uint32 GetClientInstanceID () const
 
uint32 GetStartTime () const
 
uint32 GetEndTime () const
 
uint32 GetLastResurrectTime () 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
 
bool SpiritofCompetitionEvent (PvPTeamId winnerTeamId)
 
bool IsRandom ()
 
void SetName (std::string_view name)
 
void SetBgTypeID (BattlegroundTypeId TypeID)
 
void SetRandomTypeID (BattlegroundTypeId TypeID)
 
void SetBracket (PvPDifficultyEntry const *bracketEntry)
 
void SetInstanceID (uint32 InstanceID)
 
void SetStatus (BattlegroundStatus Status)
 
void SetClientInstanceID (uint32 InstanceID)
 
void SetStartTime (uint32 Time)
 
void SetEndTime (uint32 Time)
 
void SetLastResurrectTime (uint32 Time)
 
void SetLevelRange (uint32 min, uint32 max)
 
void SetRated (bool state)
 
void SetArenaType (uint8 type)
 
void SetArenaorBGType (bool _isArena)
 
void SetWinner (PvPTeamId winner)
 
void SetScriptId (uint32 scriptId)
 
void SetRandom (bool isRandom)
 
void ModifyStartDelayTime (int32 diff)
 
void SetStartDelayTime (int32 Time)
 
void SetMaxPlayersPerTeam (uint32 MaxPlayers)
 
void SetMinPlayersPerTeam (uint32 MinPlayers)
 
void AddToBGFreeSlotQueue ()
 
void RemoveFromBGFreeSlotQueue ()
 
void DecreaseInvitedCount (TeamId teamId)
 
void IncreaseInvitedCount (TeamId teamId)
 
uint32 GetInvitedCount (TeamId teamId) const
 
bool HasFreeSlots () const
 
uint32 GetFreeSlotsForTeam (TeamId teamId) const
 
uint32 GetMaxFreeSlots () const
 
void AddSpectator (Player *p)
 
void RemoveSpectator (Player *p)
 
bool HaveSpectators ()
 
const SpectatorListGetSpectators () const
 
void AddToBeTeleported (ObjectGuid spectator, ObjectGuid participant)
 
void RemoveToBeTeleported (ObjectGuid spectator)
 
void SpectatorsSendPacket (WorldPacket &data)
 
bool isArena () const
 
bool isBattleground () const
 
bool isRated () const
 
BattlegroundPlayerMap const & GetPlayers () const
 
uint32 GetPlayersSize () const
 
void ReadyMarkerClicked (Player *p)
 
BattlegroundScoreMap const * GetPlayerScores () const
 
std::size_t GetPlayerScoresSize () const
 
uint32 GetReviveQueueSize () const
 
void AddPlayerToResurrectQueue (ObjectGuid npc_guid, ObjectGuid player_guid)
 
void RemovePlayerFromResurrectQueue (Player *player)
 
void RelocateDeadPlayers (ObjectGuid queueIndex)
 Relocate all players in ReviveQueue to the closest graveyard.
 
void StartBattleground ()
 
GameObjectGetBGObject (uint32 type)
 
CreatureGetBGCreature (uint32 type)
 
void SetMapId (uint32 MapID)
 
uint32 GetMapId () const
 
void SetBgMap (BattlegroundMap *map)
 
BattlegroundMapGetBgMap () const
 
BattlegroundMapFindBgMap () const
 
void SetTeamStartPosition (TeamId teamId, Position const &pos)
 
Position const * GetTeamStartPosition (TeamId teamId) const
 
void SetStartMaxDist (float startMaxDist)
 
float GetStartMaxDist () const
 
virtual void FillInitialWorldStates (WorldPacket &)
 
void SendPacketToTeam (TeamId teamId, WorldPacket const *packet, Player *sender=nullptr, bool self=true)
 
void SendPacketToAll (WorldPacket const *packet)
 
void YellToAll (Creature *creature, const char *text, uint32 language)
 
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 PlaySoundToAll (uint32 soundId)
 
void CastSpellOnTeam (uint32 spellId, TeamId teamId)
 
void RemoveAuraOnTeam (uint32 spellId, TeamId teamId)
 
void RewardHonorToTeam (uint32 honor, TeamId teamId)
 
void RewardReputationToTeam (uint32 factionId, uint32 reputation, TeamId teamId)
 
uint32 GetRealRepFactionForPlayer (uint32 factionId, Player *player)
 
void UpdateWorldState (uint32 variable, uint32 value)
 
void EndBattleground (PvPTeamId winnerTeamId)
 
virtual void EndBattleground (TeamId winnerTeamId)
 
void BlockMovement (Player *player)
 
void SendWarningToAll (uint32 entry,...)
 
void SendMessageToAll (uint32 entry, ChatMsg type, Player const *source=nullptr)
 
void PSendMessageToAll (uint32 entry, ChatMsg type, Player const *source,...)
 
void SendMessage2ToAll (uint32 entry, ChatMsg type, Player const *source, uint32 strId1=0, uint32 strId2=0)
 
GroupGetBgRaid (TeamId teamId) const
 
void SetBgRaid (TeamId teamId, Group *bg_raid)
 
void BuildPvPLogDataPacket (WorldPacket &data)
 
virtual bool UpdatePlayerScore (Player *player, uint32 type, uint32 value, bool doAddHonor=true)
 
uint32 GetPlayersCountByTeam (TeamId teamId) const
 
uint32 GetAlivePlayersCountByTeam (TeamId teamId) const
 
void UpdatePlayersCountByTeam (TeamId teamId, bool remove)
 
virtual void CheckWinConditions ()
 
void SetArenaTeamIdForTeam (TeamId teamId, uint32 ArenaTeamId)
 
uint32 GetArenaTeamIdForTeam (TeamId teamId) const
 
void SetArenaMatchmakerRating (TeamId teamId, uint32 MMR)
 
uint32 GetArenaMatchmakerRating (TeamId teamId) const
 
virtual void HandleAreaTrigger (Player *, uint32)
 
virtual void HandleKillPlayer (Player *player, Player *killer)
 
virtual void HandleKillUnit (Creature *, Player *)
 
virtual void EventPlayerDroppedFlag (Player *)
 
virtual void EventPlayerClickedOnFlag (Player *, GameObject *)
 
virtual void EventPlayerDamagedGO (Player *, GameObject *, uint32)
 
virtual void EventPlayerUsedGO (Player *, GameObject *)
 
virtual void DoAction (uint32, ObjectGuid)
 
virtual void HandlePlayerResurrect (Player *)
 
virtual GraveyardStruct const * GetClosestGraveyard (Player *player)
 
virtual void AddPlayer (Player *player)
 
void AddOrSetPlayerToCorrectBgGroup (Player *player, TeamId teamId)
 
virtual void RemovePlayerAtLeave (Player *player)
 
void HandleTriggerBuff (GameObject *gameObject)
 
void SetHoliday (bool is_holiday)
 
void SpawnBGObject (uint32 type, uint32 respawntime, uint32 forceRespawnDelay=0)
 
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)
 
CreatureAddCreature (uint32 entry, uint32 type, float x, float y, float z, float o, uint32 respawntime=0, MotionTransport *transport=nullptr)
 
bool DelCreature (uint32 type)
 
bool DelObject (uint32 type)
 
bool AddSpiritGuide (uint32 type, float x, float y, float z, float o, TeamId teamId)
 
int32 GetObjectType (ObjectGuid guid)
 
void DoorOpen (uint32 type)
 
void DoorClose (uint32 type)
 
const char * GetAcoreString (int32 entry)
 
virtual bool HandlePlayerUnderMap (Player *)
 
bool IsPlayerInBattleground (ObjectGuid guid) const
 
bool ToBeDeleted () const
 
void RewardXPAtKill (Player *killer, Player *victim)
 
virtual ObjectGuid GetFlagPickerGUID (TeamId=TEAM_NEUTRAL) const
 
virtual void SetDroppedFlagGUID (ObjectGuid, TeamId=TEAM_NEUTRAL)
 
uint32 GetTeamScore (TeamId teamId) const
 
virtual TeamId GetPrematureWinner ()
 
uint8 GetUniqueBracketId () const
 
BattlegroundAVToBattlegroundAV ()
 
BattlegroundAV const * ToBattlegroundAV () const
 
BattlegroundWSToBattlegroundWS ()
 
BattlegroundWS const * ToBattlegroundWS () const
 
BattlegroundABToBattlegroundAB ()
 
BattlegroundAB const * ToBattlegroundAB () const
 
BattlegroundNAToBattlegroundNA ()
 
BattlegroundNA const * ToBattlegroundNA () const
 
BattlegroundBEToBattlegroundBE ()
 
BattlegroundBE const * ToBattlegroundBE () const
 
BattlegroundEYToBattlegroundEY ()
 
BattlegroundEY const * ToBattlegroundEY () const
 
BattlegroundRLToBattlegroundRL ()
 
BattlegroundRL const * ToBattlegroundRL () const
 
BattlegroundSAToBattlegroundSA ()
 
BattlegroundSA const * ToBattlegroundSA () const
 
BattlegroundDSToBattlegroundDS ()
 
BattlegroundDS const * ToBattlegroundDS () const
 
BattlegroundRVToBattlegroundRV ()
 
BattlegroundRV const * ToBattlegroundRV () const
 
BattlegroundICToBattlegroundIC ()
 
BattlegroundIC const * ToBattlegroundIC () const
 

Private Types

typedef std::map< ObjectGuid, uint32RespawnMap
 

Private Member Functions

uint32 GetNextBanner (ICNodePoint *nodePoint, uint32 team, bool returnDefinitve)
 
uint32 GetGateIDFromEntry (uint32 id)
 
uint32 GetWorldStateFromGateEntry (uint32 id, bool open)
 
void UpdateNodeWorldState (ICNodePoint *nodePoint)
 
void HandleCapturedNodes (ICNodePoint *nodePoint, bool recapture)
 
void HandleContestedNodes (ICNodePoint *nodePoint)
 
void TurnBosses (bool on)
 

Private Attributes

uint32 closeFortressDoorsTimer
 
bool doorsClosed
 
uint32 docksTimer
 
uint32 resourceTimer
 
uint32 siegeEngineWorkshopTimer
 
uint16 factionReinforcements [2]
 
BG_IC_GateState GateStatus [6]
 
ICNodePoint nodePoint [7]
 
RespawnMap respawnMap
 
MotionTransportgunshipAlliance
 
MotionTransportgunshipHorde
 

Additional Inherited Members

- Public Types inherited from Battleground
typedef std::set< Player * > SpectatorList
 
typedef std::map< ObjectGuid, ObjectGuidToBeTeleportedMap
 
typedef std::map< ObjectGuid, Player * > BattlegroundPlayerMap
 
typedef std::unordered_map< ObjectGuid::LowType, BattlegroundScore * > BattlegroundScoreMap
 
typedef std::unordered_map< ObjectGuid, ArenaLogEntryDataArenaLogEntryDataMap
 
typedef GuidVector BGObjects
 
typedef GuidVector BGCreatures
 
- Static Public Member Functions inherited from Battleground
static TeamId GetOtherTeamId (TeamId teamId)
 
- Public Attributes inherited from Battleground
GuidSet readyMarkerClickedSet
 
ArenaLogEntryDataMap ArenaLogEntries
 
BGObjects BgObjects
 
BGCreatures BgCreatures
 
- Protected Member Functions inherited from Battleground
void EndNow ()
 
void PlayerAddedToBGCheckIfBGIsRunning (Player *player)
 
void _ProcessResurrect (uint32 diff)
 
void _ProcessProgress (uint32 diff)
 
void _ProcessLeave (uint32 diff)
 
void _ProcessJoin (uint32 diff)
 
void _CheckSafePositions (uint32 diff)
 
virtual void RemovePlayer (Player *)
 
- Protected Attributes inherited from Battleground
BattlegroundScoreMap PlayerScores
 
BattlegroundPlayerMap m_Players
 
std::map< ObjectGuid, GuidVectorm_ReviveQueue
 
uint8 m_Events
 
BattlegroundStartTimeIntervals StartDelayTimes [BG_STARTING_EVENT_COUNT]
 
uint32 StartMessageIds [BG_STARTING_EVENT_COUNT]
 
bool m_BuffChange
 
bool m_IsRandom
 
BGHonorMode m_HonorMode
 
int32 m_TeamScores [PVP_TEAMS_COUNT]
 
ArenaTeamScore _arenaTeamScores [PVP_TEAMS_COUNT]
 
uint32 m_UpdateTimer
 
EventProcessor _reviveEvents
 

Detailed Description

Member Typedef Documentation

◆ RespawnMap

typedef std::map<ObjectGuid, uint32> BattlegroundIC::RespawnMap
private

Constructor & Destructor Documentation

◆ BattlegroundIC()

BattlegroundIC::BattlegroundIC ( )
38{
41
42 for (uint8 i = 0; i < 2; ++i)
44
45 for (uint8 i = 0; i < BG_IC_MAXDOOR; ++i)
47
48 closeFortressDoorsTimer = CLOSE_DOORS_TIME; // the doors are closed again... in a special way
49 doorsClosed = false;
52
53 for (uint8 i = NODE_TYPE_REFINERY; i < MAX_NODE_TYPES; ++i)
55
57
58 gunshipHorde = nullptr;
59 gunshipAlliance = nullptr;
60 respawnMap.clear();
61}
std::uint8_t uint8
Definition: Define.h:110
@ NODE_TYPE_REFINERY
Definition: BattlegroundIC.h:820
@ MAX_NODE_TYPES
Definition: BattlegroundIC.h:830
@ DOCKS_UPDATE_TIME
Definition: BattlegroundIC.h:195
@ CLOSE_DOORS_TIME
Definition: BattlegroundIC.h:198
@ IC_RESOURCE_TIME
Definition: BattlegroundIC.h:197
@ WORKSHOP_UPDATE_TIME
Definition: BattlegroundIC.h:194
@ BG_IC_MAXDOOR
Definition: BattlegroundIC.h:815
@ MAX_WORKSHOP_SPAWNS
Definition: BattlegroundIC.h:450
@ MAX_SPIRIT_GUIDES_SPAWNS
Definition: BattlegroundIC.h:452
@ MAX_HANGAR_NPCS_SPAWNS
Definition: BattlegroundIC.h:459
@ MAX_NORMAL_GAMEOBJECTS_SPAWNS
Definition: BattlegroundIC.h:448
@ MAX_AIRSHIPS_SPAWNS
Definition: BattlegroundIC.h:455
@ MAX_DOCKS_SPAWNS
Definition: BattlegroundIC.h:451
@ MAX_NORMAL_NPCS_SPAWNS
Definition: BattlegroundIC.h:449
@ MAX_HANGAR_TELEPORTER_EFFECTS_SPAWNS
Definition: BattlegroundIC.h:454
@ MAX_FORTRESS_TELEPORTER_EFFECTS_SPAWNS
Definition: BattlegroundIC.h:458
@ MAX_FORTRESS_TELEPORTERS_SPAWNS
Definition: BattlegroundIC.h:457
@ MAX_HANGAR_TELEPORTERS_SPAWNS
Definition: BattlegroundIC.h:453
#define MAX_REINFORCEMENTS
Definition: BattlegroundIC.h:190
@ BG_IC_GATE_OK
Definition: BattlegroundIC.h:802
const ICNodePoint nodePointInitial[MAX_NODE_TYPES]
Definition: BattlegroundIC.h:902
BGObjects BgObjects
Definition: Battleground.h:539
BGCreatures BgCreatures
Definition: Battleground.h:540
uint32 resourceTimer
Definition: BattlegroundIC.h:990
MotionTransport * gunshipAlliance
Definition: BattlegroundIC.h:999
MotionTransport * gunshipHorde
Definition: BattlegroundIC.h:1000
RespawnMap respawnMap
Definition: BattlegroundIC.h:997
BG_IC_GateState GateStatus[6]
Definition: BattlegroundIC.h:993
uint32 docksTimer
Definition: BattlegroundIC.h:989
uint16 factionReinforcements[2]
Definition: BattlegroundIC.h:992
ICNodePoint nodePoint[7]
Definition: BattlegroundIC.h:994
uint32 closeFortressDoorsTimer
Definition: BattlegroundIC.h:987
uint32 siegeEngineWorkshopTimer
Definition: BattlegroundIC.h:991
bool doorsClosed
Definition: BattlegroundIC.h:988

References BG_IC_GATE_OK, BG_IC_MAXDOOR, Battleground::BgCreatures, Battleground::BgObjects, CLOSE_DOORS_TIME, closeFortressDoorsTimer, DOCKS_UPDATE_TIME, docksTimer, doorsClosed, factionReinforcements, GateStatus, gunshipAlliance, gunshipHorde, IC_RESOURCE_TIME, MAX_AIRSHIPS_SPAWNS, MAX_DOCKS_SPAWNS, MAX_FORTRESS_TELEPORTER_EFFECTS_SPAWNS, MAX_FORTRESS_TELEPORTERS_SPAWNS, MAX_HANGAR_NPCS_SPAWNS, MAX_HANGAR_TELEPORTER_EFFECTS_SPAWNS, MAX_HANGAR_TELEPORTERS_SPAWNS, MAX_NODE_TYPES, MAX_NORMAL_GAMEOBJECTS_SPAWNS, MAX_NORMAL_NPCS_SPAWNS, MAX_REINFORCEMENTS, MAX_SPIRIT_GUIDES_SPAWNS, MAX_WORKSHOP_SPAWNS, NODE_TYPE_REFINERY, nodePoint, nodePointInitial, resourceTimer, respawnMap, siegeEngineWorkshopTimer, and WORKSHOP_UPDATE_TIME.

Member Function Documentation

◆ AddPlayer()

void BattlegroundIC::AddPlayer ( Player player)
overridevirtual

Reimplemented from Battleground.

320{
322 PlayerScores.emplace(player->GetGUID().GetCounter(), new BattlegroundICScore(player->GetGUID()));
323
325 player->CastSpell(player, SPELL_QUARRY, true);
326
328 player->CastSpell(player, SPELL_OIL_REFINERY, true);
329}
@ NODE_TYPE_QUARRY
Definition: BattlegroundIC.h:821
@ SPELL_QUARRY
Definition: BattlegroundIC.h:713
@ SPELL_OIL_REFINERY
Definition: BattlegroundIC.h:712
@ NODE_STATE_CONTROLLED_A
Definition: BattlegroundIC.h:838
@ NODE_STATE_CONTROLLED_H
Definition: BattlegroundIC.h:839
@ TEAM_ALLIANCE
Definition: SharedDefines.h:760
virtual void AddPlayer(Player *player)
Definition: Battleground.cpp:1117
BattlegroundScoreMap PlayerScores
Definition: Battleground.h:619
Definition: BattlegroundIC.h:920
static ObjectGuid GetGUID(Object const *o)
Definition: Object.h:106
LowType GetCounter() const
Definition: ObjectGuid.h:147
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

References Battleground::AddPlayer(), Unit::CastSpell(), ObjectGuid::GetCounter(), Object::GetGUID(), Player::GetTeamId(), NODE_STATE_CONTROLLED_A, NODE_STATE_CONTROLLED_H, NODE_TYPE_QUARRY, NODE_TYPE_REFINERY, nodePoint, Battleground::PlayerScores, SPELL_OIL_REFINERY, SPELL_QUARRY, and TEAM_ALLIANCE.

◆ AllNodesConrolledByTeam()

bool BattlegroundIC::AllNodesConrolledByTeam ( TeamId  teamId) const
overridevirtual

Reimplemented from Battleground.

301{
302 uint32 count = 0;
304 for (int i = 0; i < NODE_TYPE_WORKSHOP; ++i)
305 {
306 if (nodePoint[i].nodeState == controlledState)
307 ++count;
308 }
309
310 return count == NODE_TYPE_WORKSHOP;
311}
std::uint32_t uint32
Definition: Define.h:108
@ NODE_TYPE_WORKSHOP
Definition: BattlegroundIC.h:824
ICNodeState
Definition: BattlegroundIC.h:834

References NODE_STATE_CONTROLLED_A, NODE_STATE_CONTROLLED_H, NODE_TYPE_WORKSHOP, nodePoint, and TEAM_ALLIANCE.

◆ DestroyGate()

void BattlegroundIC::DestroyGate ( Player player,
GameObject go 
)
overridevirtual

Reimplemented from Battleground.

924{
926 uint32 uws_open = GetWorldStateFromGateEntry(go->GetEntry(), true);
927 uint32 uws_close = GetWorldStateFromGateEntry(go->GetEntry(), false);
928 if (uws_open)
929 {
930 UpdateWorldState(uws_close, 0);
931 UpdateWorldState(uws_open, 1);
932 }
933
934 uint32 textId;
935 ChatMsg msgType;
936 TeamId teamId = TEAM_ALLIANCE;
937
938 switch (go->GetEntry())
939 {
940 case GO_HORDE_GATE_1:
943 break;
944 case GO_HORDE_GATE_2:
947 break;
948 case GO_HORDE_GATE_3:
951 break;
954 msgType = CHAT_MSG_BG_SYSTEM_HORDE;
955 teamId = TEAM_HORDE;
956 break;
959 msgType = CHAT_MSG_BG_SYSTEM_HORDE;
960 teamId = TEAM_HORDE;
961 break;
964 msgType = CHAT_MSG_BG_SYSTEM_HORDE;
965 teamId = TEAM_HORDE;
966 break;
967 default:
968 return;
969 }
970
971 if (teamId == TEAM_ALLIANCE)
972 {
975 }
976 else
977 {
980 }
981
982 TurnBosses(true);
983 SendBroadcastText(textId, msgType);
984}
@ BG_IC_TEXT_WEST_GATE_HORDE_DESTROYED
Definition: BattlegroundIC.h:861
@ BG_IC_TEXT_FRONT_GATE_ALLIANCE_DESTROYED
Definition: BattlegroundIC.h:860
@ BG_IC_TEXT_WEST_GATE_ALLIANCE_DESTROYED
Definition: BattlegroundIC.h:862
@ BG_IC_TEXT_FRONT_GATE_HORDE_DESTROYED
Definition: BattlegroundIC.h:859
@ BG_IC_TEXT_EAST_GATE_HORDE_DESTROYED
Definition: BattlegroundIC.h:863
@ BG_IC_TEXT_EAST_GATE_ALLIANCE_DESTROYED
Definition: BattlegroundIC.h:864
@ BG_IC_GO_DOODAD_PORTCULLISACTIVE02
Definition: BattlegroundIC.h:272
@ BG_IC_GO_HORDE_BANNER
Definition: BattlegroundIC.h:287
@ BG_IC_GO_ALLIANCE_BANNER
Definition: BattlegroundIC.h:224
@ BG_IC_GO_HORDE_KEEP_PORTCULLIS
Definition: BattlegroundIC.h:293
@ BG_IC_GATE_DESTROYED
Definition: BattlegroundIC.h:804
@ GO_ALLIANCE_GATE_3
Definition: BattlegroundIC.h:60
@ GO_HORDE_GATE_2
Definition: BattlegroundIC.h:112
@ GO_HORDE_GATE_1
Definition: BattlegroundIC.h:111
@ GO_HORDE_GATE_3
Definition: BattlegroundIC.h:113
@ GO_ALLIANCE_GATE_2
Definition: BattlegroundIC.h:59
@ GO_ALLIANCE_GATE_1
Definition: BattlegroundIC.h:58
@ GAMEOBJECT_FLAGS
Definition: UpdateFields.h:399
ChatMsg
Definition: SharedDefines.h:3150
@ CHAT_MSG_BG_SYSTEM_ALLIANCE
Definition: SharedDefines.h:3189
@ CHAT_MSG_BG_SYSTEM_HORDE
Definition: SharedDefines.h:3190
@ GO_FLAG_NOT_SELECTABLE
Definition: SharedDefines.h:1607
TeamId
Definition: SharedDefines.h:759
@ TEAM_HORDE
Definition: SharedDefines.h:761
void DoorOpen(uint32 type)
Definition: Battleground.cpp:1481
void SendBroadcastText(uint32 id, ChatMsg msgType, WorldObject const *target=nullptr)
Definition: Battleground.cpp:678
GameObject * GetBGObject(uint32 type)
Definition: Battleground.cpp:1493
void UpdateWorldState(uint32 variable, uint32 value)
Definition: Battleground.cpp:770
uint32 GetGateIDFromEntry(uint32 id)
Definition: BattlegroundIC.h:1004
uint32 GetWorldStateFromGateEntry(uint32 id, bool open)
Definition: BattlegroundIC.h:1031
void TurnBosses(bool on)
Definition: BattlegroundIC.cpp:489
void RemoveFlag(uint16 index, uint32 oldFlag)
Definition: Object.cpp:860
uint32 GetEntry() const
Definition: Object.h:109

References BG_IC_GATE_DESTROYED, BG_IC_GO_ALLIANCE_BANNER, BG_IC_GO_DOODAD_PORTCULLISACTIVE02, BG_IC_GO_HORDE_BANNER, BG_IC_GO_HORDE_KEEP_PORTCULLIS, BG_IC_TEXT_EAST_GATE_ALLIANCE_DESTROYED, BG_IC_TEXT_EAST_GATE_HORDE_DESTROYED, BG_IC_TEXT_FRONT_GATE_ALLIANCE_DESTROYED, BG_IC_TEXT_FRONT_GATE_HORDE_DESTROYED, BG_IC_TEXT_WEST_GATE_ALLIANCE_DESTROYED, BG_IC_TEXT_WEST_GATE_HORDE_DESTROYED, CHAT_MSG_BG_SYSTEM_ALLIANCE, CHAT_MSG_BG_SYSTEM_HORDE, Battleground::DoorOpen(), GAMEOBJECT_FLAGS, GateStatus, Battleground::GetBGObject(), Object::GetEntry(), GetGateIDFromEntry(), GetWorldStateFromGateEntry(), GO_ALLIANCE_GATE_1, GO_ALLIANCE_GATE_2, GO_ALLIANCE_GATE_3, GO_FLAG_NOT_SELECTABLE, GO_HORDE_GATE_1, GO_HORDE_GATE_2, GO_HORDE_GATE_3, Object::RemoveFlag(), Battleground::SendBroadcastText(), TEAM_ALLIANCE, TEAM_HORDE, TurnBosses(), and Battleground::UpdateWorldState().

◆ DoAction()

void BattlegroundIC::DoAction ( uint32  action,
ObjectGuid  guid 
)
overridevirtual

Reimplemented from Battleground.

64{
66 return;
67
69 return;
70
72 if (!player)
73 return;
74
76 float x = BG_IC_HangarTrigger[player->GetTeamId()].GetPositionX();
77 float y = BG_IC_HangarTrigger[player->GetTeamId()].GetPositionY();
78 float z = BG_IC_HangarTrigger[player->GetTeamId()].GetPositionZ();
79 transport->CalculatePassengerPosition(x, y, z);
80
81 player->TeleportTo(GetMapId(), x, y, z, player->GetOrientation(), TELE_TO_NOT_LEAVE_TRANSPORT);
82}
@ ACTION_TELEPORT_PLAYER_TO_TRANSPORT
Definition: BattlegroundIC.h:206
const Position BG_IC_HangarTrigger[2]
Definition: BattlegroundIC.h:553
@ TELE_TO_NOT_LEAVE_TRANSPORT
Definition: Player.h:815
Player * GetPlayer(Map const *, ObjectGuid const guid)
Definition: ObjectAccessor.cpp:223
uint32 GetMapId() const
Definition: Battleground.h:428
float GetPositionZ() const
Definition: Position.h:119
float GetOrientation() const
Definition: Position.h:120
float GetPositionX() const
Definition: Position.h:117
float GetPositionY() const
Definition: Position.h:118
Definition: Player.h:1056
bool TeleportTo(uint32 mapid, float x, float y, float z, float orientation, uint32 options=0, Unit *target=nullptr, bool newInstance=false)
Definition: Player.cpp:1314
void CalculatePassengerPosition(float &x, float &y, float &z, float *o=nullptr) const override
This method transforms supplied transport offsets into global coordinates.
Definition: Transport.h:32
Definition: Transport.h:48

References ACTION_TELEPORT_PLAYER_TO_TRANSPORT, BG_IC_HangarTrigger, Transport::CalculatePassengerPosition(), Battleground::GetMapId(), Position::GetOrientation(), ObjectAccessor::GetPlayer(), Position::GetPositionX(), Position::GetPositionY(), Position::GetPositionZ(), Player::GetTeamId(), gunshipAlliance, gunshipHorde, TEAM_ALLIANCE, TELE_TO_NOT_LEAVE_TRANSPORT, and Player::TeleportTo().

◆ EventPlayerClickedOnFlag()

void BattlegroundIC::EventPlayerClickedOnFlag ( Player source,
GameObject gameObject 
)
overridevirtual

Reimplemented from Battleground.

552{
554 return;
555
556 // All the node points are iterated to find the clicked one
557 for (uint8 i = 0; i < MAX_NODE_TYPES; ++i)
558 {
559 ICNodePoint& point = nodePoint[i];
560 if (point.gameobject_entry == gameObject->GetEntry())
561 {
562 // THIS SHOULD NEEVEER HAPPEN
563 if (point.faction == player->GetTeamId())
564 {
565 return;
566 }
567
568 // Prevent capturing of keep if none of gates was destroyed
570 {
572 {
573 return;
574 }
575 }
576 else if (point.gameobject_entry == GO_HORDE_BANNER)
577 {
579 {
580 return;
581 }
582 }
583
584 uint32 nextBanner = GetNextBanner(&point, player->GetTeamId(), false);
585
586 // we set the new settings of the nodePoint
587 point.faction = player->GetTeamId();
588 point.last_entry = point.gameobject_entry;
589 point.gameobject_entry = nextBanner;
590
591 // this is just needed if the next banner is grey
592 if (point.banners[BANNER_A_CONTESTED] == nextBanner || point.banners[BANNER_H_CONTESTED] == nextBanner)
593 {
594 point.timer = BANNER_STATE_CHANGE_TIME; // 1 minute for last change (real faction banner)
595 point.needChange = true;
596
597 _reviveEvents.AddEventAtOffset([this, point]()
598 {
600
601 // if we are here means that the point has been lost, or it is the first capture
602 if (point.nodeType != NODE_TYPE_REFINERY && point.nodeType != NODE_TYPE_QUARRY)
603 {
604 if (BgCreatures[static_cast<uint16>(BG_IC_NPC_SPIRIT_GUIDE_1) + (point.nodeType) - 2])
605 {
606 DelCreature(static_cast<uint16>(BG_IC_NPC_SPIRIT_GUIDE_1) + (point.nodeType) - 2);
607 }
608 }
609 }, 500ms);
610
612
613 if (nodePoint[i].faction == TEAM_ALLIANCE)
614 {
615 SendBroadcastText(ICNodes[i].TextAssaulted, CHAT_MSG_BG_SYSTEM_ALLIANCE, player);
616 }
617 else
618 {
619 SendBroadcastText(ICNodes[i].TextAssaulted, CHAT_MSG_BG_SYSTEM_HORDE, player);
620 }
621
622 HandleContestedNodes(&point);
623 }
624 else if (nextBanner == point.banners[BANNER_A_CONTROLLED] || nextBanner == point.banners[BANNER_H_CONTROLLED])
625 // if we are going to spawn the definitve faction banner, we dont need the timer anymore
626 {
628 point.needChange = false;
629
630 if (nodePoint[i].faction == TEAM_ALLIANCE)
631 {
632 SendBroadcastText(ICNodes[i].TextDefended, CHAT_MSG_BG_SYSTEM_ALLIANCE, player);
633 }
634 else
635 {
636 SendBroadcastText(ICNodes[i].TextDefended, CHAT_MSG_BG_SYSTEM_HORDE, player);
637 }
638
639 HandleCapturedNodes(&point, true);
641 }
642
643 GameObject* banner = GetBGObject(point.gameobject_type);
644
645 if (!banner) // this should never happen
646 {
647 return;
648 }
649
650 float cords[4] = {banner->GetPositionX(), banner->GetPositionY(), banner->GetPositionZ(), banner->GetOrientation() };
651
653 AddObject(point.gameobject_type, point.gameobject_entry, cords[0], cords[1], cords[2], cords[3], 0, 0, 0, 0, RESPAWN_ONE_DAY);
654
656
657 UpdateNodeWorldState(&point);
658 // we dont need iterating if we are here
659 // If the needChange bool was set true, we will handle the rest in the Update Map function.
660 return;
661 }
662 }
663}
std::uint16_t uint16
Definition: Define.h:109
@ RESPAWN_ONE_DAY
Definition: Battleground.h:163
@ STATUS_IN_PROGRESS
Definition: Battleground.h:197
@ SCORE_BASES_ASSAULTED
Definition: BattlegroundScore.h:41
@ SCORE_BASES_DEFENDED
Definition: BattlegroundScore.h:42
const uint32 BG_IC_Factions[PVP_TEAMS_COUNT]
Definition: BattlegroundIC.h:25
@ BANNER_STATE_CHANGE_TIME
Definition: BattlegroundIC.h:199
ICNodeInfo const ICNodes[MAX_NODE_TYPES]
Definition: BattlegroundIC.h:876
@ BG_IC_H_FRONT
Definition: BattlegroundIC.h:809
@ BG_IC_A_WEST
Definition: BattlegroundIC.h:813
@ BG_IC_H_WEST
Definition: BattlegroundIC.h:810
@ BG_IC_A_FRONT
Definition: BattlegroundIC.h:812
@ BG_IC_A_EAST
Definition: BattlegroundIC.h:814
@ BG_IC_H_EAST
Definition: BattlegroundIC.h:811
@ BANNER_A_CONTROLLED
Definition: BattlegroundIC.h:440
@ BANNER_H_CONTESTED
Definition: BattlegroundIC.h:443
@ BANNER_H_CONTROLLED
Definition: BattlegroundIC.h:442
@ BANNER_A_CONTESTED
Definition: BattlegroundIC.h:441
@ GO_ALLIANCE_BANNER
Definition: BattlegroundIC.h:56
@ GO_HORDE_BANNER
Definition: BattlegroundIC.h:109
@ BG_IC_NPC_SPIRIT_GUIDE_1
Definition: BattlegroundIC.h:429
@ GAMEOBJECT_FACTION
Definition: UpdateFields.h:402
float cords[4][4]
Definition: boss_urom.cpp:83
void AddEventAtOffset(BasicEvent *event, Milliseconds offset)
Definition: EventProcessor.h:108
bool DelCreature(uint32 type)
Definition: Battleground.cpp:1594
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)
Definition: Battleground.cpp:1409
void RelocateDeadPlayers(ObjectGuid queueIndex)
Relocate all players in ReviveQueue to the closest graveyard.
Definition: Battleground.cpp:1385
EventProcessor _reviveEvents
Definition: Battleground.h:645
bool DelObject(uint32 type)
Definition: Battleground.cpp:1613
BattlegroundStatus GetStatus() const
Definition: Battleground.h:327
Definition: BattlegroundIC.h:889
uint32 banners[4]
Definition: BattlegroundIC.h:894
ICNodePointType nodeType
Definition: BattlegroundIC.h:893
uint32 timer
Definition: BattlegroundIC.h:896
uint32 last_entry
Definition: BattlegroundIC.h:897
TeamId faction
Definition: BattlegroundIC.h:892
uint32 gameobject_type
Definition: BattlegroundIC.h:890
bool needChange
Definition: BattlegroundIC.h:895
uint32 gameobject_entry
Definition: BattlegroundIC.h:891
uint32 GetNextBanner(ICNodePoint *nodePoint, uint32 team, bool returnDefinitve)
Definition: BattlegroundIC.cpp:686
bool UpdatePlayerScore(Player *player, uint32 type, uint32 value, bool doAddHonor=true) override
Definition: BattlegroundIC.cpp:366
void HandleContestedNodes(ICNodePoint *nodePoint)
Definition: BattlegroundIC.cpp:711
void HandleCapturedNodes(ICNodePoint *nodePoint, bool recapture)
Definition: BattlegroundIC.cpp:751
void UpdateNodeWorldState(ICNodePoint *nodePoint)
Definition: BattlegroundIC.cpp:665
Definition: GameObject.h:122
void SetUInt32Value(uint16 index, uint32 value)
Definition: Object.cpp:650

References Battleground::_reviveEvents, EventProcessor::AddEventAtOffset(), Battleground::AddObject(), BANNER_A_CONTESTED, BANNER_A_CONTROLLED, BANNER_H_CONTESTED, BANNER_H_CONTROLLED, BANNER_STATE_CHANGE_TIME, ICNodePoint::banners, BG_IC_A_EAST, BG_IC_A_FRONT, BG_IC_A_WEST, BG_IC_Factions, BG_IC_GATE_DESTROYED, BG_IC_H_EAST, BG_IC_H_FRONT, BG_IC_H_WEST, BG_IC_NPC_SPIRIT_GUIDE_1, Battleground::BgCreatures, CHAT_MSG_BG_SYSTEM_ALLIANCE, CHAT_MSG_BG_SYSTEM_HORDE, cords, Battleground::DelCreature(), Battleground::DelObject(), ICNodePoint::faction, ICNodePoint::gameobject_entry, GAMEOBJECT_FACTION, ICNodePoint::gameobject_type, GateStatus, Battleground::GetBGObject(), Object::GetEntry(), GetNextBanner(), Position::GetOrientation(), Position::GetPositionX(), Position::GetPositionY(), Position::GetPositionZ(), Battleground::GetStatus(), Player::GetTeamId(), GO_ALLIANCE_BANNER, GO_HORDE_BANNER, HandleCapturedNodes(), HandleContestedNodes(), ICNodes, ICNodePoint::last_entry, MAX_NODE_TYPES, ICNodePoint::needChange, NODE_TYPE_QUARRY, NODE_TYPE_REFINERY, nodePoint, ICNodePoint::nodeType, Battleground::RelocateDeadPlayers(), RESPAWN_ONE_DAY, SCORE_BASES_ASSAULTED, SCORE_BASES_DEFENDED, Battleground::SendBroadcastText(), Object::SetUInt32Value(), STATUS_IN_PROGRESS, TEAM_ALLIANCE, ICNodePoint::timer, UpdateNodeWorldState(), and UpdatePlayerScore().

◆ EventPlayerDamagedGO()

void BattlegroundIC::EventPlayerDamagedGO ( Player ,
GameObject ,
uint32   
)
inlineoverridevirtual

Reimplemented from Battleground.

969{ }

◆ FillInitialWorldStates()

void BattlegroundIC::FillInitialWorldStates ( WorldPacket data)
overridevirtual

Reimplemented from Battleground.

385{
390
391 for (uint8 i = 0; i < MAX_FORTRESS_GATES_SPAWNS; ++i)
392 {
394 data << uint32(uws) << uint32(1);
395 }
396
397 for (uint8 i = 0; i < MAX_NODE_TYPES; ++i)
398 data << uint32(nodePoint[i].worldStates[nodePoint[i].nodeState]) << uint32(1);
399}
@ MAX_FORTRESS_GATES_SPAWNS
Definition: BattlegroundIC.h:456
@ BG_IC_HORDE_RENFORT
Definition: BattlegroundIC.h:743
@ BG_IC_HORDE_RENFORT_SET
Definition: BattlegroundIC.h:741
@ BG_IC_ALLIANCE_RENFORT_SET
Definition: BattlegroundIC.h:740
@ BG_IC_ALLIANCE_RENFORT
Definition: BattlegroundIC.h:742
const ICGo BG_IC_ObjSpawnlocs[MAX_NORMAL_GAMEOBJECTS_SPAWNS]
Definition: BattlegroundIC.h:610

References BG_IC_ALLIANCE_RENFORT, BG_IC_ALLIANCE_RENFORT_SET, BG_IC_GATE_DESTROYED, BG_IC_HORDE_RENFORT, BG_IC_HORDE_RENFORT_SET, BG_IC_ObjSpawnlocs, factionReinforcements, GateStatus, GetGateIDFromEntry(), GetWorldStateFromGateEntry(), MAX_FORTRESS_GATES_SPAWNS, MAX_NODE_TYPES, nodePoint, TEAM_ALLIANCE, and TEAM_HORDE.

◆ GetClosestGraveyard()

GraveyardStruct const * BattlegroundIC::GetClosestGraveyard ( Player player)
overridevirtual

Reimplemented from Battleground.

987{
988 // Is there any occupied node for this team?
989 std::vector<uint8> nodes;
990 for (uint8 i = 0; i < MAX_NODE_TYPES; ++i)
991 if (nodePoint[i].faction == player->GetTeamId() && !nodePoint[i].needChange) // xinef: controlled by faction and not contested!
992 nodes.push_back(i);
993
994 GraveyardStruct const* good_entry = nullptr;
995 // If so, select the closest node to place ghost on
996 if (!nodes.empty())
997 {
998 float plr_x = player->GetPositionX();
999 float plr_y = player->GetPositionY();
1000
1001 float mindist = 999999.0f;
1002 for (uint8 i = 0; i < nodes.size(); ++i)
1003 {
1004 GraveyardStruct const* entry = sGraveyard->GetGraveyard(BG_IC_GraveyardIds[nodes[i]]);
1005 if (!entry)
1006 continue;
1007 float dist = (entry->x - plr_x) * (entry->x - plr_x) + (entry->y - plr_y) * (entry->y - plr_y);
1008 if (mindist > dist)
1009 {
1010 mindist = dist;
1011 good_entry = entry;
1012 }
1013 }
1014 nodes.clear();
1015 }
1016 // If not, place ghost on starting location
1017 if (!good_entry)
1018 good_entry = sGraveyard->GetGraveyard(BG_IC_GraveyardIds[player->GetTeamId() + static_cast<uint16>(MAX_NODE_TYPES)]);
1019
1020 return good_entry;
1021}
const uint32 BG_IC_GraveyardIds[MAX_NODE_TYPES+2]
Definition: BattlegroundIC.h:842
#define sGraveyard
Definition: GameGraveyard.h:75
Definition: GameGraveyard.h:28
float x
Definition: GameGraveyard.h:31
float y
Definition: GameGraveyard.h:32

References BG_IC_GraveyardIds, Position::GetPositionX(), Position::GetPositionY(), Player::GetTeamId(), MAX_NODE_TYPES, ICNodePoint::needChange, nodePoint, sGraveyard, GraveyardStruct::x, and GraveyardStruct::y.

◆ GetGateIDFromEntry()

uint32 BattlegroundIC::GetGateIDFromEntry ( uint32  id)
inlineprivate
1005 {
1006 uint32 i = 0;
1007 switch (id)
1008 {
1009 case GO_HORDE_GATE_1:
1010 i = BG_IC_H_FRONT;
1011 break;
1012 case GO_HORDE_GATE_2:
1013 i = BG_IC_H_EAST;
1014 break;
1015 case GO_HORDE_GATE_3:
1016 i = BG_IC_H_WEST;
1017 break;
1018 case GO_ALLIANCE_GATE_3:
1019 i = BG_IC_A_FRONT;
1020 break;
1021 case GO_ALLIANCE_GATE_1:
1022 i = BG_IC_A_WEST;
1023 break;
1024 case GO_ALLIANCE_GATE_2:
1025 i = BG_IC_A_EAST;
1026 break;
1027 }
1028 return i;
1029 }

References BG_IC_A_EAST, BG_IC_A_FRONT, BG_IC_A_WEST, BG_IC_H_EAST, BG_IC_H_FRONT, BG_IC_H_WEST, GO_ALLIANCE_GATE_1, GO_ALLIANCE_GATE_2, GO_ALLIANCE_GATE_3, GO_HORDE_GATE_1, GO_HORDE_GATE_2, and GO_HORDE_GATE_3.

Referenced by DestroyGate(), and FillInitialWorldStates().

◆ GetNextBanner()

uint32 BattlegroundIC::GetNextBanner ( ICNodePoint nodePoint,
uint32  team,
bool  returnDefinitve 
)
private
687{
688 // this is only used in the update map function
689 if (returnDefinitve)
690 // here is a special case, here we must return the definitve faction banner after the grey banner was spawned 1 minute
692
693 // there were no changes, this point has never been captured by any faction or at least clicked
694 if (nodePoint->last_entry == 0)
695 // 1 returns the CONTESTED ALLIANCE BANNER, 3 returns the HORDE one
697
698 // If the actual banner is the definitive faction banner, we must return the grey banner of the player's faction
701
702 // If the actual banner is the grey faction banner, we must return the previous banner
704 return nodePoint->last_entry;
705
706 // we should never be here...
707 LOG_ERROR("bg.battleground", "Isle Of Conquest: Unexpected return in GetNextBanner function");
708 return 0;
709}
#define LOG_ERROR(filterType__,...)
Definition: Log.h:157

References BANNER_A_CONTESTED, BANNER_A_CONTROLLED, BANNER_H_CONTESTED, BANNER_H_CONTROLLED, ICNodePoint::banners, ICNodePoint::gameobject_entry, ICNodePoint::last_entry, LOG_ERROR, nodePoint, and TEAM_ALLIANCE.

Referenced by EventPlayerClickedOnFlag(), and PostUpdateImpl().

◆ GetNodeState()

uint32 BattlegroundIC::GetNodeState ( uint8  nodeType) const
inline
981{ return (uint8)nodePoint[nodeType].nodeState; }
ICNodeState nodeState
Definition: BattlegroundIC.h:899

Referenced by SpellArea::IsFitToRequirements().

◆ GetWorldStateFromGateEntry()

uint32 BattlegroundIC::GetWorldStateFromGateEntry ( uint32  id,
bool  open 
)
inlineprivate
1032 {
1033 uint32 uws = 0;
1034
1035 switch (id)
1036 {
1037 case GO_HORDE_GATE_1:
1039 break;
1040 case GO_HORDE_GATE_2:
1042 break;
1043 case GO_HORDE_GATE_3:
1045 break;
1046 case GO_ALLIANCE_GATE_3:
1048 break;
1049 case GO_ALLIANCE_GATE_1:
1051 break;
1052 case GO_ALLIANCE_GATE_2:
1054 break;
1055 }
1056 return uws;
1057 }
@ BG_IC_GATE_WEST_A_WS_OPEN
Definition: BattlegroundIC.h:754
@ BG_IC_GATE_FRONT_A_WS_OPEN
Definition: BattlegroundIC.h:753
@ BG_IC_GATE_FRONT_H_WS_OPEN
Definition: BattlegroundIC.h:750
@ BG_IC_GATE_FRONT_A_WS_CLOSED
Definition: BattlegroundIC.h:747
@ BG_IC_GATE_EAST_H_WS_OPEN
Definition: BattlegroundIC.h:752
@ BG_IC_GATE_WEST_H_WS_OPEN
Definition: BattlegroundIC.h:751
@ BG_IC_GATE_FRONT_H_WS_CLOSED
Definition: BattlegroundIC.h:744
@ BG_IC_GATE_EAST_H_WS_CLOSED
Definition: BattlegroundIC.h:746
@ BG_IC_GATE_WEST_H_WS_CLOSED
Definition: BattlegroundIC.h:745
@ BG_IC_GATE_WEST_A_WS_CLOSED
Definition: BattlegroundIC.h:748
@ BG_IC_GATE_EAST_A_WS_OPEN
Definition: BattlegroundIC.h:755
@ BG_IC_GATE_EAST_A_WS_CLOSED
Definition: BattlegroundIC.h:749

References BG_IC_GATE_EAST_A_WS_CLOSED, BG_IC_GATE_EAST_A_WS_OPEN, BG_IC_GATE_EAST_H_WS_CLOSED, BG_IC_GATE_EAST_H_WS_OPEN, BG_IC_GATE_FRONT_A_WS_CLOSED, BG_IC_GATE_FRONT_A_WS_OPEN, BG_IC_GATE_FRONT_H_WS_CLOSED, BG_IC_GATE_FRONT_H_WS_OPEN, BG_IC_GATE_WEST_A_WS_CLOSED, BG_IC_GATE_WEST_A_WS_OPEN, BG_IC_GATE_WEST_H_WS_CLOSED, BG_IC_GATE_WEST_H_WS_OPEN, GO_ALLIANCE_GATE_1, GO_ALLIANCE_GATE_2, GO_ALLIANCE_GATE_3, GO_HORDE_GATE_1, GO_HORDE_GATE_2, and GO_HORDE_GATE_3.

Referenced by DestroyGate(), and FillInitialWorldStates().

◆ HandleAreaTrigger()

void BattlegroundIC::HandleAreaTrigger ( Player player,
uint32  trigger 
)
overridevirtual

Reimplemented from Battleground.

338{
339 // this is wrong way to implement these things. On official it done by gameobject spell cast.
341 return;
342
343 switch (trigger)
344 {
346 if (player->GetTeamId() != TEAM_ALLIANCE)
347 return;
348 for (uint8 i = BG_IC_H_FRONT; i < BG_IC_A_FRONT; ++i)
350 return;
351 if (!player->HasAchieved(3854)) // ACHIEVEMENT_BACK_DOOR_JOB
352 player->CastSpell(player, SPELL_BACK_DOOR_JOB, true);
353 break;
355 if (player->GetTeamId() != TEAM_HORDE)
356 return;
357 for (uint8 i = BG_IC_A_FRONT; i < BG_IC_MAXDOOR; ++i)
359 return;
360 if (!player->HasAchieved(3854)) // ACHIEVEMENT_BACK_DOOR_JOB
361 player->CastSpell(player, SPELL_BACK_DOOR_JOB, true);
362 break;
363 }
364}
@ AREA_TRIGGER_HORDE_KEEP
Definition: BattlegroundIC.h:208
@ AREA_TRIGGER_ALLIANCE_KEEP
Definition: BattlegroundIC.h:209
@ SPELL_BACK_DOOR_JOB
Definition: BattlegroundIC.h:716
bool HasAchieved(uint32 achievementId) const
Definition: Player.cpp:13831

References AREA_TRIGGER_ALLIANCE_KEEP, AREA_TRIGGER_HORDE_KEEP, BG_IC_A_FRONT, BG_IC_GATE_DESTROYED, BG_IC_H_FRONT, BG_IC_MAXDOOR, Unit::CastSpell(), GateStatus, Battleground::GetStatus(), Player::GetTeamId(), Player::HasAchieved(), SPELL_BACK_DOOR_JOB, STATUS_IN_PROGRESS, TEAM_ALLIANCE, and TEAM_HORDE.

◆ HandleCapturedNodes()

void BattlegroundIC::HandleCapturedNodes ( ICNodePoint nodePoint,
bool  recapture 
)
private
752{
754 {
759 LOG_ERROR("bg.battleground", "Isle of Conquest: Failed to spawn spirit guide! point: {}, team: {}, ", nodePoint->nodeType, nodePoint->faction);
760 }
761
762 switch (nodePoint->gameobject_type)
763 {
765 {
767 break;
768
769 std::list<Creature*> cannons;
772 else
774
775 for (std::list<Creature*>::const_iterator itr = cannons.begin(); itr != cannons.end(); ++itr)
776 (*itr)->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
777
778 for (uint8 u = 0; u < MAX_HANGAR_TELEPORTERS_SPAWNS; ++u)
779 {
782 LOG_ERROR("bg.battleground", "Isle of Conquest: There was an error spawning a gunship portal. Type: {}", BG_IC_GO_HANGAR_TELEPORTER_1 + u);
783 }
784
785 for (uint8 u = 0; u < MAX_HANGAR_TELEPORTER_EFFECTS_SPAWNS; ++u)
786 {
789 LOG_ERROR("bg.battleground", "Isle of Conquest: There was an error spawning a gunship portal effects. Type: {}", BG_IC_GO_HANGAR_TELEPORTER_1 + u);
790 }
791
792 for (uint8 u = 0; u < MAX_TRIGGER_SPAWNS_PER_FACTION; ++u)
793 {
795 LOG_ERROR("bg.battleground", "Isle of Conquest: There was an error spawning a world trigger. Type: {}", BG_IC_NPC_WORLD_TRIGGER_NOT_FLOATING);
796 }
797
798 for (uint8 u = 0; u < MAX_CAPTAIN_SPAWNS_PER_FACTION; ++u)
799 {
801
802 if (type == BG_IC_NPC_GUNSHIP_CAPTAIN_1)
805
806 if (type == BG_IC_NPC_GUNSHIP_CAPTAIN_2)
808 LOG_ERROR("bg.battleground", "Isle of Conquest: There was an error spawning a world trigger. Type: {}", BG_IC_NPC_GUNSHIP_CAPTAIN_2);
809 }
810
811 (nodePoint->faction == TEAM_ALLIANCE ? gunshipAlliance : gunshipHorde)->EnableMovement(true);
812 break;
813 }
817 break;
821 break;
823 if (recapture)
824 break;
825
828
829 // spawning glaive throwers
831 {
833
834 if (GetBgMap()->GetCreature(BgCreatures[type]))
835 continue;
836
842 }
843
844 // spawning catapults
845 for (uint8 i = 0; i < MAX_CATAPULTS_SPAWNS_PER_FACTION; ++i)
846 {
848
849 if (GetBgMap()->GetCreature(BgCreatures[type]))
850 continue;
851
852 if (AddCreature(NPC_CATAPULT, type,
857 }
858 break;
860 {
863
864 if (!recapture)
865 {
866 for (uint8 i = 0; i < MAX_DEMOLISHERS_SPAWNS_PER_FACTION; ++i)
867 {
869
870 if (GetBgMap()->GetCreature(BgCreatures[type]))
871 continue;
872
873 if (AddCreature(NPC_DEMOLISHER, type,
874 BG_IC_WorkshopVehicles[i].GetPositionX(), BG_IC_WorkshopVehicles[i].GetPositionY(),
875 BG_IC_WorkshopVehicles[i].GetPositionZ(), BG_IC_WorkshopVehicles[i].GetOrientation(),
878 }
879
881 if (!GetBgMap()->GetCreature(BgCreatures[siegeType]))
882 {
887 }
888
889 if (Creature* siegeEngine = GetBgMap()->GetCreature(BgCreatures[siegeType]))
890 {
891 siegeEngine->SetFaction(BG_IC_Factions[(nodePoint->faction == TEAM_ALLIANCE ? TEAM_ALLIANCE : TEAM_HORDE)]);
892 siegeEngine->SetCorpseDelay(5 * MINUTE);
893
894 if (siegeEngine->IsAlive())
895 if (Vehicle* siegeVehicle = siegeEngine->GetVehicleKit())
896 if (!siegeVehicle->IsVehicleInUse())
897 Unit::Kill(siegeEngine, siegeEngine);
898
899 respawnMap[siegeEngine->GetGUID()] = GameTime::GetGameTime().count() + VEHICLE_RESPAWN_TIME;
900 }
901 }
902
903 for (uint8 i = 0; i < MAX_WORKSHOP_BOMBS_SPAWNS_PER_FACTION; ++i)
904 {
906 workshopBombs[i].GetPositionX(), workshopBombs[i].GetPositionY(),
907 workshopBombs[i].GetPositionZ(), workshopBombs[i].GetOrientation(),
908 0, 0, 0, 0, 10);
909
910 if (GameObject* seaforiumBombs = GetBGObject(BG_IC_GO_SEAFORIUM_BOMBS_1 + i))
911 {
912 seaforiumBombs->SetRespawnTime(10);
913 seaforiumBombs->SetUInt32Value(GAMEOBJECT_FACTION, BG_IC_Factions[(nodePoint->faction == TEAM_ALLIANCE ? 0 : 1)]);
914 }
915 }
916 break;
917 }
918 default:
919 break;
920 }
921}
constexpr auto MINUTE
Definition: Common.h:49
@ ACTION_GUNSHIP_READY
Definition: BattlegroundIC.h:205
@ NPC_SIEGE_ENGINE_H
Definition: BattlegroundIC.h:40
@ NPC_HORDE_GUNSHIP_CAPTAIN
Definition: BattlegroundIC.h:47
@ NPC_SIEGE_ENGINE_A
Definition: BattlegroundIC.h:41
@ NPC_GLAIVE_THROWER_A
Definition: BattlegroundIC.h:42
@ NPC_WORLD_TRIGGER_NOT_FLOATING
Definition: BattlegroundIC.h:49
@ NPC_GLAIVE_THROWER_H
Definition: BattlegroundIC.h:43
@ NPC_DEMOLISHER
Definition: BattlegroundIC.h:39
@ NPC_CATAPULT
Definition: BattlegroundIC.h:44
@ NPC_ALLIANCE_GUNSHIP_CANNON
Definition: BattlegroundIC.h:46
@ NPC_HORDE_GUNSHIP_CANNON
Definition: BattlegroundIC.h:45
@ NPC_ALLIANCE_GUNSHIP_CAPTAIN
Definition: BattlegroundIC.h:48
@ VEHICLE_RESPAWN_TIME
Definition: BattlegroundIC.h:196
@ BG_IC_GO_HANGAR_BANNER
Definition: BattlegroundIC.h:285
@ BG_IC_GO_WORKSHOP_BANNER
Definition: BattlegroundIC.h:302
@ BG_IC_GO_HANGAR_TELEPORTER_1
Definition: BattlegroundIC.h:323
@ BG_IC_GO_REFINERY_BANNER
Definition: BattlegroundIC.h:304
@ BG_IC_GO_SEAFORIUM_BOMBS_1
Definition: BattlegroundIC.h:320
@ BG_IC_GO_QUARRY_BANNER
Definition: BattlegroundIC.h:295
@ BG_IC_GO_DOCKS_BANNER
Definition: BattlegroundIC.h:261
@ BG_IC_GO_HANGAR_TELEPORTER_EFFECT_1
Definition: BattlegroundIC.h:327
const Position BG_IC_WorkshopVehicles[5]
Definition: BattlegroundIC.h:516
@ MAX_GLAIVE_THROWERS_SPAWNS_PER_FACTION
Definition: BattlegroundIC.h:462
@ MAX_WORKSHOP_BOMBS_SPAWNS_PER_FACTION
Definition: BattlegroundIC.h:467
@ MAX_CATAPULTS_SPAWNS_PER_FACTION
Definition: BattlegroundIC.h:463
@ MAX_DEMOLISHERS_SPAWNS_PER_FACTION
Definition: BattlegroundIC.h:466
@ MAX_TRIGGER_SPAWNS_PER_FACTION
Definition: BattlegroundIC.h:470
@ MAX_CAPTAIN_SPAWNS_PER_FACTION
Definition: BattlegroundIC.h:471
const float BG_IC_SpiritGuidePos[MAX_NODE_TYPES+2][4]
Definition: BattlegroundIC.h:844
const Position BG_IC_HangarTeleporters[3]
Definition: BattlegroundIC.h:539
const Position workshopBombs[2]
Definition: BattlegroundIC.h:704
const Position BG_IC_DocksVehiclesGlaives[2]
Definition: BattlegroundIC.h:525
const Position BG_IC_DocksVehiclesCatapults[4]
Definition: BattlegroundIC.h:531
@ GO_ALLIANCE_GUNSHIP_PORTAL_EFFECTS
Definition: BattlegroundIC.h:64
@ GO_HORDE_GUNSHIP_PORTAL_EFFECTS
Definition: BattlegroundIC.h:117
@ GO_SEAFORIUM_BOMBS
Definition: BattlegroundIC.h:126
@ GO_ALLIANCE_GUNSHIP_PORTAL
Definition: BattlegroundIC.h:62
@ GO_HORDE_GUNSHIP_PORTAL
Definition: BattlegroundIC.h:115
@ BG_IC_NPC_GLAIVE_THROWER_1_H
Definition: BattlegroundIC.h:412
@ BG_IC_NPC_GUNSHIP_CAPTAIN_1
Definition: BattlegroundIC.h:426
@ BG_IC_NPC_SIEGE_ENGINE_H
Definition: BattlegroundIC.h:398
@ BG_IC_NPC_DEMOLISHER_1_H
Definition: BattlegroundIC.h:405
@ BG_IC_NPC_GUNSHIP_CAPTAIN_2
Definition: BattlegroundIC.h:427
@ BG_IC_NPC_CATAPULT_1_A
Definition: BattlegroundIC.h:415
@ BG_IC_NPC_CATAPULT_1_H
Definition: BattlegroundIC.h:420
@ BG_IC_NPC_DEMOLISHER_1_A
Definition: BattlegroundIC.h:400
@ BG_IC_NPC_SIEGE_ENGINE_A
Definition: BattlegroundIC.h:397
@ BG_IC_NPC_GLAIVE_THROWER_1_A
Definition: BattlegroundIC.h:410
@ BG_IC_NPC_WORLD_TRIGGER_NOT_FLOATING
Definition: BattlegroundIC.h:425
const Position BG_IC_HangarTeleporterEffects[3]
Definition: BattlegroundIC.h:546
const Position BG_IC_HangarCaptains[4]
Definition: BattlegroundIC.h:559
@ GO_STATE_ACTIVE
Definition: GameObjectData.h:690
@ UNIT_FLAG_NOT_SELECTABLE
Definition: Unit.h:473
Creature * GetCreature(WorldObject const &u, ObjectGuid const guid)
Definition: ObjectAccessor.cpp:213
Seconds GetGameTime()
Definition: GameTime.cpp:38
virtual void DoAction(int32)
Definition: UnitAI.h:201
bool AddSpiritGuide(uint32 type, float x, float y, float z, float o, TeamId teamId)
Definition: Battleground.cpp:1633
static TeamId GetOtherTeamId(TeamId teamId)
Definition: Battleground.cpp:1813
BattlegroundMap * GetBgMap() const
Definition: Battleground.h:432
Creature * AddCreature(uint32 entry, uint32 type, float x, float y, float z, float o, uint32 respawntime=0, MotionTransport *transport=nullptr)
Definition: Battleground.cpp:1531
void RemoveAuraOnTeam(uint32 spellId, TeamId teamId)
Definition: Battleground.cpp:703
void CastSpellOnTeam(uint32 spellId, TeamId teamId)
Definition: Battleground.cpp:696
Creature * GetBGCreature(uint32 type)
Definition: Battleground.cpp:1502
Definition: Creature.h:46
void GetCreatureListWithEntryInGrid(std::list< Creature * > &lList, uint32 uiEntry, float fMaxSearchRange) const
Definition: Object.cpp:2488
void SetFaction(uint32 faction)
Definition: Unit.cpp:10064
static void Kill(Unit *killer, Unit *victim, bool durabilityLoss=true, WeaponAttackType attackType=BASE_ATTACK, SpellInfo const *spellProto=nullptr, Spell const *spell=nullptr)
Definition: Unit.cpp:17956
UnitAI * GetAI()
Definition: Unit.h:1328
Definition: Vehicle.h:30
Creature * GetCreature(ObjectGuid const guid)
Definition: Map.cpp:3307

References ACTION_GUNSHIP_READY, Battleground::AddCreature(), Battleground::AddObject(), Battleground::AddSpiritGuide(), BG_IC_DocksVehiclesCatapults, BG_IC_DocksVehiclesGlaives, BG_IC_Factions, BG_IC_GO_DOCKS_BANNER, BG_IC_GO_HANGAR_BANNER, BG_IC_GO_HANGAR_TELEPORTER_1, BG_IC_GO_HANGAR_TELEPORTER_EFFECT_1, BG_IC_GO_QUARRY_BANNER, BG_IC_GO_REFINERY_BANNER, BG_IC_GO_SEAFORIUM_BOMBS_1, BG_IC_GO_WORKSHOP_BANNER, BG_IC_HangarCaptains, BG_IC_HangarTeleporterEffects, BG_IC_HangarTeleporters, BG_IC_HangarTrigger, BG_IC_NPC_CATAPULT_1_A, BG_IC_NPC_CATAPULT_1_H, BG_IC_NPC_DEMOLISHER_1_A, BG_IC_NPC_DEMOLISHER_1_H, BG_IC_NPC_GLAIVE_THROWER_1_A, BG_IC_NPC_GLAIVE_THROWER_1_H, BG_IC_NPC_GUNSHIP_CAPTAIN_1, BG_IC_NPC_GUNSHIP_CAPTAIN_2, BG_IC_NPC_SIEGE_ENGINE_A, BG_IC_NPC_SIEGE_ENGINE_H, BG_IC_NPC_SPIRIT_GUIDE_1, BG_IC_NPC_WORLD_TRIGGER_NOT_FLOATING, BG_IC_SpiritGuidePos, BG_IC_WorkshopVehicles, Battleground::BgCreatures, Battleground::CastSpellOnTeam(), UnitAI::DoAction(), DOCKS_UPDATE_TIME, docksTimer, ICNodePoint::faction, GAMEOBJECT_FACTION, ICNodePoint::gameobject_type, Unit::GetAI(), Battleground::GetBGCreature(), Battleground::GetBgMap(), Battleground::GetBGObject(), Map::GetCreature(), WorldObject::GetCreatureListWithEntryInGrid(), GameTime::GetGameTime(), Position::GetOrientation(), Battleground::GetOtherTeamId(), Position::GetPositionX(), Position::GetPositionY(), Position::GetPositionZ(), GO_ALLIANCE_GUNSHIP_PORTAL, GO_ALLIANCE_GUNSHIP_PORTAL_EFFECTS, GO_HORDE_GUNSHIP_PORTAL, GO_HORDE_GUNSHIP_PORTAL_EFFECTS, GO_SEAFORIUM_BOMBS, GO_STATE_ACTIVE, gunshipAlliance, gunshipHorde, Unit::Kill(), LOG_ERROR, MAX_CAPTAIN_SPAWNS_PER_FACTION, MAX_CATAPULTS_SPAWNS_PER_FACTION, MAX_DEMOLISHERS_SPAWNS_PER_FACTION, MAX_GLAIVE_THROWERS_SPAWNS_PER_FACTION, MAX_HANGAR_TELEPORTER_EFFECTS_SPAWNS, MAX_HANGAR_TELEPORTERS_SPAWNS, MAX_TRIGGER_SPAWNS_PER_FACTION, MAX_WORKSHOP_BOMBS_SPAWNS_PER_FACTION, MINUTE, NODE_TYPE_QUARRY, NODE_TYPE_REFINERY, nodePoint, ICNodePoint::nodeType, NPC_ALLIANCE_GUNSHIP_CANNON, NPC_ALLIANCE_GUNSHIP_CAPTAIN, NPC_CATAPULT, NPC_DEMOLISHER, NPC_GLAIVE_THROWER_A, NPC_GLAIVE_THROWER_H, NPC_HORDE_GUNSHIP_CANNON, NPC_HORDE_GUNSHIP_CAPTAIN, NPC_SIEGE_ENGINE_A, NPC_SIEGE_ENGINE_H, NPC_WORLD_TRIGGER_NOT_FLOATING, Battleground::RemoveAuraOnTeam(), RESPAWN_ONE_DAY, respawnMap, Unit::SetFaction(), siegeEngineWorkshopTimer, SPELL_OIL_REFINERY, SPELL_QUARRY, TEAM_ALLIANCE, TEAM_HORDE, UNIT_FLAG_NOT_SELECTABLE, VEHICLE_RESPAWN_TIME, WORKSHOP_UPDATE_TIME, and workshopBombs.

Referenced by EventPlayerClickedOnFlag(), and PostUpdateImpl().

◆ HandleContestedNodes()

void BattlegroundIC::HandleContestedNodes ( ICNodePoint nodePoint)
private
712{
714 {
716 (nodePoint->faction == TEAM_ALLIANCE ? gunshipHorde : gunshipAlliance)->EnableMovement(false);
717
719 DelObject(u);
720
722 DelObject(u);
723
725
726 for (uint8 u = 0; u < MAX_CAPTAIN_SPAWNS_PER_FACTION; ++u)
727 {
729 DelCreature(type);
730 }
731
732 std::list<Creature*> cannons;
735 else
737
738 for (std::list<Creature*>::const_iterator itr = cannons.begin(); itr != cannons.end(); ++itr)
739 {
740 (*itr)->GetVehicleKit()->RemoveAllPassengers();
741 (*itr)->SetUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
742 }
743 }
745 {
748 }
749}
@ NODE_TYPE_HANGAR
Definition: BattlegroundIC.h:823
@ BG_IC_GO_HANGAR_TELEPORTER_EFFECT_3
Definition: BattlegroundIC.h:329
@ BG_IC_GO_HANGAR_TELEPORTER_3
Definition: BattlegroundIC.h:325
@ BG_IC_GO_SEAFORIUM_BOMBS_2
Definition: BattlegroundIC.h:321

References BG_IC_GO_HANGAR_TELEPORTER_1, BG_IC_GO_HANGAR_TELEPORTER_3, BG_IC_GO_HANGAR_TELEPORTER_EFFECT_1, BG_IC_GO_HANGAR_TELEPORTER_EFFECT_3, BG_IC_GO_SEAFORIUM_BOMBS_1, BG_IC_GO_SEAFORIUM_BOMBS_2, BG_IC_NPC_GUNSHIP_CAPTAIN_1, BG_IC_NPC_WORLD_TRIGGER_NOT_FLOATING, Battleground::DelCreature(), Battleground::DelObject(), ICNodePoint::faction, WorldObject::GetCreatureListWithEntryInGrid(), gunshipAlliance, gunshipHorde, MAX_CAPTAIN_SPAWNS_PER_FACTION, NODE_TYPE_HANGAR, NODE_TYPE_WORKSHOP, nodePoint, ICNodePoint::nodeType, NPC_ALLIANCE_GUNSHIP_CANNON, NPC_HORDE_GUNSHIP_CANNON, TEAM_ALLIANCE, TEAM_HORDE, and UNIT_FLAG_NOT_SELECTABLE.

Referenced by EventPlayerClickedOnFlag().

◆ HandleKillPlayer()

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

Reimplemented from Battleground.

536{
538 return;
539
540 Battleground::HandleKillPlayer(player, killer);
541
542 factionReinforcements[player->GetTeamId()] -= 1;
543
545
546 // we must end the battleground
547 if (factionReinforcements[player->GetTeamId()] < 1)
548 EndBattleground(killer->GetTeamId());
549}
virtual void HandleKillPlayer(Player *player, Player *killer)
Definition: Battleground.cpp:1778
void EndBattleground(PvPTeamId winnerTeamId)
Definition: Battleground.cpp:778

References BG_IC_ALLIANCE_RENFORT, BG_IC_HORDE_RENFORT, Battleground::EndBattleground(), factionReinforcements, Battleground::GetStatus(), Player::GetTeamId(), Battleground::HandleKillPlayer(), STATUS_IN_PROGRESS, TEAM_ALLIANCE, and Battleground::UpdateWorldState().

◆ HandleKillUnit()

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

Reimplemented from Battleground.

506{
508 return;
509
510 uint32 entry = unit->GetEntry();
512 {
515 }
516 else if (entry == NPC_OVERLORD_AGMAR)
517 {
520 }
521
522 //Achievement Mowed Down
523 // TO-DO: This should be done on the script of each vehicle of the BG.
524 if (unit->IsVehicle())
525 {
526 killer->CastSpell(killer, SPELL_DESTROYED_VEHICLE_ACHIEVEMENT, true);
527
528 // Xinef: Add to respawn list
529 if (entry == NPC_DEMOLISHER || entry == NPC_SIEGE_ENGINE_H || entry == NPC_SIEGE_ENGINE_A ||
530 entry == NPC_GLAIVE_THROWER_A || entry == NPC_GLAIVE_THROWER_H || entry == NPC_CATAPULT)
532 }
533}
@ WINNER_HONOR_AMOUNT
Definition: BattlegroundIC.h:916
@ NPC_HIGH_COMMANDER_HALFORD_WYRMBANE
Definition: BattlegroundIC.h:33
@ NPC_OVERLORD_AGMAR
Definition: BattlegroundIC.h:34
@ SPELL_DESTROYED_VEHICLE_ACHIEVEMENT
Definition: BattlegroundIC.h:715
void RewardHonorToTeam(uint32 honor, TeamId teamId)
Definition: Battleground.cpp:720
bool IsVehicle() const
Definition: Unit.h:1428

References Unit::CastSpell(), Battleground::EndBattleground(), Object::GetEntry(), GameTime::GetGameTime(), Object::GetGUID(), Battleground::GetStatus(), Unit::IsVehicle(), NPC_CATAPULT, NPC_DEMOLISHER, NPC_GLAIVE_THROWER_A, NPC_GLAIVE_THROWER_H, NPC_HIGH_COMMANDER_HALFORD_WYRMBANE, NPC_OVERLORD_AGMAR, NPC_SIEGE_ENGINE_A, NPC_SIEGE_ENGINE_H, respawnMap, Battleground::RewardHonorToTeam(), SPELL_DESTROYED_VEHICLE_ACHIEVEMENT, STATUS_IN_PROGRESS, TEAM_ALLIANCE, TEAM_HORDE, VEHICLE_RESPAWN_TIME, and WINNER_HONOR_AMOUNT.

◆ HandlePlayerResurrect()

void BattlegroundIC::HandlePlayerResurrect ( Player player)
overridevirtual

◆ IsResourceGlutAllowed()

bool BattlegroundIC::IsResourceGlutAllowed ( TeamId  teamId) const

◆ 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.

94{
96 return;
97
98 if (!doorsClosed)
99 {
100 if (closeFortressDoorsTimer <= diff)
101 {
108
115
116 doorsClosed = true;
117 }
118 else closeFortressDoorsTimer -= diff;
119 }
120
121 for (uint8 i = NODE_TYPE_REFINERY; i < MAX_NODE_TYPES; ++i)
122 {
123 if (nodePoint[i].nodeType == NODE_TYPE_DOCKS)
124 {
125 if (nodePoint[i].nodeState == NODE_STATE_CONTROLLED_A ||
126 nodePoint[i].nodeState == NODE_STATE_CONTROLLED_H)
127 {
128 if (nodePoint[i].timer <= diff)
129 {
130 // we need to confirm this, i am not sure if this every 3 minutes
131 for (uint8 j = 0; j < MAX_CATAPULTS_SPAWNS_PER_FACTION; ++j)
132 {
134 if (Creature* catapult = GetBgMap()->GetCreature(BgCreatures[type]))
135 if (!catapult->IsAlive())
136 {
137 // Check if creature respawn time is properly saved
138 RespawnMap::iterator itr = respawnMap.find(catapult->GetGUID());
139 if (itr == respawnMap.end() || GameTime::GetGameTime().count() < itr->second)
140 continue;
141
143 catapult->Respawn(true);
144 respawnMap.erase(itr);
145 }
146 }
147
148 // we need to confirm this is blizzlike, not sure if it is every 3 minutes
150 {
152 if (Creature* glaiveThrower = GetBgMap()->GetCreature(BgCreatures[type]))
153 if (!glaiveThrower->IsAlive())
154 {
155 // Check if creature respawn time is properly saved
156 RespawnMap::iterator itr = respawnMap.find(glaiveThrower->GetGUID());
157 if (itr == respawnMap.end() || GameTime::GetGameTime().count() < itr->second)
158 continue;
159
161 glaiveThrower->Respawn(true);
162 respawnMap.erase(itr);
163 }
164 }
165
167 }
168 else
169 nodePoint[i].timer -= diff;
170 }
171 }
172
173 if (nodePoint[i].nodeType == NODE_TYPE_WORKSHOP)
174 {
175 if (nodePoint[i].nodeState == NODE_STATE_CONTROLLED_A ||
176 nodePoint[i].nodeState == NODE_STATE_CONTROLLED_H)
177 {
178 if (siegeEngineWorkshopTimer <= diff)
179 {
181 if (Creature* siege = GetBGCreature(siegeType)) // this always should be true
182 if (!siege->IsAlive())
183 {
184 // Check if creature respawn time is properly saved
185 RespawnMap::iterator itr = respawnMap.find(siege->GetGUID());
186 if (itr == respawnMap.end() || GameTime::GetGameTime().count() < itr->second)
187 continue;
188
190 siege->Respawn(true);
191 respawnMap.erase(itr);
192 }
193
194 // we need to confirm this, i am not sure if this every 3 minutes
195 for (uint8 u = 0; u < MAX_DEMOLISHERS_SPAWNS_PER_FACTION; ++u)
196 {
198 if (Creature* demolisher = GetBgMap()->GetCreature(BgCreatures[type]))
199 if (!demolisher->IsAlive())
200 {
201 // Check if creature respawn time is properly saved
202 RespawnMap::iterator itr = respawnMap.find(demolisher->GetGUID());
203 if (itr == respawnMap.end() || GameTime::GetGameTime().count() < itr->second)
204 continue;
205
207 demolisher->Respawn(true);
208 respawnMap.erase(itr);
209 }
210 }
211
213 }
214 else
216 }
217 }
218
219 // the point is waiting for a change on its banner
220 if (nodePoint[i].needChange)
221 {
222 if (nodePoint[i].timer <= diff)
223 {
224 uint32 nextBanner = GetNextBanner(&nodePoint[i], nodePoint[i].faction, true);
225
227 nodePoint[i].gameobject_entry = nextBanner;
228 // nodePoint[i].faction = the faction should be the same one...
229
230 GameObject* banner = GetBGObject(nodePoint[i].gameobject_type);
231
232 if (!banner) // this should never happen
233 return;
234
235 float cords[4] = {banner->GetPositionX(), banner->GetPositionY(), banner->GetPositionZ(), banner->GetOrientation() };
236
237 DelObject(nodePoint[i].gameobject_type);
238 AddObject(nodePoint[i].gameobject_type, nodePoint[i].gameobject_entry, cords[0], cords[1], cords[2], cords[3], 0, 0, 0, 0, RESPAWN_ONE_DAY);
239
241
243 HandleCapturedNodes(&nodePoint[i], false);
244
245 if (nodePoint[i].faction == TEAM_ALLIANCE)
246 {
248 }
249 else
250 {
252 }
253
254 nodePoint[i].needChange = false;
256 }
257 else nodePoint[i].timer -= diff;
258 }
259 }
260
261 if (resourceTimer <= diff)
262 {
263 for (uint8 i = 0; i < NODE_TYPE_DOCKS; ++i)
264 {
265 if (nodePoint[i].nodeState == NODE_STATE_CONTROLLED_A ||
266 nodePoint[i].nodeState == NODE_STATE_CONTROLLED_H)
267 {
271 }
272 }
274 }
275 else resourceTimer -= diff;
276}
@ RESOURCE_HONOR_AMOUNT
Definition: BattlegroundIC.h:915
@ NODE_TYPE_DOCKS
Definition: BattlegroundIC.h:822
@ BG_IC_GO_DOODAD_ND_WINTERORC_WALL_GATEFX_DOOR01
Definition: BattlegroundIC.h:316
@ BG_IC_GO_HORDE_GATE_3
Definition: BattlegroundIC.h:291
@ BG_IC_GO_HORDE_GATE_2
Definition: BattlegroundIC.h:290
@ BG_IC_GO_DOODAD_ND_WINTERORC_WALL_GATEFX_DOOR02
Definition: BattlegroundIC.h:317
@ BG_IC_GO_ALLIANCE_GATE_3
Definition: BattlegroundIC.h:228
@ BG_IC_GO_DOODAD_ND_WINTERORC_WALL_GATEFX_DOOR03
Definition: BattlegroundIC.h:318
@ BG_IC_GO_DOODAD_ND_HUMAN_GATE_CLOSEDFX_DOOR01
Definition: BattlegroundIC.h:266
@ BG_IC_GO_ALLIANCE_GATE_1
Definition: BattlegroundIC.h:226
@ BG_IC_GO_DOODAD_ND_HUMAN_GATE_CLOSEDFX_DOOR03
Definition: BattlegroundIC.h:268
@ BG_IC_GO_DOODAD_ND_HUMAN_GATE_CLOSEDFX_DOOR02
Definition: BattlegroundIC.h:267
@ BG_IC_GO_HORDE_GATE_1
Definition: BattlegroundIC.h:289
@ BG_IC_GO_ALLIANCE_GATE_2
Definition: BattlegroundIC.h:227
@ GO_DESTRUCTIBLE_DAMAGED
Definition: SharedDefines.h:1628
void RemoveFromWorld() override
Definition: GameObject.cpp:169
void SetDestructibleState(GameObjectDestructibleState state, Player *eventInvoker=nullptr, bool setHealth=false)
Definition: GameObject.cpp:2340

References Battleground::AddObject(), BANNER_STATE_CHANGE_TIME, BG_IC_ALLIANCE_RENFORT, BG_IC_DocksVehiclesCatapults, BG_IC_DocksVehiclesGlaives, BG_IC_Factions, BG_IC_GO_ALLIANCE_GATE_1, BG_IC_GO_ALLIANCE_GATE_2, BG_IC_GO_ALLIANCE_GATE_3, BG_IC_GO_DOODAD_ND_HUMAN_GATE_CLOSEDFX_DOOR01, BG_IC_GO_DOODAD_ND_HUMAN_GATE_CLOSEDFX_DOOR02, BG_IC_GO_DOODAD_ND_HUMAN_GATE_CLOSEDFX_DOOR03, BG_IC_GO_DOODAD_ND_WINTERORC_WALL_GATEFX_DOOR01, BG_IC_GO_DOODAD_ND_WINTERORC_WALL_GATEFX_DOOR02, BG_IC_GO_DOODAD_ND_WINTERORC_WALL_GATEFX_DOOR03, BG_IC_GO_HORDE_GATE_1, BG_IC_GO_HORDE_GATE_2, BG_IC_GO_HORDE_GATE_3, BG_IC_HORDE_RENFORT, BG_IC_NPC_CATAPULT_1_A, BG_IC_NPC_CATAPULT_1_H, BG_IC_NPC_DEMOLISHER_1_A, BG_IC_NPC_DEMOLISHER_1_H, BG_IC_NPC_GLAIVE_THROWER_1_A, BG_IC_NPC_GLAIVE_THROWER_1_H, BG_IC_NPC_SIEGE_ENGINE_A, BG_IC_NPC_SIEGE_ENGINE_H, BG_IC_WorkshopVehicles, Battleground::BgCreatures, CHAT_MSG_BG_SYSTEM_ALLIANCE, CHAT_MSG_BG_SYSTEM_HORDE, closeFortressDoorsTimer, cords, Battleground::DelObject(), DOCKS_UPDATE_TIME, docksTimer, doorsClosed, ICNodePoint::faction, factionReinforcements, ICNodePoint::gameobject_entry, GAMEOBJECT_FACTION, Battleground::GetBGCreature(), Battleground::GetBgMap(), Battleground::GetBGObject(), Map::GetCreature(), GameTime::GetGameTime(), GetNextBanner(), Position::GetOrientation(), Position::GetPositionX(), Position::GetPositionY(), Position::GetPositionZ(), Battleground::GetStatus(), GO_DESTRUCTIBLE_DAMAGED, HandleCapturedNodes(), IC_RESOURCE_TIME, ICNodes, ICNodePoint::last_entry, MAX_CATAPULTS_SPAWNS_PER_FACTION, MAX_DEMOLISHERS_SPAWNS_PER_FACTION, MAX_GLAIVE_THROWERS_SPAWNS_PER_FACTION, MAX_NODE_TYPES, ICNodePoint::needChange, NODE_STATE_CONTROLLED_A, NODE_STATE_CONTROLLED_H, NODE_TYPE_DOCKS, NODE_TYPE_REFINERY, NODE_TYPE_WORKSHOP, nodePoint, GameObject::RemoveFromWorld(), RESOURCE_HONOR_AMOUNT, resourceTimer, RESPAWN_ONE_DAY, respawnMap, Battleground::RewardHonorToTeam(), Battleground::SendBroadcastText(), GameObject::SetDestructibleState(), Object::SetUInt32Value(), siegeEngineWorkshopTimer, STATUS_IN_PROGRESS, TEAM_ALLIANCE, ICNodePoint::timer, UpdateNodeWorldState(), Battleground::UpdateWorldState(), and WORKSHOP_UPDATE_TIME.

◆ RemovePlayer()

void BattlegroundIC::RemovePlayer ( Player player)
overridevirtual

Reimplemented from Battleground.

332{
333 player->RemoveAura(SPELL_QUARRY);
335}
void RemoveAura(AuraApplicationMap::iterator &i, AuraRemoveMode mode=AURA_REMOVE_BY_DEFAULT)
Definition: Unit.cpp:4722

References Unit::RemoveAura(), SPELL_OIL_REFINERY, and SPELL_QUARRY.

◆ SetupBattleground()

bool BattlegroundIC::SetupBattleground ( )
overridevirtual

Reimplemented from Battleground.

402{
403 for (uint8 i = 0; i < MAX_NORMAL_GAMEOBJECTS_SPAWNS; ++i)
404 {
406 {
407 LOG_ERROR("bg.battleground", "Isle of Conquest: There was an error spawning gameobject {}", BG_IC_ObjSpawnlocs[i].entry);
408 return false;
409 }
410
411 // Horde / Alliance gates, set active
412 if (i < 6)
414 }
415
416 for (uint8 i = 0; i < MAX_FORTRESS_TELEPORTERS_SPAWNS; ++i)
417 {
419 {
420 LOG_ERROR("bg.battleground", "Isle of Conquest | Starting Event Open Doors: There was an error spawning gameobject {}", BG_IC_Teleporters[i].entry);
421 return false;
422 }
423 }
424
426 {
428 {
429 LOG_ERROR("bg.battleground", "Isle of Conquest | Starting Event Open Doors: There was an error spawning gameobject {}", BG_IC_Teleporters[i].entry);
430 return false;
431 }
432 }
433
434 for (uint8 i = 0; i < MAX_NORMAL_NPCS_SPAWNS; ++i)
435 {
437 {
438 LOG_ERROR("bg.battleground", "Isle of Conquest: There was an error spawning creature {}", BG_IC_NpcSpawnlocs[i].entry);
439 return false;
440 }
441 }
442
447 {
448 LOG_ERROR("bg.battleground", "Isle of Conquest: Failed to spawn initial spirit guide!");
449 return false;
450 }
451
452 gunshipHorde = sTransportMgr->CreateTransport(GO_HORDE_GUNSHIP, 0, GetBgMap());
454
456 {
457 LOG_ERROR("bg.battleground", "Isle of Conquest: There was an error creating gunships!");
458 return false;
459 }
460
463
464 // setting correct factions for Keep Cannons
469 // Flags
471 {
472 go->SetUInt32Value(GAMEOBJECT_FACTION, BG_IC_Factions[1]);
474 }
476 {
477 go->SetUInt32Value(GAMEOBJECT_FACTION, BG_IC_Factions[0]);
479 }
480
481 // correcting spawn time for keeps bombs
484
485 TurnBosses(false);
486 return true;
487}
@ BG_IC_GO_HUGE_SEAFORIUM_BOMBS_A_1
Definition: BattlegroundIC.h:306
@ BG_IC_GO_HUGE_SEAFORIUM_BOMBS_H_4
Definition: BattlegroundIC.h:314
const ICGo BG_IC_TeleporterEffects[MAX_FORTRESS_TELEPORTER_EFFECTS_SPAWNS]
Definition: BattlegroundIC.h:593
const ICNpc BG_IC_NpcSpawnlocs[MAX_NORMAL_NPCS_SPAWNS]
Definition: BattlegroundIC.h:474
@ GO_HORDE_GUNSHIP
Definition: BattlegroundIC.h:186
@ GO_ALLIANCE_GUNSHIP
Definition: BattlegroundIC.h:187
@ BG_IC_NPC_KEEP_CANNON_13
Definition: BattlegroundIC.h:383
@ BG_IC_NPC_KEEP_CANNON_25
Definition: BattlegroundIC.h:395
@ BG_IC_NPC_KEEP_CANNON_12
Definition: BattlegroundIC.h:382
@ BG_IC_NPC_KEEP_CANNON_1
Definition: BattlegroundIC.h:371
const ICGo BG_IC_Teleporters[MAX_FORTRESS_TELEPORTERS_SPAWNS]
Definition: BattlegroundIC.h:577
#define sTransportMgr
Definition: TransportMgr.h:163
void SetRespawnTime(int32 respawn)
Definition: GameObject.cpp:1301
void setActive(bool isActiveObject)
Definition: Object.cpp:1085
void EnableMovement(bool enabled)
Definition: Transport.cpp:456

References Battleground::AddCreature(), Battleground::AddObject(), Battleground::AddSpiritGuide(), BG_IC_Factions, BG_IC_GO_ALLIANCE_BANNER, BG_IC_GO_HORDE_BANNER, BG_IC_GO_HUGE_SEAFORIUM_BOMBS_A_1, BG_IC_GO_HUGE_SEAFORIUM_BOMBS_H_4, BG_IC_NPC_KEEP_CANNON_1, BG_IC_NPC_KEEP_CANNON_12, BG_IC_NPC_KEEP_CANNON_13, BG_IC_NPC_KEEP_CANNON_25, BG_IC_NPC_SPIRIT_GUIDE_1, BG_IC_NpcSpawnlocs, BG_IC_ObjSpawnlocs, BG_IC_SpiritGuidePos, BG_IC_TeleporterEffects, BG_IC_Teleporters, MotionTransport::EnableMovement(), GAMEOBJECT_FACTION, GAMEOBJECT_FLAGS, Battleground::GetBGCreature(), Battleground::GetBgMap(), Battleground::GetBGObject(), GO_ALLIANCE_GUNSHIP, GO_FLAG_NOT_SELECTABLE, GO_HORDE_GUNSHIP, gunshipAlliance, gunshipHorde, LOG_ERROR, MAX_FORTRESS_TELEPORTER_EFFECTS_SPAWNS, MAX_FORTRESS_TELEPORTERS_SPAWNS, MAX_NORMAL_GAMEOBJECTS_SPAWNS, MAX_NORMAL_NPCS_SPAWNS, RESPAWN_ONE_DAY, WorldObject::setActive(), Unit::SetFaction(), GameObject::SetRespawnTime(), sTransportMgr, TEAM_ALLIANCE, TEAM_HORDE, and TurnBosses().

◆ StartingEventCloseDoors()

void BattlegroundIC::StartingEventCloseDoors ( )
inlineoverridevirtual

Reimplemented from Battleground.

958{ }

◆ StartingEventOpenDoors()

void BattlegroundIC::StartingEventOpenDoors ( )
overridevirtual

Reimplemented from Battleground.

279{
280 //after 20 seconds they should be despawned
287
292
293 for (uint8 i = 0; i < MAX_FORTRESS_TELEPORTERS_SPAWNS; ++i)
295
298}
@ BG_IC_GO_DOODAD_VR_PORTCULLIS01_2
Definition: BattlegroundIC.h:275
@ BG_IC_GO_DOODAD_HU_PORTCULLIS01_1
Definition: BattlegroundIC.h:263
@ BG_IC_GO_DOODAD_VR_PORTCULLIS01_1
Definition: BattlegroundIC.h:274
@ BG_IC_GO_DOODAD_HU_PORTCULLIS01_2
Definition: BattlegroundIC.h:264
void SetGoState(GOState state)
Definition: GameObject.cpp:2477
void RemoveGameObjectFlag(GameObjectFlags flags)
Definition: GameObject.h:221

References BG_IC_GO_DOODAD_HU_PORTCULLIS01_1, BG_IC_GO_DOODAD_HU_PORTCULLIS01_2, BG_IC_GO_DOODAD_ND_HUMAN_GATE_CLOSEDFX_DOOR01, BG_IC_GO_DOODAD_ND_HUMAN_GATE_CLOSEDFX_DOOR02, BG_IC_GO_DOODAD_ND_HUMAN_GATE_CLOSEDFX_DOOR03, BG_IC_GO_DOODAD_ND_WINTERORC_WALL_GATEFX_DOOR01, BG_IC_GO_DOODAD_ND_WINTERORC_WALL_GATEFX_DOOR02, BG_IC_GO_DOODAD_ND_WINTERORC_WALL_GATEFX_DOOR03, BG_IC_GO_DOODAD_VR_PORTCULLIS01_1, BG_IC_GO_DOODAD_VR_PORTCULLIS01_2, BG_IC_TeleporterEffects, BG_IC_Teleporters, Battleground::DoorOpen(), Battleground::GetBGObject(), GO_FLAG_NOT_SELECTABLE, GO_STATE_ACTIVE, MAX_FORTRESS_TELEPORTER_EFFECTS_SPAWNS, MAX_FORTRESS_TELEPORTERS_SPAWNS, GameObject::RemoveGameObjectFlag(), and GameObject::SetGoState().

◆ TurnBosses()

void BattlegroundIC::TurnBosses ( bool  on)
private
490{
491 // Make Bosses invisible and passive
492 // or visible and active
494 {
495 boss->SetVisible(on);
496 boss->SetReactState(on ? REACT_AGGRESSIVE : REACT_PASSIVE);
497 }
499 {
500 boss->SetVisible(on);
501 boss->SetReactState(on ? REACT_AGGRESSIVE : REACT_PASSIVE);
502 }
503}
@ BG_IC_NPC_OVERLORD_AGMAR
Definition: BattlegroundIC.h:361
@ BG_IC_NPC_HIGH_COMMANDER_HALFORD_WYRMBANE
Definition: BattlegroundIC.h:362
@ REACT_PASSIVE
Definition: Unit.h:1035
@ REACT_AGGRESSIVE
Definition: Unit.h:1037

References BG_IC_NPC_HIGH_COMMANDER_HALFORD_WYRMBANE, BG_IC_NPC_OVERLORD_AGMAR, Battleground::GetBGCreature(), REACT_AGGRESSIVE, and REACT_PASSIVE.

Referenced by DestroyGate(), and SetupBattleground().

◆ UpdateNodeWorldState()

void BattlegroundIC::UpdateNodeWorldState ( ICNodePoint nodePoint)
private

◆ UpdatePlayerScore()

bool BattlegroundIC::UpdatePlayerScore ( Player player,
uint32  type,
uint32  value,
bool  doAddHonor = true 
)
overridevirtual

Reimplemented from Battleground.

367{
368 if (!Battleground::UpdatePlayerScore(player, type, value, doAddHonor))
369 return false;
370
371 switch (type)
372 {
375 break;
378 break;
379 }
380
381 return true;
382}
@ IC_OBJECTIVE_ASSAULT_BASE
Definition: BattlegroundIC.h:734
@ IC_OBJECTIVE_DEFEND_BASE
Definition: BattlegroundIC.h:735
@ ACHIEVEMENT_CRITERIA_TYPE_BG_OBJECTIVE_CAPTURE
Definition: DBCEnums.h:152
virtual bool UpdatePlayerScore(Player *player, uint32 type, uint32 value, bool doAddHonor=true)
Definition: Battleground.cpp:1348
void UpdateAchievementCriteria(AchievementCriteriaTypes type, uint32 miscValue1=0, uint32 miscValue2=0, Unit *unit=nullptr)
Definition: PlayerUpdates.cpp:2131

References ACHIEVEMENT_CRITERIA_TYPE_BG_OBJECTIVE_CAPTURE, IC_OBJECTIVE_ASSAULT_BASE, IC_OBJECTIVE_DEFEND_BASE, SCORE_BASES_ASSAULTED, SCORE_BASES_DEFENDED, Player::UpdateAchievementCriteria(), and Battleground::UpdatePlayerScore().

Referenced by EventPlayerClickedOnFlag().

Member Data Documentation

◆ closeFortressDoorsTimer

uint32 BattlegroundIC::closeFortressDoorsTimer
private

Referenced by BattlegroundIC(), and PostUpdateImpl().

◆ docksTimer

uint32 BattlegroundIC::docksTimer
private

◆ doorsClosed

bool BattlegroundIC::doorsClosed
private

Referenced by BattlegroundIC(), and PostUpdateImpl().

◆ factionReinforcements

uint16 BattlegroundIC::factionReinforcements[2]
private

◆ GateStatus

◆ gunshipAlliance

MotionTransport* BattlegroundIC::gunshipAlliance
private

◆ gunshipHorde

◆ nodePoint

◆ resourceTimer

uint32 BattlegroundIC::resourceTimer
private

Referenced by BattlegroundIC(), and PostUpdateImpl().

◆ respawnMap

RespawnMap BattlegroundIC::respawnMap
private

◆ siegeEngineWorkshopTimer

uint32 BattlegroundIC::siegeEngineWorkshopTimer
private