summaryrefslogtreecommitdiff
path: root/server
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2025-06-03 21:37:38 +0200
committermetamuffin <metamuffin@disroot.org>2025-06-03 21:37:38 +0200
commit29772d6b2f244c6c172347c5e96530a16ca4517d (patch)
treed0efbf6d035a5b8ca07f0b87abebd6097ccc7181 /server
parent5acdf0a7ae6fcf92d399d9023da07240e7870fef (diff)
downloadhurrycurry-29772d6b2f244c6c172347c5e96530a16ca4517d.tar
hurrycurry-29772d6b2f244c6c172347c5e96530a16ca4517d.tar.bz2
hurrycurry-29772d6b2f244c6c172347c5e96530a16ca4517d.tar.zst
pedestrian speed config
Diffstat (limited to 'server')
-rw-r--r--server/src/entity/mod.rs11
-rw-r--r--server/src/entity/pedestrians.rs3
2 files changed, 11 insertions, 3 deletions
diff --git a/server/src/entity/mod.rs b/server/src/entity/mod.rs
index 2eadc0ff..6d69436d 100644
--- a/server/src/entity/mod.rs
+++ b/server/src/entity/mod.rs
@@ -150,7 +150,8 @@ pub enum EntityDecl {
Book,
Pedestrians {
spawn_delay: f32,
- spawn_delay_stdev: f32,
+ spawn_delay_stdev: Option<f32>,
+ speed: Option<f32>,
points: Vec<Vec2>,
},
}
@@ -240,11 +241,17 @@ pub fn construct_entity(
spawn_delay,
spawn_delay_stdev,
points,
+ speed,
} => Box::new(Pedestrians {
players: HashMap::new(),
points,
- spawn_delay_distr: rand_distr::Normal::new(spawn_delay, spawn_delay_stdev).unwrap(),
+ spawn_delay_distr: rand_distr::Normal::new(
+ spawn_delay,
+ spawn_delay_stdev.unwrap_or(0.),
+ )
+ .unwrap(),
cooldown: 0.,
+ speed: speed.unwrap_or(0.6),
}),
})
}
diff --git a/server/src/entity/pedestrians.rs b/server/src/entity/pedestrians.rs
index 64adf57b..cedb9e46 100644
--- a/server/src/entity/pedestrians.rs
+++ b/server/src/entity/pedestrians.rs
@@ -27,6 +27,7 @@ pub struct Pedestrians {
pub points: Vec<Vec2>,
pub spawn_delay_distr: rand_distr::Normal<f32>,
pub cooldown: f32,
+ pub speed: f32,
}
impl Entity for Pedestrians {
@@ -65,7 +66,7 @@ impl Entity for Pedestrians {
} else {
c.packet_in.push_back(PacketS::Movement {
player: *id,
- dir: diff,
+ dir: diff.normalize_or_zero() * self.speed,
boost: false,
pos: None,
});