]> git.cworth.org Git - lmno-todo/blobdiff - TODO
nogit-sync commit
[lmno-todo] / TODO
diff --git a/TODO b/TODO
index 04a2bb84b1151eafe666c1a59a0c126a3c29a455..a96ab17d32226b992b6537016b6b6afa246e282c 100644 (file)
--- a/TODO
+++ b/TODO
@@ -1,6 +1,17 @@
+Ordered list (repeating some of the below)
+-----------------------------------------
+
+1. Fix empathy bug with rejoining (Andrew as Zombie)
+
+2. Finish implementing Empires
+
 Empathy
 =======
 
 Empathy
 =======
 
+Allow players to see what their current name is (currently
+disappearining among the list which is sorted by overall score) and to
+change their name if desired.
+
 Fix bug Andrew saw where he went into a Zombie mode: He left the game,
 and came back. When he was back his word scores were shown, but his
 name was left off the round scores, stayed gray in the overall scores,
 Fix bug Andrew saw where he went into a Zombie mode: He left the game,
 and came back. When he was back his word scores were shown, but his
 name was left off the round scores, stayed gray in the overall scores,
@@ -52,6 +63,89 @@ no history beyond a single message per sender)
 
 Fix bug that allows people to re-reveal characters after game has started.
 
 
 Fix bug that allows people to re-reveal characters after game has started.
 
+Flempires (flutter-based client)
+--------------------------------
+
+Bring client up to latest Empires API approach
+
+  [🗸] Pre-allocate a game ID in the server for flempires to use (QRST, say)
+
+  [ ] Change flempires from using https://families.cworth.org/api to
+      instead use https://lmno.games/empires/QRST
+
+  [ ] Add UI to ask user for a game ID, (obviating the QRST ID)
+
+  [ ] Add UI to generate a new game ID, (allow flempires to work on its own)
+      Example:
+                curl -X POST https://lmno.games/new/empires
+                Returns: "WLJG"
+
+  [ ] Implement player registration by POSTing to /register (without cookie)
+      Example:
+                curl -X POST \
+                     -H 'Content-Type: application/json' \
+                     -d '{"name": "Carl", "character": "Elvis"}' \
+                     https://lmno.games/empires/QRST/register
+                Returns: 1 (Or some other player ID value)
+
+  [ ] Implement registration with /profile and then /register
+
+      Note: This approach requires obtaining a cookie from the
+      /profile request and then providing that cookie on the
+      subsequent /register request. The -c and -b command-line options
+      of curl can be used to demonstrate this:
+
+      Example:
+                curl -c cookie-file \
+                     -X PUT \
+                     -H 'Content-Type: application/json' \
+                     -d '{"nickname": "Cookie"}' \
+                     https://lmno.games/profile
+                curl -b cookie-file \
+                     -X POST \
+                     -H 'Content-Type: application/json' \
+                     -d '{"character": "Cookie Monster"}'
+                     https://lmno.games/empires/QRST/register
+                Returns: 2 (Or some other player ID value)
+
+  [ ] Listen to the /events stream for the game
+
+      This will require an asynchronous mechanism that is continually
+      listening for events to come in. Events will be of the form
+      "event: <event_type>" followed by the data of the event "data:
+      <json_data_for_event>" followed by a blank line. There will also
+      be periodic keep-alive non-events sent which are just a line
+      with only a ":".
+
+      This mechanism is called "Server-sent events" so you may find
+      code that supports the parsing of this. Or you may not. It
+      doesn't seem like this mechanism ever became all that popular
+      (before websockets came along and became popular).
+
+      Example:
+
+                curl https://lmno.games/empires/QRST/events
+                Returns:
+
+                   event: game-info
+                   data: {"id":"QRST","url":"http://lmno.games/QRST"}
+
+                   event: player-info
+                   data: {"id":5,"active":true,"name":"Cookie","team":""}
+
+                   event: player-enter
+                   data: {"id":2,"active":true,"name":"Web","team":""}
+
+                   event: game-state
+                   data: {"team_to_play":{"name":""}}
+
+                   event: players
+                   data: [{"id":1,"name":"Carl"},{"id":2,"name":"Cookie"}]
+
+                   event: game-phase
+                   data: {"old_phase":"none","new_phase":"join"}
+
+
 Scribe
 ======
 
 Scribe
 ======
 
@@ -69,4 +163,4 @@ Detect glyphs and highlight background of squares belonging to glyphs
 
 Detect winner of mini-grid and overlay sumbol of player on mini-grid
 
 
 Detect winner of mini-grid and overlay sumbol of player on mini-grid
 
-Declare overall winner (both in "majority" and "superglyph" mode)
\ No newline at end of file
+Declare overall winner (both in "majority" and "superglyph" mode)