summaryrefslogtreecommitdiff
path: root/server/src/entity/tutorial.rs
diff options
context:
space:
mode:
Diffstat (limited to 'server/src/entity/tutorial.rs')
-rw-r--r--server/src/entity/tutorial.rs8
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,