Changeset - dda2579e66e8
[Not reviewed]
default
0 4 0
Silverwing - 8 years ago 2016-05-01 10:52:45

nih implemented
4 files changed with 287 insertions and 37 deletions:
0 comments (0 inline, 0 general)
atlantis.lua
Show inline comments
 
global {
 
	atl_jack_in_party = false;
 
	atl_iof_completed = false;
 
	atl_nih_started = false;
 
	atl_nih_completed = false;
 
	atl_nih_state = 0;
 
	atl_rep_moreau = 0;
 
	atl_rep_darkstar = 0;
 
	atl_rep_svetlova = 0;
 
@@ -40,7 +39,8 @@ atl_aqua_corridor_b = room {
 
		kh_vroom("В главный коридор", "atl_aqua_main_corridor");
 
	};
 
	obj = {
 
		"atl_illuminators"
 
		"atl_illuminators",
 
		"atl_nih_tubes_aqua_b"
 
	};
 
};
 
 
@@ -64,7 +64,7 @@ atl_aqua_leviathan_dock = room {
 
};
 
 
atl_aqua_corridor_a = room {
 
	nam = "Атлантида, Аква, коридор B";
 
	nam = "Атлантида, Аква, коридор A";
 
	dsc = [[
 
		Широкий коридор, освещенный ярким светом электрических ламп. В одном конце коридора расположена шлюзовая дверь, ведущая, судя по надписи на ней в основной коридор секции _"Аква"_. По бокам коридора вы видите еще несколько дверей, ведущие к докам, закрепленным за субмаринами, приписанными к станции. 
 
	]];
 
@@ -84,7 +84,8 @@ atl_aqua_corridor_a = room {
 
		kh_vroom("В главный коридор", "atl_aqua_main_corridor");
 
	};
 
	obj = {
 
		"atl_illuminators"
 
		"atl_illuminators",
 
		"atl_nih_tubes_aqua_a"
 
	};
 
};
 
 
@@ -112,14 +113,15 @@ atl_aqua_main_corridor = room {
 
		end);
 
		kh_vroom("В коридор A", "atl_aqua_corridor_a");
 
		kh_vroom("В коридор B", "atl_aqua_corridor_b");
 
		kh_vroom("В секцию \"Доминус\"", "atl_intersection_aqua_dominus");
 
		kh_vroom("В секцию \"Доминус\"", "atl_intersection_aqua_dom");
 
	};
 
	obj = {
 
		"atl_illuminators"
 
		"atl_illuminators",
 
		"atl_nih_tubes_aqua"
 
	};
 
};
 
 
atl_intersection_aqua_dominus = room {
 
atl_intersection_aqua_dom = room {
 
	nam = "Атлантида, межсекционный коридор";
 
	dsc = [[
 
		Небольшой коридор, расположенный между секциями станции. Яркий свет электрическихз ламп освещает помещение. 
 
@@ -139,13 +141,14 @@ atl_dom_main_near_aqua = room {
 
		Огромный круглый зал с куполообразным потолком. Потолок частично сделан из стекла, открывая прекрасный вид на водную толщу. Яркий свет электрических ламп освещает помещение. Рядом с вами расположен шлюз, ведущий в соседнюю секцию.
 
	]];
 
	way = {
 
		kh_vroom("В секцию \"Аква\"", "atl_intersection_aqua_dominus");
 
		kh_vroom("В секцию \"Аква\"", "atl_intersection_aqua_dom");
 
		kh_vroom("К северо-западной части", "atl_dom_main_nw");
 
		kh_vroom("К северной части", "atl_dom_main_n");
 
		kh_vroom("К северо-восточной части", "atl_dom_main_ne");
 
	};
 
	obj = {
 
		-- TODO добавить скамейки, табличку секции Аква, воздуховоды
 
		-- TODO добавить скамейки, табличку секции Аква
 
		"atl_nih_tubes_near_aqua"
 
	};
 
};
 
 
@@ -210,7 +213,8 @@ atl_dom_main_near_a = room {
 
		kh_vroom("В коридор A", "atl_dom_corridor_a");
 
	};
 
	obj = {
 
		-- TODO добавить воздуховоды, табличку
 
		-- TODO добавить табличку
 
		"atl_nih_panel_near_a"
 
	};
 
};
 
 
@@ -284,6 +288,7 @@ atl_dom_main_near_adm = room {
 
	};
 
	obj = {
 
		-- TODO добавить скамейки, воздуховоды
 
		"atl_nih_panel_near_admin"
 
	};
 
};
 
 
@@ -342,60 +347,60 @@ atl_dom_main_se = room {
 
atl_dom_main_near_luna = room {
 
	nam = "Атлантида, Доминус, центральный зал, у входа в секцию \"Луна\"";
 
	dsc = [[
 
		Огромный круглый зал с куполообразным потолком. Потолок частично сделан из стекла, открывая прекрасный вид на водную толщу. Яркий свет электрических ламп освещает помещение. Рядом с вами находится шлюз, ведущий в кабинет секцию \"Луна\". 
 
		Огромный круглый зал с куполообразным потолком. Потолок частично сделан из стекла, открывая прекрасный вид на водную толщу. Яркий свет электрических ламп освещает помещение. Рядом с вами находится шлюз, ведущий в секцию "Луна". 
 
	]];
 
	way = {
 
		kh_vroom("К юго-западной части", "atl_dom_main_sw");
 
		kh_vroom("К шлюзу в секцию \"Окулус\"", "atl_dom_main_near_oculus");
 
		kh_vroom("В секцию \"Луна\"", "atl_intersection_luna_dominus");
 
		kh_vroom("В секцию \"Луна\"", "atl_intersection_luna_dom");
 
	};
 
	obj = {
 
		-- TODO добавить воздуховоды
 
		"atl_nih_panel_near_luna"
 
	};
 
};
 
 
atl_dom_main_near_oculus = room {
 
	nam = "Атлантида, Доминус, центральный зал, у входа в секцию \"Окулус\"";
 
	dsc = [[
 
		Огромный круглый зал с куполообразным потолком. Потолок частично сделан из стекла, открывая прекрасный вид на водную толщу. Яркий свет электрических ламп освещает помещение. Рядом с вами находится шлюз, ведущий в кабинет секцию \"Окулус\". 
 
		Огромный круглый зал с куполообразным потолком. Потолок частично сделан из стекла, открывая прекрасный вид на водную толщу. Яркий свет электрических ламп освещает помещение. Рядом с вами находится шлюз, ведущий в секцию "Окулус". 
 
	]];
 
	way = {
 
		kh_vroom("К юго-западной части", "atl_dom_main_sw");
 
		kh_vroom("В секцию \"Окулус\"", "atl_intersection_oculus_dominus");
 
		kh_vroom("В секцию \"Окулус\"", "atl_intersection_oculus_dom");
 
		kh_vroom("К шлюзу в секцию \"Луна\"", "atl_dom_main_near_luna");
 
	};
 
	obj = {
 
		-- TODO добавить воздуховоды
 
		"atl_nih_boxes_near_oculus"
 
	};
 
};
 
 
atl_dom_main_near_terra = room {
 
	nam = "Атлантида, Доминус, центральный зал, у входа в секцию \"Терра\"";
 
	dsc = [[
 
		Огромный круглый зал с куполообразным потолком. Потолок частично сделан из стекла, открывая прекрасный вид на водную толщу. Яркий свет электрических ламп освещает помещение. Рядом с вами находится шлюз, ведущий в кабинет секцию \"Терра\". 
 
		Огромный круглый зал с куполообразным потолком. Потолок частично сделан из стекла, открывая прекрасный вид на водную толщу. Яркий свет электрических ламп освещает помещение. Рядом с вами находится шлюз, ведущий в секцию "Терра". 
 
	]];
 
	way = {
 
		kh_vroom("В секцию \"Терра\"", "atl_intersection_terra_dominus");
 
		kh_vroom("В секцию \"Терра\"", "atl_intersection_terra_dom");
 
		kh_vroom("К шлюзу в секцию \"Арктос\"", "atl_dom_main_near_arctos");
 
		kh_vroom("К юго-восточной части", "atl_dom_main_se");
 
	};
 
	obj = {
 
		-- TODO добавить воздуховоды
 
		"atl_nih_boxes_near_terra"
 
	};
 
};
 
 
atl_dom_main_near_arctos = room {
 
	nam = "Атлантида, Доминус, центральный зал, у входа в секцию \"Арктос\"";
 
	dsc = [[
 
		Огромный круглый зал с куполообразным потолком. Потолок частично сделан из стекла, открывая прекрасный вид на водную толщу. Яркий свет электрических ламп освещает помещение. Рядом с вами находится шлюз, ведущий в кабинет секцию \"Арктос\". 
 
		Огромный круглый зал с куполообразным потолком. Потолок частично сделан из стекла, открывая прекрасный вид на водную толщу. Яркий свет электрических ламп освещает помещение. Рядом с вами находится шлюз, ведущий в секцию "Арктос". 
 
	]];
 
	way = {
 
		kh_vroom("К юго-восточной части", "atl_dom_main_se");
 
		kh_vroom("К шлюзу в секцию \"Терра\"", "atl_dom_main_near_oculus");
 
		kh_vroom("В секцию \"Арктос\"", "atl_intersection_arctos_dominus");
 
		kh_vroom("В секцию \"Арктос\"", "atl_intersection_arctos_dom");
 
	};
 
	obj = {
 
		-- TODO добавить воздуховоды
 
		"atl_nih_tubes_near_arctos"
 
	};
 
};
 
 
@@ -440,7 +445,7 @@ atl_dom_administator_room = room {
 
	};
 
};
 
 
atl_intersection_luna_dominus = room {
 
atl_intersection_luna_dom = room {
 
	nam = "Атлантида, межсекционный коридор";
 
	dsc = [[
 
		Небольшой коридор, расположенный между секциями станции. Яркий свет электрических ламп освещает помещение. 
 
@@ -454,7 +459,7 @@ atl_intersection_luna_dominus = room {
 
	};
 
};
 
 
atl_intersection_arctos_dominus = room {
 
atl_intersection_arctos_dom = room {
 
	nam = "Атлантида, межсекционный коридор";
 
	dsc = [[
 
		Небольшой коридор, расположенный между секциями станции. Яркий свет электрических ламп освещает помещение. 
 
@@ -476,10 +481,11 @@ atl_luna_main_corridor = room {
 
	way = {
 
		kh_vroom("В вашу комнату", "atl_luna_drake_room");
 
		kh_vroom("В общую комнату", "atl_luna_common_room");
 
		kh_vroom("В секцию \"Доминус\"", "atl_intersection_luna_dominus");
 
		kh_vroom("В секцию \"Доминус\"", "atl_intersection_luna_dom");
 
	};
 
	obj = {
 
		"atl_illuminators"
 
		"atl_illuminators",
 
		"atl_nih_tubes_luna"
 
	};
 
};
 
 
@@ -505,10 +511,11 @@ atl_arctos_main_corridor = room {
 
		kh_vroom("В комнату Голдмана", "atl_arctos_goldmans_room");
 
		kh_vroom("В комнату Джонса", "atl_arctos_jones_room");
 
	 	kh_vroom("В общую комнату", "atl_arctos_common_room");
 
		kh_vroom("В секцию \"Доминус\"", "atl_intersection_arctos_dominus");
 
		kh_vroom("В секцию \"Доминус\"", "atl_intersection_arctos_dom");
 
	};
 
	obj = {
 
		"atl_illuminators"
 
		"atl_illuminators",
 
		"atl_nih_tubes_arctos"
 
	};
 
};
 
 
@@ -558,7 +565,7 @@ atl_arctos_common_room = room {
 
	};
 
};
 
 
atl_intersection_terra_dominus = room {
 
atl_intersection_terra_dom = room {
 
	nam = "Атлантида, межсекционный коридор";
 
	dsc = [[
 
		Небольшой коридор, расположенный между секциями станции. Яркий свет электрических ламп освещает помещение. 
 
@@ -586,7 +593,10 @@ atl_terra_main_corridor = room {
 
			pr("Люк наглухо задраен. Вы не сможете его открыть. ");
 
			return false;
 
		end);
 
		kh_vroom("В секцию Доминус", "atl_intersection_terra_dominus");
 
		kh_vroom("В секцию Доминус", "atl_intersection_terra_dom");
 
	};
 
	obj = {
 
		"atl_nih_boxes_terra"
 
	};
 
};
 
 
@@ -641,7 +651,7 @@ atl_terra_workshop_d = room {
 
	};
 
};
 
 
atl_intersection_oculus_dominus = room {
 
atl_intersection_oculus_dom = room {
 
	nam = "Атлантида, межсекционный коридор";
 
	dsc = [[
 
		Небольшой коридор, расположенный между секциями станции. Яркий свет электрических ламп освещает помещение. 
 
@@ -678,7 +688,10 @@ atl_oculus_main_corridor = room {
 
			pr("Люк наглухо задраен. Вы не сможете его открыть. ");
 
			return false;
 
		end);
 
		kh_vroom("В секцию Доминус", "atl_intersection_oculus_dominus");
 
		kh_vroom("В секцию Доминус", "atl_intersection_oculus_dom");
 
	};
 
	obj = {
 
		"atl_nih_panel_oculus"
 
	};
 
};
 
 
@@ -1265,14 +1278,20 @@ char_michael_wright_dlg = dlg {
 
	disp = "Майкл Райт";
 
	entered = function(s)
 
		psub("generic");
 
		if (atl_nih_state == 2) then
 
			pon('nih_fixed');
 
		end;
 
		return [[
 
			Майкл Райт просматривает какие-то чертежи. Как только вы подходите, он отвлекается и приветствует вас: "Добрый день. Чем могу быть полезен?"
 
		]];
 
	end;
 
	phr = {
 
		{tag="generic"};
 
		{tag="nih_fixed", "Я нашел утечку", [[
 
			"Спасибо, я отправлю туда человека, чтобы он все поправил. Пока у меня больше нет для вас заданий". 
 
		]], code [[ atl_nih_state = 3; atl_rep_wright = atl_rep_wright + 1; ]];}
 
		{always=true, "Мне пора", function(s)
 
			if (not atl_nih_started and not atl_jack_in_party) then
 
			if (atl_nih_state == 0 and not atl_jack_in_party) then
 
				atl_nih_init();
 
				pr([[ "Кстати, у меня есть для вас небольшое задание. У нас где-то утечка воздуха. Ничего критичного. Просто прогуляйтесь по станции и если обнаружите, где это - сообщите мне. До встречи", -- Майкл Райт возвращается к своим делам. ]]);
 
			else
 
@@ -1427,7 +1446,7 @@ char_jones = npc {
 
	dlg = "char_jones_dlg";
 
};
 
 
char_jones_dlg = dlg{
 
char_jones_dlg = dlg {
 
	var {
 
		state = 0;
 
	};
 
@@ -1443,7 +1462,199 @@ char_jones_dlg = dlg{
 
	};
 
};
 
 
atl_nih_tubes_gen = function(nam, dsc)
 
	return obj {
 
		var {
 
			broken = false;
 
			fixed = false;
 
		};
 
		nam = nam;
 
		dsc = dsc;
 
		act = function(s)
 
			if (s.fixed) then
 
				return "Поврежденные трубы замотаны изолентой";
 
			elseif (s.broken) then
 
				return "Трубы повреждены и воздух со слабым шипением вырывается из них";
 
			else
 
				return "Трубы в порядке";
 
			end;
 
		end;
 
		use = function(s, o)
 
			if (o == item_ducttape and s.broken and not s.fixed) then
 
				s.fixed = true;
 
				atl_nih_state = 2;
 
				return [[
 
					Вы заматываете разрыв изолентой. На какое-то время такое решение сгодится. 
 
				]];
 
			end;
 
		end;
 
	};
 
end;
 
 
atl_nih_tubes_near_aqua = atl_nih_tubes_gen("atl_nih_tubes_near_aqua", [[
 
	Рядом со шлюзом из стены выходят несколько {труб}, по которым подается воздух. 
 
]]);
 
 
atl_nih_tubes_near_a = atl_nih_tubes_gen("atl_nih_tubes_near_a", [[
 
	За снятой декоративной панелью находятся несколько {труб}, по которым подается воздух. 
 
]]);
 
 
atl_nih_tubes_near_admin = atl_nih_tubes_gen("atl_nih_tubes_near_admin", [[
 
	За снятой декоративной панелью находятся несколько {труб}, по которым подается воздух. 
 
]]);
 
 
atl_nih_tubes_near_luna = atl_nih_tubes_gen("atl_nih_tubes_near_luna", [[
 
	За снятой декоративной панелью находятся несколько {труб}, по которым подается воздух. 
 
]]);
 
 
atl_nih_tubes_near_oculus = atl_nih_tubes_gen("atl_nih_tubes_near_oculus", [[
 
	Вдоль стены протянуто несколько {труб}, по которым подается воздух. 
 
]]);
 
 
atl_nih_tubes_near_terra = atl_nih_tubes_gen("atl_nih_tubes_near_oculus", [[
 
	Вдоль стены протянуто несколько {труб}, по которым подается воздух. 
 
]]);
 
 
atl_nih_tubes_near_arctos = atl_nih_tubes_gen("atl_nih_tubes_near_arctos", [[
 
	За снятой декоративной панелью находятся несколько {труб}, по которым подается воздух. 
 
]]);
 
 
atl_nih_tubes_oculus = atl_nih_tubes_gen("atl_nih_tubes_oculus", [[
 
	За снятой декоративной панелью находятся несколько {труб}, по которым подается воздух. 
 
]]);
 
 
atl_nih_tubes_terra = atl_nih_tubes_gen("atl_nih_tubes_terra", [[
 
	За снятой декоративной панелью находятся несколько {труб}, по которым подается воздух. 
 
]]);
 
 
atl_nih_tubes_luna = atl_nih_tubes_gen("atl_nih_tubes_luna", [[
 
	Под потолком протянуто несколько {труб}, по которым подается воздух. 
 
]]);
 
 
atl_nih_tubes_arctos = atl_nih_tubes_gen("atl_nih_tubes_arctos", [[
 
	Под потолком протянуто несколько {труб}, по которым подается воздух. 
 
]]);
 
 
atl_nih_tubes_aqua = atl_nih_tubes_gen("atl_nih_tubes_aqua", [[
 
	Под потолком протянуто несколько {труб}, по которым подается воздух. 
 
]]);
 
 
atl_nih_tubes_aqua_a = atl_nih_tubes_gen("atl_nih_tubes_aqua_a", [[
 
	Под потолком протянуто несколько {труб}, по которым подается воздух. 
 
]]);
 
 
atl_nih_tubes_aqua_b = atl_nih_tubes_gen("atl_nih_tubes_aqua_b", [[
 
	Под потолком протянуто несколько {труб}, по которым подается воздух. 
 
]]);
 
 
atl_nih_panel_near_a = obscured_obj("atl_nih_panel_near_a", [[
 
	Рядом со шлюзом установлена {защитная панель}, за которой скрываются трубы для подачи воздуха. 
 
]], [[
 
	Вы снимаете панель, открывая доступ к трубам. 
 
]], "atl_nih_tubes_near_a", true);
 
 
atl_nih_panel_near_admin = obscured_obj("atl_nih_panel_near_admin", [[
 
	Рядом со шлюзом установлена {защитная панель}, за которой скрываются трубы для подачи воздуха. 
 
]], [[
 
	Вы снимаете панель, открывая доступ к трубам. 
 
]], "atl_nih_tubes_near_admin", true);
 
 
atl_nih_panel_near_luna = obscured_obj("atl_nih_panel_near_luna", [[
 
	Рядом со шлюзом установлена {защитная панель}, за которой скрываются трубы для подачи воздуха. 
 
]], [[
 
	Вы снимаете панель, открывая доступ к трубам. 
 
]], "atl_nih_tubes_near_luna", true);
 
 
atl_nih_panel_oculus = obscured_obj("atl_nih_panel_oculus", [[
 
	Рядом со шлюзом установлена {защитная панель}, за которой скрываются трубы для подачи воздуха. 
 
]], [[
 
	Вы снимаете панель, открывая доступ к трубам. 
 
]], "atl_nih_tubes_oculus", true);
 
 
atl_nih_boxes_near_oculus = obscured_obj("atl_nih_boxes_near_oculus", [[
 
	За грудой {ящиков}, вы замечаете несколько труб подачи воздуха. 
 
]], [[
 
	Вы сдвигаете несколько ящиков, открывая себе доступ к трубам. 
 
]], "atl_nih_tubes_near_oculus", false, [[
 
	У стены расположена груда ящиков. 
 
]], [[
 
	Вам незачем что-то еще здесь делать. 
 
]]);
 
 
atl_nih_boxes_near_terra = obscured_obj("atl_nih_boxes_near_terra", [[
 
	За грудой {ящиков}, вы замечаете несколько труб подачи воздуха. 
 
]], [[
 
	Вы сдвигаете несколько ящиков, открывая себе доступ к трубам. 
 
]], "atl_nih_tubes_near_terra", false, [[
 
	У стены расположена груда ящиков. 
 
]], [[
 
	Вам незачем что-то еще здесь делать. 
 
]]);
 
 
atl_nih_boxes_terra = obscured_obj("atl_nih_boxes_terra", [[
 
	За грудой {ящиков}, вы замечаете несколько труб подачи воздуха. 
 
]], [[
 
	Вы сдвигаете несколько ящиков, открывая себе доступ к трубам. 
 
]], "atl_nih_tubes_terra", false, [[
 
	У стены расположена груда ящиков. 
 
]], [[
 
	Вам незачем что-то еще здесь делать. 
 
]]);
 
 
atl_nih_tubes_near_aqua:disable();
 
atl_nih_panel_near_a:disable();
 
atl_nih_panel_near_admin:disable();
 
atl_nih_panel_near_luna:disable();
 
atl_nih_boxes_near_oculus:disable();
 
atl_nih_boxes_near_terra:disable();
 
atl_nih_tubes_near_arctos:disable();
 
atl_nih_panel_oculus:disable();
 
atl_nih_boxes_terra:disable();
 
atl_nih_tubes_luna:disable();
 
atl_nih_tubes_arctos:disable();
 
atl_nih_tubes_aqua:disable();
 
atl_nih_tubes_aqua_a:disable();
 
atl_nih_tubes_aqua_b:disable();
 
 
atl_nih_init = function()
 
	atl_nih_started = true;
 
	atl_nih_state = 1;
 
	local nih_array = {
 
		atl_nih_tubes_near_aqua,
 
		atl_nih_tubes_near_a,
 
		atl_nih_tubes_near_admin,
 
		atl_nih_tubes_near_luna,
 
		atl_nih_tubes_near_oculus,
 
		atl_nih_tubes_near_terra,
 
		atl_nih_tubes_near_arctos,
 
		atl_nih_tubes_oculus,
 
		atl_nih_tubes_terra,
 
		atl_nih_tubes_luna,
 
		atl_nih_tubes_arctos,
 
		atl_nih_tubes_aqua,
 
		atl_nih_tubes_aqua_a,
 
		atl_nih_tubes_aqua_b
 
	};
 
	
 
	local nih_array2 = {
 
		atl_nih_tubes_near_aqua,
 
		atl_nih_panel_near_a,
 
		atl_nih_panel_near_admin,
 
		atl_nih_panel_near_luna,
 
		atl_nih_boxes_near_oculus,
 
		atl_nih_boxes_near_terra,
 
		atl_nih_tubes_near_arctos,
 
		atl_nih_panel_oculus,
 
		atl_nih_boxes_terra,
 
		atl_nih_tubes_luna,
 
		atl_nih_tubes_arctos,
 
		atl_nih_tubes_aqua,
 
		atl_nih_tubes_aqua_a,
 
		atl_nih_tubes_aqua_b
 
	};
 
	
 
	nih_array[rnd(#nih_array)].broken = true;
 
	
 
	for i = 1, #nih_array2 do
 
		nih_array2[i]:enable();
 
	end;
 
end;
 
\ No newline at end of file
leviathan.lua
Show inline comments
 
@@ -615,8 +615,8 @@ leviathan_wiring_used = function(s, o)
 
		if (submarine_leviathan.circuit_breaks == 0) then
 
			for i = 1, #leviathan_wiring do
 
				leviathan_wiring[i]:disable();
 
				-- TODO если игрок ТУП pr("Скорее всего, это был последний разрыв. Можно проверять. ");
 
			end;
 
			remove(item_ducttape, pl);
 
		end;
 
		return [[
 
			Вы соединяете провода и заматываете их изолентой. 
main.lua
Show inline comments
 
@@ -136,6 +136,7 @@ function init()
 
	---game init
 
	pl.where = intro;
 
	---debug
 
	atl_nih_init();
 
	pl.where = atl_dom_main_near_aqua;
 
	-- pl.where = warehouse_32;
 
	-- pl.where = w32_mgr;
utils.lua
Show inline comments
 
@@ -278,4 +278,42 @@ function input_number(tab)
 
	};
 
 
	return room(tab);
 
end;
 
 
--[[
 
	Создает obj, который добавляет другой obj на сцену при активации и становится неинтерактивным
 
	nam - имя объекта
 
	dsc_a - описание до активации
 
	dsc_b - описание после активации
 
	act_a - описание взаимодействия до активации
 
	act_b - описание взаимодействия после активации
 
	o2 - obj, добавляемый на сцену
 
	r - удаляет объект после активации
 
]]
 
function obscured_obj(nam, dsc_a, act_a, o2, r, dsc_b, act_b)
 
	return obj {
 
		var {
 
			activated = false;
 
		};
 
		nam = nam;
 
		dsc = function(s)
 
			if (s.activated) then
 
				return dsc_b;
 
			else 
 
				return dsc_a;
 
			end;
 
		end;
 
		act = function(s)
 
			if (s.activated) then
 
				return act_b;
 
			else
 
				s.activated = true;
 
				put(o2, here());
 
				if (r) then
 
					remove(r, here());
 
				end;
 
				return act_a;
 
			end;
 
		end;
 
	};
 
end;
 
\ No newline at end of file
0 comments (0 inline, 0 general)