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 @@ -85,7 +85,7 @@ char_learr_iof = obj { end; end; life = function(s) - if (where(s) ~= where(pl) and where(pl).iof) then + if (where(s) ~= where(pl) and where(pl).iof and not s.faint) then move(s, where(pl)); end; end; @@ -93,7 +93,7 @@ char_learr_iof = obj { if (where(s) == atl_iof_ignis_service_room and not dlg_learr_suit.state) then walkin('dlg_learr_suit'); elseif (s.faint) then - walkin('atl_iof_learr_faint_alone'); + walkin('atl_iof_learr_faint_alone_2'); else return [[Некогда разговаривать. ]]; end; @@ -140,12 +140,12 @@ dlg_learr_iof = dlg { disp = "Леарр"; entered = [[Леарр подбегает к вам и спрашивает: "Что происходит?" ]]; phr = { - {'Надеюсь, все в порядке, следуй за мной', [[Леарр молча кивает. ]], code [[ + {'Надеюсь, все в порядке, следуй за мной. ', [[Леарр молча кивает. ]], code [[ lifeon('char_learr_iof'); char_learr_iof.state = 1; walk('atl_iof_ignis_hall_a'); ]]}; - {'Такое уже происходило?', [[Леарр пожимает плечами: "Я не-видела". ]]}; + {'Такое уже происходило? ', [[Леарр пожимает плечами: "Я не-видела". ]]}; }; }; @@ -208,9 +208,10 @@ atl_iof_time_state = obj { carry_learr = false; }; life = function(s) - if (not where(pl).iof) then + if (not where(pl).iof or where(pl).no_limits) then return; end; + s.life_left = s.life_left - 1; if (s.life_left == 5) then if (not s.pl_safe) then @@ -252,13 +253,29 @@ atl_iof_time_state = obj { end; }; +atl_iof_learr_faint_alone_2 = dlg { + nam = "Леарр"; + disp = "Леарр"; + dsc = [[Леарр лежит на полу без сознания. ]]; + phr = { + {"[Взять Леарр на руки]", [[Леарр теряет сознание, обессилев. Вы берете навьярессу на руки. Она весит не больше обычного человека. Вы вполне в состоянии донести ее до выхода. ]], code [[ + remove(char_learr_iof, where(char_learr_iof)); + put(char_learr_faint, pl); + lifeon(char_learr_faint); + atl_iof_time_state.carry_learr = true; + back(); + ]]}; + {"[Уйти]", "", code [[ back(); ]]}; + }; +}; + atl_iof_learr_faint_alone = dlg { nam = "Леарр"; disp = "Леарр"; dsc = [[Леарр медленно опускается на пол. Сквозь скафандр вы с трудом различаете ее голос: "Я не-могу-идти". ]]; phr = { {"Совсем немного осталось, пойдем. [Помочь Леарр подняться]", [[Леарр пытается подняться опираясь на вашу руку, но снова падает, теряя сознание. ]], code [[ - tag('faint'); + psub('faint'); ]]}; {"Оставайся здесь, я вернусь. ", [[Леарр теряет сознание, обессилев. ]], code [[ char_learr_iof.faint = true; @@ -281,7 +298,7 @@ atl_iof_learr_faint_alone = dlg { put(char_learr_faint, pl); lifeon(char_learr_faint); atl_iof_time_state.carry_learr = true; - back(); + back(); ]]}; {"[Уйти]", "", code [[ back(); ]]}; }; @@ -595,6 +612,7 @@ atl_iof_ignis_service_room = room { nam = "Атлантида, Игнис, служебное помещение"; disp = "Атлантида, Игнис, служебное помещение"; iof = true; + no_limits = true; dsc = [[Небольшое помещение, используемое для хранения различного оборудования, необходимого для обслуживания секции. ]]; way = { kh_vroom("В главный зал", function(s) @@ -1061,7 +1079,7 @@ atl_iof_electr_panel_open = dlg { atl_iof_end = room { nam = "Атлантида"; - dsc = [[Вы возвращаетесь на станцию и сразу же отправляетесь в свою комнату, чтобы отдохнуть. Вы просыпаетесь утром. ^Едва вы поднимаетесь с койки, к вам в комнату входят двое охранников. Они просят вас проследовать за ними к начальнику службы безопасности -- Винсенту Даркстару. У вас нет никакого выхода, кроме как пойти с ними. ]]; + dsc = [[Вы возвращаетесь на станцию и сразу же отправляетесь в свою комнату, чтобы отдохнуть. ^Едва вы просыпаетесь, к вам в комнату входят двое охранников. Они просят вас проследовать за ними к Винсенту Даркстару. У вас нет никакого выхода, кроме как пойти с ними. ]]; entered = function(s) atl_lfc_state = 1; if (ArrayUtils.indexOf(pl.party, 'wright') ~= 0) then