home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
GameStar Special 2004 August
/
GSSH0804.iso
/
Geschicklichkeit
/
Enigma
/
Enigma-081.exe
/
data
/
levels
/
ant02.lua
< prev
next >
Wrap
Text File
|
2003-10-04
|
4KB
|
127 lines
-- GO! -- the Enigma Level
-- (c) 2002 Petr Machata/ant_39
-- Licensed under GPL v2.0 or above
-- 2003-01-10 -- final glass block replaced by vertical door
-- 2003-01-25 -- enigma.ConserveLevel=FALSE added
-- 2003-06-28 -- fixes due to changes in Enigma: the bridge moves slower
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
enigma.ConserveLevel=FALSE -- \dh\
floortile = "fl-bluegray"
bordertile = "st-rock1"
walltile = "st-glass"
flbridge = "fl-wood"
levelw = 20
levelh = 13
waterx0 = 5
waterw0 = 8
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
swc = 0;
function sw1()
if (swc == 0) then
enigma.SendMessage(enigma.GetNamedObject("bolder01"),"direction",EAST);
swc = 1
end
end
function sw2()
if (swc == 1) then
enigma.SendMessage(enigma.GetNamedObject("bolder01"),"direction",WEST);
swc = 2
end
end
function sw3()
if (swc == 2) then
enigma.SendMessage(enigma.GetNamedObject("bolder02"),"direction",EAST);
swc = 3
end
end
function sw4()
if (swc == 3) then
enigma.SendMessage(enigma.GetNamedObject("bolder02"),"direction",WEST);
swc = 4
end
end
function sw5()
if (swc == 4) then
enigma.SendMessage(enigma.GetNamedObject("doorA"), "close", nil)
swc = 5
end
end
-- 20x13 --> +19, +12
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
create_world(levelw, levelh)
fill_floor(floortile, 0, 0, level_width, level_height)
draw_border(bordertile)
draw_stones(bordertile, {1,level_height-3}, { 1,0}, level_width-2)
draw_stones(bordertile, {1,2}, {1,0}, level_width-2)
set_stone(bordertile, 5,9)
draw_stones(walltile, {2,3}, {0,1}, 1)
draw_stones(walltile, {2,5}, {0,1}, level_height-8)
draw_stones(walltile, {level_width-3,3}, {0,1}, 3)
draw_stones(walltile, {level_width-3,7}, {0,1}, level_height-10)
draw_floor("fl-water", {level_width-4,3}, {0,1}, level_height-6)
set_stone("st-bolder", 2, 11, {name="bolder01", direction=NORTH})
set_stone("st-bolder", 2, 1, {name="bolder02", direction=SOUTH})
set_item("it-trigger", 2, 4, {action="callback", target="sw1"})
set_item("it-trigger", level_width-2, level_height-2, {action="callback", target="sw2"})
set_item("it-trigger", 1, level_height-2, {action="callback", target="sw3"})
set_item("it-trigger", level_width-2, 1, {action="callback", target="sw4"})
set_item("it-trigger", 1, 1, {action="callback", target="sw5"})
set_stone(walltile, 3,6)
set_stone(walltile, 4,6)
set_stone("st-wood", 5,6)
set_stone("st-door", level_width-3, 6, {name="doorA", type="v"})
enigma.SendMessage(enigma.GetNamedObject("doorA"), "open", nil)
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-- bridges
cenbridge = 1
cunbridge = 2
function enbridge()
set_floor(flbridge, waterx0+cenbridge, 5)
set_floor(flbridge, waterx0+waterw0+1-cenbridge, 7)
cenbridge = cenbridge + 1
if (cenbridge>waterw0) then
cenbridge = 1
end
end
function unbridge()
set_floor("fl-water", waterx0+cunbridge, 5)
set_floor("fl-water", waterx0+waterw0+1-cunbridge, 7)
cunbridge = cunbridge + 1
if (cunbridge>waterw0) then
cunbridge = 1
end
end
fill_floor("fl-water", waterx0+1, 3, waterw0, level_height-6)
set_stone("st-timer", 0, 2, {action="callback", target="enbridge", interval=0.4});
set_stone("st-timer", 0, level_height-3, {action="callback", target="unbridge", interval=0.4});
draw_floor(flbridge, {waterx0+1,5}, {1,0}, waterw0);
draw_floor(flbridge, {waterx0+1,7}, {1,0}, waterw0);
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
oxyd (level_width-2,3)
oxyd (level_width-2,level_height-4)
oxyd_shuffle()
set_actor("ac-blackball", 1.5, 5.5, {player=0})
enigma.ConserveLevel=FALSE