diff options
author | Rat <none@none> | 2010-06-03 16:24:10 +0200 |
---|---|---|
committer | Rat <none@none> | 2010-06-03 16:24:10 +0200 |
commit | 2e5edd301b5d1800213f0ceafda5af5dd4e2c0f6 (patch) | |
tree | a29063ae4bddff713dc3eca3321454157bf98145 /src | |
parent | 227cd4d9936c3367b55691d7136d3d862dec6d38 (diff) |
dismount when entering a battleground
use 80 for max level honor bonus calculation
fixed SOTA second round timer
by Gyullo
--HG--
branch : trunk
Diffstat (limited to 'src')
-rw-r--r-- | src/game/BattleGround.cpp | 5 | ||||
-rw-r--r-- | src/game/BattleGroundSA.cpp | 14 | ||||
-rw-r--r-- | src/game/BattleGroundSA.h | 1 |
3 files changed, 15 insertions, 5 deletions
diff --git a/src/game/BattleGround.cpp b/src/game/BattleGround.cpp index 5fd7e7a3f6b..5bfe2e139b6 100644 --- a/src/game/BattleGround.cpp +++ b/src/game/BattleGround.cpp @@ -856,7 +856,8 @@ void BattleGround::EndBattleGround(uint32 winner) uint32 BattleGround::GetBonusHonorFromKill(uint32 kills) const { //variable kills means how many honorable kills you scored (so we need kills * honor_for_one_kill) - return Trinity::Honor::hk_honor_at_level(GetMaxLevel(), kills); + uint32 maxLevel = (GetMaxLevel()<80)?GetMaxLevel():80; + return Trinity::Honor::hk_honor_at_level(maxLevel, kills); } uint32 BattleGround::GetBattlemasterEntry() const @@ -1080,6 +1081,8 @@ void BattleGround::AddPlayer(Player *plr) sBattleGroundMgr.BuildBattleGroundStatusPacket(&status, this, queueSlot, STATUS_IN_PROGRESS, 0, GetStartTime(), GetArenaType()); plr->GetSession()->SendPacket(&status); + plr->RemoveAurasByType(SPELL_AURA_MOUNTED); + // add arena specific auras if (isArena()) { diff --git a/src/game/BattleGroundSA.cpp b/src/game/BattleGroundSA.cpp index 48595dcfa98..429ec07ff83 100644 --- a/src/game/BattleGroundSA.cpp +++ b/src/game/BattleGroundSA.cpp @@ -253,6 +253,7 @@ void BattleGroundSA::Update(uint32 diff) if (status == BG_SA_WARMUP ) { + BG_SA_ENDROUNDTIME = BG_SA_ROUNDLENGTH; if (TotalTime >= BG_SA_WARMUPLENGTH) { TotalTime = 0; @@ -266,6 +267,11 @@ void BattleGroundSA::Update(uint32 diff) } else if (status == BG_SA_SECOND_WARMUP) { + if (RoundScores[0].time<BG_SA_ROUNDLENGTH) + BG_SA_ENDROUNDTIME = RoundScores[0].time; + else + BG_SA_ENDROUNDTIME = BG_SA_ROUNDLENGTH; + if (TotalTime >= 60000) { SendWarningToAll(LANG_BG_SA_HAS_BEGUN); @@ -291,11 +297,11 @@ void BattleGroundSA::Update(uint32 diff) { if (TotalTime >= BG_SA_ROUNDLENGTH) { + RoundScores[0].winner = attackers; RoundScores[0].time = BG_SA_ROUNDLENGTH; TotalTime = 0; status = BG_SA_SECOND_WARMUP; - attackers = (attackers == TEAM_ALLIANCE) ? TEAM_HORDE : TEAM_ALLIANCE; - RoundScores[0].winner = attackers; + attackers = (attackers == TEAM_ALLIANCE) ? TEAM_HORDE : TEAM_ALLIANCE; status = BG_SA_SECOND_WARMUP; ToggleTimer(); ResetObjs(); @@ -304,7 +310,7 @@ void BattleGroundSA::Update(uint32 diff) } else if (status == BG_SA_ROUND_TWO) { - if (TotalTime >= BG_SA_ROUNDLENGTH) + if (TotalTime >= BG_SA_ENDROUNDTIME) { RoundScores[1].time = BG_SA_ROUNDLENGTH; RoundScores[1].winner = (attackers == TEAM_ALLIANCE) ? TEAM_HORDE : TEAM_ALLIANCE; @@ -627,7 +633,7 @@ WorldSafeLocsEntry const* BattleGroundSA::GetClosestGraveYard(Player* player) void BattleGroundSA::SendTime() { - uint32 end_of_round = (BG_SA_ROUNDLENGTH - TotalTime); + uint32 end_of_round = (BG_SA_ENDROUNDTIME - TotalTime); UpdateWorldState(BG_SA_TIMER_MINS, end_of_round/60000); UpdateWorldState(BG_SA_TIMER_SEC_TENS, (end_of_round%60000)/10000); UpdateWorldState(BG_SA_TIMER_SEC_DECS, ((end_of_round%60000)%10000)/1000); diff --git a/src/game/BattleGroundSA.h b/src/game/BattleGroundSA.h index 85f94c01a36..760be3ca02e 100644 --- a/src/game/BattleGroundSA.h +++ b/src/game/BattleGroundSA.h @@ -369,6 +369,7 @@ class BattleGroundSA : public BattleGround void UpdateDemolisherSpawns(); TeamId attackers; uint32 TotalTime; + uint32 BG_SA_ENDROUNDTIME; bool ShipsStarted; BG_SA_GateState GateStatus[6]; BG_SA_Status status; |