home *** CD-ROM | disk | FTP | other *** search
/ GameStar Special 2004 August / GSSH0804.iso / Geschicklichkeit / Enigma / Enigma-081.exe / data / levels / ss_esp94.lua < prev    next >
Text File  |  2003-08-14  |  5KB  |  171 lines

  1. -- Sven Siggelkow 2003
  2. -- ESPRIT #94
  3.  
  4. levelw = 20
  5. levelh = 13
  6.  
  7. create_world(levelw, levelh)
  8. oxyd_default_flavor = "d"
  9. set_actor("ac-blackball", 9.5,6.5, {player=0})
  10.  
  11. fill_floor("fl-samba", 0,0, levelw,levelh)
  12.  
  13. function renderLine( line, pattern)
  14.     for i=1, strlen(pattern) do
  15.       local c = strsub( pattern, i, i)
  16.       if c ==   "#" then
  17.          set_stone("st-rock1", i-1,line)
  18.       elseif c ==">" then
  19.          set_stone("st-oneway_black-e",i-1,line)
  20.          set_item("it-blocker", i-1,line)   -- to prevent placing a seed
  21.       elseif c =="<" then
  22.          set_stone("st-oneway_black-w",i-1,line)
  23.          set_item("it-blocker", i-1,line)
  24.       elseif c =="x" then
  25.          set_stone("st-rock1_move", i-1,line)
  26.          set_item("it-seed", i-1,line)         
  27.       elseif c =="a" then
  28.          set_item("it-trigger", i-1,line, {invisible=1,action="callback", target="s1"})
  29.       elseif c =="b" then
  30.          set_item("it-trigger", i-1,line, {invisible=1,action="callback", target="s2"})
  31.       elseif c =="c" then
  32.          set_item("it-trigger", i-1,line, {invisible=1,action="callback", target="s3"})
  33.       elseif c =="d" then
  34.          set_item("it-trigger", i-1,line, {invisible=1,action="callback", target="s4"})
  35.       elseif c =="e" then
  36.          set_item("it-trigger", i-1,line, {invisible=1,action="callback", target="s5"})
  37.       elseif c =="f" then
  38.          set_item("it-trigger", i-1,line, {invisible=1,action="callback", target="s6"})
  39.       elseif c =="g" then
  40.          set_item("it-trigger", i-1,line, {invisible=1,action="callback", target="s7"})
  41.       elseif c =="h" then
  42.          set_item("it-trigger", i-1,line, {invisible=1,action="callback", target="s8"})
  43.       elseif c =="i" then
  44.          set_item("it-trigger", i-1,line, {invisible=1,action="callback", target="s9"})
  45.       elseif c =="j" then
  46.          set_item("it-trigger", i-1,line, {invisible=1,action="callback", target="s10"})
  47.       elseif c =="k" then
  48.          set_item("it-trigger", i-1,line, {invisible=1,action="callback", target="s11"})
  49.       elseif c =="l" then
  50.          set_item("it-trigger", i-1,line, {invisible=1,action="callback", target="s12"})
  51.       elseif c =="w" then                                                               
  52.          set_item("it-wormhole",i-1,line, {name="warp",targetx="2.5",targety="3.5",strength=0})
  53.       elseif c=="O" then                                                               
  54.      oxyd(i-1,line) 
  55.         end
  56.     end  
  57. end
  58. --               01234567890123456789
  59. renderLine(00 , "####################")
  60. renderLine(01 , "#     >      <     #")
  61. renderLine(02 , "O     >      <     O")
  62. renderLine(03 , "# axg >      < dxj #")
  63. renderLine(04 , "#######      #######")  
  64. renderLine(05 , "#     >      <     #")
  65. renderLine(06 , "O     >   w  <     O")
  66. renderLine(07 , "# bxh >      < exk #")
  67. renderLine(08 , "#######      #######")
  68. renderLine(09 , "#     >      <     #")
  69. renderLine(10 , "O     >      <     O")
  70. renderLine(11 , "# cxi >      < fxl #")
  71. renderLine(12 , "####################") 
  72. --               01234567890123456789
  73.  
  74. function s1() s(1) end
  75. function s2() s(2) end
  76. function s3() s(3) end
  77. function s4() s(4) end
  78. function s5() s(5) end
  79. function s6() s(6) end
  80. function s7() s(7) end
  81. function s8() s(8) end
  82. function s9() s(9) end
  83. function s10() s(10) end
  84. function s11() s(11) end
  85. function s12() s(12) end
  86.  
  87. local flags = {0,0,0,0,0,0,0,0,0,0,0,0}
  88. x = 2.5
  89. y = 3.5
  90.  
  91.  
  92. function s(num)
  93. %flags[num]=1-%flags[num]
  94. status=0
  95. for i=1,12 do
  96.   status = status + %flags[i]*(2^i)
  97.   end
  98. if     status == 0 then
  99.     xalt = x
  100.     yalt = y
  101.     x = 2.5 
  102.     y = 3.5
  103. elseif status == 2 then
  104.     xalt = x
  105.     yalt = y
  106.     x = 2.5 
  107.     y = 7.5
  108. elseif status == 6 then
  109.     xalt = x
  110.     yalt = y
  111.     x = 2.5 
  112.     y = 11.5
  113. elseif status == 14 then
  114.     xalt = x
  115.     yalt = y
  116.     x = 15.5 
  117.     y = 3.5
  118. elseif status == 30 then
  119.     xalt = x
  120.     yalt = y
  121.     x = 15.5 
  122.     y = 7.5
  123. elseif status == 62 then
  124.     xalt = x
  125.     yalt = y
  126.     x = 15.5 
  127.     y = 11.5
  128. elseif status == 126 then
  129.     xalt = x
  130.     yalt = y
  131.     x = 4.5 
  132.     y = 3.5
  133. elseif status == 254 then
  134.     xalt = x
  135.     yalt = y
  136.     x = 4.5 
  137.     y = 7.5
  138. elseif status == 510 then
  139.     xalt = x
  140.     yalt = y
  141.     x = 4.5 
  142.     y = 11.5
  143. elseif status == 1022 then
  144.     xalt = x
  145.     yalt = y
  146.     x = 17.5 
  147.     y = 3.5
  148. elseif status == 2046 then
  149.     xalt = x
  150.     yalt = y
  151.     x = 17.5 
  152.     y = 7.5
  153. elseif status == 4094 then
  154.     xalt = x
  155.     yalt = y
  156.     x = 17.5 
  157.     y = 11.5
  158. elseif status == 8190 then
  159.     xalt = x
  160.     yalt = y
  161.     x = 2.5 
  162.     y = 1.5
  163.     document(2,1,"If you haven't won, you've lost!") 
  164. else
  165.     x=xalt
  166.     y=yalt    
  167. end    
  168. set_attribs(enigma.GetNamedObject("warp"), {targetx=x, targety=y})
  169.  
  170. end
  171.