+(define-mhandler (clerk-cmd-dismiss clerk message)
+ (define player-name
+ (message-ref
+ (<-wait clerk (message-from message) 'get-name)
+ 'val))
+ (match (slot-ref clerk 'state)
+ ('on-duty
+ (<- clerk (gameobj-loc clerk) 'tell-room
+ #:text
+ (format #f "\"Thanks ~a!\" says the clerk. \"I have somewhere I need to be.\"
+The clerk leaves the room in a hurry.\n"
+ player-name))
+ (gameobj-set-loc! clerk (dyn-ref clerk 'room:break-room))
+ (slot-set! clerk 'state 'slacking)
+ (<- clerk (gameobj-loc clerk) 'tell-room
+ #:text clerk-return-to-slacking-text))
+ ('slacking
+ (<- clerk (message-from message) 'tell
+ #:text "The clerk sternly asks you to not be so dismissive.\n"))))
+