Changeset - f16f3ae5a5b1
[Not reviewed]
default
0 6 0
Silverwing - 8 years ago 2016-07-31 10:50:06

Chapter 1 complete
6 files changed with 124 insertions and 46 deletions:
0 comments (0 inline, 0 general)
atlantis_catching_the_tail.lua
Show inline comments
 
@@ -6,6 +6,27 @@ ctt_iraa_city = room {
 
	dsc = [[
 
		Вы находитесь у центра навьярского поселения Ираафаанотр. Поверхность под вами словно сделана из цельного куска камня. Несколько каменных строений возвышаются поблизости. 
 
	]];
 
	underwater = true;
 
	entered = function(s)
 
		if (ArrayUtils.indexOf(pl.party, 'learr') ~= 0 and not char_learr.follow) then
 
			pr [[
 
				Леарр входит в шлюз вслед за вами: "Я вместе-с-тобой-пойду".
 
			]];
 
			
 
			char_learr:accompany(true);
 
			char_radcliffe:accompany(false);
 
			char_wright:accompany(false);
 
			char_anna:accompany(false);
 
		elseif (ArrayUtils.indexOf(pl.party, 'anna') ~= 0 and not char_anna.follow) then
 
			pr [[
 
				Анна входит в шлюз вслед за вами: "Я пойду вместе с вами, вам наверняка понадобится помощь".
 
			]];
 
			char_learr:accompany(false);
 
			char_radcliffe:accompany(false);
 
			char_wright:accompany(false);
 
			char_anna:accompany(true);
 
		end;
 
	end;
 
	obj = {
 
		"ctt_iraa_obelisk",
 
		"ctt_iraa_chieftain",
 
@@ -25,7 +46,11 @@ ctt_iraa_obelisk = obj {
 
			pr [[
 
				Каменный обелиск, на который нанесено название города. Внизу вы видите какие-то символы, но вы не понимаете их назначения. 
 
			]];
 
			
 
			if (char_learr.follow) then
 
				pr [[
 
					По головным плавникам Леарр бегут цветные полосы: "[Схема показывает к-храму-дорогу. Когда мы на-левиафан-вернемся, я покажу как добраться туда]".
 
				]];
 
			end;
 
			if (char_anna.follow) then
 
				pr [[
 
					Анна подходит к вам и внимательно осматривает символы. вы слышите ее голос в динамиках: "Это путь к храму. Когда вернемся на Левиафан, я покажу это место на нашей карте".
 
@@ -106,6 +131,7 @@ ctt_iraa_near_temple = room {
 
		state = 0;
 
	};
 
	nam = "Храм Ираафаанотра, вход";
 
	underwater = true;
 
	dsc = [[
 
		Храм Ираафаанотра представляет собой обычную пещеру в скале неподалеку от города. Над входом в пещеру вытесан символ, раскрашенный цветами Ираафаанотра. 
 
	]];
 
@@ -775,11 +801,24 @@ ctt_dyp_city = room {
 
	dsc = [[
 
		Вы находитесь на окраине Дипатреанотра. 
 
	]];
 
	underwater = true;
 
	way = {
 
		kh_vroom("В Левиафан", "leviathan_airlock");
 
	};
 
	entered = function(s)
 
		if ArrayUtils.indexOf(pl.party, 'anna') ~= 0 and not char_anna.follow then
 
			char_learr:accompany(false);
 
			char_radcliffe:accompany(false);
 
			char_wright:accompany(false);
 
			char_anna:accompany(true);
 
			return [[
 
				Вы не успеваете выйти, как в шлюз входит Анна. Она говорит: "Я пойду с вами. Я знаю навьярский язык и, надеюсь, буду полезна".
 
			]];
 
		end;
 
	end;
 
	obj = {
 
		
 
		"ctt_dyp_guards",
 
		"ctt_dyp_priest"
 
	};
 
};
 
 
@@ -841,6 +880,23 @@ ctt_dyp_temple_entrance = room {
 
	dsc = [[
 
		Храм Дипатреанотра, так же как и другие храмы навьяров, располагается внутри скалы. Вы находитесь перед главным входом - массивные каменные двери закрывают проход в скале, ведующий внутрь храма. Двери украшены орнаментом в виде спирали, закручиващейся против часовой стрелки.
 
	]];
 
	underwater = true;
 
	entered = function(s)
 
		char_learr:accompany(false);
 
		char_radcliffe:accompany(false);
 
		char_wright:accompany(false);
 
		char_anna:accompany(false);
 
			
 
		if ArrayUtils.indexOf(pl.party, 'learr') ~= 0 then
 
			return [[
 
				Вы слышите по радио голос Леарр: "Ты-Дрейк один-пойдешь. Другим нельзя-в-храм-войти".
 
			]];
 
		elseif ArrayUtils.indexOf(pl.party, 'anna') ~= 0 then
 
			return [[
 
				Вы слышите по радио голос Анны: "Дрейк, тебе придется идти одному - испытание можно пройти лишь в одиночку. Удачи".
 
			]];
 
		end;
 
	end;
 
	obj = {
 
		"ctt_dyp_temple_guard"
 
	};
atlantis_iyhehevjiarr.lua
Show inline comments
 
@@ -66,6 +66,7 @@ char_aikerjarr_lev = obj {
 
iyh_far_from_entrance_foot = room {
 
	nam = "Океан";
 
	handwheel_room = "iyh_far_from_entrance";
 
	underwater = true;
 
	no_exit = [[
 
		Нет смысла покидать Левиафан здесь. 
 
	]];
items.lua
Show inline comments
 
@@ -576,4 +576,7 @@ item_talk_device = obj {
 
item_suit = suit {
 
	dlg = "call_leviathan";
 
	nam = "Скафандр";
 
	--cantakeoff = function(s)
 
	--	return not where(pl).underwater;
 
	--end;
 
};
 
\ No newline at end of file
leviathan.lua
Show inline comments
 
@@ -52,13 +52,23 @@ leviathan_airlock = darkroom {
 
	dsc_halflit = "Вы находитесь в шлюзовом отсеке Левиафана. В слабом свете лампы вы с трудом различаете очертания дверей и предметов. ";
 
	dsc_dark = "Вы находитесь в шлюзовом отсеке Левиафана. В темноте вы не можете ничего различить. ";
 
	way = {
 
		kh_vroom("В кают-компанию", "leviathan_wardroom", 1);
 
		kh_vroom("В кают-компанию", function(s)
 
			if (have(item_suit)) then
 
				remove(item_suit, pl);
 
			end;
 
			return "leviathan_wardroom";
 
		end, 1);
 
		kh_vroom("Наружу", function()
 
			local val = EngineUtils.getValue(where(submarine_leviathan).no_exit);
 
			if (val) then
 
				pr(val);
 
				return false;
 
			else
 
				if (where(submarine_leviathan).underwater) then
 
					put(item_suit, pl);
 
				elseif (have(item_suit)) then
 
					remove(item_suit, pl);
 
				end;
 
				return where(submarine_leviathan);
 
			end;
 
		end, 2);
 
@@ -778,7 +788,7 @@ leviathan_dlg = dlg {
 
			end;
 
		end;]]
 
		leviathan_dlg:poff("atlantis", "old_temple", "iraaphaanotrr", "iraaphaanotrr_temple", "dypatreanotrr", "dypatreanotrr_temple");
 
		if (atlantis_found and where(submarine_leviathan) ~= atlantis_dock) then
 
		if (atlantis_found and where(submarine_leviathan) ~= atl_aqua_leviathan_dock) then
 
			leviathan_dlg:pon("atlantis");
 
		end;
 
		if (temple_found and where(submarine_leviathan) ~= iyh_far_from_entrance_foot) then
 
@@ -806,7 +816,7 @@ leviathan_dlg = dlg {
 
		{tag="atlantis", always = "true", "Атлантида", function()
 
			return "Вы прибыли в Атлантиду";
 
		end, function()
 
			move(submarine_leviathan, "atlantis_dock");
 
			move(submarine_leviathan, "atl_aqua_leviathan_dock");
 
			leviathan_dlg:update_options();
 
		end},
 
		{tag="old_temple", always = "true", "Старый храм", function()
main.lua
Show inline comments
 
@@ -159,7 +159,8 @@ function init()
 
	lifeon(char_aikerjarr_lev);
 
	pl.party = {'learr', 'wright', 'radcliffe', 'anna'};
 
	atlantis_found = true;
 
	move(submarine_leviathan, "iyh_far_from_entrance_foot");
 
	move(submarine_leviathan, "ctt_dyp_temple_entrance");
 
	--move(submarine_leviathan, "iyh_far_from_entrance_foot");
 
	pl.where = leviathan_wheelhouse;
 
	submarine_leviathan.battery = true; -- Состояние батареи 
 
	submarine_leviathan.battery_charge = 100; -- Уровень заряда батареи
 
@@ -183,14 +184,21 @@ function init()
 
	leviathan_lower_deck.has_light = true;
 
	leviathan_life_support.has_light = true;
 
	atl_iyh_state = 7;
 
	]]
 
	--]]
 
	
 
	pl.where = "atlantis_intro_dock";
 
	put(item_lamp, pl);
 
	--- Chapter 1: Atlantis
 
	put(item_toolbox, pl);
 
	put(item_duct_tape, pl);
 
	pl.where = "leviathan_airlock";
 
	atlantis_found = true;
 
	move(submarine_leviathan, "atl_aqua_leviathan_dock");
 
	pl.party = {'wright'};
 
	
 
	--put(item_suit, pl);
 
	
 
	-- pl.where = warehouse_32;
 
	-- pl.where = w32_mgr;
 
	-- put(item_toolbox, pl);
 
	
 
	-- put(item_cogs, pl);
 
	-- put(item_pump_details, pl);
 
	-- put(item_electrodes, pl);
utils.lua
Show inline comments
 
@@ -320,44 +320,44 @@ function obscured_obj(nam, dsc_a, act_a,
 
	};
 
end;
 
 
_atlantis_suit_menu = dlg {
 
	nam = "Скафандр";
 
	_item = nil;
 
	dsc = [[
 
		Что вы хотите сделать?
 
	]];
 
	phr = {
 
		{1, always = "true", "Использовать рацию", function(s)
 
			local val = EngineUtils.getValue(_atlantis.suit_menu._item.dlg, _atlantis.suit_menu._item);
 
			if (val) then
 
				walkin(val);
 
				stead.ref(val).__from__ = _atlantis.suit_menu.__from__;
 
			else
 
				back();
 
				return "Никто не отвечает";
 
			end;
 
		end};
 
		{2, always = "true", "Снять скафандр", function(s)
 
			if (EngineUtils.getValue(_atlantis_suit_menu._item.cantakeoff, _atlantis_suit_menu._item)) then
 
				drop(_atlantis._uit_menu._item);
 
				back();
 
				return "Вы снимаете скафандр";
 
			else
 
				back();
 
				return "Вы не можете снять скафандр сейчас";
 
			end;
 
		end};
 
		{3, always = "true", "Отмена", function(s)
 
			back();
 
			return "";
 
		end};
 
	};
 
};
 
 
_atlantis = {
 
	suit_menu = dlg {
 
		nam = "Скафандр";
 
		_item = nil;
 
		dsc = [[
 
			Что вы хотите сделать?
 
		]];
 
		phr = {
 
			{1, always = "true", "Использовать рацию", function(s)
 
				local val = EngineUtils.getValue(_atlantis.suit_menu._item.dlg, _atlantis.suit_menu._item);
 
				if (val) then
 
					walkin(val);
 
					stead.ref(val).__from__ = _atlantis.suit_menu.__from__;
 
				else
 
					back();
 
					return "Никто не отвечает";
 
				end;
 
			end};
 
			{2, always = "true", "Снять скафандр", function(s)
 
				if (EngineUtils.getValue(_atlantis.suit_menu._item.cantakeoff, _atlantis.suit_menu._item)) then
 
					drop(_atlantis.suit_menu._item);
 
					back();
 
					return "Вы снимаете скафандр";
 
				else
 
					back();
 
					return "Вы не можете снять скафандр сейчас";
 
				end;
 
			end};
 
			{3, always = "true", "Отмена", function(s)
 
				back();
 
				return "";
 
			end};
 
		};
 
	};
 
	
 
	suit_inv = function(s)
 
		_atlantis.suit_menu._item = s;
 
		walkin(_atlantis.suit_menu);
 
		_atlantis_suit_menu._item = s;
 
		walkin(_atlantis_suit_menu);
 
	end;
 
};
 
0 comments (0 inline, 0 general)