245 if (!isInBattleground)
253 TC_LOG_DEBUG(
"bg.battleground",
"Respawn Alliance flag");
610 TC_LOG_ERROR(
"bg.battleground",
"BattlegroundWS: Removing offline player who has the FLAG!!");
621 TC_LOG_ERROR(
"bg.battleground",
"BattlegroundWS: Removing offline player who has the FLAG!!");
700 if (!
AddObject(
BG_WS_OBJECT_A_FLAG,
BG_OBJECT_A_FLAG_WS_ENTRY, 1540.423f, 1481.325f, 351.8284f, 3.089233f, 0, 0, 0.9996573f, 0.02617699f,
BG_WS_FLAG_RESPAWN_TIME/1000)
701 || !
AddObject(
BG_WS_OBJECT_H_FLAG,
BG_OBJECT_H_FLAG_WS_ENTRY, 916.0226f, 1434.405f, 345.413f, 0.01745329f, 0, 0, 0.008726535f, 0.9999619f,
BG_WS_FLAG_RESPAWN_TIME/1000)
703 || !
AddObject(
BG_WS_OBJECT_SPEEDBUFF_1,
BG_OBJECTID_SPEEDBUFF_ENTRY, 1449.93f, 1470.71f, 342.6346f, -1.64061f, 0, 0, 0.7313537f, -0.6819983f,
BUFF_RESPAWN_TIME)
704 || !
AddObject(
BG_WS_OBJECT_SPEEDBUFF_2,
BG_OBJECTID_SPEEDBUFF_ENTRY, 1005.171f, 1447.946f, 335.9032f, 1.64061f, 0, 0, 0.7313537f, 0.6819984f,
BUFF_RESPAWN_TIME)
705 || !
AddObject(
BG_WS_OBJECT_REGENBUFF_1,
BG_OBJECTID_REGENBUFF_ENTRY, 1317.506f, 1550.851f, 313.2344f, -0.2617996f, 0, 0, 0.1305263f, -0.9914448f,
BUFF_RESPAWN_TIME)
706 || !
AddObject(
BG_WS_OBJECT_REGENBUFF_2,
BG_OBJECTID_REGENBUFF_ENTRY, 1110.451f, 1353.656f, 316.5181f, -0.6806787f, 0, 0, 0.333807f, -0.9426414f,
BUFF_RESPAWN_TIME)
707 || !
AddObject(
BG_WS_OBJECT_BERSERKBUFF_1,
BG_OBJECTID_BERSERKERBUFF_ENTRY, 1320.09f, 1378.79f, 314.7532f, 1.186824f, 0, 0, 0.5591929f, 0.8290376f,
BUFF_RESPAWN_TIME)
708 || !
AddObject(
BG_WS_OBJECT_BERSERKBUFF_2,
BG_OBJECTID_BERSERKERBUFF_ENTRY, 1139.688f, 1560.288f, 306.8432f, -2.443461f, 0, 0, 0.9396926f, -0.3420201f,
BUFF_RESPAWN_TIME)
710 || !
AddObject(
BG_WS_OBJECT_DOOR_A_1,
BG_OBJECT_DOOR_A_1_WS_ENTRY, 1503.335f, 1493.466f, 352.1888f, 3.115414f, 0, 0, 0.9999143f, 0.01308903f,
RESPAWN_IMMEDIATELY)
711 || !
AddObject(
BG_WS_OBJECT_DOOR_A_2,
BG_OBJECT_DOOR_A_2_WS_ENTRY, 1492.478f, 1457.912f, 342.9689f, 3.115414f, 0, 0, 0.9999143f, 0.01308903f,
RESPAWN_IMMEDIATELY)
712 || !
AddObject(
BG_WS_OBJECT_DOOR_A_3,
BG_OBJECT_DOOR_A_3_WS_ENTRY, 1468.503f, 1494.357f, 351.8618f, 3.115414f, 0, 0, 0.9999143f, 0.01308903f,
RESPAWN_IMMEDIATELY)
713 || !
AddObject(
BG_WS_OBJECT_DOOR_A_4,
BG_OBJECT_DOOR_A_4_WS_ENTRY, 1471.555f, 1458.778f, 362.6332f, 3.115414f, 0, 0, 0.9999143f, 0.01308903f,
RESPAWN_IMMEDIATELY)
714 || !
AddObject(
BG_WS_OBJECT_DOOR_A_5,
BG_OBJECT_DOOR_A_5_WS_ENTRY, 1492.347f, 1458.34f, 342.3712f, -0.03490669f, 0, 0, 0.01745246f, -0.9998477f,
RESPAWN_IMMEDIATELY)
715 || !
AddObject(
BG_WS_OBJECT_DOOR_A_6,
BG_OBJECT_DOOR_A_6_WS_ENTRY, 1503.466f, 1493.367f, 351.7352f, -0.03490669f, 0, 0, 0.01745246f, -0.9998477f,
RESPAWN_IMMEDIATELY)
717 || !
AddObject(
BG_WS_OBJECT_DOOR_H_1,
BG_OBJECT_DOOR_H_1_WS_ENTRY, 949.1663f, 1423.772f, 345.6241f, -0.5756807f, -0.01673368f, -0.004956111f, -0.2839723f, 0.9586737f,
RESPAWN_IMMEDIATELY)
718 || !
AddObject(
BG_WS_OBJECT_DOOR_H_2,
BG_OBJECT_DOOR_H_2_WS_ENTRY, 953.0507f, 1459.842f, 340.6526f, -1.99662f, -0.1971825f, 0.1575096f, -0.8239487f, 0.5073641f,
RESPAWN_IMMEDIATELY)
719 || !
AddObject(
BG_WS_OBJECT_DOOR_H_3,
BG_OBJECT_DOOR_H_3_WS_ENTRY, 949.9523f, 1422.751f, 344.9273f, 0.0f, 0, 0, 0, 1,
RESPAWN_IMMEDIATELY)
720 || !
AddObject(
BG_WS_OBJECT_DOOR_H_4,
BG_OBJECT_DOOR_H_4_WS_ENTRY, 950.7952f, 1459.583f, 342.1523f, 0.05235988f, 0, 0, 0.02617695f, 0.9996573f,
RESPAWN_IMMEDIATELY)
723 TC_LOG_ERROR(
"sql.sql",
"BatteGroundWS: Failed to spawn some object Battleground not created!");
730 TC_LOG_ERROR(
"sql.sql",
"BatteGroundWS: Failed to spawn Alliance spirit guide! Battleground not created!");
737 TC_LOG_ERROR(
"sql.sql",
"BatteGroundWS: Failed to spawn Horde spirit guide! Battleground not created!");
741 TC_LOG_DEBUG(
"bg.battleground",
"BatteGroundWS: BG objects and spirit guides spawned");
uint32 BG_WSG_Honor[BG_HONOR_MODE_NUM][BG_WSG_REWARD_NUM]
@ BG_WS_FLAG_STATE_ON_GROUND
@ BG_WS_FLAG_STATE_ON_PLAYER
@ BG_WS_FLAG_STATE_WAIT_RESPAWN
@ BG_WS_FLAG_STATE_ON_BASE
@ BG_WS_OBJECT_BERSERKBUFF_1
@ BG_WS_OBJECT_REGENBUFF_2
@ BG_WS_OBJECT_SPEEDBUFF_1
@ BG_WS_OBJECT_REGENBUFF_1
@ BG_WS_OBJECT_SPEEDBUFF_2
@ BG_WS_OBJECT_BERSERKBUFF_2
@ BG_WS_SPELL_SILVERWING_FLAG_PICKED
@ BG_WS_SPELL_WARSONG_FLAG
@ BG_WS_SPELL_SILVERWING_FLAG_DROPPED
@ BG_WS_SPELL_WARSONG_FLAG_PICKED
@ BG_WS_SPELL_WARSONG_FLAG_DROPPED
@ BG_WS_SPELL_SILVERWING_FLAG
@ WS_SPIRIT_MAIN_ALLIANCE
@ BG_WS_SOUND_FLAG_CAPTURED_HORDE
@ BG_WS_SOUND_FLAGS_RESPAWNED
@ BG_WS_SOUND_FLAG_CAPTURED_ALLIANCE
@ BG_WS_SOUND_HORDE_FLAG_PICKED_UP
@ BG_WS_SOUND_ALLIANCE_FLAG_PICKED_UP
@ BG_WS_SOUND_FLAG_RETURNED
@ WS_OBJECTIVE_RETURN_FLAG
@ WS_OBJECTIVE_CAPTURE_FLAG
@ WS_SPELL_BRUTAL_ASSAULT
@ WS_SPELL_FOCUSED_ASSAULT
@ BG_WS_TEXT_START_HALF_MINUTE
@ BG_WS_TEXT_HORDE_FLAG_PICKED_UP
@ BG_WS_TEXT_ALLIANCE_FLAG_DROPPED
@ BG_WS_TEXT_ALLIANCE_FLAG_RETURNED
@ BG_WS_TEXT_ALLIANCE_FLAG_PICKED_UP
@ BG_WS_TEXT_CAPTURED_HORDE_FLAG
@ BG_WS_TEXT_BATTLE_HAS_BEGUN
@ BG_WS_TEXT_CAPTURED_ALLIANCE_FLAG
@ BG_WS_TEXT_HORDE_FLAG_DROPPED
@ BG_WS_TEXT_START_ONE_MINUTE
@ BG_WS_TEXT_HORDE_FLAG_RETURNED
@ BG_WS_TEXT_FLAGS_PLACED
@ BG_OBJECT_H_FLAG_GROUND_WS_ENTRY
@ BG_OBJECT_DOOR_A_4_WS_ENTRY
@ BG_OBJECT_DOOR_A_1_WS_ENTRY
@ BG_OBJECT_DOOR_A_3_WS_ENTRY
@ BG_OBJECT_DOOR_A_6_WS_ENTRY
@ BG_OBJECT_DOOR_H_2_WS_ENTRY
@ BG_OBJECT_A_FLAG_GROUND_WS_ENTRY
@ BG_OBJECT_DOOR_H_4_WS_ENTRY
@ BG_OBJECT_DOOR_H_1_WS_ENTRY
@ BG_OBJECT_DOOR_A_2_WS_ENTRY
@ BG_OBJECT_DOOR_A_5_WS_ENTRY
@ BG_OBJECT_DOOR_H_3_WS_ENTRY
@ BG_OBJECT_A_FLAG_WS_ENTRY
@ BG_OBJECT_H_FLAG_WS_ENTRY
#define WS_EVENT_START_BATTLE
@ BG_WS_FLAG_RESPAWN_TIME
@ BG_WS_FLAG_UNK_ALLIANCE
@ BG_WS_FLAG_CAPTURES_MAX
@ BG_WS_FLAG_STATE_ALLIANCE
@ BG_WS_FLAG_CAPTURES_HORDE
@ BG_WS_STATE_TIMER_ACTIVE
@ BG_WS_FLAG_CAPTURES_ALLIANCE
@ WS_GRAVEYARD_FLAGROOM_ALLIANCE
@ WS_GRAVEYARD_MAIN_ALLIANCE
@ WS_GRAVEYARD_FLAGROOM_HORDE
@ WS_GRAVEYARD_MAIN_HORDE
@ BG_CRITERIA_CHECK_SAVE_THE_DAY
@ BG_OBJECTID_REGENBUFF_ENTRY
@ BG_OBJECTID_BERSERKERBUFF_ENTRY
@ BG_OBJECTID_SPEEDBUFF_ENTRY
@ SPELL_RECENTLY_DROPPED_FLAG
@ BG_STARTING_EVENT_THIRD
@ BG_STARTING_EVENT_SECOND
@ BG_STARTING_EVENT_FOURTH
@ ACHIEVEMENT_TIMED_TYPE_EVENT
@ ACHIEVEMENT_TIMED_TYPE_SPELL_TARGET
@ ACHIEVEMENT_CRITERIA_TYPE_BG_OBJECTIVE_CAPTURE
DBCStorage< WorldSafeLocsEntry > sWorldSafeLocsStore(WorldSafeLocsEntryfmt)
DBCStorage< AreaTriggerEntry > sAreaTriggerStore(AreaTriggerEntryfmt)
#define TC_LOG_DEBUG(filterType__,...)
#define TC_LOG_ERROR(filterType__,...)
@ CHAT_MSG_BG_SYSTEM_ALLIANCE
@ CHAT_MSG_BG_SYSTEM_HORDE
@ CHAT_MSG_BG_SYSTEM_NEUTRAL
@ AURA_INTERRUPT_FLAG_ENTER_PVP_COMBAT
void EventPlayerClickedOnFlag(Player *player, GameObject *target_obj) override
void AddPoint(uint32 TeamID, uint32 Points=1)
bool IsHordeFlagPickedup() const
void UpdateTeamScore(uint32 team)
WorldSafeLocsEntry const * GetClosestGraveyard(Player *player) override
void StartingEventCloseDoors() override
void SetDroppedFlagGUID(ObjectGuid guid, int32 team=-1) override
ObjectGuid m_DroppedFlagGUID[2]
ObjectGuid GetDroppedFlagGUID(uint32 TeamID)
int32 _flagSpellForceTimer
bool IsAllianceFlagPickedup() const
uint32 m_ReputationCapture
void HandleKillPlayer(Player *player, Player *killer) override
void SetLastFlagCapture(uint32 team)
void UpdateFlagState(uint32 team, uint32 value)
void SetAllianceFlagPicker(ObjectGuid guid)
void RespawnFlag(uint32 Team, bool captured)
void FillInitialWorldStates(WorldPackets::WorldState::InitWorldStates &packet) override
bool SetupBattleground() override
bool UpdatePlayerScore(Player *player, uint32 type, uint32 value, bool doAddHonor=true) override
ObjectGuid GetFlagPickerGUID(int32 team) const override
bool CheckAchievementCriteriaMeet(uint32 criteriaId, Player const *source, Unit const *target=nullptr, uint32 miscvalue1=0) override
ObjectGuid m_FlagKeepers[2]
void EndBattleground(uint32 winner) override
uint32 _lastFlagCaptureTeam
void EventPlayerCapturedFlag(Player *player)
void PostUpdateImpl(uint32 diff) override
Post-update hook.
void RemovePlayer(Player *player, ObjectGuid guid, uint32 team) override
uint8 GetFlagState(uint32 team)
void SetHordeFlagPicker(ObjectGuid guid)
void HandleFlagRoomCapturePoint(int32 team)
void StartingEventOpenDoors() override
void AddPlayer(Player *player) override
void RespawnFlagAfterDrop(uint32 Team)
uint32 GetPrematureWinner() override
void HandleAreaTrigger(Player *player, uint32 trigger) override
void EventPlayerDroppedFlag(Player *player) override
virtual void AddPlayer(Player *player)
BattlegroundTypeId GetTypeID(bool GetRandom=false) const
virtual void EndBattleground(uint32 winner)
virtual void HandleKillPlayer(Player *player, Player *killer)
static TeamId GetTeamIndexByTeamId(uint32 Team)
void DoorOpen(uint32 type)
void SpawnBGObject(uint32 type, uint32 respawntime)
virtual bool AddObject(uint32 type, uint32 entry, float x, float y, float z, float o, float rotation0, float rotation1, float rotation2, float rotation3, uint32 respawnTime=0, GOState goState=GO_STATE_READY)
BattlegroundMap * GetBgMap() const
virtual bool AddSpiritGuide(uint32 type, float x, float y, float z, float o, TeamId teamId=TEAM_NEUTRAL)
void DoorClose(uint32 type)
int32 m_TeamScores[PVP_TEAMS_COUNT]
bool IsPlayerInBattleground(ObjectGuid guid) const
void SendBroadcastText(uint32 id, ChatMsg msgType, WorldObject const *target=nullptr)
uint32 GetStartTime() const
BattlegroundScoreMap PlayerScores
void RewardHonorToTeam(uint32 Honor, uint32 TeamID)
BattlegroundStatus GetStatus() const
virtual bool UpdatePlayerScore(Player *player, uint32 type, uint32 value, bool doAddHonor=true)
virtual void HandleAreaTrigger(Player *, uint32)
uint32 GetTeamScore(uint32 TeamID) const
void StartTimedAchievement(AchievementCriteriaTimedTypes type, uint32 entry)
virtual bool CheckAchievementCriteriaMeet(uint32, Player const *, Unit const *=nullptr, uint32=0)
void UpdateWorldState(uint32 variable, uint32 value)
uint32 GetBonusHonorFromKill(uint32 kills) const
void RewardReputationToTeam(uint32 faction_id, uint32 Reputation, uint32 TeamID)
void PlaySoundToAll(uint32 soundID)
virtual uint32 GetPrematureWinner()
uint32 StartMessageIds[BG_STARTING_EVENT_COUNT]
GameObjectTemplate const * GetGOInfo() const
static ObjectGuid const Empty
static ObjectGuid GetGUID(Object const *o)
static Player * ToPlayer(Object *o)
void StartTimedAchievement(AchievementCriteriaTimedTypes type, uint32 entry, uint32 timeLost=0)
void UpdateAchievementCriteria(AchievementCriteriaTypes type, uint32 miscValue1=0, uint32 miscValue2=0, WorldObject *ref=nullptr)
bool IsInAreaTriggerRadius(AreaTriggerEntry const *trigger) const
void RemoveAurasWithInterruptFlags(uint32 flag, uint32 except=0)
void RemoveAurasDueToSpell(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, uint8 reqEffMask=0, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
SpellCastResult CastSpell(CastSpellTargetArg const &targets, uint32 spellId, CastSpellExtraArgs const &args={ })
bool IsWithinDistInMap(WorldObject const *obj, float dist2compare, bool is3D=true, bool incOwnRadius=true, bool incTargetRadius=true) const
std::vector< WorldStateInfo > Worldstates
TC_GAME_API Player * FindPlayer(ObjectGuid const &)
TC_GAME_API Player * GetPlayer(Map const *, ObjectGuid const &guid)
void BuildObjectivesBlock(WorldPackets::Battleground::PVPLogData_Player &playerData) override
std::vector< uint32 > Stats