Files
@ 279be6c2f54e
Branch filter:
Location: games/Awakening/lse_powerplant.lua
279be6c2f54e
7.8 KiB
text/x-lua
fix
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 | lse_powerplant_door = obj {
nam = "lse_powerplant_door";
disp = "Двери энергостанции";
dsc = function(s)
if (s.open) then
return [[
Двери энергостанции открыты
]];
else
return [[
Двери здания заперты
]];
end;
end;
act = function(s)
if (s.open) then
return [[Вы можете войти]];
else
return [[Судя по всему, вход заблокирован изнутри. Вы не сможете открыть его отсюда. ]];
end;
end;
};
lse_powerplant_door_inside = obj {
nam = "lse_powerplant_door";
dsc = function(s)
if(lse_powerplant_door.open) then
return "{Входные двери} открыты. ";
else
return "{Входные двери} закрыты. ";
end;
end;
act = function(s)
if(lse_powerplant_door.open) then
return "Двери уже открыты";
else
return "У вас не получается открыть двери. Возможно, это делается в другом месте";
end;
end;
};
lse_powerplant = room {
nam = "lse_powerplant";
disp = "Лсэрианотр, энергостанция";
dsc = [[
Вы находитесь в комнате управления энергоснабжением Лсэрианотра. Сквозь скафандр вы ощущаете слабую вибрацию, исходяющую от работающих неподалеку генераторов.
]];
entered = function(s)
end;
obj = {
"powerplant_control",
"lse_powerplant_door_inside"
};
way = {
kh_vroom("Выйти из здания", "lse_middle_east", "powerplant_out"):disable();
kh_vroom("В сервиcный тоннель", "service_tunnels_2");
};
};
powerplant_control = obj {
nam = "powerplant_control";
disp = "Терминал управления энергоснабжением";
dsc = "У одной из стен расположен {огромный экран}, на котором, судя по всему, отмечены линии энергоснабжения и ключевые источники потребления энергии. ^";
act = function(s)
walkin(powerplant_control_dlg);
end;
};
powerplant_control_dlg = dlg {
nam = "powerplant_control_dlg";
disp = "Терминал управления энергоснабжением";
dsc = "На экране вы видите подробную схему энергосетей города. Несколько иконок внизу экрана показывают вам, что нужно нажимать, чтобы перейти в различные режимы управления. ";
entered = function()
if (lse_powerplant_door.open) then
poff(3);
pon(4);
else
poff(4);
pon(3);
end;
end;
phr = {
{1, always = true, "Перейти в режим управления питанием", function(s)
walkin(powerplant_defence_control_dlg);
return false;
end; };
{3, "Разблокировать вход в здание", function(s)
pon(4);
lse_powerplant_door.open = true;
path("powerplant_out", "lse_powerplant"):enable();
return "Входные двери открываются";
end; };
{4, "Заблокировать вход в здание", function(s)
pon(3);
lse_powerplant_door.open = false;
path("powerplant_out", "lse_powerplant"):disable();
return "Входные двери закрываются";
end; };
{5, always = true, "Внимательно осмотреть схему города", "На схеме изображены все три кольца города, эта энергостанция и еще две других, расположенные во внешнем и внутреннем кольце. Ворота, соединяющие внешнее и среднее кольцо отмечены открытыми, ворота, соединяющие среднее и внутреннее кольцо закрыты. "};
{255, always = true, "Отойти от терминала",function(s)
back();
end; };
};
};
powerplant_defence_control_dlg = dlg {
nam = "powerplant_defence_control_dlg";
disp = "Терминал управления энергоснабжением";
states = {0, 1, 0, 1};
locked = 1;
pic = function(s)
local image = 'images/power_bcg.png';
if (s.locked == 1) then
image = image .. ";images/power_lock.png@62,31";
elseif (s.locked == 2) then
image = image .. ";images/power_lock.png@62,93";
elseif (s.locked == 3) then
image = image .. ";images/power_lock.png@31,62";
elseif (s.locked == 4) then
image = image .. ";images/power_lock.png@93,62";
end;
image = image .. ";images/power_" .. tostring(s.states[1]) .. ".png@62,31";
image = image .. ";images/power_" .. tostring(s.states[2]) .. ".png@62,93";
image = image .. ";images/power_" .. tostring(s.states[3]) .. ".png@31,62";
image = image .. ";images/power_" .. tostring(s.states[4]) .. ".png@93,62";
return image;
end;
detect = function(s)
return (s.states[1] == 1 and s.states[2] == 3
and s.states[3] == 0 and s.states[4] == 2) or
(s.states[1] == 3 and s.states[2] == 1
and s.states[3] == 2 and s.states[4] == 0)
end;
dsc = "На экране видна схема питания систем защиты. Иконки внизу экрана подсказывают, что нажимать при отключении";
phr = {
{1, always = true, "блокировать верхний переключатель", "Изображение на экране изменилось.", function(s)
powerplant_defence_control_dlg.locked = 1;
end;},
{2, always = true, "блокировать нижний переключатель", "Изображение на экране изменилось.", function(s)
powerplant_defence_control_dlg.locked = 2;
end;},
{3, always = true, "блокировать левый переключатель", "Изображение на экране изменилось.", function(s)
powerplant_defence_control_dlg.locked = 3;
end;},
{4, always = true, "блокировать правый переключатель", "Изображение на экране изменилось.", function(s)
powerplant_defence_control_dlg.locked = 4;
end;},
{5, always = true, "поворот по часовой", "Изображение на экране изменилось.", function(s)
for i = 1, 4 do
if (i ~= powerplant_defence_control_dlg.locked) then
powerplant_defence_control_dlg.states[i] = powerplant_defence_control_dlg.states[i] + 1;
if (powerplant_defence_control_dlg.states[i] > 3) then
powerplant_defence_control_dlg.states[i] = 0;
end;
end;
end;
if (powerplant_defence_control_dlg.detect(powerplant_defence_control_dlg)) then
p("Защитные системы отключены"); --TODO сделать нормальный фидбэк
end;
end;},
{6, always = true, "поворот против часовой", "Изображение на экране изменилось.", function(s)
for i = 1, 4 do
if (i ~= powerplant_defence_control_dlg.locked) then
powerplant_defence_control_dlg.states[i] = powerplant_defence_control_dlg.states[i] - 1;
if (powerplant_defence_control_dlg.states[i] < 0) then
powerplant_defence_control_dlg.states[i] = 3;
end;
end;
end;
if (powerplant_defence_control_dlg.detect(powerplant_defence_control_dlg)) then
p("Защитные системы отключены"); --TODO сделать нормальный фидбэк
end;
end;},
{255, always = true, "выход", function(s)
back();
end},
};
};
|