werewolves/werewolves-proto/src/message.rs

63 lines
1.2 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};
2025-10-17 22:03:28 +01:00
use crate::{
character::CharacterId,
game::{GameOver, story::GameStory},
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),
2025-10-17 22:03:28 +01:00
Story(GameStory),
Update(PlayerUpdate),
Sleep,
Reset,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum PlayerUpdate {
Number(NonZeroU8),
}