From: Christopher Allan Webber Date: Mon, 30 Jan 2017 02:00:50 +0000 (-0600) Subject: Add the glowing disc X-Git-Tag: fosdem-2017~41 X-Git-Url: https://jxself.org/git/?p=mudsync.git;a=commitdiff_plain;h=f38a8862032f5db1e0a648e855d5cae29f71fe4a Add the glowing disc --- diff --git a/worlds/bricabrac.scm b/worlds/bricabrac.scm index e241fde..dbb32b7 100644 --- a/worlds/bricabrac.scm +++ b/worlds/bricabrac.scm @@ -20,8 +20,7 @@ (use-modules (mudsync) (mudsync container) - (8sync actors) - (8sync agenda) + (8sync) (oop goops) (ice-9 control) (ice-9 format) @@ -79,7 +78,7 @@ (mbody-val (<-wait obj-id 'goes-by))) (when (ci-member direct-obj goes-by) (<- obj-id 'cmd-take #:direct-obj direct-obj #:player player) - (escape))) + (escape #f))) (slot-ref gameobj 'proxy-items)) (<- player 'tell @@ -132,6 +131,7 @@ or 'skribe'? Now *that's* composition!")) #:allocation #:each-subclass #:init-thunk (build-commands ("sign" ((prep-direct-command cmd-sign-form '("as")))))) + (actions #:allocation #:each-subclass #:init-thunk (build-actions (cmd-sign-form sign-cmd-sign-in)))) @@ -289,6 +289,7 @@ wanted to." #:desc "It looks like you could sign this form and set your name.") ;; Object: curio cabinets + ;; TODO: respond to attempts to open the curio cabinet ('lobby:cabinet 'lobby #:proxy-items '(lobby:porcelain-doll @@ -412,6 +413,47 @@ this general shape in the 1990s." ;;; Grand hallway ;;; ------------- +(define-actor () + ((cmd-take disc-shield-take))) + +(define* (disc-shield-take gameobj message + #:key direct-obj + (player (message-from message))) + (pk 'hi) + (create-gameobj (gameobj-gm gameobj) + player) ;; set loc to player to put in player's inventory + (<- player 'tell + #:text '((p "As you attempt to pull the shield / disk platter +from the statue, there is a bright glow... and a completely separate, +glowing copy of the disc materializes into your hands!") + (p "You hear a voice whispering in your ear: " + (i "\"Share the software... and you'll be free...\""))))) + +;;; This is the disc that gets put in the player's inventory +(define-actor () + ((cmd-drop glowing-disc-drop-cmd)) + (initial-props + #:allocation #:each-subclass + #:init-thunk (build-props + '((hd-platter? . #t)))) + (name #:allocation #:each-subclass + #:init-value "a glowing disc") + (desc #:allocation #:each-subclass + #:init-value "A brightly glowing disc. It's shaped like a hard +drive platter, not unlike the one from the statue it came from. It's +labeled \"RL02.5\".") + (goes-by #:init-value '("glowing disc" "glowing platter" + "glowing disc platter" "glowing disk platter" + "platter" "disc" "disk" "glowing shield"))) + +(define* (glowing-disc-drop-cmd gameobj message + #:key direct-obj + (player (message-from message))) + (<- player 'tell + #:text "You drop the glowing disc, and it shatters into a million +pieces!") + (gameobj-self-destruct gameobj)) + (define grand-hallway (lol ('grand-hallway @@ -490,7 +532,7 @@ Hackthena must be an emacs user." `("Are you seriously considering desecrating a statue?"))) #:goes-by '("hackthena's horns" "horns" "horns of hacktena")) ('grand-hallway:disc-platter - 'grand-hallway + 'grand-hallway #:name "a hard disc platter" #:desc "This isn't a shield after all, it seems to be a hard disc platter! It looks kind of loose..."