werewolves/werewolves-proto/src/message.rs

58 lines
1.1 KiB
Rust
Raw Normal View History

pub mod host;
mod ident;
pub mod night;
2025-10-03 00:00:39 +01:00
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),
}