58 lines
1.1 KiB
Rust
58 lines
1.1 KiB
Rust
pub mod host;
|
|
mod ident;
|
|
pub mod night;
|
|
|
|
use core::num::NonZeroU8;
|
|
|
|
pub use ident::*;
|
|
use serde::{Deserialize, Serialize};
|
|
|
|
use crate::{character::CharacterId, game::GameOver, role::RoleTitle};
|
|
|
|
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
|
|
pub enum ClientMessage {
|
|
Hello,
|
|
Goodbye,
|
|
GetState,
|
|
RoleAck,
|
|
UpdateSelf(UpdateSelf),
|
|
}
|
|
|
|
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
|
|
pub enum UpdateSelf {
|
|
Name(String),
|
|
Number(NonZeroU8),
|
|
Pronouns(Option<String>),
|
|
}
|
|
|
|
#[derive(Debug, Clone, Serialize, Deserialize)]
|
|
pub struct DayCharacter {
|
|
pub character_id: CharacterId,
|
|
pub name: String,
|
|
pub alive: bool,
|
|
}
|
|
|
|
#[derive(Debug, Clone, Serialize, Deserialize)]
|
|
pub enum ServerMessage {
|
|
Disconnect,
|
|
LobbyInfo {
|
|
joined: bool,
|
|
players: Box<[PublicIdentity]>,
|
|
},
|
|
GameInProgress,
|
|
GameStart {
|
|
role: RoleTitle,
|
|
},
|
|
InvalidMessageForGameState,
|
|
NoSuchTarget,
|
|
GameOver(GameOver),
|
|
Update(PlayerUpdate),
|
|
Sleep,
|
|
Reset,
|
|
}
|
|
|
|
#[derive(Debug, Clone, Serialize, Deserialize)]
|
|
pub enum PlayerUpdate {
|
|
Number(NonZeroU8),
|
|
}
|