-- A level for Enigma -- Name: ZigZag -- Filename: ralf06.lua -- Copyright: (C) May 2003 Ralf Westram -- Contact: amgine@reallysoft.de -- License: GPL v2.0 or above Require("levels/ralf.lua") --debug_mode() -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- level={ "iiiiiiiiiiiii@@@@@@@", "iSi@@SSSSSSSi @@@@@", "i@i @@SSSoSi !b! x", "i@<+>^ @SSSii B@@@@@", "i@ .+ @SSni@ !b! x", "iS@@ v. @@SiiB @@@@@", "iSSS@<+>^ @Si a!b!Xx", "iSSS@ .+ @Si B@@@@@", "iSsSS@@ v. @i ! ! x", "iSSSSSS@<+>@i @@@@@", "iSoSSSS@ i@i | | x", "iSSSSSSS@@iSi @@@@@", "iiiiiiiiiiiii@@@@@@@", } -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- triggers = 0 function set_trigger(x,y) triggers=triggers+1 set_item("it-trigger",x,y,{action="openclose", target="door"..triggers}); end function set_two_triggers(x,y) set_trigger(x,y) set_trigger(x+1,y+1) end -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- doors=0 function set_door(x,y,t,o) doors=doors+1 set_stone("st-door",x,y,{name="door"..doors,type=t}) if (o==1) then SendMessage("door"..doors, "open") end end function set_doorvc(x,y) set_door(x,y,"v",0) end function set_doorhc(x,y) set_door(x,y,"h",0) end function set_doorvo(x,y) set_door(x,y,"v",1) end function set_doorho(x,y) set_door(x,y,"h",1) end -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- function toggle0() SendMessage("laser1", "on") SendMessage("laser2", "on") end function toggle1() enigma.KillStone(12,4); set_stone("st-switch",12,4,{action="callback",target="toggle0"}); end function toggle2() xdoors(1,2) xbridge(1,2) end function toggle3() xdoors(3,4) xbridge(3,4) end function toggle4() xdoors(5,6) xbridge(5,6) end function toggle5() xdoors(7,8) end function xdoors(d1,d2) SendMessage("door"..d1, "openclose") SendMessage("door"..d2, "openclose") end function xbridge(b1,b2) SendMessage("bridge"..b1, "openclose") SendMessage("bridge"..b2, "openclose") end switches=0 function set_switch(x,y) switches=switches+1 set_stone("st-switch",x,y,{action="callback",target="toggle"..switches}) end bridges=0 function set_bridgec(x,y) bridges=bridges+1 set_floor("fl-bridge",x,y,{name="bridge"..bridges}) end function set_bridgeo(x,y) set_bridgec(x,y) SendMessage("bridge"..bridges, "openclose") end -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- cells={} cells["S"] = cell{floor="fl-space"} if (difficult) then cells[" "] = cell{floor="fl-inverse"} --hard else cells[" "] = cell{floor="fl-white"} --easy end cells["#"] = cell{parent=cells[" "],stone="st-rock6"} cells["@"] = cell{parent=cells[" "],stone="st-glass"} cells["a"] = cell{parent=cells[" "],actor={"ac-blackball", {player=0}}} --cells["A"] = cell{parent=cells[" "],actor={"ac-whiteball", {player=0,mouseforce=0}}} cells["."] = cell{parent=cells[" "],actor={"ac-whiteball-small", {player=1,mouseforce=0}}} cells["o"] = cell{oxyd} cells["+"] = cell{parent=cells[" "],stone="st-turnstile-green"} cells["^"] = cell{parent={cells[" "],set_two_triggers},stone="st-turnstile-n"} cells["v"] = cell{parent=cells[" "],stone="st-turnstile-s"} cells["<"] = cell{parent={cells[" "],set_two_triggers},stone="st-turnstile-w"} cells[">"] = cell{parent=cells[" "],stone="st-turnstile-e"} cells["i"] = cell{parent=cells[" "],stone="st-stoneimpulse"} cells["I"] = cell{parent=cells["!"],stone="st-stoneimpulse_movable"} cells["|"] = cell{parent={cells[" "],set_doorvc}} cells["!"] = cell{parent={cells[" "],set_doorvo}} cells["-"] = cell{parent={cells[" "],set_doorhc}} cells["_"] = cell{parent={cells[" "],set_doorho}} cells["x"] = cell{parent={cells[" "],set_switch}} cells["n"] = cell{parent=cells[" "],stone={"st-laser", {on=FALSE, dir=NORTH, name="laser1"}}} cells["s"] = cell{parent=cells[" "],stone={"st-laser", {on=FALSE, dir=SOUTH, name="laser2"}}} cells["b"] = cell{parent={set_bridgec}} cells["B"] = cell{parent={set_bridgeo}} cells["X"] = cell{parent=cells[" "],item="it-extralife"} -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- rs_create_world(level,cells) oxyd_shuffle()