From 92bc0f246644ab258a8c17719001bfee8c747a75 Mon Sep 17 00:00:00 2001 From: andy Date: Tue, 11 Aug 2020 17:17:24 -0300 Subject: [PATCH] handle hospital visits --- src/ship/packet/handler/message.rs | 18 ++++++++++++++++++ src/ship/ship.rs | 3 +++ 2 files changed, 21 insertions(+) diff --git a/src/ship/packet/handler/message.rs b/src/ship/packet/handler/message.rs index 9cf3df1..098f262 100644 --- a/src/ship/packet/handler/message.rs +++ b/src/ship/packet/handler/message.rs @@ -309,3 +309,21 @@ where Ok(Box::new(None.into_iter())) } + +pub async fn player_used_medical_center(id: ClientId, + _pumc: &PlayerUsedMedicalCenter, // not needed? + entity_gateway: &mut EG, + clients: &mut Clients) + -> Result + Send>, ShipError> +where +EG: EntityGateway +{ + let client = clients.get_mut(&id).ok_or(ShipError::ClientNotFound(id))?; + if client.character.meseta >= 10 { + client.character.meseta -= 10; + entity_gateway.save_character(&client.character).await; + Ok(Box::new(None.into_iter())) + } else { + Err(ShipError::NotEnoughMeseta(id, client.character.meseta)) + } +} \ No newline at end of file diff --git a/src/ship/ship.rs b/src/ship/ship.rs index 69c0870..a88145a 100644 --- a/src/ship/ship.rs +++ b/src/ship/ship.rs @@ -298,6 +298,9 @@ impl ShipServerState { GameMessage::PlayerUseItem(player_use_item) => { handler::message::use_item(id, player_use_item, &mut self.entity_gateway, &mut self.client_location, &mut self.clients, &mut self.item_manager).await }, + GameMessage::PlayerUsedMedicalCenter(player_used_medical_center) => { + handler::message::player_used_medical_center(id, &player_used_medical_center, &mut self.entity_gateway, &mut self.clients).await + }, _ => { let cmsg = msg.clone(); Ok(Box::new(self.client_location.get_client_neighbors(id).unwrap().into_iter()