+(define (player-disconnect-self-destruct player message)
+ "Action routine for being told to disconnect and self destruct."
+ (define loc (gameobj-loc player))
+ (when loc
+ (<- loc 'tell-room
+ #:exclude (actor-id player)
+ #:text (format #f "~a disappears in a puff of entropy!\n"
+ (slot-ref player 'name))))
+ (gameobj-self-destruct player))
+
+(define (player-cmd-inventory player message)
+ "Display the inventory for the player"
+ (define inv-names
+ (map
+ (lambda (inv-item)
+ (mbody-val (<-wait inv-item 'get-name)))
+ (gameobj-occupants player)))
+ (define text-to-show
+ (if (eq? inv-names '())
+ "You aren't carrying anything.\n"
+ `((p "You are carrying:")
+ (ul ,(map (lambda (item-name)
+ `(li ,item-name))
+ inv-names)))))
+ (<- (actor-id player) 'tell #:text text-to-show))
+
+(define (player-cmd-help player message)
+ (<- (actor-id player) 'tell
+ #:text '((strong "** Mudsync Help **")(br)
+ (p "You're playing Mudsync, a multiplayer text-adventure. "
+ "Type different commands to interact with your surroundings "
+ "and other players.")
+ (p "Some common commands:"
+ (ul (li (strong "say <message>") " -- "
+ "Chat with other players in the same room. "
+ "(Also aliased to the " (b "\"") " character.)")
+ (li (strong "look") " -- "
+ "Look around the room you're in.")
+ (li (strong "look [at] <object>") " -- "
+ "Examine a particular object.")
+ (li (strong "go <exit>") " -- "
+ "Move to another room in <exit> direction.")))
+ (p "Different objects can be interacted with in different ways. "
+ "For example, if there's a bell in the same room as you, "
+ "you might try typing " (em "ring bell")
+ " and see what happens."))))
+