Implement healthy rexx and some more dialog

This commit is contained in:
Jeremy Penner 2020-12-16 23:11:44 -05:00
parent a4e7629ee2
commit 3c0c032710
2 changed files with 17 additions and 4 deletions

View file

@ -19,12 +19,17 @@
(vm:var :is-garbagerexx vm.false) (vm:var :is-garbagerexx vm.false)
(vm:var :garbagerexx-yx 0x0710) (vm:var :garbagerexx-yx 0x0710)
; shit, rexx doesn't live in an object - I can't tag by word :/ (vm:var :garbagerexx-introduced vm.false)
(vm:word :garbagerexx ; ev -- (vm:word :garbagerexx ; ev --
:is-rexx? :swap :rexx :is-rexx? := :not (vm:when :is-rexx? :swap :rexx :is-rexx? := :not (vm:when
:is-rexx? (vm:if [ :is-rexx? (vm:if [
:garbagerexx-yx :get :get-responder :get := (vm:when :garbagerexx-yx :get :get-responder :get := (vm:when
vm.true :is-garbagerexx :set) vm.true :is-garbagerexx :set
:garbagerexx-introduced :get :not (vm:when
(say :rexx "BO@*SS5S...,? ")
(say :rexx "I DON'T F3EL SO" "GOO00)OD...>?&**;")
vm.true :garbagerexx-introduced :set
))
] [ ] [
:is-garbagerexx :get (vm:when :is-garbagerexx :get (vm:when
:get-responder :get :garbagerexx-yx :set :get-responder :get :garbagerexx-yx :set
@ -40,11 +45,19 @@
(vm:word :move-garbagerexx ; yx -- f (vm:word :move-garbagerexx ; yx -- f
(vm:if-and [[:is-rexx?] [:is-garbagerexx :get]] (vm:if-and [[:is-rexx?] [:is-garbagerexx :get]]
[:dup 0xff :& 0x0d := (vm:if [ [:dup 0xff :& 0x0d := (vm:if [
(say :rexx "PARITY ERROR!") :drop vm.true :ret (say :rexx "PARITY#ERPOR!*(!@$[") :drop vm.true :ret
] [ ] [
(vm:if-and [[:dup :not-picking-up?] [:dup :can-drop-rubble?]] (vm:if-and [[:dup :not-picking-up?] [:dup :can-drop-rubble?]]
[:rexx-yx :get (itile :broken-table) :update-itile]) [:rexx-yx :get (itile :broken-table) :update-itile])
])]) ])])
:move-noop) :move-noop)
(vm:var :healthyrexx-introduced vm.false)
(vm:word :healthyrexx ; ev --
(vm:if-and [[:is-neut?] [:dup ev.touch :=] [:healthyrexx-introduced :get :not]]
[(say :neut "REXX UNIT" "PERFORM FULL DIAGNOSTIC SCAN")
(say :rexx "I'M IN TIP-TOP SHAPE, BOSS!")
(say :neut "ACTIVATING RELIEF SUBROUTINE")
vm.true :healthyrexx-introduced :set]) :rexx)
level level

View file

@ -1 +1 @@
{"neut":{"y":6,"x":20},"map":"21616161228161616161616161616161616162612102E0C0C0C0C0E0C04361C0C0C0C0C0A3C0C0612161C0C0C0C0C0C0C0C022C0C0C08282C0828261416103C0C0C0C0C0C0C081C0C0C0C0C0C0C0C2C1210203C0C0C0C0C0C04361C0C0C08282838282622161616161816161616161618161616161616161216163C0C0C0C0E0C0C06143C0C0C0C0C0C063612102C0C0C0C0C0C0C0C061C0C0C0C0C0C0C0C0814161C0C0C0C0E2C0E2836101C0C0C0C0C0C0C0C1216143C0C0C082A2A2A281C0C0C043034382E26121610261610261C16102616161026161610261612121212121214121212121212121214121212121","tickword":"doortimer-tick","jaye":{"y":5,"x":19},"gord-following":true,"moveword":"move-garbagerexx","objects":[{"x":17,"func":"garbagerexx","y":11,"name":"","linkword":""},{"x":17,"func":"garbagerexx","y":8,"name":"","linkword":""},{"x":20,"func":"do-timedswitch","y":9,"name":"timedswitch","linkword":"","link":13},{"x":20,"func":"switch","y":4,"name":"","linkword":"","link":16},{"x":12,"func":"term","y":4,"name":"","linkword":"","link":9},{"x":10,"func":"garbagerexx","y":4,"name":"","linkword":""},{"x":8,"func":"switch","y":2,"name":"","linkword":"","link":17},{"x":8,"func":"term","y":6,"name":"","linkword":"","link":10},{"x":8,"func":"term","y":11,"name":"","linkword":"","link":5},{"x":3,"func":"term","y":11,"name":"","linkword":"","link":8},{"x":5,"func":"scan","y":12,"name":"","linkword":"","link":12},{"x":6,"func":"door","y":12,"name":"","linkword":""},{"x":6,"func":"door","y":7,"name":"","linkword":""},{"x":11,"func":"door","y":9,"name":"","linkword":""},{"x":11,"func":"scan","y":10,"name":"","linkword":"","link":14},{"x":13,"func":"door","y":7,"name":"","linkword":""},{"x":11,"func":"door","y":3,"name":"","linkword":""}]} {"neut":{"y":6,"x":20},"map":"21616161228161616161616161616161616162612102E0C0C0C0C0E0C04361C0C0C0C0C0A3C0C0612161C0C0C0C0C0C0C0C022C0C0C08282C0828261416103C0C0C0C0C0C0C081C0C0C0C0C0C0C0C2C1210203C0C0C0C0C0C04361C0C0C08282838282622161616161816161616161618161616161616161216163C0C0C0C0E0C0C06143C0C0C0C0C0C063612102C0C0C0C0C0C0C0C061C0C0C0C0C0C0C0C0814161C0C0C0C0E2C0E2836101C0C0C0C0C0C0C0C1216143C0C0C082A2A2A281C0C0C043034382E26121610261610261C16102616161026161610261612121212121214121212121212121214121212121","tickword":"doortimer-tick","jaye":{"y":5,"x":19},"gord-following":true,"moveword":"move-garbagerexx","objects":[{"x":17,"func":"garbagerexx","y":11,"name":"","linkword":""},{"x":17,"func":"garbagerexx","y":8,"name":"","linkword":""},{"x":20,"func":"do-timedswitch","y":9,"name":"timedswitch","linkword":"","link":13},{"x":20,"func":"switch","y":4,"name":"","linkword":"","link":16},{"x":12,"func":"term","y":4,"name":"","linkword":"","link":9},{"x":10,"func":"healthyrexx","y":4,"name":"","linkword":""},{"x":8,"func":"switch","y":2,"name":"","linkword":"","link":17},{"x":8,"func":"term","y":6,"name":"","linkword":"","link":10},{"x":8,"func":"term","y":11,"name":"","linkword":"","link":5},{"x":3,"func":"term","y":11,"name":"","linkword":"","link":8},{"x":5,"func":"scan","y":12,"name":"","linkword":"","link":12},{"x":6,"func":"door","y":12,"name":"","linkword":""},{"x":6,"func":"door","y":7,"name":"","linkword":""},{"x":11,"func":"door","y":9,"name":"","linkword":""},{"x":11,"func":"scan","y":10,"name":"","linkword":"","link":14},{"x":13,"func":"door","y":7,"name":"","linkword":""},{"x":11,"func":"door","y":3,"name":"","linkword":""}]}