Changeset - 6749b9519941
[Not reviewed]
default
0 3 0
Silverwing - 7 years ago 2017-01-20 10:56:32

Vars added
3 files changed with 57 insertions and 101 deletions:
0 comments (0 inline, 0 general)
images/stones.png
Show inline comments
 
binary diff not shown
Show images
london.lua
Show inline comments
 
@@ -63,12 +63,15 @@ port_street = room {
 
		vroom("В пивную лавку", "ginshop");
 
	};
 
	dsc = [[Вы с трудом пробираетесь сквозь толпы людей, спешащих по своим делам. Из порта доносятся гудки пароходов. Со всех сторон доносится шум большого города. Тяжелые черные тучи медленно плывут по небу, грозя разразиться дождем в любую минуту. ]];
 
};
 
 
char_worker = npc {
 
    var {
 
        bought = false;
 
    };
 
	nam = "char_worker";
 
	disp = "Портовый рабочий";
 
	dsc = [[На скамейке у стены склада сидит {рабочий} и курит трубку. ]];
 
	dlg = "char_worker_dlg";
 
	act = function(s)
 
		if (s.bought) then
 
@@ -163,12 +166,15 @@ ginshop = room {
 
	way = {
 
		vroom("На улицу", "port_street");
 
	};
 
};
 
 
ginshop_trader = npc {
 
    var {
 
        bought = false;
 
    };
 
	nam = "ginshop_trader";
 
	disp = "Продавец";
 
	dsc = [[За грязным прилавком, не раз залитым местными напитками, стоит пожилой {продавец}. Сквозь потрескавшееся мутное стекло в старых очках(второе отсутствует, судя по всему, уже давно) он пытается рассмотреть вас. ]];
 
	dlg = "ginshop_trader_dlg";
 
};
 
 
@@ -255,12 +261,15 @@ hotel_corridor_1 = room {
 
		vroom("В холл", "hotel_hall");
 
		vroom("В комнату №2", "hotel_room_2"):disable();
 
	};
 
};
 
 
hotel_corridor_2 = room {
 
    var {
 
        room_visited = false;
 
    };
 
	nam = "hotel_corridor_2";
 
	disp = "Гостиница, второй этаж";
 
	dsc = [[Широкий коридор без окон, освещенный газовыми лампами, укрепленными на стенах. По обе стороны от вас расположены двери, ведущие в комнаты постояльцев. ]];
 
	way = {
 
		vroom("В холл", "hotel_hall");
 
		vroom("В комнату №7", "hotel_room_7");
wright.lua
Show inline comments
 
--[[
 
Здесь игрок получает адреса всех ключевых локаций первой части
 
]]
 
door_wright = obj {
 
    var {
 
        locked = true;
 
    };
 
	nam = "door_wright";
 
	disp = "Дверь";
 
	locked = true;
 
	act = function(s)
 
		if (s.locked) then
 
			walkin "wright_entry_dlg";
 
		end;
 
		return true;
 
	end;
 
	dsc = function(s)
 
		if (s.locked) then
 
			return [[ Обшарпанная деревянная {дверь}, ведущая в дом, заперта изнутри. ^ ]];
 
			return [[Обшарпанная деревянная {дверь}, ведущая в дом, заперта изнутри. ]];
 
		else
 
			return [[ Входная дверь дома открыта. ^ ]];
 
			return [[Обшарпанная деревянная {дверь}, ведущая в дом, незаперта. ]];
 
		end;
 
	end;
 
};
 
 
char_wright_home = obj {
 
    var {
 
        known = false;
 
        documents = false;
 
    };
 
	nam = "char_wright_home";
 
	disp = "Джек Райт";
 
	dsc = function(s)
 
		if (s.documents) then
 
			return [[ ^{Джек Райт} с интересом рассматривает схемы, которые вы ему отдали^ ]];
 
			return [[За столом сидит {Джек Райт} и с интересом рассматривает схемы, которые вы ему отдали. ]];
 
		else
 
			return [[ ^Вы видите {молодого человека} одетого в недорогой, но опрятный костюм. ^ ]];
 
            if (s.known) then
 
                return [[За столом сидит {Джек Райт}, неспешно просматривая какие-то бумаги. ]];
 
            else
 
			    return [[За столом сидит {молодой человек}, неспешно просматривающий какие-то бумаги. ]];
 
            end;         
 
		end;
 
	end;
 
	act = function(s)
 
		walkin(wright_dlg);
 
	end;
 
};
 
 
wright_dlg = dlg {
 
    var {
 
        state = 1;
 
    };
 
	nam = "wright_dlg";
 
	disp = "Джек Райт";
 
	state = 1;
 
	enter  = function(s)
 
		--Небольшой костылик - вырубаем проверку на пустой диалог. Логика тут довольно запутанная и движок скорее всего ниасилит все условия
 
	end;
 
	entered = function(s)
 
		if (atlantis_found and submarine_leviathan.air_level > 400000 and submarine_leviathan.circuit_breaks == 0 and submarine_leviathan.power_on) then
 
			psub('leviathan_restored');
 
			return [[
 
				"Привет".
 
			]];
 
		elseif (s.state == 1) then
 
			--First meeting
 
			psub('first_visit');
 
			return [[
 
				"Добрый день. Я Джек Райт. Майкл мой отец, но он пропал несколько лет назад".
 
			]];
 
			return [[Перед вами молодой человек, одетый в недорогой, но опрятный костюм. Его бледное лицо украшает короткая темная борода и пышные усы. Темные волосы коротко острижены. Серые глаза с интересом разглядывают вас. Он протягивает вам руку и представляется: "Добрый день. Мое имя -- Джек Райт. Майкл -- мой отец, но он пропал несколько лет назад". ]];
 
		elseif (s.state == 2) then
 
			--Documents not given
 
			psub('ask_documents');
 
			return [[
 
				"Привет. Ты обещал какие-то документы принести".
 
			]];
 
			return [[Джек Райт отвлекается от газеты: "Добрый день. Вы обещали принести какие-то документы". ]];
 
		elseif (s.state == 3) then
 
			--Documents given
 
			if (not leviathan_discovered) then
 
				psub('checking_documents');
 
				return [[
 
					"Привет. Я пока больше ничего не нашел, приходи позже".
 
				]];
 
				return [[Джек Райт отвлекается от документов: "Добрый день. Если вы по поводу документов, то я еще ничего не нашел". ]];
 
			else
 
				s.state = 5;
 
				warehouse32_found = true;
 
				psub('warehouse_discovered');
 
				return [[
 
					"Привет, я нашел, где находится склад 32".
 
				]];
 
				return [[Джек Райт отвлекается от документов: "Добрый день. У меня хорошие новости. Я нашел склад 32", - он достает карту города и показывает вам место. ]];
 
			end;
 
		elseif (s.state == 4) then
 
			--Documents taken back
 
			psub('ask_documents2');
 
			return [[
 
				"Привет. Если вернешь бумаги, я продолжу поиски".
 
			]];
 
			return [[Джек Райт отвлекается от газеты: "Добрый день. Я хотел бы еще раз вглянуть на эти бумаги". ]];
 
		elseif (s.state == 5) then
 
			psub('empty');
 
			return [[
 
				"Привет". 
 
			]];
 
			return [[Джек Райт отвлекается от газеты: "Добрый день". ]];
 
		elseif (s.state == 6) then
 
			psub('warehouse_discovered2');
 
			return [[
 
				"Привет". 
 
			]];
 
			return [[Джек Райт отвлекается от газеты: "Добрый день". ]];
 
		elseif (s.state == 7) then
 
			psub('warehouse_discovered3');
 
			return [[
 
				"Привет". 
 
			]];
 
			return [[Джек Райт отвлекается от газеты: "Добрый день". ]];
 
		end;
 
	end;
 
	phr = {
 
		{tag='first_visit'};
 
		{"У меня есть кое-какие документы и этот адрес. Возможно они помогут понять, что произошло и куда пропали мой и твой отец. ", [[
 
			"Я просмотрел много материала. Тогда пропало больше двух десятков сотрудников Вестхейвен Трансоушен, но конкретнее я ничего сказать не могу. Если покажешь мне свои бумаги, возможно я смогу что-то сказать".
 
		]], code [[wright_dlg.state = 2; psub('ask_documents'); ]]};
 
		{"Мое имя -- Дэвид Дрейк. Мне удалось найти кое-какие документы в одном из тайников отца. Этот адрес был среди них. Вы что-то знаете о судьбе моего отца? ", [[Джек вздыхает: "Это бесполезно. Я изучил практически все, до чего сумел дотянуться - газеты, судебные дела. И ничего - никаких зацепок. Компания обанкротилась, руководители пропали". ]], code [[wright_dlg.state = 2; psub('ask_documents'); ]]};
 
		{200, tag='ask_documents'};
 
		{always = true, "[Отдать документы Джеку]", [[
 
			Джек забирает бумаги из ваших рук и тщательно их рассматривает. Через некоторое время он говорит: "Док 2 мне знаком. Отец там часто бывал. Остальные - затрудняюсь ответить. Если оставишь документы мне, я попробую поискать".
 
		]], code[[ 
 
		{always = true, "[Отдать документы]Посмотрите это. Не думаю, что вы это видели. ", [[Джек нехотя забирает бумаги из ваших рук и бегло их осматривает. Пожимая плечами, он комментирует: "Ничего интересного, просто планы старых зданий. Док 2? Отец там часто бывал, впрочем не думаю, что после 10 лет там что-то осталось. Если хотите - можете оставить документы, я попробую разузнать побольше". ]], code [[ 
 
			dock_found = true;
 
			wright_dlg.state = 3; 
 
			remove(item_charts, pl); 
 
			back(); 
 
		]]};
 
		{always = true, "У меня есть несколько вопросов", [[
 
			"Чем смогу - помогу".
 
		]], code [[psub('questions')]]};
 
		{always = true, "Я вернусь позже. ", [[
 
			"До встречи".
 
		]], code [[ back(); ]]};
 
		{always = true, "У меня есть несколько вопросов. ", [[Джек кивает: "Чем смогу - помогу". ]], code [[psub('questions')]]};
 
		{always = true, "Я вернусь позже. ", [[ Джек возвращается к своим делам: "До встречи". ]], code [[ back(); ]]};
 
		{300, tag='checking_documents'};
 
		{always = true, "Можешь вернуть мне бумаги?", [[
 
			"Забирай, только без них я ничего не смогу найти", - Джек возвращает вам документы.
 
		]], code [[
 
		{always = true, "Вы можете вернуть мне бумаги? ", [["Конечно. Если принесете их снова -- я возобновлю поиски", - Джек возвращает вам документы. ]], code [[
 
			wright_dlg.state = 4;
 
			put(item_charts, pl);
 
			back();
 
		]]};
 
		{always = true, "У меня есть несколько вопросов", [[
 
			"Чем смогу - помогу".
 
		]], code [[psub('questions')]]};
 
		{always = true, "Я вернусь позже. ", [[
 
			"До встречи".
 
		]], code [[ back(); ]]};
 
		{always = true, "У меня есть несколько вопросов. ", [[Джек кивает: "Чем смогу - помогу". ]], code [[psub('questions')]]};
 
		{always = true, "Я вернусь позже. ", [[Джек возвращается к своим делам: "До встречи". ]], code [[ back(); ]]};
 
		{400, tag='questions'};
 
		{"Ты знаешь, чем Майкл занимался в Вестхейвен Трансоушен?", [[
 
			"Частично", - Джек показывает на картину на стене: "Он проектировал корабли, был главным инженером. Перед тем, как исчезнуть, он часто запирался в этом кабинете, подолгу что-то чертил. До глубокой ночи книги читал... Никаких материалов он не оставил. Он, вообще, очень ответственно относился к этому - никто никогда не знал, чем конкретно он занимается, кроме его подчиненных и господина Дрейка. "
 
		]]};
 
		{always = true, "Вернемся к делу", [[
 
			"Слушаю"
 
		]], code [[ pret(); ]]};
 
		{"Чем ваш отец занимался в Вестхейвен Трансоушен? ", [["Частично", - Джек показывает на картину на стене: "Он проектировал корабли, был главным инженером. Перед тем, как исчезнуть, он часто запирался в этом кабинете, подолгу что-то чертил. До глубокой ночи книги читал... Никаких материалов он не оставил. Он, вообще, очень ответственно относился к этому - никто никогда не знал, чем конкретно он занимается, кроме его подчиненных и вашего отца". ]]};
 
		{always = true, "Вернемся к делу. ", [[Джек кивает: "Хорошо". ]], code [[ pret(); ]]};
 
		{500, tag='ask_documents2'};
 
		{always = true, "[Отдать документы Джеку]", [[
 
			Джек забирает бумаги и раскладывает их на своем столе.
 
		]], code[[ wright_dlg.state = 3; remove(item_charts, pl); back(); ]]};
 
		{always = true, "У меня есть несколько вопросов", [[
 
			"Чем смогу - помогу".
 
		]], code [[psub('questions')]]};
 
		{always = true, "Я вернусь позже. ", [[
 
			"До встречи".
 
		]], code [[ back(); ]]};
 
		{always = true, "[Отдать документы]Вот документы. ", [[Джек забирает бумаги и раскладывает их на своем столе: "Спасибо, я посмотрю, что смогу найти". ]], code[[ wright_dlg.state = 3; remove(item_charts, pl); back(); ]]};
 
		{always = true, "У меня есть несколько вопросов. ", [[Джек кивает: "Чем смогу - помогу". ]], code [[psub('questions')]]};
 
		{always = true, "Я вернусь позже. ", [[Джек возвращается к своим делам: "До встречи". ]], code [[ back(); ]]};
 
		{600, tag='warehouse_discovered'};
 
		{"Знаешь, что я нашел в доке? [Рассказать о Левиафане]", [[
 
			Джек мгновенно вскакивает со стула, восклицая: "Ничего себе, я должен это видеть! "
 
		]], code [[ walkin('wright_leviathan_cutscene1'); ]]};
 
		{always = true, "Отлично, я съезжу туда и посмотрю, что удастся найти. ", [[
 
			"До встречи".
 
		]], code [[ back(); ]]};
 
		{"[Рассказать о Левиафане]Я кое-что нашел в доке...", [[Джек мгновенно вскакивает со стула, восклицая: "Ничего себе, я должен это видеть!" ]], code [[ walkin('wright_leviathan_cutscene1'); ]]};
 
		{always = true, "Отлично, я съезжу туда и посмотрю, что удастся найти. ", [[Джек возвращается к своим делам: "До встречи". ]], code [[ back(); ]]};
 
		{700, tag='warehouse_discovered2'};
 
		{always = true, "На склад мне попасть не удалось. ", [[
 
			Джек с досадой стучит по столу: "Черт! "^
 
			Еще пару минут он задумчиво сидит в кресле, после чего предлагает идею: "Может попробуем попасть туда ночью? Я сам довезу тебя, но внутри все придется делать тебе. "
 
		]], code [[ 
 
			wright_dlg.state = 6;
 
@@ -262,60 +227,44 @@ wright_entry_dlg = dlg {
 
		]]};
 
	};
 
};
 
 
wright_drawing = obj {
 
	nam = 'wright_drawing';
 
	dsc = [[
 
		На одной из стен висит большая {картина}, изображающая пароход. 
 
	]];
 
	act = [[
 
		На картине во всех деталях изображен пароход _"Огненная стрела"_, принадлежавший Вестхейвен Трансоушен. Огромный пароход, полным ходом движущийся по бескрайнему океану. Яркое солнце освещает палубу, на которой находится множество пассажиров, прогуливающихся, общающихся, сидящих на скамейках. Из всех трех труб _"Огненной стрелы"_ идет густой черный дым, а на корме развевается флаг Соединенного Королевства. 
 
		Под картиной вы видите небольшую табличку с надписью: _"Майклу Райту, создателю великолепной ,,Огненной стрелы''. Альберт Мур, 1889"_
 
	]];
 
	dsc = [[На стене напротив двери висит большая {картина}, изображающая пароход. ]];
 
	act = [[На картине во всех деталях изображен пароход _"Огненная стрела"_, принадлежавший Вестхейвен Трансоушен, полным ходом идущий по бескрайнему океану. Яркое солнце освещает палубу, на которой находится множество пассажиров, прогуливающихся, общающихся, сидящих на скамейках. Из всех трех труб _"Огненной стрелы"_ идет густой черный дым, а на корме развевается флаг Соединенного Королевства. Под картиной вы видите небольшую табличку с надписью: _"Майклу Райту, создателю ,,Огненной стрелы''. Альберт Мур, 1889"_. ]];
 
};
 
 
wright_table = obj {
 
	nam = "wright_table";
 
	disp = "Стол";
 
	dsc =[[
 
		В центре комнаты стоит массивный дубовый стол. На полированной поверхности стола разбросаны в кажущемся беспорядке листы бумаги, письменные принадлежности и множество других полезных и не очень предметов. 
 
	]];
 
	obj = {
 
		
 
	};
 
	dsc =[[В центре комнаты стоит массивный дубовый стол. На его полированной поверхности разбросаны в кажущемся беспорядке бумаги, письменные принадлежности, старые газеты и другие предметы. ]];
 
};
 
 
wright_house_cabinet = room {
 
	nam = "wright_house_cabinet";
 
	disp = "Дом Райта, кабинет";
 
	dsc = [[
 
		Вы находитесь в кабинете Райта. Сквозь большие окна в комнату проникает достаточно света. Стены оклеены старыми обоями с полустершимся рисунком.
 
	]];
 
	dsc = [[Стены комнаты оклеены старыми обоями с полустершимся рисунком. Сквозь большие окна в комнату проникает достаточно света. ]];
 
	obj = {
 
        'wright_drawing',   
 
		'wright_table',
 
		'wright_drawing',
 
		'char_wright_home'
 
	};
 
	way = {
 
		vroom("В гостиную", "wright_house_front_room");
 
	};
 
};
 
 
wright_house_front_room = room {
 
	nam = "wright_house_front_room";
 
	disp = "Дом Райта, гостиная";
 
	dsc = [[
 
		Вы находитесь в гостиной в доме Райта. Окна завешены тяжелыми занавесками и в полутьме вы с трудом различаете очертания предметов интерьера - дорогих старых кресел, изящно украшенных шкафов, покрытых многолетним слоем пыли канделябров. 
 
	]];
 
	dsc = [[Окна в гостиной завешены тяжелыми занавесками и в полутьме вы с трудом различаете очертания предметов интерьера - дорогих старых кресел, изящно украшенных шкафов, покрытых многолетним слоем пыли канделябров. ]];
 
	entered = function(s)
 
		if (not s.visited) then
 
			s.visited = true;
 
			pn([[
 
				У двери стоит молодой человек, примерно вашего возраста. Как только вы заходите, он закрывает за вами дверь и просит проследовать за ним в кабинет. 
 
			]]);
 
			pn([[У двери стоит молодой человек, примерно вашего возраста. Как только вы заходите, он закрывает за вами дверь и просит проследовать за ним в кабинет. ]]);
 
		end;
 
	end;
 
	way = {
 
		vroom("На улицу", "wright_house");
 
		vroom("В кабинет", "wright_house_cabinet");
 
	};
 
@@ -324,14 +273,12 @@ wright_house_front_room = room {
 
wright_house = room {
 
	nam = "wright_house";
 
	disp = "Дом Райта";
 
	enter = function(s)
 
		put(char_coachman, here());
 
	end;
 
	dsc = [[
 
		Вы стоите посреди небольшой тихой улочки, расположенной почти на окраине Лондона. Напротив вас расположен небольшой кирпичный особняк, принадлежащий Майклу Райту, если верить записке. Дом выглядит неухоженным - штукатурка местами осыпалась, лужайка заросла высокой травой, часть окон закрыта плотными ставнями, которые явно давно не открывались. 
 
	]];
 
    dsc = [[Небольшой кирпичный особняк, принадлежащий Майклу Райту, стоит на одной из тихих улочек, на окраине Лондона. Дом выглядит неухоженным - штукатурка местами осыпалась, лужайка заросла высокой травой, часть окон закрыта ставнями, явно давно не открывавшимися. ]];
 
	obj = {'door_wright'};
 
	way = {
 
		vroom("В дом", "wright_house_front_room"):disable();
 
	};
 
};
 
\ No newline at end of file
0 comments (0 inline, 0 general)