diff options
Diffstat (limited to 'server/src/entity')
-rw-r--r-- | server/src/entity/tutorial.rs | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/server/src/entity/tutorial.rs b/server/src/entity/tutorial.rs index a49c5993..d33f14ea 100644 --- a/server/src/entity/tutorial.rs +++ b/server/src/entity/tutorial.rs @@ -15,11 +15,13 @@ pub struct Tutorial { current_hint: Option<(Option<IVec2>, Message)>, delete_timer: f32, + pub ended: bool, } impl Tutorial { pub fn new(player: PlayerID, item: ItemIndex) -> Self { Self { + ended: false, player, next_update_due: 0., target: item, @@ -32,7 +34,7 @@ impl Tutorial { impl Entity for Tutorial { fn finished(&self) -> bool { - self.delete_timer <= 0. + self.ended } fn destructor(&mut self, c: EntityContext<'_>) { if let Some((position, _)) = self.current_hint { @@ -49,6 +51,9 @@ impl Entity for Tutorial { }); } fn tick(&mut self, c: EntityContext<'_>) -> Result<()> { + if self.ended { + return Ok(()); + } const TARGET_DT: f32 = 0.2; self.next_update_due -= c.dt; if self.next_update_due > 0. { @@ -67,6 +72,7 @@ impl Entity for Tutorial { if hint.is_none() { self.delete_timer -= TARGET_DT; if self.delete_timer <= 0. { + self.ended = true; hint = None; c.packet_out.push_back(PacketC::TutorialEnded { item: self.target, |