X-Git-Url: https://git.cworth.org/git?p=lmno.games;a=blobdiff_plain;f=empathy%2Fempathy.jsx;h=39889f7d8d7d16e4aba10f4385d8564931696a57;hp=53d7763c84f7a27643ac5f90b935dd945c601335;hb=78536d0d2b714d5a88dcb67124c2de963c2e316d;hpb=c37a82b05938a9013d0ffd6a4f6d28165393f9d8 diff --git a/empathy/empathy.jsx b/empathy/empathy.jsx index 53d7763..39889f7 100644 --- a/empathy/empathy.jsx +++ b/empathy/empathy.jsx @@ -433,14 +433,34 @@ const PromptOptions = React.memo(props => { const LetsPlay = React.memo(props => { - const quorum = Math.round((props.num_players + 1) / 2); + const quorum = Math.max(0, props.num_players - props.prompts.length); const max_votes = props.prompts.reduce( (max_so_far, v) => Math.max(max_so_far, v.votes.length), 0); - if (max_votes < quorum) - return null; + if (max_votes < quorum) { + let text = `Before we play, we should collect a bit + more information about what category would + be interesting for this group. So, either + type a new category option above, or else`; + if (props.prompts.length) { + if (props.prompts.length > 1) + text += " vote on some of the categories below."; + else + text += " vote on the category below."; + } else { + text += " wait for others to submit, and then vote on them below."; + } + + return ( +
+

+ {text} +

+
+ ); + } - const candidates = props.prompts.filter(p => p.votes.length >= quorum); + const candidates = props.prompts.filter(p => p.votes.length >= max_votes); const index = Math.floor(Math.random() * candidates.length); const winner = candidates[index]; @@ -508,8 +528,11 @@ class Ambiguities extends React.PureComponent { const response = await fetch_post_json( `judged/${this.props.prompt.id}`,{ - word_groups: this.state.word_sets.map(set => Array.from(set)), - kudos: this.state.starred ? Array.from(this.state.starred) : null + word_groups: this.state.word_sets.map( + set => ({ + words: Array.from(set), + kudos: this.state.starred === set ? true : false + })) } ); @@ -1215,12 +1238,22 @@ class Game extends React.PureComponent {