177 uint32 worldStateAllianceStatusBarIcon,
uint32 worldStateHordeStatusBarIcon)
255 static constexpr std::array<uint32, EY_POINTS_MAX>
BG_EY_FlagPoints = { 75, 85, 100, 500 };
292 if (baseCountAlliance > 0)
294 if (baseCountHorde > 0)
324 gameObject->UseDoorOrButton();
325 gameObject->DespawnOrUnsummon(3s);
352 uint32 point = controlZoneHandler.second->GetPoint();
370 template <std::invocable<Player*> Action>
404 player->
CastSpell(player, spellId,
true);
405 aura = player->
GetAura(spellId);
482 if (flag->GetFlagCarrierGUID() != player->
GetGUID())
644 auto controlzone = gameobject->GetGOInfo()->controlZone;
646 if (eventId == controlzone.NeutralEventAlliance)
648 else if (eventId == controlzone.NeutralEventHorde)
650 else if (eventId == controlzone.ProgressEventAlliance)
652 else if (eventId == controlzone.ProgressEventHorde)
@ SPELL_RECENTLY_DROPPED_NEUTRAL_FLAG
std::chrono::seconds Seconds
Seconds shorthand typedef.
std::unordered_set< ObjectGuid > GuidUnorderedSet
#define RegisterBattlegroundMapScript(script_name, mapId)
@ GAMEOBJECT_TYPE_CONTROL_ZONE
@ CHAT_MSG_BG_SYSTEM_ALLIANCE
@ CHAT_MSG_BG_SYSTEM_HORDE
constexpr std::underlying_type< E >::type AsUnderlyingType(E enumValue)
@ BG_EY_FLAG_STATE_ON_PLAYER
@ BG_EY_FLAG_STATE_ON_BASE
@ BG_EY_FLAG_STATE_ON_GROUND
@ BG_EY_FLAG_STATE_WAIT_RESPAWN
EyeOfTheStormPointsTrigger
@ AREATRIGGER_CAPTURE_FLAG
const std::array< BattlegroundEYPointIconsStruct, EY_POINTS_MAX > m_PointsIconStruct
@ EY_PLAYERS_OUT_OF_POINTS
@ BG_EY_WARNING_NEAR_VICTORY_SCORE
@ BG_EY_BRUTAL_ASSAULT_SPELL
@ BG_EY_NETHERSTORM_FLAG_SPELL
@ BG_EY_PLAYER_DROPPED_FLAG_SPELL
@ BG_EY_FOCUSED_ASSAULT_SPELL
@ BG_EY_SOUND_FLAG_PICKED_UP_ALLIANCE
@ BG_EY_SOUND_FLAG_CAPTURED_HORDE
@ BG_EY_SOUND_FLAG_PICKED_UP_HORDE
@ BG_EY_SOUND_FLAG_CAPTURED_ALLIANCE
@ BG_OBJECT_HU_TOWER_CAP_EY_ENTRY
@ BG_OBJECT_BE_TOWER_CAP_EY_ENTRY
@ BG_OBJECT_FLAG2_EY_ENTRY
@ BG_OBJECT_FR_TOWER_CAP_EY_ENTRY
@ BG_OBJECT_A_DOOR_EY_ENTRY
@ BG_OBJECT_H_DOOR_EY_ENTRY
@ BG_OBJECT_DR_TOWER_CAP_EY_ENTRY
BG_EY_ExploitTeleportLocations
@ EY_EXPLOIT_TELEPORT_LOCATION_ALLIANCE
@ EY_EXPLOIT_TELEPORT_LOCATION_HORDE
constexpr uint32 BG_EY_EYWeekendHonorTicks
const std::array< BattlegroundEYCapturingPointStruct, EY_POINTS_MAX > m_CapturingPointTypes
EyeOFtheStormBroadcastTexts
@ BG_EY_TEXT_HORDE_LOST_BLOOD_ELF_TOWER
@ BG_EY_TEXT_ALLIANCE_TAKEN_MAGE_TOWER
@ BG_EY_TEXT_HORDE_LOST_FEL_REAVER_RUINS
@ BG_EY_TEXT_ALLIANCE_TAKEN_FEL_REAVER_RUINS
@ BG_EY_TEXT_ALLIANCE_LOST_MAGE_TOWER
@ BG_EY_TEXT_HORDE_LOST_DRAENEI_RUINS
@ BG_EY_TEXT_HORDE_LOST_MAGE_TOWER
@ BG_EY_TEXT_HORDE_TAKEN_DRAENEI_RUINS
@ BG_EY_TEXT_HORDE_TAKEN_MAGE_TOWER
@ BG_EY_TEXT_ALLIANCE_TAKEN_BLOOD_ELF_TOWER
@ BG_EY_TEXT_ALLIANCE_CAPTURED_FLAG
@ BG_EY_TEXT_ALLIANCE_TAKEN_DRAENEI_RUINS
@ BG_EY_TEXT_FLAG_DROPPED
@ BG_EY_TEXT_HORDE_TAKEN_FEL_REAVER_RUINS
@ BG_EY_TEXT_HORDE_TAKEN_BLOOD_ELF_TOWER
@ BG_EY_TEXT_HORDE_CAPTURED_FLAG
@ BG_EY_TEXT_ALLIANCE_LOST_BLOOD_ELF_TOWER
@ BG_EY_TEXT_ALLIANCE_LOST_FEL_REAVER_RUINS
@ BG_EY_TEXT_ALLIANCE_LOST_DRAENEI_RUINS
@ BLOOD_ELF_HORDE_CONTROL
@ DRAENEI_RUINS_HORDE_CONTROL_STATE
@ NETHERSTORM_FLAG_STATE_ALLIANCE
@ FEL_REAVER_ALLIANCE_CONTROL_STATE
@ MAGE_TOWER_ALLIANCE_CONTROL
@ MAGE_TOWER_HORDE_CONTROL_STATE
@ FEL_REAVER_ALLIANCE_CONTROL
@ DRAENEI_RUINS_UNCONTROL
@ NETHERSTORM_FLAG_STATE_HORDE
@ DRAENEI_RUINS_ALLIANCE_CONTROL
@ DRAENEI_RUINS_ALLIANCE_CONTROL_STATE
@ BLOOD_ELF_ALLIANCE_CONTROL_STATE
@ BLOOD_ELF_ALLIANCE_CONTROL
@ DRAENEI_RUINS_HORDE_CONTROL
@ MAGE_TOWER_HORDE_CONTROL
@ PROGRESS_BAR_PERCENT_GREY
@ MAGE_TOWER_ALLIANCE_CONTROL_STATE
@ FEL_REAVER_HORDE_CONTROL_STATE
@ FEL_REAVER_HORDE_CONTROL
@ BLOOD_ELF_HORDE_CONTROL_STATE
const std::array< BattlegroundEYLosingPointStruct, EY_POINTS_MAX > m_LosingPointTypes
constexpr uint32 BG_EY_NotEYWeekendHonorTicks
@ EY_POINT_STATE_UNCONTROLLED
void AddSC_battleground_eye_of_the_storm()
void SetStackAmount(uint8 num)
ObjectGuid const & GetGUID() const
BattlegroundEYControlZoneHandler(uint32 point)
Battleground * battleground
void TriggerGameEvent(uint32 gameEventId, WorldObject *source=nullptr, WorldObject *target=nullptr) override
BattlegroundMap * battlegroundMap
virtual void OnEnd(Team winner)
virtual Team GetPrematureWinner()
void UpdateWorldState(int32 worldStateId, int32 value, bool hidden=false) const
void PlaySoundToAll(uint32 SoundID)
uint32 GetTeamScore(TeamId teamId) const
void RewardHonorToTeam(uint32 Honor, Team team)
BattlegroundTypeId GetTypeID() const
static TeamId GetTeamIndexByTeamId(Team team)
virtual void EndBattleground(Team winner)
void SendBroadcastText(uint32 id, ChatMsg msgType, WorldObject const *target=nullptr)
BattlegroundStatus GetStatus() const
void AddPoint(Team team, uint32 points=1)
Team GetPlayerTeam(ObjectGuid guid) const
uint32 GetBonusHonorFromKill(uint32 kills) const
void UpdatePvpStat(Player *player, uint32 pvpStatId, uint32 value)
int32 GetWorldStateValue(int32 worldStateId) const
GameObject * GetGameObject(ObjectGuid const &guid)
GameObject * ToGameObject()
Aura * GetAura(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, ObjectGuid itemCasterGUID=ObjectGuid::Empty, uint32 reqEffMask=0) const
void RemoveAurasWithInterruptFlags(InterruptFlags flag, SpellInfo const *source=nullptr)
void RemoveAurasDueToSpell(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, uint32 reqEffMask=0, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
SpellCastResult CastSpell(CastSpellTargetArg const &targets, uint32 spellId, CastSpellExtraArgs const &args={ })
GameObject * FindNearestGameObjectWithOptions(float range, FindGameObjectOptions const &options) const
virtual void ProcessEvent(WorldObject *obj, uint32 eventId, WorldObject *invoker)
TC_GAME_API Player * FindPlayer(ObjectGuid const &)
BattlegroundEYCapturingPointStruct(uint32 _MessageIdAlliance, uint32 _MessageIdHorde)
BattlegroundEYLosingPointStruct(uint32 _MessageIdAlliance, uint32 _MessageIdHorde)
BattlegroundEYPointIconsStruct(uint32 _WorldStateControlIndex, uint32 _WorldStateAllianceControlledIndex, uint32 _WorldStateHordeControlledIndex, uint32 worldStateAllianceStatusBarIcon, uint32 worldStateHordeStatusBarIcon)
uint32 WorldStateHordeControlledIndex
uint32 WorldStateAllianceControlledIndex
uint32 WorldStateHordeStatusBarIcon
uint32 WorldStateControlIndex
uint32 WorldStateAllianceStatusBarIcon
static constexpr uint16 BG_EY_FLAG_BRUTAL_ASSAULT_STACK_COUNT
std::unordered_map< uint32, std::unique_ptr< BattlegroundEYControlZoneHandler > > _controlZoneHandlers
void OnGameObjectCreate(GameObject *gameObject) override
uint8 GetControlledBaseCount(TeamId teamId) const
static constexpr uint32 BG_EY_EVENT_START_BATTLE
void DoForFlagKeepers(Action const &action) const
GuidUnorderedSet _doorGUIDs
void OnFlagStateChange(GameObject *, FlagState, FlagState newValue, Player *player) override
static constexpr Seconds BG_EY_FLAG_ASSAULT_TIMER
void EventTeamCapturedPoint(TeamId teamId, uint32 point, GameObject *controlZone) const
static constexpr Seconds POINTS_TICK_TIME
void OnUpdate(uint32 diff) override
Team GetPrematureWinner() override
std::array< uint32, PVP_TEAMS_COUNT > _honorScoreTics
void ApplyAssaultDebuffToPlayer(Player *player)
void ResetAssaultDebuff()
bool CanCaptureFlag(AreaTrigger *areaTrigger, Player *player) override
void EventTeamLostPoint(TeamId teamId, uint32 point, GameObject *controlZone) const
void UpdateTeamScore(TeamId Team) const
battleground_eye_of_the_storm(BattlegroundMap *map)
void OnCaptureFlag(AreaTrigger *areaTrigger, Player *player) override
void OnEnd(Team winner) override
TimeTracker _flagAssaultTimer
void AddPoint(Team team, uint32 points)
static constexpr std::array< uint32, EY_POINTS_MAX > BG_EY_FlagPoints
void UpdatePointsCount(TeamId teamId) const
static constexpr std::array< uint8, EY_POINTS_MAX > BG_EY_TickPoints
void ProcessEvent(WorldObject *obj, uint32 eventId, WorldObject *invoker) override
void RemoveAssaultDebuffFromPlayer(Player *player)