(empty-command "go" 'cmd-go-where)
(loose-direct-command "go" 'cmd-go)
(greedy-command "say" 'cmd-say)
- (greedy-command "emote" 'cmd-emote)))
+ (greedy-command "\"" 'cmd-say)
+ (greedy-command "'" 'cmd-say)
+ (greedy-command "emote" 'cmd-emote)
+ (greedy-command "/me" 'cmd-emote)))
;; TODO: Subclass from container?
(define-class <room> (<gameobj>)
(dyn-ref room (slot-ref exit 'to))
#f))
(define player-name
- (msg-val (<-wait (message-from message) 'get-name)))
+ (mbody-val (<-wait (message-from message) 'get-name)))
(cond
(exit
;; Set the player's new location
"Handle looking around the room"
;; Get the room text
(define room-text
- (format #f "**~a**\n~a\n"
- (slot-ref room 'name)
- (slot-ref room 'desc)))
+ `((strong "=> " ,(slot-ref room 'name) " <=")
+ (p ,(slot-ref room 'desc))))
;; Get a list of other things the player would see in the room
(define occupant-names-all
(define final-text
(if occupant-names-string
- (string-append room-text occupant-names-string)
+ `(,@room-text
+ (p (em ,occupant-names-string)))
room-text))
(<- player-id 'tell
(lambda (return)
(for-each
(lambda (occupant)
- (msg-receive (_ #:key goes-by)
+ (mbody-receive (_ #:key goes-by)
(<-wait occupant 'goes-by)
(if (member called-this goes-by)
(return occupant))))
(cond
(matching-object
(let ((obj-desc
- (msg-val (<-wait matching-object 'get-desc
+ (mbody-val (<-wait matching-object 'get-desc
#:whos-looking (message-from message)))))
(if obj-desc
(<- (message-from message) 'tell
(define* (room-cmd-say room message #:key phrase)
"Command: Say something to room participants."
(define player-name
- (msg-val (<-wait (message-from message) 'get-name)))
+ (mbody-val (<-wait (message-from message) 'get-name)))
(define message-to-send
- (format #f "~a says: ~a\n" player-name phrase))
+ `((b "<" ,player-name ">") " " ,phrase))
(room-tell-room room message-to-send))
(define* (room-cmd-emote room message #:key phrase)
"Command: Say something to room participants."
(define player-name
- (msg-val (<-wait (message-from message) 'get-name)))
+ (mbody-val (<-wait (message-from message) 'get-name)))
(define message-to-send
- (format #f "* ~a ~a\n" player-name phrase))
+ `((b "* " ,player-name) " " ,phrase))
(room-tell-room room message-to-send))
(define* (room-announce-entrance room message #:key who-entered)
(define player-name
- (msg-val (<-wait who-entered 'get-name)))
+ (mbody-val (<-wait who-entered 'get-name)))
(define message-to-send
(format #f "~a enters the room.\n" player-name))
(room-tell-room room message-to-send