123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191 |
- (use-modules (mudsync)
- (8sync actors)
- (8sync agenda)
- (oop goops)
- (ice-9 format))
- (define-class <fridge> (<gameobj>)
- (name #:init-value "fridge")
- (desc #:init-value "The refrigerator is humming. To you? To itself?
- Only the universe knows."))
- (define typewriter-commands
- (list
- (direct-command "type" 'cmd-type-gibberish)
- (indir-command "type" 'cmd-type-something)
- (direct-greedy-command "type" 'cmd-type-anything)))
- (define typewriter-actions
- (build-actions
- (cmd-type-gibberish (wrap-apply typewriter-cmd-type-gibberish))
- (cmd-type-something (wrap-apply typewriter-cmd-type-something))
- (cmd-type-anything (wrap-apply typewriter-cmd-type-anything))))
- (define typewriter-dispatch
- (simple-dispatcher (append typewriter-actions
- gameobj-actions)))
- (define-class <typewriter> (<gameobj>)
- (name #:init-value "fancy typewriter")
- (goes-by #:init-value '("typewriter"
- "fancy typewriter"))
- (commands #:init-value typewriter-commands)
- (message-handler
- #:init-value
- (wrap-apply typewriter-dispatch)))
- (define (typewriter-cmd-type-gibberish actor message)
- (<- (message-from message) 'tell
- #:text "*tikka takka!* *tikka takka!*
- You type some gibberish on the typewriter.\n"))
- (define (type-thing actor message type-text)
- (<- (message-from message) 'tell
- #:text
- (format #f "You type out a note.\nThe note says: ~s\n"
- type-text)))
- (define (typewriter-cmd-type-something
- actor message direct-obj indir-obj)
- (type-thing actor message direct-obj))
- (define (typewriter-cmd-type-anything
- actor message direct-obj rest)
- (type-thing actor message rest))
- (define wooden-unlocked-door "A wooden door. It appears to be unlocked.")
- (define metal-stiff-door "A stiff metal door.
- It looks like with a hard shove, you could step through it.")
- (define-syntax-rule (lol (list-contents ...) ...)
- (list (list list-contents ...) ...))
- (define goblin-rooms
- (lol
- ('room:server-room
- <room> #f
- #:name "The dootacenter"
- #:desc
- "You've entered the server room. The isles alternate between hot and
- cold here. It's not not very comfortable in here, and the combined
- noise of hundreds, maybe thousands, of fans and various computing
- mechanisms creates an unpleasant din. Who'd choose to work in such a
- place?
- Still, you have to admit that all the machines look pretty nice."
-
- #:exits
- (list (make <exit>
- #:name "east"
- #:to 'room:north-hallway
- #:desc wooden-unlocked-door)))
-
- ('room:north-hallway
- <room> #f
- #:name "North hallway"
- #:desc
- "You're at the north end of the hallway. An open window gives a nice
- breeze, and the curtains dance merrily in the wind. Outside appears
- to be a pleasant looking lawn.
- The hallway continues to the south. There are some doors to the east
- and the west."
- #:exits
- (list (make <exit>
- #:name "west"
- #:to 'room:server-room
- #:desc wooden-unlocked-door)
- (make <exit>
- #:name "east"
- #:to 'room:code-a-plex
- #:desc metal-stiff-door)
-
-
-
- ))
- ('room:code-a-plex
- <room> #f
- #:name "Joar's Code-A-Plex"
- #:desc
- "You've entered Joar's Code-A-Plex. What that means is anyone's guess.
- Joar apparently hangs out in here sometimes, but you don't see him here right
- now.
- There's a row of computer desks. Most of them have computers already on them,
- But one looks invitingly empty."
- #:exits
- (list (make <exit>
- #:name "west"
- #:to 'room:north-hallway
- #:desc metal-stiff-door)))
- ('thing:typewriter
- <typewriter> 'room:code-a-plex)
- ('thing:fridge
- <fridge> 'room:code-a-plex)))
- (define (goblin-demo . args)
- (run-demo goblin-rooms 'room:north-hallway))
|