-- Sven Siggelkow 2003
-- ESPRIT #028
-- question: how can I turn a fourswitch by a timer?

enigma.ConserveLevel = FALSE
levelw = 20
levelh = 13
create_world(levelw, levelh)
oxyd_default_flavor = "b"
set_actor("ac-blackball", 8,6.5, {player=0})
set_actor("ac-top", 13.5,10.5, {range=15, force=10})
fill_floor("fl-water",0,0,levelw,levelh)
fill_floor("fl-bluegreenx",4,1,levelw-9,levelh-2)

function renderLine( line, pattern)
    for i=1, strlen(pattern) do
      local c = strsub( pattern, i, i)
      if c ==   "#" then
         set_stone("st-fakeoxyd", i-1,line)
      elseif c=="B" then
         set_stone("st-actorimpulse", i-1,line)
      elseif c=="S" then                                                                
         set_stone("st-fourswitch", i-1,line, {name="switch",action="callback", target="s1"})
      elseif c=="T" then
         set_stone( "st-timer", i-1,line, {action="callback", target="s1"})      
      elseif c=="1" then                                                                
	 set_item("it-magnet",i-1,line,{name="magnet1", on=1})
      elseif c=="2" then                                                                
         set_item("it-magnet",i-1,line,{name="magnet2", on=0})
      elseif c=="3" then                                                                
         set_item("it-magnet",i-1,line,{name="magnet3", on=0})
      elseif c=="4" then                                                                
         set_item("it-magnet",i-1,line,{name="magnet4", on=0})
      elseif c=="O" then
	 oxyd(i-1,line)
        end
    end  
end
--               01234567890123456789
renderLine(00 , "                    ")
renderLine(01 , "    #####O#####     ")
renderLine(02 , "    #    1    #     ")
renderLine(03 , "    #         #     ")
renderLine(04 , "    #         #     ")  
renderLine(05 , "    #         #     ")
renderLine(06 , "    O4   B   2O     ")
renderLine(07 , "    #         #     ")
renderLine(08 , "    #         #     ")
renderLine(09 , "    #         #     ")
renderLine(10 , "    #    3    #     ")
renderLine(11 , "    #####O##ST#     ")
renderLine(12 , "                    ")
--               01234567890123456789

x=1

function s1() 
enigma.SendMessage(enigma.GetNamedObject("magnet"..x), "off", nil)
x=x+1
if x==5 then x=1 end
enigma.SendMessage(enigma.GetNamedObject("magnet"..x), "on", nil)
enigma.Sendmessage(enigma.GetNamedObject("switch"), "turn", WEST)
end

oxyd_shuffle()
