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 |
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 |
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 |
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 |
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 |
|
|
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 |