Warsong Gulch: In tie case last captured flag decides instead of first
Patch by manisamja Closes issue #2925 --HG-- branch : trunk
This commit is contained in:
@@ -83,8 +83,8 @@ void BattleGroundWS::Update(uint32 diff)
|
|||||||
else if (GetTeamScore(HORDE) == 0)
|
else if (GetTeamScore(HORDE) == 0)
|
||||||
EndBattleGround(ALLIANCE); // Alliance has > 0, Horde has 0, alliance wins
|
EndBattleGround(ALLIANCE); // Alliance has > 0, Horde has 0, alliance wins
|
||||||
|
|
||||||
else if (GetTeamScore(HORDE) == GetTeamScore(ALLIANCE)) // Team score equal, winner is team that scored the first flag
|
else if (GetTeamScore(HORDE) == GetTeamScore(ALLIANCE)) // Team score equal, winner is team that scored the last flag
|
||||||
EndBattleGround(m_FirstFlagCaptureTeam);
|
EndBattleGround(m_LastFlagCaptureTeam);
|
||||||
|
|
||||||
else if (GetTeamScore(HORDE) > GetTeamScore(ALLIANCE)) // Last but not least, check who has the higher score
|
else if (GetTeamScore(HORDE) > GetTeamScore(ALLIANCE)) // Last but not least, check who has the higher score
|
||||||
EndBattleGround(HORDE);
|
EndBattleGround(HORDE);
|
||||||
@@ -325,8 +325,8 @@ void BattleGroundWS::EventPlayerCapturedFlag(Player *Source)
|
|||||||
// only flag capture should be updated
|
// only flag capture should be updated
|
||||||
UpdatePlayerScore(Source, SCORE_FLAG_CAPTURES, 1); // +1 flag captures
|
UpdatePlayerScore(Source, SCORE_FLAG_CAPTURES, 1); // +1 flag captures
|
||||||
|
|
||||||
if (!m_FirstFlagCaptureTeam)
|
// update last flag capture to be used if teamscore is equal
|
||||||
SetFirstFlagCapture(Source->GetTeam());
|
SetLastFlagCapture(Source->GetTeam());
|
||||||
|
|
||||||
if (GetTeamScore(ALLIANCE) == BG_WS_MAX_TEAM_SCORE)
|
if (GetTeamScore(ALLIANCE) == BG_WS_MAX_TEAM_SCORE)
|
||||||
winner = ALLIANCE;
|
winner = ALLIANCE;
|
||||||
@@ -720,7 +720,7 @@ void BattleGroundWS::Reset()
|
|||||||
m_HonorEndKills = (isBGWeekend) ? 4 : 2;
|
m_HonorEndKills = (isBGWeekend) ? 4 : 2;
|
||||||
// For WorldState
|
// For WorldState
|
||||||
m_minutesElapsed = 0;
|
m_minutesElapsed = 0;
|
||||||
m_FirstFlagCaptureTeam = 0;
|
m_LastFlagCaptureTeam = 0;
|
||||||
|
|
||||||
/* Spirit nodes is static at this BG and then not required deleting at BG reset.
|
/* Spirit nodes is static at this BG and then not required deleting at BG reset.
|
||||||
if (m_BgCreatures[WS_SPIRIT_MAIN_ALLIANCE])
|
if (m_BgCreatures[WS_SPIRIT_MAIN_ALLIANCE])
|
||||||
|
|||||||
@@ -191,7 +191,7 @@ class BattleGroundWS : public BattleGround
|
|||||||
virtual WorldSafeLocsEntry const* GetClosestGraveYard(Player* player);
|
virtual WorldSafeLocsEntry const* GetClosestGraveYard(Player* player);
|
||||||
|
|
||||||
void UpdateFlagState(uint32 team, uint32 value);
|
void UpdateFlagState(uint32 team, uint32 value);
|
||||||
void SetFirstFlagCapture(uint32 team) { m_FirstFlagCaptureTeam = team; }
|
void SetLastFlagCapture(uint32 team) { m_LastFlagCaptureTeam = team; }
|
||||||
void UpdateTeamScore(uint32 team);
|
void UpdateTeamScore(uint32 team);
|
||||||
void UpdatePlayerScore(Player *Source, uint32 type, uint32 value, bool doAddHonor = true);
|
void UpdatePlayerScore(Player *Source, uint32 type, uint32 value, bool doAddHonor = true);
|
||||||
void SetDroppedFlagGUID(uint64 guid, uint32 TeamID) { m_DroppedFlagGUID[GetTeamIndexByTeamId(TeamID)] = guid;}
|
void SetDroppedFlagGUID(uint64 guid, uint32 TeamID) { m_DroppedFlagGUID[GetTeamIndexByTeamId(TeamID)] = guid;}
|
||||||
@@ -209,7 +209,7 @@ class BattleGroundWS : public BattleGround
|
|||||||
uint8 m_FlagState[2]; // for checking flag state
|
uint8 m_FlagState[2]; // for checking flag state
|
||||||
int32 m_FlagsTimer[2];
|
int32 m_FlagsTimer[2];
|
||||||
int32 m_FlagsDropTimer[2];
|
int32 m_FlagsDropTimer[2];
|
||||||
uint32 m_FirstFlagCaptureTeam; // Winner is based on this if score is equal
|
uint32 m_LastFlagCaptureTeam; // Winner is based on this if score is equal
|
||||||
|
|
||||||
uint32 m_ReputationCapture;
|
uint32 m_ReputationCapture;
|
||||||
uint32 m_HonorWinKills;
|
uint32 m_HonorWinKills;
|
||||||
|
|||||||
Reference in New Issue
Block a user