initial commit
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
//! Netzwerkprotokoll für die Multiplayer-Synchronisation (siehe PLAN.md, Phase 2).
|
||||
//!
|
||||
//! Die eigentliche WebSocket-Anbindung (Server + Client) ist noch nicht
|
||||
//! implementiert; dies definiert vorerst nur den Nachrichten-Vertrag,
|
||||
//! damit `core::logic` und die künftige Transportschicht entkoppelt bleiben.
|
||||
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
use crate::core::logic::card::Card;
|
||||
|
||||
/// Nachrichten, die ein Client an den Server schickt.
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
pub enum ClientMessage {
|
||||
JoinTable { player_name: String },
|
||||
Fold,
|
||||
Check,
|
||||
Call { amount: u64 },
|
||||
Raise { amount: u64 },
|
||||
}
|
||||
|
||||
/// Nachrichten, die der Server an alle Clients eines Tisches broadcastet.
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
pub enum ServerMessage {
|
||||
PlayerJoined { player_id: u32, name: String },
|
||||
HoleCardsDealt { player_id: u32, cards: Vec<Card> },
|
||||
CommunityCardsRevealed { cards: Vec<Card> },
|
||||
PotUpdated { pot: u64 },
|
||||
PlayerActed { player_id: u32, description: String },
|
||||
RoundChanged { round: String },
|
||||
Showdown { winner_id: u32 },
|
||||
}
|
||||
Reference in New Issue
Block a user