diff options
author | metamuffin <metamuffin@disroot.org> | 2024-09-18 12:51:07 +0200 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2024-09-18 12:51:07 +0200 |
commit | 2dfc7e9192d0c0076ba61c022d8f753469086fe0 (patch) | |
tree | 990af15ceff027a86f3d22af9b0cb5d33ef177a6 /server | |
parent | 473bc7993aae7b08132e18558c7fe52de6888f30 (diff) | |
download | hurrycurry-2dfc7e9192d0c0076ba61c022d8f753469086fe0.tar hurrycurry-2dfc7e9192d0c0076ba61c022d8f753469086fe0.tar.bz2 hurrycurry-2dfc7e9192d0c0076ba61c022d8f753469086fe0.tar.zst |
make effect its own packet
Diffstat (limited to 'server')
-rw-r--r-- | server/bot/src/algos/customer.rs | 14 | ||||
-rw-r--r-- | server/protocol/src/lib.rs | 23 | ||||
-rw-r--r-- | server/src/commands.rs | 8 | ||||
-rw-r--r-- | server/src/server.rs | 3 | ||||
-rw-r--r-- | server/src/state.rs | 1 |
5 files changed, 27 insertions, 22 deletions
diff --git a/server/bot/src/algos/customer.rs b/server/bot/src/algos/customer.rs index 1b1315c6..6ac4d599 100644 --- a/server/bot/src/algos/customer.rs +++ b/server/bot/src/algos/customer.rs @@ -24,8 +24,7 @@ use hurrycurry_protocol::{glam::IVec2, DemandIndex, Message, PacketS, PlayerID, use log::info; use rand::{random, seq::IndexedRandom, thread_rng}; -#[derive(Debug, Clone)] -#[derive(Default)] +#[derive(Debug, Clone, Default)] pub enum Customer { #[default] New, @@ -52,7 +51,6 @@ pub enum Customer { }, } - impl BotAlgo for Customer { fn tick(&mut self, me: PlayerID, game: &Game, dt: f32) -> BotInput { let Some(playerdata) = game.players.get(&me) else { @@ -139,9 +137,8 @@ impl BotAlgo for Customer { demands_failed: 1, ..Default::default() }), - PacketS::Communicate { - message: Some(Message::Effect("angry".to_string())), - timeout: None, + PacketS::Effect { + name: "angry".to_string(), player: me, }, ], @@ -185,9 +182,8 @@ impl BotAlgo for Customer { timeout: Some(0.), player: me, }, - PacketS::Communicate { - message: Some(Message::Effect("satisfied".to_string())), - timeout: None, + PacketS::Effect { + name: "satisfied".to_string(), player: me, }, PacketS::Interact { diff --git a/server/protocol/src/lib.rs b/server/protocol/src/lib.rs index 323cf2c2..b8f30ce7 100644 --- a/server/protocol/src/lib.rs +++ b/server/protocol/src/lib.rs @@ -119,20 +119,28 @@ pub enum PacketS { timeout: Option<f32>, }, + /// For use in replay sessions only + ReplayTick { + dt: f64, + }, + #[serde(skip)] #[bincode(skip)] - /// For internal use only + /// For internal use only (customers) ReplaceHand { player: PlayerID, item: Option<ItemIndex>, }, #[serde(skip)] #[bincode(skip)] - /// For internal use only + /// For internal use only (customers) ApplyScore(Score), - /// For use in replay sessions only - ReplayTick { - dt: f64, + #[serde(skip)] + #[bincode(skip)] + /// For internal use only (customers) + Effect { + player: PlayerID, + name: String, }, } @@ -143,7 +151,6 @@ pub enum Message { Text(String), Item(ItemIndex), Tile(TileIndex), - Effect(String), } #[derive(Debug, Clone, Serialize, Deserialize, Encode, Decode)] @@ -208,6 +215,10 @@ pub enum PacketC { message: Option<Message>, timeout: Option<MessageTimeout>, }, + Effect { + name: String, + player: PlayerID, + }, ServerMessage { text: String, }, diff --git a/server/src/commands.rs b/server/src/commands.rs index d6ca8b25..b06d9261 100644 --- a/server/src/commands.rs +++ b/server/src/commands.rs @@ -171,13 +171,7 @@ impl Server { ) } Command::Effect { name } => { - self.tx - .send(PacketC::Communicate { - player, - message: Some(Message::Effect(name)), - timeout: None, - }) - .ok(); + self.tx.send(PacketC::Effect { name, player }).ok(); } Command::Item { name } => { let item = self diff --git a/server/src/server.rs b/server/src/server.rs index 2259d159..848e2bb4 100644 --- a/server/src/server.rs +++ b/server/src/server.rs @@ -381,6 +381,9 @@ impl Server { self.packet_out .push_back(PacketC::RemovePlayer { id: player }) } + PacketS::Effect { player, name } => { + self.packet_out.push_back(PacketC::Effect { name, player }); + } PacketS::Movement { pos, boost, diff --git a/server/src/state.rs b/server/src/state.rs index b9a43f6b..09e7031e 100644 --- a/server/src/state.rs +++ b/server/src/state.rs @@ -110,6 +110,7 @@ fn get_packet_player(packet: &PacketS) -> Option<PlayerID> { PacketS::Interact { player, .. } => Some(*player), PacketS::Communicate { player, .. } => Some(*player), PacketS::ReplaceHand { player, .. } => Some(*player), + PacketS::Effect { player, .. } => Some(*player), PacketS::ApplyScore(_) => None, PacketS::ReplayTick { .. } => None, } |