Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Loading...
Searching...
No Matches
BattlegroundTP.h
Go to the documentation of this file.
1/*
2* This file is part of Project SkyFire https://www.projectskyfire.org.
3* See LICENSE.md file for Copyright information
4*/
5
6#ifndef SF_BATTLEGROUNDTP_H
7#define SF_BATTLEGROUNDTP_H
8
9#include "Battleground.h"
10
19
20
31
32
34{
37 BG_TP_SPELL_HORDE_FLAG_PICKED = 61266, // fake spell, does not exist but used as timer start event
40 BG_TP_SPELL_ALLIANCE_FLAG_PICKED = 61265, // fake spell, does not exist but used as timer start event
43};
44
45
59
60
81
82
98
99
107
108
118
119
128
129
135
136
142
143
144#define TP_EVENT_START_BATTLE 8563
145
146
154
155
157{
158public:
159 /* Construction */
162
163
164 /* inherited from BattlegroundClass */
165 void AddPlayer(Player* player) OVERRIDE;
168
169
170 /* BG Flags */
172 {
173 if (team == TEAM_ALLIANCE || team == TEAM_HORDE)
174 return m_FlagKeepers[team];
175 return 0;
176 }
180 bool IsHordeFlagPickedup() const { return m_FlagKeepers[TEAM_HORDE] != 0; }
181 void RespawnFlag(uint32 Team, bool captured);
184
185
186 /* Battleground Events */
188 void EventPlayerClickedOnFlag(Player* Source, GameObject* target_obj) OVERRIDE;
189 void EventPlayerCapturedFlag(Player* Source);
190
191
192 void RemovePlayer(Player* player, uint64 guid, uint32 team) OVERRIDE;
193 void HandleAreaTrigger(Player* Source, uint32 Trigger) OVERRIDE;
194 void HandleKillPlayer(Player* player, Player* killer) OVERRIDE;
196 void Reset() OVERRIDE;
197 void EndBattleground(uint32 winner);
199
200
201 void UpdateFlagState(uint32 team, uint32 value);
203 void UpdateTeamScore(uint32 team);
204 void UpdatePlayerScore(Player* Source, uint32 type, uint32 value, bool doAddHonor = true) OVERRIDE;
206 {
207 if (team == TEAM_ALLIANCE || team == TEAM_HORDE)
208 m_DroppedFlagGUID[team] = guid;
209 }
210
211
214
215
216 /* Scorekeeping */
220
221
223private:
224 uint64 m_FlagKeepers[2]; // 0 - alliance, 1 - horde
226 uint8 _flagState[2]; // for checking flag state
229 uint32 _lastFlagCaptureTeam; // Winner is based on this if score is equal
230
231
237 uint8 _flagDebuffState; // 0 - no debuffs, 1 - focused assault, 2 - brutal assault
239
240
241 void PostUpdateImpl(uint32 diff) OVERRIDE;
242};
243
244#endif
BG_TP_TimerOrScore
@ BG_TP_FLAG_RESPAWN_TIME
@ BG_TP_SPELL_FORCE_TIME
@ BG_TP_SPELL_BRUTAL_TIME
@ BG_TP_FLAG_DROP_TIME
@ BG_TP_MAX_TEAM_SCORE
BG_TP_CarrierDebuffs
@ TP_SPELL_FOCUSED_ASSAULT
@ TP_SPELL_BRUTAL_ASSAULT
BG_TP_Sound
@ BG_TP_SOUND_ALLIANCE_FLAG_PICKED_UP
@ BG_TP_SOUND_FLAG_PLACED
@ BG_TP_SOUND_FLAG_CAPTURED_HORDE
@ BG_TP_SOUND_HORDE_FLAG_PICKED_UP
@ BG_TP_SOUND_FLAG_CAPTURED_ALLIANCE
@ BG_TP_SOUND_FLAGS_RESPAWNED
@ BG_TP_SOUND_FLAG_RETURNED
BG_TP_Objectives
@ TP_OBJECTIVE_RETURN_FLAG
@ TP_OBJECTIVE_CAPTURE_FLAG
BG_TP_WorldStates
@ BG_TP_STATE_TIMER_ACTIVE
@ BG_TP_FLAG_CAPTURES_MAX
@ BG_TP_FLAG_UNK_HORDE
@ BG_TP_FLAG_STATE_HORDE
@ BG_TP_FLAG_STATE_ALLIANCE
@ BG_TP_FLAG_CAPTURES_HORDE
@ BG_TP_STATE_TIMER
@ BG_TP_FLAG_CAPTURES_ALLIANCE
@ BG_TP_FLAG_UNK_ALLIANCE
BG_TP_ObjectEntry
@ BG_OBJECT_DOOR_H_4_TP_ENTRY
@ BG_OBJECT_DOOR_A_3_TP_ENTRY
@ BG_OBJECT_DOOR_H_2_TP_ENTRY
@ BG_OBJECT_H_FLAG_GROUND_TP_ENTRY
@ BG_OBJECT_DOOR_H_1_TP_ENTRY
@ BG_OBJECT_DOOR_A_1_TP_ENTRY
@ BG_OBJECT_DOOR_A_2_TP_ENTRY
@ BG_OBJECT_H_FLAG_TP_ENTRY
@ BG_OBJECT_A_FLAG_GROUND_TP_ENTRY
@ BG_OBJECT_DOOR_H_3_TP_ENTRY
@ BG_OBJECT_DOOR_A_4_TP_ENTRY
@ BG_OBJECT_A_FLAG_TP_ENTRY
BG_TP_CreatureTypes
@ TP_SPIRIT_HORDE
@ TP_SPIRIT_ALLIANCE
@ BG_CREATURES_MAX_TP
BG_TP_SpellId
@ BG_TP_SPELL_FOCUSED_ASSAULT
@ BG_TP_SPELL_ALLIANCE_FLAG
@ BG_TP_SPELL_HORDE_FLAG_DROPPED
@ BG_TP_SPELL_HORDE_FLAG
@ BG_TP_SPELL_ALLIANCE_FLAG_PICKED
@ BG_TP_SPELL_HORDE_FLAG_PICKED
@ BG_TP_SPELL_ALLIANCE_FLAG_DROPPED
@ BG_TP_SPELL_BRUTAL_ASSAULT
BG_TP_FlagState
@ BG_TP_FLAG_STATE_ON_GROUND
@ BG_TP_FLAG_STATE_WAIT_RESPAWN
@ BG_TP_FLAG_STATE_ON_PLAYER
@ BG_TP_FLAG_STATE_ON_BASE
BG_TP_ObjectTypes
@ BG_TP_OBJECT_DOOR_A_2
@ BG_TP_OBJECT_SPEEDBUFF_2
@ BG_TP_OBJECT_A_FLAG
@ BG_TP_OBJECT_DOOR_A_1
@ BG_TP_OBJECT_DOOR_H_4
@ BG_TP_OBJECT_DOOR_H_1
@ BG_TP_OBJECT_SPEEDBUFF_1
@ BG_TP_OBJECT_DOOR_H_2
@ BG_TP_OBJECT_DOOR_H_3
@ BG_TP_OBJECT_REGENBUFF_1
@ BG_TP_OBJECT_DOOR_A_4
@ BG_TP_OBJECT_MAX
@ BG_TP_OBJECT_DOOR_A_3
@ BG_TP_OBJECT_BERSERKBUFF_1
@ BG_TP_OBJECT_H_FLAG
@ BG_TP_OBJECT_BERSERKBUFF_2
@ BG_TP_OBJECT_REGENBUFF_2
BG_TP_Graveyards
@ TP_GRAVEYARD_MIDDLE_ALLIANCE
@ TP_GRAVEYARD_START_ALLIANCE
@ TP_GRAVEYARD_START_HORDE
@ TP_GRAVEYARD_FLAGROOM_ALLIANCE
@ TP_GRAVEYARD_MIDDLE_HORDE
@ TP_GRAVEYARD_FLAGROOM_HORDE
std::int32_t int32
Definition Define.h:73
std::uint8_t uint8
Definition Define.h:79
std::uint32_t uint32
Definition Define.h:77
#define OVERRIDE
Definition Define.h:60
std::uint64_t uint64
Definition Define.h:76
@ TEAM_ALLIANCE
@ TEAM_HORDE
static TeamId GetTeamIndexByTeamId(uint32 Team)
int32 m_TeamScores[BG_TEAMS_COUNT]
void AddPlayer(Player *player) OVERRIDE
uint32 m_ReputationCapture
void SetDroppedFlagGUID(uint64 guid, int32 team=-1) OVERRIDE
void RespawnFlagAfterDrop(uint32 Team)
uint64 GetFlagPickerGUID(int32 team) const OVERRIDE
void FillInitialWorldStates(WorldStateBuilder &builder) OVERRIDE
void SetLastFlagCapture(uint32 team)
void EventPlayerDroppedFlag(Player *Source) OVERRIDE
void SetHordeFlagPicker(uint64 guid)
void HandleKillPlayer(Player *player, Player *killer) OVERRIDE
uint64 m_FlagKeepers[2]
void RemovePlayer(Player *player, uint64 guid, uint32 team) OVERRIDE
void PostUpdateImpl(uint32 diff) OVERRIDE
Post-update hook.
bool IsAllianceFlagPickedup() const
uint32 _lastFlagCaptureTeam
void Reset() OVERRIDE
void AddPoint(uint32 TeamID, uint32 Points=1)
void UpdatePlayerScore(Player *Source, uint32 type, uint32 value, bool doAddHonor=true) OVERRIDE
void StartingEventCloseDoors() OVERRIDE
uint8 GetFlagState(uint32 team) const
int32 _flagsDropTimer[2]
void RespawnFlag(uint32 Team, bool captured)
uint32 GetPrematureWinner() OVERRIDE
void EndBattleground(uint32 winner)
bool SetupBattleground() OVERRIDE
void SetAllianceFlagPicker(uint64 guid)
void StartingEventOpenDoors() OVERRIDE
bool IsHordeFlagPickedup() const
void RemovePoint(uint32 TeamID, uint32 Points=1)
uint64 m_DroppedFlagGUID[2]
void UpdateTeamScore(uint32 team)
void SetTeamPoint(uint32 TeamID, uint32 Points=0)
void EventPlayerCapturedFlag(Player *Source)
void UpdateFlagState(uint32 team, uint32 value)
WorldSafeLocsEntry const * GetClosestGraveYard(Player *player) OVERRIDE
void EventPlayerClickedOnFlag(Player *Source, GameObject *target_obj) OVERRIDE
void HandleAreaTrigger(Player *Source, uint32 Trigger) OVERRIDE
uint64 GetDroppedFlagGUID(uint32 TeamID) const