aboutsummaryrefslogtreecommitdiff
path: root/server/src/game.rs
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2024-06-19 00:08:13 +0200
committermetamuffin <metamuffin@disroot.org>2024-06-23 19:21:22 +0200
commit203a4309a762488a4de72123e2f08f229e607e1a (patch)
tree752e7ffade32c6d66ee02725280c3041e25d6194 /server/src/game.rs
parentfe0dd480d6e93098cddc71d596a8d7e61fec68ed (diff)
downloadhurrycurry-203a4309a762488a4de72123e2f08f229e607e1a.tar
hurrycurry-203a4309a762488a4de72123e2f08f229e607e1a.tar.bz2
hurrycurry-203a4309a762488a4de72123e2f08f229e607e1a.tar.zst
character selection
Diffstat (limited to 'server/src/game.rs')
-rw-r--r--server/src/game.rs14
1 files changed, 10 insertions, 4 deletions
diff --git a/server/src/game.rs b/server/src/game.rs
index 35502d3c..c9881e7c 100644
--- a/server/src/game.rs
+++ b/server/src/game.rs
@@ -32,6 +32,7 @@ pub struct Tile {
pub struct Player {
pub name: String,
+ pub character: usize,
pub position: Vec2,
pub interacting: Option<IVec2>,
pub item: Option<Item>,
@@ -71,8 +72,10 @@ impl Game {
for (&id, player) in &self.players {
out.push(PacketC::AddPlayer {
id,
+ position: player.position,
+ character: player.character,
name: player.name.clone(),
- hand: player.item.as_ref().map(|i| i.kind),
+ item: player.item.as_ref().map(|i| i.kind),
})
}
for (&tile, tdata) in &self.tiles {
@@ -92,11 +95,12 @@ impl Game {
pub fn packet_in(&mut self, player: PlayerID, packet: PacketS) -> Result<()> {
match packet {
- PacketS::Join { name } => {
+ PacketS::Join { name, character } => {
self.players.insert(
player,
Player {
item: None,
+ character,
position: self.data.spawn,
interacting: None,
name: name.clone(),
@@ -105,7 +109,9 @@ impl Game {
self.packet_out.push_back(PacketC::AddPlayer {
id: player,
name,
- hand: None,
+ position: self.data.spawn,
+ character,
+ item: None,
});
}
PacketS::Leave => {
@@ -157,7 +163,7 @@ impl Game {
}
let tile_had_item = tile.item.is_some();
- let player_had_item = tile.item.is_some();
+ let player_had_item = player.item.is_some();
if let Some(effect) = interact(&self.data, edge, tile, player) {
match effect {