Delay player hand creation at the beginning of the game
This commit is contained in:
@@ -2,19 +2,32 @@ use crate::types::{Position2dRef, TileRef};
|
||||
use board_shared::{position::Position2d, tile::Tile};
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
/// A message sent by the client to the server.
|
||||
#[derive(Debug, Deserialize, Serialize)]
|
||||
pub enum ClientMessage {
|
||||
/// Creates a new room and join it with the given player name.
|
||||
///
|
||||
/// The server answers with a JoinedRoom message.
|
||||
CreateRoom(String),
|
||||
/// Join an existing room with the given room name and player name.
|
||||
///
|
||||
/// The server answers with a JoinedRoom message.
|
||||
JoinRoom(String, String),
|
||||
/// Notify that the client has temporary left the game.
|
||||
Disconnected,
|
||||
/// Start the game if the client has the permission.
|
||||
StartGame,
|
||||
/// Try to place a tile from the hand on the board.
|
||||
///
|
||||
/// The server will validate the move and answer with a TilePlaced if the message is valid.
|
||||
TileUse(#[serde(with = "Position2dRef")] Position2d, usize),
|
||||
TileTake(usize),
|
||||
/// Try to remove a tile from the board to add it to the hand.
|
||||
TileTake(#[serde(with = "Position2dRef")] Position2d),
|
||||
/// Get the server to validate the current player moves.
|
||||
Validate,
|
||||
}
|
||||
|
||||
/// A message sent by the server to the client.
|
||||
#[derive(Clone, Debug, Deserialize, Serialize)]
|
||||
pub enum ServerMessage {
|
||||
/// Informs that a room has been joined.
|
||||
@@ -23,6 +36,7 @@ pub enum ServerMessage {
|
||||
players: Vec<(String, u32, bool)>,
|
||||
active_player: usize,
|
||||
},
|
||||
/// Notify that the room cannot be joined.
|
||||
JoinFailed(String),
|
||||
/// Notify that new player has joined the game.
|
||||
PlayerConnected(String),
|
||||
|
Reference in New Issue
Block a user