# HG changeset patch # User Silverwing # Date 2017-04-15 08:57:43 # Node ID 2a6cebe6e43e6f68fa583bb26c4a805cce0ac990 # Parent abf3f2548582f8de8f3a628e693dfd5a0c1fff5a 422 diff --git a/atlantis.lua b/atlantis.lua --- a/atlantis.lua +++ b/atlantis.lua @@ -92,6 +92,14 @@ atl_aqua_corridor_b = room { }; }; +atl_entry = lcutscene("atl_entry", "Левиафан, рубка", function(s) + if (ArrayUtils.indexOf(pl.party, "wright") ~= 0) then + return [[Несколько недель Левиафан полным ходом несется по направлению к танственной точке, отмеченной на карте. Путешествие происходит спокойно -- могучие машины субмарины уверенно двигают ее вперед. Хотя субмарина явно требует большего экипажа, вы неплохо справляетесь вдвое и добираетесь до места назначения. Здесь, на океанском дне вы видите несколько больших металлических и стеклянных куполов, освещенных электрическими огнями. Приблизившись, вы быстро находите путь в одно из строений. Как только Левиафан проникает внутрь, массивные ворота закрываются, оставляя вас взаперти. ]]; + else + return [[Несколько недель Левиафан полным ходом несется по направлению к танственной точке, отмеченной на карте. Путешествие происходит спокойно -- могучие машины субмарины уверенно двигают ее вперед. Управлять субмариной в одиночку нелегкая работа. Вы почти не спите, опасаясь оставлять движение корабль без внимания. К счатью, вы без проблем добираетесь до места назначения. Здесь, на океанском дне вы видите несколько больших металлических и стеклянных куполов, освещенных электрическими огнями. Приблизившись, вы быстро находите путь в одно из строений. Как только Левиафан проникает внутрь, массивные ворота закрываются, оставляя вас взаперти. ]]; + end; +end, "Вы прибыли на Атлантиду", leviathan_wheelhouse); + atl_aqua_leviathan_dock = room { var { visited = false; diff --git a/leviathan.lua b/leviathan.lua --- a/leviathan.lua +++ b/leviathan.lua @@ -564,7 +564,6 @@ leviathan_airregen = obj { return [[{Установка регенерации воздуха} сейчас находится в плачевном состоянии - часть деталей отсутствуют, еще некоторые поломаны. ]]; end; end; - end; seen_level = 1; }; @@ -837,7 +836,7 @@ leviathan_dlg = dlg { return [[Вы находитесь в рубке Левиафана перед штурвалом. Отсюда вы можете направиться куда-нибудь. Яркий свет электрических ламп освещает помещение. ]] .. (view); end; update_options = function() - leviathan_dlg:poff("atlantis", "old_temple", "iraaphaanotrr", "iraaphaanotrr_temple", "dypatreanotrr", "dypatreanotrr_temple"); + leviathan_dlg:poff("atlantis", "old_temple", "iraaphaanotrr", "iraaphaanotrr_temple", "dypatreanotrr", "dypatreanotrr_temple"); if (atlantis_found and where(submarine_leviathan) ~= atl_aqua_leviathan_dock) then leviathan_dlg:pon("atlantis"); end; @@ -863,11 +862,10 @@ leviathan_dlg = dlg { s.update_options(); end; phr = { - {tag="atlantis", always = "true", "Атлантида", function() - return "Вы прибыли в Атлантиду"; - end, function() + {tag="atlantis", always = "true", "Атлантида", nil, function() move(submarine_leviathan, "atl_aqua_leviathan_dock"); leviathan_dlg:update_options(); + walk(atl_entry); end}, {tag="old_temple", always = "true", "Старый храм", function() return "Вы прибыли в старый храм"; diff --git a/main.lua b/main.lua --- a/main.lua +++ b/main.lua @@ -184,20 +184,29 @@ function init() --pl.where = "leviathan_airlock"; --submarine_leviathan.airpump = false; - --leviathan_airlock.has_light = true; - --leviathan_wardroom.has_light = true; - --leviathan_wheelhouse.has_light = true; - --leviathan_corridor.has_light = true; - --leviathan_cabin_1.has_light = true; - --leviathan_cabin_2.has_light = true; - --leviathan_cabin_3.has_light = true; - --leviathan_cabin_4.has_light = true; - --leviathan_cabin_5.has_light = true; - --leviathan_captains_cabin.has_light = true; - --leviathan_cargo_hold.has_light = true; - --leviathan_engines.has_light = true; - --leviathan_lower_deck.has_light = true; - --leviathan_life_support.has_light = true; + leviathan_airlock.has_light = true; + leviathan_wardroom.has_light = true; + leviathan_wheelhouse.has_light = true; + leviathan_corridor.has_light = true; + leviathan_cabin_1.has_light = true; + leviathan_cabin_2.has_light = true; + leviathan_cabin_3.has_light = true; + leviathan_cabin_4.has_light = true; + leviathan_cabin_5.has_light = true; + leviathan_captains_cabin.has_light = true; + leviathan_cargo_hold.has_light = true; + leviathan_engines.has_light = true; + leviathan_lower_deck.has_light = true; + leviathan_life_support.has_light = true; + submarine_leviathan.air_level = 432000; + submarine_leviathan.battery = true; + submarine_leviathan.battery_charge = 100; + submarine_leviathan.circuit_breaks = 0; + submarine_leviathan.valves_to_replace = 0; + submarine_leviathan.power_on = true + pl.party = {'wright'}; + atlantis_found = true; + pl.where = leviathan_wheelhouse; --[[ ---IYH lifeon(char_learr); diff --git a/utils.lua b/utils.lua --- a/utils.lua +++ b/utils.lua @@ -295,6 +295,29 @@ function cutscene(nam, disp, dsc, nxt, e }; end; +function lcutscene(nam, disp, dsc, msg, nxt) + return room { + var { + state = 0; + }; + nam = nam; + disp = disp; + enter = function(s) + if (s.state == 1) then + walk(nxt); + pn(msg); + end; + s.state = 1; + end; + dsc = dsc; + obj = { + kh_vobj("continue", "{Продолжить}", function(s) + walk(nxt); + end); + }; + }; +end; + --[[ Создает комнату с полем для ввода числа длиной не более tab.maxlen По нажатии enter вызывает метод tab.сheck