This is a list of all the commands that are available from the client to the server along with the expected response. # Message types ## Client ### Hello Sent during initiali connection phase. ### Query Query information from the server about a specific topic ### Command Request an action to be performed on the server ## Server ### Hello Responses and further queries during the connection phase. Example is asking what faction they want to be. ### Update Response to a query or a command. Examples would be responding to a query of how much money the player has. A response updating the target positon of a ship and it's location. This is also used to provide updates about the game state. There are periodic updates that define where everything should be. This is the type used there. ### Event This is an event that the client did not create or ask for. For example, a battle starting, a building finishing, a planet found. ### Error A response sent when the requested action can not be completed. This is likely to be a frequent response to things like not having enough resources. # Full message definitions For all communication with the server the player you need the player id ## Hello For the hello message neither key is optional for connecting. They are both required. If a new player is created then it does not matter what the faction key is (as long as it is a valid faction) however when connecting an existing player the faction key *must* match the key stored on the server or a connection error will happen. | Domain | Payload keys | Expected response | |:-------|:-------------------|:----------------------------------------------------------------------| | Player | connect: player_id | An update with payload success OR an update with a payload of faction | | | faction: faction | An update to the player (when creating a player) that has the faction | | | | | | | | | ## Queries For queries the keys just need to exist. There are not any values for the payload keys. You can also apply as many keys in a single request as you would like. All parts of the message should be in snake_case. All of the values for the keys may be whatever you wish, they are discarded by the server though. | Domain | Payload keys | Expected response | |:-------|:-------------|--------------------------------------------------------------------| | Game | time | The current game time. | | | size | The current size of the game universe. | | Player | resources | The resources the player has | | | planets | The planets the player can see (All planets owned, and discovered) | | | buildings | The buildings the player has | | | ships | The ships the player has | | | construction | The builds in progress the player has | | | | | | | | | ## Commands This lists the domain and the payload keys required as well as the expected value. | Domain | Payload keys | Expected response | |:-------|:----------------------------------------------------|:-----------------------------------------------| | Game | resign | An update with payload success. | | Player | build: type [tech, building, ship], name: item name | An update with payload success. | | | move: type [ship], name: item\_id | An update with the new target of the item. | | | equip: item\_id, target: item\_id | An update with the stats of the targeted item. | | | | | | | | | | | | | | | | | | | | |