Changeset - f75538f0cc0b
[Not reviewed]
default
0 6 1
Silverwing - 8 years ago 2016-06-27 14:51:30

Leviathan crew improvements. IYH2 placeholder
7 files changed with 245 insertions and 25 deletions:
0 comments (0 inline, 0 general)
atlantis.lua
Show inline comments
 
global {
 
	atl_jack_in_party = false;
 
	atl_lev_available = false;
 
	atl_lev_state = 0;
 
	
 
	atl_iof_completed = false;
 
	atl_iof_learr_dead = false;
 
@@ -50,8 +50,14 @@ atl_aqua_corridor_b = room {
 
	]];
 
	way = {
 
		kh_vroom("В гостевой док A", function()
 
			pr("Люк наглухо задраен. Вы не сможете его открыть. ");
 
			return false;
 
			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("Люк наглухо задраен. Вы не сможете его открыть. ");
atlantis_dlg.lua
Show inline comments
 
@@ -101,7 +101,7 @@ char_moreau_dlg = dlg {
 
	entered = function(s)
 
		if (atl_lfc_state == 3) then
 
			atl_lfc_state = 4;
 
			
 
			atl_lev_state = 1;
 
			local reputation = 0;
 
			if (atl_rep_darkstar > 0) then
 
				reputation = reputation + 1;
 
@@ -379,7 +379,7 @@ char_svetlova_dlg = dlg {
 
			"Отлично. Даркстару я сообщу, что одобряю возвращение вам Левиафана".
 
		]]};
 
		{"А что будет, если мы принесем им реликвию, которая должна по их мнению быть в Ираафаанотре? Разве они не посчитают, что мы украли ее оттуда? ", [[
 
			"Это маловероятно. Впрочем вы правы. Поступайте как знаете".
 
			"Это маловероятно. Впрочем, поступайте как знаете".
 
		]], code [[ back(); ]]};
 
	};
 
};
 
@@ -526,7 +526,7 @@ char_learr_atlantis_dlg = dlg {
 
			Леарр кивает, все еще находясь в явном возбуждении: "Ты говорить-пришел? Ты говори".
 
		]], code [[ psub("generic"); ]]};
 
		{"У меня не было выбора", [[
 
			Леарр кажется неприятно удивленной вашими словами, однако она все равно говорит: "Все-равно-я благодарю вас. Ты говори".
 
			Леарр кажется неприятно удивленной вашими словами, однако она все равно говорит: "Я благодарю вас. Ты говори".
 
		]], code [[ rel_learr = rel_learr - 1; psub("generic"); ]]};
 
		{tag="generic"};
 
		{"Расскажи о конфликте между вашими городами", [[
 
@@ -546,7 +546,12 @@ char_learr_atlantis_dlg = dlg {
 
		{tag="iyh_agree"};
 
		{"Я согласен. Только так мы докажем Дипатреанотру, что вы ни при чем", [[
 
			"Вы сообщите, когда вы готовы-будете. Мы позже-поговорим". 
 
		]], code [[ atl_iyh_state = 6; back(); ]]};
 
		]], code [[ 
 
			lifeon("char_learr");
 
			table.insert(pl.party, 'learr');
 
			atl_iyh_state = 6; 
 
			back(); 
 
		]]};
 
		{"Лучше я отправлюсь один", [[
 
			"Нельзя-так. Священное-место-храм. Другие-yhe-na'vji'a'rr не-одобрят". 
 
		]]};
 
@@ -631,7 +636,7 @@ char_aikerjarr_dlg = dlg {
 
		{tag="legend"};
 
		{"[Рассказать легенду об Излучающем Тьму]", [[
 
			Аикерьярр кивает: "Ты не-совсем-глупый. Ты слушай меня. Я не-хочу-в-храм-пускать тебя. Но я понимаю, yhe ты мои-слова-подтвердишь. Ты скажешь Ry'vee'rr yhe мы вместе-отправимся в-храм и реливкию-вернем. Ты уходи".
 
		]], code [[ atl_iyh_state = 6; back(); ]]};
 
		]], code [[ lifeon("char_aikerjarr_lev");table.insert(pl.party, 'aikerjarr'); atl_iyh_state = 6; back(); ]]};
 
	};
 
};
 
 
@@ -1408,4 +1413,43 @@ char_jones_dlg = dlg {
 
			"До встречи".
 
		]], code [[ back(); ]]};
 
	};
 
};
 
 
atl_lev_radcliffe_dlg = room {
 
	nam = "Уолтер Рэдклифф";
 
	dsc = [[
 
		В доке Левиафана вы встречаете Уолтера Рэдклиффа. Завидев вас он говорит: "Дрейк, какая встреча. Я только что поместил на Левиафан два скафандра, которые вам выделили Моро с Райтом. Хорошо, что я вас встретил. Я хотел бы присоединиться к экипажу Левиафана и предложить вам свою помощь в поисках Уильяма".
 
	]];
 
	phr = {
 
		{"Как к этому отнесутся на Атлантиде?", [[
 
			"Я уже обговорил это с Моро и Райтом. Они не против моего решения, тем более, что они не меньше вас заинтересованы в успехе вашей экспедиции".
 
		]]};
 
		{"Благодарю, добро пожаловать на борт", [[
 
			"Отлично, благодарю. У меня есть еще одна просьба. Я хотел бы, чтобы моя сестра отправилась вместе с нами. Она знает язык навьяров и может оказаться крайне полезна во множестве ситуаций, кроме того - так она остается под моим присмотром".
 
		]], code [[
 
			lifeon("char_radcliffe");
 
			table.insert(pl.party, 'radcliffe');
 
			psub("sister");
 
		]]};
 
		{tag="sister"};
 
		{"Я не думаю, что ей место на Левиафане - экспедиция может быть опасна", function(s)
 
			if (ArrayUtils.indexOf(pl.party, 'learr') ~= 0) then
 
				walk(atl_lev_first_sail);
 
				return [[
 
					"Вы правы, Анне будет безопаснее остаться на Атлантиде. Я знаю, что с вами отправляется Леарр, которая достаточно хорошо знает наш язык, так что я надеюсь, что мы справимся без помощи моей сестры. Я скоро прибуду" - с этими словами он выходит из дока.
 
				]];
 
			else
 
				return [[
 
					"Я хотел бы, чтобы Анна отправилась с нами - я лично позабочусь о ее безопасности, а вам понадобится человек, долгое время посвятивший изучению культуры навьяров".
 
				]];
 
			end;
 
		end};
 
		{"Хорошо, ее помощь нам не помешает", [[
 
			"Отлично, мы скоро будем готовы" - с этим словами он выходит из дока.
 
		]], [[
 
			lifeon("char_anna");
 
			table.insert(pl.party, 'anna');
 
			walk(atl_lev_first_sail);
 
		]]};
 
	};
 
};
 
\ No newline at end of file
atlantis_iyhehevjiarr.lua
Show inline comments
 
new file 100644
 
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)
 
		print("wright");
 
		if (where(pl).leviathan) then
 
			print("wright:leviathan");
 
			if (stead.nameof(where(s)) ~= s.home) then
 
				print("wright:goinghome");
 
				move(s, s.home, where(s));
 
			end;
 
		else
 
			print("wright:following");
 
			move(s, where(pl), where(s));
 
		end;
 
	end;
 
	act = function(s)
 
		if (stead.nameof(where(s)) == s.home) then
 
			walkin(wright_home_dlg);
 
		else
 
			walkin(wright_dlg);
 
		end;
 
	end;
 
};
leviathan.lua
Show inline comments
 
@@ -30,7 +30,7 @@ submarine_leviathan = obj {
 
	-- TODO описание составлять из реального состояния подводной лодки.
 
	act = [[ Несмотря на проведенные в бездействии годы, субмарина сейчас в отличном состоянии. Из иллюминаторов льется яркий свет. На борту виднеется слегка пошарпанная, но читаемая надпись "А04 - Левиафан" ]];
 
	-- user data
 
	suits = 0; -- Количество водолазных костюмов. К демо-версии неприменимо
 
	suits = 0; -- Количество водолазных костюмов.
 
	battery = false; -- Состояние батареи 
 
	battery_charge = 100; -- Уровень заряда батареи
 
	circuit_breaks = 2; -- Разрывы цепи
main.lua
Show inline comments
 
@@ -31,6 +31,7 @@ dofile "atlantis_intro.lua"
 
dofile "atlantis_ignis_on_fire.lua"
 
dofile "atlantis_looking_for_clues.lua"
 
dofile "atlantis_from_the_ashes.lua"
 
dofile "atlantis_iyhehevjiarr.lua"
 
-- Часть 3
 
-- Часть 4
 
dofile "final_scene.lua";
party.lua
Show inline comments
 
-- TODO больше отвлеченных диалогов, дабы было о чем поговорить с сопартийцами. Не стоит делать их деревянными безжизненными манекенами
 
char_learr = obj {
 
	var {
 
		follow = true;
 
	};
 
	nam = "learr";
 
	disp = "Леарр";
 
	dsc = function(s)
 
@@ -42,6 +45,9 @@ char_learr = obj {
 
};
 
 
char_phaetlarr = obj {
 
	var {
 
		follow = true;
 
	};
 
	nam = "phaetlarr";
 
	disp = "Фаэтларр";
 
	dsc = function(s)
 
@@ -84,6 +90,9 @@ char_phaetlarr = obj {
 
};
 
 
char_radcliffe = obj {
 
	var {
 
		follow = true;
 
	};
 
	nam = "radcliffe";
 
	disp = "Уолтер Рэдклифф";
 
	dsc = function(s)
 
@@ -126,6 +135,9 @@ char_radcliffe = obj {
 
};
 
 
char_wright = obj {
 
	var {
 
		follow = true;
 
	};
 
	nam = "wright";
 
	disp = "Джек Райт";
 
	dsc = function(s)
 
@@ -171,6 +183,51 @@ char_wright = obj {
 
	end;
 
};
 
 
char_anna = obj {
 
	var {
 
		follow = true;
 
	};
 
	nam = "anna";
 
	disp = "Анна Рэдклифф";
 
	dsc = function(s)
 
		if (stead.nameof(where(s)) == s.home) then
 
			return [[
 
				{Анна Рэдклифф} смотрит в иллюминатор. ^
 
			]];
 
		else
 
			return [[
 
				{Анна Рэдклифф} ждет ваших указаний. ^
 
			]];
 
		end;
 
	end;
 
	home = "leviathan_wardroom";
 
	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 (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 = "Леарр";
 
@@ -191,10 +248,11 @@ learr_home_dlg = dlg {
 
	phr = {
 
		{ tag = "join", always = "true", "Я хочу, чтобы ты пошла со мной в следующий раз", "Хорошо", 
 
			function()
 
				char_learr.accompany(char_learr, true);
 
				char_phaetlarr.accompany(char_phaetlarr, false);
 
				char_radcliffe.accompany(char_radcliffe, false);
 
				char_wright.accompany(char_wright, false);
 
				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;
 
@@ -234,10 +292,11 @@ phaetlarr_home_dlg = dlg {
 
	phr = {
 
		{ tag = "join", always = "true", "Я хочу, чтобы ты пошел со мной в следующий раз", "Хорошо",
 
			function()
 
				char_learr.accompany(char_learr, false);
 
				char_phaetlarr.accompany(char_phaetlarr, true);
 
				char_radcliffe.accompany(char_radcliffe, false);
 
				char_wright.accompany(char_wright, false);
 
				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; 
 
@@ -278,10 +337,11 @@ radcliffe_home_dlg = dlg {
 
		{ tag = "join", always = "true", "Я хочу, чтобы ты пошел со мной в следующий раз", "Хорошо",
 
			function()
 
				if (submarine_leviathan.suits > 1) then
 
					char_learr.accompany(char_learr, false);
 
					char_phaetlarr.accompany(char_phaetlarr, false);
 
					char_radcliffe.accompany(char_radcliffe, true);
 
					char_wright.accompany(char_wright, false);
 
					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 [[Я готов]];
 
@@ -326,10 +386,11 @@ wright_home_dlg = dlg {
 
		{ tag = "join", always = "true", "Я хочу, чтобы ты пошел со мной в следующий раз", 
 
			function()
 
				if (submarine_leviathan.suits > 1) then
 
					char_learr.accompany(char_learr, false);
 
					char_phaetlarr.accompany(char_phaetlarr, false);
 
					char_radcliffe.accompany(char_radcliffe, false);
 
					char_wright.accompany(char_wright, true);
 
					char_learr:accompany(false);
 
					char_phaetlarr:accompany(false);
 
					char_radcliffe:accompany(false);
 
					char_wright:accompany(true);
 
					char_anna:accompany(false);
 
					pon('stay');
 
					poff('join');
 
					return [[Я готов]];
 
@@ -354,3 +415,51 @@ wright_home_dlg = dlg {
 
	};
 
};
 
 
anna_home_dlg = dlg {
 
	nam = "anna_home_dlg";
 
	disp = "Анна Рэдклифф";
 
	hideinv = true;
 
	entered = function(s)
 
		if (char_anna.follow) then
 
			pon('stay');
 
			poff('join');
 
		else
 
			pon('join');
 
			poff('stay');
 
		end;
 
		return [[
 
			Анна ждет ваших указаний
 
		]];
 
	end;
 
	phr = {
 
		{ tag = "join", always = "true", "Я хочу, чтобы ты пошла со мной в следующий раз", 
 
			function()
 
				if (submarine_leviathan.suits > 1) then
 
					char_learr:accompany(false);
 
					char_phaetlarr:accompany(false);
 
					char_radcliffe:accompany(false);
 
					char_wright:accompany(false);
 
					char_anna:accompany(true);
 
					pon('stay');
 
					poff('join');
 
					return [[Я готова]];
 
				else
 
					-- TODO сообщать это только если в партии есть навьяры
 
					return [[У нас не хватит оборудования. Лучше возьми кого-нибудь из навьяров]];
 
				end;
 
			end; 
 
		};
 
		{ tag = "stay", always = "true", "Оставайся на Левиафане", "Хорошо", 
 
			function()
 
				char_anna:accompany(false);
 
				pon('join');
 
				poff('stay');
 
			end;
 
		};
 
		{ tag = "exit", always = "true", "Это все", "Хорошо", 
 
			function() 
 
				back();
 
			end;
 
		}
 
	};
 
};
 
\ No newline at end of file
wright.lua
Show inline comments
 
@@ -189,6 +189,7 @@ wright_dlg = dlg {
 
		{always = true, "Мне удалось починить \"Левиафан\". Мне понадобится помощник на борту ", [[
 
			Джек поднимается с кресла и одевает пальто: "Безусловно, я готов", - сообщает вам он. "Здесь меня ничто не держит, а там... Я хочу попытаться найти моего отца, раз уж выдался такой шанс".
 
		]], code [[ 
 
			lifeon("char_wright");
 
			table.insert(pl.party, 'wright');
 
			walk('leviathan_wardroom'); 
 
		]]};
0 comments (0 inline, 0 general)