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 (WorldPackets::WorldState::InitWorldStates &packet) 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 void Init ()
 
virtual void ResetBGSubclass ()
 
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
 
bool isTemplate () const
 
bool isMaxLevel () 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 SpiritOfCompetitionEvent (PvPTeamId winnerTeamId) const
 
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
 
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)
 
GroupGetBgRaid (TeamId teamId) const
 
void SetBgRaid (TeamId teamId, Group *bg_raid)
 
void BuildPvPLogDataPacket (WorldPacket &data)
 
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 EventPlayerDroppedFlag (Player *)
 
virtual void EventPlayerUsedGO (Player *, GameObject *)
 
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)
 
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)
 
- Protected Attributes inherited from Battleground
bool m_SetupCompleted
 
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 ( )
39{
42
43 for (uint8 i = 0; i < 2; ++i)
45
46 for (uint8 i = 0; i < BG_IC_MAXDOOR; ++i)
48
49 closeFortressDoorsTimer = CLOSE_DOORS_TIME; // the doors are closed again... in a special way
50 doorsClosed = false;
53
54 for (uint8 i = NODE_TYPE_REFINERY; i < MAX_NODE_TYPES; ++i)
56
58
59 gunshipHorde = nullptr;
60 gunshipAlliance = nullptr;
61 respawnMap.clear();
62}
@ NODE_TYPE_REFINERY
Definition BattlegroundIC.h:759
@ MAX_NODE_TYPES
Definition BattlegroundIC.h:769
@ DOCKS_UPDATE_TIME
Definition BattlegroundIC.h:196
@ CLOSE_DOORS_TIME
Definition BattlegroundIC.h:199
@ IC_RESOURCE_TIME
Definition BattlegroundIC.h:198
@ WORKSHOP_UPDATE_TIME
Definition BattlegroundIC.h:195
@ BG_IC_MAXDOOR
Definition BattlegroundIC.h:754
@ MAX_WORKSHOP_SPAWNS
Definition BattlegroundIC.h:451
@ MAX_SPIRIT_GUIDES_SPAWNS
Definition BattlegroundIC.h:453
@ MAX_HANGAR_NPCS_SPAWNS
Definition BattlegroundIC.h:460
@ MAX_NORMAL_GAMEOBJECTS_SPAWNS
Definition BattlegroundIC.h:449
@ MAX_AIRSHIPS_SPAWNS
Definition BattlegroundIC.h:456
@ MAX_DOCKS_SPAWNS
Definition BattlegroundIC.h:452
@ MAX_NORMAL_NPCS_SPAWNS
Definition BattlegroundIC.h:450
@ MAX_HANGAR_TELEPORTER_EFFECTS_SPAWNS
Definition BattlegroundIC.h:455
@ MAX_FORTRESS_TELEPORTER_EFFECTS_SPAWNS
Definition BattlegroundIC.h:459
@ MAX_FORTRESS_TELEPORTERS_SPAWNS
Definition BattlegroundIC.h:458
@ MAX_HANGAR_TELEPORTERS_SPAWNS
Definition BattlegroundIC.h:454
#define MAX_REINFORCEMENTS
Definition BattlegroundIC.h:191
@ BG_IC_GATE_OK
Definition BattlegroundIC.h:741
const ICNodePoint nodePointInitial[MAX_NODE_TYPES]
Definition BattlegroundIC.h:841
std::uint8_t uint8
Definition Define.h:109
uint32 resourceTimer
Definition BattlegroundIC.h:929
MotionTransport * gunshipAlliance
Definition BattlegroundIC.h:938
MotionTransport * gunshipHorde
Definition BattlegroundIC.h:939
RespawnMap respawnMap
Definition BattlegroundIC.h:936
BG_IC_GateState GateStatus[6]
Definition BattlegroundIC.h:932
uint32 docksTimer
Definition BattlegroundIC.h:928
uint16 factionReinforcements[2]
Definition BattlegroundIC.h:931
ICNodePoint nodePoint[7]
Definition BattlegroundIC.h:933
uint32 closeFortressDoorsTimer
Definition BattlegroundIC.h:926
uint32 siegeEngineWorkshopTimer
Definition BattlegroundIC.h:930
bool doorsClosed
Definition BattlegroundIC.h:927
BGObjects BgObjects
Definition Battleground.h:540
BGCreatures BgCreatures
Definition Battleground.h:541

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.

321{
323 PlayerScores.emplace(player->GetGUID().GetCounter(), new BattlegroundICScore(player->GetGUID()));
324
326 player->CastSpell(player, SPELL_QUARRY, true);
327
329 player->CastSpell(player, SPELL_OIL_REFINERY, true);
330}
@ NODE_TYPE_QUARRY
Definition BattlegroundIC.h:760
@ SPELL_QUARRY
Definition BattlegroundIC.h:714
@ SPELL_OIL_REFINERY
Definition BattlegroundIC.h:713
@ NODE_STATE_CONTROLLED_A
Definition BattlegroundIC.h:777
@ NODE_STATE_CONTROLLED_H
Definition BattlegroundIC.h:778
@ TEAM_ALLIANCE
Definition SharedDefines.h:748
virtual void AddPlayer(Player *player)
Definition Battleground.cpp:1189
BattlegroundScoreMap PlayerScores
Definition Battleground.h:621
LowType GetCounter() const
Definition ObjectGuid.h:145
static ObjectGuid GetGUID(Object const *o)
Definition Object.h:114
TeamId GetTeamId(bool original=false) const
Definition Player.h:2127
Definition BattlegroundIC.h:859

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.

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

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.

961{
963 uint32 uws_open = GetWorldStateFromGateEntry(go->GetEntry(), true);
964 uint32 uws_close = GetWorldStateFromGateEntry(go->GetEntry(), false);
965 if (uws_open)
966 {
967 UpdateWorldState(uws_close, 0);
968 UpdateWorldState(uws_open, 1);
969 }
970
971 uint32 textId;
972 ChatMsg msgType;
973 TeamId teamId = TEAM_ALLIANCE;
974
975 switch (go->GetEntry())
976 {
977 case GO_HORDE_GATE_1:
980 break;
981 case GO_HORDE_GATE_2:
984 break;
985 case GO_HORDE_GATE_3:
988 break;
991 msgType = CHAT_MSG_BG_SYSTEM_HORDE;
992 teamId = TEAM_HORDE;
993 break;
996 msgType = CHAT_MSG_BG_SYSTEM_HORDE;
997 teamId = TEAM_HORDE;
998 break;
1001 msgType = CHAT_MSG_BG_SYSTEM_HORDE;
1002 teamId = TEAM_HORDE;
1003 break;
1004 default:
1005 return;
1006 }
1007
1008 if (teamId == TEAM_ALLIANCE)
1009 {
1012 }
1013 else
1014 {
1017 }
1018
1019 TurnBosses(true);
1020 SendBroadcastText(textId, msgType);
1021}
@ BG_IC_TEXT_WEST_GATE_HORDE_DESTROYED
Definition BattlegroundIC.h:800
@ BG_IC_TEXT_FRONT_GATE_ALLIANCE_DESTROYED
Definition BattlegroundIC.h:799
@ BG_IC_TEXT_WEST_GATE_ALLIANCE_DESTROYED
Definition BattlegroundIC.h:801
@ BG_IC_TEXT_FRONT_GATE_HORDE_DESTROYED
Definition BattlegroundIC.h:798
@ BG_IC_TEXT_EAST_GATE_HORDE_DESTROYED
Definition BattlegroundIC.h:802
@ BG_IC_TEXT_EAST_GATE_ALLIANCE_DESTROYED
Definition BattlegroundIC.h:803
@ BG_IC_GO_DOODAD_PORTCULLISACTIVE02
Definition BattlegroundIC.h:273
@ BG_IC_GO_HORDE_BANNER
Definition BattlegroundIC.h:288
@ BG_IC_GO_ALLIANCE_BANNER
Definition BattlegroundIC.h:225
@ BG_IC_GO_HORDE_KEEP_PORTCULLIS
Definition BattlegroundIC.h:294
@ BG_IC_GATE_DESTROYED
Definition BattlegroundIC.h:743
@ GO_ALLIANCE_GATE_3
Definition BattlegroundIC.h:61
@ GO_HORDE_GATE_2
Definition BattlegroundIC.h:113
@ GO_HORDE_GATE_1
Definition BattlegroundIC.h:112
@ GO_HORDE_GATE_3
Definition BattlegroundIC.h:114
@ GO_ALLIANCE_GATE_2
Definition BattlegroundIC.h:60
@ GO_ALLIANCE_GATE_1
Definition BattlegroundIC.h:59
ChatMsg
Definition SharedDefines.h:3385
@ CHAT_MSG_BG_SYSTEM_ALLIANCE
Definition SharedDefines.h:3424
@ CHAT_MSG_BG_SYSTEM_HORDE
Definition SharedDefines.h:3425
@ GO_FLAG_NOT_SELECTABLE
Definition SharedDefines.h:1613
TeamId
Definition SharedDefines.h:747
@ TEAM_HORDE
Definition SharedDefines.h:749
@ GAMEOBJECT_FLAGS
Definition UpdateFields.h:399
uint32 GetGateIDFromEntry(uint32 id)
Definition BattlegroundIC.h:943
uint32 GetWorldStateFromGateEntry(uint32 id, bool open)
Definition BattlegroundIC.h:970
void TurnBosses(bool on)
Definition BattlegroundIC.cpp:493
void DoorOpen(uint32 type)
Definition Battleground.cpp:1556
void SendBroadcastText(uint32 id, ChatMsg msgType, WorldObject const *target=nullptr)
Definition Battleground.cpp:734
GameObject * GetBGObject(uint32 type)
Definition Battleground.cpp:1568
void UpdateWorldState(uint32 variable, uint32 value)
Definition Battleground.cpp:826
void RemoveFlag(uint16 index, uint32 oldFlag)
Definition Object.cpp:842
uint32 GetEntry() const
Definition Object.h:117

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.

65{
67 return;
68
70 return;
71
73 if (!player)
74 return;
75
77 float x = BG_IC_HangarTrigger[player->GetTeamId()].GetPositionX();
78 float y = BG_IC_HangarTrigger[player->GetTeamId()].GetPositionY();
79 float z = BG_IC_HangarTrigger[player->GetTeamId()].GetPositionZ();
80 transport->CalculatePassengerPosition(x, y, z);
81
82 player->TeleportTo(GetMapId(), x, y, z, player->GetOrientation(), TELE_TO_NOT_LEAVE_TRANSPORT);
83}
@ ACTION_TELEPORT_PLAYER_TO_TRANSPORT
Definition BattlegroundIC.h:207
const Position BG_IC_HangarTrigger[2]
Definition BattlegroundIC.h:554
@ TELE_TO_NOT_LEAVE_TRANSPORT
Definition Player.h:815
uint32 GetMapId() const
Definition Battleground.h:436
Definition Transport.h:51
Definition Player.h:1084
bool TeleportTo(uint32 mapid, float x, float y, float z, float orientation, uint32 options=0, Unit *target=nullptr, bool newInstance=false)
Definition Player.cpp:1352
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:33
Player * GetPlayer(Map const *, ObjectGuid const &guid)
Definition ObjectAccessor.cpp:220
float GetPositionZ() const
Definition Position.h:123
float GetOrientation() const
Definition Position.h:124
float GetPositionX() const
Definition Position.h:121
float GetPositionY() const
Definition Position.h:122

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.

556{
558 return;
559
560 // All the node points are iterated to find the clicked one
561 for (uint8 i = 0; i < MAX_NODE_TYPES; ++i)
562 {
563 ICNodePoint& point = nodePoint[i];
564 if (point.gameobject_entry == gameObject->GetEntry())
565 {
566 // THIS SHOULD NEEVEER HAPPEN
567 if (point.faction == player->GetTeamId())
568 {
569 return;
570 }
571
572 // Prevent capturing of keep if none of gates was destroyed
574 {
576 {
577 return;
578 }
579 }
580 else if (point.gameobject_entry == GO_HORDE_BANNER)
581 {
583 {
584 return;
585 }
586 }
587
588 uint32 nextBanner = GetNextBanner(&point, player->GetTeamId(), false);
589
590 // we set the new settings of the nodePoint
591 point.faction = player->GetTeamId();
592 point.last_entry = point.gameobject_entry;
593 point.gameobject_entry = nextBanner;
594
595 // this is just needed if the next banner is grey
596 if (point.banners[BANNER_A_CONTESTED] == nextBanner || point.banners[BANNER_H_CONTESTED] == nextBanner)
597 {
598 point.timer = BANNER_STATE_CHANGE_TIME; // 1 minute for last change (real faction banner)
599 point.needChange = true;
600
601 _reviveEvents.AddEventAtOffset([this, point]()
602 {
604
605 // if we are here means that the point has been lost, or it is the first capture
606 if (point.nodeType != NODE_TYPE_REFINERY && point.nodeType != NODE_TYPE_QUARRY)
607 {
608 if (BgCreatures[static_cast<uint16>(BG_IC_NPC_SPIRIT_GUIDE_1) + (point.nodeType) - 2])
609 {
610 DelCreature(static_cast<uint16>(BG_IC_NPC_SPIRIT_GUIDE_1) + (point.nodeType) - 2);
611 }
612 }
613 }, 500ms);
614
616
617 if (nodePoint[i].faction == TEAM_ALLIANCE)
618 {
619 SendBroadcastText(ICNodes[i].TextAssaulted, CHAT_MSG_BG_SYSTEM_ALLIANCE, player);
620 }
621 else
622 {
623 SendBroadcastText(ICNodes[i].TextAssaulted, CHAT_MSG_BG_SYSTEM_HORDE, player);
624 }
625
626 HandleContestedNodes(&point);
627 }
628 else if (nextBanner == point.banners[BANNER_A_CONTROLLED] || nextBanner == point.banners[BANNER_H_CONTROLLED])
629 // if we are going to spawn the definitve faction banner, we dont need the timer anymore
630 {
632 point.needChange = false;
633
634 if (nodePoint[i].faction == TEAM_ALLIANCE)
635 {
636 SendBroadcastText(ICNodes[i].TextDefended, CHAT_MSG_BG_SYSTEM_ALLIANCE, player);
637 }
638 else
639 {
640 SendBroadcastText(ICNodes[i].TextDefended, CHAT_MSG_BG_SYSTEM_HORDE, player);
641 }
642
643 HandleCapturedNodes(&point, true);
645 }
646
647 GameObject* banner = GetBGObject(point.gameobject_type);
648
649 if (!banner) // this should never happen
650 {
651 return;
652 }
653
654 float cords[4] = {banner->GetPositionX(), banner->GetPositionY(), banner->GetPositionZ(), banner->GetOrientation() };
655
657 AddObject(point.gameobject_type, point.gameobject_entry, cords[0], cords[1], cords[2], cords[3], 0, 0, 0, 0, RESPAWN_ONE_DAY);
658
660
661 UpdateNodeWorldState(&point);
662 // we dont need iterating if we are here
663 // If the needChange bool was set true, we will handle the rest in the Update Map function.
664 return;
665 }
666 }
667}
const uint32 BG_IC_Factions[PVP_TEAMS_COUNT]
Definition BattlegroundIC.h:26
@ BANNER_STATE_CHANGE_TIME
Definition BattlegroundIC.h:200
ICNodeInfo const ICNodes[MAX_NODE_TYPES]
Definition BattlegroundIC.h:815
@ BG_IC_H_FRONT
Definition BattlegroundIC.h:748
@ BG_IC_A_WEST
Definition BattlegroundIC.h:752
@ BG_IC_H_WEST
Definition BattlegroundIC.h:749
@ BG_IC_A_FRONT
Definition BattlegroundIC.h:751
@ BG_IC_A_EAST
Definition BattlegroundIC.h:753
@ BG_IC_H_EAST
Definition BattlegroundIC.h:750
@ BANNER_A_CONTROLLED
Definition BattlegroundIC.h:441
@ BANNER_H_CONTESTED
Definition BattlegroundIC.h:444
@ BANNER_H_CONTROLLED
Definition BattlegroundIC.h:443
@ BANNER_A_CONTESTED
Definition BattlegroundIC.h:442
@ GO_ALLIANCE_BANNER
Definition BattlegroundIC.h:57
@ GO_HORDE_BANNER
Definition BattlegroundIC.h:110
@ BG_IC_NPC_SPIRIT_GUIDE_1
Definition BattlegroundIC.h:430
@ SCORE_BASES_ASSAULTED
Definition BattlegroundScore.h:40
@ SCORE_BASES_DEFENDED
Definition BattlegroundScore.h:41
@ RESPAWN_ONE_DAY
Definition Battleground.h:159
@ STATUS_IN_PROGRESS
Definition Battleground.h:193
std::uint16_t uint16
Definition Define.h:108
@ GAMEOBJECT_FACTION
Definition UpdateFields.h:402
float cords[5][4]
Definition boss_urom.cpp:78
uint32 GetNextBanner(ICNodePoint *nodePoint, uint32 team, bool returnDefinitve)
Definition BattlegroundIC.cpp:690
bool UpdatePlayerScore(Player *player, uint32 type, uint32 value, bool doAddHonor=true) override
Definition BattlegroundIC.cpp:367
void HandleContestedNodes(ICNodePoint *nodePoint)
Definition BattlegroundIC.cpp:715
void HandleCapturedNodes(ICNodePoint *nodePoint, bool recapture)
Definition BattlegroundIC.cpp:786
void UpdateNodeWorldState(ICNodePoint *nodePoint)
Definition BattlegroundIC.cpp:669
bool DelCreature(uint32 type)
Definition Battleground.cpp:1669
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:1484
void RelocateDeadPlayers(ObjectGuid queueIndex)
Relocate all players in ReviveQueue to the closest graveyard.
Definition Battleground.cpp:1460
EventProcessor _reviveEvents
Definition Battleground.h:647
bool DelObject(uint32 type)
Definition Battleground.cpp:1688
BattlegroundStatus GetStatus() const
Definition Battleground.h:323
void AddEventAtOffset(BasicEvent *event, Milliseconds offset, uint8 eventGroup=0)
Definition EventProcessor.h:108
Definition GameObject.h:120
void SetUInt32Value(uint16 index, uint32 value)
Definition Object.cpp:639
Definition BattlegroundIC.h:828
uint32 banners[4]
Definition BattlegroundIC.h:833
ICNodePointType nodeType
Definition BattlegroundIC.h:832
uint32 timer
Definition BattlegroundIC.h:835
uint32 last_entry
Definition BattlegroundIC.h:836
TeamId faction
Definition BattlegroundIC.h:831
uint32 gameobject_type
Definition BattlegroundIC.h:829
bool needChange
Definition BattlegroundIC.h:834
uint32 gameobject_entry
Definition BattlegroundIC.h:830

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.

908{ }

◆ FillInitialWorldStates()

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

Reimplemented from Battleground.

386{
392
393 for (uint8 i = 0; i < MAX_FORTRESS_GATES_SPAWNS; ++i)
394 {
396 packet.Worldstates.emplace_back(uws, 1);
397 }
398
399 for (uint8 i = 0; i < MAX_NODE_TYPES; ++i)
400 packet.Worldstates.emplace_back(nodePoint[i].worldStates[nodePoint[i].nodeState], 1);
401
403}
@ MAX_FORTRESS_GATES_SPAWNS
Definition BattlegroundIC.h:457
const ICGo BG_IC_ObjSpawnlocs[MAX_NORMAL_GAMEOBJECTS_SPAWNS]
Definition BattlegroundIC.h:611
@ WORLD_STATE_BATTLEGROUND_IC_ALLIANCE_REINFORCEMENT
Definition WorldStateDefines.h:251
@ WORLD_STATE_BATTLEGROUND_IC_HORDE_REINFORCEMENT
Definition WorldStateDefines.h:252
@ WORLD_STATE_BATTLEGROUND_IC_ALLIANCE_REINFORCEMENT_SET
Definition WorldStateDefines.h:249
@ WORLD_STATE_BATTLEGROUND_IC_HORDE_REINFORCEMENT_SET
Definition WorldStateDefines.h:250
std::vector< WorldStateInfo > Worldstates
Definition WorldStatePackets.h:46
ICNodeState nodeState
Definition BattlegroundIC.h:838
uint32 worldStates[5]
Definition BattlegroundIC.h:837

References BG_IC_GATE_DESTROYED, BG_IC_ObjSpawnlocs, factionReinforcements, GateStatus, GetGateIDFromEntry(), GetWorldStateFromGateEntry(), MAX_FORTRESS_GATES_SPAWNS, MAX_NODE_TYPES, nodePoint, ICNodePoint::nodeState, TEAM_ALLIANCE, TEAM_HORDE, WORLD_STATE_BATTLEGROUND_IC_ALLIANCE_REINFORCEMENT, WORLD_STATE_BATTLEGROUND_IC_ALLIANCE_REINFORCEMENT_SET, WORLD_STATE_BATTLEGROUND_IC_HORDE_REINFORCEMENT, WORLD_STATE_BATTLEGROUND_IC_HORDE_REINFORCEMENT_SET, ICNodePoint::worldStates, and WorldPackets::WorldState::InitWorldStates::Worldstates.

◆ GetClosestGraveyard()

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

Reimplemented from Battleground.

1024{
1025 // Is there any occupied node for this team?
1026 std::vector<uint8> nodes;
1027 for (uint8 i = 0; i < MAX_NODE_TYPES; ++i)
1028 if (nodePoint[i].faction == player->GetTeamId() && !nodePoint[i].needChange) // xinef: controlled by faction and not contested!
1029 nodes.push_back(i);
1030
1031 GraveyardStruct const* good_entry = nullptr;
1032 // If so, select the closest node to place ghost on
1033 if (!nodes.empty())
1034 {
1035 float plr_x = player->GetPositionX();
1036 float plr_y = player->GetPositionY();
1037
1038 float mindist = 999999.0f;
1039 for (uint8 i = 0; i < nodes.size(); ++i)
1040 {
1041 GraveyardStruct const* entry = sGraveyard->GetGraveyard(BG_IC_GraveyardIds[nodes[i]]);
1042 if (!entry)
1043 continue;
1044 float dist = (entry->x - plr_x) * (entry->x - plr_x) + (entry->y - plr_y) * (entry->y - plr_y);
1045 if (mindist > dist)
1046 {
1047 mindist = dist;
1048 good_entry = entry;
1049 }
1050 }
1051 nodes.clear();
1052 }
1053 // If not, place ghost on starting location
1054 if (!good_entry)
1055 good_entry = sGraveyard->GetGraveyard(BG_IC_GraveyardIds[player->GetTeamId() + static_cast<uint16>(MAX_NODE_TYPES)]);
1056
1057 return good_entry;
1058}
const uint32 BG_IC_GraveyardIds[MAX_NODE_TYPES+2]
Definition BattlegroundIC.h:781
#define sGraveyard
Definition GameGraveyard.h:74
Definition GameGraveyard.h:27
float x
Definition GameGraveyard.h:30
float y
Definition GameGraveyard.h:31

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
944 {
945 uint32 i = 0;
946 switch (id)
947 {
948 case GO_HORDE_GATE_1:
949 i = BG_IC_H_FRONT;
950 break;
951 case GO_HORDE_GATE_2:
952 i = BG_IC_H_EAST;
953 break;
954 case GO_HORDE_GATE_3:
955 i = BG_IC_H_WEST;
956 break;
958 i = BG_IC_A_FRONT;
959 break;
961 i = BG_IC_A_WEST;
962 break;
964 i = BG_IC_A_EAST;
965 break;
966 }
967 return i;
968 }

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
691{
692 // this is only used in the update map function
693 if (returnDefinitve)
694 // here is a special case, here we must return the definitve faction banner after the grey banner was spawned 1 minute
696
697 // there were no changes, this point has never been captured by any faction or at least clicked
698 if (nodePoint->last_entry == 0)
699 // 1 returns the CONTESTED ALLIANCE BANNER, 3 returns the HORDE one
701
702 // If the actual banner is the definitive faction banner, we must return the grey banner of the player's faction
705
706 // If the actual banner is the grey faction banner, we must return the previous banner
708 return nodePoint->last_entry;
709
710 // we should never be here...
711 LOG_ERROR("bg.battleground", "Isle Of Conquest: Unexpected return in GetNextBanner function");
712 return 0;
713}
#define LOG_ERROR(filterType__,...)
Definition Log.h:158

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
920{ return (uint8)nodePoint[nodeType].nodeState; }

Referenced by SpellArea::IsFitToRequirements().

◆ GetWorldStateFromGateEntry()

uint32 BattlegroundIC::GetWorldStateFromGateEntry ( uint32  id,
bool  open 
)
inlineprivate
971 {
972 uint32 uws = 0;
973
974 switch (id)
975 {
976 case GO_HORDE_GATE_1:
978 break;
979 case GO_HORDE_GATE_2:
981 break;
982 case GO_HORDE_GATE_3:
984 break;
987 break;
990 break;
993 break;
994 }
995 return uws;
996 }
@ WORLD_STATE_BATTLEGROUND_IC_GATE_WEST_A_WS_CLOSED
Definition WorldStateDefines.h:289
@ WORLD_STATE_BATTLEGROUND_IC_GATE_FRONT_H_WS_OPEN
Definition WorldStateDefines.h:284
@ WORLD_STATE_BATTLEGROUND_IC_GATE_EAST_H_WS_OPEN
Definition WorldStateDefines.h:282
@ WORLD_STATE_BATTLEGROUND_IC_GATE_FRONT_H_WS_CLOSED
Definition WorldStateDefines.h:279
@ WORLD_STATE_BATTLEGROUND_IC_GATE_EAST_A_WS_OPEN
Definition WorldStateDefines.h:287
@ WORLD_STATE_BATTLEGROUND_IC_GATE_WEST_H_WS_OPEN
Definition WorldStateDefines.h:283
@ WORLD_STATE_BATTLEGROUND_IC_GATE_FRONT_A_WS_OPEN
Definition WorldStateDefines.h:285
@ WORLD_STATE_BATTLEGROUND_IC_GATE_EAST_A_WS_CLOSED
Definition WorldStateDefines.h:288
@ WORLD_STATE_BATTLEGROUND_IC_GATE_WEST_H_WS_CLOSED
Definition WorldStateDefines.h:280
@ WORLD_STATE_BATTLEGROUND_IC_GATE_FRONT_A_WS_CLOSED
Definition WorldStateDefines.h:290
@ WORLD_STATE_BATTLEGROUND_IC_GATE_WEST_A_WS_OPEN
Definition WorldStateDefines.h:286
@ WORLD_STATE_BATTLEGROUND_IC_GATE_EAST_H_WS_CLOSED
Definition WorldStateDefines.h:281

References GO_ALLIANCE_GATE_1, GO_ALLIANCE_GATE_2, GO_ALLIANCE_GATE_3, GO_HORDE_GATE_1, GO_HORDE_GATE_2, GO_HORDE_GATE_3, WORLD_STATE_BATTLEGROUND_IC_GATE_EAST_A_WS_CLOSED, WORLD_STATE_BATTLEGROUND_IC_GATE_EAST_A_WS_OPEN, WORLD_STATE_BATTLEGROUND_IC_GATE_EAST_H_WS_CLOSED, WORLD_STATE_BATTLEGROUND_IC_GATE_EAST_H_WS_OPEN, WORLD_STATE_BATTLEGROUND_IC_GATE_FRONT_A_WS_CLOSED, WORLD_STATE_BATTLEGROUND_IC_GATE_FRONT_A_WS_OPEN, WORLD_STATE_BATTLEGROUND_IC_GATE_FRONT_H_WS_CLOSED, WORLD_STATE_BATTLEGROUND_IC_GATE_FRONT_H_WS_OPEN, WORLD_STATE_BATTLEGROUND_IC_GATE_WEST_A_WS_CLOSED, WORLD_STATE_BATTLEGROUND_IC_GATE_WEST_A_WS_OPEN, WORLD_STATE_BATTLEGROUND_IC_GATE_WEST_H_WS_CLOSED, and WORLD_STATE_BATTLEGROUND_IC_GATE_WEST_H_WS_OPEN.

Referenced by DestroyGate(), and FillInitialWorldStates().

◆ HandleAreaTrigger()

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

Reimplemented from Battleground.

339{
340 // this is wrong way to implement these things. On official it done by gameobject spell cast.
342 return;
343
344 switch (trigger)
345 {
347 if (player->GetTeamId() != TEAM_ALLIANCE)
348 return;
349 for (uint8 i = BG_IC_H_FRONT; i < BG_IC_A_FRONT; ++i)
351 return;
352 if (!player->HasAchieved(3854)) // ACHIEVEMENT_BACK_DOOR_JOB
353 player->CastSpell(player, SPELL_BACK_DOOR_JOB, true);
354 break;
356 if (player->GetTeamId() != TEAM_HORDE)
357 return;
358 for (uint8 i = BG_IC_A_FRONT; i < BG_IC_MAXDOOR; ++i)
360 return;
361 if (!player->HasAchieved(3854)) // ACHIEVEMENT_BACK_DOOR_JOB
362 player->CastSpell(player, SPELL_BACK_DOOR_JOB, true);
363 break;
364 }
365}
@ AREA_TRIGGER_HORDE_KEEP
Definition BattlegroundIC.h:209
@ AREA_TRIGGER_ALLIANCE_KEEP
Definition BattlegroundIC.h:210
@ SPELL_BACK_DOOR_JOB
Definition BattlegroundIC.h:717
bool HasAchieved(uint32 achievementId) const
Definition Player.cpp:13940
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:1350

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
787{
789 {
794 LOG_ERROR("bg.battleground", "Isle of Conquest: Failed to spawn spirit guide! point: {}, team: {}, ", nodePoint->nodeType, nodePoint->faction);
795 }
796
797 switch (nodePoint->gameobject_type)
798 {
800 {
802 break;
803
804 std::list<Creature*> cannons;
807 else
809
810 for (std::list<Creature*>::const_iterator itr = cannons.begin(); itr != cannons.end(); ++itr)
811 (*itr)->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
812
813 for (uint8 u = 0; u < MAX_HANGAR_TELEPORTERS_SPAWNS; ++u)
814 {
817 LOG_ERROR("bg.battleground", "Isle of Conquest: There was an error spawning a gunship portal. Type: {}", BG_IC_GO_HANGAR_TELEPORTER_1 + u);
818 }
819
820 for (uint8 u = 0; u < MAX_HANGAR_TELEPORTER_EFFECTS_SPAWNS; ++u)
821 {
824 LOG_ERROR("bg.battleground", "Isle of Conquest: There was an error spawning a gunship portal effects. Type: {}", BG_IC_GO_HANGAR_TELEPORTER_1 + u);
825 }
826
827 for (uint8 u = 0; u < MAX_TRIGGER_SPAWNS_PER_FACTION; ++u)
828 {
830 LOG_ERROR("bg.battleground", "Isle of Conquest: There was an error spawning a world trigger. Type: {}", BG_IC_NPC_WORLD_TRIGGER_NOT_FLOATING);
831 }
832
833 for (uint8 u = 0; u < MAX_CAPTAIN_SPAWNS_PER_FACTION; ++u)
834 {
836
837 if (type == BG_IC_NPC_GUNSHIP_CAPTAIN_1)
838 if (AddCreature(nodePoint->faction == TEAM_ALLIANCE ? NPC_ALLIANCE_GUNSHIP_CAPTAIN : NPC_HORDE_GUNSHIP_CAPTAIN, type, BG_IC_HangarCaptains[nodePoint->faction == TEAM_ALLIANCE ? 2 : 0].GetPositionX(), BG_IC_HangarCaptains[nodePoint->faction == TEAM_ALLIANCE ? 2 : 0].GetPositionY(), BG_IC_HangarCaptains[nodePoint->faction == TEAM_ALLIANCE ? 2 : 0].GetPositionZ(), BG_IC_HangarCaptains[nodePoint->faction == TEAM_ALLIANCE ? 2 : 0].GetOrientation(), RESPAWN_ONE_DAY))
840
841 if (type == BG_IC_NPC_GUNSHIP_CAPTAIN_2)
843 LOG_ERROR("bg.battleground", "Isle of Conquest: There was an error spawning a world trigger. Type: {}", BG_IC_NPC_GUNSHIP_CAPTAIN_2);
844 }
845
846 (nodePoint->faction == TEAM_ALLIANCE ? gunshipAlliance : gunshipHorde)->EnableMovement(true);
847 break;
848 }
852 break;
856 break;
858 if (recapture)
859 break;
860
863
864 // spawning glaive throwers
866 {
868
869 if (GetBgMap()->GetCreature(BgCreatures[type]))
870 continue;
871
873 BG_IC_DocksVehiclesGlaives[i].GetPositionX(), BG_IC_DocksVehiclesGlaives[i].GetPositionY(),
874 BG_IC_DocksVehiclesGlaives[i].GetPositionZ(), BG_IC_DocksVehiclesGlaives[i].GetOrientation(),
876 GetBGCreature(type)->SetFaction(BG_IC_Factions[nodePoint->faction]);
877 }
878
879 // spawning catapults
880 for (uint8 i = 0; i < MAX_CATAPULTS_SPAWNS_PER_FACTION; ++i)
881 {
883
884 if (GetBgMap()->GetCreature(BgCreatures[type]))
885 continue;
886
887 if (AddCreature(NPC_CATAPULT, type,
888 BG_IC_DocksVehiclesCatapults[i].GetPositionX(), BG_IC_DocksVehiclesCatapults[i].GetPositionY(),
889 BG_IC_DocksVehiclesCatapults[i].GetPositionZ(), BG_IC_DocksVehiclesCatapults[i].GetOrientation(),
892 }
893 break;
895 {
898
899 for (uint8 i = 0; i < MAX_DEMOLISHERS_SPAWNS_PER_FACTION; ++i)
900 {
902
903 if (GetBgMap()->GetCreature(BgCreatures[type]))
904 continue;
905
906 if (AddCreature(NPC_DEMOLISHER, type,
907 BG_IC_WorkshopVehicles[i].GetPositionX(), BG_IC_WorkshopVehicles[i].GetPositionY(),
908 BG_IC_WorkshopVehicles[i].GetPositionZ(), BG_IC_WorkshopVehicles[i].GetOrientation(),
911 }
912
915
916 if (Creature* oppositeSiege = GetBgMap()->GetCreature(BgCreatures[oppositeSiegeType]))
917 {
918 if (oppositeSiege->IsAlive())
919 if (Vehicle* siegeVehicle = oppositeSiege->GetVehicleKit())
920 if (!siegeVehicle->IsVehicleInUse())
921 Unit::Kill(oppositeSiege, oppositeSiege);
922 }
923
924 if (!GetBgMap()->GetCreature(BgCreatures[siegeType]))
925 {
927 BG_IC_WorkshopVehicles[4].GetPositionX(), BG_IC_WorkshopVehicles[4].GetPositionY(),
928 BG_IC_WorkshopVehicles[4].GetPositionZ(), BG_IC_WorkshopVehicles[4].GetOrientation(),
930 }
931
932 if (Creature* siegeEngine = GetBgMap()->GetCreature(BgCreatures[siegeType]))
933 {
935 siegeEngine->SetCorpseDelay(5 * MINUTE);
936
937 respawnMap[siegeEngine->GetGUID()] = GameTime::GetGameTime().count() + VEHICLE_RESPAWN_TIME;
938 }
939
940 for (uint8 i = 0; i < MAX_WORKSHOP_BOMBS_SPAWNS_PER_FACTION; ++i)
941 {
943 workshopBombs[i].GetPositionX(), workshopBombs[i].GetPositionY(),
944 workshopBombs[i].GetPositionZ(), workshopBombs[i].GetOrientation(),
945 0, 0, 0, 0, 10);
946
947 if (GameObject* seaforiumBombs = GetBGObject(BG_IC_GO_SEAFORIUM_BOMBS_1 + i))
948 {
949 seaforiumBombs->SetRespawnTime(10);
950 seaforiumBombs->SetUInt32Value(GAMEOBJECT_FACTION, BG_IC_Factions[(nodePoint->faction == TEAM_ALLIANCE ? 0 : 1)]);
951 }
952 }
953 break;
954 }
955 default:
956 break;
957 }
958}
@ ACTION_GUNSHIP_READY
Definition BattlegroundIC.h:206
@ NPC_SIEGE_ENGINE_H
Definition BattlegroundIC.h:41
@ NPC_HORDE_GUNSHIP_CAPTAIN
Definition BattlegroundIC.h:48
@ NPC_SIEGE_ENGINE_A
Definition BattlegroundIC.h:42
@ NPC_GLAIVE_THROWER_A
Definition BattlegroundIC.h:43
@ NPC_WORLD_TRIGGER_NOT_FLOATING
Definition BattlegroundIC.h:50
@ NPC_GLAIVE_THROWER_H
Definition BattlegroundIC.h:44
@ NPC_DEMOLISHER
Definition BattlegroundIC.h:40
@ NPC_CATAPULT
Definition BattlegroundIC.h:45
@ NPC_ALLIANCE_GUNSHIP_CANNON
Definition BattlegroundIC.h:47
@ NPC_HORDE_GUNSHIP_CANNON
Definition BattlegroundIC.h:46
@ NPC_ALLIANCE_GUNSHIP_CAPTAIN
Definition BattlegroundIC.h:49
@ VEHICLE_RESPAWN_TIME
Definition BattlegroundIC.h:197
@ BG_IC_GO_HANGAR_BANNER
Definition BattlegroundIC.h:286
@ BG_IC_GO_WORKSHOP_BANNER
Definition BattlegroundIC.h:303
@ BG_IC_GO_HANGAR_TELEPORTER_1
Definition BattlegroundIC.h:324
@ BG_IC_GO_REFINERY_BANNER
Definition BattlegroundIC.h:305
@ BG_IC_GO_SEAFORIUM_BOMBS_1
Definition BattlegroundIC.h:321
@ BG_IC_GO_QUARRY_BANNER
Definition BattlegroundIC.h:296
@ BG_IC_GO_DOCKS_BANNER
Definition BattlegroundIC.h:262
@ BG_IC_GO_HANGAR_TELEPORTER_EFFECT_1
Definition BattlegroundIC.h:328
const Position BG_IC_WorkshopVehicles[5]
Definition BattlegroundIC.h:517
@ MAX_GLAIVE_THROWERS_SPAWNS_PER_FACTION
Definition BattlegroundIC.h:463
@ MAX_WORKSHOP_BOMBS_SPAWNS_PER_FACTION
Definition BattlegroundIC.h:468
@ MAX_CATAPULTS_SPAWNS_PER_FACTION
Definition BattlegroundIC.h:464
@ MAX_DEMOLISHERS_SPAWNS_PER_FACTION
Definition BattlegroundIC.h:467
@ MAX_TRIGGER_SPAWNS_PER_FACTION
Definition BattlegroundIC.h:471
@ MAX_CAPTAIN_SPAWNS_PER_FACTION
Definition BattlegroundIC.h:472
const float BG_IC_SpiritGuidePos[MAX_NODE_TYPES+2][4]
Definition BattlegroundIC.h:783
const Position BG_IC_HangarTeleporters[3]
Definition BattlegroundIC.h:540
const Position workshopBombs[2]
Definition BattlegroundIC.h:705
const Position BG_IC_DocksVehiclesGlaives[2]
Definition BattlegroundIC.h:526
const Position BG_IC_DocksVehiclesCatapults[4]
Definition BattlegroundIC.h:532
@ GO_ALLIANCE_GUNSHIP_PORTAL_EFFECTS
Definition BattlegroundIC.h:65
@ GO_HORDE_GUNSHIP_PORTAL_EFFECTS
Definition BattlegroundIC.h:118
@ GO_SEAFORIUM_BOMBS
Definition BattlegroundIC.h:127
@ GO_ALLIANCE_GUNSHIP_PORTAL
Definition BattlegroundIC.h:63
@ GO_HORDE_GUNSHIP_PORTAL
Definition BattlegroundIC.h:116
@ BG_IC_NPC_GLAIVE_THROWER_1_H
Definition BattlegroundIC.h:413
@ BG_IC_NPC_GUNSHIP_CAPTAIN_1
Definition BattlegroundIC.h:427
@ BG_IC_NPC_SIEGE_ENGINE_H
Definition BattlegroundIC.h:399
@ BG_IC_NPC_DEMOLISHER_1_H
Definition BattlegroundIC.h:406
@ BG_IC_NPC_GUNSHIP_CAPTAIN_2
Definition BattlegroundIC.h:428
@ BG_IC_NPC_CATAPULT_1_A
Definition BattlegroundIC.h:416
@ BG_IC_NPC_CATAPULT_1_H
Definition BattlegroundIC.h:421
@ BG_IC_NPC_DEMOLISHER_1_A
Definition BattlegroundIC.h:401
@ BG_IC_NPC_SIEGE_ENGINE_A
Definition BattlegroundIC.h:398
@ BG_IC_NPC_GLAIVE_THROWER_1_A
Definition BattlegroundIC.h:411
@ BG_IC_NPC_WORLD_TRIGGER_NOT_FLOATING
Definition BattlegroundIC.h:426
const Position BG_IC_HangarTeleporterEffects[3]
Definition BattlegroundIC.h:547
const Position BG_IC_HangarCaptains[4]
Definition BattlegroundIC.h:560
constexpr auto MINUTE
Definition Common.h:47
@ GO_STATE_ACTIVE
Definition GameObjectData.h:708
@ UNIT_FLAG_NOT_SELECTABLE
Definition UnitDefines.h:282
void DoAction(uint32 action, ObjectGuid guid) override
Definition BattlegroundIC.cpp:64
bool AddSpiritGuide(uint32 type, float x, float y, float z, float o, TeamId teamId)
Definition Battleground.cpp:1708
static TeamId GetOtherTeamId(TeamId teamId)
Definition Battleground.cpp:1824
BattlegroundMap * GetBgMap() const
Definition Battleground.h:440
Creature * AddCreature(uint32 entry, uint32 type, float x, float y, float z, float o, uint32 respawntime=0, MotionTransport *transport=nullptr)
Definition Battleground.cpp:1606
void RemoveAuraOnTeam(uint32 spellId, TeamId teamId)
Definition Battleground.cpp:759
void CastSpellOnTeam(uint32 spellId, TeamId teamId)
Definition Battleground.cpp:752
Creature * GetBGCreature(uint32 type)
Definition Battleground.cpp:1577
Definition Creature.h:47
Creature * GetCreature(ObjectGuid const &guid)
Definition Map.cpp:2336
void SetFaction(uint32 faction)
Definition Unit.cpp:7056
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:13938
Definition Vehicle.h:28
void GetCreatureListWithEntryInGrid(std::list< Creature * > &lList, uint32 uiEntry, float fMaxSearchRange) const
Definition Object.cpp:2560
Seconds GetGameTime()
Definition GameTime.cpp:38
Creature * GetCreature(WorldObject const &u, ObjectGuid const &guid)
Definition ObjectAccessor.cpp:210

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
716{
718 {
720 (nodePoint->faction == TEAM_ALLIANCE ? gunshipHorde : gunshipAlliance)->EnableMovement(false);
721
723 DelObject(u);
724
726 DelObject(u);
727
729
730 for (uint8 u = 0; u < MAX_CAPTAIN_SPAWNS_PER_FACTION; ++u)
731 {
733 DelCreature(type);
734 }
735
736 std::list<Creature*> cannons;
739 else
741
742 for (std::list<Creature*>::const_iterator itr = cannons.begin(); itr != cannons.end(); ++itr)
743 {
744 (*itr)->GetVehicleKit()->RemoveAllPassengers();
745 (*itr)->SetUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
746 }
747 }
749 {
752
753 for (uint8 i = 0; i < MAX_DEMOLISHERS_SPAWNS_PER_FACTION; ++i)
754 {
756 if (BgCreatures[type] && GetBgMap()->GetCreature(BgCreatures[type]))
757 {
758 if (Creature* demolisher = GetBgMap()->GetCreature(BgCreatures[type]))
759 {
760 if (Vehicle* veh = demolisher->GetVehicleKit())
761 if (!veh->IsVehicleInUse())
762 {
763 respawnMap.erase(demolisher->GetGUID());
764 DelCreature(type);
765 }
766 }
767 }
768 }
769
771 if (BgCreatures[siegeType] && GetBgMap()->GetCreature(BgCreatures[siegeType]))
772 {
773 if (Creature* siege = GetBgMap()->GetCreature(BgCreatures[siegeType]))
774 {
775 if (Vehicle* veh = siege->GetVehicleKit())
776 if (!veh->IsVehicleInUse())
777 {
778 respawnMap.erase(siege->GetGUID());
779 DelCreature(siegeType);
780 }
781 }
782 }
783 }
784}
@ NODE_TYPE_HANGAR
Definition BattlegroundIC.h:762
@ BG_IC_GO_HANGAR_TELEPORTER_EFFECT_3
Definition BattlegroundIC.h:330
@ BG_IC_GO_HANGAR_TELEPORTER_3
Definition BattlegroundIC.h:326
@ BG_IC_GO_SEAFORIUM_BOMBS_2
Definition BattlegroundIC.h:322

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_DEMOLISHER_1_A, BG_IC_NPC_DEMOLISHER_1_H, BG_IC_NPC_GUNSHIP_CAPTAIN_1, BG_IC_NPC_SIEGE_ENGINE_A, BG_IC_NPC_SIEGE_ENGINE_H, BG_IC_NPC_WORLD_TRIGGER_NOT_FLOATING, Battleground::BgCreatures, Battleground::DelCreature(), Battleground::DelObject(), ICNodePoint::faction, Battleground::GetBgMap(), Map::GetCreature(), WorldObject::GetCreatureListWithEntryInGrid(), gunshipAlliance, gunshipHorde, MAX_CAPTAIN_SPAWNS_PER_FACTION, MAX_DEMOLISHERS_SPAWNS_PER_FACTION, NODE_TYPE_HANGAR, NODE_TYPE_WORKSHOP, nodePoint, ICNodePoint::nodeType, NPC_ALLIANCE_GUNSHIP_CANNON, NPC_HORDE_GUNSHIP_CANNON, respawnMap, TEAM_ALLIANCE, TEAM_HORDE, and UNIT_FLAG_NOT_SELECTABLE.

Referenced by EventPlayerClickedOnFlag().

◆ HandleKillPlayer()

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

Reimplemented from Battleground.

540{
542 return;
543
544 Battleground::HandleKillPlayer(player, killer);
545
546 factionReinforcements[player->GetTeamId()] -= 1;
547
549
550 // we must end the battleground
551 if (factionReinforcements[player->GetTeamId()] < 1)
552 EndBattleground(killer->GetTeamId());
553}
TeamId GetTeamId(PvPTeamId teamId)
Definition SharedDefines.h:3720
virtual void HandleKillPlayer(Player *player, Player *killer)
Definition Battleground.cpp:1789
void EndBattleground(PvPTeamId winnerTeamId)
Definition Battleground.cpp:834

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

◆ HandleKillUnit()

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

Reimplemented from Battleground.

510{
512 return;
513
514 uint32 entry = unit->GetEntry();
516 {
519 }
520 else if (entry == NPC_OVERLORD_AGMAR)
521 {
524 }
525
526 //Achievement Mowed Down
527 // TO-DO: This should be done on the script of each vehicle of the BG.
528 if (unit->IsVehicle())
529 {
530 killer->CastSpell(killer, SPELL_DESTROYED_VEHICLE_ACHIEVEMENT, true);
531
532 // Xinef: Add to respawn list
533 if (entry == NPC_DEMOLISHER || entry == NPC_SIEGE_ENGINE_H || entry == NPC_SIEGE_ENGINE_A ||
534 entry == NPC_GLAIVE_THROWER_A || entry == NPC_GLAIVE_THROWER_H || entry == NPC_CATAPULT)
536 }
537}
@ WINNER_HONOR_AMOUNT
Definition BattlegroundIC.h:855
@ NPC_HIGH_COMMANDER_HALFORD_WYRMBANE
Definition BattlegroundIC.h:34
@ NPC_OVERLORD_AGMAR
Definition BattlegroundIC.h:35
@ SPELL_DESTROYED_VEHICLE_ACHIEVEMENT
Definition BattlegroundIC.h:716
void RewardHonorToTeam(uint32 honor, TeamId teamId)
Definition Battleground.cpp:776
bool IsVehicle() const
Definition Unit.h:800

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.

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

References Battleground::AddObject(), BANNER_STATE_CHANGE_TIME, 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_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::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(), WORKSHOP_UPDATE_TIME, WORLD_STATE_BATTLEGROUND_IC_ALLIANCE_REINFORCEMENT, and WORLD_STATE_BATTLEGROUND_IC_HORDE_REINFORCEMENT.

◆ RemovePlayer()

void BattlegroundIC::RemovePlayer ( Player player)
overridevirtual

Reimplemented from Battleground.

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

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

◆ SetupBattleground()

bool BattlegroundIC::SetupBattleground ( )
overridevirtual

Reimplemented from Battleground.

406{
407 for (uint8 i = 0; i < MAX_NORMAL_GAMEOBJECTS_SPAWNS; ++i)
408 {
410 {
411 LOG_ERROR("bg.battleground", "Isle of Conquest: There was an error spawning gameobject {}", BG_IC_ObjSpawnlocs[i].entry);
412 return false;
413 }
414
415 // Horde / Alliance gates, set active
416 if (i < 6)
418 }
419
420 for (uint8 i = 0; i < MAX_FORTRESS_TELEPORTERS_SPAWNS; ++i)
421 {
423 {
424 LOG_ERROR("bg.battleground", "Isle of Conquest | Starting Event Open Doors: There was an error spawning gameobject {}", BG_IC_Teleporters[i].entry);
425 return false;
426 }
427 }
428
430 {
432 {
433 LOG_ERROR("bg.battleground", "Isle of Conquest | Starting Event Open Doors: There was an error spawning gameobject {}", BG_IC_Teleporters[i].entry);
434 return false;
435 }
436 }
437
438 for (uint8 i = 0; i < MAX_NORMAL_NPCS_SPAWNS; ++i)
439 {
441 {
442 LOG_ERROR("bg.battleground", "Isle of Conquest: There was an error spawning creature {}", BG_IC_NpcSpawnlocs[i].entry);
443 return false;
444 }
445 }
446
451 {
452 LOG_ERROR("bg.battleground", "Isle of Conquest: Failed to spawn initial spirit guide!");
453 return false;
454 }
455
456 gunshipHorde = sTransportMgr->CreateTransport(GO_HORDE_GUNSHIP, 0, GetBgMap());
458
460 {
461 LOG_ERROR("bg.battleground", "Isle of Conquest: There was an error creating gunships!");
462 return false;
463 }
464
467
468 // setting correct factions for Keep Cannons
473 // Flags
475 {
476 go->SetUInt32Value(GAMEOBJECT_FACTION, BG_IC_Factions[1]);
478 }
480 {
481 go->SetUInt32Value(GAMEOBJECT_FACTION, BG_IC_Factions[0]);
483 }
484
485 // correcting spawn time for keeps bombs
488
489 TurnBosses(false);
490 return true;
491}
@ BG_IC_GO_HUGE_SEAFORIUM_BOMBS_A_1
Definition BattlegroundIC.h:307
@ BG_IC_GO_HUGE_SEAFORIUM_BOMBS_H_4
Definition BattlegroundIC.h:315
const ICGo BG_IC_TeleporterEffects[MAX_FORTRESS_TELEPORTER_EFFECTS_SPAWNS]
Definition BattlegroundIC.h:594
const ICNpc BG_IC_NpcSpawnlocs[MAX_NORMAL_NPCS_SPAWNS]
Definition BattlegroundIC.h:475
@ GO_HORDE_GUNSHIP
Definition BattlegroundIC.h:187
@ GO_ALLIANCE_GUNSHIP
Definition BattlegroundIC.h:188
@ BG_IC_NPC_KEEP_CANNON_13
Definition BattlegroundIC.h:384
@ BG_IC_NPC_KEEP_CANNON_25
Definition BattlegroundIC.h:396
@ BG_IC_NPC_KEEP_CANNON_12
Definition BattlegroundIC.h:383
@ BG_IC_NPC_KEEP_CANNON_1
Definition BattlegroundIC.h:372
const ICGo BG_IC_Teleporters[MAX_FORTRESS_TELEPORTERS_SPAWNS]
Definition BattlegroundIC.h:578
#define sTransportMgr
Definition TransportMgr.h:165
void SetRespawnTime(int32 respawn)
Definition GameObject.cpp:1279
void EnableMovement(bool enabled)
Definition Transport.cpp:455
void setActive(bool isActiveObject)
Definition Object.cpp:1082

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.

897{ }

◆ StartingEventOpenDoors()

void BattlegroundIC::StartingEventOpenDoors ( )
overridevirtual

Reimplemented from Battleground.

280{
281 //after 20 seconds they should be despawned
288
293
294 for (uint8 i = 0; i < MAX_FORTRESS_TELEPORTERS_SPAWNS; ++i)
296
299}
@ BG_IC_GO_DOODAD_VR_PORTCULLIS01_2
Definition BattlegroundIC.h:276
@ BG_IC_GO_DOODAD_HU_PORTCULLIS01_1
Definition BattlegroundIC.h:264
@ BG_IC_GO_DOODAD_VR_PORTCULLIS01_1
Definition BattlegroundIC.h:275
@ BG_IC_GO_DOODAD_HU_PORTCULLIS01_2
Definition BattlegroundIC.h:265
void SetGoState(GOState state)
Definition GameObject.cpp:2492
void RemoveGameObjectFlag(GameObjectFlags flags)
Definition GameObject.h:218

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
494{
495 // Make Bosses invisible and passive
496 // or visible and active
498 {
499 boss->SetVisible(on);
500 boss->SetReactState(on ? REACT_AGGRESSIVE : REACT_PASSIVE);
501 }
503 {
504 boss->SetVisible(on);
505 boss->SetReactState(on ? REACT_AGGRESSIVE : REACT_PASSIVE);
506 }
507}
@ BG_IC_NPC_OVERLORD_AGMAR
Definition BattlegroundIC.h:362
@ BG_IC_NPC_HIGH_COMMANDER_HALFORD_WYRMBANE
Definition BattlegroundIC.h:363
@ REACT_PASSIVE
Definition Unit.h:566
@ REACT_AGGRESSIVE
Definition Unit.h:568

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()

◆ UpdatePlayerScore()

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

Reimplemented from Battleground.

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

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

◆ siegeEngineWorkshopTimer

uint32 BattlegroundIC::siegeEngineWorkshopTimer
private

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