32 lines
1.1 KiB
Rust
32 lines
1.1 KiB
Rust
//! 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 },
|
|
}
|