home *** CD-ROM | disk | FTP | other *** search
/ GameStar Special 2004 August / GSSH0804.iso / Geschicklichkeit / Enigma / Enigma-081.exe / data / levels / ralf06.lua < prev    next >
Text File  |  2003-05-20  |  4KB  |  150 lines

  1. -- A level for Enigma
  2. -- Name:        ZigZag
  3. -- Filename:    ralf06.lua
  4. -- Copyright:     (C) May 2003 Ralf Westram
  5. -- Contact:     amgine@reallysoft.de
  6. -- License:     GPL v2.0 or above
  7.  
  8. dofile(enigma.FindDataFile("levels/ralf.lua"))
  9.  
  10. --debug_mode()
  11.  
  12. -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
  13.  
  14. level={
  15.    "iiiiiiiiiiiii@@@@@@@",
  16.    "iSi@@SSSSSSSi  @@@@@",
  17.    "i@i  @@SSSoSi  !b! x",
  18.    "i@<+>^ @SSSii B@@@@@",
  19.    "i@  .+ @SSni@  !b! x",
  20.    "iS@@ v. @@SiiB @@@@@",
  21.    "iSSS@<+>^ @Si a!b!Xx",
  22.    "iSSS@  .+ @Si B@@@@@",
  23.    "iSsSS@@ v. @i  ! ! x",
  24.    "iSSSSSS@<+>@i  @@@@@",
  25.    "iSoSSSS@  i@i  | | x",
  26.    "iSSSSSSS@@iSi  @@@@@",
  27.    "iiiiiiiiiiiii@@@@@@@",
  28. }
  29.  
  30. -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
  31.  
  32. triggers = 0
  33. function set_trigger(x,y)
  34.    triggers=triggers+1
  35.    set_item("it-trigger",x,y,{action="openclose", target="door"..triggers});
  36. end
  37.  
  38. function set_two_triggers(x,y)
  39.    set_trigger(x,y)
  40.    set_trigger(x+1,y+1)
  41. end
  42.  
  43. -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
  44.  
  45. doors=0
  46. function set_door(x,y,t,o)
  47.    doors=doors+1
  48.    set_stone("st-door",x,y,{name="door"..doors,type=t})
  49.    if (o==1) then
  50.       enigma.SendMessage(enigma.GetNamedObject("door"..doors),"open",0)
  51.    end
  52. end
  53. function set_doorvc(x,y) set_door(x,y,"v",0) end
  54. function set_doorhc(x,y) set_door(x,y,"h",0) end
  55. function set_doorvo(x,y) set_door(x,y,"v",1) end
  56. function set_doorho(x,y) set_door(x,y,"h",1) end
  57.  
  58. -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
  59.  
  60. function toggle0()
  61.    enigma.SendMessage(enigma.GetNamedObject("laser1"), "signal",0)
  62.    enigma.SendMessage(enigma.GetNamedObject("laser2"), "signal",0)
  63. end
  64. function toggle1()
  65.    enigma.KillStone(12,4);
  66.    set_stone("st-switch",12,4,{action="callback",target="toggle0"});
  67. end
  68. function toggle2()
  69.    xdoors(1,2)
  70.    xbridge(1,2)
  71. end
  72. function toggle3()
  73.    xdoors(3,4)
  74.    xbridge(3,4)
  75. end
  76. function toggle4()
  77.    xdoors(5,6)
  78.    xbridge(5,6)
  79. end
  80. function toggle5()
  81.    xdoors(7,8)
  82. end
  83.  
  84. function xdoors(d1,d2)
  85.    enigma.SendMessage(enigma.GetNamedObject("door"..d1), "openclose",0)
  86.    enigma.SendMessage(enigma.GetNamedObject("door"..d2), "openclose",0)
  87. end
  88. function xbridge(b1,b2)
  89.    enigma.SendMessage(enigma.GetNamedObject("bridge"..b1), "openclose",0)
  90.    enigma.SendMessage(enigma.GetNamedObject("bridge"..b2), "openclose",0)
  91. end
  92.  
  93. switches=0
  94. function set_switch(x,y)
  95.    switches=switches+1
  96.    set_stone("st-switch",x,y,{action="callback",target="toggle"..switches})
  97. end
  98.  
  99. bridges=0
  100. function set_bridgec(x,y)
  101.    bridges=bridges+1
  102.    set_floor("fl-bridge",x,y,{name="bridge"..bridges})
  103. end
  104. function set_bridgeo(x,y)
  105.    set_bridgec(x,y)
  106.    enigma.SendMessage(enigma.GetNamedObject("bridge"..bridges), "openclose",0)
  107. end
  108.  
  109. -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
  110.  
  111. cells={}
  112.  
  113. cells["S"] = cell{floor="fl-space"}
  114. cells[" "] = cell{floor="fl-inverse"}
  115. cells["#"] = cell{parent=cells[" "],stone="st-rock6"}
  116. cells["@"] = cell{parent=cells[" "],stone="st-glass"}
  117. cells["a"] = cell{parent=cells[" "],actor={"ac-blackball", {player=0}}}
  118. cells["A"] = cell{parent=cells[" "],actor={"ac-whiteball", {player=1}}}
  119. cells["."] = cell{parent=cells[" "],actor={"ac-whiteball-small", {player=1}}}
  120. cells["o"] = cell{oxyd}
  121.  
  122. cells["+"] = cell{parent=cells[" "],stone="st-turnstile-green"}
  123. cells["^"] = cell{parent={cells[" "],set_two_triggers},stone="st-turnstile-n"}
  124. cells["v"] = cell{parent=cells[" "],stone="st-turnstile-s"}
  125. cells["<"] = cell{parent={cells[" "],set_two_triggers},stone="st-turnstile-w"}
  126. cells[">"] = cell{parent=cells[" "],stone="st-turnstile-e"}
  127.  
  128. cells["i"] = cell{parent=cells[" "],stone="st-stoneimpulse"}
  129. cells["I"] = cell{parent=cells["!"],stone="st-stoneimpulse_movable"}
  130.  
  131. cells["|"] = cell{parent={cells[" "],set_doorvc}}
  132. cells["!"] = cell{parent={cells[" "],set_doorvo}}
  133. cells["-"] = cell{parent={cells[" "],set_doorhc}}
  134. cells["_"] = cell{parent={cells[" "],set_doorho}}
  135.  
  136. cells["x"] = cell{parent={cells[" "],set_switch}}
  137. cells["n"] = cell{parent=cells[" "],stone={"st-laser", {on=FALSE, dir=NORTH, name="laser1"}}}
  138. cells["s"] = cell{parent=cells[" "],stone={"st-laser", {on=FALSE, dir=SOUTH, name="laser2"}}}
  139.  
  140. cells["b"] = cell{parent={set_bridgec}}
  141. cells["B"] = cell{parent={set_bridgeo}}
  142.  
  143. cells["X"] = cell{parent=cells[" "],item="it-extralife"}
  144.  
  145. -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
  146.  
  147. rs_create_world(level,cells)
  148. oxyd_shuffle()
  149.  
  150.