Changeset - bd9caffc4c5a
[Not reviewed]
default
0 4 0
Silverwing - 7 years ago 2017-10-01 18:51:43

Learr behaviour on iyh improved partially
4 files changed with 81 insertions and 37 deletions:
0 comments (0 inline, 0 general)
atlantis.lua
Show inline comments
 
global {
 
	atl_jack_in_party = false;
 
	atl_lev_state = 0;
 
	
 
	atl_iof_completed = false;
 
	atl_iof_learr_dead = false;
 
	atl_iof_learr_suit = false;
 
	
 
	atl_nih_state = 0;
 
	
 
	atl_iyh_state = 0;
 
    atl_iyh_learr_spoken = false;
 
	atl_iyh_ryveerr_spoken = false;
 
    atl_iyh2_ryveerr_spoken = false;
 
    atl_iyh2_aikeryarr_spoken = false;
 
	atl_iyh_shockfish_dead = false;
 
	atl_iyh_shockfish_left = false;
 
	atl_iyh_shockfish_away = 0;
 
	atl_iyh_entrance_destroyed = false;
 
	atl_iyh_artifacts_on_atlantis = false;
 
	
 
	atl_lfc_state = 0;
 
	atl_lfc_panic = 0;
 
    atl_lfc_panic_warning = 0;
 
	atl_lfc_hallrooms = 0;
 
	atl_lfc_electric = 0;
 
	atl_lfc_board = 0;
 
	atl_lfc_suspect = nil;
 
	atl_lfc_leroy_spoken = 0;
 
	atl_lfc_goldman_spoken = 0;
 
	atl_lfc_goldman_known = false;
 
	atl_lfc_goldman_exposed = false;
 
	atl_lfc_saboteur_known = false;
 
	atl_lfc_sab_active = false;
 
	atl_lfc_sab_alive = false;
 
 
	atl_fta_state = 0;
 
	
 
	atl_rep_moreau = 0;
 
	atl_rep_darkstar = 0;
 
	atl_rep_svetlova = 0;
 
	atl_rep_wright = 0;
 
    atl_rep_iraa = 0;
 
    atl_rep_dyp = 0;
 
};
 
 
atl_illuminators = obj {
 
	nam = "Иллюминаторы";
 
	dsc = [[Через равные промежутки в стены встроены небольшие круглые {иллюминаторы}. ]];
 
	act = [[Через иллюминаторы видны несколько других секций и коридоров. В лучах света, проникающих с поверхности вы видите массивные металлические конструкции непонятного вам назначения. На покрытом илом дне видно большое количество следов от тяжелых металлическых подошв персонала станции. ]];
 
};
 
 
atl_illuminator = obj {
 
    nam = "Иллюминатор";
 
    dsc = [[В стену встроен небольшой {иллюминатор}. ]];
 
    act = [[Через иллюминатор вы видите несколько других секций и коридоров. В лучах света, проникающих с поверхности вы видите массивные металлические конструкции непонятного вам назначения. На покрытом илом дне видно большое количество следов от тяжелых металлическых подошв персонала станции. ]];
 
};
 
 
atl_intersect_phone = obj {
 
    nam = "Телефон";
 
    dsc = [[На одной из стен укреплен {телефонный аппарат} в герметичном контейнере. ]];
 
    act = function(s)
 
        if (atl_lfc_state == 1 and atl_lfc_panic == 1 and atl_lfc_panic_warning == 0) then
 
            walkin("panic_first_warning_dlg");
 
        else
 
            return [[Вам незачем кому-то звонить. ]];
 
        end;
 
    end;
 
};
 
 
atl_intersect_suit = obj {
 
    nam = "Скафандр";
 
    dsc = [[В углу стоит {скафандр}. ]];
 
    act = [[Сейчас нет смысла это делать. ]];
 
}
 
 
atl_aqua_corridor_b = room {
 
	nam = "Атлантида, Аква, коридор B";
 
	dsc = [[Широкий коридор, заполненный ярким светом электрических ламп. В одном конце коридора расположена шлюзовая дверь, ведущая в основной коридор секции _"Аква"_. По бокам коридора находятся еще несколько дверей, ведущих в другие помещения секции: гостевые доки A, B и С. ]];
 
	way = {
 
		kh_vroom("В гостевой док A", function()
 
			if (atl_lev_state == 0) then
 
				pr("Люк наглухо задраен. Вы не сможете его открыть. ");
 
				return false;
 
			elseif (atl_lev_state == 1) then
 
				return "atl_lev_radcliffe_dlg";
 
			else
 
				return "atl_aqua_leviathan_dock";
 
			end;
 
		end);
 
		kh_vroom("В гостевой док B", function()
 
			pr("Люк наглухо задраен. Вы не сможете его открыть. ");
 
			return false;
 
		end);
 
		kh_vroom("В гостевой док C", function()
 
			pr("Люк наглухо задраен. Вы не сможете его открыть. ");
 
			return false;
 
		end);
 
		kh_vroom("В главный коридор", "atl_aqua_main_corridor");
 
	};
 
	obj = {
 
		"atl_illuminators",
 
		"atl_nih_tubes_aqua_b"
 
	};
 
};
 
 
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;
 
	};
 
	nam = "Атлантида, Аква, гостевой док A";
 
	enter = function(s)
 
		if (not s.visited) then
 
			s.visited = true;
 
			walk(atlantis_intro_dock);
 
		end;
 
		if (atl_iyh_state == 8) then
 
			atl_iyh_state = 9;
 
			if (atl_iof_learr_dead) then
 
				walk('iyh_outro_aikerjarr');
 
			elseif atl_iyh_shockfish_dead then
 
                walk('iyh_outro_learr_shockfish_dead');
 
            elseif atl_iyh_entrance_destroyed then
 
				walk('iyh_outro_learr_temple_destoryed');
 
			else
 
				walk('iyh_outro_learr');
 
			end;
 
		end;
 
	end;
 
	dsc = [[Просторное помещение, предназнавенное для размещения субмарин, прибывающих на станцию. В настоящий момент в этом доке расположен Левиафан. Под потолком, на высоте примерно в пять метров укреплены балки, по которым могут перемещаться крюки подъемных кранов. Снизу, под водой, огромный люк закрывает доступ внутрь дока. Несколько легких подвижных мостиков находятся на поверхности воды. ]];
 
	view = [[Левиафан находится в просторном доке. Под потолком на высоте пяти метров укреплены балки, по которым могут перемещаться крюки подъемных кранов. Внизу расположен закрытый люк, закрывающий вам путь наружу. ]];
 
	way = {
 
		kh_vroom("В коридор B", "atl_aqua_corridor_b");
 
	};
 
}; 
 
 
atl_aqua_nautilus_dock = room {
 
	nam = "Атлантида, Аква, док Наутилуса";
 
	dsc = [[Просторное помещение, предназнавенное для размещения субмарин, прибывающих на станцию. В настоящий момент в этом доке расположен Наутилус. Под потолком, на высоте примерно в пять метров укреплены балки, по которым могут перемещаться крюки подъемных кранов. Снизу, под водой, огромный люк закрывает доступ внутрь дока. Несколько легких подвижных мостиков находятся на поверхности воды. ]];
 
	way = {
 
		kh_vroom("В коридор A", "atl_aqua_corridor_a");
 
	};
 
	obj = {
 
		"char_page"
 
	};
 
};
 
 
atl_aqua_corridor_a = room {
 
	nam = "Атлантида, Аква, коридор A";
 
	dsc = [[Широкий коридор, заполненный ярким светом электрических ламп. В одном конце коридора расположена шлюзовая дверь, ведущая в основной коридор секции _"Аква"_. По бокам коридора находятся еще несколько дверей, ведущих к докам. ]];
 
	way = {
 
		kh_vroom("В док \"Надежды\"", function()
 
			pr("Люк наглухо задраен. Вы не сможете его открыть. ");
 
			return false;
 
		end);
 
		kh_vroom("В док \"Энтерпрайза\"", function()
 
			pr("Люк наглухо задраен. Вы не сможете его открыть. ");
 
			return false;
 
		end);
 
		kh_vroom("В док \"Наутилуса\"", function()
 
			if (atl_lfc_state == 2) then
 
				return "atl_lfc_dock_s";
 
			else
 
				return "atl_aqua_nautilus_dock";
 
			end;
 
		end);
 
		kh_vroom("В главный коридор", "atl_aqua_main_corridor");
 
	};
 
	obj = {
 
		"atl_illuminators",
 
		"atl_nih_tubes_aqua_a"
 
	};
 
};
 
 
atl_aqua_main_corridor = room {
 
    nam = "Атлантида, Аква, центральный коридор";
 
    dsc = [[Широкий коридор, заполненный ярким светом электрических ламп. В одном конце коридора расположена шлюзовая дверь, ведущая, в секцию _"Доминус"_. По бокам коридора находятся еще несколько дверей, ведущих в другие помещения секции -- по большей части это склады. Еще две двери ведут в коридоры A и B. ]];
 
    way = {
 
        kh_vroom("На склад A", function()
 
            pr("Люк наглухо задраен. Вы не сможете его открыть. ");
 
            return false;
 
        end);
 
        kh_vroom("На склад B", function()
 
            if atl_nih_state == 1 then
 
                return "atl_aqua_warehouse_b";
 
            else
 
                pr("Люк наглухо задраен. Вы не сможете его открыть. ");
 
                return false;
 
            end;
 
        end);
 
        kh_vroom("На склад C", function()
 
            pr("Люк наглухо задраен. Вы не сможете его открыть. ");
 
            return false;
 
        end);
 
        kh_vroom("На склад D", function()
 
            pr("Люк наглухо задраен. Вы не сможете его открыть. ");
 
            return false;
 
        end);
 
        kh_vroom("В коридор A", "atl_aqua_corridor_a");
 
        kh_vroom("В коридор B", "atl_aqua_corridor_b");
 
        kh_vroom("В секцию \"Доминус\"", "atl_intersection_aqua_dom");
 
    };
 
    obj = {
 
        "atl_illuminators",
 
        "atl_nih_tubes_aqua"
 
    };
 
};
 
 
atl_aqua_warehouse_b = darkroom {
 
    var {
 
        has_light = false;
 
    };
 
    nam = "Атлантида, Аква, склад B";
 
    dsc_dark = [[Большое помещение без окон погружено в кромешный мрак. В темноте вы с трудом различаете очертания предметов. ]];
 
    dsc_halflit = [[Слабый свет лампы позволяет вам с трудом ориентироваться в помещении,заставленном различными ящиками. ]];
 
    dsc_lit = [[Большое помещение без окон освещено яркими лектрическим лампами. По всему помещению аккуратно расставлено множество ящиков с различными материалами, необходимыми для поддержания жизнедеятельности станции. ]];
 
    way = {
 
        kh_vroom("В коридор", "atl_aqua_main_corridor");
 
    };
 
    obj = {
 
        "atl_aqua_warehouse_b_lightswitch";
 
        "atl_nih_tube_container2";
 
    };
 
};
 
 
atl_aqua_warehouse_b_lightswitch = obj {
 
    nam = "atl_aqua_warehouse_b_lightswitch";
 
    dsc = [[Рядом со входом расположен {выключатель}. ]];
 
    act = function(s)
 
        atl_aqua_warehouse_b.has_light = not atl_aqua_warehouse_b.has_light;
 
        if atl_aqua_warehouse_b.has_light then
 
            return [[Вы щелкаете выключателем и яркий свет электрических ламп заливает помещение. ]];
 
        else
 
            return [[Вы щелкаете выключателем и лампы гаснут, погружая помещение в кромешную тьму. ]];
 
        end;
 
    end;
 
};
 
 
atl_intersection = inherit(room, function(v)
 
    v.disp = "Атлантида, межсекционный коридор";
 
    v.dsc = [[Небольшой коридор, соединяющий секции станции, заполнен ярким светом электрических ламп. ]];
 
    v.entered = function(s)
 
        if (atl_lfc_state == 1) then
 
            if (atl_lfc_panic == 1) then
 
                if (atl_lfc_panic_warning == 0) then
 
                    pr([[Когда вы проходите мимо, телефон начинает звонить. ]]);
 
                end;
 
            elseif (atl_lfc_panic == 2) then
 
                if (atl_lfc_panic_warning < 2) then 
 
                    atl_lfc_panic_warning = 2;
 
                end;
 
            elseif (atl_lfc_panic == 3) then
 
                walk("game_over_banished_lfc");
 
            end;
 
        end;
 
    end;
 
    v.left = function(s)
 
        if (atl_lfc_state == 1) then
 
            atl_lfc_panic_warning = 1;
 
        end;
 
    end;
 
    if (not v.obj) then
 
        v.obj = {};
 
    end;
 
    table.insert(v.obj, "atl_illuminator");
 
    table.insert(v.obj, "atl_intersect_phone");
 
    table.insert(v.obj, "atl_intersect_suit");
 
end);
 
 
atl_intersection_aqua_dom = atl_intersection {
 
	nam = "Атлантида, межсекционный коридор";
 
	way = {
 
		kh_vroom("В секцию \"Аква\"", "atl_aqua_main_corridor");
 
		kh_vroom("В секцию \"Доминус\"", "atl_dom_main_near_aqua");
 
	};
 
};
 
 
atl_dom_main_near_aqua = room {
 
	nam = "Атлантида, Доминус, центральный зал, у входа в секцию Аква";
 
	dsc = [[Огромный круглый зал освещенный электрическими лампами, установленными на многочисленных колоннах. Стеклянный купол над головой ограждает вас от многотонной громады океанских вод. Над куполом расположен огромный металлический диск секции Игнис, расположенной над центральным залом Доминуса. Рядом с вами расположен шлюз, ведущий в соседнюю секцию. ]];
 
	way = {
 
		kh_vroom("В секцию \"Аква\"", "atl_intersection_aqua_dom");
 
		kh_vroom("По часовой стрелке", "atl_dom_main_near_adm");
 
		kh_vroom("Против часовой стрелки", "atl_dom_main_near_a");
 
		kh_vroom("К центру зала", "atl_dom_main_c");
 
	};
 
	obj = {
 
		-- TODO добавить скамейки, табличку секции Аква
 
		"atl_nih_tubes_near_aqua"
 
	};
 
};
 
 
atl_dom_main_near_a = room {
 
	nam = "Атлантида, Доминус, центральный зал, у входа в коридор А";
 
	dsc = [[Огромный круглый зал освещенный электрическими лампами, установленными на многочисленных колоннах. Стеклянный купол над головой ограждает вас от многотонной громады океанских вод. Над куполом расположен огромный металлический диск секции Игнис, расположенной над центральным залом Доминуса. Вы находитесь в северной части зала. Рядом с вами расположен шлюз, ведущий в коридор А. ]];
 
	way = {
 
		kh_vroom("В коридор A", "atl_dom_corridor_a");
 
		kh_vroom("По часовой стрелке", "atl_dom_main_near_aqua");
 
		kh_vroom("Против часовой стрелки", "atl_dom_main_near_luna");
 
		kh_vroom("К центру зала", "atl_dom_main_c");
 
	};
 
	obj = {
 
		-- TODO добавить табличку
 
		"atl_nih_panel_near_a"
 
	};
 
};
 
 
atl_dom_main_c = room {
 
	nam = "Атлантида, Доминус, центральный зал, центр";
 
	dsc = [[Огромный круглый зал освещенный электрическими лампами, установленными на многочисленных колоннах. Стеклянный купол над головой ограждает вас от многотонной громады океанских вод. Над куполом расположен огромный металлический диск секции Игнис, расположенной над центральным залом Доминуса. Вы находитесь в центральной части зала, рядом с лифтом, ведущим в Игнис. ]];
 
	way = {
 
		kh_vroom("В лифт", "atl_dom_lift");
 
		kh_vroom("На север", "atl_dom_main_near_aqua");
 
		kh_vroom("На северо-восток", "atl_dom_main_near_adm");
 
		kh_vroom("На юго-восток", "atl_dom_main_se");
 
		kh_vroom("На юго-запад", "atl_dom_main_sw");
 
		kh_vroom("На северо-запад", "atl_dom_main_near_a");
 
		
 
	};
 
	obj = {
 
		-- TODO добавить скамейки
 
	};
 
};
 
 
atl_dom_main_sw = room {
 
	nam = "Атлантида, Доминус, центральный зал, юго-запад";
 
	dsc = [[Огромный круглый зал освещенный электрическими лампами, установленными на многочисленных колоннах. Стеклянный купол над головой ограждает вас от многотонной громады океанских вод. Над куполом расположен огромный металлический диск секции Игнис, расположенной над центральным залом Доминуса. Вы находитесь в юго-западной части секции. ]];
 
	way = {
 
		kh_vroom("К секции Окулус", "atl_dom_main_near_oculus");
 
		kh_vroom("К секции Луна", "atl_dom_main_near_luna");
 
		kh_vroom("По часовой стрелке", "atl_dom_main_near_a");
 
		kh_vroom("Против часовой стрелки", "atl_dom_main_se");
 
		kh_vroom("К центру зала", "atl_dom_main_c");
 
	};
 
};
 
 
atl_dom_main_se = room {
 
	nam = "Атлантида, Доминус, центральный зал, юго-восток";
 
	dsc = [[Огромный круглый зал освещенный электрическими лампами, установленными на многочисленных колоннах. Стеклянный купол над головой ограждает вас от многотонной громады океанских вод. Над куполом расположен огромный металлический диск секции Игнис, расположенной над центральным залом Доминуса.Вы находитесь в юго-восточной части секции. ]];
 
	way = {
 
		kh_vroom("К секции Арктос", "atl_dom_main_near_arctos");
 
		kh_vroom("К секции Терра", "atl_dom_main_near_terra");
 
		kh_vroom("По часовой стрелке", "atl_dom_main_sw");
 
		kh_vroom("Против часовой стрелки", "atl_dom_main_near_adm");
 
		kh_vroom("К центру зала", "atl_dom_main_c");
 
	};
 
};
 
 
atl_dom_main_near_adm = room {
 
	nam = "Атлантида, Доминус, центральный зал, у входа в кабинет администратора";
 
	dsc = [[Огромный круглый зал освещенный электрическими лампами, установленными на многочисленных колоннах. Стеклянный купол над головой ограждает вас от многотонной громады океанских вод. Над куполом расположен огромный металлический диск секции Игнис, расположенной над центральным залом Доминуса. Рядом с вами находится шлюз, ведущий в кабинет администратора. ]];
 
	way = {
 
		kh_vroom("В кабинет администратора", "atl_dom_administator_room");
 
		kh_vroom("По часовой стрелке", "atl_dom_main_near_arctos");
 
		kh_vroom("Против часовой стрелки", "atl_dom_main_near_aqua");
 
		kh_vroom("К центру зала", "atl_dom_main_c");
 
	};
 
	obj = {
 
		-- TODO добавить скамейки, воздуховоды
 
		"atl_nih_panel_near_admin"
 
	};
 
};
 
 
atl_dom_main_near_luna = room {
 
	nam = "Атлантида, Доминус, центральный зал, у входа в секцию Луна";
 
	dsc = [[Огромный круглый зал освещенный электрическими лампами, установленными на многочисленных колоннах. Стеклянный купол над головой ограждает вас от многотонной громады океанских вод. Над куполом расположен огромный металлический диск секции Игнис, расположенной над центральным залом Доминуса.Рядом с вами находится шлюз, ведущий в секцию "Луна". ]];
 
	way = {
 
		kh_vroom("В секцию \"Луна\"", "atl_intersection_luna_dom");
 
		kh_vroom("Отойти от шлюза", "atl_dom_main_sw");
 
	};
 
	obj = {
 
		"atl_nih_panel_near_luna"
 
	};
 
};
 
 
atl_dom_main_near_oculus = room {
 
	nam = "Атлантида, Доминус, центральный зал, у входа в секцию Окулус";
 
	dsc = [[Огромный круглый зал освещенный электрическими лампами, установленными на многочисленных колоннах. Стеклянный купол над головой ограждает вас от многотонной громады океанских вод. Над куполом расположен огромный металлический диск секции Игнис, расположенной над центральным залом Доминуса. Рядом с вами находится шлюз, ведущий в секцию "Окулус". ]];
 
	way = {
 
		kh_vroom("В секцию \"Окулус\"", "atl_intersection_oculus_dom");
 
		kh_vroom("Отойти от шлюза", "atl_dom_main_sw");
 
	};
 
	obj = {
 
		"atl_nih_boxes_near_oculus"
 
	};
 
};
 
 
atl_dom_main_near_terra = room {
 
	nam = "Атлантида, Доминус, центральный зал, у входа в секцию Терра";
 
	dsc = [[Огромный круглый зал освещенный электрическими лампами, установленными на многочисленных колоннах. Стеклянный купол над головой ограждает вас от многотонной громады океанских вод. Над куполом расположен огромный металлический диск секции Игнис, расположенной над центральным залом Доминуса. Рядом с вами находится шлюз, ведущий в секцию "Терра". ]];
 
	way = {
 
		kh_vroom("В секцию \"Терра\"", "atl_intersection_terra_dom");
 
		kh_vroom("Отойти от шлюза", "atl_dom_main_se");
 
	};
 
	obj = {
 
		"atl_nih_boxes_near_terra"
 
	};
 
};
 
 
atl_dom_main_near_arctos = room {
 
	nam = "Атлантида, Доминус, центральный зал, у входа в секцию Арктос";
 
	dsc = [[Огромный круглый зал освещенный электрическими лампами, установленными на многочисленных колоннах. Стеклянный купол над головой ограждает вас от многотонной громады океанских вод. Над куполом расположен огромный металлический диск секции Игнис, расположенной над центральным залом Доминуса. Рядом с вами находится шлюз, ведущий в секцию "Арктос". ]];
 
	way = {
 
		kh_vroom("В секцию \"Арктос\"", "atl_intersection_arctos_dom");
 
		kh_vroom("Отойти от шлюза", "atl_dom_main_se");
 
	};
 
	obj = {
 
		"atl_nih_tubes_near_arctos"
 
	};
 
};
 
 
atl_dom_corridor_a = room {
 
	nam = "Атлантида, Доминус, коридор A";
 
	dsc = [[Просторный коридор, расположенный в западном крыле секции Доминус, заполнен ярким светом электрических ламп. В одном конце коридора расположена дверь, ведущая в главный зал. Две другие ведут в оружейную и кабинет начальника службы безопасности. ]];
 
	way = {
 
		kh_vroom("В кабинет начальника СБ", "atl_dom_security_office");
 
		kh_vroom("В оружейную", function()
 
			pr("Люк наглухо задраен и опечатан. Вы не сможете его открыть. ");
 
			return false;
 
		end);
 
		kh_vroom("В центральный зал", "atl_dom_main_near_a");
 
	};
 
};
 
 
atl_dom_security_office = room {
 
	nam = "Атлантида, Доминус, кабинет начальника СБ";
 
	dsc = [[Спартанская обстановка кабинета начальника службы безопасности сразу бросается вам в глаза. небольшая комната почти пуста. Здесь нет ничего кроме массивного металлического стола в центре и двух кресел по разные стороны его. ]];
 
	way = {
 
		kh_vroom("В коридор", "atl_dom_corridor_a");
 
	};
 
	obj = {
 
		'char_darkstar'
 
	};
 
};
 
 
atl_dom_administator_room = room {
 
	nam = "Атлантида, Доминус, кабинет администратора";
 
	dsc = [[Кабинет администратора представляет собой небольшую комнату. Вдоль стен установлено несколько шкафов с какими-то бумагами. В центре расположен металлический стол. 
 
	]];
 
	way = {
 
		kh_vroom("В центральный зал", "atl_dom_main_near_adm");
 
	};
 
	obj = {
 
		'char_moreau'
 
	};
 
};
 
 
atl_intersection_luna_dom = room {
 
	nam = "Атлантида, межсекционный коридор";
 
	dsc = [[Небольшой коридор, соединяющий секции станции, заполнен ярким светом электрических ламп. ]];
 
	way = {
 
		kh_vroom("В секцию \"Луна\"", "atl_luna_main_corridor");
 
		kh_vroom("В секцию \"Доминус\"", "atl_dom_main_near_luna");
 
	};
 
	obj = {
 
		"atl_illuminators",
 
        "atl_intersect_phone",
 
        "atl_intersect_suit"      
 
	};
 
};
 
 
atl_intersection_arctos_dom = room {
 
	nam = "Атлантида, межсекционный коридор";
 
	dsc = [[Небольшой коридор, соединяющий секции станции, заполнен ярким светом электрических ламп. ]];
 
	way = {
 
		kh_vroom("В секцию \"Арктос\"", "atl_arctos_main_corridor");
 
		kh_vroom("В секцию \"Доминус\"", "atl_dom_main_near_arctos");
 
	};
 
	obj = {
 
		"atl_illuminators",
 
        "atl_intersect_phone",
 
        "atl_intersect_suit"  
 
	};
 
};
 
 
atl_luna_main_corridor = room {
 
    var {
 
        state = 0;
 
    };
 
	nam = "Атлантида, Луна, главный коридор";
 
	dsc = [[Узкий длинный коридор c дверьми, ведущими в комнаты персонала, по сторонам. Яркий свет электрических ламп заполняет помещение. ]];
 
    entered = function(s)
 
        if (s.state == 0) then
 
            s.state = 1;
 
            if (where(char_jack_wright_atlantis) == atl_luna_jack_room) then
 
                path("В комнату Джека"):enable();
 
            end;
 
        end;
 
    end;
 
	way = {
 
		kh_vroom("В вашу комнату", "atl_luna_drake_room");
 
        kh_vroom("В комнату Джека", "atl_luna_jack_room"):disable();
 
		kh_vroom("В общую комнату", "atl_luna_common_room");
 
		kh_vroom("В секцию \"Доминус\"", "atl_intersection_luna_dom");
 
	};
 
	obj = {
 
		"atl_illuminators",
 
		"atl_nih_tubes_luna"
 
	};
 
};
 
 
atl_luna_jack_room = room {
 
    nam = "Атлантида, Луна, комната Джека";
 
    dsc = [[небольшая уютная комната, расчитанная на двух человек. ]];
 
    way = {
 
        kh_vroom("В главный коридор", "atl_luna_main_corridor");
 
    };
 
    obj = {
atlantis_dlg.lua
Show inline comments
 
@@ -1214,929 +1214,929 @@ char_anna_atlantis_dlg = dlg {
 
            end;
 
            if (char_anna.drake_asked < 2) then
 
                pon("on_drake");
 
                pon("ask_more");
 
            end;
 
        end;
 
	
 
		if (s.state == 0) then
 
			s.state = 1;
 
			psub("first_meeting");
 
			return [[Перед вами стоит девушка лет двадцати-пяти--тридцати. Каштановые волосы ниспадают на плечи. Зеленые глаза внимательно следят за движениями навьяра, с которым она разговаривает. Заметив вас, она просит навьяра подождать и обращается к вам: "Приветствую. Вы, должно быть господин Дрейк? Мое имя Анна Рэдклифф". ]];
 
		else
 
			psub("generic");
 
			return [[Анна Рэдклифф разговаривает с навьяром, стоящим рядом. Заметив вас, она просит его подождать и обращается к вам: "Приветствую, вы что-то хотели?" ]];
 
		end;
 
	end;
 
	phr = {
 
		{tag="first_meeting"};
 
		{"Да, я Дэвид Дрейк. Рад знакомству", [[Анна Рэдклифф улыбается и спрашивает: "Вы что-то хотели?" ]], code = [[ psub('generic'); ]]};
 
        {tag="ask_more"};
 
        {tag="on_walter", "Расскажите об Уолтере. ", function(s)
 
            if (rel_anna < 0) then
 
                char_anna.walter_asked = 1;
 
                return [[Анна Рэдклифф отвечает: "Я не хочу об этом с вами говорить". ]];
 
            else
 
                char_anna.walter_asked = 2;
 
                return [[Анна Рэдклифф отвечает: "Уолтер -- мой старший брат. Он заботится обо мне с тех пор, как мама с папой покинули нас. Хотя моя жизнь сильно изменилась, когда Уолтер забрал меня с собой на Атлантиду, я не жалею об этом". ]];
 
            end;
 
        end};
 
        {tag="on_atlantis", "Что вы думаете об Атлантиде?", function(s)
 
            if (rel_anna < 0) then
 
                char_anna.atlantis_asked = 1;
 
                return [[Анна Рэдклифф отвечает: "Я не хочу об этом с вами говорить". ]];
 
            else
 
                char_anna.atlantis_asked = 2;
 
                return [[Анна Рэдклифф отвечает: "Последние десять лет я живу здесь, на Атлантиде. Я хорошо помню, как расстроена я была, приехав сюда. Конечно, я не думала, что мы все проведем здесь лет десять. Мне казалось, что уже через полгода-год мы вернемся на поверхность, но намерения вашего отца сильно отличались от этого. Потом Екатерина и Сильвия познакомили меня с Телнеарром и Хетеарром -- двумя навьярами, которые первыми жили на станции. Потом Хетеарр вернулся домой, а вместо него на станцию прибыл Ривеерр. А затем покинул станцию и Телнеарр. Его заменила Леарр". ]];
 
            end;
 
        end};
 
        {tag="on_drake", "Расскажите об Уильяме Дрейке. ", function(s)
 
            if (rel_anna < 0) then
 
                char_anna.drake_asked = 1;
 
                return [[Анна Рэдклифф отвечает: "Я не хочу об этом с вами говорить". ]];
 
            else
 
                char_anna.drake_asked = 2;
 
                return [[Анна Рэдклифф отвечает: "Хотя Дрейк -- руководитель Атлантиды, он проводит больше времени здесь, в Окулусе, чем в своем кабинете в Доминусе. Сейчас он в экспедиции -- они с Блэком отправились на поиски отдаленных навьярских поселений". ]];
 
            end;
 
        end};
 
        {tag="on_black", "Расскажите об Адриане Блэке. ", function(s)
 
            if rel_anna < 0 then
 
                char_anna.black_asked = 1;
 
                return [[Анна Рэдклифф отвечает: "Я не хочу об этом с вами говорить". ]];
 
            else
 
                char_anna.black_asked = 2;
 
                return [[Анна Рэдклифф пожимает плечами: "Он никогда мне не нравился. Остальные говорят, что он хорошо справляется с управлением станцией и вообще многое сделал для нас, но мне не нравится его холодность и неискренность".]];
 
            end;
 
        end};
 
        {always=true, "Вернемся к делу.", [[Анна Рэдклифф кивает: "Хорошо".]], code [[ pret(); ]]};
 
		{tag="generic"};
 
        {tag="on_anna", "Расскажите о себе. ", function(s)
 
            if (rel_anna < 0) then
 
                char_anna.anna_asked = 1;
 
                return [[Анна Рэдклифф отвечает: "Я не хочу об этом с вами говорить". ]];
 
            else
 
                char_anna.anna_asked = 2;
 
                return [[Анна Рэдклифф грустно вздыхает: "Мне почти нечего рассказывать. Я с молодости живу здесь, на Атлантиде. Когда Уолтер сказал, что мы будем жить здесь, я сперва расстроилась -- тогда это казалось мне невероятно скучным -- жить вдалеке от цивилизации, среди людей, которые старше меня на двадцать с лишним лет. На самом деле все оказалось не столь плохо -- здесь есть навьяры. Когда они заняты -- я сижу в библиотеке, с Мари, или смотрю фильмы в Игнисе". ]];
 
            end;
 
        end};
 
		{tag="sabotage", "Вы знаете, что пожар в Игнисе - следствие саботажа?", function(s)
 
			atl_lfc_panic = atl_lfc_panic + 1;
 
			atl_rep_darkstar = atl_rep_darkstar - 1;
 
			rel_walter = rel_walter - 1;
 
			rel_anna = rel_anna - 1;
 
			return [[Анна удивленно смотрит на вас: "Зачем вы это говорите? Кому может прийти в голову подобное?" ]];
 
		end};
 
		{tag="ignis_what", "Вы знаете, что произошло в Игнисе?", [[Анна отрицательно качает головой: "Мне почти ничего неизвестно. Поговорите с Даркстаром или Райтом. Или спросите моего брата, Уолтера. Я думаю он в курсе". ]]};
 
        {always=true, "У меня есть несколько вопросов.", [[Анна отвечает: "Да, я слушаю".]], code [[ psub('ask_more'); ]]};
 
		{always=true, "Я пойду", [[Анна прощается с вами: "До встречи". ]], code [[ back(); ]]};
 
	};
 
};
 
 
char_learr_atlantis_dlg = dlg {
 
	var {
 
		state = 0;
 
        lfc_dialog = false;    
 
        sabotage_explained = false;
 
	};
 
	nam = "Леарр";
 
	disp = "Леарр";
 
	entered = function(s)
 
        if (atl_lfc_state == 1 and not s.lfc_dialog) then
 
            s.lfc_dialog = true;
 
            pon('sabotage', 'ignis_what');
 
        elseif (atl_lfc_state ~= 1) then
 
            poff('sabotage', 'ignis_what');
 
        end;    
 
    
 
		if (s.state == 0) then
 
			if (char_learr_atlantis.offended) then
 
				psub("offended");
 
				return [[Леарр поворачивается к вам, плавники ее становятся ярко-фиолетовыми. Она рычит: "Прриветсствую, монсстрр. Мы говоррить-будем?" ]];
 
			else
 
				psub("pre_iof");
 
				return [[Леарр поворачивается к вам, плавники ее принимают едва заметный сине-зеленый оттенок, а она говорит: "Я прриветсствую тебя-he'vji'a'rr". ]];
 
			end;
 
		elseif (s.state == 1) then
 
			s.state = 2;
 
			psub("after_iof");
 
			if (atl_iof_learr_suit) then
 
				return [[При виде вас, плавники Леарр меняют цвет на ярко-зеленый. Она плавно опускает руки вниз и слегка наклоняется вперед. Выпрямившись, она произносит: "Я благодарю тебя. Мне твоя-идея-понравилась". ]];
 
			else
 
				return [[При виде вас, плавники Леарр меняют цвет на ярко-зеленый. Она плавно опускает руки вниз и слегка наклоняется вперед. Выпрямившись, она произносит: "Я благодарю тебя". ]];
 
			end;
 
		else
 
            if (rel_learr < 0) then
 
                if (char_learr.on_books == 0) then pon("on_books") end;
 
            else
 
                if (char_learr.on_books < 2) then pon("on_books") end;
 
            end;
 
            
 
            poff('iyh1', 'iyh4', 'iyh5');
 
            if (atl_iyh_state == 1) then
 
                pon('iyh1');
 
            elseif (atl_iyh_state == 2 and ArrayUtils.indexOf(pl.party, 'learr') == 0) then
 
                pon('iyh2');
 
			elseif (atl_iyh_state == 4) then
 
				pon("iyh4");
 
			elseif (atl_iyh_state == 5) then
 
				pon("iyh5");
 
			end;
 
			psub("generic");
 
			if (rel_learr > 0) then
 
				return [[Леарр поворачивается к вам, плавники ее принимают сине-зеленый оттенок, а она говорит: "Я рада-видеть тебя". ]];
 
			else
 
				return [[Леарр поворачивается к вам, плавники ее принимают едва заметный сине-зеленый оттенок, а она говорит: "Я приветствую тебя-he'vji'a'rr". ]];
 
			end;
 
		end;
 
	end;
 
	phr = {
 
		{tag='offended'};
 
		{"Монстр?", [[Леарр молча кивает. Оттенок головных плавников на мгновение сменяется на желтый, но затем снова становится фиолетовым: "Ты так-назвал меня. Мы будем-дальше-монстрами-называть друг-друга?" ]], code [[ psub('offended_yes_no') ]]};
 
		{tag='offended_yes_no'};
 
		{"Не думаю", [[Леарр кивает, ее плавники медленно теряют цвет. Она говорит: "Я слушаю тебя. Ты говори". ]], code [[ 
 
            char_learr_atlantis_dlg.state = 1;
 
            walk('atl_iof_intro'); 
 
        ]]};
 
		{"От этого суть не изменится, чудище", [[Леарр скалится, показывая блестящие острые зубки: "Ты убиррайся, пока я тебя не ссъела". ]], code [[ 
 
			char_learr_atlantis_dlg.state = 1;
 
			walk('atl_iof_intro'); 
 
		]]};
 
		{tag='pre_iof'};
 
		{"He'vji'a'rr?", [[Леарр кивает: "Мы так-наззываем пришшедшших-сс-поверхноссти-васс". ]]};
 
		{"Я хотел кое-что спросить", [["Ты говорри", - просит Леарр. ]], code [[ 
 
			char_learr_atlantis_dlg.state = 1;
 
			walk('atl_iof_intro'); 
 
		]]};
 
		{tag="after_iof"};
 
		{"Рад, что смог помочь", [[Леарр кивает, все еще находясь в явном возбуждении: "Ты говоррить-пришшел? Ты говорри". ]], code [[ psub("generic"); ]]};
 
		{"У меня не было выбора", [[Леарр непонимающе смотрит на вас, однако говорит: "Я благодаррю тебя. Ты говорри".
 
		]], code [[ rel_learr = rel_learr - 1; psub("generic"); ]]};
 
		{tag="generic"};
 
		{tag="iyh1", "Расскажи о вашем конфликте с Дипатреанотром.", [[Леарр начинает рассказывать, активно жестикулируя: "Рреликвия нессколько-дней-наззад-изз-нашшего-хррама-прропала. Na'vji'a'yhe'dyp'atre'anot'rr вззяли нашшу-рреликвию! Они потом-в-наш-город-пришли и требовали-вернуть их-реликвию! Мы не-брали ее и это-сказали им!" - Леарр недовольно топает и шипит, - "Они нам-не-верят! Они украли нашу-вещь и не-верят нам!" ]], code [[ atl_iyh_learr_spoken = true; ]]};
 
        {tag="iyh2", "Я отправляюсь в храм Дипатреанотра. Мне не помешает твоя помощь.", [[Плавники Леарр принимают фиолетовый оттенок: "He'vji'a'rr нельзя туда!"]], code [[ psub("join_me"); ]]};      
 
		{tag="iyh4", "Здесь неподалеку есть старый навьярский храм. Я прошу разрешения посетить его.", [[Леарр задумчиво произносит: "He'vji'a'rr нельзя-туда... Я место-не-знаю".^Немного постояв в задумчивости, Леарр восклицает: "Мы-вместе туда-пойдем! Ривеерр это-не-одобрит, но я с-ним-поговорю". ]], code [[ psub("iyh_agree"); ]]};
 
        {tag="sabotage", false, "Ты знаешь, что пожар начался из-за саботажа?", [[Леарр непонимающе крутит головой: "Я что-ты-говоришь-не-понимаю. Что саботаж?" ]], code [[ poff("ignis_what");psub("sabotage_explain"); ]]};
 
        {tag="ignis_what", false, "Ты знаешь, почему начался пожар в Игнисе?", [[Леарр неуверенно пожимает плечами: "Я ты-лучше-знаешь-думаю. Ты расскажешь?"]], code [[ psub("sabotage_reason"); ]]};
 
        {tag="books", false, "[Показать на книгу]Ты читаешь наши книги?", function(s)
 
            if (rel_learr < 0) then
 
                char_learr.on_books = 1;
 
                return [[Леарр неохотно отвечает: "Я иногда-читаю". Она явно не хочет говорить с вами об этом сейчас. ]];
 
            else
 
                char_learr.on_books = 2;
 
                psub("more_on_books");
 
                return [[Леарр отвечает: "Я иногда-читаю". Она опускает глаза на книгу, потом смотрит на вас. Немного подумав, она отвечает, как-бы нехотя: "Я не-умею-ваш-язык-читать. Я пытаюсь-учусь. Мари помогает". ]];
 
            end;
 
        end};
 
		{"Я пойду", [[Плавники Леарр медленно теряют цвет и она прощается с вами: "Ты воззврращщайсся". ]], code [[back();]]};
 
        {tag="join_me"};
 
        {"Я не собираюсь входить внутрь, но мне нужно осмотреть его окрестности.", [[Цвет плавников Леарр меняется на оранжевый и затем на желтый. Она соглашается: "Я с-тобой-пойду. Я давно-в-Ираафаанотре-не-была". ]], code [[
 
            lifeon("char_learr");
 
            table.insert(pl.party, 'learr');
 
            pret();
 
        ]]};
 
        {"Для этого ты мне и нужна.", [[Цвет плавников Леарр меняет цвет на синий. Она соглашается: "Я согласна. Я с-тобой-пойду". ]], code [[
 
            lifeon("char_learr");
 
            table.insert(pl.party, 'learr');
 
            pret();
 
        ]]};
 
        {tag="sabotage_explain"};
 
        {"Кто-то из работников станции устроил пожар.", [[Леарр непонимающе смотрит на вас: "Я зачем-не-понимаю". ]], code [[char_learr_atlantis_dlg.sabotage_explained = true; pon("explanation2", "avoid");]]};
 
        {tag="explanation2", false, "Он сделал это специально с какой-то собственной целью.", [[Леарр все еще не понимая переспрашивает: "Зачем?"]]};
 
        {"Не думаю, что есть смысл об этом еще говорить.", function(s)
 
            if (char_learr_atlantis_dlg.sabotage_explained) then
 
                return [[Леарр кивает: "Я благодарю-за-объяснение тебя". ]];
 
            else
 
                return [[Леарр кивает. ]];
 
            end;
 
        end};
 
        {tag="sabotage_reason"};
 
        {"Это был саботаж.", [[Леарр непонимающе крутит головой: "Я что-ты-говорришшь-не-понимаю. Что ссаботажж?" ]], code [[ poff("sabotage"); psub("sabotage_explain"); ]]};
 
        {"Я не знаю. Но хотел бы знать", [[Леарр разочарованно вздыхает: "Ты ессли-уззнаешшь-рассскажжи". ]], code [[psub("generic");]]};
 
        {tag="more_on_books"};
 
        {"Я могу помочь?", [[Леарр кивает: "Я думаю-ты-дрругим-делом-ззанят. Я не-хчочу-мешшать". ]], code[[ char_learr.on_books = 3; pret(); ]]};
 
        {"Давно ты этим занимаешься?", [[Леарр кивает: "Я с-ссамого-пррибытия-вашши-книги-учуссь-читать. Я надеюссь-вссе-пойму ссо-врременем". ]]};
 
        {"Как у тебя успехи?", [[Леарр смущенно отвечает: "Я ещще-многое-не-понимаю. Но я ссо-врременем-пойму-надеюссь". ]]};
 
        {"Давай поговорим о другом.", [[Леарр кивает: "Ты говорри". ]], code [[pret();]]};
 
        {tag="legend2", empty=code [[back();]]};
 
        {"Значит, вы не брали реликвию?", [[Леарр недовольно шипит: "Ты тожже-мне-не-верришшь?! Ухходи!"]]};
 
        {"У тебя есть идеи, куда могла пропасть их реликвия?", [[Леарр отрицательно качает головой: "Нет". ]]};
 
		{tag="iyh_agree"};
 
		{"Я согласен. Только так мы докажем Дипатреанотру, что вы ни при чем.", [[Леарр отвечает: "Ты сообщщи, когда готов-будешшь. Мы поззжже-поговоррим". ]], code [[ 
 
			lifeon("char_learr");
 
			table.insert(pl.party, 'learr');
 
			atl_iyh_state = 6; 
 
			back(); 
 
		]]};
 
		{"Лучше я отправлюсь один.", [[Леарр недовольно шипит: "Не взздумай! Ты ссебе, мне и Ry'vee'rr-у ххужже ссделаешшь". ]]};
 
	};
 
};
 
 
char_aikerjarr_dlg = dlg {
 
	var {
 
		state = 0;
 
        lfc_dialog = false;      
 
	};
 
	nam = "Аикерьярр";
 
	dsc = function(s)
 
        if (atl_lfc_state == 1 and not s.lfc_dialog) then
 
            s.lfc_dialog = true;
 
            pon('sabotage', 'ignis_what');
 
        elseif (atl_lfc_state ~= 1) then
 
            poff('sabotage', 'ignis_what');
 
        end;
 
        if (s.state == 0) then
 
            psub("first_meeting");
 
            return [[Перед вами стоит высокий стройный навьяр. Серебристая чешуя сверкает в свете электрических ламп. Неприязненный взгляд его зеленых глаз направлен на вас. Существо одето в темно-зеленые облегающие штаны и куртку из водорослей. В правой руке навьяр держит острозаточенное коралловое копье. ]];
 
		elseif (s.state == 1) then
 
			psub("generic");
 
		
 
            poff('iyh1', 'iyh2', 'iyh4', 'iyh5');
 
            if (atl_iyh_state == 1) then
 
                pon('iyh1');
 
            elseif (atl_iyh_state == 2 and not atl_iyh2_aikeryarr_spoken) then
 
                pon('iyh2');
 
			elseif (atl_iyh_state == 4) then
 
				pon("iyh4");
 
			elseif (atl_iyh_state == 5) then
 
				pon("iyh5");
 
			end;
 
		end;
 
		return [[Аикерьярр презрительно смотрит на вас, не говоря ни слова. ]];
 
	end;
 
	phr = {
 
        {tag = "first_meeting"};
 
        {always = "true", "Ты Аикерьярр?", [[Навьяр нехотя отвечает: "I'yhe'Aike'rya'yhe'iraa'pha-anot'rr". ]], code [[ char_aikerjarr_dlg.state = 1; psub("first_meeting_2a"); ]]};
 
        {always = "true", "Добрый день.", [[Навьяр нехотя отвечает: "I'yhe'Aike'rya'yhe'iraa'pha-anot'rr vta'lyt'nn ty'yhe'he'vji'a'rr". ]], code [[ char_aikerjarr_dlg.state = 1; psub("first_meeting_2b"); ]]};
 
        {always = "true", "Приветствую.", [[Навьяр нехотя отвечает: "I'yhe'Aike'rya'yhe'iraa'pha-anot'rr vta'lyt'nn ty'yhe'he'vji'a'rr". ]], code [[ char_aikerjarr_dlg.state = 1; psub("first_meeting_2b"); ]]};
 
        {tag="first_meeting_2a"};
 
        {always = "true", "Нам нужно поговорить.", [[Навьяр надменно бросает: "I'rr vtre'za'nn he'vja'a'za'rr".]], code [[ char_aikerjarr_dlg.state = 1; psub("first_meeting_3a");]]};
 
        {tag="first_meeting_2b"};
 
        {always = "true", "Я тебя не понимаю", [[Навьяр довольно ухмыляется: "Ty'rr zee'vee'nn". ]], code [[char_aikerjarr_dlg.state = 1; psub("first_meeting_2a");]]};
 
        {always = "true", "Кончай дурить, я знаю, что ты меня понимаешь", [[Навьяр скалит зубы: "Ты-ххевьярр так-ссо-мной-не-говорри". ]], code [[char_aikerjarr_dlg.state = 1; psub("first_meeting_3b");]]};
 
        {always = "true", "Я приду позже", [[Навьяр довольно ухмыляется: "Ty'rr zee'vee'nn". ]], code [[ back(); ]]};
 
        {tag="first_meeting_3a"};
 
        {always = "true", "I'rr vtre'za'nn na'vja'za'rr. Нам все еще нужно поговорить. ", [[Навьяр вздыхает: "Ty'rr не-отсстанет. I'rr тебя-сслушшает"]], code [[ char_aikerjarr_dlg.state = 1; psub("generic"); ]]};
 
        {"Нам все еще нужно поговорить", [[Навьяр надменно бросает: "I'rr vtre'za'nn he'vja'a'za'rr".]], code [[ back(); ]]};
 
        {always = "true", "Я приду позже", [[Навьяр довольно ухмыляется: "Ty'rr zee'vee'nn". ]], code [[ back(); ]]};
 
        {tag="first_meeting_3b"};
 
        {always= "true", "Значит, ты все-таки меня понимаешь. У меня есть вопросы.",  [[Навьяр вздыхает: "Ty'rr не-отсстанет. I'rr тебя-сслушшает"]], code [[char_aikerjarr_dlg.state = 1; psub("generic")]]};
 
        {always= "true", "Значит, ты все-таки меня понимаешь. Хватит тратить мое время.", [[Навьяр недовольно рычит: "Ты говорри". ]], code [[char_aikerjarr_dlg.state = 1; psub("generic")]]};
 
        {always= "true", "Значит, ты все-таки меня понимаешь, чертов рыбень. Теперь слушай и отвечай.", [[Навьяр стучит копьем об пол и отворачивается от вас. ]], code [[back();]]};
 
		{tag = "generic"};
 
        {tag = "sabotage", "Ты знаешь, что пожар начался из-за саботажа?", [[Аикерьярр лишь слегка усмехается, но не удостаивает вас ответом. ]]};
 
        {tag = "ignis_what", "Ты знаешь, почему начался пожар в Игнисе?", [[Аикерьярр лишь слегка усмехается, но не удостаивает вас ответом. ]]};
 
		{tag="iyh1", "Расскажи о вашем конфликте с Дипатреанотром.", [[Аикерьярр недовольно смотрит на вас:"He'vji'a'rr не-помочь".^Немного подумав, он рассказывает: "Na'vji'a'yhe'dyp'atre'anot'rr говоррить yhe мы украссть реликвия-изз-ихх-ххррама", -- Аикерьярр злобно стучит зубами и в ярости сжимает кулаки, -- "Мы не-делали-этого-ссказзали им! Но они в-ответ-на-нашш-ххррам-напали и нашши-рреликвии-вззяли!" ]], code [[ atl_iyh_learr_spoken = true; ]]};
 
        {tag="iyh2", "Я собираюсь в храм Дипатреанотра", [[Аикерьярр пожимает плечами: "Ты туда-не-идешь. Ты спроси Ривеерра".]], code [[ atl_iyh2_aikeryarr_spoken = true; psub("on_iyh2"); ]]};      
 
        {tag="iyh4", "Неподалеку отсюда есть старый храм навьяров. Я прошу разрешения посетить его.", [[
 
            Аикерьярр кивает: "Я не-понимаю, hyd это связано с-текущей-ситуацией. Ты узнай e тогда-приходи"
 
        ]], code [[ back(); ]]};      
 
		{"Я вернусь позже", [[Аикерьярр отворачивается от вас, даже не удостоив ответом. ]], code [[back(); ]]};
 
	};
 
};
 
 
char_ryveerr_dlg = dlg {
 
	var {
 
		state = 0;
 
        lfc_dialog = false;
 
	};
 
	nam = "Ривеерр";
 
	disp = "Ривеерр";
 
	entered = function(s)
 
        poff("questions");   
 
        if (atl_rep_dyp < 0) then
 
            if (char_ryveerr.atlantis_asked == 0) then pon("on_atlantis", "questions"); end;
 
            if (char_ryveerr.learr_asked == 0) then pon("on_learr", "questions"); end;
 
            if (char_ryveerr.ryveerr_asked == 0) then pon("on_ryveerr", "questions"); end;
 
            if (atl_iof_learr_dead and char_ryveerr.aikerjarr_asked == 0) then pon("on_aikerjarr", "questions"); end;
 
        else
 
            if (char_ryveerr.atlantis_asked < 2) then pon("on_atlantis", "questions"); end;
 
            if (char_ryveerr.learr_asked < 2) then pon("on_learr", "questions"); end;
 
            if (atl_iof_learr_dead and char_ryveerr.learr_asked < 3) then pon("on_learr", "questions"); end;
 
            if (char_ryveerr.ryveerr_asked < 2) then pon("on_ryveerr", "questions"); end;
 
            if (atl_iof_learr_dead and char_ryveerr.aikerjarr_asked < 2) then pon("on_aikerjarr", "questions"); end;
 
        end;
 
        if (atl_lfc_state == 1 and not s.lfc_dialog) then
 
            s.lfc_dialog = true;
 
            pon('sabotage', 'ignis_what');
 
        elseif (atl_lfc_state ~= 1) then
 
            poff('sabotage', 'ignis_what');
 
        end;
 
           
 
        if (s.state == 0) then
 
            s.state = 1;
 
            psub("first_meeting");
 
            return [[Перед вами стоит навьяр. Серо-зеленая чешуя, несколько более темная, чем у Леарр блестит в свете электрических ламп. Красно-оранжевые глаза внимательно смотрят на вас. Он одет в темно-зеленые облегающие шорты и куртку из водорослей. Навьяр приветствует вас: "Ривеерр-из-Дипатреанотра рад-видеть тебя". ]];
 
        elseif (atl_iof_completed and char_ryveerr.iof_reaction == 0) then
 
            if (atl_iof_learr_dead) then
 
                psub("iof_learr_dead");
 
                return [[Плавники Ривеерра окрашиваются синим. Он произносит: "Хевьяр-ты не-помог Леарр". ]];
 
            elseif (atl_iof_learr_suit) then
 
                psub("iof_learr_suit");
 
                return [[Ривеерр благодарит вас: "Дрейк-ты хорошо-придумал. Я рад, что Леарр-из-Ираафаанотра жива". ]];
 
            else
 
                psub("iof_learr");
 
                return [[Ривеерр сообщает: "Я рад, что никто-в-Игнисе-не-умер". ]];
 
            end;
 
        else
 
            psub("generic");
 
            if (s.state == 1) then
 
                poff('iyh1', 'iyh2');
 
                if (atl_iyh_state == 1) then
 
                    pon('iyh1');
 
                elseif (atl_iyh_state == 2 and not atl_iyh2_ryveerr_spoken) then
 
                    pon('iyh2');
 
                elseif (atl_iyh_state == 4) then
 
                    psub("situation");
 
                elseif (atl_iyh_state == 5) then
 
                    pon("legend");
 
                end;
 
            elseif (s.state == 2) then
 
                if (atl_iyh_state == 6) then
 
                    if (atl_iof_learr_dead) then
 
                        pon("take_aikerjarr");
 
                    else
 
                        pon("take_learr");
 
                    end;
 
                end;
 
                pon("legend2");
 
            end;
 
            return [[Ривеерр оборачивается к вам: "Ты говори". ]];
 
        end;      
 
	end;
 
	phr = {
 
        {tag="first_meeting"};
 
        {"Мое имя Дэвид Дрейк. Рад знакомству.", [[Плавники Ривеерра окрашиваются в зеленый: "Ты-Уильяма-сын"]], code[[psub("first_meeting_2");]]};
 
        {"Мое имя Дэвид Дрейк.", [[Плавники Ривеерра окрашиваются в зеленый: "Ты-Уильяма-сын"]], code[[psub("first_meeting_2");]]};
 
        {tag="first_meeting_2"};
 
        {"Да, все верно.", [[Ривеерр: "Я рад-помочь тебе. Ты говори"]], code [[psub("generic");]]};
 
        {"Я хотел кое-что спросить. ", [[Ривеерр: "Ты говори"]], code [[psub("generic");]]};
 
        {tag="iof_learr_dead"};
 
        {"Я сделал все, что мог.", [[Ривеерр кивает: "Мне жаль, что ты-помочь-Леарр-не-смог". Через некоторое время он приглашает: "Ты говори". ]], code [[ psub("generic"); ]]};
 
        {"Я пришел говорить о другом. ", [[Ривеерр отворачивается от вас. ]], code [[
 
            back();
 
        ]]};
 
        {tag="iof_learr_suit"};
 
        {"Я сделал то, что был должен.", [[Ривеерр кивает и приглашает вас: "Ты говори". ]], code [[psub("generic");]]};
 
        {tag="iof_learr"};
 
        {"Я тоже. ", [[Ривеерр кивает и приглашает вас: "Ты говори". ]], code [[psub("generic");]]};
 
		{tag="generic"};
 
		{tag="iyh1", false, "Расскажи о конфликте Ираафаанотра с Дипатреанотром.", [[Ривеерр рассказывает вам: "Na'vji'a'yhe'iraa'pha’anot’rr нашу-реликвию-украли. Мы тем-же-ответили им". ]], code [[ psub("more_on_relic"); ]]};
 
        {tag="iyh2", "Я собираюсь в храм Дипатреанотра.", [[Плавники на голове Ривеерра меняют цвет на сине-фиолетовый: "Ты туда-не-идешь".]], code [[ atl_iyh2_ryveerr_spoken = true; psub("on_iyh2"); ]]};      
 
        {tag="sabotage", [[Ты знаешь, что пожар начался из-за саботажа?]], function(s)
 
            if (atl_iof_learr_dead) then
 
                return [[Ривеерр недовольно отвечает: "Это-не-значимо. Значимо, что Леарр мертва". ]];
 
            else
 
                return [[Ривеерр спокойно отвечает: "Ты со-мной-про-это-не-говори. Это-ваши-дела. Я не-хочу-ими-заниматься". ]];
 
            end;
 
        end};
 
        {tag="ignis_what", "Ты знаешь, почему начался пожар в Игнисе?", function(s)
 
            if (atl_iof_learr_dead) then
 
                return [[Ривеерр недовольно отвечает: "Это-не-значимо. Значимо, что Леарр мертва". ]];
 
            else
 
                return [[Ривеерр спокойно отвечает: "Ты со-мной-про-это-не-говори. Это-ваши-дела. Я не-хочу-ими-заниматься". ]];
 
            end;
 
        end};
 
        {always=true, "Я хочу кое что спросить.", [[Ривеерр кивает: "Ты спрашивай". ]], code [[ psub("questions"); ]]};
 
        {always=true, "Я хочу кое-что спросить.", [[Ривеерр кивает: "Ты спрашивай". ]], code [[ psub("questions"); ]]};
 
        {always=true, "Я пойду.", [[Ривеерр прощается с вами: "Мы позже-поговорим". ]], code [[ back(); ]]};
 
        {tag="questions"};
 
        {tag="on_atlantis", "Что ты думаешь об Атлантиде?", function(s)
 
            if (atl_rep_dyp < 0) then
 
                char_ryveerr.atlantis_asked = 1;
 
                return [[Ривеерр отвечает: "Хевьяры-с-Атлантиды уже-помогли-нам-немало. Я надеюсь-на-продолжение-плодотворного-сотрудничества".]];
 
            else
 
                char_ryveerr.atlantis_asked = 2;
 
                return [[Ривеерр отвечает: "Хевьяры-с-Атлантиды уже-помогли-нам-немало. Я надеюсь-на-продолжение-плодотворного-сотрудничества. Я продолжаю-доказывать-пользу-нашего-с-вами-хевьярами-общения и многие-в-Дипатреанотре уже-согласны-со-мной. Если план-Дрейка успешен-будет, то наша-благодарность будет-неизмерима. Хевьяры наследие-древних-ищут, как легенды гласят".]];
 
            end;
 
        end};
 
        {tag="on_aikerjarr", "Что ты думаешь об Аикерьярре?", function(s)
 
            if (atl_rep_dyp < 0) then
 
                char_ryveerr.aikerjarr_asked = 1;
 
                return [[Ривеерр отказывается отвечать:"Я не-говорю-с-тобой-об-этом". ]];
 
            else
 
                char_ryveerr.aikerjarr_asked = 2;
 
                return [[Плавники Ривеерра окрашиваются фиолетовым и он отвечает: "Этот все-сделает-нас-из-себя-вывести. Я считаю-он-войны-хочет-с-Атлантидой. Я не-хочу-этого, но в-Дипатреанотре-некоторые хотят. Я не-знаю-что-получится". ]];
 
            end;
 
        end};
 
        {tag="on_ryveerr", "Расскажи о себе.", function(s)
 
            if (atl_rep_dyp < 0) then
 
                char_ryveerr.ryveerr_asked = 1;
 
                return [[Ривеерр отказывается отвечать:"Я не-говорю-с-тобой-об-этом". ]];
 
            else
 
                char_ryveerr.ryveerr_asked = 2;
 
                return [[Плавники Ривеерра окрашиваются синим и он отвечает: "Я-Дипатреанотра-посол. Я желаю-с-хевьярами-долгого-и-плодотворного-сотрудничества. Мое-мнение большинство-в-Дипатреанотре-разделяют, поэтому я здесь". ]];
 
            end;
 
        end};
 
        {tag="on_learr", "Что ты думаешь о Леарр?", function(s)
 
            if (atl_rep_dyp < 0) then
 
                char_ryveerr.learr_asked = 1;
 
                return [[Ривеерр отказывается отвечать:"Я не-говорю-с-тобой-об-этом". ]];
 
            else
 
                if (atl_iof_learr_dead) then
 
                    char_ryveerr.learr_asked = 3;
 
                    return [[Плавники Ривеерра окрашиваются голубым и он отвечает: "Я понимаю ее-гибель-насчастный-случай, но ситуацию-легче-не-делает. Дипатреанотр-мы одну-из-немногих-друзей-в-Ираафаанотре-потеряли". ]];
 
                else
 
                    char_ryveerr.learr_asked = 2;
 
                    return [[Плавники Ривеерра окрашиваются зеленым и он отвечает: "Леарр из Ираафаанотра. Мы часто-разногласия с-ними, но с-Леарр всегда-понимание-находим. Это с-Ираафаанотр-отношениям-помогает и хорошо-есть. Я что-она-на-Атлантиде-рад и друг-с-другом-и-с-вами-что-мы-можем общаться-постоянно. Это с-вами-нашим-отношениям-помогает и тоже-хорошо-есть".]];
 
                end;
 
            end;
 
        end};
 
        {always=true, "Давай поговорим о другом.", [[Ривеерр кивает: "Ты говори". ]], code [[ pret(); ]]};
 
		{tag="more_on_relic"};
 
		{"Тем же?", [[Ривеерр щелкает зубами: "Мы светодиск-из-их-храма-забрали. Мы вернем его, ysl они вернут нашу-реликвию". ]]};
 
		{"Вы уверены, что кража - их рук дело?", [[Ривеерр уверенно кивает: "Только-они могли сделать. Я расскажу", -- Ривеерр на небольшое время замолкает, собираясь с мыслями, после чего продолжает: "Na'vji'a'yhe'iraa'pha’anot’rr ночью-в-наш-храм-пришли и охранников-убили. Они реликвию-украли и в-свой-город-унесли". ]], code [[ psub("why"); ]]};
 
		{tag="why", empty=code [[ atl_iyh_ryveerr_spoken = true; psub("generic"); ]]};
 
		{"Вы уверены, что это они?", [[Ривеерр отвечает: "Другой-никто не-мог-сделать". ]]};
 
        {"Как убили охранников?", [[Ривеерр отвечает: "Их копьями-проткнули. Мы раны-видели". ]]};
 
		{tag="situation"};
 
		{"Мы знаем об одном древнем храме неподалеку отсюда.", [[Ривеерр пожимает плечами: "Я не-понимаю, hyd это поможет нам". ]], code [[ psub("cancel");]]};
 
		{always=true, "Я пойду.", [[Ривеерр прощается с вами: "Мы позже-поговорим". ]], code [[ back(); ]]};
 
		{tag="legend"};
 
		{"Мы знаем где ваша реликвия. Мы знаем об одном древнем храме, где живет затмевающий свет. [Кратко пеесказать легенду]", [[
 
			"Я знаю эту-легенду. Вы возможно-правы. В-храм вам-нельзя-идти. Это наше-священное-место. he'vji'a'rr не-место-там. Затмевающий-свет не-враг-нам. Его нельзя-тревожить".
 
		]], code [[ psub("legend_more")]]};
 
		{always=true, "Я пойду.", [[
 
			Ривеерр прощается с вами: "Мы позже-поговорим".
 
		]], code [[ back(); ]]};
 
		{tag="legend_more"};
 
		{"Вы могли бы сопровождать нас. ", [[
 
			"В-храм нельзя-вам".
 
		]], code [[ 
 
			char_ryveerr_dlg.state = 2;
 
		]]};
 
		{always=true, "Я вернусь позже", [[Ривеерр прощается с вами: "Мы поззжже-поговоррим". ]], code [[ back(); ]]};
 
		{tag="legend2"};
 
		{tag="take_learr", false, "Леарр согласилась сопровождать нас в храм. ", [[
 
			"Леарр'yhe'iraa’pha’anot’rr. Не-уверен-я что-могу-доверять-ей. Я подумать-должен..." - Некоторое время Ривеерр стоит неподвижно, задумавшись. Наконец, скрестив руки на груди, Ривеерр продолжает: "Я согласен".
 
		]], code [[ atl_iyh_state = 6; back(); ]]};
 
		{tag="take_aikerjarr", false, "Аикерьярр согласился сопровождать нас в храм", [[
 
			"Аикерьярр'yhe'iraa’pha’anot’rr. Не-уверен-я что-могу-доверять-ему. Я подумать-должен..." - Некоторое время Ривеерр стоит неподвижно, задумавшись. Наконец, скрестив руки на груди, Ривеерр продолжает: "Я согласен".
 
		]], code [[ atl_iyh_state = 6; back(); ]]};
 
		{always=true, "Я вернусь позже", [[Ривеерр прощается с вами: "Мы поззжже-поговоррим". ]], code [[ back(); ]]};
 
        {tag="on_iyh2"};
 
        {"Я не собираюсь внутрь храма, мне нужно лишь осмотреть окрестности.", [[Ривеерр кивает: "Я это-разрешу. Ты иди". ]], code [[ pret(); ]]};
 
        {tag="learr_comes", "Со мной отправится Леарр.", [[Ривеерр отвечает: "Ты туда-не-идешь. He'vji'a'rr нельзя-в-храм". ]]};
 
	};
 
};
 
 
char_evans_dlg = dlg {
 
	var {
 
		state = 0;
 
	};
 
	nam = "Кристиан Эванс";
 
	disp = "Кристиан Эванс";
 
	entered = function(s)
 
		if (atl_lfc_state ~= 1) then
 
			poff('sabotage', 'ignis_what');
 
		end;
 
		
 
		if (atl_lfc_state == 1 and not s.lfc_dialog) then
 
			s.lfc_dialog = true;
 
			pon('sabotage', 'ignis_what');
 
		end;
 
		
 
		if (s.state == 0) then
 
			s.state = 1;
 
			psub("first_meeting");
 
			return [[Немолодой мужчина внимательно смотрит на вас через стекла старых очков. Он приветствует вас: "Добро пожаловать на нашу станцию. Я Кристиан Эванс, занимаюсь языком навьяров". ]];
 
		else
 
			psub("generic");
 
			return [[Кристиан Эванс приветствует вас: "Добрый день". ]];
 
		end;
 
	end;
 
	phr = {
 
		{tag="first_meeting"};
 
		{"Я Дэвид Дрейк, очень приятно", [[
 
			Кристиан улыбается и отвечает: "Очень рад вас видеть. У вас есть вопросы? Я слушаю". ]], };
 
		{tag="generic"};
 
        {"Что вы можете рассказать о Леарр?", function(s)
 
            if (iof_learr_dead) then
 
                return [[Кристиан отвечает: "Пусть покоится с миром. не думаю, что ее кто-то сможет заменить -- она одна такая была, наверное, среди всех навьяров". ]];
 
            else
 
                return [[Кристиан отвечает: "С ней приятно иметь дело. Мы многое узнали о навьярах только благодаря ее открытости и желанию общаться с нами. Хотя Ривеерр тоже довольно дружелюбен, он чрезмерно осторожен при общении с нами. Леарр и сама интересуется нами и нашими достижениями -- большую часть времени она проводит в библиотеке и в Игнисе, читая наши книги и газеты и просматривая наши фото- и видеоархивы". ]];
 
            end;
 
        end};
 
        {tag="on_aikerjarr", false, "Что вы можете сказать об Аикерьярре?", [[Кристиан чешет подбородок: "Не знаю, почему Ираафаанотр отправил на Атлантиду этого... Наверное, было бы проще, не будь на Атлантиде вообще никого из Ираафаанотра. И безопаснее для наших отношений тоже. Этот... Да он словно намеренно пытается вывести тут всех из себя".]]};
 
        {"Что вы можете сказать об Ривеерре?", [[Кристиан задумчиво: "Из жителей Дипатреанотра, Ривеерр, наверное, лучше всех относится к нам. При том, что он достаточно отстранен, чувствуется, что он готов вкладывать силы в улучшение отношений между нами всеми -- Дипатреанотром, Атлантидой и Ираафаанотром". ]]};
 
        {"Что вы можете сказать о навьярах?", [[Кристиан отвечает: "Поразительные существа. Конечно, мы первый раз сталкиваемся с подобным и толком не знаем как себя вести и как стоит их изучать, но, как мне кажется, мы многого достигли -- мы знаем их язык, имеет доступ к их текстам и общаемся с их представителями практически на равных. Вообще, мы поразительно легко наладили с ними контакт -- они не стали воспринимать нас ни как богов, ни как дьяволов, как это случается с племенами людей в далеких от цивилизации местах. Они однозначно не так просты, как кажется, но мы пока не знаем в чем причина этого".]]};
 
		{tag="sabotage", "Вы знаете, что пожар в Игнисе - результат саботажа?", function(s)
 
			atl_lfc_panic = atl_lfc_panic + 1;
 
			atl_rep_darkstar = atl_rep_darkstar - 1;
 
			return [[Кристиан недовольно ворчит: "Если это так, то надо не на каждом углу кричать, а предоставить сведения Даркстару или Моро. Они найдут, как решить проблему". ]];
 
		end};
 
		{tag="ignis_what", "Вы знаете, что произошло в Игнисе?", [[Кристиан пожимает плечами: "Об этом вам лучше узнать у Райта или Даркстара. Я мало что знаю". ]]};
 
		{always=true, "Я пойду", [[Кристиан прощается с вами: "До встречи". ]], code [[ back(); ]]};
 
	};
 
};
 
 
char_winterlight_dlg = dlg {
 
	var {
 
		state = 0;
 
	};
 
	nam = "Сильвия Уинтерлайт";
 
	disp = "Сильвия Уинтерлайт";
 
	entered = function(s)
 
		if (atl_iyh_state == 4) then
 
			pon("legend");
 
		end;
 
		if (atl_lfc_state ~= 1) then
 
			poff('sabotage', 'ignis_what');
 
		end;
 
		if (atl_lfc_state == 1 and not s.lfc_dialog) then
 
			s.lfc_dialog = true;
 
			pon('sabotage', 'ignis_what');
 
		end;
 
		if (s.state == 0) then
 
			psub("first_meeting");
 
            s.state = 1;
 
			return [[Женщина лет тридцати-пяти--сорока с длинными темными волосами стоит, склонившись над картой и внимательно изучает ее. Увидев вас, она отвлекается от карты и проницательный взгляд ее серых глаз устремляется на вас. Она спрашивает: "Господин Дрейк? Я уже осведомлена о вашем прибытии, как видите. Мое имя Сильвия Уинтерлайт. Я химик и биолог на станции. По-крайней мере официально. На самом деле занимаюсь чем придется". ]];
 
		else
 
			psub("generic");
 
			return [[Сильвия отрывает взгляд от карты: "Приветствую, что вы хотели?" ]];
 
		end;
 
	end;
 
	phr = {
 
		{tag="first_meeting"};
 
        {"Рад знакомству. Я хотел бы кое что спросить.", [[Сильвия улыбается и кивает: "Конечно, господин Дрейк, я слушаю". ]], code [[ psub("generic"); ]]};
 
        {"Рад знакомству. Я хотел бы кое-что спросить.", [[Сильвия улыбается и кивает: "Конечно, господин Дрейк, я слушаю". ]], code [[ psub("generic"); ]]};
 
		{"Рад знакомству. Я чем-то могу быть полезен?", [[Сильвия улыбается и отвечает: "Вам лучше поговорить с госпожой Светловой, у нее наверняка найдется поручение для вас". ]], code [[ psub("generic"); ]]};
 
		{tag="generic"};
 
        {"Расскажите об Атлантиде,", [[Сильвия вздыхает: "Боюсь, я тут могу долго рассказывать -- мы с господином Райтом многое придумывали вместе -- в частности системы подачи кислорода, я же помогала в разработке Аэриса. Аэрис вообще довольно значительное достижение -- мы сумели адаптировать некоторые виды растений с поверхности к условиям станции. Конечно, пришлось потрудиться -- очень много энергии уходит на освещение и обогрев секции, но и результат себя оправдывает -- думаю, нам быстро надоело бы питаться одними морепродуктами, а так у нас есть практически все, что может предложить поверхность. Ну, кроме мяса. Также мы выращиваем там несколько видов водорослей -- некоторые производят кислород, другие идут в пищу, третьи отправляются прямиком в печь".]]};
 
        {"Расскажите о себе.", [[Сильвия усмехается: "Не думаю, что тут есть что-то интересное, но слушайте -- я едва закончила университет и была в поисках работы, когда встретилась с госпожой Светловой. Уж не знаю, что привлекло ее во мне, но она предложила мне работу. Я сперва удивилась -- с чего транспортной компании нанимать таких видных ученых как она? Да и зачем там такие как я? Но после беседы с господином Дрейком, я загорелась идеей обустроить автономную подводную станцию. Тогда планы не были столь грандиозны -- мы не предполагали покидать поверхность, но благодаря нашим с господином Райтом успехам мы смогли достичь этого. Тогда же я впервые встретила живого навьяра. Нет, госпожа Светлова рассказывала мне про них и даже показывала фотографии и рисунки, но увидеть подобное вживую ни с чем не сравнимо. И еще более странно, когда такое существо спокойно так тебя приветствует на твоем языке". ]]};
 
        --[[{tag="legend", false, "Ты можешь рассказать мне навьярскую легенду о скате?", [ [Сильвия кажется заинтересованной: "У навьяров их много, какую конкретно вы хотите услышать?" ] ], code [ [ psub("which_legend"); ] ]};]]
 
        {tag="sabotage", false, "Вы знаете, что пожар начался из-за саботажа?", function(s)
 
            atl_lfc_panic = atl_lfc_panic + 1;
 
            atl_rep_darkstar = atl_rep_darkstar - 1;
 
            if (atl_lfc_panic <= 2) then
 
                return [[Сильвия Уинтерлайт пожимает плечами: "Не поверю, чтобы кто-то это мог сделать". ]];
 
            elseif (atl_lfc_panic == 3) then
 
                return [[Сильвия Уинтерлайт удивленно смотрит на вас: "Вы не первый кто так говорит. Но кто это мог сделать?" ]];
 
            end;
 
        end;};
 
        {tag="ignis_what", false, "Вы знаете, что произошло в Игнисе?", [[
 
            "Крайней мало. Вам лучше поговорить с Райтом или Даркстаром".
 
        ]]};
 
		{always=true, "Я пойду.", [[Сильвия молча кивает и возвращается к своим делам. ]], code [[ back(); ]]};
 
		{tag="which_legend"};
 
		--TODO добавить несколько легенд
 
		{"Что-нибудь связанное с храмами и реликвиями", [[
 
			Сильвия задуиывается: _"Храмы, реликвии и скаты... Да, есть кое-что", -- она откидивыет волосы назад и продолжает: "Согласно этой легенде, хранителей одного из святилищ навьяров был могучий затмевающий свет по имени Излучающий Тьму. Это было в те времена, когда навьяры и затмевающие свет были связаны узами дружбы. Излучающий тьму был мудрым хранителем - он не только принимал священные реликвии на сохранение, но и многое знал о них - об их предназначении и истинной ценности. Однажды Излучающий Тьму узнает о необычнайно ценной реликвии, хранящейся в одном из городов и скрывающей в себе древние знания навьяров. Узнает он и о том, что живущие навьяры не в силах прочитать. Тогда он прибыл в город, чтобы просить навьяров отдать ему реликвию на сохранение. Но навьяры отказывают ему. Вернувшись в святилище, Излучающий Тьму придумал план. Ночью он пробрался в город и выкрал реликвию. Когда наутро навьяры обнаружили пропажу, они направились к Излучающему Тьму с требованием вернуть им реликвию. На это могучий затмевающий свет спросил их: ,,Знаете ли вы, что скрывает этот предмет?''^ -- кстати, в некоторых переводах я встречала слово ,,светодиск'', как описание реликвии. 
 
			,,Знания наших предков'', -- ответили навьяры. Излучающий Тьму продолжил: ,,Можете ли вы прочитать его?''^
 
			,,Нет'', --сказали навьяры. Тогда Излучающий Тьму рассказал им легенду о храме в глубинах, которую он прочитал из данной реликвии(Нам, кстати, так и не довелось получить хоть какой-либо целостный текст этой легенды), и сказал им: ,,Можете приходить сюда когда захотите и я расскажу вам то, что вы захотите знать. Но только, если реликвия ваша остается у меня''. Навьяры поняли, что если заберут реликвию, то навсегда утратят древние знания и согласились". 
 
		]], code [[ psub("more_on_legend"); ]]};
 
		{tag="more_on_legend"};
 
		{"Светодиск?", [[
 
			"Мы плохо понимаем, для чего они служат. У Светловой один такой был. Блестящий диск - сантиметров 10 в диаметре. Правда вот как их ,,читать''... В привычном понимании, по крайней мере, мы не понимаем. Если рассматривать их под микроскопом - там весьма характерный рисунок проступает. Почему светодиск? Мы не знаем - это навьяры их так называют".
 
		]]};
 
		{"Что за легенда о храме в глубинах?", [[
 
			"Мы только приблизительно знаем о ней - она постоянно упоминается в контексте других легенд и у нас есть фрагменты, которые нам рассказывали навьяры. Когда-то давно навьяры построили храм где-то в ущелье, но по какой-то причине были вынуждены покинуть его". 
 
		]]};
 
		{"Спасибо, я пойду", [[
 
			"До встречи. Если захотите еще древних сказаний послушать - приходите".
 
		]], code [[ atl_iyh_state = 5; psub('back'); ]]};
 
	};
 
};
 
 
char_jack_wright_atlantis_dlg = dlg {
 
	var {
 
		state = 0;
 
        lfc_dialog = 0;
 
	};
 
	nam = 'char_jack_wright_atlantis_dlg';
 
	disp = "Джек Райт";
 
	entered = function(s)
 
        if (rel_jack < 0) then
 
            if (char_wright.on_learr == 0) then pon("on_learr"); end;
 
            if (char_wright.on_leviathan == 0) then pon("on_leviathan"); end;
 
            if (char_wright.on_jack == 0) then pon("on_jack"); end;
 
        else
 
            if (char_wright.on_learr < 2) then pon("on_learr"); end;
 
            if (char_wright.on_leviathan < 2) then pon("on_leviathan"); end;
 
            if (char_wright.on_jack < 2) then pon("on_jack"); end;
 
        end;
 
    
 
        if (atl_lfc_state == 1 and not s.lfc_dialog) then
 
            s.lfc_dialog = true;
 
            pon('sabotage', 'ignis_what');
 
        elseif (atl_lfc_state ~= 1) then
 
            poff('sabotage', 'ignis_what');
 
        end;
 
 
		if (s.state == 0) then
 
			psub("business_or_no");
 
			return [[Джек отворачивается от Леарр, и обращается к вам: "Привет, ты по делу или просто так?" ]];
 
        elseif (atl_iof_completed and char_wright.iof_reaction == 0) then
 
            if (atl_iof_learr_suit) then
 
                psub("iof_learr_suit");
 
                return [[Джек откладывает книгу и встает с койки и обращается к вам: "Добрый день. Отличная идея, заставить Леарр надеть скафандр. Не знаю, как она справилась бы без него". ]];
 
            else
 
                psub("iof_learr");
 
                return [[Джек откладывает книгу и встает с койки и обращается к вам: "Добрый день. Рад тебя видеть. Не знаешь, как дела у Леарр?" ]];
 
            end;
 
        else
 
            psub("generic");
 
            return [[Джек откладывает книгу и встает с койки и обращается к вам: "Добрый день. Тебе что-то нужно?"]];
 
		end;
 
	end;
 
	phr = {
 
        {tag="iof_learr_suit"};
 
        {"Я рад, что все хорошо закончилось и никто не пострадал. ", [[Джек кивает: "У тебя есть какие-то вопросы?"]], code [[ psub("generic");]]};
 
        {tag="iof_learr"};
 
        {"Леарр в порядке, благодаря твоей помощи. ", [[Джек кивает: "Рад это слышать. У тебя есть какие-то вопросы?"]], code [[ psub("generic");]]};
 
        {"Я еще не говорил с ней. ", [[Джек кивает: "Надеюсь, с ней все хорошо. Тебе что-то нужно?"]], code [[ psub("generic"); ]]};
 
		{tag = "business_or_no"};
 
		{"Как тебе станция?", [[Джек не скрывая восхищения восклицает: "Невероятно! Трудно поверить в возможность такого -- полностью автономное подводное поселение. Я никогда на сомневался в таланте отца, но это выше всех моих ожиданий". ]]};
 
		{always = "true", "Я пришел поговорить с Леарр. ", function(s)
 
			if (char_learr_atlantis.offended) then
 
				return [[Джек ухмыльнулся: "Удачи, я подожду в главном зале", -- с этими словами, Джек выходит из зала. ]];
 
			else
 
				return [["Надеюсь, я вам не помешаю? В любом случае, я подожду в главном зале", -- с этими словами, Джек выходит из зала. ]];
 
			end;
 
		end, code [[ 
 
			remove('char_jack_wright_atlantis', 'atl_ignis_hall_a');
 
			back(); 
 
		]]};
 
        {tag="generic"};
 
        {tag="sabotage", "Ты знаешь, что пожар начался из-за саботажа?", [[Джек кивает: "Да, Даркстар сказал мне это. Он просил меня никому не говорить об этом и не вмешиваться в расследование. Я думаю, все подозреваемые, которых он назвал так или иначе связаны. Не случайно, все трое выступают в пользу закрытия станции. Надеюсь, Даркстар сообщит о результах расследования". ]], code [[poff("ignis_what");]]};
 
        {tag="ignis_what", "Ты знаешь, почему начался пожар в Игнисе?", [[Джек кивает: "Да, Даркстар сказал, что на станции саботажник. Он назвал нескольких подозреваемых, но просил никому не говорить. Он с тобой говорил об этом?"]], code [[poff("sabotage");psub("ignis");]]};
 
        {always=true, "Я хочу кое-что спросить.", [[Джек вопросительно смотрит на вас: "Я слушаю". ]], code [[ psub("more_questions"); ]]};
 
        {always=true, "Я пойду.", [[Джек прощается с вами: "До встречи", -- после  чего возвращается к своему занятию. ]]};
 
        {tag = "more_questions"};
 
        {tag="on_learr", "Что ты думаешь о Леарр?", function()
 
            if (rel_jack < 0) then
 
                char_wright.on_learr = 1;
 
                return [[Джек отказывается отвечать: "Не хочу это обсуждать".]];
 
            else
 
                char_wright.on_learr = 2;
 
                return [[Джек отвечает: "Я не так много с ней общался, однако, она производит приятное впечатление. Там в Игнисе она спрашивала меня про Атлантиду и Левиафан достаточно интересные вещи. Мне кажется, из нее бы вышел неплохой инженер".]];
 
            end;
 
        end};
 
        {tag="on_leviathan", "Как впечатления от Левиафана?", function()
 
            if (rel_jack < 0) then
 
                char_wright.on_leviathan = 1;
 
                return [[Джек отвечает: "Левиафан, без сомнения, превосходный корабль. Жаль, что ему не нашлось лучшего капитана". ]];
 
            else
 
                char_wright.on_leviathan = 2;
 
                return [[Джек не скрывает своего восхищения: "Никогда не видел ничего подобного. Неудивительно, что отец оставил жизнь на поверхности в пользу возможности создавать подобное здесь. Пока мы были в пути, я подробно изучил субмарину. Многие решения до сих пор кажутся мне невероятными - например, использование электричества в качестве движущей силы или наличие звуковой пушки. Я уже успел обсудить с отцом детали диагностических цепей. Это совершенно непостижимо, чтобы машина сама сообщала, что с ней что-то не так. И все это в одном месте". ]];
 
            end;
 
        end};
 
        {tag="on_jack", "Чем ты занимался все это время?", function()
 
            if (rel_jack < 0) then
 
                return [[Джек отказывается отвечать: "Не хочу это обсуждать".]];
 
            else
 
                return [[Джек отвечает: "Да, в общем-то, ничем. Отец оставил нам с матерью достаточно денег, чтобы мы могли ни в чем не нуждаться. Мать оплатила мое образование в том же университете, где учился отец. Получив диплом с отличием, я просто поставил его на полку. Не нашел дела по душе, да и необходимости не было. Позже, когда мать умерла, я вообще практически прекратил связи с внешним миром. Думаю, что хоть я и бросил идею найти отца, я все-таки продолжал надеяться -- практически все время я посвящал чтению газет со всех уголков света, в поисках известий о случившемся с Вестхейвен Трансоушен. Впрочем, как только первоначальный ажиотаж спал, никто толком и не писал о случившемся. "]];
 
            end;
 
        end};
 
        {"Вернемся к делу", [[Джек молча кивает. ]], code [[ pret(); ]]};
 
        {tag = "ignis"};
 
        {"Да.", [[Джек кивает: "Тогда ты и без меня все знаешь. Я думаю, все трое подозреваемых замешаны, но не хочу лезть в это дело". ]], code [[ pret(); ]]};
 
        {"Нет.", [[Джек на мгновение задумался. Потом снова заговорил: "Я не должен тебе этого говорить, наверное. Но все же. Даркстар подозревает Голдмана, Леруа и Джонса -- они все трое, вроде как, достаточно знают об устройстве станции и, опять же, все трое активно выступают за закрытие станции и возвращение на поверхность. От себя скажу, что не удивлюсь, если все трое в сговоре, но не буду судить поспешно". ]], code [[ pret(); ]]};
 
	};
 
};
 
 
char_legrand_dlg = dlg {
 
	var {
 
		state = 0;
 
	};
 
	nam = "Мари Легран";
 
	disp = "Мари Легран";
 
	entered = function(s)
 
		if (atl_lfc_state ~= 1) then
 
			poff('sabotage', 'ignis_what');
 
		end;
 
		
 
		if (atl_lfc_state == 1 and not s.lfc_dialog) then
 
			s.lfc_dialog = true;
 
			pon('sabotage', 'ignis_what');
 
		end;
 
		
 
		if (s.state == 0) then
 
			s.state = 1;
 
			psub("first_meeting");
 
			return [[
 
				Перед вами, склонившись над каким-то журналом сидит женщина лет сорока--сорока-пяти. Длинные темные волосы убраны в хвост. На носу очки в тяжелой оправе. Не обращая внимания на вас, она продолжает водить пальцем по строчкам, периодически делая какие-то пометки.
 
			]];
 
		else
 
			psub("generic");
 
			return [[
 
				Не обращая внимания на вас, Мари Легран продолжает водить пальцем по строчкам, периодически делая какие-то пометки.
 
			]];
 
		end;
 
	end;
 
	phr = {
 
		{tag="first_meeting"};
 
		{"Извините?", [[
 
			Женщина поднимает голову и отрывается от работы. Она выпрямляется и улыбаясь приветствует вас: "Добро пожаловать в библиотеку Атлантиды. Я Мари Легран"
 
		]], code [[psub("first_meeting_2"); ]]};
 
		{tag="first_meeting_2"};
 
		{"Я Дэвид Дрейк, рад знакомству", [[
 
			Она кивает и спрашивает вас: "Как вы нашли Левиафан?"
 
		]], code [[psub("first_meeting_3"); ]]};
 
		{tag="first_meeting_3"};
 
		{"Это долгая история", [[
 
			Мари Легран кивает: "Ладно, потом как-нибудь, если торопитесь"
 
		]], [[ psub("generic") ]]};
 
		{"Я нашел тайник отца со старыми схемами. Пришлось побегать, чтобы восстановить субмарину. Я чудом собрал все необходимое", [[
 
			Мари Легран удивленно смотрит на вас: "Удивительно. Скорее всего Уильям хотел, чтобы вы нашли Левиафан. Жаль, что вы прибыли слишком поздно. Когда он узнал про этот древний город, он собрал несколько помощников и отправился на Надежде на его поиски".
 
		]], code [[ pon("father_more");psub("generic"); ]]};
 
		{tag="generic"};
 
		{tag="father_more", false, "Кто отправился вместе с моим отцом?", [[
 
			"Немногие. Они вообще хотел отправиться вдвоем с Блэком, но Блэк уговорил Уильяма взять Джона Брауна и Дэмина Пина".
 
		]], code [[psub("more_people");]]};
 
		{tag="sabotage", false, "Вы знаете, что пожар в Игнисе начался из-за саботажа?", function(s)
 
			atl_lfc_panic = atl_lfc_panic + 1;
 
			atl_rep_darkstar = atl_rep_darkstar - 1;
 
			if (atl_lfc_panic <= 2) then
 
				return [[
 
					Мари Легран удивленно смотрит на вас: "Откуда вы знаете? Кому такое в голову придти может?"
 
				]];
 
			elseif (atl_lfc_panic == 3) then
 
				return [[
 
					Мари Легран удивленно смотрит на вас: "Вы понимаете, что говорите? Кому такое в голову придти может?"
 
				]];
 
			end;
 
		end};
 
		{tag="ignis_what", false, "Вы знаете, что произошло в Игнисе?", [[
 
			"Поговорите лучше с Даркстаром или Райтом".
 
		]]};
 
		{always=true, "Я пойду", [[
 
			"Приходите еще"
 
		]], code [[ back(); ]]};
 
		{tag="more_people"};
 
		{"Расскажите больше об Адриане Блэке", [[
 
		]]};
 
		{"Расскажите больше о Джоне Брауне", [[
 
		]]};
 
		{"Расскажите больше о Дэмине Пине", [[
 
			
 
		]]};
 
		{"Давайте о другом поговорим", [[
 
			"Хорошо"
 
		]], code [[pret();]]};
 
	};
 
};
 
 
char_radcliffe_atlantis_dlg = dlg {
 
	var {
 
		state = 0;
 
		lfc_dialog = false;
 
	};
 
	nam = "Уолтер Рэдклифф";
 
	disp = "Уолтер Рэдклифф";
 
	entered = function(s)
 
        poff("on_anna", "on_walter", "on_atlantis", "on_drake", "on_black", "on_join", "talk");
 
        if (rel_walter < 0) then
 
            pon("talk");
 
        else
 
            if (char_walter.on_anna < 2) then
 
                pon("on_anna");
 
                pon("talk");
 
            end;
 
            if (char_walter.on_black < 2) then
 
                pon("on_black");
 
                pon("talk");
 
            end;
 
            if (char_walter.on_walter < 2) then
 
                pon("on_walter");
 
                pon("talk");
 
            end;
 
            if (char_walter.on_atlantis < 2) then
 
                pon("on_atlantis");
 
                pon("talk");
 
            end;
 
            if (char_walter.on_drake < 2) then
 
                pon("on_drake");
 
                pon("talk");
 
            end;
 
            if (char_walter.on_join < 2) then
 
                pon("on_join");
 
                pon("talk");
 
            end;
 
        end;
 
    
 
		if (atl_lfc_state ~= 1) then
 
			poff('sabotage', 'ignis_what');
 
		end;
 
		
 
		if (atl_lfc_state == 1 and not s.lfc_dialog) then
 
			s.lfc_dialog = true;
 
			pon('sabotage', 'ignis_what');
 
		end;
 
	
 
		if (s.state == 0) then
 
			s.state = 1;
 
			psub("first_meeting");
 
			return [[
 
				Перед вами стоит человек лет сорока--сорока-пяти, одетый в рабочий халат. Как только вы входите, он протягивает вам руку: "Добро пожаловать, господин Дрейк. Я - Уолтер Рэдклифф, инженер".
 
			]];
 
		else
 
			psub("generic");
 
			return [[
 
				Уолтер Рэдклифф кивает вам: "Добрый день".
 
			]];
 
		end;
 
	end;
 
	phr = {
 
        {tag="questions"};
 
        {tag="on_black", "Что ты можешь сказать о Блэке?", function(s)
 
            char_walter.on_black = 2;
 
            return [[Уолтер пожимает плечами: "Что я могу сказать про него? Его не очень здесь любят, однако он, поверьте, вполне искренне радеет за благополучие нашей миссии". ]];
 
        end};
 
        {tag="on_walter", "Расскажи о себе.". function(s)
 
            char_walter.on_walter = 2;
 
            return [[]];
 
        end};
 
        {tag="on_anna", "Расскажи о своей сестре, Анне.", function(s)
 
            char_walter.on_anna = 2;
 
            if (ArrayUtils.indexOf(pl.party, 'anna') ~= 0) then
 
                return [[Уолтер вздыхает: "Будь у меня выбор тогда, я ни за что не взял бы ее на Атлантиду. И жалел бы сейчас об этом. Не думаю, что на поверхности она стала бы той, кто она сейчас. Все-таки общество поглощенных своей работой людей накладывает определенный отпечаток, я думаю. Я все еще не уверен, что взять ее на Левиафан было хорошей идеей -- Бог знает, с чем мы столкнемся в наших странствиях, но она очень этого хотела". ]];
 
            else
 
                return [[Уолтер вздыхает: "Будь у меня выбор тогда, я ни за что не взял бы ее на Атлантиду. И жалел бы сейчас об этом. Не думаю, что на поверхности она стала бы той, кто она сейчас. Все-таки общество поглощенных своей работой людей накладывает определенный отпечаток, я думаю. То, что она осталась на станции успокаивает меня, хотя она так рвалась в эту экспедицию вместе с нами". ]];
 
            end;
 
        end};
 
        {tag="on_drake", "Что ты можешь сказать о Дрейке?", function(s)
 
            char_walter.on_drake = 2;
 
            return [[Уолтер отвечает: "Не думаю, что скажу про него больше чем кто-то еще. Послушайте Райта, Моро, быть может Даркстара, хотя черт знает, что у этого типа на уме. Они скажут вам все и даже больше. "]];
 
        end};
 
        {tag="on_atlantis", "Что ты думаешь об Атлантиде?", function(s)
 
            char_walter.on_atlantis = 2;
 
            return [[Уолтер отвечает: "Думаю только Райт и Уинтерлайт в полной мере осознают, насколько большим достижением для нас, для всего человечества, является постройка этой станции. Тем не менее, они, отчего-то, не спешат поделиться своими знаниями с другими. Не думаю, что сегодняшнее общество сможет по достоинству оценить новые возможности, даруемые этими технологиями. Да и что станет с навьярами? Вспомните Новый Свет, посмотрите на другие наши колонии -- хотите ли вы этого для Леарр и других?"]];
 
        end};
 
        {tag="quit", always=true, "Поговорим в другой раз. ", [[Уолтер кивает: "Хорошо".]], code [[pret();]]};
 
		{tag = "first_meeting"};
 
		{"[Пожать руку]Рад знакомству", [[
 
			"Мы с Майклом вместе работали над Левиафаном. Многие решения в вашей субмарине - мои. Если вы не против, я хотел бы продолжить путешествие вместе с вами - во-первых - вам пригодится мой опыт, а во-вторых - я хочу увидеть Левиафан в деле". 
 
		]], code [[
 
			rel_walter = rel_walter + 1;
 
			psub("leviathan");
 
		]]};
 
		{"Рад знакомству", [[
 
			Уолтер убирает руку и продолжает: "Я думаю, вы не просто так пришли. Спрашивайте".
 
		]], code [[
 
			psub("generic");
 
		]]};
 
		{"[Промолчать]", [[
 
			Уолтер убирает руку и продолжает: "Я думаю, вы не просто так пришли. Спрашивайте".
 
		]], code [[
 
			rel_walter = rel_walter - 1;
 
			psub("generic");
 
		]]};
 
		{tag = "leviathan"};
 
		{"Интересно, и что вы можете рассказать о Левиафане?", [[
 
			Уолтер снимает очки, убирая их в нагрудный карман: "Левиафан строился как Надежда - для дальних путешествий и максимальной автономности. После успеха предыдущих субмарин, Райт решил сделать Левиафан заметно больше предыдущих кораблей. Сверхмощная батарея обеспечивает субмарину энергией более месяца при максимальных оборотах двигателей. Также есть паровой двигатель - он используется не только для движения, но и генерирует электричество. До Левиафана мы не экспериментировали с этим".
 
		]]};
 
		{"Вы знаете, куда отправился мой отец отсюда?", [[
 
			Уолтер отрицательно качает головой: "Не больше, чем остальные на станции". 
 
		]]};
 
		{"Буду рад, если вы присоединитесь к нам", [[
 
			"Отлично. Но вы ведь, еще поговорить хотите?"
 
		]], code [[ psub("generic");]]};
 
		{"Я не думаю, что вы поможете", [[
 
			"Очень жаль. Впрочем, у вас есть время подумать. Насколько я знаю, Даркстар и Моро собираются держать вас здесь какое-то время".
 
		]], code [[ psub("generic");]]};
 
		{tag = "generic"};
 
        {tag="questions", always=true, "У меня есть несколько вопросов. ", function(s)
 
            if (rel_anna < 0) then
 
                return [[Уолтер отрицательно качает головой: "Не сейчас, я занят". ]];
 
            else
 
                psub("questions");
 
                return [[Уолтер кивает: "Слушаю". ]];
 
            end;
 
        end};      
 
		{tag="sabotage", false, "Вы знаете, что пожар в Игнисе - результат саботажа?", [[
 
			"Безусловно. Системы энергоснабжения проектировал я и абсолютно уверен в их безопасности и надежности. Судя по тому, что произошло - кто-то весьма грамотный ,,доработал'' систему энергоснабжения Игниса. Я не думаю, что это мог быть один человек... Хотя если он делал это несколько дней - вполне вероятно. Как это сделать, кроме нас с Райтом знают только трое: Мишель Леруа, Чарльз Джонс и Мари Легран. И еще кое-что. Даркстар просил меня ни с кем про это не разговаривать, поэтому надеюсь на ваше понимание. Отдельно попрошу - не говорить на эту тему с моей сестрой".
 
		]], code [[
 
			rel_walter = rel_walter + 1;
 
		]]};
 
		{tag="ignis_what", false, "Вы, как инженер, можете рассказать, что произошло в Игнисе?", [[
 
			"Пожар. Вам что-то еще известно?"
 
		]]};
 
		{"Я пойду", [[
 
			"До встречи", - Уолтер отворачивается от вас и возвращается к своим делам.
 
		]], code [[ back();]]};
 
	};
 
};
 
 
char_page_dlg = dlg {
 
	var {
 
		state = 0;
 
	};
 
	nam = "Фрэнсис Пейдж";
 
	disp = "Фрэнсис Пейдж";
 
	entered = function(s)
 
		if (atl_lfc_state ~= 1) then
 
			poff('sabotage', 'ignis_what');
 
		end;
 
		
 
		if (atl_lfc_state == 1 and not s.lfc_dialog) then
 
			s.lfc_dialog = true;
 
			pon('sabotage', 'ignis_what');
 
		end;
 
	
 
		if (s.state == 0 ) then
 
			s.state = 1;
 
			psub("first_meeting");
 
			return [[Перед вами стоит мужчина лет пятидесяти с густой седой бородой. Он бросает на вас быстрый взгляд и здоровается, продолжая осмотр Наутилуса: "Добро пожаловать на Атлантиду. Я Фрэнсис Пейдж. Я занимаюсь обслуживанием субмарин". ]];
 
		else
 
			psub("generic");
 
			return [[Перед вами стоит Фрэнсис Пейдж. не отрываясь от осмотра Наутилуса он говорит: "Вы вернулись". ]];
 
		end;
 
	end;
 
	phr = {
atlantis_iyhehevjiarr.lua
Show inline comments
 
atl_lev_first_sail = room {
 
	nam = "Левиафан";
 
	hideinv = true;
 
	dsc = [[
 
		Вы поднимаетесь на борт Левиафана и ждете, когда соберется команда. Меньше, чем через пятнадцать минут все поднимаются на борт и вы можете отправляться. 
 
	]];
 
	obj = {
 
		vway("Продолжить", "{Продолжить}", "leviathan_captains_cabin");
 
	};
 
};
 
 
char_aikerjarr_lev = obj {
 
	var {
 
		follow = true;
 
	};
 
	nam = "aikerjarr";
 
	disp = "Аикерьярр";
 
	dsc = function(s)
 
		if (stead.nameof(where(s)) == s.home) then
 
			return [[
 
				{Аикерьярр} стоит перед иллюминатором. ^
 
			]];
 
		else
 
			return [[
 
				{Аикерьярр} смотрит на вас. ^
 
			]];
 
		end;
 
	end;
 
	home = "leviathan_wheelhouse";
 
	accompany = function(s, value)
 
		s.follow = value;
 
		if (value) then
 
			lifeon(s);
 
		else
 
			move(s, s.home, where(s));
 
			lifeoff(s);
 
		end;
 
	end;
 
	life = function(s)
 
		if (where(pl).leviathan) then
 
			if (stead.nameof(where(s)) ~= s.home) then
 
				move(s, s.home, where(s));
 
			end;
 
		else
 
			move(s, where(pl), where(s));
 
		end;
 
	end;
 
	act = function(s)
 
		if (not where(pl).leviathan) then
 
			return [[
 
				Вы не можете говорить с ним сейчас.
 
			]];
 
		end;
 
		if (atl_iyh_shockfish_dead) then
 
			return [[
 
				Аикерьярр молчит.
 
			]];
 
		else
 
			return [[
 
				"Вы что-нужно-делайте. Я наблюдаю". 
 
			]];
 
		end;
 
	end;
 
};
 
 
iyh_far_from_entrance_foot = room {
 
	nam = "Океан";
 
	handwheel_room = "iyh_far_from_entrance";
 
	underwater = true;
 
	no_exit = [[
 
		Нет смысла покидать Левиафан здесь. 
 
	]];
 
	dsc = [[
 
		Вы видите вдалеке высокую скалу, простирающуюся на многие километры в обе стороны. Прямо перед вами, в скале вы видите массивные каменные двери храма, застывшие в открытом состоянии. Над дверьми вы видите небольшой козырек, поддерживаемый массивными колоннами. 
 
	]];
 
	view = [[
 
		Через иллюминаторы вы видите вдалеке высокую скалу, простирающуюся на многие километры в обе стороны. Прямо перед вами, в скале вы видите массивные каменные двери храма, застывшие в открытом состоянии. Над дверьми вы видите небольшой козырек, поддерживаемый массивными колоннами. 
 
	]];
 
	way = {
 
		kh_vroom("В Левиафан", "leviathan_airlock");
 
	};
 
};
 
 
iyh_far_from_entrance = dlg {
 
	var {
 
		visited = false;
 
	};
 
	no_exit = [[
 
		Нет смысла покидать Левиафан здесь. 
 
	]];
 
	nam = "Левиафан, рубка";
 
	hideinv = true;
 
	entered = function(s)
 
		atl_iyh_state = 7;
 
		if (not s.visited) then
 
			return [[
 
				Вы прибываете на место.
 
			]];
 
		end;
 
	end;
 
	dsc = function(s)
 
		pr [[Через иллюминаторы вы видите высокую скалу, простирающуюся на многие километры в обе стороны. В скале вырезаны массивные каменные двери храма, застывшие в открытом состоянии. Над дверьми вы видите небольшой козырек, поддерживаемый массивными колоннами. ]];
 
		
 
		if (not s.visited) then
 
			s.visited = true;
 
			if (ArrayUtils.indexOf(pl.party, 'aikerjarr') ~= 0) then
 
				return [[
 
					Аиверьярр молча рассматривает храм через иллюминаторы. ]];
 
			elseif (ArrayUtils.indexOf(pl.party, 'learr') ~= 0) then
 
				return [[Леарр поднимается в рубку. При виде храма, она восклицает: "Мы должны-попасть туда!" ]];
 
			end;
 
		end;
 
	end;
 
	phr = {
 
		{tag="advance", always=true, "[Подойти ближе]", [[Послушные вашей воле, двигатели Левиафана приводят субмарину в движение и вы плавно приближаетесь ко входу в храм. ]], code [[ walk('iyh_near_temple'); ]]};
 
		{tag="wait", "[Ждать]", [[Вы решаете подождать до наступления ночи и это правдывает себя. Как только последние лучи солнца перестают пробиваться сквозь толщу воды, скат выбирается из своего логова и отправляется на охоту. ]], code [[ 
 
			lifeon(iyh_far_from_entrance);
 
			atl_iyh_shockfish_away = 30;
 
		]]};
 
		{tag="light_temple", always=true, "[Осветить вход в храм]", [[Мощный луч света падает на вход в храм. Вы видите внутри какое-то движение и изнутри выплывает огромный скат. ]], code [[ iyh_fight.distance = 1000; walk('iyh_fight'); ]]};
 
		{tag="light_wall_r", "[Осветить скалы справа от храма]", [[Мощный луч света освещает скалы по правую сторону от храма. Он плавно скользит по поверхности скалы, пока вы не натыкаетесь на то, что отсюда кажется вам каким-то ущельем. Возможно следует изучить его? ]], code [[ 
 
			iyh_near_temple:pon('ravine');
 
			pon('ravine'); 
 
		]]};
 
		{tag="light_wall_l", "[Осветить скалы слева от храма]", [[Мощный луч света освещает скалы по левую сторону от храма. Он плавно скользит по поверхности скалы, однако так и не натыкается ни на что интересное. ]]};
 
		{tag="ravine", false, always=true, "[Подойти ко входу в ущелье]", [[Вы поворачиваете штурвал и включаете двигатели Левиафана. Через несколько минут вы оказываетесь у входа в ущелье. ]], code [[ walk('iyh_ravine_entry'); ]]};
 
		{tag="away", always=true, "[Отойти от штурвала]", code = [[
 
			walk('leviathan_wheelhouse');
 
		]]};
 
		{tag="return", always=true, "[Покинуть храм]", code = [[
 
			walk('leviathan_dlg');
 
		]]};
 
	};
 
	life = function(s)
 
		if (not atl_iyh_shockfish_left) then
 
			atl_iyh_shockfish_away = atl_iyh_shockfish_away - 1;
 
			if (atl_iyh_shockfish_away == 0) then
 
				if (where(pl) == iyh_temple_main_hall_entry or where(pl) == iyh_temple_main_hall_middle or where(pl) == iyh_temple_main_hall_end or where(pl) == iyh_near_temple_foot) then
 
					walk("game_over_shockfish");
 
				elseif (where(pl).leviathan == true and (where(submarine_leviathan) == "iyh_near_temple_foot")) then
 
					pr [[Скат возвращается и, заметив Левиафан, тут же нападает на субмарину. Вы поднимаетесь на мостик, чтобы принять управление. ]];
 
					walk("iyh_fight");
 
				end;
 
			elseif (atl_iyh_shockfish_away < 5) then
 
				pr "Приближается рассвет. Скат скоро вернется. ";
 
			end;
 
		end;
 
	end;
 
};
 
 
iyh_fight = room {
 
	var {
 
		temple_distance = 0;
 
		distance = 0;
 
		shockfish_health = 100;
 
		timing = 0;
 
	};
 
	nam = "Штурвал Левиафана";
 
	entered = function(s)
 
		s.temple_distance = s.distance;
 
		s.shockfish_health = 100;
 
	end;
 
	hideinv = true;
 
	forcedsc = true;
 
	leviathan = true;
 
	dsc = function(s)
 
		pr("Вы находитесь от ската на расстоянии около "..tostring(s.distance).." метров. ");
 
		pr("Храм находится примерно на расстоянии " .. tostring(s.temple_distance) .. " метров. ");
 
		pr("На приборной панели вы видите, что ");
 
		iyh_fight_torpedo:enable();
 
		iyh_fight_recharge:disable();
 
		if (submarine_leviathan.torpedoes == 2) then
 
			pr "оба торпедных аппапата заряжены и готовы к бою. ";
 
		elseif (submarine_leviathan.torpedoes == 1) then
 
			pr "только один из торпедных аппаратов заряжен. ";
 
		else
 
			iyh_fight_recharge:enable();
 
			iyh_fight_torpedo:disable();
 
			pr "у вас не осталось заряженных торпед. ";
 
		end;
 
		if (submarine_leviathan.electric_integrity < 30) then
 
			pr "Свет в рубке периодически моргает, чувствуется запах горелой проводки, часть проводов искрит. ";
 
		elseif (submarine_leviathan.electric_integrity < 70) then	
 
			pr "Свет в рубке периодически моргает. ";
 
		end;
 
		if (submarine_leviathan.hull_integrity < 30) then
 
			pr "Обшивка Левиафана сильно повреждена. ";
 
		elseif (submarine_leviathan.hull_integrity < 70) then	
 
			pr "Обшивка Левиафана повреждена. ";
 
		end;
 
	end;
 
	maketurn = function(s)
 
		if (s.distance > 1000) then
 
			if (s.shockfish_health < 20 or atl_iyh_entrance_destroyed) then
 
				pr "Скат уплывает и вы остаетесь одни. ";
 
				atl_iyh_shockfish_left = true;
 
				walk("iyh_far_from_entrance");
 
			else
 
				pr "Вы удаляетесь достаточно далеко и скат возвращается к себе в жилище. ";
 
				walk("iyh_far_from_entrance");
 
			end;
 
		end;
 
		if (s.shockfish_health < 20 or (atl_iyh_entrance_destroyed and s.shockfish_health < 70)) then
 
			if (s.distance < 0) then
 
				s.distance = s.distance - 75;
 
			else
 
				s.distance = s.distance + 75;
 
			end;
 
			pr "Скат пытается сбежать от вас. ";
 
		else
 
			if (math.abs(s.distance) <= 75) then
 
				if (math.abs(s.distance) > 0) then
 
					s.distance = 0;
 
					pr "Скат приближается к вам. ";
 
				end;
 
				
 
				if (s.timing <= 0) then
 
					s.timing = 5;
 
					pr "Скат атакует Левиафан электрическим разрядом. ";
 
					submarine_leviathan.electric_integrity = submarine_leviathan.electric_integrity - 10;
 
					if (submarine_leviathan.electric_integrity > 50) then
 
						pr "Атака не оказывает видимого эффекта на субмарину. ";
 
					elseif (submarine_leviathan.electric_integrity > 0) then
 
						pr "Свет моргает, проводка искрит. ";
 
						if (ArrayUtils.indexOf(pl.party, 'wright') ~= 0) then
 
							pr "По телефону вы слышите встревоженный голос Райта: \"Мы так долго не протянем\". ";
 
						elseif (ArrayUtils.indexOf(pl.party, 'radcliffe') ~= 0) then
 
							pr "По телефону вы слышите встревоженный голос Рэдклиффа: \"Мы так долго не протянем\". ";
 
						end;
 
					else
 
						walk('game_over_powerless');
 
					end;
 
				else
 
					s.timing = s.timing - 1;
 
					pr "Скат пытается пробить обшивку Левиафана хвостовым шипом. ";
 
					submarine_leviathan.hull_integrity = submarine_leviathan.hull_integrity - 5;
 
					if (submarine_leviathan.hull_integrity > 50) then
 
						pr ", но не наосит ощитимого ущерба. ";
 
					elseif (submarine_leviathan.hull_integrity > 0) then
 
						pr ". Сильный удар повреждает внешнюю обшивку, в резервуары проникает вода. ";
 
					else
 
						walk('game_over_sunk');
 
					end;
 
				end;
 
			else
 
				pr "Скат приближается к вам. ";
 
				if (s.distance < 0) then
 
				s.distance = s.distance + 75;
 
			else
 
				s.distance = s.distance - 75;
 
			end;
 
			end;
 
		end;
 
	end;
 
	obj = {
 
		"iyh_fight_torpedo",
 
		"iyh_fight_sonic",
 
		"iyh_fight_recharge",
 
		"iyh_advance_full",
 
		"iyh_advance_half",
 
		"iyh_advance_quarter",
 
		"iyh_retreat_full",
 
		"iyh_retreat_half",
 
		"iyh_retreat_quarter"
 
	};
 
};
 
 
iyh_fight_torpedo_temple = obj {
 
	nam = "iyh_fight_torpedo_temple";
 
	dsc = "{Выстрелить торпедой в храм}^";
 
	act = function(s)
 
		if (math.abs(iyh_fight.temple_distance) < 50) then
 
			return [[Цель слишком близко. ]];
 
		elseif (math.abs(iyh_fight.temple_distance) > 200) then
 
			return [[Цель слишком далеко. ]];
 
		else
 
			atl_iyh_entrance_destroyed = true;
 
			return [[Торпеда попадает в аккурат над храмом и вход оказывается завален тяжелыми глыбами. ]];
 
		end;
 
	end;
 
};
 
 
iyh_fight_torpedo = obj {
 
	nam = "iyh_fight_torpedo";
 
	dsc = "{Выстрелить торпедой в ската}^";
 
	act = function(s)
 
		if (math.abs(iyh_fight.distance) < 50) then
 
			return [[Цель слишком близко. ]];
 
		elseif (math.abs(iyh_fight.distance) > 200) then
 
			return [[Цель слишком далеко. ]];
 
		else
 
			if (iyh_fight.shockfish_health > 70) then
 
				local meters = 25 * rnd(3) + 25;
 
				iyh_fight.shockfish_health = iyh_fight.shockfish_health - 70;
 
				if (iyh_fight.distance >= 0) then
 
					iyh_fight.distance = iyh_fight.distance + meters;
 
				else
 
					iyh_fight.distance = iyh_fight.distance - meters;
 
				end;
 
				pr("Вы стреляете торпедой в ската. Торпеда достигает цели. Ската отбрасывает назад на ".. tostring(meters) .. " метров. ");
 
			else
 
				iyh_fight.shockfish_health = 0;
 
				atl_iyh_shockfish_dead = true;
 
				pr "Вы стреляете торпедой в ската. Торпеда взрывается достигнув цели и разрывает ската. Вода краснеет от крови, а вы теперь можете безопасно приблизиться к храму. ";
 
				
 
				if (ArrayUtils.indexOf(pl.party, 'learr') ~= 0) then
 
					pr [[Леарр в ярости поднимается в рубку и кричит на вас: "Что ты делаешь ненавистный-a'rr?!" ]];
 
					pr [[Леарр в ярости поднимается в рубку и кричит на вас: "Что ты делаешь ненавистный-a'rr?!"^Она с неприязнью смотрит на вас и удаляется к себе в каюту. ]];
 
                    rel_learr = -99;
 
                    atl_rep_iraa = atl_rep_iraa - 1;
 
                    atl_rep_dyp = atl_rep_dyp - 1;
 
                    char_learr.home = "leviathan_cabin_3";
 
				elseif (ArrayUtils.indexOf(pl.party, 'aikerjarr') ~= 0) then
 
					pr [[Аикерьярр отворачивается от иллюминатора и со злобой смотрит на вас: "Ты за-это-ответишь he'rr". ]];
 
				end;
 
				
 
				if (math.abs(iyh_fight.temple_distance) < 100) then
 
					walk("iyh_near_temple");
 
				else
 
					walk("iyh_far_from_entrance");
 
				end;
 
				
 
				return;
 
			end;
 
			return iyh_fight:maketurn();
 
		end;
 
	end;
 
};
 
 
iyh_fight_sonic = obj {
 
	nam = "iyh_fight_sonic";
 
	dsc = "{Выстрелить из звуковой пушки}^";
 
	act = function(s)
 
		if (math.abs(iyh_fight.distance) > 200) then
 
			return [[
 
				Цель слишком далеко
 
			]];
 
		else
 
			if (iyh_fight.shockfish_health > 50) then
 
				iyh_fight.shockfish_health = iyh_fight.shockfish_health - 10;
 
				pr "Вы стреляете в ската из звуковой пушки. Это лишь слегка ранит его. ";
 
			else
 
				pr "Вы стреляете в ската из звуковой пушки. Это не наносит ему серьезного ущерба. ";
 
			end;
 
			return iyh_fight:maketurn();
 
		end;
 
	end;
 
};
 
 
iyh_fight_recharge = obj {
 
	nam = "iyh_fight_torpedo";
 
	dsc = "{Перезарядить торпеды}^";
 
	act = function(s)
 
		--Если в партии нет никого кроме Леарр/Аикерьярра, то игрок перезаряжает торопеды сам, иначе - отдает преказ
 
		if (ArrayUtils.indexOf(pl.party, 'wright') ~= 0 or ArrayUtils.indexOf(pl.party, 'radcliffe') ~= 0) then
 
			pr "Вы отдаете по телефону приказ перезарядить торпедные аппараты. ";
 
		else
 
			pr "Вы спускаетесь вниз, чтобы перезарядить торпедные аппараты. ";
 
			iyh_fight:maketurn();
 
			iyh_fight:maketurn();
 
			pr "Вы возвращаетесь в рубку, чтобы продолжить бой. "
 
		end;
 
	end;
 
};
 
 
iyh_advance_full = obj {
 
	nam = "iyh_advance_full";
 
	dsc = "{Полный вперед}^";
 
	act = function(s)
 
		pr "Вы включаете двигатели на полную мощность. ";
 
		if (iyh_fight.distance >= 0) then
 
			iyh_fight.distance = iyh_fight.distance - 100;
 
			iyh_fight.temple_distance = iyh_fight.temple_distance - 100;
 
			if (iyh_fight.distance < 0) then
 
				pr "Вы проплываете мимо противника и разворачиваете субмарину. "
 
			end;
 
		else
 
			iyh_fight.distance = iyh_fight.distance + 100;
 
			iyh_fight.temple_distance = iyh_fight.temple_distance + 100;
 
			if (iyh_fight.distance >= 0) then
 
				pr "Вы проплываете мимо противника и разворачиваете субмарину. "
 
			end;
 
		end;
 
		iyh_fight:maketurn();
 
	end;
 
};
 
 
iyh_advance_half = obj {
 
	nam = "iyh_advance_half";
 
	dsc = "{1/2 вперед}^";
 
	act = function(s)
 
		pr "Вы включаете двигатели на половину мощности. ";
 
		if (iyh_fight.distance >= 0) then
 
			iyh_fight.distance = iyh_fight.distance - 50;
 
			iyh_fight.temple_distance = iyh_fight.temple_distance - 50;
 
			if (iyh_fight.distance < 0) then
 
				pr "Вы проплываете мимо противника и разворачиваете субмарину. "
 
			end;
 
		else
 
			iyh_fight.distance = iyh_fight.distance + 50;
 
			iyh_fight.temple_distance = iyh_fight.temple_distance + 50;
 
			if (iyh_fight.distance >= 0) then
 
				pr "Вы проплываете мимо противника и разворачиваете субмарину. "
 
			end;
 
		end;
 
		iyh_fight:maketurn();
 
	end;
 
};
 
 
iyh_advance_quarter = obj {
 
	nam = "iyh_advance_quarter";
 
	dsc = "{1/4 вперед}^";
 
	act = function(s)
 
		pr "Вы включаете двигатели на четверть мощности. ";
 
		if (iyh_fight.distance >= 0) then
 
			iyh_fight.distance = iyh_fight.distance - 25;
 
			iyh_fight.temple_distance = iyh_fight.temple_distance - 25;
 
			if (iyh_fight.distance < 0) then
 
				pr "Вы проплываете мимо противника и разворачиваете субмарину. "
 
			end;
 
		else
 
			iyh_fight.distance = iyh_fight.distance + 25;
 
			iyh_fight.temple_distance = iyh_fight.temple_distance + 25;
 
			if (iyh_fight.distance >= 0) then
 
				pr "Вы проплываете мимо противника и разворачиваете субмарину. "
 
			end;
 
		end;
 
		iyh_fight:maketurn();
 
	end;
 
};
 
 
iyh_retreat_full = obj {
 
	nam = "iyh_retreat_full";
 
	dsc = "{Полный назад}^";
 
	act = function(s)
 
		pr "Вы включаете двигатели на полную мощность. ";
 
		if (iyh_fight.distance >= 0) then
 
			iyh_fight.distance = iyh_fight.distance + 100;
 
			iyh_fight.temple_distance = iyh_fight.temple_distance + 100;
 
			if (iyh_fight.distance < 0) then
 
				pr "Вы проплываете мимо противника и разворачиваете субмарину. "
 
			end;
 
		else
 
			iyh_fight.distance = iyh_fight.distance - 100;
 
			iyh_fight.temple_distance = iyh_fight.temple_distance - 100;
 
			if (iyh_fight.distance >= 0) then
 
				pr "Вы проплываете мимо противника и разворачиваете субмарину. "
 
			end;
 
		end;
 
		iyh_fight:maketurn();
 
	end;
 
};
 
 
iyh_retreat_half = obj {
 
	nam = "iyh_retreat_half";
 
	dsc = "{1/2 назад}^";
 
	act = function(s)
 
		pr "Вы включаете двигатели на половину мощности. ";
 
		if (iyh_fight.distance >= 0) then
 
			iyh_fight.distance = iyh_fight.distance + 50;
 
			iyh_fight.temple_distance = iyh_fight.temple_distance + 50;
 
			if (iyh_fight.distance < 0) then
 
				pr "Вы проплываете мимо противника и разворачиваете субмарину. "
 
			end;
 
		else
 
			iyh_fight.distance = iyh_fight.distance - 50;
 
			iyh_fight.temple_distance = iyh_fight.temple_distance - 50;
 
			if (iyh_fight.distance >= 0) then
 
				pr "Вы проплываете мимо противника и разворачиваете субмарину. "
 
			end;
 
		end;
 
		iyh_fight:maketurn();
 
	end;
 
};
 
 
iyh_retreat_quarter = obj {
 
	nam = "iyh_retreat_quarter";
 
	dsc = "{1/4 назад}^";
 
	act = function(s)
 
		pr "Вы включаете двигатели на четверть мощности. ";
 
		if (iyh_fight.distance >= 0) then
 
			iyh_fight.distance = iyh_fight.distance + 25;
 
			iyh_fight.temple_distance = iyh_fight.temple_distance + 25;
 
			if (iyh_fight.distance < 0) then
 
				pr "Вы проплываете мимо противника и разворачиваете субмарину. "
 
			end;
 
		else
 
			iyh_fight.distance = iyh_fight.distance - 25;
 
			iyh_fight.temple_distance = iyh_fight.temple_distance - 25;
 
			if (iyh_fight.distance >= 0) then
 
				pr "Вы проплываете мимо противника и разворачиваете субмарину. "
 
			end;
 
		end;
 
		iyh_fight:maketurn();
 
	end;
 
};
 
 
iyh_ravine_entry = room {
 
	nam = "Штурвал Левиафана";
 
	no_exit = [[
 
		Нет смысла покидать Левиафан здесь. 
 
	]];
 
	dsc = [[Левиафан находится у входа в ущелье. Вдалеке по левому борту, на юго-западе, вы видите вход в навьярский храм. ]];
 
	hideinv = true;
 
	way = {
 
		kh_vroom("Отойти от штурвала", function(s)
 
			return "leviathan_wheelhouse";
 
		end);
 
		kh_vroom("Войти в ущелье", function(s)
 
			iyh_labyrinth.position = 1;
 
			iyh_labyrinth.direction = 1;
 
			return "iyh_labyrinth";
 
		end);
 
		kh_vroom("Ко входу в храм", "iyh_near_temple");
 
		kh_vroom("Отойти назад", "iyh_far_from_entrance");
 
	};
 
};
 
 
--[[
 
	Описание структуры лабиринта. Каждый узел описан в двух направлениях
 
	1 - прямое
 
	2 - обратное
 
	направления обозначены как 
 
	l - налево
 
	r - направо
 
	f - прямо
 
	выход описывается одной строкой, невыходы описываются парой "узел+направление"
 
]]
 
iyh_labyrinth_template = {
 
	[1]= {[1]={l={32, 1}, r={2, 1}}, 			[2]={f="iyh_ravine_entry"}};
 
	[2]= {[1]={f={3, 1}}, 						[2]={f={1,2}}};
 
	[3]= {[1]={l={5, 1}, f={4,1}},				[2]={f={2,2}}};
 
	[4]= {[1]={}, 								[2]={f={3,2}}};
 
	[5]= {[1]={l={37, 1}, f={6,1} },			[2]={f={3,2}}};
 
	[6]= {[1]={l={7,1}, r={33, 1}},  			[2]={f={5,2}}};
 
	[7]= {[1]={l={12,1}, f={11,1}, r={8,1}},	[2]={f={6,2}}};
 
	[8]= {[1]={l={10,1}, r={9,1}}, 				[2]={f={7,2}}};
 
	[9]= {[1]={}, 								[2]={f={8,2}}};
 
	[10]={[1]={}, 								[2]={f={8,2}, r={11,2}}};
 
	[11]={[1]={f={10,1}}, 						[2]={f={7,2}}};
 
	[12]={[1]={l={14,1}, f={13,1}}, 			[2]={f={7,2}}};
 
	[13]={[1]={}, 								[2]={f={12,2}}};
 
	[14]={[1]={f={15,1}, l={20,1}}, 			[2]={f={12,2}}};
 
	[15]={[1]={l={17,1}, r={16,1}}, 			[2]={f={14,2}}};
 
	[16]={[1]={}, 								[2]={f={15,2}}};
 
	[17]={[1]={l={19,1}, r={18,1}}, 			[2]={f={15,2}}};
 
	[18]={[1]={}, 								[2]={f={17,2}}};
 
	[19]={[1]={}, 								[2]={f={17,2}}};
 
	[20]={[1]={l={22,1}, f={21,1}}, 			[2]={f={14,2}}};
 
	[21]={[1]={}, 								[2]={f={20,2}}};
 
	[22]={[1]={l={25,1}, r={23,1}}, 			[2]={f={20,2}}};
 
	[23]={[1]={l="iyh_rear_entrance", r={24,1}},[2]={f={22,2}}};
 
	[24]={[1]={}, 								[2]={f={23,2}}};
 
	[25]={[1]={l={27,1},r={26,1}}, 				[2]={f={22,2}}};
 
	[26]={[1]={}, 								[2]={f={25,2}}};
 
	[27]={[1]={l={30,2}, f={29,1}, r={28,1}}, 	[2]={f={25,2}}};
 
	[28]={[1]={}, 								[2]={f={27,2}}};
 
	[29]={[1]={}, 								[2]={f={27,2}}};
 
	[30]={[1]={l={27,2}, r={36,1}}, 			[2]={f={31,2}}};
 
	[31]={[1]={l={30,1}, r={35,1}}, 			[2]={f={32,2}}};
 
	[32]={[1]={l={31,1}, r={34,1}}, 			[2]={f={1,2}}};
 
	[33]={[1]={}, 								[2]={l={6,2}, r={37,2}}};
 
	[34]={[1]={}, 								[2]={f={32,2}}};
 
	[35]={[1]={}, 								[2]={f={31,2}}};
 
	[36]={[1]={}, 								[2]={f={30,2}}};
 
	[37]={[1]={f={33,1}}, 						[2]={f={5,2}}};
 
};
 
 
iyh_labyrinth = room {
 
	var {
 
		location = 1;
 
		direction = 1;
 
	};
 
	no_exit = [[Нет смысла покидать Левиафан здесь. ]];
 
	nam = "Штурвал Левиафана";
 
	dsc = function(s)
 
		pr [[Вы находитесь в глубоком и узком ущелье. ]];
 
		if (iyh_labyrinth_template[s.location]["f"]) then
 
			pr [[Ущелье продолжается вперед. ]];
 
		end;
 
		if (iyh_labyrinth_template[s.location]["l"] and iyh_labyrinth_template[s.location]["r"]) then
 
			pr [[Влево и вправо уходят ответвления. ]];
 
		elseif (iyh_labyrinth_template[s.location]["l"]) then
 
			pr [[Влево уходит ответвление. ]];
 
		elseif (iyh_labyrinth_template[s.location]["r"]) then
 
			pr [[Вправо уходит ответвление. ]];
 
		elseif (not iyh_labyrinth_template[s.location]["f"]) then
 
			pr [[Дальше пути нет. ]];
 
		end;
 
	end;
 
	update = function(s)
 
	end;
 
	obj = {
 
		"iyh_lab_forward",
 
		"iyh_lab_left",
 
		"iyh_lab_right",
 
		"iyh_lab_turn"
 
	};
 
};
 
 
iyh_lab_forward = obj {
 
	nam = "iyh_lab_forward";
 
	dsc = "{Вперед}^";
 
	act = function(s)
 
		pr [[Вы продолжаете движение. ]];
 
		local p = iyh_labyrinth.position;
 
		local d = iyh_labyrinth.direction;
 
		
 
		if (type(iyh_labyrinth_template[p][d]) == 'string') then
 
			walk(iyh_labyrinth_template[p][d]);
 
		else
 
			iyh_labyrinth.position = iyh_labyrinth_template[p][d]["f"][1];
 
			iyh_labyrinth.direction = iyh_labyrinth_template[p][d]["f"][2];
 
		end;
 
		
 
		iyh_labyrinth:update();
 
	end;
 
};
 
 
iyh_lab_left = obj {
 
	nam = "iyh_lab_left";
 
	dsc = "{Налево}^";
 
	act = function(s)
 
		pr [[Вы сворачиваете налево. ]];
 
		local p = iyh_labyrinth.position;
 
		local d = iyh_labyrinth.direction;
 
		
 
		if (type(iyh_labyrinth_template[p][d]) == 'string') then
 
			walk(iyh_labyrinth_template[p][d]);
 
		else
 
			iyh_labyrinth.position = iyh_labyrinth_template[p][d]["l"][1];
 
			iyh_labyrinth.direction = iyh_labyrinth_template[p][d]["l"][2];
 
		end;
 
		
 
		iyh_labyrinth:update();
 
	end;
 
};
 
 
iyh_lab_right = obj {
 
	nam = "iyh_lab_right";
 
	dsc = "{Направо}^";
 
	act = function(s)
 
		pr [[Вы сворачиваете направо. ]];
 
		local p = iyh_labyrinth.position;
 
		local d = iyh_labyrinth.direction;
 
		
 
		if (type(iyh_labyrinth_template[p][d]) == 'string') then
 
			walk(iyh_labyrinth_template[p][d]);
 
		else
 
			iyh_labyrinth.position = iyh_labyrinth_template[p][d]["r"][1];
 
			iyh_labyrinth.direction = iyh_labyrinth_template[p][d]["r"][2];
 
		end;
 
		
 
		iyh_labyrinth:update();
 
	end;
 
};
 
 
iyh_lab_turn = obj {
 
	nam = "iyh_lab_turn";
 
	dsc = "{Развернуться}^";
 
	act = function(s)
 
		pr [[Вы разворачиваете субмарину. ]];
 
		if (iyh_labyrinth.direction == 1) then
 
			iyh_labyrinth.direction = 2;
 
		else
 
			iyh_labyrinth.direction = 1;
 
		end;
 
		
 
		iyh_labyrinth:update();
 
	end;
 
};
 
 
iyh_rear_entrance = room {
 
	nam = "Левиафан";
 
	dsc = [[
 
		Вы находитесь в конце ущелья. Луч прожектора освещает небольшой проход в скале. 
 
	]];
 
	way = {
 
		kh_vroom("Отойти от штурвала", "iyh_rear_entrance_foot");
 
		kh_vroom("В ущелье", function(s)
 
			iyh_labyrinth.position = 23;
 
			iyh_labyrinth.direction = 2;
 
			return "iyh_labyrinth";
 
		end);
 
	};
 
	entered = function(s)
 
		move(submarine_leviathan, iyh_rear_entrance_foot);
 
	end;
 
};
 
 
iyh_rear_entrance_foot = room {
 
	nam = "Ущелье";
 
	dsc = [[
 
		Узкое глубокое ущелье. Вы находитесь в одном из его концов. В скале вы видите небольшой проход явно искусственного происхождения.
 
	]];
 
	way = {
 
@@ -981,542 +985,578 @@ iyh_temple_lever_2 = obj {
 
        if (s.state) then
 
            return [[Вам больше незачем его трогать. ]];
 
        else
 
            s.state = true;
 
            path("К задним комнатам"):enable();
 
            path("В скрытое помещение", iyh_right_room_3):enable();
 
            return [[Вы дергаете за рычаг и одна из плит в стене рядом с ним отодвигается, открывая проход. ]];
 
        end;
 
    end;
 
};
 
 
iyh_temple_lever_3 = obj {
 
    var {
 
        state = false;
 
    };
 
    nam = "iyh_temple_lever_1";
 
    dsc = [[В центре комнаты находится еще один, такой же, {рычаг}. ]];
 
    act = function(s)
 
        if (s.state) then
 
            return [[Вам больше незачем его трогать. ]];
 
        else
 
            s.state = true;
 
            iyh_temple_stairs_l:enable();
 
            iyh_temple_stairs_r:enable();
 
            path("Вниз по лестнице", iyh_temple_left_hall):enable();
 
            path("Вниз по лестнице", iyh_temple_right_hall):enable();
 
            return [[Вы дергаете за рычаг и слышите скрежет каменных плит где-то неподалеку. В комнате ничего не изменилось. ]];
 
        end;
 
    end;
 
};
 
 
iyh_shockfish = obj {
 
    nam = "iyh_shockfish";
 
    dsc = [[В центре зала завис огромный {скат}. Громадная рыба спокойно наблюдает за вами и, кажется, не собирается нападать. ]];
 
    noshoot = [[Врядли вы серьезно повредите гиганта своим выстрелом. ]];
 
    act = [[Скат наблюдает за вами, однако не стремится нападать. Возможно, дело в вашем амулете?]];
 
    used = function(s, o)
 
        if (o == iyh_item_amulet) then
 
            remove(iyh_item_amulet, pl);
 
            remove(iyh_shockfish, here());
 
            atl_iyh_shockfish_left = true;
 
            return [[Вы бросаете амулет скату и гигантская рыба легко подхватывает его. Взмахнув хвостом, он выплывает из храма и устремляется куда-то вдаль. ]];
 
        end;
 
    end;
 
};
 
 
iyh_temple_main_hall_enter = function(s)
 
    remove(iyh_shockfish, here());
 
    print("forfag");
 
    if (atl_iyh_shockfish_away == 0 and atl_iyh_shockfish_away and not atl_iyh_shockfish_dead and not atl_iyh_shockfish_left) then
 
        if have(iyh_item_amulet) then
 
            print("forfag1");
 
            put(iyh_shockfish, here());
 
        else
 
            print("forfag2");
 
            walk("game_over_shockfish_2");
 
        end;
 
    end;
 
end;
 
 
iyh_temple_main_hall_end = room {
 
    nam = "Храм";
 
    dsc = [[Главный зал древнего навьярского святилища. В стенах слева и справа вырезаны небольшие углубления, на которых некогда покоились ценные реликвии. Сейчас большинство из них пусты. Потолок находится на высоте нескольких десятков метров, но ни лестниц, ни уступов нет. Вы находитесь в дальнем конце зала. Массивная дверь ведет в задние помещения храма. ]];
 
    enter = iyh_temple_main_hall_enter;
 
    way = {
 
        kh_vroom("В центр зала", "iyh_temple_main_hall_middle");
 
        kh_vroom("В заднюю дверь", "iyh_temple_rear_corridor_end");
 
    };
 
};
 
 
iyh_temple_main_hall_middle = room {
 
	nam = "Храм";
 
	dsc = [[
 
		Главный зал древнего навьярского святилища. В стенах слева и справа вырезаны небольшие углубления, на которых некогда покоились ценные реликвии. Сейчас большинство из них пусты. Потолок находится на высоте нескольких десятков метров, но ни лестниц, ни уступов нет. Слева и справа от вас вы видите небольшие проемы, ведущие в боковые помещения. 
 
	]];
 
	obj = {
 
		"iyh_pedestal"
 
	};
 
	enter = iyh_temple_main_hall_enter;
 
	way = {
 
		kh_vroom("К выходу", "iyh_temple_main_hall_entry");
 
		kh_vroom("В конец зала", "iyh_temple_main_hall_end");
 
		kh_vroom("Налево", "iyh_temple_left_hall");
 
		kh_vroom("Направо", "iyh_temple_right_hall");
 
	};
 
};
 
 
iyh_temple_main_hall_entry = room {
 
	nam = "Храм";
 
	dsc = [[
 
		Главный зал древнего навьярского святилища. В стенах слева и справа вырезаны небольшие углубления, на которых некогда покоились ценные реликвии. Сейчас большинство из них пусты. Потолок находится на высоте нескольких десятков метров, но ни лестниц, ни уступов нет. Вы находитесь у входа в зал. 
 
	]];
 
	enter = iyh_temple_main_hall_enter;
 
	entered = function(s)
 
		if (atl_iyh_entrance_destroyed) then
 
			path("Выйти"):disable();
 
		end;
 
	end;
 
	way = {
 
		kh_vroom("Выйти", "iyh_near_temple_foot");
 
		kh_vroom("Пройти дальше", "iyh_temple_main_hall_middle");
 
	};
 
	obj = {
 
		"item_temple_disk"
 
	};
 
};
 
 
iyh_temple_left_hall = room {
 
	nam = "Храм";
 
	dsc = [[Вы находитесь в одной из боковых комнат храма. Небольшое помещение - не более десятка метров в ширину. ]];
 
	way = {
 
		kh_vroom("В главный зал", "iyh_temple_main_hall_middle");
 
        kh_vroom("В скрытое помещение", "iyh_temple_hidden_room_1"):disable();
 
        kh_vroom("Вниз по лестнице", "iyh_temple_descent_l"):disable();
 
	};
 
	obj = {
 
        "iyh_temple_rubble_left",
 
        "iyh_temple_niche_left",
 
        "iyh_temple_question_hall_plaque"
 
	};
 
};
 
 
iyh_temple_right_hall = room {
 
	nam = "Храм";
 
	dsc = [[
 
		Вы находитесь в одной из боковых комнат храма. Небольшое помещение - не более десятка метров в ширину. 
 
	]];
 
    checkCoder = function(s, phrase)
 
        if (phrase == "aed'rr") then
 
            path('В скрытое помещение', s):enable();
 
            return [[Стоит последней лампочке погаснуть, как одна из плит в стене комнаты сдвигается, открывая проход в скрытое помещение. ]];
 
        else
 
            return [[Лампочки кодировщика зажигаются в заданной последовательности, но ничего не происходит. ]];
 
        end;
 
    end;
 
	way = {
 
		kh_vroom("В главный зал", "iyh_temple_main_hall_middle");
 
        kh_vroom("В скрытое помещение", "iyh_temple_hidden_room_2"):disable();
 
        kh_vroom("Вниз по лестнице", "iyh_temple_descent_r"):disable();
 
	};
 
	obj = {
 
		"iyh_temple_rubble_right",
 
		"iyh_temple_niche_right",
 
        "iyh_temple_answer_hall_plaque"
 
	};
 
};
 
 
iyh_temple_question_hall_plaque = obj {
 
    nam = "iyh_temple_question_hall_plaque";
 
    dsc = [[На противоположной от входа стене зала висит небольшая {табличка} с нанесенными на нее цветными полосами. ]];
 
    act = function(s)
 
        if (language_known) then
 
            return [[Надпись гласит: "Зал вопроса". ]];
 
        else
 
            return [[К сожалению, вы не понимаете, что здесь написано. ]];
 
        end;
 
    end;
 
};
 
 
iyh_temple_answer_hall_plaque = obj {
 
    nam = "iyh_temple_answer_hall_plaque";
 
    dsc = [[На противоположной от входа стене зала висит небольшая {табличка} с нанесенными на нее цветными полосами. ]];
 
    act = function(s)
 
        if (language_known) then
 
            return [[Надпись гласит: "Зал ответа". ]];
 
        else
 
            return [[К сожалению, вы не понимаете, что здесь написано. ]];
 
        end;
 
    end;
 
};
 
 
iyh_temple_descent_l = darkroom {
 
    nam = "Храм, спуск";
 
    dsc_halflit = [[Вы идете по длинной крутой лестнице, вырезанной в толще скалы. Она уходит куда-то вглубь земли, под храм. ]];
 
    dsc_dark = [[Вы идете по длинной крутой лестнице, вырезанной в толще скалы. Она уходит куда-то вглубь земли, под храм. В темноте вы ничего не видите. ]];
 
    way = {
 
        kh_vroom("Вверх", "iyh_temple_left_hall", 2);
 
        kh_vroom("Вниз", "iyh_temple_under_corridor_1", 1);
 
    };
 
};
 
 
 
iyh_temple_descent_r = darkroom {
 
    nam = "Храм, спуск";
 
    dsc_halflit = [[Вы идете по длинной крутой лестнице, вырезанной в толще скалы. Она уходит куда-то вглубь земли, под храм. ]];
 
    dsc_dark = [[Вы идете по длинной крутой лестнице, вырезанной в толще скалы. Она уходит куда-то вглубь земли, под храм. В темноте вы ничего не видите. ]];
 
    way = {
 
        kh_vroom("Вверх", "iyh_temple_right_hall", 2);
 
        kh_vroom("Вниз", "iyh_temple_under_corridor_1", 1);
 
    };
 
};
 
 
iyh_temple_under_corridor_1 = darkroom {
 
    nam = "Под храмом";
 
    dsc_halflit = [[Темный коридор, расположенный под храмом. Скрытый от посторонних глаз, он простоял нетронутым сотни, если не тысячи лет, храня древние тайны навьяров. Слева и справа вы видите проходы, ведущие к лестницам наверх. ]];
 
    dsc_dark = [[Темный коридор, расположенный под храмом. Скрытый от посторонних глаз, он простоял нетронутым сотни, если не тысячи лет, храня древние тайны навьяров. В темноте вы различаете едва уловимое свечение откуда-то в конце коридора. ]];
 
    way = {
 
        kh_vroom("На лестницу слева", "iyh_temple_right_hall", 1);
 
        kh_vroom("На лестницу справа", "iyh_temple_right_hall", 1);
 
        kh_vroom("Дальше по коридору", "iyh_temple_under_corridor_2", 2);
 
    };
 
};
 
 
iyh_temple_under_corridor_2 = darkroom {
 
    nam = "Под храмом";
 
    dsc_halflit = [[Темный коридор, расположенный под храмом. Скрытый от посторонних глаз, он простоял нетронутым сотни, если не тысячи лет, храня древние тайны навьяров. ]];
 
    dsc_dark = [[Темный коридор, расположенный под храмом. Скрытый от посторонних глаз, он простоял нетронутым сотни, если не тысячи лет, храня древние тайны навьяров. ]];
 
    obj = {
 
        'iyh_temple_under_plaque'
 
    };
 
    checkCoder = function(s, phrase)
 
        if (phrase == "i'yhe'he'vji'a'rr" or phrase == "he'vji'a'rr") then
 
            iyh_temple_under_plaque:disable();
 
            path("В дверь", s):enable();
 
            return [[Лампочки кодировщика зажигаются в заданной последовательности и каменная дверь медленно поднимается, открывая проход дальше. ]];
 
        else
 
            return [[Лампочки кодировщика зажигаются в заданной последовательности, но ничего не происходит. ]];
 
        end;
 
    end;
 
    way = {
 
        kh_vroom("Назад, к лестницам", "iyh_temple_under_corridor_1", 1);
 
        kh_vroom("В дверь", "iyh_temple_under_room", 1):disable();
 
    };
 
};
 
 
iyh_temple_under_plaque = obj {
 
    nam = "iyh_temple_under_plaque";
 
    seen_level = 2;
 
    dsc = function(s)
 
        if (pl.has_light) then
 
            return [[Проход дальше закрывает массивная каменная дверь. Вы не видите никаких способов открыть ее. На двери расположена небольшая черная {табличка} из неизвестного материала. ]];
 
        elseif (language_known) then
 
            return [[Проход дальше закрывает массивная каменная дверь. Вы не видите никаких способов открыть ее. На двери расположена небольшая {табличка} из неизвестного материала. В темноте вы видите на табличке едва заметные светящиеся полосы -- очевидно они утратили свою яркость от времени. Надпись гласит: "Назови себя и ты войдешь". ]];
 
        else
 
            return [[Проход дальше закрывает массивная каменная дверь. Вы не видите никаких способов открыть ее. На двери расположена небольшая {табличка} из неизвестного материала. В темноте вы видите на табличке едва заметные светящиеся полосы -- очевидно они утратили свою яркость от времени. К сожалению, вы не понимаете, что они значат. ]];
 
        end;
 
    end;
 
    act = [[Табличка из неизвестного материала. ]];
 
};
 
 
iyh_temple_under_room = darkroom {
 
    nam = "iyh_temple_under_room";
 
    disp = "Под храмом";
 
    dsc_halflit = [[Небольшая темная комната, скрытая в глубинах древнего навьярского храма. Вы первые, кто потревожил ее за долгие столетия. В центре находится каменный пьедестал. ]];
 
    dsc_dark = [[Небольшая темная комната, скрытая в глубинах древнего навьярского храма. В темноте вы с трудом различаете очертания предметов. ]];
 
    obj = {
 
        "item_lse_map"
 
    };
 
};
 
 
iyh_temple_rubble_left = obj {
 
	nam = "iyh_temple_rubble";
 
	dsc = [[
 
		В углу валяется {груда обломков}.
 
	]];
 
	act = [[
 
		Здесь ничего нет.
 
	]];
 
};
 
 
iyh_temple_niche_left = obj {
 
	var {
 
		taken = false;
 
	};
 
	nam = "iyh_temple_deep_niche_left";
 
	dsc = [[
 
		В одной из стен вы замечаете глубокую {нишу}. 
 
	]];
 
	act = function(s)
 
		if (s.taken) then
 
			return [[
 
				Здесь ничего нет. 
 
			]];
 
		else
 
			s.taken = true;
 
			take(item_statuette);
 
			return [[
 
				Внутри вы находите металлическую статуэтку, изображающую навьяра. 
 
			]];
 
		end;
 
	end;
 
};
 
 
iyh_temple_rubble_right = obj {
 
	var {
 
		taken = false;
 
	};
 
	nam = "iyh_temple_rubble";
 
	dsc = [[
 
		В углу валяется {груда обломков}.
 
	]];
 
	act = function(s)
 
		if (s.taken) then
 
			return [[
 
				Здесь ничего нет. 
 
			]];
 
		else
 
			s.taken = true;
 
			take(item_legend_of_dark_source);
 
			return [[
 
				В куче обломков вы находите металлическую табличку. 
 
			]];
 
		end;
 
	end;
 
};
 
 
iyh_temple_niche_right = obj {
 
	nam = "iyh_temple_deep_niche_left";
 
	dsc = [[
 
		В одной из стен вы замечаете глубокую {нишу}. 
 
	]];
 
	act = [[
 
		Здесь ничего нет.
 
	]];
 
};
 
 
iyh_pedestal = obj {
 
	var {
 
		taken = false;
 
	};
 
	nam = "iyh_pedestal";
 
	dsc = function(s)
 
		if (s.taken) then
 
			return [[В центре комнаты расположен пустой {пьедестал}. ]];
 
		else
 
			return [[В центре комнаты расположен {пьедестал}, на котором покоится самая обычная, на первый взгляд, подзорная труба. ]];
 
		end;
 
	end;
 
	act = function(s)
 
		if (s.taken) then
 
			return [[Пьедестал пуст. ]];
 
		else
 
			s.taken = true;
 
            take(iyh_looking_glass);
 
			return [[Вы поднимаете покоящуюся на пьедестале подзорную трубу. ]];
 
		end;
 
	end;
 
};
 
 
iyh_near_temple = dlg {
 
	nam = "Штурвал Левиафана";
 
	dsc = [[
 
		Через иллюминаторы вы видите прямо перед собой массивные каменные двери, вытесанные в скале, возвышающейся далеко над вами. Над ними вы видите небольшой козырек, поддерживаемый массивными колоннами. Древний камень все еще хранит орнамент, выгравированный на дверях, колоннах и ступенях лестницы.
 
	]];
 
	enter = function(s)
 
		if (atl_iyh_shockfish_away == 0 and not atl_iyh_shockfish_dead and not atl_iyh_shockfish_left) then
 
			pr [[
 
				Как только вы приближаетесь, скат выплывает из свого жилища, чтобы прогнать посмевших приблизиться к нему.
 
			]];
 
			iyh_fight.temple_distance = 50;
 
			iyh_fight.distance = 50;
 
			walk(iyh_fight);
 
		end;
 
	end;
 
	entered = function(s)
 
		move(submarine_leviathan, iyh_near_temple_foot);
 
	end;
 
	phr = {
 
		{tag="ravine", false, always=true, "[Ко входу в ущелье]", [[
 
			Вы поворачиваете штурвал и включаете двигатели Левиафана. Через несколько минут вы оказываетесь у входа в ущелье.
 
		]], code [[ walk('iyh_ravine_entry'); ]]};
 
		{tag="away", always=true, "[Отойти от штурвала]", code = [[
 
			walk('leviathan_wheelhouse');
 
		]]};
 
		{tag="back", always=true, "[Вернуться к исходной позиции]", code = [[
 
			walk('iyh_far_from_entrance');
 
		]]};
 
	};
 
};
 
 
iyh_near_temple_foot = room {
 
	nam = "Вход в храм";
 
	dsc = [[
 
		Прямо перед собой вы видите массивные каменные двери, вытесанные в скале, возвышающейся далеко над вами. Над ними вы видите небольшой козырек, поддерживаемый массивными колоннами. Древний камень все еще хранит орнамент, выгравированный на дверях, колоннах и ступенях лестницы.
 
	]];
 
	way = {
 
		kh_vroom("В Левиафан", "leviathan_airlock");
 
        kh_vroom("В храм", "iyh_temple_main_hall_entry");
 
	};
 
};
 
 
iyh_outro_svetlova = room {
 
	nam = "Атлантида, док Левиафана";
 
	dsc = function(s)
 
		pr [[
 
			При выходе из Левиафана, вас встречает Екатерина Светлова. Вы рассказываете ей обо всем произошедшем. 
 
		]];
 
		pr [[При выходе из Левиафана, вас встречает Екатерина Светлова. Вы рассказываете ей обо всем произошедшем. ]];
 
		if (atl_iyh_shockfish_dead) then
 
			pr [[
 
				Она забирает у вас артефакты для изучения, но крайне недовольна убийством ската: "Артефакты, конечно будут полезны, но то что вы сделали ставит под угрозу дальнейшее существование станции. Хвала небесам, что рыбни об этом не знают и может быть, не узнают о произошедшем".^
 
			]];
 
			pr [[Она забирает у вас артефакты для изучения, но крайне недовольна убийством ската: "Артефакты, конечно будут полезны, но то что вы сделали ставит под угрозу дальнейшее существование станции. Хвала небесам, что рыбни об этом не знают и может быть, не узнают о произошедшем".^ ]];
 
		elseif (atl_iyh_entrance_destroyed) then
 
			pr [[
 
				Она забирает у вас артефакты для изучения, но огорчена разрушением святилища: "Очень жаль, что пришлось разрушить храм - там наверняка было еще много интересного".^
 
			]];
 
			pr [[Она забирает у вас артефакты для изучения, но огорчена разрушением святилища: "Очень жаль, что пришлось разрушить храм - там наверняка было еще много интересного".^ ]];
 
		else
 
			pr [[
 
				Она забирает у вас артефакты для изучения и благодарит вас: "Отлично, вы оказали нам неоценимую услугу. Скоро я верну реликвию в Дипатреанотр и ситуация будет исчерпана".^
 
			]];
 
			pr [[Она забирает у вас артефакты для изучения и благодарит вас: "Отлично, вы оказали нам неоценимую услугу. Скоро я верну реликвию в Дипатреанотр и ситуация будет исчерпана".^ ]];
 
		end;
 
		
 
		--[[pr [ [
 
			Вы отправляетесь в свою комнату, чтобы отдохнуть. Утром, к вам входит Екатерина и отдает часть табличек, найденных вами: "Это вам понадобится в поисках отца. Эти таблички помогут вам проследовать путем Уильяма. Я уже говорила, что он отправился на поиски древнего навьярского города, Лсэрианотра. Должно быть, он сделал копии этих диаграмм. Но здесь не все просто - это лишь фрагменты карт и чтобы воспользоваться ими, вам придется найти недостающие части. К сожалению, я не знаю, где их можно найти. Но, скорее всего, знают навьяры. 
 
		] ];
 
		if (not atl_iof_learr_dead) then
 
			pr [ [
 
				Вам следует начать с Ираафаанотра - родного города Леарр. Наверняка, она согласится отправиться туда с вами". 
 
			] ];
 
		else
 
			pr [ [
 
				Рядом с нами расположено два города - Дипатреанотр и Ираафаанотр, и я советую вам их посетить". 
 
			] ];
 
		end;]]
 
		pr [[
 
			Вы отправляетесь в свою комнату, чтобы отдохнуть. Утром, вас вызывает по телефону Екатерина Светлова: "Дрейк, пройдите ко мне. У меня есть кое что для вас".
 
		]];
 
		pr [[Вы отправляетесь в свою комнату, чтобы отдохнуть. Утром, вас вызывает по телефону Екатерина Светлова: "Дрейк, пройдите ко мне. У меня есть кое-что для вас". ]];
 
	end;
 
	entered = function(s)
 
		atl_iyh_artifacts_on_atlantis = true;
 
		remove(item_statuette);
 
		remove(item_temple_disk);
 
		remove(item_legend_of_temple);
 
		remove(item_legend_of_dark_source);
 
		remove(item_legend_of_first_city);
 
		remove(item_legend_of_hunter);
 
		remove(item_navjiarr_chart_1);
 
		remove(item_navjiarr_chart_2);
 
		remove(item_navjiarr_chart_3);
 
	end;
 
	obj = {
 
		vroom("Продолжить", "atl_luna_drake_room");
 
	};
 
};
 
 
iyh_outro_aikerrjarr = room {
 
	nam = "Атлантида, док Левиафана";
 
	dsc = function(s)
 
		pr [[При выходе из Левиафана, вас встречает Екатерина Светлова. Аикерьярр сразу же требует: "Ты мне-отдашь взятое-тобой-в-храме-все". На что Светлова просит его: "Позвольте кратко взглянуть на все". Аикерьярр с явным недовольством соглашается. Пока Екатерина осматривает реликвии, вы рассказываете ей обо всем произошедшем. Как только вы заканчиваете рассказ, ]];		
 
		if (atl_iyh_shockfish_dead) then
 
			pr [[она недовольно восклицает: "Зачем вы это сделали?!", - После чего, уже спокойнее добавляет: "Впрочем, можете не отвечать. Что сделано то сделано".^ ]];
 
			pr [[она лишь тяжело вздыхает глядя на вас, после чего уходит, махнув рукой.^ ]];
 
		elseif (atl_iyh_entrance_destroyed) then
 
			pr [[она огорченно комментирует: "Очень жаль, что пришлось разрушить храм - там наверняка было еще много интересного".^ ]];
 
		else
 
			pr [[она благодарит вас: "Отлично, вы оказали нам неоценимую услугу. Скоро я верну реликвию в Дипатреанотр и ситуация будет исчерпана".^ ]];
 
		end;
 
		
 
		pr [[Вы отправляетесь в свою комнату, чтобы отдохнуть. Утром, вас вызывает по телефону Екатерина Светлова: "Дрейк, пройдите ко мне. У меня есть кое что для вас". ]];
 
		pr [[Вы отправляетесь в свою комнату, чтобы отдохнуть. Утром, вас вызывает по телефону Екатерина Светлова: "Дрейк, пройдите ко мне. У меня есть кое-что для вас". ]];
 
	end;
 
	hideinv = true;
 
	entered = function(s)
 
        for i in #pl.party do
 
            if pl.party[i] == 'aikerjarr' then 
 
                table.remove(pl.party, i);
 
                break;
 
            end;
 
        end;
 
        remove(char_aikerjarr_lev, where(char_aikerjarr_lev));
 
		remove(item_statuette);
 
		remove(item_temple_disk);
 
		remove(item_legend_of_temple);
 
		remove(item_legend_of_dark_source);
 
		remove(item_legend_of_first_city);
 
		remove(item_legend_of_hunter);
 
		remove(item_navjiarr_chart_1);
 
		remove(item_navjiarr_chart_2);
 
		remove(item_navjiarr_chart_3);
 
	end;
 
	obj = {
 
		vroom("Продолжить", "atl_luna_drake_room");
 
	};
 
};
 
 
iyh_outro_learr_shockfish_dead = room {
 
    nam = "Атлантида, док Левиафана";
 
    dsc = function(s)
 
        return [[При выходе из Левиафана, вас встречает Екатерина Светлова. Леарр выходит следом за вами и сообщает: "Я забираю-артефакты-в-Ираафаанотр". Светлова спрашивает: "Вы не разрешите нам оставить их на несколько дней для изучения?"^ Леарр отрезает: "Нет", -- и выходит из дока. Светлова вопросительно смотрит на вас и вы пересказываете ей произошедшее. Она лишь тяжело вздыхает глядя на вас, после чего уходит, махнув рукой.^Вы отправляетесь в свою комнату, чтобы отдохнуть. Утром, вас вызывает по телефону Екатерина Светлова: "Дрейк, пройдите ко мне. У меня есть кое-что для вас". ]];
 
    end;
 
    hideinv = true;
 
    entered = function(s)
 
        for i in #pl.party do
 
            if pl.party[i] == 'learr' then 
 
                table.remove(pl.party, i);
 
                break;
 
            end;
 
        end;
 
        remove(char_learr, where(char_learr));
 
        remove(item_statuette);
 
        remove(item_temple_disk);
 
        remove(item_legend_of_temple);
 
        remove(item_legend_of_dark_source);
 
        remove(item_legend_of_first_city);
 
        remove(item_legend_of_hunter);
 
        remove(item_navjiarr_chart_1);
 
        remove(item_navjiarr_chart_2);
 
        remove(item_navjiarr_chart_3);
 
    end;
 
    obj = {
 
        vroom("Продолжить", "atl_luna_drake_room");
 
    };
 
};
 
 
iyh_outro_learr_temple_destroyed = room {
 
    nam = "Атлантида, док Левиафана";
 
    dsc = function(s)
 
        return [[При выходе из Левиафана, вас встречает Екатерина Светлова. Леарр выходит следом за вами и сообщает: "Я забираю-артефакты-в-Ираафаанотр". Светлова спрашивает: "Вы не разрешите нам оставить их на несколько дней для изучения?"^ Леарр отрезает: "Нет", -- и выходит из дока. Светлова вопросительно смотрит на вас и вы пересказываете ей произошедшее. Она задумчиво чешет подбородок и сообщает: "Я поговорю с Леарр, отправляйтесь в свою комнату. Думаю, мне удастся все уладить".^Вы следуете ее совету и отправляетесь к себе. Утром, она выывает вас по телефону: "Дрейк, пройдите ко мне. У меня есть кое-что для вас". ]];
 
    end;
 
    hideinv = true;
 
    entered = function(s)
 
        for i in #pl.party do
 
            if pl.party[i] == 'learr' then 
 
                table.remove(pl.party, i);
 
                break;
 
            end;
 
        end;
 
		remove(item_statuette);
 
		remove(item_temple_disk);
 
		remove(item_legend_of_temple);
 
		remove(item_legend_of_dark_source);
 
		remove(item_legend_of_first_city);
 
		remove(item_legend_of_hunter);
 
		remove(item_navjiarr_chart_1);
 
		remove(item_navjiarr_chart_2);
 
		remove(item_navjiarr_chart_3);
 
	end;
 
	obj = {
 
		vroom("Продолжить", "atl_luna_drake_room");
 
	};
 
};
 
 
iyh_outro_learr = dlg {
 
	nam = "Атлантида, док Левиафана";
 
	entered = function(s)
 
		if (rel_learr > 0) then
 
			psub('rel_ok');
 
        else
 
			psub('rel_not_ok');
 
		end;
 
        
 
        return [[При выходе из Левиафана, вас встречает Екатерина Светлова. Леарр сразу же просит: "Ты мне-отдашь взятое-в-храме".^ В ответ Светлова просит ее: "Может, вы разрешите нам оставить реликвии на некоторое время?"^ Леарр не слишком уверенно отвечает: "Старейшина это-не-одобрит. Другой-выход есть?" ]];
 
	end;
 
	phr = {
 
		{tag="rel_ok"};
 
		{"Это очень поможет нам в поисках Уильяма", [[Леарр все еще неуверенно: "Я что-смогу-сделаю. Вы пока-все-оставьте". ]], code [[
 
            artifacts_returned = 0;      
 
			atl_iyh_artifacts_on_atlantis = true;
 
			atl_rep_svetlova = atl_rep_svetlova + 1;
 
			walk("iyh_outro_learr_2");
 
		]]};
 
		{"Хорошо, забирайте реликвии", [[Леарр благодарит вас: "Вы можете-наш-город-посетить и реликвии-смотреть". ]], code [[
 
			rel_learr = rel_learr + 1;
 
            artifacts_returned = 1;        
 
			remove(item_statuette);
 
			remove(item_temple_disk);
 
			remove(item_legend_of_temple);
 
			remove(item_legend_of_dark_source);
 
			remove(item_legend_of_first_city);
 
			remove(item_legend_of_hunter);
 
			remove(item_navjiarr_chart_1);
 
			remove(item_navjiarr_chart_2);
 
			remove(item_navjiarr_chart_3);
 
			walk("iyh_outro_learr_2");
 
		]]};
 
		{tag="rel_not_ok"};
 
		{"Это очень поможет нам в поисках Уильяма", [[Леарр отвечает: "Я не-позволю-реликвии-оставить. Вы не-надейтесь-даже". ]], code [[
 
            artifacts_returned = 1;
 
			remove(item_statuette);
 
			remove(item_temple_disk);
 
			remove(item_legend_of_temple);
 
			remove(item_legend_of_dark_source);
 
			remove(item_legend_of_first_city);
 
			remove(item_legend_of_hunter);
 
			remove(item_navjiarr_chart_1);
 
			remove(item_navjiarr_chart_2);
 
			remove(item_navjiarr_chart_3);
 
			walk("iyh_outro_learr_2");
 
		]]};
 
		{"Хорошо, забирайте реликвии", [[Леарр отвечает: "Я не-позволю-реликвии-оставить. Вы не-надейтесь-даже". ]], code [[
 
            artifacts_returned = 1;
 
			rel_learr = rel_learr + 1;
 
			remove(item_statuette);
 
			remove(item_temple_disk);
 
			remove(item_legend_of_temple);
 
			remove(item_legend_of_dark_source);
 
			remove(item_legend_of_first_city);
 
			remove(item_legend_of_hunter);
 
			remove(item_navjiarr_chart_1);
 
			remove(item_navjiarr_chart_2);
 
			remove(item_navjiarr_chart_3);
 
			walk("iyh_outro_learr_2");
 
		]]};
 
	};
 
};
 
 
iyh_outro_learr_2 = room {
 
	nam = "Атлантида";
 
	dsc = [[Вы отправляетесь в свою комнату, чтобы отдохнуть. Утром, вас вызывает по телефону Екатерина Светлова: "Дрейк, пройдите ко мне. У меня есть кое что для вас". ]];
 
	dsc = [[Вы отправляетесь в свою комнату, чтобы отдохнуть. Утром, вас вызывает по телефону Екатерина Светлова: "Дрейк, пройдите ко мне. У меня есть кое-что для вас". ]];
 
	obj = {
 
		vroom("Продолжить", "atl_luna_drake_room");
 
	};
 
};
 
\ No newline at end of file
party.lua
Show inline comments
 
party_accompany = function(s, value)
 
	if (ArrayUtils.indexOf(pl.party, s.nam) == 0) then
 
		return;
 
	end;
 
	s.follow = value;
 
	if (value) then
 
		lifeon(s);
 
	else
 
		move(s, s.home, where(s));
 
		lifeoff(s);
 
	end;
 
end;
 
 
party_follow = function(s)
 
    if (where(pl).cutscene or where(pl).not_follow) then
 
    elseif (where(pl).leviathan) then
 
        if (stead.nameof(where(s)) ~= s.home) then
 
            move(s, s.home, where(s));
 
        end;
 
    else
 
        move(s, where(pl), where(s));
 
    end;
 
end;
 
 
-- TODO больше отвлеченных диалогов, дабы было о чем поговорить с сопартийцами. Не стоит делать их деревянными безжизненными манекенами
 
char_learr = obj {
 
	var {
 
        home = "leviathan_wardroom";
 
		follow = false;
 
        
 
        on_books = 0;
 
        on_join = 0;
 
        on_before = 0;
 
        on_atlantis = 0;
 
        on_conflict = 0;
 
	};
 
	nam = "learr";
 
	disp = "Леарр";
 
	dsc = function(s)
 
		if (stead.nameof(where(s)) == s.home) then
 
			return [[{Леарр} сидит в кресле, листая книгу. ^]];
 
		else
 
			return [[{Леарр} ждет ваших указаний. ^]];
 
		end;
 
	end;
 
	home = "leviathan_wardroom";
 
	accompany = party_accompany;
 
	life = party_follow;
 
	act = function(s)
 
		if (stead.nameof(where(s)) == s.home) then
 
			walkin(learr_home_dlg);
 
		else
 
			walkin(learr_dlg);
 
		end;
 
	end;
 
};
 
 
char_phaetlarr = obj {
 
	var {
 
        home = "leviathan_engines";   
 
		follow = false;
 
	};
 
	nam = "phaetlarr";
 
	disp = "Фаэтларр";
 
	dsc = function(s)
 
		if (stead.nameof(where(s)) == s.home) then
 
			return [[{Фаэтларр} с интересом наблюдает за работой двигателей "Левиафана" ^]];
 
		else
 
			return [[{Фаэтларр} ждет ваших указаний. ^]];
 
		end;
 
	end;
 
	home = "leviathan_engines";
 
	accompany = party_accompany;
 
	life = party_follow;
 
	act = function(s)
 
		if (stead.nameof(where(s)) == s.home) then
 
			walkin(phaetlarr_home_dlg);
 
		else
 
			walkin(phaetlarr_dlg);
 
		end;
 
	end;
 
};
 
 
char_radcliffe = obj {
 
	var {
 
        home = "leviathan_engines";   
 
		follow = false;
 
        
 
        rel_on_join = nil;
 
        
 
        on_walter = 0;
 
        on_atlantis = 0;
 
        on_black = 0;
 
        on_drake = 0;
 
        on_anna = 0;
 
        on_join = 0;
 
        on_conflict = 0;
 
	};
 
	nam = "radcliffe";
 
	disp = "Уолтер Рэдклифф";
 
	dsc = function(s)
 
		if (stead.nameof(where(s)) == s.home) then
 
			return [[{Уолтер Рэдклифф} задумчиво крутит в руках какую-то деталь. ^]];
 
		else
 
			return [[{Уолтер Рэдклифф} ждет ваших указаний. ^]];
 
		end;
 
	end;
 
	home = "leviathan_engines";
 
	accompany = party_accompany;
 
	life = party_follow;
 
	act = function(s)
 
		if (stead.nameof(where(s)) == s.home) then
 
			walkin(radcliffe_home_dlg);
 
		else
 
			walkin(radcliffe_dlg);
 
		end;
 
	end;
 
};
 
 
char_wright = obj {
 
	var {
 
        home = "leviathan_wardroom";
 
		follow = false;
 
        
 
        iof_reaction = 0;
 
        
 
        on_learr = 0;
 
        on_leviathan = 0;
 
        on_conflict = 0;
 
	};
 
	nam = "wright";
 
	disp = "Джек Райт";
 
	dsc = function(s)
 
		if (stead.nameof(where(s)) == s.home) then
 
			return [[{Джек Райт} читает какую-то книгу. ^]];
 
		else
 
			return [[{Джек Райт} ждет ваших указаний. ^]];
 
		end;
 
	end;
 
	home = "leviathan_wardroom";
 
	accompany = party_accompany;
 
	life = party_follow;
 
	act = function(s)
 
		walkin(wright_main_dlg);
 
	end;
 
};
 
 
char_anna = obj {
 
	var {
 
        follow = false;
 
        
 
        anna_asked = 0;
 
        walter_asked = 0;
 
        atlantis_asked = 0;
 
        drake_asked = 0;
 
        join_asked = 0;
 
        black_asked = 0;
 
        rel_on_join = nil;
 
	};
 
	nam = "anna";
 
	disp = "Анна Рэдклифф";
 
	dsc = function(s)
 
		if (stead.nameof(where(s)) == s.home) then
 
			return [[{Анна Рэдклифф} смотрит в иллюминатор. ^]];
 
		else
 
			return [[{Анна Рэдклифф} ждет ваших указаний. ^]];
 
		end;
 
	end;
 
	home = "leviathan_wardroom";
 
	accompany = party_accompany;
 
	life = party_follow;
 
	act = function(s)
 
		if (stead.nameof(where(s)) == s.home) then
 
			walkin(anna_home_dlg);
 
		else
 
			walkin(anna_dlg);
 
		end;
 
	end;
 
};
 
 
learr_home_dlg = dlg {
 
	nam = "learr_dlg";
 
	disp = "Леарр";
 
	hideinv = true;
 
	entered = function(s)
 
        --on_books = 0;
 
        --on_join = 0;
 
        --on_before = 0;
 
        --on_atlantis = 0;
 
        poff("on_books", "on_join", "on_before", "on_atlantis", "talk");
 
        if (rel_learr < 0) then
 
            pon("talk");
 
        else
 
            --[[if (char_learr.on_books < 3) then
 
                pon("on_books");
 
                pon("talk");
 
            end;]]
 
            if (char_learr.on_join < 2) then
 
                pon("on_join");
 
                pon("talk");
 
            end;
 
            if (char_learr.on_before < 2) then
 
                pon("on_before");
 
                pon("talk");
 
            end;
 
            if (char_learr.on_atlantis < 2) then
 
                pon("on_atlantis");
 
                pon("talk");
 
            end;
 
        end;
 
    
 
		if (atl_iyh_state == 7) then
 
			pon("on_iyh");
 
		else
 
			poff("on_iyh");
 
		end;
 
	
 
		if (char_learr.follow) then
 
			pon('stay');
 
			poff('join');
 
		else
 
			pon('join');
 
			poff('stay');
 
		end;
 
	    
 
        if char_learr.on_conflict == 0 and conflict_resolved then
 
            char_learr.on_conflict = 1;
 
            if rel_learr >= 0 then
 
                if (artifacts_returned == 0) then
 
                    psub("on_solution_not_returned_ok");
 
                    return [[Вы подходите к Леарр и она первая обращается к вам: "Я благодарна-тебе-Дрейк-за-помощь. Разногласия-с-Дипатреанотром улажены. Нам спокойнее-бы-было если бы ты вернул-артефакты-нам, но я твой-выбор-понимаю. Тебе важно-Дрейка-найти, а Светловой важно-лучше-понять-нас". ]];
 
                else
 
                    psub("on_solution_returned_ok");
 
                    return [[Вы подходите к Леарр и она первая обращается к вам: "Я благодарна-тебе-Дрейк-за-помощь. Разногласия-с-Дипатреанотром улажены. Я сожалею-что-мы-не-можем-дать-вам-артефакты-для-изучения. Это хевьярам-и-навьярам-вместе-помогло-бы". ]];
 
                end;
 
            else
 
                if (artifacts_returned == 0) then
 
                    psub("on_solution_not_returned_ok");
 
                    return [[Вы подходите к Леарр и она первая обращается к вам: "Разногласия-с-Дипатреанотром улажены. Я благодарю-тебя. Ты не-вернул-артефакты-нам. Почему?" ]];
 
                else
 
                    psub("on_solution_returned_ok");
 
                    return [[Вы подходите к Леарр и она первая обращается к вам: "Разногласия-с-Дипатреанотром улажены. Я благодарю-тебя. Ты вернул-артефакты-нам. Почему?" ]];
 
                end;
 
            end;
 
        end;
 
        psub("generic");   
 
		return [[Леарр вопросительно смотрит на вас. ]];
 
	end;
 
	phr = {
 
        {tag="on_solution_not_returned"};
 
        {tag="sp11", "Будет лучше если артефакты останутся у нас. ", [[Леарр удивляется вашим словам: "Они принадлежат нам!" ]], code [[ rel_learr = rel_learr - 1; psub("generic");]]};
 
        {tag="sp12", "Светлова вернет вам артефакты, как только всесторонне изучит их, бояться нечего. ", [[Леарр кивает: "Я знаю". ]], code [[ rel_learr = rel_learr + 1; psub("generic");]]};
 
        {"Посмотрим, что светлова сможет извлечь из этого. Но я пришел поговорить от другом. ", function(s)
 
            if rel_learr < 0 then
 
                return [[Леаар просит: "Ты ответь". ]];
 
            else
 
                psub("generic");
 
                return [[Леарр кивает: "Ты говори". ]];
 
            end;
 
        end};
 
        {tag="on_solution_returned_ok"};
 
        {tag="sp21", "Было бы лучше, если бы артефакты остались у нас. ", [[Леарр удивляется вашим словам: "Они принадлежат нам!" ]], code [[ rel_learr = rel_learr - 1; psub("generic");]]};
 
        {tag="sp22", "Правила есть правила. ", [[Леарр кивает: "Я знаю". ]], code [[ rel_learr = rel_learr + 1; psub("generic");]]};
 
        {"Я пришел поговорить от другом. ", function(s)
 
            if rel_learr < 0 then
 
                return [[Леаар просит: "Ты ответь". ]];
 
            else
 
                psub("generic");
 
                return [[Леарр кивает: "Ты говори". ]];
 
            end;
 
        end};        
 
        {tag="more_questions"};
 
        {tag="on_books", "", function() 
 
            
 
        end};
 
        {tag="on_join", "Почему ты отправилась с нами?", function() 
 
            char_learr.on_join = 2;
 
            return [[Леарр отвечает: "Я с-Уильямом-Дрейком-хотела-отправиться, но отец не-разрешил. Он сейчас-изменил-решение и я могу-с-тобой-искать". ]];
 
        end}
 
        {tag="on_before", "Расскажи о своей жизни в Ираафаанотре.", function() 
 
            char_learr.on_before = 2;
 
            return [[Леарр отвечает: "Я вождя-дочь. Я думать-искать-решать-сложно-но-интересно-было-училась. Хевьяры пришли-и-все-изменили. Я теперь-говорить-не-с-навьярами-учусь. Отец будущему-вождю-полезно-это-говорит. Я согласна-с-ним-в-этом".]];
 
        end}
 
        {tag="on_atlantis", "Что ты думаешь об Атлантиде?", function() 
 
            char_learr.on_atlantis = 2;
 
            return [[Леарр отвечает: "Мы многому-научиться-у-вас-должны-и-можем. Вы в-воде-не-дышите-как-мы, но вы машины-делающие-это-за-вас-строите. Легенды гласят, что мы тоже-это-умели, но почему-разучились? Я не умею. Отец не умеет. Другие не умеют. И в-книгах-не-написано". Леарр печально вздыхает. ]];
 
        end}
 
        {tag="generic"};
 
        { tag = "talk", always = true, "Я хочу кое-что спросить.", function(s)
 
            if rel_learr >= 0 then
 
                psub("more_questions");
 
                return [[Леарр кивает: "Ты говори". ]];
 
            else
 
                return [[Леарр отвечает: "Мы потом-поговорим". ]];
 
            end;
 
        end};
 
		{ tag = "on_iyh", always = true, "Что ты можешь рассказать мне о храме?", [[
 
			"Каждый-храм два-входа-имеет. Большой-главный-вход далеко-виден. Тайный-задний-вход незаметен-но-всегда-есть. Мы давно-потеряли дорогу-к-этому-святилищу и задний-вход-не-помним. Если мы задний-вход-найдем, то обманем затмевающего-свет и в-храм-проникнем".
 
		]]};
 
		{ tag = "join", always = true, "Я хочу, чтобы ты пошла со мной в следующий раз", "Хорошо", 
 
			function()
 
				char_learr:accompany(true);
 
				char_phaetlarr:accompany(false);
 
				char_radcliffe:accompany(false);
 
				char_wright:accompany(false);
 
				char_anna:accompany(false);
 
				pon('stay');
 
				poff('join');
 
			end;
 
		};
 
		{ tag = "stay", always = "true", "Оставайся на Левиафане", "Хорошо", 
 
			function()
 
				char_learr.accompany(char_learr, false);
 
				poff('stay');
 
				pon('join');
 
			end;
 
		};
 
		{ tag = "exit", always = "true", "Это все", "Хорошо", 
 
			function() 
 
				back();
 
			end;
 
		}
 
	};
 
};
 
 
phaetlarr_home_dlg = dlg {
 
	nam = "phaetlarr_dlg";
 
	disp = "Фаэтларр";
 
	hideinv = true;
 
	entered = function(s)
 
		if (char_phaetlarr.follow) then
 
			pon('stay');
 
			poff('join');
 
		else
 
			pon('join');
 
			poff('stay');
 
		end;
 
	
 
		return [[Фаэтларр ждет ваших указаний. ]];
 
	end;
 
	phr = {
 
		{ tag = "join", always = "true", "Я хочу, чтобы ты пошел со мной в следующий раз", "Хорошо",
 
			function()
 
				char_learr:accompany(false);
 
				char_phaetlarr:accompany(true);
 
				char_radcliffe:accompany(false);
 
				char_wright:accompany(false);
 
				char_anna:accompany(false);
 
				poff('join');
 
				pon('stay');
 
			end; 
 
		};
 
		{ tag = "stay", always = "true", "Оставайся на Левиафане", "Хорошо", 
 
			function()
 
				char_phaetlarr.accompany(char_phaetlarr, false);
 
				pon('join');
 
				poff('stay');
 
			end;
 
		};
 
		{ tag = "exit", always = "true", "Это все", "Хорошо", 
 
			function() 
 
				back();
 
			end;
 
		}
 
	};
 
};
 
 
radcliffe_home_dlg = dlg {
 
	nam = "radcliffe_dlg";
 
	disp = "Уолтер Рэдклифф";
 
	hideinv = true;
 
	entered = function (s)
 
        poff("on_anna", "on_walter", "on_atlantis", "on_drake", "on_black", "on_join", "talk");
 
        if (rel_walter < 0) then
 
            pon("talk");
 
        else
 
            if (char_walter.on_anna < 2) then
 
                pon("on_anna");
 
                pon("talk");
 
            end;
 
            if (char_walter.on_black < 2) then
 
                pon("on_black");
 
                pon("talk");
 
            end;
 
            if (char_walter.on_walter < 2) then
 
                pon("on_walter");
 
                pon("talk");
 
            end;
 
            if (char_walter.on_atlantis < 2) then
 
                pon("on_atlantis");
 
                pon("talk");
 
            end;
 
            if (char_walter.on_drake < 2) then
 
                pon("on_drake");
 
                pon("talk");
 
            end;
 
            if (char_walter.on_join < 2) then
 
                pon("on_join");
 
                pon("talk");
 
            end;
 
        end;
 
        
 
        if (atl_iyh_state == 7) then
 
			pon("on_iyh");
 
		else
 
			poff("on_iyh");
 
		end;
 
	
 
		if (char_radcliffe.follow) then
 
			pon('stay');
 
			poff('join');
 
		else
 
			pon('join');
 
			poff('stay');
 
		end;
 
        psub("generic");
 
        
 
        if char_walter.on_conflict == 0 and conflict_resolved then
 
            char_walter.on_conflict = 1;
 
            if (rel_walter < 0) then
 
                return [[Уолтер при виде вас сообщает: "Неплохо, Дрейк. Нам удалось вернуть утерянную реликвию и восстановить мир между навьярскими городами. Теперь, чем скорее мы найдем Уильяма и закончим эту экспедицию, тем скорее сможем разойтись своими путями". ]];
 
            else
 
                return [[Уолтер приветствует вас: "Поздравляю, Дрейк. Нам удалось вернуть утерянную реликвию и восстановить мир между навьярскими городами. Теперь мы можем смело отправляться на поиски Уильяма". ]];
 
            end;
 
        end;
 
        
 
		return [[Уолтер задумчиво смотрит на вас. ]];
 
	end;
 
	phr = {
 
        {tag="talk"};
 
        {tag="on_black", "Что ты можешь сказать о Блэке?", function(s)
 
            char_walter.on_black = 2;
 
            return [[Уолтер пожимает плечами: "Что я могу сказать про него? Думаю, Дрейк выбрал хорошего партнера". ]];
 
        end};
 
        {tag="on_walter", "Расскажи о себе.". function(s)
 
            char_walter.on_walter = 2;
 
            return [[Уолтер пожимает плечами: "Да мне нечего рассказать. Мы с сестрой жили в Лондоне, я уже работал в Вестхейвен Трансоушен, когда наши родители погибли -- пароход, на котором они отправились в США просто не прибыл в порт назначения. Мы с Анной остались одни. Она еще даже школу не закончила тогда. А потом мы построили Надежду, Атлантиду и далее по списку. Потом мне предложили работать внизу, на станции. Я, конечно, мог тогда отказаться, уйти в другую компанию, но направление, избранное Дрейком слишком меня привлекало. Я согласился". ]];
 
        end};
 
        {tag="on_anna", "Расскажи о своей сестре, Анне.", function(s)
 
            char_walter.on_anna = 2;
 
            if (ArrayUtils.indexOf(pl.party, 'anna') ~= 0) then
 
                return [[Уолтер вздыхает: "Не думаю, что на поверхности она стала бы той, кто она сейчас. Все-таки общество поглощенных своей работой людей накладывает определенный отпечаток, я думаю. Я все еще не уверен, что взять ее на Левиафан было хорошей идеей -- Бог знает, с чем мы столкнемся в наших странствиях, но она очень этого хотела". ]];
 
            else
 
                return [[Уолтер вздыхает: "Не думаю, что на поверхности она стала бы той, кто она сейчас. Все-таки общество поглощенных своей работой людей накладывает определенный отпечаток, я думаю. То, что она осталась на станции успокаивает меня, хотя она так рвалась в эту экспедицию вместе с нами". ]];
 
            end;
 
        end};
 
        {tag="on_drake", "Что ты можешь сказать о Дрейке?", function(s)
 
            char_walter.on_drake = 2;
 
            return [[Уолтер отвечает: "Не думаю, что скажу про него больше чем кто-то еще. Послушайте Райта, Моро, быть может Даркстара, хотя черт знает, что у этого типа на уме. Они скажут вам все и даже больше. "]];
 
        end};
 
        {tag="on_join", "Почему ты решил присоединиться к нам?", function(s)
 
            char_walter.on_join = 2;
 
            if (ArrayUtils.indexOf(pl.party, 'anna') ~= 0) then
 
                if char_anna.rel_on_join >= 0 and char_walter.rel_on_join >= 0 then
 
                    return [[Уолтер Рэдклифф отвечает: "Мы с Анной очень хотели отправиться в эту экспедицию: во-первых, вам не помешает наша помощь, а во-вторых -- мы хотим узнать, что стало с экипажем Надежды". ]];
 
                elseif char_anna.rel_on_join >= 0 then
 
                    return [[Уолтер Рэдклифф отвечает: "Признаюсь, я не слишком доверял вам тогда, но Анна убедила меня отправиться на Левиафане вместе с вами. И вот мы здесь".]]
 
                elseif char_walter.rel_on_join >= 0 then
 
                    return [[Уолтер Рэдклифф отвечает: "Ты сразу мне понравился, и это пуштешествие предоставляет мне возможность узнать, что стало с экипажем Надежды. Хотя Анна не хотела отправляться с вами, я решил, что будет лучше, если мы с ней будем на борту вместе".]]
 
                else
 
                    return [[Уолтер Рэдклифф отвечает: "Скажу честно, единственная причина, почему мы отправились с вами кроется в нашем желании найти Надежду".]]
 
                end;
 
            else
 
                if (char_walter.rel_on_join >= 0) then
 
                    return [[Уолтер Рэдклифф отвечает: "Мы с Анной очень хотели отправиться в эту экспедицию, но к счастью, мне удалось уговорить ее остаться на Атлантиде. Я не хочу подвергать ее опасностям, которые могут подстерегать нас". ]];
 
                else
 
                    return [[Уолтер Рэдклифф отвечает: "Признаюсь, я не слишком доверял тебе тогда, но это единственный способ узнать, что стало с Надеждой". ]];
 
                end;
 
            end;
 
            
 
            
 
        end};
 
        {tag="on_atlantis", "Что ты думаешь об Атлантиде?", function(s)
 
            char_walter.on_atlantis = 2;
 
            return [[Уолтер отвечает: "Думаю только Райт и Уинтерлайт в полной мере осознают, насколько большим достижением для нас, для всего человечества, является постройка этой станции. Тем не менее, они, отчего-то, не спешат поделиться своими знаниями с другими. Не думаю, что сегодняшнее общество сможет по достоинству оценить новые возможности, даруемые этими технологиями. Да и что станет с навьярами? Вспомните Новый Свет, посмотрите на другие наши колонии -- хотите ли вы этого для Леарр и других?"]];
 
        end};
 
        {tag="quit", always=true, "Поговорим в другой раз. ", [[Уолтер кивает: "Хорошо".]], code [[pret();]]};
 
        {tag="generic"};
 
        {tag="questions", always=true, "У меня есть несколько вопросов. ", function(s)
 
            if (rel_anna < 0) then
 
                return [[Уолтер отрицательно качает головой: "Не сейчас, я занят". ]];
 
            else
 
                psub("questions");
 
                return [[Уолтер кивает: "Слушаю". ]];
 
            end;
 
        end};
 
		{tag="on_iyh", always=true, "Что ты можешь рассказать мне о храме?", [[Уолтер пожимает клечами: "Возможно, мы сможем разрушить вход в храм. Однако я не знаю, как навьяры на это отреагируют". ]]};
 
		{tag="join", always=true, "Я хочу, чтобы ты пошел со мной в следующий раз", "Хорошо",
 
			function()
 
				if (submarine_leviathan.suits > 1) then
 
					char_learr:accompany(false);
 
					char_phaetlarr:accompany(false);
 
					char_radcliffe:accompany(true);
 
					char_wright:accompany(false);
 
					char_anna:accompany(false);
 
					pon('stay');
 
					poff('join');
 
					return [[Я готов]];
 
				else
 
					-- TODO сообщать это только если в партии есть навьяры
 
					return [[У нас не хватит оборудования. Лучше возьми кого-нибудь из навьяров]];
 
				end;
 
			end;  
 
		};
 
		{tag="stay", always="true", "Оставайся на Левиафане", "Хорошо", 
 
			function()
 
				char_radcliffe.accompany(char_radcliffe, false);
 
				pon('join');
 
				poff('stay');
 
			end;
 
		};
 
		{tag="exit", always="true", "Это все", "Хорошо", 
 
			function() 
 
				back();
 
			end;
 
		};      
 
	};
 
};
 
 
wright_main_dlg = dlg {
 
	nam = "wright_main_dlg";
 
	disp = "Джек Райт";
 
	entered = function(s)
 
		if (atl_iyh_state == 7) then
0 comments (0 inline, 0 general)