Making it easier to share co-located Twilight Imperium 4 boardgame sessions and improving them with a real-time board for Public Objectives and Victory Points counter
Let people who want to play a game together draft factions in a distributed way.
Let's assume that the player creating the session is called GM, we want to allow this flow:
GM goes to create a session, selects 'blind draft' and creates the session in 'draft' state
he chooses the number of players and which factions should be available in draft (and other config options)
he starts the session (in draft stage)
the application generates unique links for each player for draft phase
the GM distributes the unique links between their players
we now enter BAN phase
the application rotates through all players, shows them the faction pool and allows them B bans
once all users banned their B factions, we enter PICK phase
each player is assigned a random subset of (faction pool \ banned factions) of the same size
players pick one faction (simultaneously, blindly)
after all factions where picked, each player should see the results
other players bans, pick pool and picks
we enter SEATING phase
at this point GM can reorder/randomize player order and assign/randomly assign speaker
once that's done, GM can "finish" the draft and the session goes to the 'in progress' state (with selected factions, all factions at 0 VP, no objectives etc)
additional criteria:
the application should 'soft lock' - meaning that if you've already visited one of the generated links, you should not be able to access the others (this, of course, could be circumvented by going into incognito, but we assume the GM is well-meaning)
each unique link should show only "your" pick bool, ban history and picked faction
if another player has picked a faction, you can only see "picked" indicator, you cannot see their picked faction or their pick pool
once everybody has picked (SEATING phase), all information becomes public
Objective:
Let people who want to play a game together draft factions in a distributed way.
Let's assume that the player creating the session is called GM, we want to allow this flow:
additional criteria: