summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--server/src/entity/tutorial.rs14
1 files changed, 12 insertions, 2 deletions
diff --git a/server/src/entity/tutorial.rs b/server/src/entity/tutorial.rs
index d33f14ea..66533119 100644
--- a/server/src/entity/tutorial.rs
+++ b/server/src/entity/tutorial.rs
@@ -199,8 +199,18 @@ impl<'a> StepContext<'a> {
self.aquire_item(item)?;
*self.had_aquired_target = true;
}
- if let Some(pos) = self.find_demand(item) {
- Err((Some(pos), trm!("s.tutorial.serve")))
+ if self
+ .ent
+ .game
+ .players
+ .get(&self.player)
+ .map_or(false, |p| p.item.as_ref().map_or(false, |i| i.kind == item))
+ {
+ if let Some(pos) = self.find_demand(item) {
+ Err((Some(pos), trm!("s.tutorial.serve")))
+ } else {
+ Ok(())
+ }
} else {
Ok(())
}