home *** CD-ROM | disk | FTP | other *** search
- -- Twelve Doors
- -- A public domain Sokoban level adapted for Enigma
- --
- -- Copyright (c) 2002 Nat Pryce
-
-
- trigger_count = 0
- function trigger( x, y )
- door_id = "door"..trigger_count
- trigger_count = trigger_count + 1
-
- set_floor( "fl-rough", x, y )
- set_item( "it-trigger", x, y, {target=door_id, action="openclose"} )
- end
-
- door_count = 0
- function door( x, y )
- id = "door"..door_count
- door_count = door_count + 1
-
- set_floor( "fl-rough", x, y )
- doorh( x, y, {name=id} )
- end
-
-
- level = {
- " ################# ",
- " ###o##::::::::::::# ",
- " #....#++++++++++++# ",
- " #.a..#::::::::::::# ",
- " #.aa.#::::::::::::# ",
- " ##.a.###b######=### ",
- " #,###..a.# #=# ",
- " ##...b..a.# #=# ",
- " #..a.#..a.# #=# ",
- " ####.a..#....# #=# ",
- " #s.#..a.#....# #=# ",
- " #..@....#....# #=# ",
- " ############## #=# ",
- " #=# ",
- " #=# ",
- " #=# ",
- " #x#=#x# ",
- " x:::::x ",
- " #:::::# ",
- " x::^::x ",
- " #:::::# ",
- " x:::::x ",
- " #x###x# ",
- " ",
- " ",
- }
-
- cells = {}
- cells[" "] = function( x, y )
- set_floor( "fl-leaves", x,y )
- end
- cells["#"] = function( x, y )
- set_floor( "fl-leaves", x, y )
- set_stone( "st-greenbrown", x, y )
- end
- cells["@"] = function( x, y )
- set_floor( "fl-gray", x, y )
- set_stone( "st-greenbrown_move", x, y )
- end
- cells["o"] = function( x, y )
- set_floor( "fl-gray", x, y )
- set_actor( "ac-blackball", x+0.5, y+0.5, {player=0} )
- end
- cells["x"] = function( x, y )
- set_floor( "fl-gray", x, y )
- oxyd(x,y)
- end
- cells["."] = function( x, y )
- set_floor( "fl-gray", x, y )
- end
- cells["a"] = function( x, y )
- set_floor( "fl-gray", x, y )
- set_stone( "st-brownie", x, y )
- end
- cells[","] = function( x, y )
- set_floor( "fl-normal", x, y )
- end
- cells["b"] = function( x, y )
- set_floor( "fl-normal", x, y )
- set_stone( "st-brownie", x, y )
- end
- cells[":"] = function( x, y )
- set_floor( "fl-rough", x, y )
- end
- cells["+"] = trigger
- cells["="] = door
- cells["^"] = function( x, y )
- set_floor( "fl-rough", x, y )
- set_stone( "st-laser", x, y, {name="laser", dir=NORTH, on=1} )
- end
- cells["s"] = function( x, y )
- set_floor( "fl-hay", x, y )
- set_stone( "st-switch", x, y, {on=1,target="laser", action="onoff"} )
- end
-
-
- create_world( strlen(level[1]), getn(level) )
- oxyd_default_flavor = "a"
- for y,line in level do
- for x = 1,strlen(line) do
- cell = strchar(strbyte(line,x))
- cells[cell]( x-1, y-1 )
- end
- end
- oxyd_shuffle()
-