-- Copyright (c) 2003 Jacob Scott -- License: GPL v2.0 or above -- Enigma Level: Ball and Chain levelw=50 levelh=30 create_world( levelw, levelh) fill_floor("fl-bluegreen", 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 == "o" then oxyd( i-1, line) elseif c == "!" then abyss(i-1,line) -- fill_floor("fl-water", i-1,line, 1,1) elseif c=="+" then set_stone( "st-wood", i-1, line) elseif c=="g" then draw_stones("st-grate1",{i-1,line}, {1,1}, 1) elseif c=="l" then oneway(i-1,line, enigma.WEST) elseif c=="u" then oneway(i-1,line, enigma.NORTH) elseif c=="r" then oneway(i-1,line, enigma.EAST) elseif c=="d" then oneway(i-1,line, enigma.SOUTH) elseif c=="z" then set_actor("ac-blackball", i-.5,line+.5) elseif c=="y" then set_actor("ac-whiteball", i-.5,line+.5, {player=0}) elseif c=="H" then hollow(i-1,line) elseif c=="g" then draw_stones("st-grate1",{i-1,line}, {1,1}, 1) elseif c=="G" then draw_stones("st-grate1",{i-1,line}, {1,1}, 1) set_item("it-seed", i-1, line) elseif c=="b" then yy1( "black", i-1, line) abyss(i-1,line) elseif c=="B" then yy1( "black", i-1, line) elseif c=="w" then yy1( "white", i-1, line) end end end function yy1( color, x, y) stone = format( "st-%s4", color) set_stone( stone, x, y) end -- Floor: " " -- Border: "#" -- Oxyd: "o" renderLine(00,"##o#o######o########") renderLine(01,"# BbBbbbbb Bb #") renderLine(02,"# bb b bb bbbb #") renderLine(03,"# b bbb b b b #") renderLine(04,"#b b bob b bb b bbb#") renderLine(05,"#b b Bb b b b Bo") renderLine(06,"#b bbbbb bBb b #") renderLine(07,"#b b bob b b #") renderLine(08,"#b b bbbb bbb b b #") renderLine(09,"#b b bb b b b #") renderLine(10,"# bb b b b bb b #") renderLine(11,"# b bb bBbB #") renderLine(12,"#############o#o####") oxyd_shuffle() local actor1=set_actor("ac-blackball", 9.5,6.5) local actor2=set_actor("ac-whiteball", 9.5, 9.5) AddRubberBand(actor1, actor2, 15, 0) enigma.ConserveLevel=FALSE