home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
GameStar Special 2004 August
/
GSSH0804.iso
/
Geschicklichkeit
/
Enigma
/
Enigma-081.exe
/
data
/
levels
/
duffy30.lua
< prev
next >
Wrap
Text File
|
2003-08-27
|
8KB
|
360 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 =="@" then
set_stone( "st-glass", i-1, line)
fill_floor("fl-ice_001", i-1,line, 1,1)
elseif c == "g" then
set_stone("st-oxyd", i-1, line,{color="0",name="o1"})
elseif c == "h" then
set_stone("st-oxyd", i-1, line,{color="0",name="o2"})
elseif c == "i" then
set_stone("st-oxyd", i-1, line,{color="1",name="o3"})
elseif c == "j" then
set_stone("st-oxyd", i-1, line,{color="1",name="o4"})
elseif c == "k" then
set_stone("st-oxyd", i-1, line,{color="2",name="o5"})
elseif c == "l" then
set_stone("st-oxyd", i-1, line,{color="2",name="o6"})
elseif c == "m" then
set_stone("st-oxyd", i-1, line,{color="3",name="o7"})
elseif c == "n" then
set_stone("st-oxyd", i-1, line,{color="3",name="o8"})
elseif c == "p" then
set_stone("st-oxyd", i-1, line,{color="4",name="o9"})
elseif c == "q" then
set_stone("st-oxyd", i-1, line,{color="4",name="o10"})
elseif c == "r" then
set_stone("st-oxyd", i-1, line,{color="5",name="o11"})
elseif c == "s" then
set_stone("st-oxyd", i-1, line,{color="5",name="o12"})
elseif c == "t" then
set_stone("st-oxyd", i-1, line,{color="6",name="o13"})
elseif c == "u" then
set_stone("st-oxyd", i-1, line,{color="6",name="o14"})
elseif c == "v" then
set_stone("st-oxyd", i-1, line,{color="7",name="o15"})
elseif c == "w" then
set_stone("st-oxyd", i-1, line,{color="7",name="o16"})
elseif c == "!" then
abyss(i-1,line)
-- fill_floor("fl-water", i-1,line, 1,1)
elseif c=="z" then
set_actor("ac-blackball", i-.5,line+.5, {player=0})
elseif c == "A" then
set_stone("st-door_a",i-1,line,{name="gate1"})
elseif c == "B" then
set_stone("st-door_a",i-1,line,{name="gate2"})
elseif c == "C" then
set_stone("st-door_a",i-1,line,{name="gate3"})
elseif c == "D" then
set_stone("st-door_a",i-1,line,{name="gate4"})
elseif c == "E" then
set_stone("st-door_a",i-1,line,{name="gate5"})
elseif c == "F" then
set_stone("st-door_a",i-1,line,{name="gate6"})
elseif c=="a" then
set_item("it-trigger", i-1,line, {action="openclose", target="gate1"})
elseif c=="b" then
set_item("it-trigger", i-1,line, {action="openclose", target="gate2"})
elseif c=="c" then
set_item("it-trigger", i-1,line, {action="openclose", target="gate3"})
elseif c=="d" then
set_item("it-trigger", i-1,line, {action="openclose", target="gate4"})
elseif c=="e" then
set_item("it-trigger", i-1,line, {action="openclose", target="gate5"})
elseif c=="f" then
set_item("it-trigger", i-1,line, {action="openclose", target="gate6"})
elseif c=="1" then
set_stone("st-switch", i-1,line, {action="callback",target="funccU"})
elseif c=="2" then
set_stone("st-switch", i-1,line, {action="callback",target="funccR"})
elseif c=="3" then
set_stone("st-switch", i-1,line, {action="callback",target="funccD"})
elseif c=="4" then
set_stone("st-switch", i-1,line, {action="callback",target="funccL"})
elseif c=="5" then
set_stone("st-switch", i-1,line, {action="callback",target="funccP"})
elseif c=="R" then
set_stone("st-switch", i-1,line, {action="callback",target="funccX"})
elseif c=="G" then
set_stone("st-switch", i-1,line, {action="callback",target="funccU2"})
elseif c=="H" then
set_stone("st-switch", i-1,line, {action="callback",target="funccR2"})
elseif c=="I" then
set_stone("st-switch", i-1,line, {action="callback",target="funccD2"})
elseif c=="J" then
set_stone("st-switch", i-1,line, {action="callback",target="funccL2"})
elseif c=="K" then
set_stone("st-switch", i-1,line, {action="callback",target="funccP2"})
elseif c == "=" then
puzzle(i-1,line,PUZ_0101)
elseif c == "$" then
puzzle(i-1,line,PUZ_1010)
elseif c == "`" then
puzzle(i-1,line,PUZ_0011)
elseif c == "/" then
puzzle(i-1,line,PUZ_0110)
elseif c == "%" then
puzzle(i-1,line,PUZ_1001)
elseif c == "L" then
puzzle(i-1,line,PUZ_1100)
end
end
end
-- Floor: " "
-- Border: "#"
-- Oxyd: "o"
renderLine(00,"/======`############")
renderLine(01,"$a# #ghij# G #")
renderLine(02,"$ #klmn# J#H #")
renderLine(03,"$ b#pqrs# I #")
renderLine(04,"$ #tuvw#K #")
renderLine(05,"$ c ##########F#")
renderLine(06,"$ # #E#")
renderLine(07,"$ d # z 1 #D#")
renderLine(08,"$ # #C#")
renderLine(09,"$ e # 4 5 2 #B#")
renderLine(10,"$ # #A#")
renderLine(11,"$ f #R 3 #")
renderLine(12,"L======%############")
renderLine(13,"####################")
oxyd_shuffle()
o1=enigma.GetNamedObject("o1")
o2=enigma.GetNamedObject("o2")
o3=enigma.GetNamedObject("o3")
o4=enigma.GetNamedObject("o4")
o5=enigma.GetNamedObject("o5")
o6=enigma.GetNamedObject("o6")
o7=enigma.GetNamedObject("o7")
o8=enigma.GetNamedObject("o8")
o9=enigma.GetNamedObject("o9")
o10=enigma.GetNamedObject("o10")
o11=enigma.GetNamedObject("o11")
o12=enigma.GetNamedObject("o12")
o13=enigma.GetNamedObject("o13")
o14=enigma.GetNamedObject("o14")
o15=enigma.GetNamedObject("o15")
o16=enigma.GetNamedObject("o16")
xx=4
yy=6
xx2=10
yy2=2
direc=0
mv=0
function funccU()
if yy<2 then
if xx==7 then
yy=11
move()
end
else
if xx<2 or xx>2 or yy<2 or yy>1 then
yy=yy-1
move()
end
end
end
function funccR()
if xx<7 then
if xx<1 or xx>1 or yy<1 or yy>1 then
xx=xx+1
move()
end
end
end
function funccD()
if yy>10 then
if xx==7 then
yy=1
move()
end
else
yy=yy+1
move()
end
end
function funccL()
if xx>1 then
if xx<3 or xx>3 or yy<1 or yy>1 then
xx=xx-1
move()
end
end
end
pla=0
function funccP()
if direc==0 then
placx=xx
placy=yy-1
elseif direc==1 then
placx=xx+1
placy=yy
elseif direc==2 then
placx=xx
placy=yy+1
elseif direc==3 then
placx=xx-1
placy=yy
end
if pla<6 then
if placx>0 and placx<8 and placy>0 and placy<12 then
if placx<2 or placx>2 or placy<1 or placy>1 then
set_stone( "st-rock1", placx, placy)
pla=pla+1
end
end
end
end
function funccX()
for i=1,7 do
for j=1,11 do
if i<2 or i>2 or j<1 or j>1 then
enigma.KillStone(i,j)
end
end
end
pla=0
xx=4
yy=6
direc=0
end
function move()
if direc<3 then
direc=direc+1
else
direc=0
end
end
function funccU2()
if mv==0 then
if yy2>1 then
yy2=yy2-1
move2()
end
elseif mv==1 then
if yy2>2 then
yy2=yy2-2
move2()
end
end
end
function funccR2()
if mv==0 then
if xx2<12 then
xx2=xx2+1
move2()
end
elseif mv==1 then
if xx2<11 then
xx2=xx2+2
move2()
end
end
end
function funccD2()
if mv==0 then
if yy2<4 then
yy2=yy2+1
move2()
end
elseif mv==1 then
if yy2<3 then
yy2=yy2+2
move2()
end
end
end
function funccL2()
if mv==0 then
if xx2>9 then
xx2=xx2-1
move2()
end
elseif mv==1 then
if xx2>10 then
xx2=xx2-2
move2()
end
end
end
function move2()
if mv==0 then
mv=1
elseif mv==1 then
mv=0
end
end
function funccP2()
if yy2==1 then
if xx2==9 then
ox=o1
elseif xx2==10 then
ox=o2
elseif xx2==11 then
ox=o3
elseif xx2==12 then
ox=o4
end
elseif yy2==2 then
if xx2==9 then
ox=o5
elseif xx2==10 then
ox=o6
elseif xx2==11 then
ox=o7
elseif xx2==12 then
ox=o8
end
elseif yy2==3 then
if xx2==9 then
ox=o9
elseif xx2==10 then
ox=o10
elseif xx2==11 then
ox=o11
elseif xx2==12 then
ox=o12
end
elseif yy2==4 then
if xx2==9 then
ox=o13
elseif xx2==10 then
ox=o14
elseif xx2==11 then
ox=o15
elseif xx2==12 then
ox=o16
end
end
enigma.SendMessage(ox, "trigger", nil)
end