/[enigma]/enigma/data/levels/ralf_sokoban.lua
ViewVC logotype

Diff of /enigma/data/levels/ralf_sokoban.lua

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.3 by reallysoft, Mon Mar 24 01:01:57 2003 UTC revision 1.4 by reallysoft, Mon Mar 24 17:34:23 2003 UTC
# Line 77  function trig(which) Line 77  function trig(which)
77    
78     local trig_door = -1     local trig_door = -1
79     if (doors == triggers) then -- 1 trigger <-> 1 door     if (doors == triggers) then -- 1 trigger <-> 1 door
80        trig_door = shuffle[which]  --      trig_door = shuffle[which]
81          trig_door = which
82  --      enigma.SendMessage(enigma.GetNamedObject("door"..shuffle[which]), "openclose", nil)  --      enigma.SendMessage(enigma.GetNamedObject("door"..shuffle[which]), "openclose", nil)
83     else     else
84        local s0,s1 = 0,0        local s0,s1 = 0,0
# Line 101  function trig(which) Line 102  function trig(which)
102        debug("s0="..s0.." s1="..s1.." wlow="..wlow)        debug("s0="..s0.." s1="..s1.." wlow="..wlow)
103    
104        if ((s0==0) or (s0==1 and state=="0")) then        if ((s0==0) or (s0==1 and state=="0")) then
105           trig_door = shuffle[wlow]  --         trig_door = shuffle[wlow]
106             trig_door = wlow
107  --         enigma.SendMessage(enigma.GetNamedObject("door"..shuffle[wlow]), "openclose", nil)  --         enigma.SendMessage(enigma.GetNamedObject("door"..shuffle[wlow]), "openclose", nil)
108  --         debug("triggering door "..shuffle[wlow])  --         debug("triggering door "..shuffle[wlow])
109        end        end
# Line 113  function trig(which) Line 115  function trig(which)
115    
116     if (trig_door ~= -1) then     if (trig_door ~= -1) then
117        if (trig_door ~= 1) then        if (trig_door ~= 1) then
118           enigma.SendMessage(enigma.GetNamedObject("door"..trig_door), "openclose", nil)           enigma.SendMessage(enigma.GetNamedObject("door"..shuffle[trig_door]), "openclose", nil)
119        end        end
120     end     end
121    
122     if (all_covered) then     if (all_covered) then
123        if (locked_door_triggered==0) then        if (locked_door_triggered==0) then
124           enigma.SendMessage(enigma.GetNamedObject("door1"), "open", nil)           enigma.SendMessage(enigma.GetNamedObject("door"..shuffle[1]), "open", nil)
125           locked_door_triggered = 1           locked_door_triggered = 1
126        end        end
127     else     else
128        if (locked_door_triggered==1) then        if (locked_door_triggered==1) then
129           enigma.SendMessage(enigma.GetNamedObject("door1"), "close", nil)           enigma.SendMessage(enigma.GetNamedObject("door"..shuffle[1]), "close", nil)
130           locked_door_triggered = 0           locked_door_triggered = 0
131        end        end
132     end     end
# Line 151  function set_actor_on_trigger(x,y) Line 153  function set_actor_on_trigger(x,y)
153     set_soko_trigger(x,y)     set_soko_trigger(x,y)
154  end  end
155    
156  function count_space(x,y)  spacemod = 2
157    
158    function set_spacecell(x,y)
159     space_count = space_count+1     space_count = space_count+1
160       set_floor(spaceface,x,y);
161  end  end
162    
 --function set_dok1(x,y)  
 --   document(x,y, "1")  
 --end  
 --function set_dok2(x,y)  
 --   document(x,y, "2")  
 --end  
   
163  function init(num)  function init(num)
164     local first = 0     local first = 0
165     if (num == -1) then     if (num == -1) then
# Line 190  function init(num) Line 188  function init(num)
188     end     end
189    
190     floorcell = cell{floor={face=floorface}}     floorcell = cell{floor={face=floorface}}
191     spacecell = cell{floor={face=spaceface}}  --   spacecell = cell{floor={face=spaceface}}
192    
193     cells={}     cells={}
194     cells["!"] = cell{parent = {spacecell,count_space}}     cells["!"] = cell{parent = {set_spacecell}}
195     cells[" "] = floorcell     cells[" "] = floorcell
196     cells["#"] = cell{parent = floorcell, stone = {face = wallface}}     cells["#"] = cell{parent = floorcell, stone = {face = wallface}}
197    
# Line 372  function play_sokoban(level,num) Line 370  function play_sokoban(level,num)
370     local w,h = get_map_size(level)     local w,h = get_map_size(level)
371     init(num-1)     init(num-1)
372     randomseed(enigma.GetTicks())     randomseed(enigma.GetTicks())
373     rs_create_world(level,cells,spacecell,spacecell)  --   rs_create_world(level,cells,spacecell,spacecell)
374       rs_create_world(level,cells,set_spacecell,set_spacecell)
375    
376     if (xlo > 0) then     if (xlo > 0) then
377        spl = 1 -- there's space at the left side        spl = 1 -- there's space at the left side

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.4

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26