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

  1. -- A level for Enigma
  2. -- Name:        Im-pull-se
  3. -- Filename:    ralf07.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. level={
  13.    "!!!!!!!!!o!!!!!!!!!!",
  14.    "!!!!!!!!   !!!!!!!!!",
  15.    "!!!!!!xxxXxxx!!!!!!!",
  16.    "!!!!!xX     Xx!!!!!!",
  17.    "!!!!!x R_I_R x!!!!!!",
  18.    "!!!! x _#i#_ x !!!!!",
  19.    "!!!o X Ii iI X o!!!!",
  20.    "!!!! x _#i#_ x !!!!!",
  21.    "!!!!!x R_I_R x!!!!!!",
  22.    "!!!!!xX  a  Xx!!!!!!",
  23.    "!!!!!!xxxXxxx!!!!!!!",
  24.    "!!!!!!!!   !!!!!!!!!",
  25.    "!!!!!!!!!o!!!!!!!!!!",
  26. }
  27.  
  28. -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
  29.  
  30. triggerstate="000000000000"
  31. triggers=0
  32.  
  33. -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
  34.  
  35. function open(x,y)
  36.    x,y = x+xlo,y+ylo
  37.    enigma.KillStone(x,y)
  38.    set_stone("st-pull",x,y)
  39. end
  40.  
  41. function check(which)
  42.    local state = strsub(triggerstate,which,which)
  43.    state = 1-state
  44.    triggerstate = strsub(triggerstate,1,which-1)..state..strsub(triggerstate,which+1)
  45.  
  46.    if (triggerstate=="111111111111") then
  47.       open(9,2)
  48.       open(9,10)
  49.       open(5,6)
  50.       open(13,6)
  51.    end
  52. end
  53.  
  54. function set_trigger(x,y)
  55.    triggers=triggers+1
  56.    local funcn = "trig_"..triggers
  57.    dostring(funcn.." = function() check("..triggers..") end")
  58.    set_item("it-trigger",x,y,{action="callback",target=funcn})
  59. end
  60.  
  61. function my_floor(x,y)
  62.    if mod(x+y,2)==1 then
  63.       set_floor("fl-bluegray",x,y)
  64.    else
  65.       set_floor("fl-bluegreen",x,y)
  66.    end
  67. end
  68.  
  69. -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
  70.  
  71. cells={}
  72.  
  73. cells["!"] = cell{floor="fl-abyss"}
  74. cells["."] = cell{floor="fl-sahara"}
  75. cells[" "] = cell{parent=my_floor}
  76.  
  77. cells["#"] = cell{parent=cells["."],stone="st-glass"}
  78. cells["x"] = cell{parent=cells[" "],stone="st-glass1"}
  79. cells["X"] = cell{parent=cells["."],stone="st-glass1"}
  80.  
  81. cells["a"] = cell{parent=cells[" "],actor={"ac-blackball", {player=0}}}
  82. cells["o"] = cell{oxyd}
  83.  
  84. cells["_"] = cell{parent={cells[" "],set_trigger}}
  85. cells["R"] = cell{parent=cells["_"],stone="st-pull"}
  86.  
  87. cells["i"] = cell{parent=cells[" "],stone="st-stoneimpulse"}
  88. cells["I"] = cell{parent=cells["."],stone="st-stoneimpulse"}
  89.  
  90. -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
  91.  
  92. rs_create_world(level,cells)
  93. oxyd_shuffle()
  94.