home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
GameStar Special 2004 August
/
GSSH0804.iso
/
Geschicklichkeit
/
Enigma
/
Enigma-081.exe
/
data
/
levels
/
ss_esp94.lua
< prev
next >
Wrap
Text File
|
2003-08-14
|
5KB
|
171 lines
-- Sven Siggelkow 2003
-- ESPRIT #94
levelw = 20
levelh = 13
create_world(levelw, levelh)
oxyd_default_flavor = "d"
set_actor("ac-blackball", 9.5,6.5, {player=0})
fill_floor("fl-samba", 0,0, levelw,levelh)
function renderLine( line, pattern)
for i=1, strlen(pattern) do
local c = strsub( pattern, i, i)
if c == "#" then
set_stone("st-rock1", i-1,line)
elseif c ==">" then
set_stone("st-oneway_black-e",i-1,line)
set_item("it-blocker", i-1,line) -- to prevent placing a seed
elseif c =="<" then
set_stone("st-oneway_black-w",i-1,line)
set_item("it-blocker", i-1,line)
elseif c =="x" then
set_stone("st-rock1_move", i-1,line)
set_item("it-seed", i-1,line)
elseif c =="a" then
set_item("it-trigger", i-1,line, {invisible=1,action="callback", target="s1"})
elseif c =="b" then
set_item("it-trigger", i-1,line, {invisible=1,action="callback", target="s2"})
elseif c =="c" then
set_item("it-trigger", i-1,line, {invisible=1,action="callback", target="s3"})
elseif c =="d" then
set_item("it-trigger", i-1,line, {invisible=1,action="callback", target="s4"})
elseif c =="e" then
set_item("it-trigger", i-1,line, {invisible=1,action="callback", target="s5"})
elseif c =="f" then
set_item("it-trigger", i-1,line, {invisible=1,action="callback", target="s6"})
elseif c =="g" then
set_item("it-trigger", i-1,line, {invisible=1,action="callback", target="s7"})
elseif c =="h" then
set_item("it-trigger", i-1,line, {invisible=1,action="callback", target="s8"})
elseif c =="i" then
set_item("it-trigger", i-1,line, {invisible=1,action="callback", target="s9"})
elseif c =="j" then
set_item("it-trigger", i-1,line, {invisible=1,action="callback", target="s10"})
elseif c =="k" then
set_item("it-trigger", i-1,line, {invisible=1,action="callback", target="s11"})
elseif c =="l" then
set_item("it-trigger", i-1,line, {invisible=1,action="callback", target="s12"})
elseif c =="w" then
set_item("it-wormhole",i-1,line, {name="warp",targetx="2.5",targety="3.5",strength=0})
elseif c=="O" then
oxyd(i-1,line)
end
end
end
-- 01234567890123456789
renderLine(00 , "####################")
renderLine(01 , "# > < #")
renderLine(02 , "O > < O")
renderLine(03 , "# axg > < dxj #")
renderLine(04 , "####### #######")
renderLine(05 , "# > < #")
renderLine(06 , "O > w < O")
renderLine(07 , "# bxh > < exk #")
renderLine(08 , "####### #######")
renderLine(09 , "# > < #")
renderLine(10 , "O > < O")
renderLine(11 , "# cxi > < fxl #")
renderLine(12 , "####################")
-- 01234567890123456789
function s1() s(1) end
function s2() s(2) end
function s3() s(3) end
function s4() s(4) end
function s5() s(5) end
function s6() s(6) end
function s7() s(7) end
function s8() s(8) end
function s9() s(9) end
function s10() s(10) end
function s11() s(11) end
function s12() s(12) end
local flags = {0,0,0,0,0,0,0,0,0,0,0,0}
x = 2.5
y = 3.5
function s(num)
%flags[num]=1-%flags[num]
status=0
for i=1,12 do
status = status + %flags[i]*(2^i)
end
if status == 0 then
xalt = x
yalt = y
x = 2.5
y = 3.5
elseif status == 2 then
xalt = x
yalt = y
x = 2.5
y = 7.5
elseif status == 6 then
xalt = x
yalt = y
x = 2.5
y = 11.5
elseif status == 14 then
xalt = x
yalt = y
x = 15.5
y = 3.5
elseif status == 30 then
xalt = x
yalt = y
x = 15.5
y = 7.5
elseif status == 62 then
xalt = x
yalt = y
x = 15.5
y = 11.5
elseif status == 126 then
xalt = x
yalt = y
x = 4.5
y = 3.5
elseif status == 254 then
xalt = x
yalt = y
x = 4.5
y = 7.5
elseif status == 510 then
xalt = x
yalt = y
x = 4.5
y = 11.5
elseif status == 1022 then
xalt = x
yalt = y
x = 17.5
y = 3.5
elseif status == 2046 then
xalt = x
yalt = y
x = 17.5
y = 7.5
elseif status == 4094 then
xalt = x
yalt = y
x = 17.5
y = 11.5
elseif status == 8190 then
xalt = x
yalt = y
x = 2.5
y = 1.5
document(2,1,"If you haven't won, you've lost!")
else
x=xalt
y=yalt
end
set_attribs(enigma.GetNamedObject("warp"), {targetx=x, targety=y})
end