Add support to time remaining display in WSG
--HG-- branch : trunk
This commit is contained in:
@@ -91,6 +91,11 @@ void BattleGroundWS::Update(uint32 diff)
|
|||||||
else
|
else
|
||||||
EndBattleGround(ALLIANCE);
|
EndBattleGround(ALLIANCE);
|
||||||
}
|
}
|
||||||
|
else if (GetStartTime() > m_minutesElapsed*MINUTE*IN_MILISECONDS)
|
||||||
|
{
|
||||||
|
++m_minutesElapsed;
|
||||||
|
UpdateWorldState(BG_WS_STATE_TIMER, 25-m_minutesElapsed);
|
||||||
|
}
|
||||||
|
|
||||||
if (m_FlagState[BG_TEAM_ALLIANCE] == BG_WS_FLAG_STATE_WAIT_RESPAWN)
|
if (m_FlagState[BG_TEAM_ALLIANCE] == BG_WS_FLAG_STATE_WAIT_RESPAWN)
|
||||||
{
|
{
|
||||||
@@ -177,6 +182,9 @@ void BattleGroundWS::StartingEventCloseDoors()
|
|||||||
}
|
}
|
||||||
for (uint32 i = BG_WS_OBJECT_A_FLAG; i <= BG_WS_OBJECT_BERSERKBUFF_2; ++i)
|
for (uint32 i = BG_WS_OBJECT_A_FLAG; i <= BG_WS_OBJECT_BERSERKBUFF_2; ++i)
|
||||||
SpawnBGObject(i, RESPAWN_ONE_DAY);
|
SpawnBGObject(i, RESPAWN_ONE_DAY);
|
||||||
|
|
||||||
|
UpdateWorldState(BG_WS_STATE_TIMER_ACTIVE, 1);
|
||||||
|
UpdateWorldState(BG_WS_STATE_TIMER, 25);
|
||||||
}
|
}
|
||||||
|
|
||||||
void BattleGroundWS::StartingEventOpenDoors()
|
void BattleGroundWS::StartingEventOpenDoors()
|
||||||
@@ -332,6 +340,7 @@ void BattleGroundWS::EventPlayerCapturedFlag(Player *Source)
|
|||||||
UpdateWorldState(BG_WS_FLAG_UNK_HORDE, 0);
|
UpdateWorldState(BG_WS_FLAG_UNK_HORDE, 0);
|
||||||
UpdateWorldState(BG_WS_FLAG_STATE_ALLIANCE, 1);
|
UpdateWorldState(BG_WS_FLAG_STATE_ALLIANCE, 1);
|
||||||
UpdateWorldState(BG_WS_FLAG_STATE_HORDE, 1);
|
UpdateWorldState(BG_WS_FLAG_STATE_HORDE, 1);
|
||||||
|
UpdateWorldState(BG_WS_STATE_TIMER_ACTIVE, 0);
|
||||||
|
|
||||||
RewardHonorToTeam(BG_WSG_Honor[m_HonorMode][BG_WSG_WIN], winner);
|
RewardHonorToTeam(BG_WSG_Honor[m_HonorMode][BG_WSG_WIN], winner);
|
||||||
EndBattleGround(winner);
|
EndBattleGround(winner);
|
||||||
@@ -709,6 +718,8 @@ void BattleGroundWS::Reset()
|
|||||||
m_ReputationCapture = (isBGWeekend) ? 45 : 35;
|
m_ReputationCapture = (isBGWeekend) ? 45 : 35;
|
||||||
m_HonorWinKills = (isBGWeekend) ? 3 : 1;
|
m_HonorWinKills = (isBGWeekend) ? 3 : 1;
|
||||||
m_HonorEndKills = (isBGWeekend) ? 4 : 2;
|
m_HonorEndKills = (isBGWeekend) ? 4 : 2;
|
||||||
|
// For WorldState
|
||||||
|
m_minutesElapsed = 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])
|
||||||
@@ -807,6 +818,14 @@ void BattleGroundWS::FillInitialWorldStates(WorldPacket& data)
|
|||||||
|
|
||||||
data << uint32(BG_WS_FLAG_CAPTURES_MAX) << uint32(BG_WS_MAX_TEAM_SCORE);
|
data << uint32(BG_WS_FLAG_CAPTURES_MAX) << uint32(BG_WS_MAX_TEAM_SCORE);
|
||||||
|
|
||||||
|
if (GetStatus() == STATUS_IN_PROGRESS)
|
||||||
|
{
|
||||||
|
data << uint32(BG_WS_STATE_TIMER_ACTIVE) << uint32(1);
|
||||||
|
data << uint32(BG_WS_STATE_TIMER) << uint32(25-m_minutesElapsed);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
data << uint32(BG_WS_STATE_TIMER_ACTIVE) << uint32(0);
|
||||||
|
|
||||||
if (m_FlagState[BG_TEAM_HORDE] == BG_WS_FLAG_STATE_ON_PLAYER)
|
if (m_FlagState[BG_TEAM_HORDE] == BG_WS_FLAG_STATE_ON_PLAYER)
|
||||||
data << uint32(BG_WS_FLAG_STATE_ALLIANCE) << uint32(2);
|
data << uint32(BG_WS_FLAG_STATE_ALLIANCE) << uint32(2);
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -62,7 +62,9 @@ enum BG_WS_WorldStates
|
|||||||
BG_WS_FLAG_CAPTURES_HORDE = 1582,
|
BG_WS_FLAG_CAPTURES_HORDE = 1582,
|
||||||
BG_WS_FLAG_CAPTURES_MAX = 1601,
|
BG_WS_FLAG_CAPTURES_MAX = 1601,
|
||||||
BG_WS_FLAG_STATE_HORDE = 2338,
|
BG_WS_FLAG_STATE_HORDE = 2338,
|
||||||
BG_WS_FLAG_STATE_ALLIANCE = 2339
|
BG_WS_FLAG_STATE_ALLIANCE = 2339,
|
||||||
|
BG_WS_STATE_TIMER = 4248,
|
||||||
|
BG_WS_STATE_TIMER_ACTIVE = 4247
|
||||||
};
|
};
|
||||||
|
|
||||||
enum BG_WS_ObjectTypes
|
enum BG_WS_ObjectTypes
|
||||||
@@ -215,6 +217,7 @@ class BattleGroundWS : public BattleGround
|
|||||||
int32 m_FlagSpellForceTimer;
|
int32 m_FlagSpellForceTimer;
|
||||||
bool m_BothFlagsKept;
|
bool m_BothFlagsKept;
|
||||||
uint8 m_FlagDebuffState; // 0 - no debuffs, 1 - focused assault, 2 - brutal assault
|
uint8 m_FlagDebuffState; // 0 - no debuffs, 1 - focused assault, 2 - brutal assault
|
||||||
|
uint8 m_minutesElapsed;
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user