Changeset - 7e7579e17140
[Not reviewed]
default
0 6 0
Silverwing - 9 years ago 2015-05-23 08:48:22

phone added, library added, factory added, pipe replaced with pickaxe,
descriptions altered, transitions order modified,
dialogs for party members added
6 files changed with 258 insertions and 13 deletions:
0 comments (0 inline, 0 general)
final_battle.lua
Show inline comments
 
@@ -495,7 +495,7 @@ fb_generator = obj {
 
	nam = "fb_generator",
 
	dsc = function(s)
 
		if (final_battle.generators[s.index] == 0) then
 
			return "Рядом с вами расположен огромный металлический {шкаф}, искореженный несколькими ударами тяжелого предмета. Судя по всему этот генератор выведен из строя. ^";
 
			return "Рядом с вами расположен огромный металлический {шкаф}, искореженный несколькими ударами кирки. Судя по всему этот генератор выведен из строя. ^";
 
		else
 
			return "Рядом с вами расположен огромный металлический {шкаф}, расположенный рядом с вами издает негромкий гул. На его передней стенке виден светящийся символ. Конструкция соединена толстыми проводами с троном Наэтвьирра, в центре зала. ^";
 
		end;
first_city_outer_rim.lua
Show inline comments
 
@@ -46,6 +46,7 @@ first_city_entrance = room {
 
	};
 
	way = {
 
		vroom("Левиафан", "leviathan_airlock");
 
		vroom("В здание", "first_city_library");
 
	};
 
};
 
 
@@ -83,13 +84,14 @@ first_city_outer_east = room {
 
	north = "first_city_outer_north";
 
	navigatable = true;
 
	dsc = [[
 
		Вы находитесь в восточной части внешнего кольца Лсэрианотр. Это огромный коридор, опоясывающий город по периметру. 
 
		Вы находитесь в восточной части внешнего кольца Лсэрианотр. Это огромный коридор, опоясывающий город по периметру. На востоке вы видите огромное здание с большим количеством труб, идущих до самого купола. Скорее всего, это какая-то древняя фабрика.
 
	]];
 
	view = [[
 
		Вы находитесь в восточной части внешнего кольца Лсэрианотр. Это огромный коридор, опоясывающий город по периметру. 
 
	]];
 
	way = {
 
		vroom("Левиафан", "leviathan_airlock");
 
		vroom("В здание", "first_city_factory");
 
	};
 
};
 
 
@@ -125,5 +127,67 @@ first_city_outer_north = room {
 
	]];
 
	way = {
 
		vroom("Левиафан", "leviathan_airlock");
 
		vroom("Надежда", "hope_airlock");
 
	};
 
};
 
 
first_city_factory = room {
 
	nam = "first_city_factory";
 
	disp = "Лсэрианотр, внешнее кольцо, завод";
 
	dsc = [[
 
		Помещение, в котором вы находитесь, очевидно, некогда было заводом. Конвейеры, странные механизмы, разбросанные инструменты, долгие тысячелетия лежавшие без движения. 
 
	]];
 
	obj = {
 
		"item_pickaxe",
 
		"first_city_crack"
 
	};
 
};
 
 
first_city_crack = obj {
 
	nam = "first_city_crack";
 
	dsc = "В дальней стене вы видите {трещину}. Сквозь нее пробивается слабый свет, очевидно там какое-то помещение.";
 
	act = [[
 
		Нужно чем-то расширить эту щель, если вы хотите туда попасть
 
	]];
 
	canhit = true;
 
	onhit = function(s)
 
		if (s.wide) then
 
			return "Трещина уже достаточно большая для вас, нет смысла еще что-то с ней делать."
 
		else
 
			s.wide = true;
 
			return "Несколькими осторожными ударами кирки вы расширяете трещину достаточно, чтобы пролезть внутрь."
 
		end;
 
	end;
 
};
 
 
first_city_library = room {
 
	nam = "first_city_library";
 
	disp = "Лсэрианотр, внешнее кольцо, библиотека";
 
	dsc = [[
 
		В здании вы видите огромные стеллажи, заполненные табличками из неизвестного материала. Таблички исписаны письменами Навьяров и потускнели от времени. 
 
	]];
 
	obj = {
 
		'first_city_index',
 
		'first_city_maintenance_info'
 
	};
 
};
 
 
first_city_index = obj {
 
	nam = "first_city_index";
 
	dsc = "На стене возле входа висит большая {табличка}. ";
 
	act = function(s)
 
	end;
 
};
 
 
first_city_maintenance_info = obj {
 
	nam = "first_city_index";
 
	dsc = "Один из {стеллажей} рядом со входом содержит информацию об обслуживании Лсэрианотра. Вероятно, там вы найдете то, что поможет вам отключить охранную систему города. ";
 
	act = function(s)
 
		if (s.taken) then
 
			return "Врядли вы найдете здесь что-то еще полезное. ";
 
		else
 
			take("item_service_info")
 
			return "Вы просматриваете тысячи записей и уже почти теряете всякую надежду когда натыкаетесь на табличку, описывающую сервисные тоннели города. ";
 
		end;
 
	end;
 
};
 
\ No newline at end of file
items.lua
Show inline comments
 
item_pipe = obj {
 
	nam = "pipe";
 
	disp = "Кусок трубы";
 
	inv = "Прочный, толстый кусок металлической трубы. Вполне может пригодиться";
 
item_pickaxe = obj {
 
	nam = "pickaxe";
 
	disp = "Кирка";
 
	dsc = [[
 
		Ваше внимание привлекает предмет, похожий на {кирку}^^
 
	]];
 
	tak = [[
 
		Вы решили забрать кирку с собой, на всякий случай
 
	]];
 
	inv = "Хорошая годная кирка. Сделанная из неизвестного металла она хорошо перенесла тысячелетия в соленой воде атлантического океана.";
 
	use = function(s, o)
 
		local canhit = false;
 
		if (type(o.canhit) == "function") then
 
@@ -89,4 +95,18 @@ item_first_city_key = obj {
 
			]];
 
		end;
 
	end
 
};
 
 
item_service_info = obj {
 
	nam = "service_info";
 
	disp = "Схема города";
 
	inv = [[
 
		Это "карта" сервисных тоннелей Лсэрианотра. Вы видите следующие последовательности символов, подписанные на языке навьяров
 
		Nol      
 
		Tei      
 
		Vlye'Tei 
 
		Elt'Dyle 
 
		Tei'Elt	 
 
		Tei'Tei  
 
	]];
 
};
 
\ No newline at end of file
leviathan.lua
Show inline comments
 
@@ -10,7 +10,7 @@
 
Плохо освещено - Описания минимальны, большинство действий недостпны
 
Хорошо освещено - полные описания, все действия доступны
 
 
На складе имеется три скафандра в хорошем состоянии. Без них невозможно покинуть корабль в подводных локациях. Скафандр может быть испорчен и потребует ремонта. Если оба скафандра выведены из строя их потребуется отремонтировать.
 
Скафандры придется зарабатывать на Атлантиде
 
]]
 
submarine_leviathan = obj {
 
	nam = "submarine_leviathan";
 
@@ -63,6 +63,9 @@ leviathan_captains_cabin = room {
 
	way = {
 
		vroom("Каюты", "leviathan_cabins");
 
	};
 
	obj = {
 
		"phone_cabin";
 
	};
 
};
 
 
leviathan_cabins = room {
 
@@ -97,11 +100,11 @@ leviathan_wardroom = room {
 
		Из машинного отсека доносится гул двигателей. Яркий свет электрических ламп освещает помещение. 
 
	]];
 
	way = {
 
		vroom("Машинный отсек", "leviathan_engines");
 
		vroom("Рубка", "leviathan_dlg");
 
		vroom("Шлюз", "leviathan_airlock");
 
		vroom("Каюты", "leviathan_cabins");
 
		vroom("Грузовой отсек", "leviathan_cargo_hold");
 
		vroom("Машинный отсек", "leviathan_engines");
 
	};
 
	obj = {
 
		--vway("Машинный отсек", "Из {машинного отсека} доносится легкий гул.^", "leviathan_engines");
 
@@ -110,9 +113,10 @@ leviathan_wardroom = room {
 
		--vway("Каюты", "{В каюты экипажа}^", "leviathan_cabins");
 
		--vway("Грузовой отсек", "{В грузовой отсек}^", "leviathan_cargo_hold");
 
		"char_learr";
 
		"char_phaetlarr";
 
		--"char_phaetlarr";
 
		"char_radcliffe";
 
		"char_wright";
 
		"phone_wardroom";
 
	};
 
};
 
 
@@ -127,6 +131,50 @@ leviathan_engines = room {
 
	};
 
};
 
 
phone_cabin = obj {
 
	nam = "phone_cabin";
 
	disp = "Телефон";
 
	dsc = [[
 
		На столе установлен {телефонный аппарат} для связи в пределах субмарины
 
	]];
 
	act = function(s)
 
		walkin(phone_dlg);
 
	end;
 
};
 
 
phone_wardroom = obj {
 
	nam = "phone_wardroom";
 
	disp = "Телефон";
 
	dsc = [[
 
		На столе, рядом с креслом командира установлен {телефонный аппарат} для связи в пределах субмарины
 
	]];
 
	act = function(s)
 
		walkin(phone_dlg);
 
	end;
 
};
 
 
phone_dlg = dlg {
 
	nam = "phone_dlg";
 
	disp = "Телефон";
 
	hideinv = true;
 
	dsc = [[
 
		Вы снимаете трубку и можете вызвать кого-нибудь
 
	]];
 
	entered = function(s)
 
		poff("phaetlarr", "learr", "radcliffe", "wright");
 
		for i = 1, #pl.party do
 
			pon(pl.party[i]);
 
		end;
 
	end;
 
	phr = {
 
		{ tag = "phaetlarr", always = true, "Фаэтларр", code = [[walkin(phaetlarr_dlg)]]},
 
		{ tag = "learr", always = true, "Леарр", code = [[walkin(learr_dlg)]]},
 
		{ tag = "radcliffe", always = true, "Рэдклифф", code = [[walkin(radcliffe_dlg)]]},
 
		{ tag = "wright", always = true, "Райт", code = [[walkin(wright_dlg)]]},
 
		{ tag = "exit", always = true, "Полождить трубку", code = [[back()]]}
 
	}
 
};
 
 
leviathan_dlg = dlg {
 
	nam = "leviathan_dlg";
 
	disp = "Штурвал Левиафана";
 
@@ -182,7 +230,7 @@ leviathan_dlg = dlg {
 
		end;
 
	end;
 
	enter = function(s)
 
		leviathan_dlg.update_options();
 
		s.update_options();
 
	end;
 
	phr = {
 
		{1, always = "true", "Атлантида", function()
main.lua
Show inline comments
 
@@ -80,9 +80,10 @@ pl = player {
 
	disp = "Дэвид Дрейк";
 
	where = 'port';
 
	hitpoints = 10;
 
	obj = {'item_umbrella', "item_documents", "item_note_1", "item_first_city_key", "item_colt", "item_pipe"};
 
	obj = {'item_umbrella', "item_documents", "item_note_1", "item_first_city_key", "item_colt"};
 
	-- party flags. Should be false on start
 
	party = {"learr", "radcliffe", "phaetlarr", "wright"};
 
	party = {"learr", "radcliffe", --[["phaetlarr", ]]"wright"};
 
	companion = nil;
 
};
 
 
hotel = room {
party.lua
Show inline comments
 
char_learr = obj {
 
	nam = "learr";
 
	disp = "Леарр";
 
	dsc = function()
 
	dsc = function(s)
 
		return [[
 
			{Леарр} ждет ваших указаний ^
 
		]];
 
	end;
 
	act = function(s)
 
		walkin(learr_dlg);
 
	end;
 
};
 
 
char_phaetlarr = obj {
 
@@ -16,6 +19,9 @@ char_phaetlarr = obj {
 
			{Фаэтларр} ждет ваших указаний ^
 
		]];
 
	end;
 
	act = function(s)
 
		walkin(phaetlarr_dlg);
 
	end;
 
};
 
 
char_radcliffe = obj {
 
@@ -26,6 +32,9 @@ char_radcliffe = obj {
 
			{Уолтер Рэдклифф} ждет ваших указаний ^
 
		]];
 
	end;
 
	act = function(s)
 
		walkin(radcliffe_dlg);
 
	end;
 
};
 
 
char_wright = obj {
 
@@ -36,4 +45,107 @@ char_wright = obj {
 
			{Джек Райт} ждет ваших указаний ^
 
		]];
 
	end;
 
	act = function(s)
 
		walkin(wright_dlg);
 
	end;
 
};
 
 
learr_dlg = dlg {
 
	nam = "learr_dlg";
 
	disp = "Леарр";
 
	hideinv = true;
 
	entered = function(s)
 
		return [[
 
			Леарр вопросительно смотрит на вас
 
		]];
 
	end;
 
	phr = {
 
		{ tag = "join", always = "true", "Я хочу, чтобы ты пошла со мной в следующий раз", "Хорошо", 
 
			function()
 
				char_learr.accompany = true;
 
				char_phaetlarr.accompany = false;
 
				char_radcliffe.accompany = false;
 
				char_wright.accompany = false;
 
			end;
 
		};
 
		{ tag = "exit", always = "true", "Это все", "Хорошо", 
 
			function() 
 
				back();
 
			end;
 
		}
 
	};
 
};
 
 
phaetlarr_dlg = dlg {
 
	nam = "phaetlarr_dlg";
 
	disp = "Фаэтларр";
 
	hideinv = true;
 
	entered = function(s)
 
		return [[
 
			Фаэтларр ждет ваших указаний
 
		]];
 
	end;
 
	phr = {
 
		{ tag = "join", always = "true", "Я хочу, чтобы ты пошел со мной в следующий раз", "Хорошо",
 
			function()
 
				char_learr.accompany = false;
 
				char_phaetlarr.accompany = true;
 
				char_radcliffe.accompany = false;
 
				char_wright.accompany = false;
 
			end; 
 
		};
 
		{ tag = "exit", always = "true", "Это все", "Хорошо", 
 
			function() 
 
				back();
 
			end;
 
		}
 
	};
 
};
 
 
radcliffe_dlg = dlg {
 
	nam = "radcliffe_dlg";
 
	disp = "Уолтер Рэдклифф";
 
	hideinv = true;
 
	entered = [[
 
		Уолтер задумчиво смотрит на вас
 
	]];
 
	phr = {
 
		{ tag = "join", always = "true", "Я хочу, чтобы ты пошел со мной в следующий раз", "Хорошо",
 
			function()
 
				char_learr.accompany = false;
 
				char_phaetlarr.accompany = false;
 
				char_radcliffe.accompany = true;
 
				char_wright.accompany = false;
 
			end; 
 
		};
 
		{ tag = "exit", always = "true", "Это все", "Хорошо", 
 
			function() 
 
				back();
 
			end;
 
		}
 
	};
 
};
 
 
wright_dlg = dlg {
 
	nam = "wright_dlg";
 
	disp = "Джек Райт";
 
	hideinv = true;
 
	entered = [[
 
		Джек ждет ваших указаний
 
	]];
 
	phr = {
 
		{ tag = "join", always = "true", "Я хочу, чтобы ты пошел со мной в следующий раз", "Хорошо",
 
			function()
 
				char_learr.accompany = false;
 
				char_phaetlarr.accompany = false;
 
				char_radcliffe.accompany = false;
 
				char_wright.accompany = true;
 
			end; 
 
		};
 
		{ tag = "exit", always = "true", "Это все", "Хорошо", 
 
			function() 
 
				back();
 
			end;
 
		}
 
	};
 
};
 
\ No newline at end of file
0 comments (0 inline, 0 general)