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
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:550
BGCreatures BgCreatures
Definition Battleground.h:551

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:760
virtual void AddPlayer(Player *player)
Definition Battleground.cpp:1119
BattlegroundScoreMap PlayerScores
Definition Battleground.h:628
LowType GetCounter() const
Definition ObjectGuid.h:145
static ObjectGuid GetGUID(Object const *o)
Definition Object.h:112
TeamId GetTeamId(bool original=false) const
Definition Player.h:2116
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.

928{
930 uint32 uws_open = GetWorldStateFromGateEntry(go->GetEntry(), true);
931 uint32 uws_close = GetWorldStateFromGateEntry(go->GetEntry(), false);
932 if (uws_open)
933 {
934 UpdateWorldState(uws_close, 0);
935 UpdateWorldState(uws_open, 1);
936 }
937
938 uint32 textId;
939 ChatMsg msgType;
940 TeamId teamId = TEAM_ALLIANCE;
941
942 switch (go->GetEntry())
943 {
944 case GO_HORDE_GATE_1:
947 break;
948 case GO_HORDE_GATE_2:
951 break;
952 case GO_HORDE_GATE_3:
955 break;
958 msgType = CHAT_MSG_BG_SYSTEM_HORDE;
959 teamId = TEAM_HORDE;
960 break;
963 msgType = CHAT_MSG_BG_SYSTEM_HORDE;
964 teamId = TEAM_HORDE;
965 break;
968 msgType = CHAT_MSG_BG_SYSTEM_HORDE;
969 teamId = TEAM_HORDE;
970 break;
971 default:
972 return;
973 }
974
975 if (teamId == TEAM_ALLIANCE)
976 {
979 }
980 else
981 {
984 }
985
986 TurnBosses(true);
987 SendBroadcastText(textId, msgType);
988}
@ 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: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
@ 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:1483
void SendBroadcastText(uint32 id, ChatMsg msgType, WorldObject const *target=nullptr)
Definition Battleground.cpp:691
GameObject * GetBGObject(uint32 type)
Definition Battleground.cpp:1495
void UpdateWorldState(uint32 variable, uint32 value)
Definition Battleground.cpp:783
void RemoveFlag(uint16 index, uint32 oldFlag)
Definition Object.cpp:860
uint32 GetEntry() const
Definition Object.h:115

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:827
uint32 GetMapId() const
Definition Battleground.h:446
Definition Transport.h:49
Definition Player.h:1081
bool TeleportTo(uint32 mapid, float x, float y, float z, float orientation, uint32 options=0, Unit *target=nullptr, bool newInstance=false)
Definition Player.cpp:1338
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:169
@ STATUS_IN_PROGRESS
Definition Battleground.h:203
std::uint16_t uint16
Definition Define.h:108
@ GAMEOBJECT_FACTION
Definition UpdateFields.h:402
float cords[5][4]
Definition boss_urom.cpp:83
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:755
void UpdateNodeWorldState(ICNodePoint *nodePoint)
Definition BattlegroundIC.cpp:669
bool DelCreature(uint32 type)
Definition Battleground.cpp:1596
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:1411
void RelocateDeadPlayers(ObjectGuid queueIndex)
Relocate all players in ReviveQueue to the closest graveyard.
Definition Battleground.cpp:1387
EventProcessor _reviveEvents
Definition Battleground.h:654
bool DelObject(uint32 type)
Definition Battleground.cpp:1615
BattlegroundStatus GetStatus() const
Definition Battleground.h:333
void AddEventAtOffset(BasicEvent *event, Milliseconds offset)
Definition EventProcessor.h:107
Definition GameObject.h:120
void SetUInt32Value(uint16 index, uint32 value)
Definition Object.cpp:650
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.

991{
992 // Is there any occupied node for this team?
993 std::vector<uint8> nodes;
994 for (uint8 i = 0; i < MAX_NODE_TYPES; ++i)
995 if (nodePoint[i].faction == player->GetTeamId() && !nodePoint[i].needChange) // xinef: controlled by faction and not contested!
996 nodes.push_back(i);
997
998 GraveyardStruct const* good_entry = nullptr;
999 // If so, select the closest node to place ghost on
1000 if (!nodes.empty())
1001 {
1002 float plr_x = player->GetPositionX();
1003 float plr_y = player->GetPositionY();
1004
1005 float mindist = 999999.0f;
1006 for (uint8 i = 0; i < nodes.size(); ++i)
1007 {
1008 GraveyardStruct const* entry = sGraveyard->GetGraveyard(BG_IC_GraveyardIds[nodes[i]]);
1009 if (!entry)
1010 continue;
1011 float dist = (entry->x - plr_x) * (entry->x - plr_x) + (entry->y - plr_y) * (entry->y - plr_y);
1012 if (mindist > dist)
1013 {
1014 mindist = dist;
1015 good_entry = entry;
1016 }
1017 }
1018 nodes.clear();
1019 }
1020 // If not, place ghost on starting location
1021 if (!good_entry)
1022 good_entry = sGraveyard->GetGraveyard(BG_IC_GraveyardIds[player->GetTeamId() + static_cast<uint16>(MAX_NODE_TYPES)]);
1023
1024 return good_entry;
1025}
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: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
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:13974
SpellCastResult CastSpell(SpellCastTargets const &targets, SpellInfo const *spellInfo, CustomSpellValues const *value, TriggerCastFlags triggerFlags=TRIGGERED_NONE, Item *castItem=nullptr, AuraEffect const *triggeredByAura=nullptr, ObjectGuid originalCaster=ObjectGuid::Empty)
Definition Unit.cpp:1178

References 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
756{
758 {
763 LOG_ERROR("bg.battleground", "Isle of Conquest: Failed to spawn spirit guide! point: {}, team: {}, ", nodePoint->nodeType, nodePoint->faction);
764 }
765
766 switch (nodePoint->gameobject_type)
767 {
769 {
771 break;
772
773 std::list<Creature*> cannons;
776 else
778
779 for (std::list<Creature*>::const_iterator itr = cannons.begin(); itr != cannons.end(); ++itr)
780 (*itr)->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
781
782 for (uint8 u = 0; u < MAX_HANGAR_TELEPORTERS_SPAWNS; ++u)
783 {
786 LOG_ERROR("bg.battleground", "Isle of Conquest: There was an error spawning a gunship portal. Type: {}", BG_IC_GO_HANGAR_TELEPORTER_1 + u);
787 }
788
789 for (uint8 u = 0; u < MAX_HANGAR_TELEPORTER_EFFECTS_SPAWNS; ++u)
790 {
793 LOG_ERROR("bg.battleground", "Isle of Conquest: There was an error spawning a gunship portal effects. Type: {}", BG_IC_GO_HANGAR_TELEPORTER_1 + u);
794 }
795
796 for (uint8 u = 0; u < MAX_TRIGGER_SPAWNS_PER_FACTION; ++u)
797 {
799 LOG_ERROR("bg.battleground", "Isle of Conquest: There was an error spawning a world trigger. Type: {}", BG_IC_NPC_WORLD_TRIGGER_NOT_FLOATING);
800 }
801
802 for (uint8 u = 0; u < MAX_CAPTAIN_SPAWNS_PER_FACTION; ++u)
803 {
805
806 if (type == BG_IC_NPC_GUNSHIP_CAPTAIN_1)
807 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))
809
810 if (type == BG_IC_NPC_GUNSHIP_CAPTAIN_2)
812 LOG_ERROR("bg.battleground", "Isle of Conquest: There was an error spawning a world trigger. Type: {}", BG_IC_NPC_GUNSHIP_CAPTAIN_2);
813 }
814
815 (nodePoint->faction == TEAM_ALLIANCE ? gunshipAlliance : gunshipHorde)->EnableMovement(true);
816 break;
817 }
821 break;
825 break;
827 if (recapture)
828 break;
829
832
833 // spawning glaive throwers
835 {
837
838 if (GetBgMap()->GetCreature(BgCreatures[type]))
839 continue;
840
842 BG_IC_DocksVehiclesGlaives[i].GetPositionX(), BG_IC_DocksVehiclesGlaives[i].GetPositionY(),
843 BG_IC_DocksVehiclesGlaives[i].GetPositionZ(), BG_IC_DocksVehiclesGlaives[i].GetOrientation(),
845 GetBGCreature(type)->SetFaction(BG_IC_Factions[nodePoint->faction]);
846 }
847
848 // spawning catapults
849 for (uint8 i = 0; i < MAX_CATAPULTS_SPAWNS_PER_FACTION; ++i)
850 {
852
853 if (GetBgMap()->GetCreature(BgCreatures[type]))
854 continue;
855
856 if (AddCreature(NPC_CATAPULT, type,
857 BG_IC_DocksVehiclesCatapults[i].GetPositionX(), BG_IC_DocksVehiclesCatapults[i].GetPositionY(),
858 BG_IC_DocksVehiclesCatapults[i].GetPositionZ(), BG_IC_DocksVehiclesCatapults[i].GetOrientation(),
861 }
862 break;
864 {
867
868 if (!recapture)
869 {
870 for (uint8 i = 0; i < MAX_DEMOLISHERS_SPAWNS_PER_FACTION; ++i)
871 {
873
874 if (GetBgMap()->GetCreature(BgCreatures[type]))
875 continue;
876
877 if (AddCreature(NPC_DEMOLISHER, type,
878 BG_IC_WorkshopVehicles[i].GetPositionX(), BG_IC_WorkshopVehicles[i].GetPositionY(),
879 BG_IC_WorkshopVehicles[i].GetPositionZ(), BG_IC_WorkshopVehicles[i].GetOrientation(),
882 }
883
885 if (!GetBgMap()->GetCreature(BgCreatures[siegeType]))
886 {
888 BG_IC_WorkshopVehicles[4].GetPositionX(), BG_IC_WorkshopVehicles[4].GetPositionY(),
889 BG_IC_WorkshopVehicles[4].GetPositionZ(), BG_IC_WorkshopVehicles[4].GetOrientation(),
891 }
892
893 if (Creature* siegeEngine = GetBgMap()->GetCreature(BgCreatures[siegeType]))
894 {
896 siegeEngine->SetCorpseDelay(5 * MINUTE);
897
898 if (siegeEngine->IsAlive())
899 if (Vehicle* siegeVehicle = siegeEngine->GetVehicleKit())
900 if (!siegeVehicle->IsVehicleInUse())
901 Unit::Kill(siegeEngine, siegeEngine);
902
903 respawnMap[siegeEngine->GetGUID()] = GameTime::GetGameTime().count() + VEHICLE_RESPAWN_TIME;
904 }
905 }
906
907 for (uint8 i = 0; i < MAX_WORKSHOP_BOMBS_SPAWNS_PER_FACTION; ++i)
908 {
910 workshopBombs[i].GetPositionX(), workshopBombs[i].GetPositionY(),
911 workshopBombs[i].GetPositionZ(), workshopBombs[i].GetOrientation(),
912 0, 0, 0, 0, 10);
913
914 if (GameObject* seaforiumBombs = GetBGObject(BG_IC_GO_SEAFORIUM_BOMBS_1 + i))
915 {
916 seaforiumBombs->SetRespawnTime(10);
917 seaforiumBombs->SetUInt32Value(GAMEOBJECT_FACTION, BG_IC_Factions[(nodePoint->faction == TEAM_ALLIANCE ? 0 : 1)]);
918 }
919 }
920 break;
921 }
922 default:
923 break;
924 }
925}
@ 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:689
@ UNIT_FLAG_NOT_SELECTABLE
Definition UnitDefines.h:275
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:1635
static TeamId GetOtherTeamId(TeamId teamId)
Definition Battleground.cpp:1751
BattlegroundMap * GetBgMap() const
Definition Battleground.h:450
Creature * AddCreature(uint32 entry, uint32 type, float x, float y, float z, float o, uint32 respawntime=0, MotionTransport *transport=nullptr)
Definition Battleground.cpp:1533
void RemoveAuraOnTeam(uint32 spellId, TeamId teamId)
Definition Battleground.cpp:716
void CastSpellOnTeam(uint32 spellId, TeamId teamId)
Definition Battleground.cpp:709
Creature * GetBGCreature(uint32 type)
Definition Battleground.cpp:1504
Definition Creature.h:43
Creature * GetCreature(ObjectGuid const guid)
Definition Map.cpp:2498
void SetFaction(uint32 faction)
Definition Unit.cpp:10097
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:17754
Definition Vehicle.h:28
void GetCreatureListWithEntryInGrid(std::list< Creature * > &lList, uint32 uiEntry, float fMaxSearchRange) const
Definition Object.cpp:2513
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}
@ 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_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.

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:3462
virtual void HandleKillPlayer(Player *player, Player *killer)
Definition Battleground.cpp:1716
void EndBattleground(PvPTeamId winnerTeamId)
Definition Battleground.cpp:791

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:733
bool IsVehicle() const
Definition Unit.h:766

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 = GetBGCreature(siegeType)) // this always should be true
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:1628
void RemoveFromWorld() override
Definition GameObject.cpp:168
void SetDestructibleState(GameObjectDestructibleState state, Player *eventInvoker=nullptr, bool setHealth=false)
Definition GameObject.cpp:2325

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::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(), 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:4808

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:163
void SetRespawnTime(int32 respawn)
Definition GameObject.cpp:1288
void EnableMovement(bool enabled)
Definition Transport.cpp:455
void setActive(bool isActiveObject)
Definition Object.cpp:1094

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:2462
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:548
@ REACT_AGGRESSIVE
Definition Unit.h:550

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:1350
void UpdateAchievementCriteria(AchievementCriteriaTypes type, uint32 miscValue1=0, uint32 miscValue2=0, Unit *unit=nullptr)
Definition PlayerUpdates.cpp:2177

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

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