diff options
Diffstat (limited to 'server')
-rw-r--r-- | server/src/entity/tutorial.rs | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/server/src/entity/tutorial.rs b/server/src/entity/tutorial.rs index 0d3d512d..7aa1578a 100644 --- a/server/src/entity/tutorial.rs +++ b/server/src/entity/tutorial.rs @@ -1,6 +1,5 @@ -use crate::{trm, TrError}; - use super::{Entity, EntityContext}; +use crate::{trm, TrError}; use anyhow::Result; use hurrycurry_protocol::{ glam::IVec2, ItemIndex, Message, PacketC, PlayerID, Recipe, RecipeIndex, TileIndex, @@ -11,6 +10,8 @@ pub struct Tutorial { pub player: PlayerID, target: ItemIndex, + next_update_due: f32, + current_hint: Option<(Option<IVec2>, Message)>, delete_timer: f32, } @@ -19,6 +20,7 @@ impl Tutorial { pub fn new(player: PlayerID, item: ItemIndex) -> Self { Self { player, + next_update_due: 0., target: item, current_hint: None, delete_timer: 1.5, @@ -39,6 +41,13 @@ impl Entity for Tutorial { } } fn tick(&mut self, c: EntityContext<'_>) -> Result<()> { + const TARGET_DT: f32 = 0.2; + self.next_update_due -= c.dt; + if self.next_update_due > 0. { + return Ok(()); + } + self.next_update_due += TARGET_DT; + let mut hint = StepContext { ent: &c, player: self.player, @@ -47,7 +56,7 @@ impl Entity for Tutorial { .aquire_item(self.target) .err(); if hint.is_none() { - self.delete_timer -= c.dt; + self.delete_timer -= TARGET_DT; if self.delete_timer <= 0. { hint = None } else { |