<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<el:level xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://enigma-game.org/schema/level/1 level.xsd" xmlns:el="http://enigma-game.org/schema/level/1">
  <el:protected>
    <el:info el:type="level">
      <el:identity el:title="Snakes" el:subtitle="" el:id="duffy19"/>
      <el:version el:score="1" el:release="1" el:revision="3" el:status="released"/>
      <el:author  el:name="Jacob Scott" el:email="" el:homepage=""/>
      <el:copyright>Copyright © 2003 Jacob Scott</el:copyright>
      <el:license el:type="GPL v2.0 or above" el:open="true"/>
      <el:compatibility el:enigma="0.92">
      </el:compatibility>
      <el:modes el:easy="false" el:single="true" el:network="false"/>
      <el:comments>
        <el:code>Lua 5.1 and XML converted by Leveladministrators</el:code>
      </el:comments>
      <el:score el:easy="-" el:difficult="-"/>
    </el:info>
    <el:luamain><![CDATA[
rooms_wide=1
rooms_high=1

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

create_world( levelw, levelh)

fill_floor("fl-hay",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 =="r" then
            set_stone( "st-invisible", i-1, line)
            abyss(i-1,line)
        elseif c == "o" then
            oxyd( i-1, line)
        elseif c =="." then
            set_floor( "fl-hay", i-1, line)
            -- Mark original positions of abysses
        elseif c=="z" then
            set_actor("ac-blackball", i-.5,line+.5)
        end
    end
end

-- Floor:  " "
-- Border: "#"
-- Oxyd:   "o"

renderLine(00,"####o##########o####")
renderLine(01,"#                  #")
renderLine(02,"o ................ o")
renderLine(03,"#                  #")
renderLine(04,"o   .............. o")
renderLine(05,"#   .              #")
renderLine(06,"o   .              o")
renderLine(07,"#           ..     #")
renderLine(08,"o            .     o")
renderLine(09,"#            .  z  #")
renderLine(10,"o ............     o")
renderLine(11,"#                  #")
renderLine(12,"####o##########o####")

oxyd_shuffle()

s0x=17
s0y=2
s1x=16
s1y=2
s2x=15
s2y=2
s3x=14
s3y=2
s4x=13
s4y=2
s5x=12
s5y=2
s6x=11
s6y=2
s7x=10
s7y=2
s8x=9
s8y=2
s9x=8
s9y=2
sax=7
say=2
sbx=6
sby=2
scx=5
scy=2
sdx=4
sdy=2
sjx=3
sjy=2
skx=2
sky=2

px=2

s0x2=2
s0y2=10
s1x2=3
s1y2=10
s2x2=4
s2y2=10
s3x2=5
s3y2=10
s4x2=6
s4y2=10
s5x2=7
s5y2=10
s6x2=8
s6y2=10
s7x2=9
s7y2=10
s8x2=10
s8y2=10
s9x2=11
s9y2=10
sax2=12
say2=10
sbx2=13
sby2=10
scx2=13
scy2=9
sdx2=13
sdy2=8
sjx2=13
sjy2=7
skx2=12
sky2=7

px2=4

s0x3=4
s0y3=6
s1x3=4
s1y3=5
s2x3=4
s2y3=4
s3x3=5
s3y3=4
s4x3=6
s4y3=4
s5x3=7
s5y3=4
s6x3=8
s6y3=4
s7x3=9
s7y3=4
s8x3=10
s8y3=4
s9x3=11
s9y3=4
sax3=12
say3=4
sbx3=13
sby3=4
scx3=14
scy3=4
sdx3=15
sdy3=4
sjx3=16
sjy3=4
skx3=17
sky3=4

px3=3

set_floor( "fl-abyss", s0x, s0y)
set_floor( "fl-abyss", s1x, s1y)
set_floor( "fl-abyss", s2x, s2y)
set_floor( "fl-abyss", s3x, s3y)
set_floor( "fl-abyss", s4x, s4y)
set_floor( "fl-abyss", s5x, s5y)
set_floor( "fl-abyss", s6x, s6y)
set_floor( "fl-abyss", s7x, s7y)
set_floor( "fl-abyss", s8x, s8y)
set_floor( "fl-abyss", s9x, s9y)
set_floor( "fl-abyss", sax, say)
set_floor( "fl-abyss", sbx, sby)
set_floor( "fl-abyss", scx, scy)
set_floor( "fl-abyss", sdx, sdy)
set_floor( "fl-abyss", sjx, sjy)
set_floor( "fl-abyss", skx, sky)

set_floor( "fl-abyss", s0x2, s0y2)
set_floor( "fl-abyss", s1x2, s1y2)
set_floor( "fl-abyss", s2x2, s2y2)
set_floor( "fl-abyss", s3x2, s3y2)
set_floor( "fl-abyss", s4x2, s4y2)
set_floor( "fl-abyss", s5x2, s5y2)
set_floor( "fl-abyss", s6x2, s6y2)
set_floor( "fl-abyss", s7x2, s7y2)
set_floor( "fl-abyss", s8x2, s8y2)
set_floor( "fl-abyss", s9x2, s9y2)
set_floor( "fl-abyss", sax2, say2)
set_floor( "fl-abyss", sbx2, sby2)
set_floor( "fl-abyss", scx2, scy2)
set_floor( "fl-abyss", sdx2, sdy2)
set_floor( "fl-abyss", sjx2, sjy2)
set_floor( "fl-abyss", skx2, sky2)

set_floor( "fl-abyss", s0x3, s0y3)
set_floor( "fl-abyss", s1x3, s1y3)
set_floor( "fl-abyss", s2x3, s2y3)
set_floor( "fl-abyss", s3x3, s3y3)
set_floor( "fl-abyss", s4x3, s4y3)
set_floor( "fl-abyss", s5x3, s5y3)
set_floor( "fl-abyss", s6x3, s6y3)
set_floor( "fl-abyss", s7x3, s7y3)
set_floor( "fl-abyss", s8x3, s8y3)
set_floor( "fl-abyss", s9x3, s9y3)
set_floor( "fl-abyss", sax3, say3)
set_floor( "fl-abyss", sbx3, sby3)
set_floor( "fl-abyss", scx3, scy3)
set_floor( "fl-abyss", sdx3, sdy3)
set_floor( "fl-abyss", sjx3, sjy3)
set_floor( "fl-abyss", skx3, sky3)

function timer_callback()

set_floor( "fl-hay", skx, sky)
set_floor( "fl-hay", skx2, sky2)
set_floor( "fl-hay", skx3, sky3)

if s0x<2 then
   if s0y<2 then
      x=random(2)
      if x==1 then
     x=2
      elseif x==2 then
     x=3
      end
   elseif s0y>10 then
      x=random(2)
      if x==1 then
     x=1
      elseif x==2 then
     x=2
      end
   else
      x=random(3)
      if x==1 then
     x=1
      elseif x==2 then
     x=2
      elseif x==3 then
     x=3
      end
   end
elseif s0x>17 then
   if s0y<2 then
      x=random(2)
      if x==1 then
     x=3
      elseif x==2 then
     x=4
      end
   elseif s0y>10 then
      x=random(2)
      if x==1 then
     x=1
      elseif x==2 then
     x=4
      end
   else
      x=random(3)
      if x==1 then
     x=1
      elseif x==2 then
     x=3
      elseif x==3 then
     x=4
      end
   end
else
   if s0y<2 then
      x=random(3)
      if x==1 then
     x=2
      elseif x==2 then
     x=3
      elseif x==3 then
     x=4
      end
   elseif s0y>10 then
      x=random(3)
      if x==1 then
     x=1
      elseif x==2 then
     x=2
      elseif x==3 then
     x=4
      end
   else
      x=random(4)
      if x==1 then
     x=1
      elseif x==2 then
     x=2
      elseif x==3 then
     x=3
      elseif x==4 then
     x=4
      end
   end
end

skx=sjx
sky=sjy
sjx=sdx
sjy=sdy
sdx=scx
sdy=scy
scx=sbx
scy=sby
sbx=sax
sby=say
sax=s9x
say=s9y
s9x=s8x
s9y=s8y
s8x=s7x
s8y=s7y
s7x=s6x
s7y=s6y
s6x=s5x
s6y=s5y
s5x=s4x
s5y=s4y
s4x=s3x
s4y=s3y
s3x=s2x
s3y=s2y
s2x=s1x
s2y=s1y
s1x=s0x
s1y=s0y

if x==1 then
   if px==3 and s0y<11 then
      s0y=s0y+1
      px=3
   else
      if px==3 then
     x=random(2)
     if x==1 then
        if s0x<18 then
           s0x=s0x+1
           px=2
        else
           s0x=s0x-1
           px=4
        end
     elseif x==2 then
        if s0x>1 then
           s0x=s0x-1
           px=4
        else
           s0x=s0x+1
           px=2
        end
     end
      else
     s0y=s0y-1
     px=1
      end
   end
elseif x==2 then
   if px==4 and s0x>1 then
      s0x=s0x-1
      px=4
   else
      if px==4 then
     x=random(2)
     if x==1 then
        if s0y>1 then
           s0y=s0y-1
           px=1
        else
           s0y=s0y+1
           px=3
        end
     elseif x==2 then
        if s0y<11 then
           s0y=s0y+1
           px=3
        else
           s0y=s0y-1
           px=1
        end
     end
      else
     s0x=s0x+1
     px=2
      end
   end
elseif x==3 then
   if px==1 and s0y>1 then
      s0y=s0y-1
      px=1
   else
      if px==1 then
     x=random(2)
     if x==1 then
        if s0x<18 then
           s0x=s0x+1
           px=2
        else
           s0x=s0x-1
           px=4
        end
     elseif x==2 then
        if s0x>1 then
           s0x=s0x-1
           px=4
        else
           s0x=s0x+1
           px=2
        end
     end
      else
     s0y=s0y+1
     px=3
      end
   end
elseif x==4 then
   if px==2 and s0x<18 then
      s0x=s0x+1
      px=2
   else
      if px==2 then
     x=random(2)
     if x==1 then
        if s0y>1 then
           s0y=s0y-1
           px=1
        else
           s0y=s0y+1
           px=3
        end
     elseif x==2 then
        if s0y<11 then
           s0y=s0y+1
           px=3
        else
           s0y=s0y-1
           px=1
        end
     end
      else
     s0x=s0x-1
     px=4
      end
   end
end

set_floor( "fl-abyss", s0x, s0y)
set_floor( "fl-abyss", s1x, s1y)
set_floor( "fl-abyss", s2x, s2y)
set_floor( "fl-abyss", s3x, s3y)
set_floor( "fl-abyss", s4x, s4y)
set_floor( "fl-abyss", s5x, s5y)
set_floor( "fl-abyss", s6x, s6y)
set_floor( "fl-abyss", s7x, s7y)
set_floor( "fl-abyss", s8x, s8y)
set_floor( "fl-abyss", s9x, s9y)
set_floor( "fl-abyss", sax, say)
set_floor( "fl-abyss", sbx, sby)
set_floor( "fl-abyss", scx, scy)
set_floor( "fl-abyss", sdx, sdy)
set_floor( "fl-abyss", sjx, sjy)
set_floor( "fl-abyss", skx, sky)

if s0x2<2 then
   if s0y2<2 then
      x2=random(2)
      if x2==1 then
     x2=2
      elseif x2==2 then
     x2=3
      end
   elseif s0y2>10 then
      x2=random(2)
      if x2==1 then
     x2=1
      elseif x2==2 then
     x2=2
      end
   else
      x2=random(3)
      if x2==1 then
     x2=1
      elseif x2==2 then
     x2=2
      elseif x2==3 then
     x2=3
      end
   end
elseif s0x2>17 then
   if s0y2<2 then
      x2=random(2)
      if x2==1 then
     x2=3
      elseif x2==2 then
     x2=4
      end
   elseif s0y2>10 then
      x2=random(2)
      if x2==1 then
     x2=1
      elseif x2==2 then
     x2=4
      end
   else
      x2=random(3)
      if x2==1 then
     x2=1
      elseif x2==2 then
     x2=3
      elseif x2==3 then
     x2=4
      end
   end
else
   if s0y2<2 then
      x2=random(3)
      if x2==1 then
     x2=2
      elseif x2==2 then
     x2=3
      elseif x2==3 then
     x2=4
      end
   elseif s0y2>10 then
      x2=random(3)
      if x2==1 then
     x2=1
      elseif x2==2 then
     x2=2
      elseif x2==3 then
     x2=4
      end
   else
      x2=random(4)
      if x2==1 then
     x2=1
      elseif x2==2 then
     x2=2
      elseif x2==3 then
     x2=3
      elseif x2==4 then
     x2=4
      end
   end
end

skx2=sjx2
sky2=sjy2
sjx2=sdx2
sjy2=sdy2
sdx2=scx2
sdy2=scy2
scx2=sbx2
scy2=sby2
sbx2=sax2
sby2=say2
sax2=s9x2
say2=s9y2
s9x2=s8x2
s9y2=s8y2
s8x2=s7x2
s8y2=s7y2
s7x2=s6x2
s7y2=s6y2
s6x2=s5x2
s6y2=s5y2
s5x2=s4x2
s5y2=s4y2
s4x2=s3x2
s4y2=s3y2
s3x2=s2x2
s3y2=s2y2
s2x2=s1x2
s2y2=s1y2
s1x2=s0x2
s1y2=s0y2

if x2==1 then
   if px2==3 and s0y2<11 then
      s0y2=s0y2+1
      px2=3
   else
      if px2==3 then
     x2=random(2)
     if x2==1 then
        if s0x2<18 then
           s0x2=s0x2+1
           px2=2
        else
           s0x2=s0x2-1
           px2=4
        end
     elseif x2==2 then
        if s0x2>1 then
           s0x2=s0x2-1
           px2=4
        else
           s0x2=s0x2+1
           px2=2
        end
     end
      else
     s0y2=s0y2-1
     px2=1
      end
   end
elseif x2==2 then
   if px2==4 and s0x2>1 then
      s0x2=s0x2-1
      px2=4
   else
      if px2==4 then
     x2=random(2)
     if x2==1 then
        if s0y2>1 then
           s0y2=s0y2-1
           px2=1
        else
           s0y2=s0y2+1
           px2=3
        end
     elseif x2==2 then
        if s0y2<11 then
           s0y2=s0y2+1
           px2=3
        else
           s0y2=s0y2-1
           px2=1
        end
     end
      else
     s0x2=s0x2+1
     px2=2
      end
   end
elseif x2==3 then
   if px2==1 and s0y2>1 then
      s0y2=s0y2-1
      px2=1
   else
      if px2==1 then
     x2=random(2)
     if x2==1 then
        if s0x2<18 then
           s0x2=s0x2+1
           px2=2
        else
           s0x2=s0x2-1
           px2=4
        end
     elseif x2==2 then
        if s0x2>1 then
           s0x2=s0x2-1
           px2=4
        else
           s0x2=s0x2+1
           px2=2
        end
     end
      else
     s0y2=s0y2+1
     px2=3
      end
   end
elseif x2==4 then
   if px2==2 and s0x2<18 then
      s0x2=s0x2+1
      px2=2
   else
      if px2==2 then
     x2=random(2)
     if x2==1 then
        if s0y2>1 then
           s0y2=s0y2-1
           px2=1
        else
           s0y2=s0y2+1
           px2=3
        end
     elseif x2==2 then
        if s0y2<11 then
           s0y2=s0y2+1
           px2=3
        else
           s0y2=s0y2-1
           px2=1
        end
     end
      else
     s0x2=s0x2-1
     px2=4
      end
   end
end

set_floor( "fl-abyss", s0x2, s0y2)
set_floor( "fl-abyss", s1x2, s1y2)
set_floor( "fl-abyss", s2x2, s2y2)
set_floor( "fl-abyss", s3x2, s3y2)
set_floor( "fl-abyss", s4x2, s4y2)
set_floor( "fl-abyss", s5x2, s5y2)
set_floor( "fl-abyss", s6x2, s6y2)
set_floor( "fl-abyss", s7x2, s7y2)
set_floor( "fl-abyss", s8x2, s8y2)
set_floor( "fl-abyss", s9x2, s9y2)
set_floor( "fl-abyss", sax2, say2)
set_floor( "fl-abyss", sbx2, sby2)
set_floor( "fl-abyss", scx2, scy2)
set_floor( "fl-abyss", sdx2, sdy2)
set_floor( "fl-abyss", sjx2, sjy2)
set_floor( "fl-abyss", skx2, sky2)

if s0x3<2 then
   if s0y3<2 then
      x3=random(2)
      if x3==1 then
     x3=2
      elseif x3==2 then
     x3=3
      end
   elseif s0y3>10 then
      x3=random(2)
      if x3==1 then
     x3=1
      elseif x3==2 then
     x3=2
      end
   else
      x3=random(3)
      if x3==1 then
     x3=1
      elseif x3==2 then
     x3=2
      elseif x3==3 then
     x3=3
      end
   end
elseif s0x3>17 then
   if s0y3<2 then
      x3=random(2)
      if x3==1 then
     x3=3
      elseif x3==2 then
     x3=4
      end
   elseif s0y3>10 then
      x3=random(2)
      if x3==1 then
     x3=1
      elseif x3==2 then
     x3=4
      end
   else
      x3=random(3)
      if x3==1 then
     x3=1
      elseif x3==2 then
     x3=3
      elseif x3==3 then
     x3=4
      end
   end
else
   if s0y3<2 then
      x3=random(3)
      if x3==1 then
     x3=2
      elseif x3==2 then
     x3=3
      elseif x3==3 then
     x3=4
      end
   elseif s0y3>10 then
      x3=random(3)
      if x3==1 then
     x3=1
      elseif x3==2 then
     x3=2
      elseif x3==3 then
     x3=4
      end
   else
      x3=random(4)
      if x3==1 then
     x3=1
      elseif x3==2 then
     x3=2
      elseif x3==3 then
     x3=3
      elseif x3==4 then
     x3=4
      end
   end
end

skx3=sjx3
sky3=sjy3
sjx3=sdx3
sjy3=sdy3
sdx3=scx3
sdy3=scy3
scx3=sbx3
scy3=sby3
sbx3=sax3
sby3=say3
sax3=s9x3
say3=s9y3
s9x3=s8x3
s9y3=s8y3
s8x3=s7x3
s8y3=s7y3
s7x3=s6x3
s7y3=s6y3
s6x3=s5x3
s6y3=s5y3
s5x3=s4x3
s5y3=s4y3
s4x3=s3x3
s4y3=s3y3
s3x3=s2x3
s3y3=s2y3
s2x3=s1x3
s2y3=s1y3
s1x3=s0x3
s1y3=s0y3

if x3==1 then
   if px3==3 and s0y3<11 then
      s0y3=s0y3+1
      px3=3
   else
      if px3==3 then
     x3=random(2)
     if x3==1 then
        if s0x3<18 then
           s0x3=s0x3+1
           px3=2
        else
           s0x3=s0x3-1
           px3=4
        end
     elseif x3==2 then
        if s0x3>1 then
           s0x3=s0x3-1
           px3=4
        else
           s0x3=s0x3+1
           px3=2
        end
     end
      else
     s0y3=s0y3-1
     px3=1
      end
   end
elseif x3==2 then
   if px3==4 and s0x3>1 then
      s0x3=s0x3-1
      px3=4
   else
      if px3==4 then
     x3=random(2)
     if x3==1 then
        if s0y3>1 then
           s0y3=s0y3-1
           px3=1
        else
           s0y3=s0y3+1
           px3=3
        end
     elseif x3==2 then
        if s0y3<11 then
           s0y3=s0y3+1
           px3=3
        else
           s0y3=s0y3-1
           px3=1
        end
     end
      else
     s0x3=s0x3+1
     px3=2
      end
   end
elseif x3==3 then
   if px3==1 and s0y3>1 then
      s0y3=s0y3-1
      px3=1
   else
      if px3==1 then
     x3=random(2)
     if x3==1 then
        if s0x3<18 then
           s0x3=s0x3+1
           px3=2
        else
           s0x3=s0x3-1
           px3=4
        end
     elseif x3==2 then
        if s0x3>1 then
           s0x3=s0x3-1
           px3=4
        else
           s0x3=s0x3+1
           px3=2
        end
     end
      else
     s0y3=s0y3+1
     px3=3
      end
   end
elseif x3==4 then
   if px3==2 and s0x3<18 then
      s0x3=s0x3+1
      px3=2
   else
      if px3==2 then
     x3=random(2)
     if x3==1 then
        if s0y3>1 then
           s0y3=s0y3-1
           px3=1
        else
           s0y3=s0y3+1
           px3=3
        end
     elseif x3==2 then
        if s0y3<11 then
           s0y3=s0y3+1
           px3=3
        else
           s0y3=s0y3-1
           px3=1
        end
     end
      else
     s0x3=s0x3-1
     px3=4
      end
   end
end

set_floor( "fl-abyss", s0x3, s0y3)
set_floor( "fl-abyss", s1x3, s1y3)
set_floor( "fl-abyss", s2x3, s2y3)
set_floor( "fl-abyss", s3x3, s3y3)
set_floor( "fl-abyss", s4x3, s4y3)
set_floor( "fl-abyss", s5x3, s5y3)
set_floor( "fl-abyss", s6x3, s6y3)
set_floor( "fl-abyss", s7x3, s7y3)
set_floor( "fl-abyss", s8x3, s8y3)
set_floor( "fl-abyss", s9x3, s9y3)
set_floor( "fl-abyss", sax3, say3)
set_floor( "fl-abyss", sbx3, sby3)
set_floor( "fl-abyss", scx3, scy3)
set_floor( "fl-abyss", sdx3, sdy3)
set_floor( "fl-abyss", sjx3, sjy3)
set_floor( "fl-abyss", skx3, sky3)

end

set_stone("st-timer", 21,0, {action="callback", target="timer_callback", interval=.12})
    ]]></el:luamain>
    <el:i18n>
      <el:string el:key="title">
        <el:english el:translate="false"/>
      </el:string>
    </el:i18n>
  </el:protected>
</el:level>
