Implement rexxsplosion
This commit is contained in:
parent
3c0c032710
commit
3eba1775fa
|
@ -1,10 +1,11 @@
|
|||
(local {: deflevel : say : itile} (require :game.defs))
|
||||
(local {: deflevel : say : itile : controlstate} (require :game.defs))
|
||||
(local {: ev} (require :game.entity))
|
||||
(local tile (require :game.tiles))
|
||||
(local {: walkable : neutable : debris : sittable} tile.flag-to-bit)
|
||||
(local level (deflevel "game/map5.json"))
|
||||
(local vm level.vm)
|
||||
|
||||
(vm:word :randomgarbage (itile :broken-table))
|
||||
(vm:var :doortimer 0)
|
||||
(vm:word :start-doortimer 0x100 :doortimer :set)
|
||||
(vm:word :doortimer-tick
|
||||
|
@ -27,7 +28,7 @@
|
|||
vm.true :is-garbagerexx :set
|
||||
:garbagerexx-introduced :get :not (vm:when
|
||||
(say :rexx "BO@*SS5S...,? ")
|
||||
(say :rexx "I DON'T F3EL SO" "GOO00)OD...>?&**;")
|
||||
(say :rexx "I DON'T F3EL SO GOO00)OD...>?&**;")
|
||||
vm.true :garbagerexx-introduced :set
|
||||
))
|
||||
] [
|
||||
|
@ -45,13 +46,35 @@
|
|||
(vm:word :move-garbagerexx ; yx -- f
|
||||
(vm:if-and [[:is-rexx?] [:is-garbagerexx :get]]
|
||||
[:dup 0xff :& 0x0d := (vm:if [
|
||||
(say :rexx "PARITY#ERPOR!*(!@$[") :drop vm.true :ret
|
||||
(say :rexx "PARITY #ERPOR!*(!@$[") :drop vm.true :ret
|
||||
] [
|
||||
(vm:if-and [[:dup :not-picking-up?] [:dup :can-drop-rubble?]]
|
||||
[:rexx-yx :get (itile :broken-table) :update-itile])
|
||||
[:rexx-yx :get :randomgarbage :update-itile])
|
||||
])])
|
||||
:move-noop)
|
||||
|
||||
(vm:word :move ; dir -- dir
|
||||
:dup :player-yx :get :yx+ :move-player-to 0x300 :snooze)
|
||||
(vm:word :explode ; dir --
|
||||
:player-yx :get :yx+ :randomgarbage :update-itile 0x100 :snooze)
|
||||
|
||||
(vm:word :explodingdoor
|
||||
:dup :door
|
||||
(vm:if-and [[ev.touch :=] [:is-jaye?] [:player-yx :get :get-responder :get :=] [:garbagerexx-yx :get :lit :south-rexx :get :=] [:gord-yx :get 0x812 :=]]
|
||||
[:rexx-yx :get
|
||||
:garbagerexx-yx :get :dup (itile :t-rexxstop) :update-itile :rexx-yx :set
|
||||
controlstate.rexx :controlstate :bset
|
||||
0x00ff :move :move :move
|
||||
(say :rexx "DAAAISYY" " DAAAAAIIISYYYY") :hide-footer
|
||||
:move :drop 0xff00 :move
|
||||
(say :rexx "GIVE ME" " .,#YOUR ANSWE!@#ER" " %$DOO00OO@'\"") :hide-footer
|
||||
:move :drop
|
||||
(say :rexx "UH OH") :hide-footer
|
||||
0xff00 :explode 0x0100 :explode 0x00ff :explode 0x0001 :explode 0 :explode
|
||||
0xffff :garbagerexx-yx :set
|
||||
controlstate.jaye :controlstate :bset
|
||||
:rexx-yx :set]))
|
||||
|
||||
(vm:var :healthyrexx-introduced vm.false)
|
||||
(vm:word :healthyrexx ; ev --
|
||||
(vm:if-and [[:is-neut?] [:dup ev.touch :=] [:healthyrexx-introduced :get :not]]
|
||||
|
|
|
@ -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":"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":""}]}
|
||||
{"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":"south-rexx","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":"explodingdoor","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":""}]}
|
Loading…
Reference in a new issue