a bit."))
#:exclude player))
+(define-actor <frog> (<chatty-npc>)
+ ;; TODO: Add "open" verb, since obviously people will try that
+ ((cmd-kiss frog-cmd-kiss))
+ (commands
+ #:allocation #:each-subclass
+ #:init-thunk (build-commands
+ (("kiss") ((direct-command cmd-kiss))))))
+
+(define* (frog-cmd-kiss actor message #:key direct-obj)
+ (define player (message-from message))
+ (define player-loc (mbody-val (<-wait player 'get-loc)))
+ (define player-name (mbody-val (<-wait player 'get-name)))
+ (<- (message-from message) 'tell
+ #:text '((p "You kiss the frog. She blushes and you get a distinctly "
+ "princess'y vibe off of her!")))
+ (<- player-loc 'tell-room
+ #:text `((p ,player-name " kisses the frog! The frog blushes!"))
+ #:exclude player))
(define wedding
#:read-text `(pre ,wedding-map-text)
#:goes-by '("map" "wedding map"))
('wedding-entrance:frog
- <chatty-npc> 'wedding-entrance
+ <frog> 'wedding-entrance
#:name "a frog"
#:desc "The frog is sitting on top of the hostess podium and doing
her best to look dignified. Actually, to be honest, she's doing a pretty
"Welcome, welcome! *Ribbit!*"
"*Ribbit!* We've been waiting for you, come in come in!"
"We're so happy you're here!"
- "Hoo, this wedding took a lot of work to plan but it was WORTH IT!"))
+ "Hoo, this wedding took a lot of work to plan but it was WORTH IT!"
+ "A kiss? Well... I wouldn't object to it..."))
('wedding-entrance:podium
<gameobj> 'wedding-entrance
#:name "a hostess podium"