home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
GameStar Special 2004 August
/
GSSH0804.iso
/
Geschicklichkeit
/
Enigma
/
Enigma-081.exe
/
data
/
levels
/
nat11.lua
< prev
next >
Wrap
Text File
|
2003-03-28
|
4KB
|
123 lines
-- Time is Money
-- A level for Enigma
--
-- Copyright (c) 2003 Nat Pryce
-- Licensed under the GPL, v2.0 or greater
function floor( floor_type, attribs )
return function( x, y )
set_floor( %floor_type, x, y, %attribs or {} )
end
end
function stone( stone_type, attribs )
return function( x, y )
set_stone( %stone_type, x, y, %attribs or {} )
end
end
function item( item_type, attribs )
return function( x, y )
set_item( %item_type, x, y, %attribs or {} )
end
end
function actor( actor_type, attribs )
return function( x, y )
set_actor( %actor_type, x+0.5, y+0.5, %attribs
or {} )
end
end
function gradient( gradient_type )
return function( x, y )
set_floor( "fl-gradient", x, y, {type=%gradient_type} )
end
end
function create_world_from_map( tiles, map )
create_world( strlen(map[1]), getn(map) )
for y,line in map do
for x = 1,strlen(line) do
local tile = strchar(strbyte(line,x))
local constructors = tiles[tile]
if constructors then
for i,constructor in constructors do
constructor(x-1,y-1)
end
else
error("invalid tile identifier " ..
tile )
end
end
end
end
default_floor = floor("fl-normal")
oxyd_default_flavor = "b"
tiles = {
[" "] = { abyss },
["S"] = { floor("fl-normal") },
["W"] = { gradient(SLOPE_S) },
["X"] = { gradient(SLOPE_N) },
["A"] = { gradient(SLOPE_E) },
["D"] = { gradient(SLOPE_W) },
["Q"] = { gradient(SLOPE_LARGE_SE) },
["Z"] = { gradient(SLOPE_LARGE_NE) },
["E"] = { gradient(SLOPE_LARGE_SW) },
["C"] = { gradient(SLOPE_LARGE_NW) },
["q"] = { gradient(SLOPE_SMALL_SE) },
["z"] = { gradient(SLOPE_SMALL_NE) },
["e"] = { gradient(SLOPE_SMALL_SW) },
["c"] = { gradient(SLOPE_SMALL_NW) },
["o"] = { default_floor,
actor("ac-blackball",{player=0}) },
["#"] = { default_floor,
stone("st-rock1") },
["="] = { default_floor,
stone("st-coinslot",
{target="laser",action="onoff"})},
["$"] = { default_floor,
item("it-coin",{value=4}) },
["x"] = { default_floor, oxyd },
[">"] = { default_floor,
stone("st-laser",
{name="laser",on=TRUE,dir=EAST})},
}
create_world_from_map( tiles, {
" ",
" ##################################### ",
" #QWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWE# ",
" =ASoS$SSSSSSSSSSSSSSSSSSSSSSSSSSSSSD# ",
" #ZXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXzSD# ",
" #################################ASD# ",
" #ASD# ",
" #x#x# ###########################ASD# ",
" #QWE# #QWWWWWWWWWWWWWWWWWWWWWWWWWqSD# ",
" #ASD# #ASSSSSSSSSSSSSSSSSSSSSSSSSSSD# ",
" #ASD# #AScXXXXXXXXXXXXXXXXXXXXXXXXXC# ",
" >ASD# #ASD########################### ",
" #ASD# #ASD# ",
" #ASD# #ASD########################### ",
" #ASD# #ASeWWWWWWWWWWWWWWWWWWWWWWWWWE# ",
" #ASD# #ASSSSSSSSSSSSSSSSSSSSSSSSSSSD# ",
" #ASD# #ZXXXXXXXXXXXXXXXXXXXXXXXXXzSD# ",
" #ASD# ###########################ASD# ",
" #ASD# #ASD# ",
" #ASD#############################ASD# ",
" #ASeWWWWWWWWWWWWWWWWWWWWWWWWWWWWWqSD# ",
" #ASSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSD# ",
" #ZXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXC# ",
" ##################################### ",
" ",
})
oxyd_shuffle()