From 7d1acb295b0dc9ebde45f6828d01baa8c6dce023 Mon Sep 17 00:00:00 2001 From: Andreas Grois Date: Sun, 2 Apr 2023 22:40:29 +0200 Subject: Example: Fix inconsistency in cashier handling. --- examples/text-adventure/logic.rs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'examples/text-adventure') diff --git a/examples/text-adventure/logic.rs b/examples/text-adventure/logic.rs index 3f05555..87ea8bb 100644 --- a/examples/text-adventure/logic.rs +++ b/examples/text-adventure/logic.rs @@ -217,7 +217,12 @@ fn handle_checkout<'a, 's: 'a>( 0 => { FreeSausageRoll::pure((Location::Shelves, inventory.clone())) }, 1 => { run!{ - r <= try_pay(inventory.clone()); + r <= if inventory.items.is_empty() { + let inventory = inventory.clone(); + exposition("You didn't take anything in the store, so you just walk past the cashier.").bind(move |_| FreeSausageRoll::pure(Ok(inventory.clone()))) as FreeSausageRoll> + } else { + try_pay(inventory.clone()) + }; match r { Ok(inventory) => { run!{ -- cgit v1.2.3