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

  1. -- Smutty Smurf 2003
  2. -- a little bit like ESPRIT #026, much more difficult
  3.  
  4.  
  5. levelw = 39
  6. levelh = 13
  7. create_world(levelw, levelh)
  8. oxyd_default_flavor = "b"
  9. set_actor("ac-blackball", 8.5,6.5, {player=0})
  10.  
  11. fill_floor("fl-bumps",0,0,levelw,levelh)
  12.  
  13. function renderLine( line, pattern)
  14.     for i=1, strlen(pattern) do
  15.       local c = strsub( pattern, i, i)
  16.       if c ==   "#" then
  17.          set_stone("st-fakeoxyd", i-1,line)
  18.       elseif c =="a" then
  19.          set_stone("st-door_c", i-1,line,{name="doora"})      
  20.       elseif c =="b" then
  21.          set_stone("st-door_c", i-1,line,{name="doorb"})         
  22.       elseif c =="c" then
  23.          set_stone("st-door_c", i-1,line,{name="doorc"})             
  24.       elseif c=="D" then
  25.      set_stone("st-death", i-1,line)    
  26.       elseif c=="." then
  27.      set_item("it-seed", i-1,line)           
  28.       elseif c=="1" then
  29.          set_stone("st-coinslot", i-1,line, {action="callback", target="s1"})       
  30.       elseif c=="2" then
  31.          set_stone("st-coinslot", i-1,line, {action="callback", target="s2"})       
  32.       elseif c=="3" then
  33.          set_stone("st-coinslot", i-1,line, {action="callback", target="s3"})       
  34.       elseif c=="4" then
  35.          set_stone("st-coinslot", i-1,line, {action="callback", target="s4"})       
  36.       elseif c=="5" then
  37.          set_stone("st-coinslot", i-1,line, {action="callback", target="s5"})     
  38.       elseif c=="6" then
  39.          set_stone("st-coinslot", i-1,line, {action="callback", target="s6"})
  40.       elseif c=="7" then
  41.          set_stone("st-coinslot", i-1,line, {action="callback", target="s7"})     
  42.       elseif c=="8" then
  43.          set_stone("st-coinslot", i-1,line, {action="callback", target="s8"})      
  44.       elseif c=="G" then
  45.          set_stone("st-glass1", i-1,line)     
  46.       elseif c=="S" then
  47.          set_stone("st-switch_black", i-1,line, {action="callback", target="money"})              
  48.       elseif c=="O" then                                                               
  49.      oxyd(i-1,line)         
  50.         end
  51.     end  
  52. end
  53. --               012345678901234567890123456789012345678
  54. renderLine(00 , "#######################################")
  55. renderLine(01 , "#                GS#                  #")
  56. renderLine(02 , "#    1.2 3 4       #                  #")
  57. renderLine(03 , "#                  #                  #")
  58. renderLine(04 , "#                  #                  #")  
  59. renderLine(05 , "#                  a   D              #")
  60. renderLine(06 , "# O                b   D            O #")
  61. renderLine(07 , "#                  c   D              #")
  62. renderLine(08 , "#                  #                  #")
  63. renderLine(09 , "#                  #                  #")
  64. renderLine(10 , "#    5 6 7 8       #                  #")
  65. renderLine(11 , "#                  #                  #")
  66. renderLine(12 , "#######################################") 
  67. --               012345678901234567890123456789012345678
  68.  
  69. function s1() s(1) end
  70. function s2() s(2) end
  71. function s3() s(3) end
  72. function s4() s(4) end
  73. function s5() s(5) end
  74. function s6() s(6) end
  75. function s7() s(7) end
  76. function s8() s(8) end
  77.  
  78. local flag = {0,0,0,0,0,0,0,0}
  79.  
  80. function s(num)
  81. %flag[num] = 1-%flag[num]
  82. if (%flag[1]+%flag[2]+%flag[3]+%flag[4]+%flag[5]+%flag[6]+%flag[7]+%flag[8]==8) then     -- open, if all inserted  
  83.    enigma.SendMessage(enigma.GetNamedObject("doora"), "open", nil) 
  84.    enigma.SendMessage(enigma.GetNamedObject("doorb"), "open", nil)
  85.    enigma.SendMessage(enigma.GetNamedObject("doorc"), "open", nil)   
  86. elseif (%flag[1]+%flag[2]+%flag[3]+%flag[4]+%flag[5]+%flag[6]+%flag[7]+%flag[8]==0) then -- close, if money is out
  87.    enigma.SendMessage(enigma.GetNamedObject("doora"), "close", nil) 
  88.    enigma.SendMessage(enigma.GetNamedObject("doorb"), "close", nil)
  89.    enigma.SendMessage(enigma.GetNamedObject("doorc"), "close", nil) 
  90.   end
  91. end
  92.  
  93. j = 0
  94.  
  95. function money()
  96. j = j+1
  97. if (j <= 8) then
  98.    set_item("it-coin",16, 1,{value=2})
  99.   else 
  100.    document(16,1,"Sorry for inconvenience, the Bank-O-Mat is empty.")
  101.   end
  102. end
  103.  
  104.  
  105.  
  106.  
  107.