65 if (baseCountAlliance > 0)
67 if (baseCountHorde > 0)
95 gameObject->UseDoorOrButton();
96 gameObject->DespawnOrUnsummon(3s);
122 uint32 point = controlZoneHandler.second->GetPoint();
175 player->
CastSpell(player, spellId,
true);
176 aura = player->
GetAura(spellId);
254 if (flag->GetFlagCarrierGUID() != player->
GetGUID())
453 auto controlzone = gameobject->GetGOInfo()->controlZone;
455 if (eventId == controlzone.NeutralEventAlliance)
457 else if (eventId == controlzone.NeutralEventHorde)
459 else if (eventId == controlzone.ProgressEventAlliance)
461 else if (eventId == controlzone.ProgressEventHorde)
469 _battleground(bg), _point(point)
@ BG_EY_FLAG_STATE_ON_PLAYER
@ BG_EY_FLAG_STATE_ON_BASE
@ BG_EY_FLAG_STATE_WAIT_RESPAWN
const std::array< BattlegroundEYPointIconsStruct, EY_POINTS_MAX > m_PointsIconStruct
const std::array< uint32, EY_POINTS_MAX > BG_EY_FlagPoints
const std::array< uint8, EY_POINTS_MAX > BG_EY_TickPoints
static constexpr Seconds BG_EY_FLAG_ASSAULT_TIMER
@ NETHERSTORM_FLAG_STATE_ALLIANCE
@ NETHERSTORM_FLAG_STATE_HORDE
#define BG_EY_NotEYWeekendHonorTicks
@ EY_EXPLOIT_TELEPORT_LOCATION_ALLIANCE
@ EY_EXPLOIT_TELEPORT_LOCATION_HORDE
static constexpr Seconds POINTS_TICK_TIME
@ BG_EY_TEXT_ALLIANCE_CAPTURED_FLAG
@ BG_EY_TEXT_FLAG_DROPPED
@ BG_EY_TEXT_HORDE_CAPTURED_FLAG
const std::array< BattlegroundEYCapturingPointStruct, EY_POINTS_MAX > m_CapturingPointTypes
@ BG_EY_EVENT_START_BATTLE
@ 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
const std::array< BattlegroundEYLosingPointStruct, EY_POINTS_MAX > m_LosingPointTypes
@ AREATRIGGER_CAPTURE_FLAG
#define BG_EY_EYWeekendHonorTicks
@ 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_EY_BRUTAL_ASSAULT_SPELL
@ BG_EY_NETHERSTORM_FLAG_SPELL
@ BG_EY_FOCUSED_ASSAULT_SPELL
static constexpr uint16 BG_EY_FLAG_BRUTAL_ASSAULT_STACK_COUNT
@ SPELL_RECENTLY_DROPPED_NEUTRAL_FLAG
@ GAMEOBJECT_TYPE_CONTROL_ZONE
@ CHAT_MSG_BG_SYSTEM_ALLIANCE
@ CHAT_MSG_BG_SYSTEM_HORDE
constexpr std::underlying_type< E >::type AsUnderlyingType(E enumValue)
void SetStackAmount(uint8 num)
void HandleProgressEventAlliance(GameObject *controlZone) override
void HandleProgressEventHorde(GameObject *controlZone) override
void HandleNeutralEventHorde(GameObject *controlZone) override
BattlegroundEY * _battleground
BattlegroundEYControlZoneHandler(BattlegroundEY *bg, uint32 point)
void HandleNeutralEventAlliance(GameObject *controlZone) override
uint32 m_FlagCapturedBgObjectType
void AddPoints(Team team, uint32 Points)
bool CanCaptureFlag(AreaTrigger *areaTrigger, Player *player) override
GuidUnorderedSet _doorGUIDs
void DoForFlagKeepers(std::function< void(Player *)> action) const
void EndBattleground(Team winner) override
uint8 GetControlledBaseCount(TeamId teamId) const
void HandleKillPlayer(Player *player, Player *killer) override
bool SetupBattleground() override
WorldSafeLocsEntry const * GetExploitTeleportLocation(Team team) override
std::unordered_map< uint32, std::unique_ptr< BattlegroundEYControlZoneHandler > > _controlZoneHandlers
void ResetAssaultDebuff()
void StartingEventOpenDoors() override
void OnGameObjectCreate(GameObject *gameObject) override
void RemoveAssaultDebuffFromPlayer(Player *player)
void ApplyAssaultDebuffToPlayer(Player *player)
uint16 _assaultStackCount
TimeTracker _flagAssaultTimer
void PostUpdateImpl(uint32 diff) override
Post-update hook.
void EventTeamCapturedPoint(TeamId teamId, uint32 point, GameObject *controlZone)
std::array< uint32, PVP_TEAMS_COUNT > m_HonorScoreTics
void UpdatePointsCount(TeamId teamId)
void UpdateTeamScore(TeamId Team)
void ProcessEvent(WorldObject *target, uint32 eventId, WorldObject *invoker) override
Team GetPrematureWinner() override
BattlegroundEY(BattlegroundTemplate const *battlegroundTemplate)
void EventTeamLostPoint(TeamId teamId, uint32 point, GameObject *controlZone)
void OnFlagStateChange(GameObject *flagInBase, FlagState oldValue, FlagState newValue, Player *player) override
void OnCaptureFlag(AreaTrigger *areaTrigger, Player *player) override
virtual Team GetPrematureWinner()
virtual void HandleKillPlayer(Player *player, Player *killer)
void PlaySoundToAll(uint32 SoundID)
uint32 GetTeamScore(TeamId teamId) const
void RewardHonorToTeam(uint32 Honor, Team team)
BattlegroundMap * GetBgMap() const
BattlegroundTypeId GetTypeID() const
void ProcessEvent(WorldObject *, uint32, WorldObject *) override
void TriggerGameEvent(uint32 gameEventId, WorldObject *source=nullptr, WorldObject *target=nullptr) override
int32 m_TeamScores[PVP_TEAMS_COUNT]
static TeamId GetTeamIndexByTeamId(Team team)
void UpdateWorldState(int32 worldStateId, int32 value, bool hidden=false)
virtual void EndBattleground(Team winner)
void SendBroadcastText(uint32 id, ChatMsg msgType, WorldObject const *target=nullptr)
BattlegroundStatus GetStatus() const
Team GetPlayerTeam(ObjectGuid guid) const
virtual void EventPlayerDroppedFlag(Player *)
uint32 GetBonusHonorFromKill(uint32 kills) const
void UpdatePvpStat(Player *player, uint32 pvpStatId, uint32 value)
int32 GetWorldStateValue(int32 worldStateId) const
static GameObject * ToGameObject(Object *o)
static ObjectGuid GetGUID(Object const *o)
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
TC_GAME_API GameObject * GetGameObject(WorldObject const &u, ObjectGuid const &guid)
TC_GAME_API Player * FindPlayer(ObjectGuid const &)