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

  1. -- Sven Siggelkow 2003
  2. -- ESPRIT #083
  3. -- problem: orientation switching of the oneways is not properly possible. 
  4. --          set_attrib does work but only for the direction, the image shows still the initial arrow.
  5. --          if it is fixed, you can correct it.  
  6.  
  7. levelw = 20
  8. levelh = 13
  9. create_world(levelw, levelh)
  10. oxyd_default_flavor = "a"
  11. set_actor("ac-blackball", 15.5,6.5, {player=0})
  12. fill_floor("fl-black",0,0,levelw,levelh)
  13.  
  14. function renderLine( line, pattern)
  15.     for i=1, strlen(pattern) do
  16.       local c = strsub( pattern, i, i)
  17.       if c ==   "#" then
  18.          set_stone("st-blocker", i-1,line)
  19.       elseif c=="s" then
  20.          set_stone("st-switch_black", i-1,line)
  21.       elseif c=="1" then
  22.          set_stone("st-switch_black", i-1,line,{name="s1s", target="s1", action="callback"})
  23.       elseif c=="2" then
  24.          set_stone("st-switch_black", i-1,line,{name="s2s", target="s2", action="callback"})
  25.       elseif c=="3" then
  26.          set_stone("st-switch_black", i-1,line,{target="s3", action="callback"})
  27.       elseif c=="4" then
  28.          set_stone("st-switch_black", i-1,line,{target="s4", action="callback"})
  29.       elseif c=="5" then
  30.          set_stone("st-switch_black", i-1,line,{name="s5s", target="s5", action="callback"})
  31.       elseif c=="6" then
  32.          set_stone("st-switch_black", i-1,line,{name="s6s", target="s6", action="callback"})
  33.       elseif c=="7" then
  34.          set_stone("st-switch_black", i-1,line,{target="s7", action="callback"})
  35.       elseif c=="8" then
  36.          set_stone("st-switch_black", i-1,line,{target="s8", action="callback"})
  37.       elseif c=="9" then
  38.          set_stone("st-switch_black", i-1,line,{name="s9s", target="s9", action="callback"})
  39.       elseif c=="A" then
  40.          set_stone("st-switch_black", i-1,line,{target="sA", action="callback"})
  41.       elseif c=="B" then
  42.          set_stone("st-switch_black", i-1,line,{target="sB", action="callback"})
  43.       elseif c=="C" then
  44.          set_stone("st-switch_black", i-1,line,{target="sC", action="callback"})
  45.       elseif c=="D" then
  46.          set_stone("st-switch_black", i-1,line,{target="sD", action="callback"})
  47.       elseif c=="E" then
  48.          set_stone("st-switch_black", i-1,line,{target="sE", action="callback"})
  49.       elseif c==">" then
  50.          set_stone("st-oneway_black-e", i-1,line)
  51.       elseif c=="|" then
  52.          set_stone("st-oneway_black-s", i-1,line)
  53.       elseif c=="T" then
  54.          set_stone("st-oneway_black", i-1,line,{orientation=EAST})
  55.          --set_item("it-trigger", i-1,line, {action="callback", target="sT"})
  56.       elseif c=="a" then
  57.          set_stone("st-oneway_black", i-1,line,{name="a", orientation=SOUTH})
  58.       elseif c=="b" then
  59.          set_stone("st-oneway_black", i-1,line,{name="b", orientation=EAST})
  60.       elseif c=="f" then
  61.          set_stone("st-oneway_black", i-1,line,{name="f", orientation=EAST})
  62.       elseif c=="h" then
  63.          set_stone("st-oneway_black", i-1,line,{name="h", orientation=EAST})
  64.       elseif c=="o" then
  65.          set_stone("st-oneway_black", i-1,line,{name="o", orientation=SOUTH})
  66.       elseif c=="p" then
  67.          set_stone("st-oneway_black", i-1,line,{name="p", orientation=SOUTH})
  68.       elseif c=="c" then
  69.          set_stone("st-oneway_black", i-1,line,{name="c", orientation=EAST})
  70.       elseif c=="d" then
  71.          set_stone("st-oneway_black", i-1,line,{name="d", orientation=EAST})
  72.       elseif c=="e" then
  73.          set_stone("st-oneway_black", i-1,line,{name="e", orientation=EAST})
  74.       elseif c=="l" then
  75.          set_stone("st-oneway_black", i-1,line,{name="l", orientation=SOUTH})
  76.       elseif c=="n" then
  77.          set_stone("st-oneway_black", i-1,line,{name="n", orientation=SOUTH})
  78.       elseif c =="w" then                                                               
  79.          set_item("it-wormhole",i-1,line, {name="warp",targetx="18.5",targety="6.5",strength=0})
  80.       elseif c=="O" then
  81.      oxyd(i-1,line)         
  82.         end
  83.     end  
  84. end
  85. --               01234567890123456789
  86. renderLine(00 , "####################")
  87. renderLine(01 , "####################")
  88. renderLine(02 , "#    f > > c b   # O")
  89. renderLine(03 , "#    1|s|2o3|s   # #")
  90. renderLine(04 , "#    T > d > >   # O")  
  91. renderLine(05 , "#    s|4|5p6|7   # #")
  92. renderLine(06 , "#w   > e > > >   # #")
  93. renderLine(07 , "#    8|s|9as|s   # #")
  94. renderLine(08 , "#    h > > > >   # O")
  95. renderLine(09 , "#    A|B|ClDnE   # #")
  96. renderLine(10 , "#    > > > > >   # O")
  97. renderLine(11 , "####################")
  98. renderLine(12 , "####################") 
  99. --               01234567890123456789
  100.  
  101. oxyd_shuffle()
  102.  
  103. -- direction   | > > > > > > | | | |
  104. -- oneway #    a b c d e f h l n o p
  105. local flags = {0,0,0,0,0,0,0,0,0,0,0}
  106. -- i           1 2 3 4 5 6 7 8 9 0 1
  107.  
  108. --   switch #     1 2 5 6 9
  109. local switches = {0,0,0,0,0}
  110. -- i              1 2 3 4 5
  111.  
  112. function s1() -- 1->5
  113. %switches[1] = 1 - %switches[1]  -- store switch state, because this switch will be switched!
  114. if %switches[3] == 0 then enigma.SendMessage( enigma.GetNamedObject("s5s"), "on", 1)  -- Schalter umlegen.
  115.     else enigma.SendMessage( enigma.GetNamedObject("s5s"), "off", 0)
  116.     end
  117. s5()
  118. end
  119.  
  120. function s2() -- 2->a
  121. %switches[2] = 1 - %switches[2]
  122. %flags[1] = 1 - %flags[1]
  123. if %flags[1] == 0 then
  124.     set_stone("st-oneway_black", 10,7,{orientation=SOUTH})
  125.     else
  126.     set_stone("st-oneway_black", 10,7,{orientation=NORTH})
  127. end
  128. end
  129.  
  130. function s3() -- 3->p
  131. %flags[11] = 1 - %flags[11]
  132. if %flags[11] == 0 then
  133.     set_stone("st-oneway_black", 10,5,{orientation=SOUTH})
  134.     else
  135.     set_stone("st-oneway_black", 10,5,{orientation=NORTH})
  136. end
  137. end
  138.  
  139. function s4() -- 4->h
  140. %flags[7] = 1 - %flags[7]
  141. if %flags[7] == 0 then
  142.     set_stone("st-oneway_black", 5,8,{orientation=EAST})
  143.     else
  144.     set_stone("st-oneway_black", 5,8,{orientation=WEST})
  145. end
  146. end
  147.  
  148. function s5() -- 5->b
  149. %switches[3] = 1 - %switches[3]
  150. %flags[2] = 1 - %flags[2]
  151. if %flags[2] == 0 then
  152.     set_stone("st-oneway_black", 13,2,{orientation=EAST})
  153.     else
  154.     set_stone("st-oneway_black", 13,2,{orientation=WEST})
  155. end
  156. end
  157.  
  158.  
  159. function s6() -- 6->c
  160. %switches[4] = 1 - %switches[4]
  161. %flags[3] = 1 - %flags[3]
  162. if %flags[3] == 0 then
  163.     set_stone("st-oneway_black", 11,2,{orientation=EAST})
  164.     else
  165.     set_stone("st-oneway_black", 11,2,{orientation=WEST})
  166. end
  167. end
  168.  
  169. function s7() -- 7->9
  170. if %switches[5] == 0 then enigma.SendMessage( enigma.GetNamedObject("s9s"), "on", 1)  -- Schalter umlegen.
  171.     else enigma.SendMessage( enigma.GetNamedObject("s9s"), "off", 0)
  172.     end
  173. s9()    
  174. end
  175.  
  176. function s8() -- 8->d
  177. %flags[4] = 1 - %flags[4]
  178. if %flags[4] == 0 then
  179.     set_stone("st-oneway_black", 9,4,{orientation=EAST})
  180.     else
  181.     set_stone("st-oneway_black", 9,4,{orientation=WEST})
  182. end
  183. end
  184.  
  185. function s9() -- 9->l + 6
  186. %switches[5] = 1 - %switches[5]
  187. %flags[8] = 1 - %flags[8]
  188. if %flags[8] == 0 then
  189.     set_stone("st-oneway_black", 10,9,{orientation=SOUTH})
  190.     else
  191.     set_stone("st-oneway_black", 10,9,{orientation=NORTH})
  192. end
  193. if %switches[4] == 0 then enigma.SendMessage( enigma.GetNamedObject("s6s"), "on", 1)  -- Schalter umlegen.
  194.     else enigma.SendMessage( enigma.GetNamedObject("s6s"), "off", 0)
  195.     end
  196. s6()    
  197. end
  198.  
  199. function sA() -- A->h + 2
  200. %flags[7] = 1 - %flags[7]
  201. if %flags[7] == 0 then
  202.     set_stone("st-oneway_black", 5,8,{orientation=EAST})
  203.     else
  204.     set_stone("st-oneway_black", 5,8,{orientation=WEST})
  205. end
  206. if %switches[2] == 0 then enigma.SendMessage( enigma.GetNamedObject("s2s"), "on", 1)  -- Schalter umlegen.
  207.     else enigma.SendMessage( enigma.GetNamedObject("s2s"), "off", 0)
  208.     end
  209. s2()    
  210. end
  211.  
  212. function sB() -- B->f + e + 1
  213. %flags[5] = 1 - %flags[5]
  214. %flags[6] = 1 - %flags[6]
  215. if %flags[6] == 0 then
  216.     set_stone("st-oneway_black", 5,2,{orientation=EAST})
  217.     else
  218.     set_stone("st-oneway_black", 5,2,{orientation=WEST})
  219. end
  220. if %flags[5] == 0 then
  221.     set_stone("st-oneway_black", 7,6,{orientation=EAST})
  222.     else
  223.     set_stone("st-oneway_black", 7,6,{orientation=WEST})
  224. end
  225. if %switches[1] == 0 then enigma.SendMessage( enigma.GetNamedObject("s1s"), "on", 1)  -- Schalter umlegen.
  226.     else enigma.SendMessage( enigma.GetNamedObject("s1s"), "off", 0)
  227.     end
  228. s1()
  229. end
  230.  
  231. function sC() -- C->d
  232. %flags[4] = 1 - %flags[4]
  233. if %flags[4] == 0 then
  234.     set_stone("st-oneway_black", 9,4,{orientation=EAST})
  235.     else
  236.     set_stone("st-oneway_black", 9,4,{orientation=WEST})
  237. end
  238. end
  239.  
  240. function sD() -- D->n
  241. %flags[9] = 1 - %flags[9]
  242. if %flags[9] == 0 then
  243.     set_stone("st-oneway_black", 12,9,{orientation=SOUTH})
  244.     else
  245.     set_stone("st-oneway_black", 12,9,{orientation=NORTH})
  246. end
  247. end
  248.  
  249. function sE() -- E->a + b
  250. %flags[1] = 1 - %flags[1]
  251. %flags[2] = 1 - %flags[2]
  252. if %flags[1] == 0 then
  253.     set_stone("st-oneway_black", 10,7,{orientation=SOUTH})
  254.     else
  255.     set_stone("st-oneway_black", 10,7,{orientation=NORTH})
  256. end
  257. if %flags[2] == 0 then
  258.     set_stone("st-oneway_black", 13,2,{orientation=EAST})
  259.     else
  260.     set_stone("st-oneway_black", 13,2,{orientation=WEST})
  261. end
  262. end
  263.  
  264. --function sT()
  265. --%flags[10] = 1 - %flags[10]
  266. --if %flags[10] == 0 then
  267. --    set_stone("st-oneway_black", 10,3,{orientation=SOUTH})
  268. --    else
  269. --    set_stone("st-oneway_black", 10,3,{orientation=NORTH})
  270. --end
  271. --end
  272.  
  273.  
  274.  
  275.  
  276.  
  277.