mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-19 00:48:56 +01:00
dismount when entering a battleground
use 80 for max level honor bonus calculation fixed SOTA second round timer by Gyullo --HG-- branch : trunk
This commit is contained in:
@@ -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())
|
||||
{
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user