home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
GameStar Special 2004 August
/
GSSH0804.iso
/
Geschicklichkeit
/
Enigma
/
Enigma-081.exe
/
data
/
levels
/
oxe23.lua
< prev
next >
Wrap
Text File
|
2003-03-08
|
3KB
|
85 lines
-- Island of Mirrors -- Oxyd Extra -- the Enigma Level
-- (c) 2002 Petr Machata/ant_39
-- Licensed under GPL v2.0 or above
-- 2003-02-21
dofile(enigma.FindDataFile("levels/ant.lua"))
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
num = 0
function engine(x, y, delta, faces, attribs, modattrib, modvalues)
local it = {}
it.state = 1
num = num +1
local fname = "switchfunc"..num
attribs[1].action = "callback"
attribs[1].target = fname
local x2, y2 = x+delta[1], y+delta[2]
set_stone(faces[1], x, y, attribs[1])
it.tgt = set_stone(faces[2], x2, y2, attribs[2])
local func0 = function()
-- switch
%it.state = %it.state +1
if (%it.state>getn(%modvalues)) then
%it.state = 1
end
-- set state of desired target object
kill_stone(%x2, %y2)
%attribs[2][%modattrib] = %modvalues[%it.state]
set_stone(%faces[2], %x2, %y2, %attribs[2])
--set_attrib(%it.tgt, %modattrib, %modvalues[%it.state])
end
setglobal(fname, func0)
end
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
local dlt = {11,0} -- delta
local mir3 = {"st-switch", "st-3mirror"}
local mirp = {"st-switch", "st-pmirror"}
local lsr = {"st-switch", "st-laser"}
local trn = {transparent=TRUE, movable = TRUE}
local ntr = {transparent=FALSE, movable = FALSE}
cells={}
cells["."] = abyss
cells["0"] = oxyd
cells[" "] = cell{floor="fl-samba"}
cells["#"] = cell{stone="st-rock5"}
cells["O"] = cell{actor={"ac-blackball", {player=0}}}
cells["A"] = cell{{{engine, dlt, mir3, {{},{orientation=3}}, "orientation", {3,4}}}}
cells["B"] = cell{{{engine, dlt, mirp, {{},{orientation=2}}, "orientation", {2,3}}}}
cells["C"] = cell{{{engine, dlt, mir3, {{},{orientation=1}}, "orientation", {1,2}}}}
cells["D"] = cell{{{engine, dlt, mir3, {{},{orientation=1}}, "orientation", {1,2}}}}
cells["E"] = cell{{{engine, dlt, mirp, {{},{transparent=TRUE, orientation=1}}, "orientation", {1,2}}}}
cells["F"] = cell{{{engine, dlt, mir3, {{},{orientation=2}}, "orientation", {2,3}}}}
cells["G"] = cell{{{engine, dlt, mirp, {{},{orientation=1}}, "orientation", {1,2}}}}
cells["H"] = cell{{{engine, dlt, mir3, {{},{orientation=2}}, "orientation", {2,3}}}}
cells["L"] = cell{stone={"st-laser", {on=FALSE, dir=NORTH, name="laser1"}}}
cells["S"] = cell{{{switch, "laser1", "onoff"}}}
level = {
"....................",
"....................",
".#...#.......0...0..",
". .... .",
". A B C .... 0",
". #... .",
". D E F ...0 .",
". O .... .",
"# G H .... 0",
". .... .",
"....S...#......L.0..",
"....................",
"....................",
}
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
oxyd_default_flavor="c"
set_default_parent(cells[" "])
create_world_by_map(level)
oxyd_shuffle()