home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
GameStar Special 2004 August
/
GSSH0804.iso
/
Geschicklichkeit
/
Enigma
/
Enigma-081.exe
/
data
/
levels
/
immanuel02.lua
< prev
next >
Wrap
Text File
|
2003-08-18
|
4KB
|
153 lines
-- Door Maze
-- (c) 2003 by Immanuel Herrmann
-- Licensed under GPL v2.0 or above
levelw = 20
levelh = 13
create_world(levelw, levelh)
enigma.ConserveLevel = FALSE
oxyd_default_flavor = "a"
fill_floor("fl-bluegray", 0, 0, levelw, levelh)
zaehler = 1
function tuer(x, y, ri)
set_floor( "fl-bluegreen", x, y)
set_stone( "st-bolder", x, y, {direction=ri, name="tuer"..strsub("dcbae",zaehler, zaehler)})
zaehler = zaehler + 1
end
function kabel(x, y, co)
set_stone( "st-puzzle", x, y, {connections = co})
end
function renderLine( y, pattern)
for x=0, strlen(pattern) - 1 do
local c = strsub( pattern, x + 1, x + 1)
if c =="#" then
set_stone( "st-rock2", x, y)
elseif c == "o" then
oxyd( x, y)
elseif c == "s" then
set_actor("ac-blackball", x+0.5, y+0.5, {player=0})
elseif c == "-" then
kabel(x, y, 6)
elseif c == "|" then
kabel(x, y, 11)
elseif c == "`" then
kabel(x, y, 13)
elseif c == "'" then
kabel(x, y, 10)
elseif c == "," then
kabel(x, y, 7)
elseif c == "." then
kabel(x, y, 4)
elseif c == "+" then
kabel(x, y, 16)
elseif c == ":" then
set_stone( "st-puzzle", x, y, {connections = 1})
--set_stone("st-grate1", x, y)
elseif c == "~" then
set_stone("st-grate1", x, y)
elseif (c >= "A" and c <= "E") or (c >= "a" and c <= "e") then
set_item("it-trigger", x, y, {action="callback", target="tt"..c})
elseif c == "t" then
set_floor( "fl-bluegreen", x, y)
elseif c == "^" then
tuer(x, y, NORTH)
elseif c == ">" then
tuer(x, y, EAST)
elseif c == "v" then
tuer(x, y, SOUTH)
elseif c == "<" then
tuer(x, y, WEST)
elseif c == "" then
set_stone( "", x, y)
elseif c == "" then
set_stone( "", x, y)
elseif c == "" then
set_stone( "", x, y)
end
end
end
renderLine( 0, "####,------.########")
renderLine( 1, "# D# | C.")
renderLine( 2, "# ## # # # `:.## ##|")
renderLine( 3, ",ao,:-:-:-t<t'o# |")
renderLine( 4, "| #|s,:. # # ,t>t-:'")
renderLine( 5, "| e: t | B #E: # # #")
renderLine( 6, "|,+'#v#|,' ||#,t<t.")
renderLine( 7, "|dt t `+b# || : # |")
renderLine( 8, "|#v# `:-'c-:+' | |")
renderLine( 9, "| t # : |###|")
renderLine(10, "|~`---------'##| |")
renderLine(11, "| ~ : #A'")
renderLine(12, "`--------------'####")
--renderLine( 0, ",------------------.")
--renderLine( 1, "| D------. C|")
--renderLine( 2, "| ## # `:.## ,'|")
--renderLine( 3, "`ao,:-:-:-t<t'o# : |")
--renderLine( 4, "# #|s,:. # # ,t>t' |")
--renderLine( 5, "# e: t | B #E: ,:-:'")
--renderLine( 6, "#,+'#v#|,' ||#`t<t.")
--renderLine( 7, "#dt t `+b# || # |")
--renderLine( 8, "##v# `:-'c-:+' # |")
--renderLine( 9, "# t # : ####|")
--renderLine(10, "# `---------'## #|")
--renderLine(11, "# # A'")
--renderLine(12, "####################")
function tuer_bewegen(tnr, ri)
enigma.SendMessage(enigma.GetNamedObject("tuer"..tnr), "direction", ri);
end
-- Gro▀buchstabe bewegt nach west / nord...
function ttA()
tuer_bewegen("a", WEST)
end
function tta()
tuer_bewegen("a", EAST)
end
function ttB()
tuer_bewegen("b", NORTH)
end
function ttb()
tuer_bewegen("b", SOUTH)
end
function ttC()
tuer_bewegen("c", WEST)
end
function ttc()
tuer_bewegen("c", EAST)
end
function ttD()
tuer_bewegen("d", WEST)
end
function ttd()
tuer_bewegen("d", EAST)
end
function ttE()
tuer_bewegen("e", NORTH)
end
function tte()
tuer_bewegen("e", SOUTH)
end