Files
@ e5272f951a78
Branch filter:
Location: games/Awakening/lse_powerplant.lua - annotation
e5272f951a78
7.8 KiB
text/x-lua
dlg 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 | 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff 6942b6162aff | 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}, }; }; |