Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 12 additions & 4 deletions ZkLobbyServer/ServerBattle.cs
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ public class ServerBattle : Battle
public const int MapVoteTime = 25;
public const int NumberOfMapChoices = 4;
public const int MinimumAutostartPlayers = 6;
public const int PrevBattleQueueOffset = 100000;
public static int BattleCounter;
public int QueueCounter = 0;

Expand Down Expand Up @@ -1064,7 +1065,7 @@ public virtual void ValidateBattleStatus(UserBattleStatus ubs)
if (ubs.QueueOrder <= 0)
{
ubs.QueueOrder = ++QueueCounter;
if (IsInPreviousGame(ubs.Name)) ubs.QueueOrder += 100000;
if (IsInPreviousGame(ubs.Name)) ubs.QueueOrder += PrevBattleQueueOffset;
}
}
else
Expand Down Expand Up @@ -1134,17 +1135,24 @@ protected virtual async Task OnDedicatedExited(SpringBattleContext springBattleC
//Initiate discussion time, then map vote, then start vote
discussionTimer.Interval = (DiscussionSeconds - 1) * 1000;
discussionTimer.Start();
foreach (var n in previousGamePlayers)
{
UserBattleStatus ubs;
if (Users.TryGetValue(n, out ubs))
{
if (ubs.QueueOrder > QueueCounter + PrevBattleQueueOffset/2) ubs.QueueOrder -= PrevBattleQueueOffset;
}
}
previousGamePlayers = springBattleContext.ActualPlayers.Where(x => !x.IsSpectator).Select(x => x.Name).ToList();
foreach (var n in previousGamePlayers)
{
UserBattleStatus ubs;
if (Users.TryGetValue(n, out ubs))
{
ubs.QueueOrder = -1;
ValidateBattleStatus(ubs);
await server.Broadcast(Users.Keys, ubs.ToUpdateBattleStatus());
if (ubs.QueueOrder > 0 && ubs.QueueOrder < QueueCounter + PrevBattleQueueOffset/2) ubs.QueueOrder += PrevBattleQueueOffset;
}
}
await ValidateAllBattleStatuses();
}
}
await CheckCloseBattle();
Expand Down
Loading