add initial design notes

This commit is contained in:
Peter Hart 2020-05-02 20:54:38 -04:00
parent 746701cfbf
commit 0c191fb691

218
DESIGN.org Normal file
View File

@ -0,0 +1,218 @@
#+TITLE: Design Notes
* Messages
** State Update
*** Start Game State
#+BEGIN_SRC json
{
"state": "BEGIN_GAME",
"players": {"name":{},"name2":{}}
}
#+END_SRC
*** Ready To Play
#+BEGIN_SRC json
{
"state":"READY_TO_PLAY",
"players": {"name":{},"name2":{}}
}
#+END_SRC
*** Text Prompting
#+BEGIN_SRC json
{
"state":"TEXT_PROMPT",
"players": {"name":{"complete": false},"name2":{"complete":true}},
"initialPromptId":"id goes here",
"answerId":"",
"prompt": "text prompt here"
}
#+END_SRC
*** Drawing Prompting
#+BEGIN_SRC json
{
"state":"IMAGE_PROMPT",
"players": {"name":{"complete": false},"name2":{"complete":true}},
"initialPromptId":"id goes here",
"answerId":"",
"url": "image.png"
}
#+END_SRC
*** Showing Prompts
#+BEGIN_SRC json
{
"state":"RESULTS",
"initialPlayer":"name",
"initialPrompt":"text prompt",
"player":"name",
"type":"image|text",
"text": "text goes here",
"url":"image.png",
"initialPromptId":"id goes here",
"answerId":"",
"reactions":{"name":""}
}
#+END_SRC
** Client Actions
*** Join Game
#+BEGIN_SRC json
{
"action":"JOIN",
"playerName":"name"
}
#+END_SRC
*** Start Game
Person who starts the game is the 'leader'
#+BEGIN_SRC json
{
"action":"START",
"player":"name"
}
#+END_SRC
*** Reconnect As Player
Allows reconnnection of a previously connected player.
#+BEGIN_SRC json
{
"action":"RECONNECT",
"playerName":"name"
}
#+END_SRC
*** Reconnect As Player
Allows reconnnection of a previously connected player.
#+BEGIN_SRC json
{
"action":"RECONNECT",
"playerName":"name"
}
#+END_SRC
*** Disconnect a player
This is hopefully detected automatically, and the game will just automatically remove them from play for the next round,
and treat them as skippable in this game.
*** Reconnect As Player
Allows reconnnection of a previously connected player (who has not been dropped)
#+BEGIN_SRC json
{
"action":"RECONNECT",
"playerName":"name"
}
#+END_SRC
*** Drop a Player
Drops a disconnected player from the game (permanently), leader only.
#+BEGIN_SRC json
{
"action":"DROP_PLAYER",
"player":"name"
}
#+END_SRC
*** Text Prompt Answer
#+BEGIN_SRC json
{
"action":"TEXT_PROMPT_ANSWER",
"player":"name",
"imageData":"data:image/png;base64,..."
}
#+END_SRC
*** Image Prompt Answer
#+BEGIN_SRC json
{
"action":"IMAGE_PROMPT_ANSWER",
"player":"name",
"text":"answer text here"
}
#+END_SRC
*** Skip Player
If a player has disconnected, they can be skipped in this round, and the next player will get their prompt,
and once they've completed it, we'll continue the game as before. Can only be sent by current leader.
#+BEGIN_SRC json
{
"action":"SKIP_PLAYER",
"player":"name"
}
#+END_SRC
*** Show Next Answer
#+BEGIN_SRC json
{
"action":"NEXT_ANSWER",
"player":"name"
}
#+END_SRC
*** Show Previous Answer
#+BEGIN_SRC json
{
"action":"PREVIOUS_ANSWER",
"player":"name"
}
#+END_SRC
*** Reaction To Answer
* possible reactions are:
- Like
- LOL
- Thumbs Down
- Man Facepalming
- Woman Facepalming
points gained for most Likes, most LOLs, most negative reactions (thumbs down/facepalm), and most reactions
You cannot react to your own response to a prompt, each player can only have one reaction to any given answer.
#+BEGIN_SRC json
{
"action":"REACT",
"reaction":"LIKE",
"initialPromptId":"",
"answerId":"",
"player":"name"
}
#+END_SRC
*** Next Player
#+BEGIN_SRC json
{
"action":"NEXT_PLAYER",
"player":"name"
}
#+END_SRC