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

  1. -- GO! -- the Enigma Level
  2. -- (c) 2002 Petr Machata/ant_39
  3. -- Licensed under GPL v2.0 or above
  4. -- 2003-01-10 -- final glass block replaced by vertical door
  5. -- 2003-01-25 -- enigma.ConserveLevel=FALSE added
  6. -- 2003-06-28 -- fixes due to changes in Enigma: the bridge moves slower
  7.  
  8. -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
  9. enigma.ConserveLevel=FALSE                  -- \dh\
  10.  
  11. floortile = "fl-bluegray"
  12. bordertile = "st-rock1"
  13. walltile = "st-glass"
  14. flbridge = "fl-wood"
  15.  
  16. levelw = 20
  17. levelh = 13
  18.  
  19. waterx0 = 5
  20. waterw0 = 8
  21.  
  22. -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
  23.  
  24. swc = 0;
  25.  
  26. function sw1()
  27.    if (swc == 0) then
  28.       enigma.SendMessage(enigma.GetNamedObject("bolder01"),"direction",EAST);
  29.       swc = 1
  30.    end
  31. end
  32.  
  33. function sw2()
  34.    if (swc == 1) then
  35.       enigma.SendMessage(enigma.GetNamedObject("bolder01"),"direction",WEST);
  36.       swc = 2
  37.    end
  38. end
  39.  
  40. function sw3()
  41.    if (swc == 2) then
  42.       enigma.SendMessage(enigma.GetNamedObject("bolder02"),"direction",EAST);
  43.       swc = 3
  44.    end
  45. end
  46.  
  47. function sw4()
  48.    if (swc == 3) then
  49.       enigma.SendMessage(enigma.GetNamedObject("bolder02"),"direction",WEST);
  50.       swc = 4
  51.    end
  52. end
  53.  
  54. function sw5()
  55.    if (swc == 4) then
  56.       enigma.SendMessage(enigma.GetNamedObject("doorA"), "close", nil)
  57.       swc = 5
  58.    end
  59. end
  60.  
  61. -- 20x13 --> +19, +12
  62.  
  63. -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
  64.  
  65. create_world(levelw, levelh)
  66. fill_floor(floortile,   0, 0, level_width, level_height)
  67.  
  68. draw_border(bordertile)
  69. draw_stones(bordertile, {1,level_height-3}, { 1,0}, level_width-2)
  70. draw_stones(bordertile, {1,2}, {1,0}, level_width-2)
  71. set_stone(bordertile, 5,9)
  72. draw_stones(walltile, {2,3}, {0,1}, 1)
  73. draw_stones(walltile, {2,5}, {0,1}, level_height-8)
  74. draw_stones(walltile, {level_width-3,3}, {0,1}, 3)
  75. draw_stones(walltile, {level_width-3,7}, {0,1}, level_height-10)
  76. draw_floor("fl-water", {level_width-4,3}, {0,1}, level_height-6)
  77. set_stone("st-bolder", 2, 11, {name="bolder01", direction=NORTH})
  78. set_stone("st-bolder", 2, 1, {name="bolder02", direction=SOUTH})
  79. set_item("it-trigger", 2, 4, {action="callback", target="sw1"})
  80. set_item("it-trigger", level_width-2, level_height-2, {action="callback", target="sw2"})
  81. set_item("it-trigger", 1, level_height-2, {action="callback", target="sw3"})
  82. set_item("it-trigger", level_width-2, 1, {action="callback", target="sw4"})
  83. set_item("it-trigger", 1, 1, {action="callback", target="sw5"})
  84. set_stone(walltile, 3,6)
  85. set_stone(walltile, 4,6)
  86. set_stone("st-wood", 5,6)
  87. set_stone("st-door", level_width-3, 6, {name="doorA", type="v"})
  88. enigma.SendMessage(enigma.GetNamedObject("doorA"), "open", nil)
  89.  
  90. -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
  91. -- bridges
  92. cenbridge = 1
  93. cunbridge = 2
  94.  
  95. function enbridge()
  96.    set_floor(flbridge, waterx0+cenbridge, 5)
  97.    set_floor(flbridge, waterx0+waterw0+1-cenbridge, 7)
  98.    cenbridge = cenbridge + 1
  99.    if (cenbridge>waterw0) then
  100.       cenbridge = 1
  101.    end
  102. end
  103.  
  104. function unbridge()
  105.    set_floor("fl-water", waterx0+cunbridge, 5)
  106.    set_floor("fl-water", waterx0+waterw0+1-cunbridge, 7)
  107.    cunbridge = cunbridge + 1
  108.    if (cunbridge>waterw0) then
  109.       cunbridge = 1
  110.    end
  111. end
  112.  
  113. fill_floor("fl-water", waterx0+1, 3, waterw0, level_height-6)
  114. set_stone("st-timer", 0, 2,              {action="callback", target="enbridge", interval=0.4});
  115. set_stone("st-timer", 0, level_height-3, {action="callback", target="unbridge", interval=0.4});
  116. draw_floor(flbridge, {waterx0+1,5}, {1,0}, waterw0);
  117. draw_floor(flbridge, {waterx0+1,7}, {1,0}, waterw0);
  118.  
  119. -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
  120.  
  121. oxyd (level_width-2,3)
  122. oxyd (level_width-2,level_height-4)
  123. oxyd_shuffle()
  124. set_actor("ac-blackball", 1.5, 5.5, {player=0})
  125.  
  126. enigma.ConserveLevel=FALSE
  127.