Changeset - 4dea9ce5157f
[Not reviewed]
default
0 5 1
Silverwing - 8 years ago 2016-07-05 09:06:06

ctt - iraa level 1 partial
6 files changed with 399 insertions and 14 deletions:
0 comments (0 inline, 0 general)
atlantis_catching_the_tail.lua
Show inline comments
 
new file 100644
 
ctt_iraa_entrance = room {
 
	nam = "Центр Ираафаанотра";
 
	dsc = [[
 
		Вы находитесь у центра навьярского поселения Ираафаанотр. Поверхность под вами словно сделана из цельного куска камня. Несколько каменных строений возвышаются поблизости. 
 
	]];
 
	obj = {
 
		"ctt_iraa_obelisk",
 
		"ctt_iraa_chieftain",
 
		"ctt_iraa_guards"
 
	};
 
};
 
 
ctt_iraa_obelisk = obj {
 
	nam = "ctt_iraa_obelisk";
 
	dsc = [[
 
		Недалеко от вас стоит {обелиск}, на котором светящимися красками нанесено название города. 
 
	]];
 
	act = function(s)
 
		if (ctt_iraaphaanotrr_chieftain.state == 1) then
 
			iraaphaanotrr_found = true;
 
		
 
			pr [[
 
				Каменный обелиск, на который нанесено название города. Внизу вы видите какие-то символы, но вы не понимаете их назначения. 
 
			]];
 
			
 
			if (char_anna.follow) then
 
				pr [[
 
					Анна подходит к вам и внимательно осматривает символы. вы слышите ее голос в динамиках: "Это путь к храму. Когда вернемся на Левиафан, я покажу это место на нашей карте".
 
				]];
 
			end;
 
		else
 
			pr [[
 
				Каменный обелиск, на который нанесено название города. Внизу вы видите какие-то символы, но вы не понимаете их назначения. 
 
			]];
 
		end;
 
	end;
 
};
 
 
ctt_iraa_guards = npc {
 
	nam = "ctt_iraa_guards";
 
	dsc = [[
 
		Рядом с вождем стоят двое {стражников}, вооруженных копьями.
 
	]];
 
	phr = {
 
		[[
 
			"Ты с-вождем-говори".
 
		]],
 
		[[
 
			"Что ты хочешь?"
 
		]],
 
		[[
 
			"Я ничего-знаю. Ты вождя-спроси".
 
		]]
 
	};
 
};
 
 
ctt_iraa_chieftain = npc {
 
	var {
 
		state = 0;
 
	};
 
	nam = "ctt_iraa_chieftain";
 
	dsc = [[
 
		Перед вами стоит {вождь} Ираафаанотра.
 
	]];
 
	dlg = "ctt_iraa_chieftain_dlg";
 
};
 
 
ctt_iraa_chieftain_dlg = dlg {
 
	nam = "Вождь Ираафаанотра";
 
	entered = function(s)
 
		if (have(item_navjiarr_chart_1)) then
 
			pon("charts");
 
		else
 
			poff("charts");
 
		end;
 
		return [[
 
			Перед вами стоит вождь Ираафаантора - немолодой навьяр. На шее у него коралловое ожерелье. Он внимательно осматривает вас. После чего по его головным плавникам начинают бежать цветные полосы: "[Мы рады-видеть вас. Я знаю, зачем вы пришли]".
 
		]];
 
	end;
 
	phr = {
 
		{tag="charts", false, "Мне нужны карты из храма", [[
 
			Вождь отрицательно качает головой: "[Мы не дадим их вам сейчас]".
 
		]]};
 
		{"Вы можете нам помочь?", [[
 
			Вождь кивает: "[Вы идите в храм. Вы там что ищете найдете. Вы возвращайтесь потом. Я помогу вам еще]". 
 
		]]};
 
		{tag="temple", false, "Как мы найдем храм?", [[
 
			Вождь указывает на символы в нижней части обелиска.
 
		]], code [[
 
			ctt_iraaphaanotrr_chieftain.state = 1;
 
		]]};
 
		{always=true, "Мы пойдем", [[
 
			Вождь прощается с вами: "[Вы возвращайтесь. Нам есть что обсудить]".
 
		]], code = [[
 
			back();
 
		]]};
 
	};
 
};
 
 
 
ctt_iraa_near_temple = room {
 
	var {
 
		state = 0;
 
	};
 
	nam = "Храм Ираафаанотра, вход";
 
	dsc = [[
 
		Храм Ираафаанотра представляет собой обычную пещеру в скале неподалеку от города. Над входом в пещеру вытесан символ, раскрашенный цветами Ираафаанотра. 
 
	]];
 
	entered = function(s)
 
		if (char_anna.follow and s.state == 0) then
 
			pr [[
 
				В динамиках скафандра вы слышите голос Анны Рэдклифф: "Этот символ - ни что иное, как карта, указывающая путь к городу. В отличие от самого города, здесь я не вижу указаний ни на одно место, кроме храма и Ираафаанотра". 
 
			]];
 
		end;
 
		s.state = 1;
 
	end;
 
	way = {
 
		vroom("Войти", "ctt_iraa_temple_entrance");
 
		vroom("В Левиафан", "leviathan_airlock");
 
	};
 
};
 
 
ctt_iraa_temple_entrance = darkroom {
 
	nam = "Храм Ираафаанотра, первый этаж";
 
	dsc_halflit = [[
 
		Вы находитесь в небольшом темном проходе естественного происхождения. Проход позади вас ведет к выходу. Перед собой вы видите узкий проход, ведущий вглубь пещеры.
 
	]];
 
	dsc_dark = [[
 
		В темноте вы с трудом различаете очертания стен пещеры. 
 
	]];
 
	entered = function(s)
 
		if (char_anna.follow) then
 
			char_anna.accompany(false);
 
			pr [[
 
				В динамиках вы слышите голос Анны Рэдклифф: "Глаза навьяров лучше приспособлены к темноте, поэтому они нормально ориентируются в этих помещениях. Будь готов к тому, что с зажженой лампой ты не увидишь всего. Я подожду тебя здесь". 
 
			]];
 
		end;
 
		
 
		if (char_learr.follow) then
 
			char_learr.accompany(false);
 
			pr [[
 
				Вы видите цветный полосы, бегущие по плавникам Леарр: "Уильям-ты в-полной-темноте-только-все-увидишь. Свет-здесь-не-друг. Я здесь-тебя-жду".
 
			]];
 
		end;
 
	end;
 
	obj = {
 
		"ctt_iraa_l1_hint"
 
	};
 
	way = {
 
		kh_vroom("Вглубь пещеры", "ctt_iraa_l1_front", 1);
 
		kh_vroom("К выходу", "ctt_iraa_near_temple", 2);
 
	};
 
};
 
 
ctt_iraa_l1_hint = obj {
 
	nam = "ctt_iraa_l1_hint";
 
	dsc = function(s)
 
		if (pl.has_light) then
 
			return [[
 
				На полу перед вами лежит большая металлическая {пластина}, покрытая странными узорами. 
 
			]];
 
		else
 
			return [[
 
				На полу перед вами лежит большая металлическая {пластина}, покрытая узорами, отражающими свет проникающий от входа. 
 
			]];
 
		end;
 
	end;
 
	act = function(s)
 
		if (pl.has_light) then
 
			return [[
 
				Вы рассматриваете пластину со всех сторон, но не можете понять, для чего она здесь. 
 
			]];
 
		else
 
			return [[
 
				В темноте вы видите проступающие на пластине контуры коридора:
 
				00110
 
				00010
 
				0K111
 
				K1001
 
				0011K
 
			]];
 
		end;
 
	end;
 
};
 
 
ctt_iraa_l1_front = darkroom {
 
	nam = "Храм Ираафаанотра, первый этаж";
 
	dsc_halflit = [[
 
		Вы стоите перед входом в большую комнату. В отличие от коридора в котором вы находитесь, к ее созданию явно причастны разумные существа. 
 
		Перед собой вы видите прямоугольное помещение разделенное на двадцать пять квадратов, 
 
	]];
 
	dsc_dark = [[
 
		Вы стоите посреди темной пещеры. В темноте вы не видите даже пути назад.
 
	]];
 
	way = {
 
		kh_vroom("Вглубь пещеры", "ctt_iraa_l1", 1);
 
		kh_vroom("К выходу", "ctt_iraa_temple_entrance", 1);
 
	};
 
};
 
 
ctt_iraa_l1_map = {
 
	{0, 0, 1, 1, "item_ctt_iraa_key3"};
 
	{"item_ctt_iraa_key2", 1, 0, 0, 1};
 
	{0, "item_ctt_iraa_key1", 1, 1, 1};
 
	{0, 0, 0, 1, 0};
 
	{0, 0, 1, 1, 0};
 
};
 
 
ctt_iraa_l1 = darkroom {
 
	var {
 
		px = 3;
 
		py = 1;
 
	};
 
	nam = "Храм Ираафаанотра, первый этаж";
 
	forcedsc = true;
 
	
 
	entered = function(s)
 
		if (where(item_ctt_iraa_key1) ~= pl) then
 
			item_ctt_iraa_key1:disable();
 
		end;
 
		if (where(item_ctt_iraa_key2) ~= pl) then
 
			item_ctt_iraa_key2:disable();
 
		end;
 
		if (where(item_ctt_iraa_key3) ~= pl) then
 
			item_ctt_iraa_key3:disable();
 
		end;
 
		
 
		if (ctt_iraa_l1_map[s.py][s.px] ~= 1 and ctt_iraa_l1_map[s.py][s.px] ~= 0 and where(ctt_iraa_l1_map[s.py][s.px]) ~= pl) then
 
			print "enable item"
 
			stead.ref(ctt_iraa_l1_map[s.py][s.px]):enable();
 
		end; 
 
	end;
 
	
 
	dsc_halflit = function(s)
 
		
 
	end;
 
	
 
	dsc_dark = [[
 
		Вы стоите в темном помещении. Ни единого проблеска света.
 
	]];
 
	
 
	obj = {
 
		"item_ctt_iraa_key1",
 
		"item_ctt_iraa_key2",
 
		"item_ctt_iraa_key3"
 
	};
 
	
 
	way = {
 
		kh_vroom("Вперед", function(s)
 
			if (ctt_iraa_l1.px == 4 and ctt_iraa_l1.py == 5) then
 
				return ctt_iraa_l1_front;
 
			end;
 
			
 
			ctt_iraa_l1.py = ctt_iraa_l1.py + 1;
 
			
 
			if (ctt_iraa_l1.py == 5 and ctt_iraa_l1.px ~= 3) then
 
				path("Вперед", ctt_iraa_l1):disable();
 
			else
 
				path("Вперед", ctt_iraa_l1):enable();
 
			end;
 
			
 
			if (ctt_iraa_l1_map[ctt_iraa_l1.py][ctt_iraa_l1.px] == 0) then
 
				return "game_over_trap";
 
			else
 
				return "ctt_iraa_l1";
 
			end;
 
		end, 1);
 
		kh_vroom("Назад", function(s)
 
			if (px == 3 and py == 1) then
 
				return ctt_iraa_l1_front;
 
			end;
 
			
 
			ctt_iraa_l1.py = ctt_iraa_l1.py - 1;
 
			
 
			if (ctt_iraa_l1.py == 1 and ctt_iraa_l1.px ~= 3) then
 
				path("Назад", ctt_iraa_l1):disable();
 
			else
 
				path("Назад", ctt_iraa_l1):enable();
 
			end;
 
			
 
			if (ctt_iraa_l1_map[ctt_iraa_l1.py][ctt_iraa_l1.px] == 0) then
 
				return "game_over_trap";
 
			else
 
				return "ctt_iraa_l1";
 
			end;
 
		end, 1);
 
		kh_vroom("Налево", function(s)
 
			ctt_iraa_l1.px = ctt_iraa_l1.px - 1;
 
		
 
			if (ctt_iraa_l1.px == 1) then
 
				path("Налево", ctt_iraa_l1):disable();
 
			else
 
				path("Налево", ctt_iraa_l1):enable();
 
			end;
 
			
 
			if (ctt_iraa_l1_map[ctt_iraa_l1.py][ctt_iraa_l1.px] == 0) then
 
				return "game_over_trap";
 
			else
 
				return "ctt_iraa_l1";
 
			end;
 
		end, 1);
 
		kh_vroom("Направо", function(s)
 
			ctt_iraa_l1.px = ctt_iraa_l1.px + 1;
 
			
 
			if (ctt_iraa_l1.px == 5) then
 
				path("Направо", ctt_iraa_l1):disable();
 
			else
 
				path("Направо", ctt_iraa_l1):enable();
 
			end;
 
			
 
			if (ctt_iraa_l1_map[ctt_iraa_l1.py][ctt_iraa_l1.px] == 0) then
 
				return "game_over_trap";
 
			else
 
				return "ctt_iraa_l1";
 
			end;
 
		end, 1);
 
	};
 
};
 
 
item_ctt_iraa_key1 = obj {
 
	nam = "item_ctt_iraa_key1";
 
	disp = "Красный ключ";
 
	seen_level = 1;
 
	dsc = [[
 
		На полу рядом с вами валяется небольшой {ключик}.
 
	]];
 
	inv = [[
 
		Небольшой коралловый ключик красноватого цвета. 
 
	]];
 
	tak = [[
 
		Вы забираете ключик себе.
 
	]];
 
};
 
 
item_ctt_iraa_key2 = obj {
 
	nam = "item_ctt_iraa_key2";
 
	disp = "Зеленый ключ";
 
	seen_level = 1;
 
	dsc = [[
 
		На полу рядом с вами валяется небольшой {ключик}.
 
	]];
 
	inv = [[
 
		Небольшой коралловый ключик зеленоватого цвета. 
 
	]];
 
	tak = [[
 
		Вы забираете ключик себе.
 
	]];
 
};
 
 
item_ctt_iraa_key3 = obj {
 
	nam = "item_ctt_iraa_key3";
 
	disp = "Синий ключ";
 
	seen_level = 1;
 
	dsc = [[
 
		На полу рядом с вами валяется небольшой {ключик}.
 
	]];
 
	inv = [[
 
		Небольшой коралловый ключик синеватого цвета. 
 
	]];
 
	tak = [[
 
		Вы забираете ключик себе.
 
	]];
 
};
 
\ No newline at end of file
atlantis_iyhehevjiarr.lua
Show inline comments
 
@@ -1211,13 +1211,13 @@ iyh_outro_svetlova = room {
 
			Вы отправляетесь в свою комнату, чтобы отдохнуть. Утром, к вам входит Екатерина и отдает часть табличек, найденных вами: "Это вам понадобится в поисках отца. Эти таблички помогут вам проследовать путем Уильяма. Я уже говорила, что он отправился на поиски древнего навьярского города, Лсэрианотра. Должно быть, он сделал копии этих диаграмм. Но здесь не все просто - это лишь фрагменты карт и чтобы воспользоваться ими, вам придется найти недостающие части. К сожалению, я не знаю, где их можно найти. Но, скорее всего, знают навьяры. 
 
		] ];
 
		if (not atl_iof_learr_dead) then
 
			pr [[
 
			pr [ [
 
				Вам следует начать с Ираафаанотра - родного города Леарр. Наверняка, она согласится отправиться туда с вами". 
 
			]];
 
			] ];
 
		else
 
			pr [[
 
			pr [ [
 
				Рядом с нами расположено два города - Дипатреанотр и Ираафаанотр, и я советую вам их посетить". 
 
			]];
 
			] ];
 
		end;]]
 
		pr [[
 
			Вы отправляетесь в свою комнату, чтобы отдохнуть. Утром, вас вызывает по телефону Екатерина Светлова: "Дрейк, пройдите ко мне. У меня есть кое что для вас".
game_over.lua
Show inline comments
 
@@ -113,4 +113,13 @@ game_over_ignis = room {
 
	dsc = [[
 
		У вас кружится голова от нестерпимого жара. Не в силах стоять, вы опускаетесь на горячий пол. С каждым вдохом вы чувствуете едкий дым, проникающий в ваши легкие. Леарр подбегает к вам, чтобы помочь. Вы пытаетесь подняться, но падаете снова и теряете сознание. 
 
	]];
 
};
 
 
game_over_trap = room {
 
	nam = "Игра окончена";
 
	disp = "Игра окончена";
 
	hideinv = true;
 
	dsc = [[
 
		Вы делаете шаг  и не успеваете понять, как пол под вами проваливается и вы падаете в пропасть. 
 
	]];
 
};
 
\ No newline at end of file
items.lua
Show inline comments
 
@@ -540,4 +540,9 @@ item_talk_device = obj {
 
	inv = [[
 
		Небольшое устройство с клавиатурой и большим количеством цветных лампочек. Оно полностью герметично и может быть использовано под водой. 
 
	]];
 
};
 
 
item_suit = suit {
 
	dlg = "call_leviathan";
 
	nam = "Скафандр";
 
};
 
\ No newline at end of file
main.lua
Show inline comments
 
@@ -32,6 +32,7 @@ dofile "atlantis_ignis_on_fire.lua"
 
dofile "atlantis_looking_for_clues.lua"
 
dofile "atlantis_from_the_ashes.lua"
 
dofile "atlantis_iyhehevjiarr.lua"
 
dofile "atlantis_catching_the_tail.lua"
 
-- Часть 3
 
-- Часть 4
 
dofile "final_scene.lua";
 
@@ -51,8 +52,9 @@ global {
 
	leviathan_discovered = false;
 
	atlantis_found = false;
 
	temple_found = false;
 
	iraaphaanotrr_found = false;
 
	dypatreanotrr_found = false;
 
	nearest_cities_found = false;
 
	iraaphaanotrr_temple_found = false;
 
	dypatreanotrr_temple_found = false;
 
	
 
	rel_phaetlarr = 0;
 
	rel_walter = 0;
 
@@ -147,15 +149,14 @@ function init()
 
	warehouse32_init();
 
	---game init
 
	pl.where = intro;
 
	---debug
 
	-- atl_lfc_state = 1;
 
	-- char_svetlova_dlg.state = 2;
 
	
 
	---debug	
 
	--[[
 
	---IYH
 
	lifeon(char_learr);
 
	lifeon(char_wright);
 
	lifeon(char_radcliffe);
 
	lifeon(char_anna);
 
	--lifeon(char_aikerjarr_lev);
 
	lifeon(char_aikerjarr_lev);
 
	pl.party = {'learr', 'wright', 'radcliffe', 'anna'};
 
	atlantis_found = true;
 
	move(submarine_leviathan, "iyh_far_from_entrance_foot");
 
@@ -182,6 +183,11 @@ function init()
 
	leviathan_lower_deck.has_light = true;
 
	leviathan_life_support.has_light = true;
 
	atl_iyh_state = 7;
 
	]]
 
	
 
	pl.where = "ctt_iraa_near_temple";
 
	put(item_lamp, pl);
 
	
 
	-- pl.where = warehouse_32;
 
	-- pl.where = w32_mgr;
 
	-- put(item_toolbox, pl);
utils.lua
Show inline comments
 
@@ -216,13 +216,15 @@ function darkroom(tab)
 
	end;
 
	if (not tab.dsc) then
 
		tab.dsc = function(s)
 
			local lt;
 
			if (s.has_light) then
 
				return s.dsc_lit;
 
				lt = EngineUtils.getValue(s.dsc_lit);
 
			elseif (pl.has_light) then
 
				return s.dsc_halflit;
 
				lt = EngineUtils.getValue(s.dsc_halflit);
 
			else
 
				return s.dsc_dark;
 
				lt = EngineUtils.getValue(s.dsc_dark);
 
			end;
 
			return lt;
 
		end;
 
	end;
 
	
0 comments (0 inline, 0 general)