Changeset - 6a1cf9373c77
[Not reviewed]
default
0 2 0
Silverwing - 9 years ago 2015-05-23 10:17:03

party improvements
2 files changed with 199 insertions and 74 deletions:
0 comments (0 inline, 0 general)
leviathan.lua
Show inline comments
 
@@ -15,8 +15,9 @@
 
submarine_leviathan = obj {
 
	nam = "submarine_leviathan";
 
	disp = "Левиафан";
 
	suits = 0;
 
	-- dsc = [[
 
	--	Вы видите огромную металлическую конструкцию, напоминающую рыбу. Большие стеклянные иллюминаторы по бортам еще больше усиливают впечатление. На бортах крупными буквами выведено "А12 Левиафан". В верхней части машины вы видите {люк}.^ 
 
	--	Вы видите огромную металлическую конструкцию, напоминающую рыбу. Большие стеклянные иллюминаторы по бортам еще больше усиливают впечатление. На бортах крупными буквами выведено "А04 Левиафан". В верхней части машины вы видите {люк}.^ 
 
	--]];
 
	dsc = [[
 
		Вы видите "{Левиафан}" - вашу субмарину. ^
 
@@ -257,7 +258,7 @@ leviathan_dlg = dlg {
 
		{5, always = "true", "Вперед, в город", function()
 
			if (first_city_entrance.open) then
 
				return [[
 
					Движимый вашей умелой рукой, Левиафан вплывает в ворота. Оказавшись среди светящихся стен древнего города, вы отключаете прожектор.
 
					Движимый вашей рукой, Левиафан вплывает в ворота. Оказавшись среди светящихся стен древнего города, вы отключаете прожектор.
 
				]];
 
			else
 
				return [[
party.lua
Show inline comments
 
@@ -2,47 +2,19 @@ char_learr = obj {
 
	nam = "learr";
 
	disp = "Леарр";
 
	dsc = function(s)
 
		return [[
 
			{Леарр} ждет ваших указаний ^
 
		]];
 
		if (stead.nameof(where(s)) == s.home) then
 
			return [[
 
				{Леарр} стоит возле одного из иллюминаторов и наблюдает за происходящим снаружи субмарины. ^
 
			]];
 
		else
 
			return [[
 
				{Леарр} ждет ваших указаний. ^
 
			]];
 
		end;
 
	end;
 
	home = "leviathan_wardroom";
 
	accompany = function(s, value)
 
		if (value) then
 
			lifeon(s);
 
		else
 
			move(s, s.home, where(s));
 
			lifeoff(s);
 
		end;
 
	end;
 
	life = function(s)
 
		print("learr");
 
		if (where(pl).leviathan) then
 
			print("learr:leviathan");
 
			if (stead.nameof(where(s)) ~= s.home) then
 
				print("learr:goinghome");
 
				move(s, s.home, where(s));
 
			end;
 
		else
 
			print("learr:following");
 
			move(s, where(pl), where(s));
 
		end;
 
	end;
 
	act = function(s)
 
		walkin(learr_dlg);
 
	end;
 
};
 
 
char_phaetlarr = obj {
 
	nam = "phaetlarr";
 
	disp = "Фаэтларр";
 
	dsc = function()
 
		return [[
 
			{Фаэтларр} ждет ваших указаний ^
 
		]];
 
	end;
 
	home = "leviathan_engines";
 
	accompany = function(s, value)
 
		s.follow = value;
 
		if (value) then
 
			lifeon(s);
 
		else
 
@@ -60,20 +32,31 @@ char_phaetlarr = obj {
 
		end;
 
	end;
 
	act = function(s)
 
		walkin(phaetlarr_dlg);
 
		if (stead.nameof(where(s)) == s.home) then
 
			walkin(learr_home_dlg);
 
		else
 
			walkin(learr_dlg);
 
		end;
 
	end;
 
};
 
 
char_radcliffe = obj {
 
	nam = "radcliffe";
 
	disp = "Уолтер Рэдклифф";
 
	dsc = function()
 
		return [[
 
			{Уолтер Рэдклифф} ждет ваших указаний ^
 
		]];
 
char_phaetlarr = obj {
 
	nam = "phaetlarr";
 
	disp = "Фаэтларр";
 
	dsc = function(s)
 
		if (stead.nameof(where(s)) == s.home) then
 
			return [[
 
				{Фаэтларр} с интересом наблюдает за работой двигателей "Левиафана" ^
 
			]];
 
		else
 
			return [[
 
				{Фаэтларр} ждет ваших указаний. ^
 
			]];
 
		end;
 
	end;
 
	home = "leviathan_engines";
 
	accompany = function(s, value)
 
		s.follow = value;
 
		if (value) then
 
			lifeon(s);
 
		else
 
@@ -91,20 +74,73 @@ char_radcliffe = obj {
 
		end;
 
	end;
 
	act = function(s)
 
		walkin(radcliffe_dlg);
 
		if (stead.nameof(where(s)) == s.home) then
 
			walkin(phaetlarr_home_dlg);
 
		else
 
			walkin(phaetlarr_dlg);
 
		end;
 
	end;
 
};
 
 
char_radcliffe = obj {
 
	nam = "radcliffe";
 
	disp = "Уолтер Рэдклифф";
 
	dsc = function(s)
 
		if (stead.nameof(where(s)) == s.home) then
 
			return [[
 
				{Уолтер Рэдклифф} задумчиво крутит в руках какую-то деталь. ^
 
			]];
 
		else
 
			return [[
 
				{Уолтер Рэдклифф} ждет ваших указаний. ^
 
			]];
 
		end;
 
	end;
 
	home = "leviathan_engines";
 
	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(radcliffe_home_dlg);
 
		else
 
			walkin(radcliffe_dlg);
 
		end;
 
	end;
 
};
 
 
char_wright = obj {
 
	nam = "wright";
 
	disp = "Джек Райт";
 
	dsc = function()
 
		return [[
 
			{Джек Райт} ждет ваших указаний ^
 
		]];
 
	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
 
@@ -126,15 +162,27 @@ char_wright = obj {
 
		end;
 
	end;
 
	act = function(s)
 
		walkin(wright_dlg);
 
		if (stead.nameof(where(s)) == s.home) then
 
			walkin(wright_home_dlg);
 
		else
 
			walkin(wright_dlg);
 
		end;
 
	end;
 
};
 
 
learr_dlg = dlg {
 
learr_home_dlg = dlg {
 
	nam = "learr_dlg";
 
	disp = "Леарр";
 
	hideinv = true;
 
	entered = function(s)
 
		if (char_learr.follow) then
 
			pon('stay');
 
			poff('join');
 
		else
 
			pon('join');
 
			poff('stay');
 
		end;
 
	
 
		return [[
 
			Леарр вопросительно смотрит на вас
 
		]];
 
@@ -146,6 +194,15 @@ learr_dlg = dlg {
 
				char_phaetlarr.accompany(char_phaetlarr, false);
 
				char_radcliffe.accompany(char_radcliffe, false);
 
				char_wright.accompany(char_wright, 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", "Это все", "Хорошо", 
 
@@ -156,11 +213,19 @@ learr_dlg = dlg {
 
	};
 
};
 
 
phaetlarr_dlg = dlg {
 
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 [[
 
			Фаэтларр ждет ваших указаний
 
		]];
 
@@ -172,8 +237,17 @@ phaetlarr_dlg = dlg {
 
				char_phaetlarr.accompany(char_phaetlarr, true);
 
				char_radcliffe.accompany(char_radcliffe, false);
 
				char_wright.accompany(char_wright, 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();
 
@@ -182,21 +256,46 @@ phaetlarr_dlg = dlg {
 
	};
 
};
 
 
radcliffe_dlg = dlg {
 
radcliffe_home_dlg = dlg {
 
	nam = "radcliffe_dlg";
 
	disp = "Уолтер Рэдклифф";
 
	hideinv = true;
 
	entered = [[
 
		Уолтер задумчиво смотрит на вас
 
	]];
 
	entered = function (s)
 
		if (char_learr.follow) then
 
			pon('stay');
 
			poff('join');
 
		else
 
			pon('join');
 
			poff('stay');
 
		end;
 
		
 
		return [[
 
			Уолтер задумчиво смотрит на вас
 
		]];
 
	end;
 
	phr = {
 
		{ tag = "join", always = "true", "Я хочу, чтобы ты пошел со мной в следующий раз", "Хорошо",
 
			function()
 
				char_learr.accompany(char_learr, false);
 
				char_phaetlarr.accompany(char_phaetlarr, false);
 
				char_radcliffe.accompany(char_radcliffe, true);
 
				char_wright.accompany(char_wright, false);
 
			end; 
 
				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);
 
					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() 
 
@@ -206,22 +305,47 @@ radcliffe_dlg = dlg {
 
	};
 
};
 
 
wright_dlg = dlg {
 
wright_home_dlg = dlg {
 
	nam = "wright_dlg";
 
	disp = "Джек Райт";
 
	hideinv = true;
 
	entered = [[
 
		Джек ждет ваших указаний
 
	]];
 
	entered = function(s)
 
		if (char_learr.follow) then
 
			pon('stay');
 
			poff('join');
 
		else
 
			pon('join');
 
			poff('stay');
 
		end;		
 
		
 
		return [[
 
			Джек ждет ваших указаний
 
		]];
 
	end;
 
	phr = {
 
		{ tag = "join", always = "true", "Я хочу, чтобы ты пошел со мной в следующий раз", "Хорошо",
 
		{ tag = "join", always = "true", "Я хочу, чтобы ты пошел со мной в следующий раз", 
 
			function()
 
				char_learr.accompany(char_learr, false);
 
				char_phaetlarr.accompany(char_phaetlarr, false);
 
				char_radcliffe.accompany(char_radcliffe, false);
 
				char_wright.accompany(char_wright, true);
 
				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);
 
					pon('stay');
 
					poff('join');
 
					return [[Я готов]];
 
				else
 
					-- TODO сообщать это только если в партии есть навьяры
 
					return [[У нас не хватит оборудования. Лучше возьми кого-нибудь из навьяров]];
 
				end;
 
			end; 
 
		};
 
		{ tag = "stay", always = "true", "Оставайся на Левиафане", "Хорошо", 
 
			function()
 
				char_wright.accompany(char_wright, false);
 
				pon('join');
 
				poff('stay');
 
			end;
 
		};
 
		{ tag = "exit", always = "true", "Это все", "Хорошо", 
 
			function() 
 
				back();
0 comments (0 inline, 0 general)