diff options
author | Tor Andersson <tor@ccxvii.net> | 2025-04-29 00:47:10 +0200 |
---|---|---|
committer | Tor Andersson <tor@ccxvii.net> | 2025-04-29 00:47:10 +0200 |
commit | fe2a4dfa54363430761b7ac1d00fe2471ba366d5 (patch) | |
tree | bffccc04e95b9377d718d5088d90f59f5a074234 /rules.js | |
parent | 26827b4dc6aa0a1c1c8d4e26f5d5e1ff32622cef (diff) | |
download | shores-of-tripoli-fe2a4dfa54363430761b7ac1d00fe2471ba366d5.tar.gz |
Use multi-active state.
Diffstat (limited to 'rules.js')
-rw-r--r-- | rules.js | 18 |
1 files changed, 11 insertions, 7 deletions
@@ -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(); }, |