-- Copyright (c) 2004 Jacob Scott
-- License: GPL v2.0 or above
-- Enigma Level: Laser Tricks

rooms_wide=2
rooms_high=1

levelw=1+(19*rooms_wide)
levelh=1+(12*rooms_high)

create_world( levelw, levelh)
enigma.ConserveLevel=FALSE

fill_floor("fl-black", 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-laserswitch", i-1, line)
		elseif c=="&" then
			set_stone( "st-laserswitch", i-1, line)
			abyss(i-1,line)
		elseif c =="%" then
			set_stone( "st-greenbrown", i-1, line)
		elseif c == "o" then
			oxyd( i-1, line)
		elseif c == "*" then
			set_stone( "st-brownie", i-1, line)
                elseif c == "!" then
			abyss(i-1,line)
		elseif c == "~" then
		   set_floor("fl-water",i-1,line)
		elseif c=="z" then
		   set_actor("ac-blackball", i-1,line+.5, {player=0})
		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=="A" then
		   set_stone("st-laserswitch",i-1,line,{action="callback",target="funcc1"})
		elseif c=="C" then
		   set_attrib(laser(i-1,line, FALSE, EAST), "name","laser1")
		elseif c=="c" then
		   set_item("it-coin2",i-1,line)
		elseif c=="E" then
		   set_stone("st-coinslot",i-1,line,{action="onoff",target="laser1"})
		elseif c=="B" then
			doorv( i-1,line, {name="door1"})
 		elseif c == ":" then
			mirrorp(i-1,line,FALSE,FALSE, 2)
 		elseif c == "/" then
			mirrorp(i-1,line,TRUE,FALSE, 4)
 		elseif c == ";" then
			mirrorp(i-1,line,TRUE,FALSE, 2)
 		elseif c == "?" then
			mirrorp(i-1,line,FALSE,FALSE, 4)
 		elseif c == "." then
			mirrorp(i-1,line,TRUE,FALSE, 1)
 		elseif c == "S" then
		   set_stone("st-bolder", i-1,line, {name="bolder1",direction=SOUTH})
 		elseif c == "R" then
		   	set_stone( "st-rotator-right", i-1, line)
 		elseif c == "b" then
		   set_item("it-trigger",i-1,line,{action="openclose",target="door1"})
	     end
	end	
end

renderLine(00,"####################!!!!!!!!!!!!!!!!!!!")
renderLine(01,"#C    ?     !     b#!!!!!!!!!!!!!!!!!!!")
renderLine(02,"#E       c  !      #!!!!!!!!!!!!!!!!!!!")
renderLine(03,"#    /    % !!!!!! #!!!!!!!!!!!!!!!!!!!")
renderLine(04,"# %   %     !    % #######!!!!!!!!!!!!!")
renderLine(05,"#     ;     &      #     #!!!!!!!!!!!!!")
renderLine(06,"#co z    .  B    A #   o #!!!!!!!!!!!!!")
renderLine(07,"#     /     &      #     #!!!!!!!!!!!!!")
renderLine(08,"# %   %     !    % #######!!!!!!!!!!!!!")
renderLine(09,"#    ;    % !!!!!! #!!!!!!!!!!!!!!!!!!!")
renderLine(10,"#        c  !      #!!!!!!!!!!!!!!!!!!!")
renderLine(11,"#         ? !    RS#!!!!!!!!!!!!!!!!!!!")
renderLine(12,"####################!!!!!!!!!!!!!!!!!!!")

oxyd_shuffle()

ff1=0

function funcc1()
   if ff1==0 then
set_stone("st-greenbrown",19,6)
enigma.KillStone(19,6)
enigma.KillItem(18,6)
ff1=1
   elseif ff1==1 then
			set_stone( "st-laserswitch", 19, 6)
ff1=0
		     end
end