diff --git a/atlantis_ignis_on_fire.lua b/atlantis_ignis_on_fire.lua --- a/atlantis_ignis_on_fire.lua +++ b/atlantis_ignis_on_fire.lua @@ -737,7 +737,7 @@ atl_iof_part2_dlg = dlg { ]], code [[ walk('atl_iof_outside_lift'); ]]}; {"Я передумал", [[ Райт отвечает: "Хорошо, возвращайтесь на станцию. Мои люди все сделают". - ]], code [[ walk('atlantis_luna_drake_room'); ]]}; + ]], code [[ walk('atl_iof_end'); ]]}; }; }; @@ -1044,4 +1044,129 @@ atl_iof_air_cancel = obj { return ""; end; +}; + +atl_iof_electr_dlg = dlg { + nam = "Атлантида, Игнис"; + entered = [[ + Вы останавливаете подачу кислорода и собиратесь сообщить об этом по радио, когда из динамика радается голос Райта: "Как у вас успехи? Нужно отключить еще подачу электричества". + ]]; + phr = { + {"Подача воздуха отключена. Как я смогу отключить электричество?", [[ + Райт продолжает: "Отлично. Там рядом должна быть панель, она подписана. Там замок хитрый, но, думаю, вы разберетесь. Затем просто дергаете рубильник и дело сделано". + ]], code [[ psub("next"); ]]}; + {tag="next"}; + {"Вас понял. Конец связи", [[ + Вы быстро находите необходимую панель и приступаете к работе. + ]], code [[ walk("atl_iof_electr_panel_closed"); ]]}; + }; +}; + +atl_iof_electr_panel_closed = room { + var { + locks = { true, true, true, true, true, true, true, true }; + }; + nam = "Электрощит"; + pic = function(s) + local image = 'images/electr_bg.png'; + for i = 1, 4 do + if (s.locks[i]) then + image = image .. ";images/air_3.png@" .. tostring(((i - 1) % 4) * 32) .. "," .. tostring(math.floor((i - 1) / 4) * 32); + else + image = image .. ";images/air_1.png@" .. tostring(((i - 1) % 4) * 32) .. "," .. tostring(math.floor((i - 1) / 4) * 32); + end; + end; + for i = 5, 8 do + if (s.locks[i]) then + image = image .. ";images/air_1.png@" .. tostring(((i - 1) % 4) * 32) .. "," .. tostring(math.floor((i - 1) / 4) * 32); + else + image = image .. ";images/air_3.png@" .. tostring(((i - 1) % 4) * 32) .. "," .. tostring(math.floor((i - 1) / 4) * 32); + end; + end; + return image; + end; + dsc = [[ + Перед вами расположен щиток с восемью защелками. Сейчас щиток закрыт и вы не можете его снять. + ]]; + obj = { + "atl_iof_electr_select1", + "atl_iof_electr_select2", + "atl_iof_electr_select3", + "atl_iof_electr_select4", + "atl_iof_electr_select5", + "atl_iof_electr_select6", + "atl_iof_electr_select7", + "atl_iof_electr_select8" + }; + is_solved = function(s) + local unsolved = false; + for i = 1, #locks do + unsolved = unsolved or s.locks[i]; + end; + + return not unsolved; + end; +}; + +atl_iof_electr_select = function(index) + return obj { + nam = "Защелка " .. tostring(index); + dsc = "{Сдвинуть защелку " .. tostring(index) .. "}^"; + act = function(s) + atl_iof_electr_panel_closed.locks[index] = not atl_iof_electr_panel_closed.locks[index]; + if (index ~= 4 and index ~= 8) then + atl_iof_electr_panel_closed.locks[index + 1] = not atl_iof_electr_panel_closed.locks[index + 1]; + end; + if (index ~= 1 and index ~= 5) then + atl_iof_electr_panel_closed.locks[index - 1] = not atl_iof_electr_panel_closed.locks[index - 1]; + end; + if (index > 4) then + atl_iof_electr_panel_closed.locks[index - 4] = not atl_iof_electr_panel_closed.locks[index - 4]; + end; + if (index < 5) then + atl_iof_electr_panel_closed.locks[index + 4] = not atl_iof_electr_panel_closed.locks[index + 4]; + end; + + if (atl_iof_electr_panel_closed.is_solved()) then + walk("atl_iof_electr_panel_open"); + + return ""; + end; + + return "Вы сдвигаете защелку " .. tostring(index); + end; + }; +end; + +atl_iof_electr_select1 = atl_iof_electr_select(1); +atl_iof_electr_select2 = atl_iof_electr_select(2); +atl_iof_electr_select3 = atl_iof_electr_select(3); +atl_iof_electr_select4 = atl_iof_electr_select(4); +atl_iof_electr_select5 = atl_iof_electr_select(5); +atl_iof_electr_select6 = atl_iof_electr_select(6); +atl_iof_electr_select7 = atl_iof_electr_select(7); +atl_iof_electr_select8 = atl_iof_electr_select(8); + +atl_iof_electr_panel_open = dlg { + nam = "Атлантида, Игнис"; + dsc = [[ + Вы снимаете щиток и дергаете рубильник. Судя по всему, Игнис сейчас должен быть обесточен. По радио вы сообщаете Райту о завершении работ. + ]]; + phr = { + {"Подача электричества в Игнис отключена, возвращаюсь на станцию", [[ + В динамике вы слышите голос Райта: "Отлично, возвращайтесь".^ + ]], code [[ walk("atl_iof_end"); ]]}; + }; +}; + +atl_iof_end = room { + nam = "Атлантида"; + dsc = [[ + Вы возвращаетесь на станцию и сразу же отправляетесь в свою комнату, чтобы отдохнуть. При выходе из дока вас встречает Моро и говорит: "Дрейк. Я понимаю, вам нужен отдых. Как сможете - посетите меня и других лидеров станции". Вы приходите в свою комнату и сразу же засыпаете...^ + Вы просыпаетесь утром, полностью готовый заняться новыми делами. + ]]; + obj = { + vway("Продолжить", "{Продолжить}", "atlantis_luna_drake_room"); + }; + }; \ No newline at end of file