matchmaking: deterministic 15s wait before bots fill empty seats
Both the mock and the .NET server already waited then bot-filled, but used a random 12-18s window. Make it exactly 15s on both sides so the rule is clear: wait 15s for real online players to join, then replace any unfilled seats with bots and start. - client: new MATCH_QUEUE_WAIT_MS = 15000 in gamification.ts; mock beginSearch uses it instead of randInt(12000,18000). - server: GameManager QueueWaitMs = 15000 (was randomized 12-18s per ticket). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -17,12 +17,11 @@ public sealed class Player
|
||||
/// <summary>In-memory matchmaking + room registry. (EF/Postgres persistence is a TODO.)</summary>
|
||||
public sealed class GameManager
|
||||
{
|
||||
// Real players get priority: wait ~15s for humans before bots fill in. The
|
||||
// exact wait is randomized per ticket (12–18s) so the queue doesn't feel
|
||||
// robotically identical every time.
|
||||
private const int QueueWaitMinMs = 12000;
|
||||
private const int QueueWaitMaxMs = 18000;
|
||||
private int NextQueueWaitMs() => _rng.Next(QueueWaitMinMs, QueueWaitMaxMs + 1);
|
||||
// Real players get priority: wait exactly 15s for humans to join; whoever
|
||||
// hasn't joined the table by then is replaced with a bot when the match forms.
|
||||
// (Mirror of MATCH_QUEUE_WAIT_MS on the client — keep both in sync.)
|
||||
private const int QueueWaitMs = 15000;
|
||||
private int NextQueueWaitMs() => QueueWaitMs;
|
||||
|
||||
private static readonly string[] BotNames =
|
||||
{ "آرش", "کیان", "نیلوفر", "سارا", "رضا", "مهسا", "امیر", "پارسا", "الناز", "بابک" };
|
||||
|
||||
Reference in New Issue
Block a user