105 lines
4.8 KiB
Markdown
105 lines
4.8 KiB
Markdown
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. |
|
|
| | | |
|
|
| | | |
|
|
| | | |
|
|
| | | |
|
|
| | | |
|