diff --git a/warehouse32.lua b/warehouse32.lua --- a/warehouse32.lua +++ b/warehouse32.lua @@ -375,10 +375,10 @@ warehouse_32 = room { pos = "01"; hidden = false; guards = { - { pos = "21", dir=1, s = 1 }; --s=1 - должен повернуть направо, s=2 - должен пройти прямо - { pos = "31", dir=4, s = 1 }; --s=1 - должен повернуть направо, s=2 - должен пройти прямо - { pos = "24", dir=2, s = 1 }; --s=1 - должен повернуть направо, s=2 - должен пройти прямо - { pos = "34", dir=3, s = 1 }; --s=1 - должен повернуть направо, s=2 - должен пройти прямо + { pos = "11", dir=1, s = 2 }; --s=1 - должен идти на юг(или повернуть по часовой стрелке, если смотрит не на юг), s=2 - на север + { pos = "42", dir=2, s = 1 }; --s=1 - должен идти на юг(или повернуть по часовой стрелке, если смотрит не на юг), s=2 - на север + { pos = "13", dir=1, s = 2 }; --s=1 - должен идти на юг(или повернуть по часовой стрелке, если смотрит не на юг), s=2 - на север + { pos = "44", dir=2, s = 1 }; --s=1 - должен идти на юг(или повернуть по часовой стрелке, если смотрит не на юг), s=2 - на север }; }; nam = "warehouse_32"; @@ -431,12 +431,32 @@ warehouse_32 = room { guardTurn = function(s) local pl_y = math.floor(tonumber(s.pos) / 10); local pl_x = tonumber(s.pos) % 10; - --print("player:", pl_x, pl_y); --Каждый стражник делает ход, игрок получает сообщения, о том, слышит ли он шаги, откуда и как они движутся for i = 1, #s.guards do - --TODO play with this random number to assume good gameplay: predictable enough, yet somewhat random if (rnd(10) < 9) then - if (s.guards[i].s == 1) then + if (s.guards[i].s == 1) then + if s.guards[i].dir ~= 3 then + s.guards[i].dir = s.guards[i].dir + 1; + else + s.guards[i].pos = s.definitions[s.guards[i].pos].e3; + if not s.definitions[s.guards[i].pos].e3 then + s.guards[i].s = 2; + end; + end; + else + if s.guards[i].dir ~= 1 then + s.guards[i].dir = s.guards[i].dir + 1; + if (s.guards[i].dir > 4) then + s.guards[i].dir = 1; + end; + else + s.guards[i].pos = s.definitions[s.guards[i].pos].e1; + if not s.definitions[s.guards[i].pos].e1 then + s.guards[i].s = 1; + end; + end; + end; + --[[if (s.guards[i].s == 1) then s.guards[i].s = 2; s.guards[i].dir = s.guards[i].dir + 1; if (s.guards[i].dir > 4) then @@ -461,7 +481,7 @@ warehouse_32 = room { s.guards[i].pos = s.definitions[s.guards[i].pos].e4; end; end; - end; + end;]] end; local g_y = math.floor(tonumber(s.guards[i].pos) / 10); @@ -493,13 +513,13 @@ warehouse_32 = room { end; else if (g_x - pl_x == 1 and g_y - pl_y == 1) then - pr("К северовостоку от вас вы слышите шаги охранника. "); + pr("К северо-востоку от вас вы слышите шаги охранника. "); elseif (g_x - pl_x == 1 and pl_y - g_y == 1) then - pr("К юговостоку от вас вы слышите шаги охранника. "); + pr("К юго-востоку от вас вы слышите шаги охранника. "); elseif (pl_x - g_x == 1 and g_y - pl_y == 1) then - pr("К северозападу от вас вы слышите шаги охранника. "); + pr("К северо-западу от вас вы слышите шаги охранника. "); elseif (pl_x - g_x == 1 and pl_y - g_y == 1) then - pr("К югозападу от вас вы слышите шаги охранника. "); + pr("К юго-западу от вас вы слышите шаги охранника. "); end; end; end;