-- Copyright (c) 2003 Jacob Scott -- License: GPL v2.0 or above -- Enigma Level: No Jumping Necessary levelw=39 levelh=13 create_world( levelw, levelh) fill_floor("fl-hay", 0,0,levelw,levelh) enigma.ConserveLevel=FALSE enigma.Brittleness=0 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) abyss(i-1,line) elseif c =="X" then set_stone( "st-death", i-1, line) elseif c =="%" then set_stone( "st-actorimpulse", i-1, line) elseif c == "o" then set_stone("st-oxyd", i-1, line,{color="0"}) abyss(i-1,line) elseif c == "*" then set_stone( "st-brownie", i-1, line) elseif c == "!" then abyss(i-1,line) -- fill_floor("fl-water", i-1,line, 1,1) elseif c == "~" then -- abyss(i-1,line) fill_floor("fl-water", i-1,line, 1,1) elseif c == " " then abyss(i-1,line) elseif c=="z" then set_actor("ac-blackball", i,line+1, {name="ac0"}) elseif c == "g" then draw_stones("st-grate1",{i-1,line}, {1,1}, 1) elseif c=="+" then set_stone( "st-wood", i-1, line) elseif c=="=" then set_floor("fl-space",i-1,line) elseif c == "b" then yy1( "black", i-1, line) elseif c == "d" then --1-d set_floor("fl-gradient", i-1, line, {type=1}) elseif c == "u" then --2-u set_floor("fl-gradient", i-1, line, {type=2}) elseif c == "r" then --3-r set_floor("fl-gradient", i-1, line, {type=3}) elseif c == "l" then --4-l set_floor("fl-gradient", i-1, line, {type=4}) elseif c == "1" then --ur set_floor("fl-gradient", i-1, line, {type=11}) elseif c == "3" then --dl set_floor("fl-gradient", i-1, line, {type=9}) elseif c == "7" then --dr set_floor("fl-gradient", i-1, line, {type=12}) elseif c == "9" then --ul set_floor("fl-gradient", i-1, line, {type=10}) elseif c=="A" then set_item("it-crack3",i-1,line) elseif c=="B" then set_item("it-crack2",i-1,line) elseif c=="C" then set_item("it-crack1",i-1,line) elseif c == "D" then set_item("it-key_a",i-1,line) elseif c == "f" then set_item("it-floppy",i-1,line) elseif c=="M" then set_stone("st-floppy", i-1,line, {action="callback", target="funcc1"}) abyss(i-1,line) elseif c=="N" then set_stone("st-key_a", i-1,line, {action="callback", target="funcc2"}) abyss(i-1,line) elseif c=="O" then set_stone("st-key_a", i-1,line, {action="callback", target="funcc3"}) abyss(i-1,line) elseif c=="P" then set_stone("st-key_a", i-1,line, {action="callback", target="funcc4"}) abyss(i-1,line) elseif c=="Q" then set_stone("st-key_a", i-1,line, {action="callback", target="funcc5"}) abyss(i-1,line) elseif c=="R" then set_stone("st-key_a", i-1,line, {action="callback", target="funcc6"}) abyss(i-1,line) elseif c=="S" then set_stone("st-key_a", i-1,line, {action="callback", target="funcc7"}) abyss(i-1,line) elseif c=="T" then set_stone("st-floppy", i-1,line, {action="callback", target="funcc8"}) abyss(i-1,line) elseif c=="U" then set_stone("st-key_a", i-1,line, {action="callback", target="funcc9"}) abyss(i-1,line) elseif c=="F" then set_floor("fl-bridge",i-1,line,{name="bridge1"}) elseif c=="G" then set_floor("fl-bridge",i-1,line,{name="bridge2"}) elseif c=="H" then set_floor("fl-bridge",i-1,line,{name="bridge3"}) elseif c=="I" then set_floor("fl-bridge",i-1,line,{name="bridge4"}) elseif c=="J" then set_floor("fl-bridge",i-1,line,{name="bridge5"}) elseif c=="K" then set_floor("fl-bridge",i-1,line,{name="bridge6"}) elseif c=="L" then set_floor("fl-bridge",i-1,line,{name="bridge7"}) elseif c=="x" then set_floor("fl-hay",i-1,line) end end end function yy1( color, x, y) stone = format( "st-%s4", color) set_stone( stone, x, y) end renderLine(00,"#######################################") renderLine(01,"# # o o #") renderLine(02,"# AADAAAxzxx fAAxx #oAAAxAAABBxxxAAAA #") renderLine(03,"# A xxxxAA xx # A x A A #") renderLine(04,"# xxAAA A xxI# A AAAxxAA AAA A #") renderLine(05,"# xxA A AfAAAA HAJ#xx A B o AoA A #") renderLine(06,"# A A D A ADAGAKLxx AAA xBBo A A A #") renderLine(07,"# A DAAAxxxx UAFAM#xx A o B A Axx #") renderLine(08,"# D A xxxxAA xxxN# AAA xxAAAx xx #") renderLine(09,"# A A A D xxxO# A Axx A AxA xx #") renderLine(10,"# AAxxAAADAA AAxxxP# AAAAA AAA AAA #") renderLine(11,"# TSRQ # o o o #") renderLine(12,"#######################################") oxyd_shuffle() ff1=0 function funcc1() ff1 = 1-ff1 funcc10() end ff2=0 function funcc2() ff2 = 1-ff2 funcc10() end ff3=0 function funcc3() ff3 = 1-ff3 funcc10() end ff4=0 function funcc4() ff4 = 1-ff4 funcc10() end ff5=0 function funcc5() ff5 = 1-ff5 funcc10() end ff6=0 function funcc6() ff6 = 1-ff6 funcc10() end ff7=0 function funcc7() ff7 = 1-ff7 funcc10() end ff8=0 function funcc8() ff8 = 1-ff8 funcc10() end ff9=0 function funcc9() ff9 = 1-ff9 funcc10() end ff10=0 function funcc10() local msg = nil if ff1==1 and ff2==1 and ff3==1 and ff4==1 and ff5==1 and ff6==1 and ff7==1 and ff8==1 and ff9==1 and ff10==0 then ff10=1 msg = "close" elseif ff10==1 then ff10=0 msg = "open" end if msg then SendMessage("bridge1", msg) SendMessage("bridge2", msg) SendMessage("bridge3", msg) SendMessage("bridge4", msg) SendMessage("bridge5", msg) SendMessage("bridge6", msg) SendMessage("bridge7", msg) end end