File diff 41623c973e58 → 0bbb7a374b5d
leviathan.lua
Show inline comments
 
@@ -43,27 +43,33 @@ submarine_leviathan = obj {
 
	-- TODO описание составлять из реального состояния подводной лодки.
 
	act = [[ Несмотря на проведенные в бездействии годы, субмарина сейчас в отличном состоянии. Из иллюминаторов льется яркий свет. На борту виднеется слегка пошарпанная, но читаемая надпись "А04 - Левиафан" ]];
 
};
 
 
leviathan_airlock = darkroom {
 
	nam = "leviathan_airlock";
 
	disp = "Левиафан, шлюз";
 
	leviathan = true;
 
	dsc_lit = "Вы находитесь в шлюзовом отсеке Левиафана. Яркий свет электрических ламп освещает помещение. ";
 
	dsc_halflit = "Вы находитесь в шлюзовом отсеке Левиафана. В слабом свете лампы вы с трудом различаете очертания дверей и предметов. ";
 
	dsc_dark = "Вы находитесь в шлюзовом отсеке Левиафана. В темноте вы не можете ничего различить. ";
 
	way = {
 
		kh_vroom("Кают-компания", "leviathan_wardroom", 1);
 
		kh_vroom("В кают-компанию", "leviathan_wardroom", 1);
 
		kh_vroom("Наружу", function()
 
			return where(submarine_leviathan);
 
			local val = EngineUtils.getValue(where(submarine_leviathan).no_exit);
 
			if (val) then
 
				pr(val);
 
				return false;
 
			else
 
				return where(submarine_leviathan);
 
			end;
 
		end, 2);
 
	};
 
};
 
 
leviathan_captains_cabin = darkroom {
 
	nam = "leviathan_captains_cabin";
 
	disp = "Левиафан, каюта капитана";
 
	leviathan = true;
 
	dsc_lit = [[
 
		Вы находитесь в каюте, очевидно, предназначенной для капитана. Эта каюта немного больше остальных, в ней размещен стол и стул. 
 
		В столе несколько ящичков, хитроумно закрытых, чтобы при качке они не открывались.
 
	]];
 
@@ -145,25 +151,25 @@ leviathan_corridor = darkroom {
 
		Вы находитесь в длинном коридоре с множеством дверей, ведущих в каюты, расположенные по левому борту.
 
	]];
 
	dsc_dark = [[
 
		Вы находитесь в темном коридоре. В темноте ничего не видно. 
 
	]];
 
	way = {
 
		kh_vroom("В каюту капитана", "leviathan_captains_cabin", 1);
 
		kh_vroom("В каюту №1", "leviathan_cabin_1", 1);
 
		kh_vroom("В каюту №2", "leviathan_cabin_2", 1);
 
		kh_vroom("В каюту №3", "leviathan_cabin_3", 1);
 
		kh_vroom("В каюту №4", "leviathan_cabin_4", 1);
 
		kh_vroom("В каюту №5", "leviathan_cabin_5", 1);
 
		kh_vroom("Кают-компания", "leviathan_wardroom", 1);
 
		kh_vroom("В кают-компанию", "leviathan_wardroom", 1);
 
		kh_vroom("В грузовой отсек", "leviathan_cargo_hold", 1);
 
		kh_vroom("В машинный отсек", "leviathan_engines", 1);
 
		kh_vroom("На нижнюю палубу", "leviathan_lower_deck", 1);
 
	};
 
	obj = {
 
		'leviathan_corridor_wiring';
 
	};
 
};
 
 
leviathan_cargo_hold = darkroom {
 
	nam = "leviathan_cargo_hold";
 
	disp = "Левиафан, грузовой отсек";
 
@@ -454,44 +460,49 @@ leviathan_wheelhouse = darkroom {
 
		local view = "";
 
		if (type(where(submarine_leviathan).view) == "function") then
 
			view = where(submarine_leviathan):view();
 
		else
 
			view = where(submarine_leviathan).view;
 
		end;
 
		
 
		return [[
 
			Вы находитесь в рулевой рубке Левиафана. В темноте вы ничего не можете разглядеть, кроме трех огромных иллюминаторов. 
 
		]] .. (view);
 
	end;
 
	way = {
 
		kh_vroom("В коридор", "leviathan_corridor", 2);
 
		kh_vroom("В кают-компанию", "leviathan_wardroom", 2);
 
	};
 
	obj = {
 
		'leviathan_handwheel';
 
		'leviathan_airpump_control';
 
		'leviathan_controls';
 
		'leviathan_wheelhouse_sensors';
 
		"leviathan_wheelhouse_wiring";
 
	};
 
};
 
 
leviathan_handwheel = obj {
 
	nam = "leviathan_handwheel";
 
	dsc = [[
 
		Перед вами расположен {штурвал}. Рядом с ним расположено несколько рычагов. 
 
	]];
 
	act = function(s)
 
		if (atlantis_found and submarine_leviathan.air_level > 400000 and submarine_leviathan.circuit_breaks == 0 and submarine_leviathan.power_on) then
 
			--walkin("demo_end");
 
			walkin('leviathan_dlg');
 
			local dlg = EngineUtils.getValue(where(submarine_leviathan).handwheel_room);
 
			if (dlg) then
 
				walkin(dlg);
 
			else
 
				walkin('leviathan_dlg');
 
			end;
 
		elseif (not submarine_leviathan.power_on) then
 
			return [[
 
				Без электричества _"Левиафан"_ не сдвинется с места. 
 
			]];
 
		elseif (not atlantis_found) then
 
			return [[
 
				Вы не знаете, куда плыть. 
 
			]];
 
		elseif (submarine_leviathan.air_level <= 400000) then
 
			return [[
 
				Без воздуха вы далеко не уплывете. 
 
			]];