Map editor asks for filename; level 2 completable, level 3 in progress
This commit is contained in:
parent
da2bee11e8
commit
03a5711086
|
@ -313,6 +313,7 @@
|
||||||
|
|
||||||
(fn vm.for [self ...]
|
(fn vm.for [self ...]
|
||||||
[:vm :>r (vm:while [:rtop] :r> :dec :>r ...) :rdrop])
|
[:vm :>r (vm:while [:rtop] :r> :dec :>r ...) :rdrop])
|
||||||
|
(fn vm.i [self] :rtop)
|
||||||
|
|
||||||
(fn vm.when [self ...]
|
(fn vm.when [self ...]
|
||||||
[:block [:vm :bz :_end ...] :_end])
|
[:block [:vm :bz :_end ...] :_end])
|
||||||
|
|
|
@ -7,15 +7,30 @@
|
||||||
(local core (require :core))
|
(local core (require :core))
|
||||||
(local command (require :core.command))
|
(local command (require :core.command))
|
||||||
(local keymap (require :core.keymap))
|
(local keymap (require :core.keymap))
|
||||||
|
(local common (require :core.common))
|
||||||
|
|
||||||
(let [commands {}]
|
(let [commands {}]
|
||||||
(each [_ name (ipairs [:tile :map :portrait :font])]
|
(each [_ name (ipairs [:tile :portrait :font])]
|
||||||
(local cls (require (.. "editor." name "edit")))
|
(local cls (require (.. "editor." name "edit")))
|
||||||
(tset commands (.. "honeylisp:" name "-editor") (fn []
|
(tset commands (.. "honeylisp:" name "-editor") (fn []
|
||||||
(local node (core.root_view:get_active_node))
|
(local node (core.root_view:get_active_node))
|
||||||
(node:add_view (cls)))))
|
(node:add_view (cls)))))
|
||||||
(command.add nil commands))
|
(command.add nil commands))
|
||||||
|
|
||||||
|
(command.add nil {
|
||||||
|
"honeylisp:map-editor" (fn []
|
||||||
|
(core.command_view:enter "Open Map"
|
||||||
|
(fn [text item]
|
||||||
|
(local node (core.root_view:get_active_node))
|
||||||
|
(node:add_view (MapEditView (or (and item item.text) text))))
|
||||||
|
(fn [text]
|
||||||
|
(local files [])
|
||||||
|
(each [_ item (pairs core.project_files)]
|
||||||
|
(when (and (= item.type :file) (item.filename:find "^game/map%d+%.json"))
|
||||||
|
(table.insert files item.filename)))
|
||||||
|
(common.fuzzy_match files text))))
|
||||||
|
})
|
||||||
|
|
||||||
(command.add (cmd-predicate :editor.gfxedit) {
|
(command.add (cmd-predicate :editor.gfxedit) {
|
||||||
"graphics-editor:save" (fn [] (core.active_view:save) (core.log "Saved"))
|
"graphics-editor:save" (fn [] (core.active_view:save) (core.log "Saved"))
|
||||||
"graphics-editor:reload" (fn [] (core.active_view:reload) (core.log "Reloaded"))
|
"graphics-editor:reload" (fn [] (core.active_view:reload) (core.log "Reloaded"))
|
||||||
|
|
|
@ -12,10 +12,11 @@
|
||||||
(local tilew (* sprite-scale 14))
|
(local tilew (* sprite-scale 14))
|
||||||
(local tileh (* sprite-scale 16))
|
(local tileh (* sprite-scale 16))
|
||||||
|
|
||||||
(fn MapEditView.new [self]
|
(fn MapEditView.new [self filename]
|
||||||
(MapEditView.super.new self)
|
(MapEditView.super.new self)
|
||||||
(set self.sprite-scale sprite-scale)
|
(set self.sprite-scale sprite-scale)
|
||||||
(set self.stripcache {})
|
(set self.stripcache {})
|
||||||
|
(set self.mapfilename filename)
|
||||||
(self:reload))
|
(self:reload))
|
||||||
|
|
||||||
; map is stored bottom-to-top
|
; map is stored bottom-to-top
|
||||||
|
@ -147,14 +148,15 @@
|
||||||
|
|
||||||
(fn MapEditView.reload [self]
|
(fn MapEditView.reload [self]
|
||||||
(MapEditView.super.reload self)
|
(MapEditView.super.reload self)
|
||||||
(local level (util.readjson "game/map00001.json"))
|
(local (loaded level) (pcall #(util.readjson self.mapfilename)))
|
||||||
(set self.level
|
(set self.level
|
||||||
(match (type level)
|
(match (and loaded (type level))
|
||||||
|
false {:map (string.rep "\0" (* mapw maph)) :objects []}
|
||||||
:string {:map (level:fromhex) :objects []}
|
:string {:map (level:fromhex) :objects []}
|
||||||
:table (doto level (tset :map (level.map:fromhex))))))
|
:table (doto level (tset :map (level.map:fromhex))))))
|
||||||
|
|
||||||
(fn MapEditView.save [self]
|
(fn MapEditView.save [self]
|
||||||
(util.writejson "game/map00001.json"
|
(util.writejson self.mapfilename
|
||||||
(doto (lume.clone self.level)
|
(doto (lume.clone self.level)
|
||||||
(tset :map (self.level.map:tohex)))))
|
(tset :map (self.level.map:tohex)))))
|
||||||
|
|
||||||
|
@ -172,6 +174,6 @@
|
||||||
(set y (+ y 30))
|
(set y (+ y 30))
|
||||||
(self:draw-tile-selector x y (- self.size.x 20)))
|
(self:draw-tile-selector x y (- self.size.x 20)))
|
||||||
|
|
||||||
(fn MapEditView.get_name [self] "Map Editor")
|
(fn MapEditView.get_name [self] (.. "Map: " self.mapfilename))
|
||||||
|
|
||||||
MapEditView
|
MapEditView
|
||||||
|
|
|
@ -44,7 +44,7 @@
|
||||||
:swap 2 :+ :get :execute
|
:swap 2 :+ :get :execute
|
||||||
:r> :lit :responder :set)
|
:r> :lit :responder :set)
|
||||||
|
|
||||||
(vm:word :linked-entity :get-responder :dup 4 :+ :get :dup (vm:if [:dup :. :execute] [:drop 6 :+ :dup :. :get]) :dup :.)
|
(vm:word :linked-entity :get-responder :dup 4 :+ :get :dup (vm:if [:execute] [:drop 6 :+ :get]))
|
||||||
(vm:word :touch-entity ; yx -- f
|
(vm:word :touch-entity ; yx -- f
|
||||||
:entity-at :dup (vm:when ev.touch :entity>do vm.true))
|
:entity-at :dup (vm:when ev.touch :entity>do vm.true))
|
||||||
(vm:word :untouch-entity ; yx --
|
(vm:word :untouch-entity ; yx --
|
||||||
|
@ -66,29 +66,30 @@
|
||||||
:dup ev.act := :over ev.deact := :| :swap ev.tog := :|)
|
:dup ev.act := :over ev.deact := :| :swap ev.tog := :|)
|
||||||
(vm:word :activate-link ; ev itile-on --
|
(vm:word :activate-link ; ev itile-on --
|
||||||
:swap :activation-ev? (vm:if [
|
:swap :activation-ev? (vm:if [
|
||||||
:responder-itile :dup :. := (vm:if [ev.act] [ev.deact])
|
:responder-itile := (vm:if [ev.act] [ev.deact])
|
||||||
:linked-entity :swap :entity>do
|
:linked-entity :swap :entity>do
|
||||||
] [:drop]))
|
] [:drop]))
|
||||||
|
|
||||||
(vm:word :door ; ev --
|
(vm:word :door ; ev --
|
||||||
(vm:if-and [[:is-jaye?] [:dup ev.touch :=] [:responder-itile (itile :dooropen) :=]]
|
(vm:if-and [[:is-jaye?] [:dup ev.touch :=] [:responder-itile (itile :dooropen) :=]]
|
||||||
[:move-jaye :drop]
|
[:move-to-responder :drop]
|
||||||
[(itile :doorclosed) (itile :dooropen) :handle-onoff]))
|
[(itile :doorclosed) (itile :dooropen) :handle-onoff]))
|
||||||
|
|
||||||
(vm:word :move-neut-to-responder :get-responder :get :move-neut-to)
|
(vm:word :move-to-responder :get-responder :get :move-player-to)
|
||||||
(vm:word :switch ; ev --
|
(vm:word :switch ; ev --
|
||||||
:dup ev.touch := (vm:when :drop ev.tog :is-neut? (vm:when :move-neut-to-responder))
|
:dup ev.touch := (vm:when :drop ev.tog :is-neut? (vm:when :move-to-responder))
|
||||||
:dup (itile :switchoff) (itile :switchon) :handle-onoff
|
:dup (itile :switchoff) (itile :switchon) :handle-onoff
|
||||||
(itile :switchon) :activate-link)
|
(itile :switchon) :activate-link)
|
||||||
|
|
||||||
(vm:word :term ; ev --
|
(vm:word :term ; ev --
|
||||||
:dup ev.touch := (vm:when
|
:dup ev.touch := (vm:when
|
||||||
:is-jaye?
|
(vm:ifchain [:is-jaye?] [:drop ev.act]
|
||||||
(vm:if
|
[:is-neut?] [:linked-entity
|
||||||
[:drop ev.act]
|
(vm:if-and [[:dup :get :itile-at (itile :termon) :=]
|
||||||
[:linked-entity :dup :get :itile-at (itile :termon) :=
|
[:responder-itile (itile :termon) :=]]
|
||||||
(vm:if [:get :move-neut-to] [:drop])]))
|
[:get :move-player-to] [:drop])]
|
||||||
:dup (itile :termoff) (itile :termon) :handle-onoff)
|
[]))
|
||||||
|
(itile :termoff) (itile :termon) :handle-onoff)
|
||||||
|
|
||||||
(vm:word :handle-scan ; ev --
|
(vm:word :handle-scan ; ev --
|
||||||
:dup (itile :scanoff) (itile :scanon) :handle-onoff
|
:dup (itile :scanoff) (itile :scanon) :handle-onoff
|
||||||
|
@ -97,7 +98,7 @@
|
||||||
(vm:word :scan ; ev --
|
(vm:word :scan ; ev --
|
||||||
:is-neut? (vm:if [
|
:is-neut? (vm:if [
|
||||||
(vm:case
|
(vm:case
|
||||||
[ev.touch ev.act :handle-scan :move-neut-to-responder]
|
[ev.touch ev.act :handle-scan :move-to-responder]
|
||||||
[ev.untouch ev.deact :handle-scan]
|
[ev.untouch ev.deact :handle-scan]
|
||||||
[:else])
|
[:else])
|
||||||
] [:drop]))
|
] [:drop]))
|
||||||
|
|
|
@ -122,7 +122,7 @@
|
||||||
:lit :map 0x0300 (vm:until 0x100 :-
|
:lit :map 0x0300 (vm:until 0x100 :-
|
||||||
:dup 0x0900 :+ :yx>screen
|
:dup 0x0900 :+ :yx>screen
|
||||||
:<rot :drawmaprow :swap
|
:<rot :drawmaprow :swap
|
||||||
:dup :not) :drop :drop :object-redraw)
|
:dup :not) :drop :drop :player-redraw)
|
||||||
|
|
||||||
(vm:def :lookup-tile ; itile -- ptile
|
(vm:def :lookup-tile ; itile -- ptile
|
||||||
; each tile is 32 bytes; 2^5
|
; each tile is 32 bytes; 2^5
|
||||||
|
|
101
game/init.fnl
101
game/init.fnl
|
@ -27,18 +27,59 @@
|
||||||
[:sta vm.ST1H :x]
|
[:sta vm.ST1H :x]
|
||||||
(vm:drop))
|
(vm:drop))
|
||||||
|
|
||||||
(vm:var :jaye-yx 0x080f)
|
(vm:var :jaye-yx 0x0a0a)
|
||||||
(vm:var :jaye-dir 0xff00)
|
(vm:var :jaye-dir 0xff00)
|
||||||
(vm:var :neut-yx 0xffff)
|
(vm:var :neut-yx 0x0b08)
|
||||||
|
(vm:var :current-rexx 0)
|
||||||
|
|
||||||
(local controlstate {
|
(local controlstate {
|
||||||
:jaye 0
|
:jaye 0
|
||||||
:neut 1
|
:neut 1
|
||||||
|
:rexx 2
|
||||||
|
:count 3
|
||||||
})
|
})
|
||||||
|
|
||||||
(vm:var :controlstate [:db controlstate.jaye])
|
(vm:var :controlstate [:db controlstate.jaye])
|
||||||
(vm:word :is-jaye? :controlstate :bget controlstate.jaye :=)
|
(vm:word :is-jaye? :controlstate :bget controlstate.jaye :=)
|
||||||
(vm:word :is-neut? :controlstate :bget controlstate.neut :=)
|
(vm:word :is-neut? :controlstate :bget controlstate.neut :=)
|
||||||
|
(vm:word :is-rexx? :controlstate :bget controlstate.rexx :=)
|
||||||
|
(vm:word :is-prog? :is-neut? :is-rexx? :|)
|
||||||
(vm:word :neut-hidden? :neut-yx :get 0xffff :=)
|
(vm:word :neut-hidden? :neut-yx :get 0xffff :=)
|
||||||
|
|
||||||
|
(vm:word :player-tile ; -- ptile
|
||||||
|
:controlstate :bget
|
||||||
|
(vm:case [controlstate.jaye :jaye-tile]
|
||||||
|
[controlstate.neut :neut-tile]
|
||||||
|
[:else :lit :t-rexx]))
|
||||||
|
|
||||||
|
(vm:word :player-yx ; -- pyx
|
||||||
|
:controlstate :bget
|
||||||
|
(vm:case [controlstate.jaye :jaye-yx]
|
||||||
|
[controlstate.neut :neut-yx]
|
||||||
|
[:else :current-rexx :dup (vm:when :get)]))
|
||||||
|
|
||||||
|
(vm:word :draw-player ; --
|
||||||
|
:player-yx :dup (vm:if [:get :dup 0xffff := (vm:if [:drop] [:yx>screen :player-tile :drawtile])] [:drop]))
|
||||||
|
|
||||||
|
(vm:word :set-player-dir ; dir --
|
||||||
|
:is-jaye? (vm:if [:jaye-dir :set] [:drop]))
|
||||||
|
|
||||||
|
(vm:word :movable-player-flag ; -- flag
|
||||||
|
:is-neut? (vm:if [neutable] [walkable]))
|
||||||
|
|
||||||
|
(vm:word :move-player-to ; yx --
|
||||||
|
:player-yx :dup :get :drawtile-at
|
||||||
|
:set :draw-player)
|
||||||
|
|
||||||
|
(vm:word :try-move-player ; dir --
|
||||||
|
:dup :set-player-dir ; dir
|
||||||
|
:player-yx :get :yx+ ; yxnew
|
||||||
|
(vm:if-or [[:dup :touch-entity] [:dup :movable-player-flag :flag-at? :not]]
|
||||||
|
[:drop :player-yx :get])
|
||||||
|
; always "move" so that player can visibly change direction
|
||||||
|
; touch-entity can modify player-yx so we have to refetch
|
||||||
|
:move-player-to)
|
||||||
|
|
||||||
(vm:word :jaye-tile ; ptile
|
(vm:word :jaye-tile ; ptile
|
||||||
:jaye-dir :get
|
:jaye-dir :get
|
||||||
(vm:case [0xff00 :lit :jaye-n]
|
(vm:case [0xff00 :lit :jaye-n]
|
||||||
|
@ -46,59 +87,31 @@
|
||||||
[0x00ff :lit :jaye-w]
|
[0x00ff :lit :jaye-w]
|
||||||
[:else :lit :jaye-e]))
|
[:else :lit :jaye-e]))
|
||||||
|
|
||||||
(vm:word :draw-jaye-yx ; yx --
|
|
||||||
:yx>screen :jaye-tile :drawtile)
|
|
||||||
|
|
||||||
(vm:word :move-jaye-to ; yx --
|
|
||||||
:jaye-yx :get :drawtile-at
|
|
||||||
:dup :jaye-yx :set :draw-jaye-yx)
|
|
||||||
|
|
||||||
(vm:word :neut-tile :lit :neut1) ; todo: animate
|
(vm:word :neut-tile :lit :neut1) ; todo: animate
|
||||||
|
|
||||||
(vm:word :draw-neut-yx ; yx --
|
|
||||||
:yx>screen :neut-tile :drawtile)
|
|
||||||
|
|
||||||
(vm:word :move-neut-to ; yx --
|
|
||||||
:neut-yx :get :drawtile-at
|
|
||||||
:dup :neut-yx :set :draw-neut-yx)
|
|
||||||
|
|
||||||
(vm:word :move-jaye ; --
|
|
||||||
:jaye-dir :get :jaye-yx :get :yx+ :move-jaye-to)
|
|
||||||
|
|
||||||
(vm:word :flag-at? ; yx flag -- f
|
(vm:word :flag-at? ; yx flag -- f
|
||||||
:swap :itile-at :lookup-flags :&)
|
:swap :itile-at :lookup-flags :&)
|
||||||
|
|
||||||
(vm:word :get-player-yx ; -- yx
|
(vm:word :swap-player
|
||||||
:is-jaye? (vm:if [:jaye-yx] [:neut-yx]) :get)
|
(vm:ifchain [:is-prog?] [controlstate.jaye]
|
||||||
|
[:neut-hidden?] [controlstate.jaye]
|
||||||
(vm:word :try-move-jaye ; dir --
|
[:current-rexx :get] [controlstate.rexx]
|
||||||
:dup :jaye-dir :set ; dir
|
[controlstate.neut]) :controlstate :bset)
|
||||||
:jaye-yx :get ; dir yx
|
|
||||||
:yx+ ; yxnew
|
|
||||||
(vm:if-or [[:dup :touch-entity] [:dup walkable :flag-at? :not]]
|
|
||||||
[:drop :jaye-yx :get])
|
|
||||||
; always "move" so that jaye visibly changes direction
|
|
||||||
; touch-entity can modify jaye-yx so we have to refetch
|
|
||||||
:move-jaye-to)
|
|
||||||
|
|
||||||
(vm:word :try-move-neut ; dir --
|
|
||||||
:neut-yx :get :yx+
|
|
||||||
(vm:if-and [[:dup :touch-entity :not] [:dup neutable :flag-at?]]
|
|
||||||
[:move-neut-to] [:drop]))
|
|
||||||
|
|
||||||
(vm:word :swap-player :neut-hidden? :not :is-jaye? :& (vm:if [controlstate.neut] [controlstate.jaye]) :controlstate :bset)
|
|
||||||
|
|
||||||
(vm:word :player-key ; key --
|
(vm:word :player-key ; key --
|
||||||
(vm:ifchain
|
(vm:ifchain
|
||||||
[:dup (string.byte " ") :=] [:drop :swap-player]
|
[:dup (string.byte " ") :=] [:drop :swap-player]
|
||||||
[:movement-dir :dup]
|
[:movement-dir :dup]
|
||||||
[:get-player-yx :swap ; oldyx dir
|
[:player-yx :get :swap ; oldyx dir
|
||||||
:is-jaye? (vm:if [:try-move-jaye] [:try-move-neut])
|
:try-move-player
|
||||||
:dup :get-player-yx := :not (vm:if [:untouch-entity] [:drop])]
|
:dup :player-yx :get := :not (vm:if [:untouch-entity] [:drop])]
|
||||||
[:drop]))
|
[:drop]))
|
||||||
|
|
||||||
(vm:word :full-redraw :drawmap :object-redraw)
|
(vm:word :full-redraw :drawmap :player-redraw)
|
||||||
(vm:word :object-redraw :jaye-yx :get :draw-jaye-yx)
|
(vm:word :player-redraw
|
||||||
|
:controlstate :bget
|
||||||
|
controlstate.count (vm:for (vm:i) :controlstate :bset :draw-player)
|
||||||
|
:controlstate :bset)
|
||||||
|
|
||||||
(tile.appendtiles org.tiles)
|
(tile.appendtiles org.tiles)
|
||||||
(tile.appendgfx org.font (tile.loadgfx tile.fn-font))
|
(tile.appendgfx org.font (tile.loadgfx tile.fn-font))
|
||||||
|
@ -122,7 +135,7 @@
|
||||||
)
|
)
|
||||||
:quit])
|
:quit])
|
||||||
|
|
||||||
(util.reload :game.level1)
|
(util.reload :game.level2)
|
||||||
|
|
||||||
(prg:assemble)
|
(prg:assemble)
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
(local {: deflevel : say : itile} (require :game.defs))
|
(local {: deflevel : say : itile} (require :game.defs))
|
||||||
(local {: ev} (require :game.entity))
|
(local {: ev} (require :game.entity))
|
||||||
(local level (deflevel "game/map00001.json"))
|
(local level (deflevel "game/map1.json"))
|
||||||
(local vm level.vm)
|
(local vm level.vm)
|
||||||
|
|
||||||
(vm:word :firstdoor
|
(vm:word :firstdoor
|
||||||
|
|
6
game/level2.fnl
Normal file
6
game/level2.fnl
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
(local {: deflevel : say : itile} (require :game.defs))
|
||||||
|
(local {: ev} (require :game.entity))
|
||||||
|
(local level (deflevel "game/map2.json"))
|
||||||
|
(local vm level.vm)
|
||||||
|
|
||||||
|
level
|
|
@ -1 +0,0 @@
|
||||||
{"map":"212121214121212121212121212141212121212161026161610261616102616161616102616161216143C0C0E2C0C0C0C0C0C06361C0C0C0C0C0612161C0C0A282C0C0C0A2C0C0C081C0C0C0C0C2024161C0C0C0C0C0C0C0C0C2C0A2C1A2C0C0E082612161E2C08282C0C0C0C0A2C0C06161616161616121616161616161C181616161616143C0C0E282612161C0C0C0C0C0C0C0C0C0C0C061C0C0C0C0C0022161E08282A2C0C0C0C0E2C0C081C0C0C0C003612161E2C2C2C0C0C0C0C0C0C0C061C0C0C0C0C06141610303C063E2C0C0C0C0C0C061C0C0C023C061216161616161616161228161616161616161610221","objects":[{"link":2,"y":6,"func":"switch","name":"","linkword":"","x":7},{"x":8,"func":"door","y":6,"linkword":"","name":""},{"x":2,"link":4,"func":"firstterm","linkword":"","name":"","y":4},{"x":17,"link":3,"func":"neutterm","linkword":"","name":"","y":8},{"x":13,"link":6,"func":"switch","linkword":"","name":"","y":8},{"x":13,"func":"firstdoor","linkword":"","name":"","y":9},{"x":9,"link":8,"func":"exitscanner","y":1,"name":"","linkword":""},{"x":10,"func":"door","linkword":"","name":"","y":1}]}
|
|
1
game/map1.json
Normal file
1
game/map1.json
Normal file
|
@ -0,0 +1 @@
|
||||||
|
{"map":"212121214121212121212121212141212121212161026161610261616102616161616102616161216143C0C0E2C0C0C0C0C0C0C081C0C0C0C0C0612161C0C0A282C0C0C0A2C0C0C061C0C0C0C0C2024161C0C0C0C0C0C0C0C0C2C0A2C1A2C0C0E082612161E2C08282C0C0C0C0A2C0C061616161616161216161616161C16181616161616143C0C0E282612161C0C0C0C0C0C0C0C0C0C0C061C0C0C0C0C0022161E08282A2C0C0C0C0E2C0C081C0C0C0C003612161E2C2C2C0C0C0C0C0C0C0C061C0C0C0C0C06141610303C063E2C0C0C0C0C0C061C0C0C023C061216161616161616161228161616161616161610221","objects":[{"x":8,"func":"door","name":"","linkword":"","y":6},{"link":3,"y":4,"func":"firstterm","name":"","linkword":"","x":2},{"link":2,"y":8,"func":"neutterm","name":"","linkword":"","x":17},{"link":8,"y":8,"func":"switch","name":"","linkword":"","x":13},{"link":6,"linkword":"","func":"exitscanner","x":9,"name":"","y":1},{"x":10,"func":"door","y":1,"linkword":"","name":""},{"x":6,"link":1,"func":"switch","linkword":"","name":"","y":6},{"x":13,"func":"firstdoor","linkword":"","name":"","y":10}]}
|
1
game/map2.json
Normal file
1
game/map2.json
Normal file
|
@ -0,0 +1 @@
|
||||||
|
{"map":"616161616161626161618161616161616161612161C0C0C06361C0C0E0C0C0C0C0C06103C0C0022161E0C0C0C081C0C0C0C0C0C0C0C081C0C0E0614161C0C0C0C06143C0C0C0C0C0C04322C0C0C0222161C0C0C0C061618161616161816161C0C0C00221616181616161C0C0C06143C0C0C061618161612161C0C0C06361E0C0C061C0C0C0C0C1E0C003612122C0C0C0C061C0C0C061C0E0C0C061C0C0C0022161C0C0C0C061616161616261616161C0C0C061416101C0C0C081C0C0E061C0C0E0C081C0C0C0022162C0C0C02361E0C0C06143C0C0C061E2A2E061216161C1616261612281616122226162C1C1616121","objects":[{"x":9,"link":2,"func":"term","linkword":"","name":"","y":11},{"x":2,"link":6,"func":"term","linkword":"","name":"","y":3},{"x":6,"func":"door","linkword":"","name":"","y":10},{"x":1,"link":5,"func":"scan","linkword":"","name":"","y":5},{"x":8,"func":"door","linkword":"","name":"","y":8},{"x":7,"link":2,"func":"term","linkword":"","name":"","y":6},{"x":12,"link":8,"func":"scan","linkword":"","name":"","y":1},{"x":17,"func":"door","linkword":"","name":"","y":7},{"x":13,"link":10,"func":"scan","linkword":"","name":"","y":1},{"x":13,"func":"door","linkword":"","name":"","y":8},{"x":15,"link":12,"func":"switch","linkword":"","name":"","y":6},{"x":2,"link":13,"func":"term","linkword":"","name":"","y":10},{"x":12,"link":12,"func":"term","linkword":"","name":"","y":5},{"x":15,"link":15,"func":"scan","linkword":"","name":"","y":9},{"x":15,"func":"door","linkword":"","name":"","y":10},{"x":16,"link":17,"func":"term","linkword":"","name":"","y":6},{"x":18,"link":16,"func":"term","linkword":"","name":"","y":10},{"x":15,"func":"door","linkword":"","name":"","y":3},{"x":19,"link":18,"func":"scan","linkword":"","name":"","y":9},{"x":13,"link":21,"func":"term","linkword":"","name":"","y":3},{"x":18,"link":20,"func":"term","linkword":"","name":"","y":2},{"x":8,"link":23,"func":"scan","linkword":"","name":"","y":1},{"x":9,"func":"door","linkword":"","name":"","y":1},{"x":16,"link":3,"func":"switch","linkword":"","name":"","y":1},{"x":3,"link":26,"func":"switch","linkword":"","name":"","y":1},{"x":6,"func":"door","linkword":"","name":"","y":3},{"x":9,"link":28,"func":"term","linkword":"","name":"","y":3},{"x":7,"link":27,"func":"term","linkword":"","name":"","y":2},{"x":3,"func":"door","linkword":"","name":"","y":7},{"x":17,"link":29,"func":"switch","linkword":"","name":"","y":1}]}
|
1
game/map3.json
Normal file
1
game/map3.json
Normal file
|
@ -0,0 +1 @@
|
||||||
|
{"map":"616161616161616181616161616161616161612161C063C0C0C0C0C0C0C06143C0E0C2C0C043022161C0C0C0C0C0C0C0C0C022C0C0C0C0C0C0C0612161C0C0C2C0C0C0C0C0C081C0C0C0C0C0C0C0612161C08282A2C0C0C0C0436123C0C0C0C0C0030221616161616161616261616161618161616161612161C063C0C02301C0C163C0C0C0C0C0822363022122C0C0C0C0C0C0A2A1C0C0C0C0C0C0C2C0C0612181C0C0C0C0E2C0C061C0C0C0C0C0C0C0C2C061216123C0C0C0C083C061E0C2C0C0C0C0438203022161610261610261616161026161026161026161212121212121212121212121212121212121212121","objects":[{"link":2,"y":5,"func":"scan","name":"","linkword":"","x":1},{"x":1,"func":"door","y":4,"linkword":"","name":""},{"link":4,"y":6,"func":"term","name":"","linkword":"","x":7},{"link":7,"y":11,"func":"term","name":"","linkword":"","x":14},{"link":6,"y":6,"func":"switch","name":"","linkword":"","x":9},{"x":11,"func":"door","y":9,"linkword":"","name":""},{"link":3,"y":3,"func":"term","name":"","linkword":"","x":10},{"link":9,"y":10,"func":"scan","name":"","linkword":"","x":11},{"x":14,"func":"door","y":7,"linkword":"","name":""}]}
|
|
@ -1 +1 @@
|
||||||
[{"gfx":"7F7F1F03090923436943230909031F7F7F7F784111104542174245101141787F","word":"","label":"neut1","flags":[]},{"gfx":"7F1F03090923436943230909031F7F7F7F784111104542174245101141787F7F","word":"","label":"neut2","flags":[]},{"gfx":"808080C0C0C0E0C0D0C8C04040404080808083058585828A9282820A08081980","word":"","label":"jaye-e","flags":[]},{"gfx":"8080C020A0A0C0C0D0C8C0501010188080808183838782828A8A920202020380","word":"","label":"jaye-w","flags":[]},{"gfx":"8080E030B0B098C0D0D0C840404060808080870D8D8D99828A8A920202020780","word":"","label":"jaye-s","flags":[]},{"gfx":"8080C0E0E0E0B0C0D0C8C040404060808080838787878D828A92820202020780","word":"","label":"jaye-n","flags":[]},{"gfx":"80808C8080808080B08080808C808080808C80808083B0808080808080868080","word":"","label":"","flags":{"walkable":true}},{"gfx":"007C0C0C0C0C7C007C7E7EAA88888800001F181818181F001F0F979584848400","word":"term","label":"termoff","flags":[]},{"gfx":"007C2C0C0C2C7C007C7E7EAA88888800001F18191C191F001F0F979584848400","word":"term","label":"termon","flags":{"neutable":true}},{"gfx":"D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA","word":"","label":"","flags":[]},{"gfx":"D5D5D5D5D5F5F5FDDDD5D5D5D5D5D5D5AAAAAAAAAEAEBFBFBFABAAAAAAAAAAAA","word":"","label":"","flags":[]},{"gfx":"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF","word":"","label":"","flags":{"neutable":true}},{"gfx":"FF8FA7B3B3B3B3B3B3B3B3B3B3B383FFFFF8F2E6E6E6E6E6E6E6E6E6E6E6E0FF","word":"door","label":"doorclosed","flags":[]},{"gfx":"FF8F87838383838383838383838383FFFFF8F0E0E0E0E0E0E0E0E0E0E0E0E0FF","word":"door","label":"dooropen","flags":{"walkable":true}},{"gfx":"FFFFCFCFCFCF898183838787878FFFFFFFFCE4E4E4E4E0E0E0E0E0E0F0F8FFFF","word":"switch","label":"switchoff","flags":{"neutable":true}},{"gfx":"FFFFCFCFCFCF898123232727878FFFFFFFFCE4E4E4E0E0616565656571F8FFFF","word":"switch","label":"switchon","flags":{"neutable":true}},{"gfx":"FFFF83D3D3D3D3D3D3D3D3D3D383FFFFFFFFC0CACACECACBCACACACACAC0FFFF","word":"","label":"","flags":[]},{"gfx":"FFFFAFEBFBFBFBBBBBFBFBFBEBAFFFFFFFFFF5D7DFDFDFDDDDDFDFDFD7F5FFFF","word":"scan","label":"scanoff","flags":{"neutable":true}},{"gfx":"FFFF2F2B2B2B6B6B6B6B2B2B2B2FFFFFFFFF755555555757575755555575FFFF","word":"scan","label":"scanon","flags":{"neutable":true}},{"gfx":"FFF3C78FBFFCF98187BFFFFFBF9F9FC7FFCFE1F1FCFCF8FEFEFCF9F0E6CE8F9F","word":"","label":"","flags":[]},{"gfx":"80808C80808080A8AAAAAAA888888880808C8080808380859595958584848480","word":"","label":"","flags":[]},{"gfx":"80808C8080A0A0A8AAAA8AA0A8808080808C8081919090848594959585858080","word":"","label":"","flags":{"debris":true}},{"gfx":"00005054545450404054545010383800000C0A2A2A2A0A03032A2A0A081C1C00","word":"","label":"","flags":[]},{"gfx":"0000001C1C10545040606010545454000030070702020A0A0100020A080A0200","word":"","label":"","flags":{"debris":true}},{"gfx":"80A0A8AA92D2D2AAC2C2AA92D2AA808080959595949494959494959494858080","word":"","label":"","flags":[]},{"gfx":"80808C808080A8C292AAAAAAAA8AC0D0808C80808083959290959194948580A8","word":"","label":"","flags":{"debris":true}},{"gfx":"80806008282A0800202880A8A8A8A08080980000141501051511819595958580","word":"","label":"","flags":[]},{"gfx":"80808C808080A0A8AAAA8AA2AAAAAA80808C0000000330010105051511010514","word":"","label":"","flags":{"debris":true}},{"gfx":"0000000000000000000000000000000000000000000000000000000000000000","word":"","label":"","flags":[]}]
|
[{"gfx":"7F7F1F03090923436943230909031F7F7F7F784111104542174245101141787F","word":"","label":"neut1","flags":[]},{"gfx":"7F1F03090923436943230909031F7F7F7F784111104542174245101141787F7F","word":"","label":"neut2","flags":[]},{"gfx":"808080C0C0C0E0C0D0C8C04040404080808083058585828A9282820A08081980","word":"","label":"jaye-e","flags":[]},{"gfx":"8080C020A0A0C0C0D0C8C0501010188080808183838782828A8A920202020380","word":"","label":"jaye-w","flags":[]},{"gfx":"8080E030B0B098C0D0D0C840404060808080870D8D8D99828A8A920202020780","word":"","label":"jaye-s","flags":[]},{"gfx":"8080C0E0E0E0B0C0D0C8C040404060808080838787878D828A92820202020780","word":"","label":"jaye-n","flags":[]},{"gfx":"80808C8080808080B08080808C808080808C80808083B0808080808080868080","word":"","label":"","flags":{"walkable":true}},{"gfx":"007C0C0C0C0C7C007C7E7EAA88888800001F181818181F001F0F979584848400","word":"term","label":"termoff","flags":[]},{"gfx":"007C2C0C0C2C7C007C7E7EAA88888800001F18191C191F001F0F979584848400","word":"term","label":"termon","flags":{"neutable":true}},{"gfx":"D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA","word":"","label":"","flags":[]},{"gfx":"D5D5D5D5D5F5F5FDDDD5D5D5D5D5D5D5AAAAAAAAAEAEBFBFBFABAAAAAAAAAAAA","word":"","label":"","flags":[]},{"gfx":"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF","word":"","label":"","flags":{"neutable":true}},{"gfx":"FF8FA7B3B3B3B3B3B3B3B3B3B3B383FFFFF8F2E6E6E6E6E6E6E6E6E6E6E6E0FF","word":"door","label":"doorclosed","flags":[]},{"gfx":"FF8F87838383838383838383838383FFFFF8F0E0E0E0E0E0E0E0E0E0E0E0E0FF","word":"door","label":"dooropen","flags":{"walkable":true}},{"gfx":"FFFFCFCFCFCF898183838787878FFFFFFFFCE4E4E4E4E0E0E0E0E0E0F0F8FFFF","word":"switch","label":"switchoff","flags":{"neutable":true}},{"gfx":"FFFFCFCFCFCF898123232727878FFFFFFFFCE4E4E4E0E0616565656571F8FFFF","word":"switch","label":"switchon","flags":{"neutable":true}},{"gfx":"FFFF83D3D3D3D3D3D3D3D3D3D383FFFFFFFFC0CACACECACBCACACACACAC0FFFF","word":"","label":"","flags":[]},{"gfx":"FFFFAFEBFBFBFBBBBBFBFBFBEBAFFFFFFFFFF5D7DFDFDFDDDDDFDFDFD7F5FFFF","word":"scan","label":"scanoff","flags":{"neutable":true}},{"gfx":"FFFF2F2B2B2B6B6B6B6B2B2B2B2FFFFFFFFF755555555757575755555575FFFF","word":"scan","label":"scanon","flags":{"neutable":true}},{"gfx":"FFF3C78FBFFCF98187BFFFFFBF9F9FC7FFCFE1F1FCFCF8FEFEFCF9F0E6CE8F9F","word":"","label":"","flags":[]},{"gfx":"80808C80808080A8AAAAAAA888888880808C8080808380859595958584848480","word":"","label":"","flags":[]},{"gfx":"80808C8080A0A0A8AAAA8AA0A8808080808C8081919090848594959585858080","word":"","label":"","flags":{"debris":true}},{"gfx":"00005054545450404054545010383800000C0A2A2A2A0A03032A2A0A081C1C00","word":"","label":"","flags":[]},{"gfx":"0000001C1C10545040606010545454000030070702020A0A0100020A080A0200","word":"","label":"","flags":{"debris":true}},{"gfx":"80A0A8AA92D2D2AAC2C2AA92D2AA808080959595949494959494959494858080","word":"","label":"","flags":[]},{"gfx":"80808C808080A8C292AAAAAAAA8AC0D0808C80808083959290959194948580A8","word":"","label":"","flags":{"debris":true}},{"gfx":"80806008282A0800202880A8A8A8A08080980000141501051511819595958580","word":"","label":"","flags":[]},{"gfx":"80808C808080A0A8AAAA8AA2AAAAAA80808C0000000330010105051511010514","word":"","label":"","flags":{"debris":true}},{"gfx":"80D0D0D0C0D4C4C4CECAC0E0A0808080808A8B8A82AAA2A2F2D2828785808080","word":"","label":"t-rexx","flags":[]},{"gfx":"F8989898BE8686868686BEB098F880809F989898FCE0E0E0E0E0FC8C989F8080","word":"","label":"","flags":[]}]
|
Loading…
Reference in a new issue