From fe2a4dfa54363430761b7ac1d00fe2471ba366d5 Mon Sep 17 00:00:00 2001 From: Tor Andersson Date: Tue, 29 Apr 2025 00:47:10 +0200 Subject: Use multi-active state. --- rules.js | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/rules.js b/rules.js index a7aa0de..d1a5f2e 100644 --- a/rules.js +++ b/rules.js @@ -305,8 +305,12 @@ function flush_summary(text, add_plural_s=false) { delete game.summary; } +function is_active_player(current) { + return (game.active === current) || (Array.isArray(game.active) && game.active.includes(current)) +} + function is_inactive_player(current) { - return current === "Observer" || (game.active !== current && game.active !== "Both"); + return !is_active_player(current) } function you_may_play(current, list) { @@ -662,11 +666,11 @@ function goto_hand_size() { game.us.queue = []; if (game.tr.queue && game.us.queue) - game.active = "Both"; + game.active = [ TR, US ]; else if (game.tr.queue) - game.active = TR; + game.active = [ TR ]; else if (game.us.queue) - game.active = US; + game.active = [ US ]; else goto_american_play(); } @@ -745,11 +749,11 @@ states.hand_size = { delete game.us.queue; } if (game.tr.queue && game.us.queue) - game.active = "Both"; + game.active = [ TR, US ]; else if (game.tr.queue) - game.active = TR; + game.active = [ TR ]; else if (game.us.queue) - game.active = US; + game.active = [ US ]; else goto_american_play(); }, -- cgit v1.2.3