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

  1. -- Sven Siggelkow 2003
  2. -- ESPRIT #081
  3.  
  4. levelw = 39
  5. levelh = 21
  6. create_world(levelw, levelh)
  7. display.SetFollowMode(display.FOLLOW_SCROLLING)
  8. oxyd_default_flavor = "a"
  9. set_actor("ac-blackball", 1.5,1.5, {player=0})
  10. fill_floor("fl-leaves",0,0,levelw,levelh)
  11.  
  12. function renderLine( line, pattern)
  13.     for i=1, strlen(pattern) do
  14.       local c = strsub( pattern, i, i)
  15.       if c ==   "#" then
  16.          set_stone("st-brick", i-1,line)
  17.       elseif c=="." then
  18.          set_item("it-extralife",i-1,line)
  19.       elseif c=="~" then
  20.          set_item("it-crack0",i-1,line)
  21.       elseif c=="1" then
  22.      set_stone("st-fourswitch", i-1,line, {action="callback", target="s1"})
  23.       elseif c=="2" then
  24.      set_stone("st-fourswitch", i-1,line, {action="callback", target="s2"})
  25.       elseif c=="3" then
  26.      set_stone("st-fourswitch", i-1,line, {action="callback", target="s3"})
  27.       elseif c=="4" then
  28.      set_stone("st-fourswitch", i-1,line, {action="callback", target="s4"})
  29.       elseif c=="5" then
  30.      set_stone("st-fourswitch", i-1,line, {action="callback", target="s5"})
  31.       elseif c=="6" then
  32.      set_stone("st-fourswitch", i-1,line, {action="callback", target="s6"})
  33.       elseif c=="7" then
  34.      set_stone("st-fourswitch", i-1,line, {action="callback", target="s7"})
  35.       elseif c=="8" then
  36.      set_stone("st-fourswitch", i-1,line, {action="callback", target="s8"})
  37.       elseif c=="9" then
  38.      set_stone("st-fourswitch", i-1,line, {action="callback", target="s9"})
  39.       elseif c=="0" then
  40.      set_stone("st-fourswitch", i-1,line, {action="callback", target="s0"})
  41.       elseif c=="A" then
  42.      set_stone("st-fourswitch", i-1,line, {action="callback", target="sA"})
  43.       elseif c=="B" then
  44.      set_stone("st-fourswitch", i-1,line, {action="callback", target="sB"})
  45.       elseif c=="C" then
  46.      set_stone("st-fourswitch", i-1,line, {action="callback", target="sC"})
  47.       elseif c=="D" then
  48.      set_stone("st-fourswitch", i-1,line, {action="callback", target="sD"})
  49.       elseif c=="E" then
  50.      set_stone("st-fourswitch", i-1,line, {action="callback", target="sE"})
  51.       elseif c=="<" then
  52.          set_stone("st-oneway_black-w",i-1,line)
  53.       elseif c==">" then
  54.          set_stone("st-oneway_black-e",i-1,line)
  55.       elseif c=="v" then
  56.          set_stone("st-oneway_black-s",i-1,line)
  57.       elseif c=="^" then
  58.          set_stone("st-oneway_black-n",i-1,line)
  59.       elseif c=="O" then
  60.      oxyd(i-1,line)         
  61.         end
  62.     end  
  63. end
  64. --               012345678901234567890123456789012345678
  65. renderLine(00 , "#######################################")
  66. renderLine(01 , "#     ##     ##         ##     ##     #")
  67. renderLine(02 , "#     ##     ##         ##     ##     #")
  68. renderLine(03 , "#  1  ><  2  ><    3    ><  4  ><  5~ #")
  69. renderLine(04 , "#     ##     ##         ##  ~  ##     #")  
  70. renderLine(05 , "#     O#  ~  #O         #O     ##     #")
  71. renderLine(06 , "###v######v########v########v######v###")
  72. renderLine(07 , "###^######^########^########^######^###")
  73. renderLine(08 , "#     ##     ##         ##     ##     #")
  74. renderLine(09 , "#  ~  ## ~   ##         ##     ##     #")
  75. renderLine(10 , "#  6  ><  7  ><    8    ><  9~ ><  0  #")
  76. renderLine(11 , "#     ##     ##         ##     ##   ~ #")
  77. renderLine(12 , "#     ##     O#         O#     ##     #") 
  78. renderLine(13 , "###v######v########v########v######v###")
  79. renderLine(14 , "###^######^########^########^######^###")
  80. renderLine(15 , "#    .##     #O         ##     ##     #")
  81. renderLine(16 , "#     ## ~   ##   ~     ##     ##     #")
  82. renderLine(17 , "#  A  ><  B  ><    C    ><  D  ><  E  #")  
  83. renderLine(18 , "#     ##     ##         ##   ~ ##     #")
  84. renderLine(19 , "#     O#     ##         ##.    #O     #")
  85. renderLine(20 , "#######################################")
  86. --               012345678901234567890123456789012345678
  87.                                
  88. -- var        1 2 3 4 5 6 7 8 9 0 A B C D E 
  89. local flag = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
  90. -- I          1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 
  91.  
  92.  
  93. function s1()                               
  94. %flag[1] = %flag[1] + 1
  95. if %flag[1] == 4 then %flag[1] = 0 end 
  96. if %flag[1] == 0 then
  97.     set_stone("st-oneway_black-w", 7,3)
  98.     set_stone("st-oneway_black-n", 3,7)
  99.  elseif %flag[1] == 1 then
  100.     set_stone("st-oneway_black-e", 7,3)
  101.     set_stone("st-oneway_black-n", 3,7)
  102.  elseif %flag[1] == 2 then
  103.     set_stone("st-oneway_black-w", 7,3)
  104.     set_stone("st-oneway_black-s", 3,7)
  105.  elseif %flag[1] == 3 then
  106.     set_stone("st-oneway_black-w", 7,3)
  107.     set_stone("st-oneway_black-n", 3,7)
  108.  end
  109. end                              
  110.  
  111. function s2()                               
  112. %flag[2] = %flag[2] + 1
  113. if %flag[2] == 4 then %flag[2] = 0 end
  114. if %flag[2] == 0 then
  115.     set_stone("st-oneway_black-w", 14,3)
  116.     set_stone("st-oneway_black-n", 10,7)
  117.     set_stone("st-oneway_black-e", 6 ,3)
  118.  elseif %flag[2] == 1 then
  119.     set_stone("st-oneway_black-e", 14,3)
  120.     set_stone("st-oneway_black-n", 10,7)
  121.     set_stone("st-oneway_black-e", 6 ,3)
  122.  elseif %flag[2] == 2 then
  123.     set_stone("st-oneway_black-w", 14,3)
  124.     set_stone("st-oneway_black-s", 10,7)
  125.     set_stone("st-oneway_black-e", 6 ,3)
  126.  elseif %flag[2] == 3 then
  127.     set_stone("st-oneway_black-w", 14,3)
  128.     set_stone("st-oneway_black-n", 10,7)
  129.     set_stone("st-oneway_black-w", 6 ,3)   
  130.  end
  131. end 
  132.  
  133. function s3()                               
  134. %flag[3] = %flag[3] + 1
  135. if %flag[3] == 4 then %flag[3] = 0 end
  136. if %flag[3] == 0 then
  137.     set_stone("st-oneway_black-w", 25,3)
  138.     set_stone("st-oneway_black-n", 19,7)
  139.     set_stone("st-oneway_black-e", 13,3)
  140.  elseif %flag[3] == 1 then
  141.     set_stone("st-oneway_black-e", 25,3)
  142.     set_stone("st-oneway_black-n", 19,7)
  143.     set_stone("st-oneway_black-e", 13,3)
  144.  elseif %flag[3] == 2 then
  145.     set_stone("st-oneway_black-w", 25,3)
  146.     set_stone("st-oneway_black-s", 19,7)
  147.     set_stone("st-oneway_black-e", 13,3)
  148.  elseif %flag[3] == 3 then
  149.     set_stone("st-oneway_black-w", 25,3)
  150.     set_stone("st-oneway_black-n", 19,7)
  151.     set_stone("st-oneway_black-w", 13,3)   
  152.  end
  153. end 
  154.  
  155. function s4()                               
  156. %flag[4] = %flag[4] + 1
  157. if %flag[4] == 4 then %flag[4] = 0 end
  158. if %flag[4] == 0 then
  159.     set_stone("st-oneway_black-w", 32,3)
  160.     set_stone("st-oneway_black-n", 28,7)
  161.     set_stone("st-oneway_black-e", 24,3)
  162.  elseif %flag[4] == 1 then
  163.     set_stone("st-oneway_black-e", 32,3)   
  164.     set_stone("st-oneway_black-n", 28,7)   
  165.     set_stone("st-oneway_black-e", 24,3)   
  166.  elseif %flag[4] == 2 then
  167.     set_stone("st-oneway_black-w", 32,3)
  168.     set_stone("st-oneway_black-s", 28,7)
  169.     set_stone("st-oneway_black-e", 24,3)
  170.  elseif %flag[4] == 3 then
  171.     set_stone("st-oneway_black-w", 32,3)
  172.     set_stone("st-oneway_black-n", 28,7)
  173.     set_stone("st-oneway_black-w", 24,3)   
  174.  end
  175. end 
  176.  
  177. function s5()                               
  178. %flag[5] = %flag[5] + 1
  179. if %flag[5] == 4 then %flag[5] = 0 end
  180. if %flag[5] == 0 then
  181.     set_stone("st-oneway_black-n", 35,7)
  182.     set_stone("st-oneway_black-e", 31,3)
  183.  elseif %flag[5] == 1 then
  184.     set_stone("st-oneway_black-n", 35,7)
  185.     set_stone("st-oneway_black-e", 31,3)
  186.  elseif %flag[5] == 2 then
  187.     set_stone("st-oneway_black-s", 35,7)
  188.     set_stone("st-oneway_black-e", 31,3)
  189.  elseif %flag[5] == 3 then
  190.     set_stone("st-oneway_black-n", 35,7)
  191.     set_stone("st-oneway_black-w", 31,3)   
  192.  end
  193. end 
  194.  
  195. function s6()                               
  196. %flag[6] = %flag[6] + 1
  197. if %flag[6] == 4 then %flag[6] = 0 end
  198. if %flag[6] == 0 then
  199.     set_stone("st-oneway_black-n", 3,6 )
  200.     set_stone("st-oneway_black-w", 7,10)
  201.     set_stone("st-oneway_black-n", 3,14)
  202.  elseif %flag[6] == 1 then
  203.     set_stone("st-oneway_black-s", 3,6 )
  204.     set_stone("st-oneway_black-e", 7,10)
  205.     set_stone("st-oneway_black-n", 3,14)
  206.  elseif %flag[6] == 2 then
  207.     set_stone("st-oneway_black-s", 3,6 )
  208.     set_stone("st-oneway_black-w", 7,10)
  209.     set_stone("st-oneway_black-s", 3,14)
  210.  elseif %flag[6] == 3 then
  211.     set_stone("st-oneway_black-s", 3,6 )
  212.     set_stone("st-oneway_black-w", 7,10)
  213.     set_stone("st-oneway_black-n", 3,14)
  214.  end
  215. end 
  216.  
  217. function s7()                               
  218. %flag[7] = %flag[7] + 1
  219. if %flag[7] == 4 then %flag[7] = 0 end
  220. if %flag[7] == 0 then
  221.     set_stone("st-oneway_black-n", 10,6 )
  222.     set_stone("st-oneway_black-w", 14,10)
  223.     set_stone("st-oneway_black-n", 10,14)
  224.     set_stone("st-oneway_black-e",  6,10)
  225.  elseif %flag[7] == 1 then
  226.     set_stone("st-oneway_black-s", 10,6 )
  227.     set_stone("st-oneway_black-e", 14,10)
  228.     set_stone("st-oneway_black-n", 10,14)
  229.     set_stone("st-oneway_black-e",  6,10)
  230.  elseif %flag[7] == 2 then
  231.     set_stone("st-oneway_black-s", 10,6 )
  232.     set_stone("st-oneway_black-w", 14,10)
  233.     set_stone("st-oneway_black-s", 10,14)
  234.     set_stone("st-oneway_black-e",  6,10)
  235.  elseif %flag[7] == 3 then
  236.     set_stone("st-oneway_black-s", 10,6 )
  237.     set_stone("st-oneway_black-w", 14,10)
  238.     set_stone("st-oneway_black-n", 10,14)
  239.     set_stone("st-oneway_black-w",  6,10)   
  240.  end
  241. end 
  242.  
  243. function s8()                               
  244. %flag[8] = %flag[8] + 1
  245. if %flag[8] == 4 then %flag[8] = 0 end
  246. if %flag[8] == 0 then
  247.     set_stone("st-oneway_black-n", 19,6 )
  248.     set_stone("st-oneway_black-w", 25,10)
  249.     set_stone("st-oneway_black-n", 19,14)
  250.     set_stone("st-oneway_black-e", 13,10)
  251.  elseif %flag[8] == 1 then
  252.     set_stone("st-oneway_black-s", 19,6 )
  253.     set_stone("st-oneway_black-e", 25,10)
  254.     set_stone("st-oneway_black-n", 19,14)
  255.     set_stone("st-oneway_black-e", 13,10)
  256.  elseif %flag[8] == 2 then
  257.     set_stone("st-oneway_black-s", 19,6 )
  258.     set_stone("st-oneway_black-w", 25,10)
  259.     set_stone("st-oneway_black-s", 19,14)
  260.     set_stone("st-oneway_black-e", 13,10)
  261.  elseif %flag[8] == 3 then
  262.     set_stone("st-oneway_black-s", 19,6 )
  263.     set_stone("st-oneway_black-w", 25,10)
  264.     set_stone("st-oneway_black-n", 19,14)
  265.     set_stone("st-oneway_black-w", 13,10)   
  266.  end
  267. end 
  268.  
  269. function s9()                               
  270. %flag[9] = %flag[9] + 1
  271. if %flag[9] == 4 then %flag[9] = 0 end
  272. if %flag[9] == 0 then
  273.     set_stone("st-oneway_black-n", 28, 6)
  274.     set_stone("st-oneway_black-w", 32,10)
  275.     set_stone("st-oneway_black-n", 28,14)
  276.     set_stone("st-oneway_black-e", 24,10)
  277.  elseif %flag[9] == 1 then
  278.     set_stone("st-oneway_black-s", 28, 6)
  279.     set_stone("st-oneway_black-e", 32,10)
  280.     set_stone("st-oneway_black-n", 28,14)
  281.     set_stone("st-oneway_black-e", 24,10)
  282.  elseif %flag[9] == 2 then
  283.     set_stone("st-oneway_black-s", 28, 6)
  284.     set_stone("st-oneway_black-w", 32,10)
  285.     set_stone("st-oneway_black-s", 28,14)
  286.     set_stone("st-oneway_black-e", 24,10)
  287.  elseif %flag[9] == 3 then
  288.     set_stone("st-oneway_black-s", 28, 6)
  289.     set_stone("st-oneway_black-w", 32,10)
  290.     set_stone("st-oneway_black-n", 28,14)
  291.     set_stone("st-oneway_black-w", 24,10)   
  292.  end
  293. end 
  294.  
  295. function s0()                               
  296. %flag[10] = %flag[10] + 1
  297. if %flag[10] == 4 then %flag[10] = 0 end
  298. if %flag[10] == 0 then
  299.     set_stone("st-oneway_black-n", 35, 6)
  300.     set_stone("st-oneway_black-n", 35,14)
  301.     set_stone("st-oneway_black-e", 31,10)
  302.  elseif %flag[10] == 1 then
  303.     set_stone("st-oneway_black-s", 35, 6)
  304.     set_stone("st-oneway_black-n", 35,14)
  305.     set_stone("st-oneway_black-e", 31,10)
  306.  elseif %flag[10] == 2 then
  307.     set_stone("st-oneway_black-s", 35, 6)
  308.     set_stone("st-oneway_black-s", 35,14)
  309.     set_stone("st-oneway_black-e", 31,10)
  310.  elseif %flag[10] == 3 then
  311.     set_stone("st-oneway_black-s", 35, 6)
  312.     set_stone("st-oneway_black-n", 35,14)
  313.     set_stone("st-oneway_black-w", 31,10)   
  314.  end
  315. end 
  316.  
  317. function sA()                               
  318. %flag[11] = %flag[11] + 1
  319. if %flag[11] == 4 then %flag[11] = 0 end
  320. if %flag[11] == 0 then
  321.     set_stone("st-oneway_black-n",  3,13)
  322.     set_stone("st-oneway_black-w",  7,17)
  323.  elseif %flag[11] == 1 then
  324.     set_stone("st-oneway_black-s",  3,13)
  325.     set_stone("st-oneway_black-e",  7,17)
  326.  elseif %flag[11] == 2 then
  327.     set_stone("st-oneway_black-s",  3,13)
  328.     set_stone("st-oneway_black-w",  7,17)
  329.  elseif %flag[11] == 3 then
  330.     set_stone("st-oneway_black-s",  3,13)
  331.     set_stone("st-oneway_black-w",  7,17)
  332.  end
  333. end 
  334.  
  335. function sB()                               
  336. %flag[12] = %flag[12] + 1
  337. if %flag[12] == 4 then %flag[12] = 0 end
  338. if %flag[12] == 0 then
  339.     set_stone("st-oneway_black-n", 10,13)
  340.     set_stone("st-oneway_black-w", 14,17)
  341.     set_stone("st-oneway_black-e",  6,17)
  342.  elseif %flag[12] == 1 then
  343.     set_stone("st-oneway_black-s", 10,13)
  344.     set_stone("st-oneway_black-e", 14,17)
  345.     set_stone("st-oneway_black-e",  6,17)
  346.  elseif %flag[12] == 2 then
  347.     set_stone("st-oneway_black-s", 10,13)
  348.     set_stone("st-oneway_black-w", 14,17)
  349.     set_stone("st-oneway_black-e",  6,17)
  350.  elseif %flag[12] == 3 then
  351.     set_stone("st-oneway_black-s", 10,13)
  352.     set_stone("st-oneway_black-w", 14,17)
  353.     set_stone("st-oneway_black-w",  6,17)   
  354.  end
  355. end 
  356.  
  357. function sC()                               
  358. %flag[13] = %flag[13] + 1
  359. if %flag[13] == 4 then %flag[13] = 0 end
  360. if %flag[13] == 0 then
  361.     set_stone("st-oneway_black-n", 19,13)
  362.     set_stone("st-oneway_black-w", 25,17)
  363.     set_stone("st-oneway_black-e", 13,17)
  364.  elseif %flag[13] == 1 then
  365.     set_stone("st-oneway_black-s", 19,13)
  366.     set_stone("st-oneway_black-e", 25,17)
  367.     set_stone("st-oneway_black-e", 13,17)
  368.  elseif %flag[13] == 2 then
  369.     set_stone("st-oneway_black-s", 19,13)
  370.     set_stone("st-oneway_black-w", 25,17)
  371.     set_stone("st-oneway_black-e", 13,17)
  372.  elseif %flag[13] == 3 then
  373.     set_stone("st-oneway_black-s", 19,13)
  374.     set_stone("st-oneway_black-w", 25,17)
  375.     set_stone("st-oneway_black-w", 13,17)   
  376.  end
  377. end 
  378.  
  379. function sD()                               
  380. %flag[14] = %flag[14] + 1
  381. if %flag[14] == 4 then %flag[14] = 0 end
  382. if %flag[14] == 0 then
  383.     set_stone("st-oneway_black-n", 28,13)
  384.     set_stone("st-oneway_black-w", 32,17)
  385.     set_stone("st-oneway_black-e", 24,17)
  386.  elseif %flag[14] == 1 then
  387.     set_stone("st-oneway_black-s", 28,13)
  388.     set_stone("st-oneway_black-e", 32,17)
  389.     set_stone("st-oneway_black-e", 24,17)
  390.  elseif %flag[14] == 2 then
  391.     set_stone("st-oneway_black-s", 28,13)
  392.     set_stone("st-oneway_black-w", 32,17)
  393.     set_stone("st-oneway_black-e", 24,17)
  394.  elseif %flag[14] == 3 then
  395.     set_stone("st-oneway_black-s", 28,13)
  396.     set_stone("st-oneway_black-w", 32,17)
  397.     set_stone("st-oneway_black-w", 24,17)   
  398.  end
  399. end 
  400.  
  401. function sE()                               
  402. %flag[15] = %flag[15] + 1
  403. if %flag[15] == 4 then %flag[15] = 0 end
  404. if %flag[15] == 0 then
  405.     set_stone("st-oneway_black-n", 35,13)
  406.     set_stone("st-oneway_black-e", 31,17)
  407.  elseif %flag[15] == 1 then
  408.     set_stone("st-oneway_black-s", 35,13)
  409.     set_stone("st-oneway_black-e", 31,17)
  410.  elseif %flag[15] == 2 then
  411.     set_stone("st-oneway_black-s", 35,13)
  412.     set_stone("st-oneway_black-e", 31,17)
  413.  elseif %flag[15] == 3 then        
  414.     set_stone("st-oneway_black-s", 35,13)
  415.     set_stone("st-oneway_black-w", 31,17)   
  416.  end
  417. end 
  418.  
  419.  
  420. oxyd_shuffle()
  421.