]> git.cworth.org Git - lmno-api/blobdiff - api.text
Update the game-state event and increment protocol to version 0.5
[lmno-api] / api.text
index 48a2eb6b072c499795d0d81a9451ce59ff37ee01..b1a8f798175a7e89d644c2165a8225c7ff75a62c 100644 (file)
--- a/api.text
+++ b/api.text
@@ -1,5 +1,11 @@
-Gameplay API endpoints (within a current game)
-==============================================
+Empires Game Protocol
+=====================
+Version: 0.5
+
+For a specific game the following API endpoints are defined.
+(Note: Only the trailing portion of the API URI is provided here.
+ The preceding portions of the path must be determined externally.)
+
 /events
 
     This is a server-sent events stream that allows the server to push
@@ -43,6 +49,35 @@ Gameplay API endpoints (within a current game)
                event: player-leave
                data: {"id":3}
 
+       TYPE: game-state
+
+       WHEN: When client first connects and whenever game state changes
+
+       VALUES: Event gives both the old and new state. Game state
+               Each will be one of the following:
+
+               none: Pseudo-state used as old_state when game is started
+               join: Players are choosing characters and joining the game
+                reveal: Character names are being revealed to players
+                capture: Players are guessing characters in capture attempts
+
+       EXAMPLES:
+
+               event: game-state
+                data: {"old_state":"none","new_state":"join"}
+
+               event: game-state
+                data: {"old_state":"join","new_state":"reveal"}
+
+       TYPE: character-reveal
+
+       WHEN: Periodically during the "reveal" state of the game
+
+       EXAMPLE:
+
+               event: character-reveal
+                data: {"character":"Albert Einstein"}
+
        TYPE: capture
 
        WHEN: When one player captures another
@@ -66,6 +101,22 @@ Gameplay API endpoints (within a current game)
 
     Behavior: Removes an existing player with the given ID
 
+/reveal
+
+    Method: POST
+
+    When: Only valid when in game state of JOIN
+
+    Behavior: Change state to REVEAL; reveal character names to all clienta
+
+/start
+
+    Method: POST
+
+    When: Only valid when in game state of REVEAL
+
+    Behavior: Change game state to CAPTURE
+
 /reset
 
     Method: POST