Changeset - 43b8625705b7
[Not reviewed]
default
0 1 0
Silverwing - 8 years ago 2017-01-19 10:36:07

More text fixes
1 file changed with 75 insertions and 151 deletions:
london.lua
75
151
0 comments (0 inline, 0 general)
london.lua
Show inline comments
 
@@ -175,381 +175,305 @@ ginshop_trader = npc {
 
ginshop_trader_dlg = dlg {
 
	nam = "ginshop_trader_dlg";
 
	disp = "Торговец";
 
	enter = function(s)
 
		if (ginshop_trader.bought or char_worker.bought) then
 
			pr("Мне здесь ничего не нужно. ");
 
			return false;
 
		else
 
			return true;
 
		end;
 
	end;
 
	entered = [[Сняв очки, продавец смотрит на вас и спрашивает: "Добро пожаловать, господин. Чем могу помочь, господин?" ]];
 
	phr = {
 
		{always = true, "Бутылочку чего-нибудь покрепче, пожалуйста", [[Продавец кивает: "Сию секунду, господин". Почесав седую голову, он уходит в подвал, откуда возвращается через некоторое время с бутылкой. С громким стуком поставив бутылку на стол, он сообщает вам цену: "Это будет стоить вам 10 шиллингов, господин". ]], code = [[ psub("buy"); ]]};
 
		{always = true, "Это все, спасибо", [[Продавец одевает очки обратно и прощается с вами: "Приходите еще, господин". ]], function() 
 
				back();
 
			end;
 
		};
 
		{tag = "buy"};
 
		{always = true, "Беру", function(s)
 
			if (pl:pay(10)) then
 
				ginshop_trader.bought = true;
 
				take(item_bottle);
 
				return [[Расплывшись в широкой улыбке продавец подмигивает вам и говорит: "Приходите еще, господин!" ]];
 
			else
 
				return [[Одевая очки обратно, продавец прячет бутылку под прилавок: "Простите, господин, но я сказал 10 шиллингов". ]];
 
			end;
 
		end, code = [[ back(); ]]};
 
		{always = true, "Я передумал", [[Одевая очки обратно, продавец прячет бутылку под прилавок: "Подумайте еще, господин. Всего 10 шиллингов, господин!". ]], code = [[ pret(); ]]};
 
	};
 
};
 
 
hotel_street = room {
 
	nam = "hotel_street";
 
	disp = "Улица";
 
	entered = function(s)
 
		move(char_coachman, here());
 
	end;
 
    dsc = [[Перед вами стоит старое двухэтажное здание гостиницы. Массивные деревянные двери открыты, приглашая вас внутрь. Покосившаяся вывеска над ними гласит: "Гостиница Старого Фрэнки". Большинство домов поблизости выглядят старыми и неухоженными - очевидно, в этом районе живут не самые богатые горожане. Вокруг тихо - лишь редкие пешеходы проходят мимо, не обращая на вас никакого внимания. По небу неспешно плывут тяжелые темные тучи.
 
    ]];
 
	way = {
 
		vroom("В гостиницу", "hotel_hall");
 
	};
 
};
 
 
hotel_hall = room {
 
	nam = "hotel_hall";
 
	disp = "Гостиница";
 
	dsc = [[
 
		Вы находитесь в холле гостиницы. Просторный зал, по высоте занимающий оба этажа здания. В задней части зала вы видите широкую лестницу, застеленную старой дорожкой, которая некогда была красной. Окна закрыты тяжелыми занавесками, не позволяя свету с улицы проникнутьт в помещение. Однако, огромная люстра под потолком дает достаточно света. 
 
	]];
 
	dsc = [[Холл гостиницы представляет собой просторный зал, высотой в два этаже. В задней части зала вы видите широкую лестницу, застеленную старой дорожкой, которая некогда была красной. Окна закрыты тяжелыми занавесками, не позволяя свету с улицы проникнуть в помещение. Огромная люстра под потолком дает достаточно света. Вдоль стен расположено несколько скамеек. ]];
 
	obj = {
 
		'hotel_concierge'
 
	};
 
    entered = function(s)
 
        if (rnd(20) > 19) then
 
            hotel_maid.state = #hotel_maid.actions;
 
            put(hotel_maid, here());
 
        else
 
            remove(hotel_maid, here());
 
        end;
 
    end;   
 
	way = {
 
		vroom("На улицу", "hotel_street");
 
		vroom("К номерам", "hotel_corridor_1"):disable();
 
		vroom("На второй этаж", "hotel_corridor_2"):disable();
 
	};
 
};
 
 
hotel_corridor_1 = room {
 
	nam = "hotel_corridor_1";
 
	disp = "Гостиница, первый этаж";
 
	dsc = [[
 
		Вы находитесь в коридоре на первом этаже гостиницы. Окна здесь отсутствуют и все освещение дают несколько газовых ламп, укрепленных на стенах. Вдоль стен расположено несколько простых дверей, ведущих в комнаты, предназначенные для постояльцев. 
 
	]];
 
    dsc = [[Широкий коридор без окон, освещенный газовыми лампами, укрепленными на стенах. По обе стороны от вас расположены двери, ведущие в комнаты постояльцев. ]];
 
    entered = function(s)
 
        if (rnd(10) > 9) then
 
            hotel_maid.state = rnd(#hotel_maid.actions - 1);
 
            put(hotel_maid);
 
        else
 
            remove(hotel_maid);
 
        end;
 
    end;
 
	way = {
 
		vroom("В холл", "hotel_hall");
 
		vroom("В комнату №2", "hotel_room_2"):disable();
 
	};
 
};
 
 
hotel_corridor_2 = room {
 
	nam = "hotel_corridor_2";
 
	disp = "Гостиница, второй этаж";
 
	dsc = [[
 
		Вы находитесь в коридоре на втором этаже гостиницы. Окна здесь отсутствуют и все освещение дают несколько газовых ламп, укрепленных на стенах. Вдоль стен расположено несколько простых дверей, ведущих в комнаты, предназначенные для постояльцев. 
 
	]];
 
	dsc = [[Широкий коридор без окон, освещенный газовыми лампами, укрепленными на стенах. По обе стороны от вас расположены двери, ведущие в комнаты постояльцев. ]];
 
	way = {
 
		vroom("В холл", "hotel_hall");
 
		vroom("В комнату №7", "hotel_room_7");
 
	};
 
	enter = function(s)
 
		if (s.room_visited and not s.met_starlight) then
 
			s.met_starlight = true;
 
			walkin('starlight_first_dlg');
 
		end;
 
	end;
 
    entered = function(s)
 
        if (rnd(10) > 9) then
 
            hotel_maid.state = rnd(#hotel_maid.actions - 1);
 
            put(hotel_maid, here());
 
        else
 
            remove(hotel_maid, here());
 
        end;
 
    end;
 
	left = function(s)
 
		if (s.room_visited) then
 
			remove("char_starlight_corridor", where("char_starlight_corridor"));
 
			lifeoff("char_starlight_corridor");
 
		end;
 
	end;
 
};
 
 
hotel_room_2 = room {
 
	nam = "hotel_room_2";
 
	disp = "Гостиница, Комната №2";
 
	dsc = [[
 
		Вы находитесь в комнате Джозефа Старлайта. На столике у окна стоит зажженная лампа, рядом брошена стопка газет. На кровати в углу валяется шляпа хозяина. Окно распахнуто, впуская внутрь прохладный и влажный воздух, а также шум городской суеты.
 
	]];
 
    dsc = [[Небольшая чистая комната. На столике у окна стоит зажженная лампа, рядом брошена стопка газет. На кровати в углу валяется шляпа хозяина. Окно распахнуто, впуская внутрь прохладный и влажный воздух. ]];   
 
	obj = {
 
		"char_starlight"
 
	};
 
	way = {
 
		vroom("В коридор", "hotel_corridor_1");
 
	};
 
};
 
 
hotel_room_7 = room {
 
	nam = "hotel_room_7";
 
	disp = "Гостиница, Комната №7";
 
	-- TODO сделать возможность открыть и закрыть ставни на окнах
 
	-- TODO нахуй магазинчик, торговца и прочих уродов
 
	dsc = [[
 
		Вы находитесь в вашей комнате в гостинице Старого Фрэнки. Небольшой деревянный столик прикрыт чистой белой скатертью. В углу стоит аккуратно сделанный стул. У окна расположена застеленная свежим бельем кровать. На скрипучем деревянном полу постелен старый коврик.
 
	]];
 
	dsc = [[Небольшая чистя комната. Деревянный столик в углу прикрыт белой скатертью. В углу стоит аккуратно сделанный стул. У окна расположена застеленная чистым бельем кровать. На скрипучем деревянном полу лежит старый коврик. ]];
 
	obj = {
 
		'item_lamp', 'room_7_window'
 
	};
 
	way = {
 
		vroom("В коридор", "hotel_corridor_2");
 
	};
 
	entered = function(s)
 
		hotel_corridor_2.room_visited = true;
 
	end;
 
};
 
 
room_7_window = obj {
 
	nam = "room_7_window";
 
	state = 0;
 
	dsc = function(s)
 
		if (s.state == 0) then
 
			return "{Окно} комнаты закрыто плотными ставнями";
 
			return "{Окно} закрыто плотными ставнями. ";
 
		elseif (s.state == 1) then
 
			return "Сквозь мутные стекла {окна} вы можете разглядеть мостовую, немногочисленных прохожих, прочные кирпичные дома на другой стороне улицы и тяжелые тучи, нависающие над городом. ";
 
			return "Через {окно} вы можете разглядеть мостовую, немногочисленных прохожих, прочные кирпичные дома на другой стороне улицы и тяжелые тучи, нависающие над городом. ";
 
		else
 
			return "Сквозь открытое {окно} до вас доносится шум большого, живущего своей жизнью города. Прохладный ветерок задувает в комнату.";
 
		end;
 
	end;
 
	act = function(s)
 
		if (s.state == 0) then
 
			s.state = 1;
 
			return [[
 
				Вы открываете ставни. 
 
			]];
 
			return [[Вы открываете ставни. ]];
 
		elseif (s.state == 1) then
 
			s.state = 2;
 
			return [[
 
				Вы открываете окно. 
 
			]];
 
			return [[Вы открываете окно. ]];
 
		elseif (s.state == 2) then
 
			s.state = 0;
 
			return [[
 
				Вы закрываете окно и захлопываете ставни. 
 
			]];
 
			return [[Вы закрываете окно и захлопываете ставни. ]];
 
		end;
 
	end;
 
};
 
 
--[[hotel_alley = room {
 
	nam = "hotel_alley";
 
	disp = "Переулок";
 
	entered = function(s)
 
		lifeon(alley_trader);
 
	end;
 
	left = function(s)
 
		lifeoff(alley_trader);
 
	end;
 
	dsc = [
 
		Вы находитесь в узком проулке позади гостиницы. Дома расположены очень близко друг к другу, оставляя совсем немного свободного места. 
 
	];
 
	obj = {
 
		'alley_trader'
 
	};
 
	way = {
 
		vroom("Ко входу в гостиницу", "hotel_street");
 
		vroom("В пивную лавку", "ginshop");
 
	}
 
};
 
 
alley_trader = obj {
 
	nam = "alley_trader";
 
	disp = "Торговец редкостями";
 
	dsc = [
 
		Немолодой {человек} в старом пальто стоит, опершись на стену одного из домов. Сквозь стекла старых очков в тяжелой оправе он смотрит на вас, словно в ожидании ваших действий. 
 
	];
 
	life = function(s)
 
		if(math.random(5) > 3 and where(pl) ~= alley_trader_dlg) then
 
			pn("Повернувшись к вам, человек спрашивает: \"Могу я чем-нибудь помочь?\"");
 
		end;
 
	end;
 
	act = function(s)
 
		walkin "alley_trader_dlg";
 
	end;
 
};
 
 
alley_trader_dlg = dlg {
 
	nam = "alley_trader_dlg";
 
	disp = "Торговец";
 
	hideinv = true;
 
	entered = function(s)
 
		if (global.light_needed) then
 
			pon(1);
 
		else
 
			poff(1);
 
		end;
 
		if (global.lockpick_needed) then
 
			pon(2);
 
		else
 
			poff(2);
 
		end;
 
		return ["У меня есть все, что вам нужно"];
 
	end;
 
	phr = {
 
		{1, "Мне нужна лампа", function()
 
			take(item_lamp);
 
			return "Без проблем";
 
		end};
 
		{2, "Мне нужна отмычка", function()
 
			global.lockpick_needed = false;
 
			take(item_lockpick);
 
			return "Без проблем";
 
		end};
 
		{255, always = true, "Это все", function()
 
			back();
 
			return "До встречи";
 
		end};
 
	};
 
};]]
 
 
hotel_concierge = obj {
 
	nam = "hotel_concierge";
 
	disp = "Консьерж";
 
	dsc = [[
 
		За стойкой скучает пожилой {консьерж}. Поношенный костюм, выглаженный и начищенный, хорошо сидит на его худощавом теле. Аккуратно подстриженная седая борода украшает его морщинистое лицо. Руки его неподвижно лежат на стойке, а глаза наблюдают за входящими и выходящими посетителями.
 
	]];
 
	dsc = [[За стойкой скучает пожилой {консьерж}. Поношенный костюм, выглаженный и начищенный, хорошо сидит на его худощавом теле. Аккуратно подстриженная седая борода украшает его морщинистое лицо. Руки его неподвижно лежат на стойке, а глаза наблюдают за входящими и выходящими посетителями. ]];
 
	act = function(s)
 
		if (hotel_concierge.paid) then
 
			pn("Я уже снял номер");
 
		else
 
			walkin(hotel_concierge_dlg);
 
		end;
 
	end;
 
};
 
 
--hotel_maid = npc {
 
--	nam = "hotel_maid";
 
--	disp = "Служанка";
 
--	actions = {
 
--		[[
 
--			Молодая {Служанка} подметает пол.
 
--		]];
 
--		[[
 
--			{Служанка} 
 
--		]];
 
--	};
 
--	dsc = function(s)
 
--		
 
--	end;
 
--	phrases = {
 
--		"Простите, я занята";
 
--		"Вам понравилась ваша комната?";
 
--		"У меня еще много дел сегодня";
 
--		"Простите?";
 
--		"Добрый день";
 
--	};
 
--};
 
hotel_maid = npc {
 
    var {
 
        state = 1;
 
    };
 
	nam = "hotel_maid";
 
	disp = "Служанка";
 
	actions = {
 
		[[{Служанка} подметает пол. ]];
 
		[[{Служанка} протирает стены. ]];
 
        [[{Служанка} поправляет лампу. ]];
 
        [[На одну из скамеек присела отдохнуть {служанка}. ]];
 
	};
 
	dsc = function(s)
 
		return s.actions[s.state];
 
	end;
 
	phrases = {
 
		[["Простите, я занята". ]];
 
		[["Вам понравилась ваша комната?" ]];
 
		[["У меня еще много дел сегодня". ]];
 
		[["Простите?" ]];
 
		[["Добрый день". ]];
 
	};
 
};
 
 
hotel_concierge_dlg = dlg {
 
	nam = "hotel_concierge_dlg";
 
	disp = "Консьерж";
 
	entered = [[
 
		Консьерж оживился, как только вы подошли: "Здравствуйте! Желаете снять номер?"
 
	]];
 
	entered = [[Консьерж оживился, как только вы подошли: "Здравствуйте! Желаете снять номер?" ]];
 
	phr = {
 
		{1, "Да, мне нужна комната на неделю. ", [[
 
			Консьерж, посмотрев в журнал называет цену: "С вас 100 монет. "
 
			Консьерж, посмотрев в журнал, называет цену: "С вас 100 монет. "
 
		]], code = [[ psub("pay"); ]]};
 
		{255, always = true, "Не сейчас", function()
 
			back();
 
			return "Когда соберетесь тогда и приходите.";
 
			return [[Консьерж недовольно отвечает: "Приходите, когда соберетесь! "]];
 
		end};
 
		{tag = "pay"};
 
		{always = true, "Хорошо", function()
 
			if pl:pay(100) then
 
				hotel_concierge.paid = true;
 
				path("К номерам на первом этаже", hotel_hall):enable();
 
				path("К номерам", hotel_hall):enable();
 
				path("На второй этаж", hotel_hall):enable();
 
				back();
 
				return [[
 
					Консьерж принимает ваши деньги и просит вас расписаться в гостевой книге. После чего вручает вам ключ, сообщая: "Вам на второй этаж, комната номер 7."
 
				]];
 
				return [[Консьерж принимает ваши деньги и просит вас расписаться в гостевой книге. После чего вручает вам ключ, сообщая: "Вам на второй этаж, комната номер 7". ]];
 
			else
 
				pon(1);
 
				pret();
 
				back();
 
				return [[
 
					Консьерж недовольно отвечает: "Приходите, когда деньги будут!"
 
				]];
 
				return [[Консьерж недовольно отвечает: "Приходите, когда деньги будут!" ]];
 
			end;
 
		end};
 
		{always = true, "Я передумал", [[
 
			Консьерж недовольно отвечает: "Приходите, когда соберетесь!"
 
		]], code = [[ pon(1); pret(); ]]}
 
		{always = true, "Я передумал", [[Консьерж недовольно отвечает: "Приходите, когда соберетесь!" ]], code = [[ pon(1); pret(); ]]}
 
	};
 
};
 
 
starlight_first_dlg = dlg {
 
	nam = "starlight_first_dlg";
 
	disp = "Джозеф Старлайт";
 
	entered = [[
 
		Выйдя из своей комнаты, вы замечаете поднимающегося по лестнице человека. Это мужчина лет сорока пяти-пятидесяти. Он одет в помятый темно-серый костюм, на носу - маленькие очки в простой оправе. В левой руке он держит какую-то газету, а правой спешно ощупывает карманы в поисках чего-то. Заметив вас он улыбается и спрашивает: "Господин Дрейк?"
 
	]];
 
	disp = "Гостиница, второй этаж";
 
	entered = [[Выйдя из своей комнаты, вы замечаете поднимающегося по лестнице человека. Это мужчина лет сорока пяти -- пятидесяти. Он одет в помятый темно-серый костюм, на носу -- маленькие очки в простой оправе. В левой руке он держит какую-то газету, а правой спешно ощупывает карманы в поисках чего-то. Заметив вас он улыбается и спрашивает: "Господин Дрейк?" ]];
 
	left = function(s)
 
		path('В комнату №2', hotel_corridor_1):enable();
 
		put(hotel_corridor_2, "char_starlight_corridor");
 
		lifeon("char_starlight_corridor");
 
	end;
 
	phr = {
 
		{ "Мы встречались?", "Скорее всего нет, мое имя - Джозеф Старлайт. Вы случайно не родственник Уильяма Дрейка? Название Вестхейвен Трансоушен вам о чем-то говорит?", code [[ pstart('have_we_met') ]]};
 
		{ "Кто вы?", "Джозеф Старлайт, адвокат. Название Вестхейвен Трансоушен вам о чем-то говорит? ", code [[ pstart('who_are_you') ]]};
 
		{ "Да, я Дэвид Дрейк. ", "Здравствйте! Я Джозеф Старлайт. Вы сын Уильяма Дрейка? Название Вестхейвен Трансоушен вам о чем-нибудь говорит? ", code [[ pstart('i_am_drake') ]]};
 
		{ "Простите, я спешу. ", "Простите. Если хотите поговорить о Вестхейвен Трансоушен, зайдите ко мне в комнату 2 как-нибудь. ", code [[ back(); ]]};
 
		{ "Мы встречались?", [[Человек пожимает плечами: "Скорее всего нет, мое имя Джозеф Старлайт. Вы случайно не родственник Уильяма Дрейка? Название Вестхейвен Трансоушен вам о чем-то говорит?" ]], code [[ pstart('have_we_met') ]]};
 
		{ "Кто вы?", [[Человек протягивает вам руку: "Джозеф Старлайт, адвокат. Название Вестхейвен Трансоушен вам о чем-то говорит?" ]], code [[ pstart('who_are_you') ]]};
 
		{ "Да, я Дэвид Дрейк.", [[Человек протягивает вам руку: "Здравствйте! Я Джозеф Старлайт. Вы сын Уильяма Дрейка? Название Вестхейвен Трансоушен вам о чем-нибудь говорит?" ]], code [[ pstart('i_am_drake') ]]};
 
		{ "Простите, я спешу.", [[Человек огорченно вздыхает: "Простите". Подойдя к лестнице он оборачивается и говорит: "Мое имя - Джозеф Старлайт. Если хотите поговорить о Вестхейвен Трансоушен, зайдите ко мне в комнату 2 когда у вас будет время". ]], code [[ back(); ]]};
 
		{tag = "have_we_met"};
 
		{ "Я сын Уильяма. Вы знаете что произошло?", "Крайне мало, то было, без сомнения, самое запутанное мое дело. Если хотите поговорить - заходите в комнату 2. ", code [[ back(); ]]};
 
		{ "Кто вы?", "Я занимался исчезновением Дрейка, а позже банкротством его компании. ", code [[ pstart('who_are_you') ]]};
 
		{ "Я сын Уильяма. Вы знаете что произошло?", [[Джозеф Старлайт чешет подбородок: "Немного. Это было, без сомнения, самое запутанное мое дело. Нам лучше поговорить у меня в комнате. Номер 2, на первом этаже. "]], code [[ back(); ]]};
 
		{ "Кто вы?", [[Джозеф Старлайт отвечает: "Адвокат. Я занимался делом о банкротстве Вестхейвен Трансоушен. "]], code [[ pstart('who_are_you') ]]};
 
		{tag = "who_are_you"};
 
		{ "Вы знаете что произошло?", "Крайне мало, то было, без сомнения, самое запутанное мое дело. Если хотите поговорить - заходите в комнату 2. ", code [[ back(); ]]};
 
		{ "Вы знаете что произошло?", [[Джозеф Старлайт чешет подбородок: "Немного. Это было, без сомнения, самое запутанное мое дело. Нам лучше поговорить у меня в комнате. Номер 2, на первом этаже. "]], code [[ back(); ]]};
 
		{tag = "i_am_drake"};
 
		{ "Да все верно. Это название компании моего отца. Вы знаете что произошло?", "Крайне мало, то было, без сомнения, самое запутанное мое дело. Если хотите поговорить - заходите в комнату 2. ", code [[ back(); ]]};
 
		{ "Да все верно. Это название компании моего отца. Вы знаете что произошло?", [[Джозеф Старлайт чешет подбородок: "Немного. Это было, без сомнения, самое запутанное мое дело. Нам лучше поговорить у меня в комнате. Номер 2, на первом этаже. "]], code [[ back(); ]]};
 
	};
 
};
 
 
char_starlight_corridor = obj {
 
	nam = "char_starlight_corridor";
 
	dsc = function(s)
 
		return [[
 
			{Джозеф Старлайт} продолжает ощупывать карманы, словно ищет что-то.
 
		]];
 
	end;
 
	act = function(s)
 
		remove(s, where(s));
 
		lifeoff(s);
 
		return [[
 
			Раздраженно махнув рукой, Джозеф быстрым шагом спускается вниз по лестнице. 
 
		]];
 
	end;
 
	life = function(s)
 
		if (rnd(5) > 4) then
 
			remove(s, where(s));
 
			lifeoff(s);
 
			return [[
 
				Раздраженно махнув рукой, Джозеф быстрым шагом спускается вниз по лестнице. 
 
			]];
 
		end;
 
	end;
 
};
 
 
char_starlight = obj {
 
	nam = "char_starlight";
 
	dsc = function(s)
 
		return [[
 
			{Джозеф Старлайт} сидит за столом и делает какие-то записи в блокноте. 
 
		]];
 
	end;
 
	act = function(s)
 
		walkin(starlight_dlg);
 
	end;
 
};
 
 
starlight_dlg = dlg {
 
	nam = "starlight_dlg";
 
	disp = "Джозеф Старлайт";
 
	entered = function(s)
 
		if (not char_starlight.forgetful) then
 
			pon(0);
 
		else
 
			poff(0);
0 comments (0 inline, 0 general)