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

  1. -- created by Martin Hawlisch
  2. -- reused code from ant16.lua
  3.  
  4. dofile(enigma.FindDataFile("levels/ant.lua"))
  5. dofile(enigma.FindDataFile("levels/natmaze.lua"))
  6.  
  7. -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
  8. -- i took these from Nat Pryce's natmaze.lua maps
  9. function cell_to_level( cellx, celly )
  10.     return originx + cellx * 2, originy + celly * 2
  11. end
  12.  
  13. function render_cell(maze, cellx, celly)
  14.     x,y = cell_to_level(cellx, celly)
  15.  
  16.     _n = maze:can_go_north(cellx,celly)
  17.     _s = maze:can_go_south(cellx,celly)
  18.     _e = maze:can_go_east(cellx,celly)
  19.     _w = maze:can_go_west(cellx,celly)
  20.  
  21.     if _s then
  22.        cells["|"](x, y+1)
  23.     end
  24.  
  25.     if _e then
  26.       cells["-"](x+1, y)
  27.     end
  28.  
  29.     if ( _n and _s and not _e and not _w ) then
  30.        cells["|"](x, y)
  31.     elseif ( not _n and not _s and _e and _w ) then
  32.        cells["-"](x, y)
  33.     else
  34.        cells[" "](x, y)
  35.     end
  36.  end
  37.  
  38. -- to get the size of maze
  39. originx, originy = nil, nil
  40. mazew, mazeh = nil, nil
  41.  
  42. function get_limits(x,y)
  43.    originx = originx or x
  44.    originy = originy or y
  45.  
  46.    if (x>originx) then
  47.       mazew = ceil((x-originx+1)/2)
  48.    end
  49.  
  50.    if (y>originy) then
  51.       mazeh = ceil((y-originy+1)/2)
  52.    end
  53. end
  54.  
  55. -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
  56. cells={}
  57.  
  58. cells[" "]=cell{floor="fl-rock"}
  59. cells["."]=cell{floor="fl-abyss"}
  60. cells["|"]=cell{item="it-vstrip"}
  61. cells["-"]=cell{item="it-hstrip"}
  62. cells["#"]=cells["."]
  63.  
  64. cells["o"]=cell{actor={"ac-blackball", {player=0, mouseforce=1}}}
  65. cells["Z"]=cell{{{get_limits}}}
  66.  
  67. level = {
  68.    "#0###############0##",
  69.    "#Z.................#",
  70.    "#..................#",
  71.    "#..................#",
  72.    "#..................#",
  73.    "#..................#",
  74.    "#..................#",
  75.    "#..................#",
  76.    "#..................#",
  77.    "#..................#",
  78.    "#..................#",
  79.    "#................Zo#",
  80.    "#0###############0##"
  81. }
  82.  
  83. -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
  84. set_default_parent(cells[" "])
  85. create_world_by_map(level)
  86. render_maze(new_kruskal_maze(mazew, mazeh), render_cell)
  87.  
  88. if (options.Difficulty==1) then -- easy
  89.     set_item( "it-umbrella", 1, 1)
  90. end
  91. -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
  92.