From: Christopher Allan Webber Date: Mon, 2 May 2016 14:42:27 +0000 (-0500) Subject: Add commands and contain-commands to gameobj X-Git-Tag: fosdem-2017~203 X-Git-Url: https://jxself.org/git/?a=commitdiff_plain;h=787335368937c1a07a0a098b8aa9b616c76ffebb;p=mudsync.git Add commands and contain-commands to gameobj --- diff --git a/mudsync.scm b/mudsync.scm index 05276a7..8cc07b1 100644 --- a/mudsync.scm +++ b/mudsync.scm @@ -377,13 +377,18 @@ with an anonymous persona" ;;; derive from this class. ;;; And all of them need a GM! -(define-class () +(define-class () ;; location id (loc #:init-value #f - #:accessor game-actor-loc) + #:accessor gameobj-loc) ;; game master id (gm #:init-keyword #:gm - #:getter game-actor-gm)) + #:getter gameobj-gm) + + ;; Commands we can handle + (commands #:init-value #f) + ;; Commands we can handle by being something's container + (contain-commands #:init-value #f)) @@ -430,7 +435,7 @@ with an anonymous persona" #:val (slot-ref actor slot)))) -(define-class () +(define-class () (name #:init-keyword #:name) (desc #:init-value "" #:init-keyword #:desc) @@ -465,7 +470,7 @@ claim to point to." (for-each (lambda (exit) (define new-exit - (<-wait room (game-actor-gm room) 'lookup-room + (<-wait room (gameobj-gm room) 'lookup-room #:symbol (exit-to-symbol exit))) (set! (exit-to-address exit) new-exit)) @@ -477,7 +482,7 @@ claim to point to." ;;; Players ;;; ======= -(define-class () +(define-class () (username #:init-keyword #:username #:accessor player-username) ;; Connection id @@ -494,7 +499,7 @@ claim to point to." (define-mhandler (player-set-loc! player message id) (format #t "DEBUG: Location set to ~s for player ~s\n" id (actor-id-actor player)) - (set! (game-actor-loc player) id)) + (set! (gameobj-loc player) id)) (define-mhandler (player-init! player message) (player-look-around player)) @@ -504,16 +509,16 @@ claim to point to." (define (player-look-around player) (define room-name (message-ref - (<-wait player (game-actor-loc player) 'get-name) + (<-wait player (gameobj-loc player) 'get-name) 'val)) (define room-desc (message-ref - (<-wait player (game-actor-loc player) 'get-desc) + (<-wait player (gameobj-loc player) 'get-desc) 'val)) (define message-text (format #f "**~a**\n~a\n" room-name room-desc)) - (<- player (game-actor-gm player) 'write-home #:text message-text)) + (<- player (gameobj-gm player) 'write-home #:text message-text)) ;;; Debugging stuff