home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
GameStar Special 2004 August
/
GSSH0804.iso
/
Geschicklichkeit
/
Enigma
/
Enigma-081.exe
/
data
/
levels
/
duffy19.lua
< prev
next >
Wrap
Text File
|
2003-08-27
|
16KB
|
1,021 lines
levelw=25
levelh=15
create_world( levelw, levelh)
fill_floor("fl-hay",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-greenbrown", i-1, line)
elseif c =="r" then
set_stone( "st-invisible", i-1, line)
abyss(i-1,line)
elseif c == "o" then
oxyd( i-1, line)
elseif c =="." then
set_floor( "fl-hay", i-1, line)
-- Mark original positions of abysses
elseif c=="z" then
set_actor("ac-blackball", i-.5,line+.5, {player=0, mouseforce=1})
end
end
end
-- Floor: " "
-- Border: "#"
-- Oxyd: "o"
renderLine(00,"####o##########o####")
renderLine(01,"# #")
renderLine(02,"o ................ o")
renderLine(03,"# #")
renderLine(04,"o .............. o")
renderLine(05,"# . #")
renderLine(06,"o . o")
renderLine(07,"# .. #")
renderLine(08,"o . o")
renderLine(09,"# . z #")
renderLine(10,"o ............ o")
renderLine(11,"# #")
renderLine(12,"####o##########o####")
oxyd_shuffle()
s0x=17
s0y=2
s1x=16
s1y=2
s2x=15
s2y=2
s3x=14
s3y=2
s4x=13
s4y=2
s5x=12
s5y=2
s6x=11
s6y=2
s7x=10
s7y=2
s8x=9
s8y=2
s9x=8
s9y=2
sax=7
say=2
sbx=6
sby=2
scx=5
scy=2
sdx=4
sdy=2
sjx=3
sjy=2
skx=2
sky=2
px=2
s0x2=2
s0y2=10
s1x2=3
s1y2=10
s2x2=4
s2y2=10
s3x2=5
s3y2=10
s4x2=6
s4y2=10
s5x2=7
s5y2=10
s6x2=8
s6y2=10
s7x2=9
s7y2=10
s8x2=10
s8y2=10
s9x2=11
s9y2=10
sax2=12
say2=10
sbx2=13
sby2=10
scx2=13
scy2=9
sdx2=13
sdy2=8
sjx2=13
sjy2=7
skx2=12
sky2=7
px2=4
s0x3=4
s0y3=6
s1x3=4
s1y3=5
s2x3=4
s2y3=4
s3x3=5
s3y3=4
s4x3=6
s4y3=4
s5x3=7
s5y3=4
s6x3=8
s6y3=4
s7x3=9
s7y3=4
s8x3=10
s8y3=4
s9x3=11
s9y3=4
sax3=12
say3=4
sbx3=13
sby3=4
scx3=14
scy3=4
sdx3=15
sdy3=4
sjx3=16
sjy3=4
skx3=17
sky3=4
px3=3
set_floor( "fl-abyss", s0x, s0y)
set_floor( "fl-abyss", s1x, s1y)
set_floor( "fl-abyss", s2x, s2y)
set_floor( "fl-abyss", s3x, s3y)
set_floor( "fl-abyss", s4x, s4y)
set_floor( "fl-abyss", s5x, s5y)
set_floor( "fl-abyss", s6x, s6y)
set_floor( "fl-abyss", s7x, s7y)
set_floor( "fl-abyss", s8x, s8y)
set_floor( "fl-abyss", s9x, s9y)
set_floor( "fl-abyss", sax, say)
set_floor( "fl-abyss", sbx, sby)
set_floor( "fl-abyss", scx, scy)
set_floor( "fl-abyss", sdx, sdy)
set_floor( "fl-abyss", sjx, sjy)
set_floor( "fl-abyss", skx, sky)
set_floor( "fl-abyss", s0x2, s0y2)
set_floor( "fl-abyss", s1x2, s1y2)
set_floor( "fl-abyss", s2x2, s2y2)
set_floor( "fl-abyss", s3x2, s3y2)
set_floor( "fl-abyss", s4x2, s4y2)
set_floor( "fl-abyss", s5x2, s5y2)
set_floor( "fl-abyss", s6x2, s6y2)
set_floor( "fl-abyss", s7x2, s7y2)
set_floor( "fl-abyss", s8x2, s8y2)
set_floor( "fl-abyss", s9x2, s9y2)
set_floor( "fl-abyss", sax2, say2)
set_floor( "fl-abyss", sbx2, sby2)
set_floor( "fl-abyss", scx2, scy2)
set_floor( "fl-abyss", sdx2, sdy2)
set_floor( "fl-abyss", sjx2, sjy2)
set_floor( "fl-abyss", skx2, sky2)
set_floor( "fl-abyss", s0x3, s0y3)
set_floor( "fl-abyss", s1x3, s1y3)
set_floor( "fl-abyss", s2x3, s2y3)
set_floor( "fl-abyss", s3x3, s3y3)
set_floor( "fl-abyss", s4x3, s4y3)
set_floor( "fl-abyss", s5x3, s5y3)
set_floor( "fl-abyss", s6x3, s6y3)
set_floor( "fl-abyss", s7x3, s7y3)
set_floor( "fl-abyss", s8x3, s8y3)
set_floor( "fl-abyss", s9x3, s9y3)
set_floor( "fl-abyss", sax3, say3)
set_floor( "fl-abyss", sbx3, sby3)
set_floor( "fl-abyss", scx3, scy3)
set_floor( "fl-abyss", sdx3, sdy3)
set_floor( "fl-abyss", sjx3, sjy3)
set_floor( "fl-abyss", skx3, sky3)
function timer_callback()
set_floor( "fl-hay", skx, sky)
set_floor( "fl-hay", skx2, sky2)
set_floor( "fl-hay", skx3, sky3)
if s0x<2 then
if s0y<2 then
x=random(2)
if x==1 then
x=2
elseif x==2 then
x=3
end
elseif s0y>10 then
x=random(2)
if x==1 then
x=1
elseif x==2 then
x=2
end
else
x=random(3)
if x==1 then
x=1
elseif x==2 then
x=2
elseif x==3 then
x=3
end
end
elseif s0x>17 then
if s0y<2 then
x=random(2)
if x==1 then
x=3
elseif x==2 then
x=4
end
elseif s0y>10 then
x=random(2)
if x==1 then
x=1
elseif x==2 then
x=4
end
else
x=random(3)
if x==1 then
x=1
elseif x==2 then
x=3
elseif x==3 then
x=4
end
end
else
if s0y<2 then
x=random(3)
if x==1 then
x=2
elseif x==2 then
x=3
elseif x==3 then
x=4
end
elseif s0y>10 then
x=random(3)
if x==1 then
x=1
elseif x==2 then
x=2
elseif x==3 then
x=4
end
else
x=random(4)
if x==1 then
x=1
elseif x==2 then
x=2
elseif x==3 then
x=3
elseif x==4 then
x=4
end
end
end
skx=sjx
sky=sjy
sjx=sdx
sjy=sdy
sdx=scx
sdy=scy
scx=sbx
scy=sby
sbx=sax
sby=say
sax=s9x
say=s9y
s9x=s8x
s9y=s8y
s8x=s7x
s8y=s7y
s7x=s6x
s7y=s6y
s6x=s5x
s6y=s5y
s5x=s4x
s5y=s4y
s4x=s3x
s4y=s3y
s3x=s2x
s3y=s2y
s2x=s1x
s2y=s1y
s1x=s0x
s1y=s0y
if x==1 then
if px==3 and s0y<11 then
s0y=s0y+1
px=3
else
if px==3 then
x=random(2)
if x==1 then
if s0x<18 then
s0x=s0x+1
px=2
else
s0x=s0x-1
px=4
end
elseif x==2 then
if s0x>1 then
s0x=s0x-1
px=4
else
s0x=s0x+1
px=2
end
end
else
s0y=s0y-1
px=1
end
end
elseif x==2 then
if px==4 and s0x>1 then
s0x=s0x-1
px=4
else
if px==4 then
x=random(2)
if x==1 then
if s0y>1 then
s0y=s0y-1
px=1
else
s0y=s0y+1
px=3
end
elseif x==2 then
if s0y<11 then
s0y=s0y+1
px=3
else
s0y=s0y-1
px=1
end
end
else
s0x=s0x+1
px=2
end
end
elseif x==3 then
if px==1 and s0y>1 then
s0y=s0y-1
px=1
else
if px==1 then
x=random(2)
if x==1 then
if s0x<18 then
s0x=s0x+1
px=2
else
s0x=s0x-1
px=4
end
elseif x==2 then
if s0x>1 then
s0x=s0x-1
px=4
else
s0x=s0x+1
px=2
end
end
else
s0y=s0y+1
px=3
end
end
elseif x==4 then
if px==2 and s0x<18 then
s0x=s0x+1
px=2
else
if px==2 then
x=random(2)
if x==1 then
if s0y>1 then
s0y=s0y-1
px=1
else
s0y=s0y+1
px=3
end
elseif x==2 then
if s0y<11 then
s0y=s0y+1
px=3
else
s0y=s0y-1
px=1
end
end
else
s0x=s0x-1
px=4
end
end
end
set_floor( "fl-abyss", s0x, s0y)
set_floor( "fl-abyss", s1x, s1y)
set_floor( "fl-abyss", s2x, s2y)
set_floor( "fl-abyss", s3x, s3y)
set_floor( "fl-abyss", s4x, s4y)
set_floor( "fl-abyss", s5x, s5y)
set_floor( "fl-abyss", s6x, s6y)
set_floor( "fl-abyss", s7x, s7y)
set_floor( "fl-abyss", s8x, s8y)
set_floor( "fl-abyss", s9x, s9y)
set_floor( "fl-abyss", sax, say)
set_floor( "fl-abyss", sbx, sby)
set_floor( "fl-abyss", scx, scy)
set_floor( "fl-abyss", sdx, sdy)
set_floor( "fl-abyss", sjx, sjy)
set_floor( "fl-abyss", skx, sky)
if s0x2<2 then
if s0y2<2 then
x2=random(2)
if x2==1 then
x2=2
elseif x2==2 then
x2=3
end
elseif s0y2>10 then
x2=random(2)
if x2==1 then
x2=1
elseif x2==2 then
x2=2
end
else
x2=random(3)
if x2==1 then
x2=1
elseif x2==2 then
x2=2
elseif x2==3 then
x2=3
end
end
elseif s0x2>17 then
if s0y2<2 then
x2=random(2)
if x2==1 then
x2=3
elseif x2==2 then
x2=4
end
elseif s0y2>10 then
x2=random(2)
if x2==1 then
x2=1
elseif x2==2 then
x2=4
end
else
x2=random(3)
if x2==1 then
x2=1
elseif x2==2 then
x2=3
elseif x2==3 then
x2=4
end
end
else
if s0y2<2 then
x2=random(3)
if x2==1 then
x2=2
elseif x2==2 then
x2=3
elseif x2==3 then
x2=4
end
elseif s0y2>10 then
x2=random(3)
if x2==1 then
x2=1
elseif x2==2 then
x2=2
elseif x2==3 then
x2=4
end
else
x2=random(4)
if x2==1 then
x2=1
elseif x2==2 then
x2=2
elseif x2==3 then
x2=3
elseif x2==4 then
x2=4
end
end
end
skx2=sjx2
sky2=sjy2
sjx2=sdx2
sjy2=sdy2
sdx2=scx2
sdy2=scy2
scx2=sbx2
scy2=sby2
sbx2=sax2
sby2=say2
sax2=s9x2
say2=s9y2
s9x2=s8x2
s9y2=s8y2
s8x2=s7x2
s8y2=s7y2
s7x2=s6x2
s7y2=s6y2
s6x2=s5x2
s6y2=s5y2
s5x2=s4x2
s5y2=s4y2
s4x2=s3x2
s4y2=s3y2
s3x2=s2x2
s3y2=s2y2
s2x2=s1x2
s2y2=s1y2
s1x2=s0x2
s1y2=s0y2
if x2==1 then
if px2==3 and s0y2<11 then
s0y2=s0y2+1
px2=3
else
if px2==3 then
x2=random(2)
if x2==1 then
if s0x2<18 then
s0x2=s0x2+1
px2=2
else
s0x2=s0x2-1
px2=4
end
elseif x2==2 then
if s0x2>1 then
s0x2=s0x2-1
px2=4
else
s0x2=s0x2+1
px2=2
end
end
else
s0y2=s0y2-1
px2=1
end
end
elseif x2==2 then
if px2==4 and s0x2>1 then
s0x2=s0x2-1
px2=4
else
if px2==4 then
x2=random(2)
if x2==1 then
if s0y2>1 then
s0y2=s0y2-1
px2=1
else
s0y2=s0y2+1
px2=3
end
elseif x2==2 then
if s0y2<11 then
s0y2=s0y2+1
px2=3
else
s0y2=s0y2-1
px2=1
end
end
else
s0x2=s0x2+1
px2=2
end
end
elseif x2==3 then
if px2==1 and s0y2>1 then
s0y2=s0y2-1
px2=1
else
if px2==1 then
x2=random(2)
if x2==1 then
if s0x2<18 then
s0x2=s0x2+1
px2=2
else
s0x2=s0x2-1
px2=4
end
elseif x2==2 then
if s0x2>1 then
s0x2=s0x2-1
px2=4
else
s0x2=s0x2+1
px2=2
end
end
else
s0y2=s0y2+1
px2=3
end
end
elseif x2==4 then
if px2==2 and s0x2<18 then
s0x2=s0x2+1
px2=2
else
if px2==2 then
x2=random(2)
if x2==1 then
if s0y2>1 then
s0y2=s0y2-1
px2=1
else
s0y2=s0y2+1
px2=3
end
elseif x2==2 then
if s0y2<11 then
s0y2=s0y2+1
px2=3
else
s0y2=s0y2-1
px2=1
end
end
else
s0x2=s0x2-1
px2=4
end
end
end
set_floor( "fl-abyss", s0x2, s0y2)
set_floor( "fl-abyss", s1x2, s1y2)
set_floor( "fl-abyss", s2x2, s2y2)
set_floor( "fl-abyss", s3x2, s3y2)
set_floor( "fl-abyss", s4x2, s4y2)
set_floor( "fl-abyss", s5x2, s5y2)
set_floor( "fl-abyss", s6x2, s6y2)
set_floor( "fl-abyss", s7x2, s7y2)
set_floor( "fl-abyss", s8x2, s8y2)
set_floor( "fl-abyss", s9x2, s9y2)
set_floor( "fl-abyss", sax2, say2)
set_floor( "fl-abyss", sbx2, sby2)
set_floor( "fl-abyss", scx2, scy2)
set_floor( "fl-abyss", sdx2, sdy2)
set_floor( "fl-abyss", sjx2, sjy2)
set_floor( "fl-abyss", skx2, sky2)
if s0x3<2 then
if s0y3<2 then
x3=random(2)
if x3==1 then
x3=2
elseif x3==2 then
x3=3
end
elseif s0y3>10 then
x3=random(2)
if x3==1 then
x3=1
elseif x3==2 then
x3=2
end
else
x3=random(3)
if x3==1 then
x3=1
elseif x3==2 then
x3=2
elseif x3==3 then
x3=3
end
end
elseif s0x3>17 then
if s0y3<2 then
x3=random(2)
if x3==1 then
x3=3
elseif x3==2 then
x3=4
end
elseif s0y3>10 then
x3=random(2)
if x3==1 then
x3=1
elseif x3==2 then
x3=4
end
else
x3=random(3)
if x3==1 then
x3=1
elseif x3==2 then
x3=3
elseif x3==3 then
x3=4
end
end
else
if s0y3<2 then
x3=random(3)
if x3==1 then
x3=2
elseif x3==2 then
x3=3
elseif x3==3 then
x3=4
end
elseif s0y3>10 then
x3=random(3)
if x3==1 then
x3=1
elseif x3==2 then
x3=2
elseif x3==3 then
x3=4
end
else
x3=random(4)
if x3==1 then
x3=1
elseif x3==2 then
x3=2
elseif x3==3 then
x3=3
elseif x3==4 then
x3=4
end
end
end
skx3=sjx3
sky3=sjy3
sjx3=sdx3
sjy3=sdy3
sdx3=scx3
sdy3=scy3
scx3=sbx3
scy3=sby3
sbx3=sax3
sby3=say3
sax3=s9x3
say3=s9y3
s9x3=s8x3
s9y3=s8y3
s8x3=s7x3
s8y3=s7y3
s7x3=s6x3
s7y3=s6y3
s6x3=s5x3
s6y3=s5y3
s5x3=s4x3
s5y3=s4y3
s4x3=s3x3
s4y3=s3y3
s3x3=s2x3
s3y3=s2y3
s2x3=s1x3
s2y3=s1y3
s1x3=s0x3
s1y3=s0y3
if x3==1 then
if px3==3 and s0y3<11 then
s0y3=s0y3+1
px3=3
else
if px3==3 then
x3=random(2)
if x3==1 then
if s0x3<18 then
s0x3=s0x3+1
px3=2
else
s0x3=s0x3-1
px3=4
end
elseif x3==2 then
if s0x3>1 then
s0x3=s0x3-1
px3=4
else
s0x3=s0x3+1
px3=2
end
end
else
s0y3=s0y3-1
px3=1
end
end
elseif x3==2 then
if px3==4 and s0x3>1 then
s0x3=s0x3-1
px3=4
else
if px3==4 then
x3=random(2)
if x3==1 then
if s0y3>1 then
s0y3=s0y3-1
px3=1
else
s0y3=s0y3+1
px3=3
end
elseif x3==2 then
if s0y3<11 then
s0y3=s0y3+1
px3=3
else
s0y3=s0y3-1
px3=1
end
end
else
s0x3=s0x3+1
px3=2
end
end
elseif x3==3 then
if px3==1 and s0y3>1 then
s0y3=s0y3-1
px3=1
else
if px3==1 then
x3=random(2)
if x3==1 then
if s0x3<18 then
s0x3=s0x3+1
px3=2
else
s0x3=s0x3-1
px3=4
end
elseif x3==2 then
if s0x3>1 then
s0x3=s0x3-1
px3=4
else
s0x3=s0x3+1
px3=2
end
end
else
s0y3=s0y3+1
px3=3
end
end
elseif x3==4 then
if px3==2 and s0x3<18 then
s0x3=s0x3+1
px3=2
else
if px3==2 then
x3=random(2)
if x3==1 then
if s0y3>1 then
s0y3=s0y3-1
px3=1
else
s0y3=s0y3+1
px3=3
end
elseif x3==2 then
if s0y3<11 then
s0y3=s0y3+1
px3=3
else
s0y3=s0y3-1
px3=1
end
end
else
s0x3=s0x3-1
px3=4
end
end
end
set_floor( "fl-abyss", s0x3, s0y3)
set_floor( "fl-abyss", s1x3, s1y3)
set_floor( "fl-abyss", s2x3, s2y3)
set_floor( "fl-abyss", s3x3, s3y3)
set_floor( "fl-abyss", s4x3, s4y3)
set_floor( "fl-abyss", s5x3, s5y3)
set_floor( "fl-abyss", s6x3, s6y3)
set_floor( "fl-abyss", s7x3, s7y3)
set_floor( "fl-abyss", s8x3, s8y3)
set_floor( "fl-abyss", s9x3, s9y3)
set_floor( "fl-abyss", sax3, say3)
set_floor( "fl-abyss", sbx3, sby3)
set_floor( "fl-abyss", scx3, scy3)
set_floor( "fl-abyss", sdx3, sdy3)
set_floor( "fl-abyss", sjx3, sjy3)
set_floor( "fl-abyss", skx3, sky3)
end
set_stone("st-timer", 21,0, {loop=1, action="callback", target="timer_callback", interval=.12})