Я вытаскиваю из кармашка своего походного костюма [cut маленькие изящные часики]маленькие изящные часики -- подарок Виджета на мой двенадцатый день рождения. Короткая стрелка почти достигла цифры семь. ^
"Ребята, мне пора!" -- Кричу я. В ответ доносится: "До завтра, Асти!"^
[cut Я делаю несколько шагов]Я делаю несколько шагов, как вдруг замечаю сидящего неподалеку и грустно смотрящего куда-то вдаль Уилла.^
[cut "Что случилось?"]"Что случилось?" -- спрашиваю я, свалившись в траву рядом с другом. ^
@@ -337,9 +337,9 @@ cutscene {
decor = function(s)
pr [[
Гремлин стоял передо мной, пытаясь отдышаться -- он с трудом догнал меня, спешащую в библиотеку. ^
[cut "Ваше высочество!"]"Ваше высочество! Вы просили сообщить!" -- выпалил Виджет, после чего продолжил обильно глотать воздух -- бедняга совсем запыхался. ^
[cut "Ваше высочество!.."]"Ваше высочество! Вы просили сообщить!" -- выпалил Виджет, после чего продолжил обильно глотать воздух -- бедняга совсем запыхался. ^
[cut "Виджет, успокойся..."]"Виджет, успокойся, отдышись и расскажи все как следует", -- медленно говорю я, пытаясь успокоить друга.^
Отдышавшись он продолжает: _"Асти, я могу подготовить для тебя мастерскую. [cut Завтра]Завтра, с полседьмого до девяти. Успеешь?"_^
Отдышавшись он продолжает: _"Асти, я могу подготовить для тебя мастерскую. [cut Завтра..."_]Завтра, с полседьмого до девяти. Успеешь?"_^
"Успею, не переживай", -- отвечаю я. Виджет убегает по своим делам, а я направляюсь дальше в библиотеку. ^
[cut Продолжить]
[code walk('intro4')]
@@ -355,7 +355,7 @@ cutscene {
decor = function(s)
pr [[
[cut "Вот, держи..."]"Вот, держи. Только, пожалуйста, верни мне его завтра до 11 часов, иначе у меня будут большие проблемы", -- прошептал Таггарт, протягивая мне [cut небольшой сверточек]небольшой сверточек. В сверточке был ключ от одной из неиспользуемых кладовых дворца. Там я устроила [cut алхимическую лабораторию]алхимическую лабораторию для себя. Если родители прознают про нее, мне конец -- родители запрещают мне заниматься алхимией.^
"Да, как и всегда. Спасибо, Таггарт", -- отвечаю я, [cut пряча сверток в карман куртки]пряча сверток в карман куртки, -- "Ладно, я побегу, до новых встреч", -- прощаюсь я и убегаю.^
"Да, как и всегда. Спасибо, Таггарт", -- отвечаю я, [cut пряча сверток в карман куртки]пряча сверток в карман куртки. "Ладно, я побегу, до новых встреч", -- прощаюсь я и убегаю.^
[cut Продолжить]
[code walk('intro5')]
]];
@@ -371,7 +371,7 @@ cutscene {
decor = function(s)
pr [[
Я вхожу в кабинет отца. Он молча указывает на кресло, стоящее в углу, рядом с камином. Я сажусь и [cut жду]жду. ^
Через несколько минут он встает напротив меня и начинает, как всегда многословно, [cut излагать]излагать: _"Асурья, дочь моя. Как ты знаешь, завтра у нас очень важный день, а именно -- годовщина изгнания древнего зла из славного города [cut Далагара...]Далагара..."_^
Через несколько минут он встает напротив меня и начинает, как всегда многословно, [cut излагать]излагать: _"Асурья, дочь моя. Как ты знаешь, завтра у нас очень важный день, а именно -- годовщина изгнания древнего зла из славного города [cut Далагара..."_]Далагара..."_^
Так он продолжает довольно долго, но главное. что я уяснила -- завтра, в 12 часов мне необходимо явиться в главный обеденный зал дворца.^
[cut Продолжить]
[code walk('intro6')]
@@ -389,9 +389,9 @@ cutscene {
[cut Итак...]
В 12 часов дня у меня званый обед. Если я опоздаю, папа будет очень недоволен. Мне обязательно нужно одеться, сделать макияж и уложить волосы к этому времени.^
[cut Далее...]
Я обещала Уиллу принести какую-нибудь ценную безделушку, чтобы они с братом могли оплатить билеты в цирк. Мы собирались встретиться [cut на опушке леса]на опушке леса,дотуда я доберусь за 40 минут, от западных ворот.^
Я обещала Уиллу принести какую-нибудь ценную безделушку, чтобы они с братом могли оплатить билеты в цирк. Мы собирались встретиться [cut на опушке леса]на опушке леса. От западных ворот я доберусь туда за 40 минут.^
[cut Кроме того...]
C 6:30 до 9:00 Виджет ждет меня в мастерской. Мне нужно не забыть взять свои записи. Виджету непросто выделять для меня мастерскую, [cut поэтому]поэтому лучше сильно не опаздывать. И заниматься менее получаса не имеет смысла, так что если я все же не буду успевать, то после 9:30 появляться бесполезно. ^
C 6:30 до 9:00 Виджет ждет меня в мастерской. Мне нужно не забыть взять свои записи. Виджету непросто выделять для меня мастерскую, [cut поэтому]поэтому лучше сильно не опаздывать. И заниматься менее получаса не имеет смысла, так что приходить после 8:30 нет смысла. ^
[cut И наконец...]
До 11:00 мне нужно успеть вернуть Таггарту ключ, иначе у него будут проблемы.^
tak = 'Я подбираю блокнот. Хорошо, что слуги его не забрали ночью. ';
tak = 'Я подбираю блокнот. Хорошо, что слуги не забрали его ночью. ';
inv = 'Здесь я держу заметки по поводу различных механизмов придуманных мной, или показанных мне Флинном и Виджетом. ';
}:disable();
@@ -500,7 +500,7 @@ room {
if have('clothes_dress') then
makeup = 1;
timestamp = timestamp + 30 * MINUTE;
return 'Я по-быстрому привожу в порядок свои волосы и лицо. Теперь я выгляжу достаточно "прилично" по меркам двора. ';
return 'Я привожу в порядок свои волосы и лицо. Теперь я выгляжу достаточно "прилично" по меркам двора. ';
else
return 'Сперва надо одеться как подобает. ';
end;
@@ -519,7 +519,7 @@ room {
take('trinket');
return 'В ней хранятся мои драгоценности. Посмотрим, что отсюда можно отдать друзьям. Вот это колечко подойдет. Я забираю из шкатулки серебряное колечко. ';
else
return 'Мне здесьбольшеничего не нужно. ';
return 'Мне некогда перебирать безделушки. ';
end;
end;
};
@@ -544,7 +544,7 @@ dlg {
walkout();
return 'Я переодеваюсь. ';
end};
{cond=function(s) return not have('clothes_mech') end, 'Рабочую одежду механика. В ней удобно работать в мастерской. ', function(s)
{cond=function(s) return not have('clothes_mech') end, 'Робу механика. В ней удобно работать в мастерской. ', function(s)
remove('clothes_dress', me());
remove('clothes_travel', me());
take('clothes_mech');
@@ -567,7 +567,11 @@ dlg {
makeup = 0;
return 'Пока переодевалась, я испортила прическу и макияж. Придется делать все заново. ';
else
return 'Я переодеваюсь. Кажется, в одном из карманов что-то есть. ';
if _'clothes_travel'.state == 0 then
return 'Я переодеваюсь. Кажется, в одном из карманов что-то есть. ';
else
return 'Я переодеваюсь. ';
end;
end;
end};
{cond=function(s) return have('clothes_dress') or have('clothes_mech') or have('clothes_travel') end, 'Не переодеваться', function(s)
@@ -587,7 +591,7 @@ obj {
state = 0;
nam = 'clothes_mech';
disp = 'Костюм механика';
inv = 'Удобный и очень практичный костюм. Сшит из грубой, плотной ткани, очень прочной, на заказ специально для меня и сидит как влитой. А сколько же в нем карманов, не счесть! Обожаю карманы. В них можно носить всякие вещицы вроде блокнотов, карандашей, отверточек или деталюшек -- никогда не знаешь, когда они пригодятся.';
inv = 'Удобный и очень практичный костюм из грубой, плотной и очень прочной ткани на заказ. Сшит специально для меня и сидит как влитой. А сколько же в нем карманов, не счесть! Обожаю карманы. В них можно носить всякие вещицы вроде блокнотов, карандашей, отверточек или деталюшек -- никогда не знаешь, для чего они пригодятся.';
}
obj {
@@ -613,7 +617,8 @@ room {
return false;
end;
if have('clothes_travel', me()) then
pr 'В этой оджеде здесь лучше не появляться. Многие механики меня знают в лицо. Кто-нибудь может проболтаться моим родителям про этот костюм и тогда у меня будут проблемы.';
pr 'В этой одежде здесь лучше не появляться. Многие механики меня знают в лицо. Кто-нибудь может проболтаться моим родителям про этот костюм и тогда у меня будут проблемы.';
return false;
end;
if not have('clothes_travel', me()) and not have('clothes_mech', me()) then
pr 'Не пойду я никуда пока не оденусь!';
@@ -653,7 +658,7 @@ room {
obj {
nam = '#machinery';
dsc = 'В зале установлено несколько {станков}.';
act = 'Виджет не разрешает мне на них работать. Говорит, что это опасно и я могу пораниться. ';
act = 'Виджет не разрешает мне на них работать. Говорит, что это опасно, и я могу пораниться. ';
};
}
@@ -662,7 +667,7 @@ dlg {
disp = 'Виджет';
noinv = true;
notime = true;
enter = [[Зеленокожий гремлин увлеченно собирает какой-то механизм. Виджет всегда уходит с головой в свои занятия, так что приходится его отвлекать. Но он никогда не обижается на меня, так что все нормально. ]];
enter = [[Гремлин увлеченно собирает какой-то механизм. Виджет всегда уходит с головой в свои занятия, так что приходится его отвлекать. Но он никогда не обижается на меня, так что все нормально. ]];
phr = {
{'Виджет! Я пришла!', function(s)
if timestamp >= 150 * MINUTE then
@@ -676,7 +681,7 @@ dlg {
remove('notebook', me());
walk('widgets_lesson');
end};
{'[Уйти] Забыла... И я не смогу без них ничего сделать.', function(s) walkout(); end};
{'[Уйти] Забыла... И я не смогу без них ничего сделать.', function(s) walkout(); end};
};
{'[Уйти]', function(s) walkout(); end};
};
@@ -688,32 +693,36 @@ cutscene {
noinv = true;
notime = true;
decor = function(s)
local intime = timestamp < 30 * MINUTE;
local intime = timestamp < 60 * MINUTE;
local duration = 120 * MINUTE;
if timestamp < 30 * MINUTE then
timestamp = 30 * MINUTE;
end;
if intime then
widget_status = 2;
pr [[
"Тогда за работу, Асти!" -- отвечает гремлин, указывая мне на заботливо подготовленный верстак, и тут же осекся: "Простите, Ваше высочество". ^
[cut "Все в порядке, Виджет"]
[cut "Все в порядке, Виджет..."]
"Все в порядке, Виджет, спасибо" -- благодарю я мастера и подхожу к рабочему месту. ^
]];
else
widget_status = 1;
pr [[
"Асти, ты слегка опоздала, поэтому, проследи за временем, договорились?", -- отвечает гремлин, указывая мне на заботливо подготовленный верстак, и тут же осекся: "Простите, Ваше высочество". ^
[cut "Разумеется, я закончу вовремя"]
[cut "Разумеется, я закончу вовремя..."]
"Разумеется, я закончу вовремя, спасибо, Виджет", -- благодарю я мастера и подхожу к рабочему месту. ^
]];
end;
pr [[
[cut Я открываю записную книжку на нужной странице]
[cut Я открываю записную книжку]
Я открываю записную книжку на нужной странице и начинаю вспоминать, какие детали мне понадобятся. ^
[cut Вырвав лист из книжки]
Вырвав лист из книжки, я выписываю на него список необходимых деталей и передаю его гремлину: "Собери, пожалуйста, вот это. Я все-таки хочу собрать этот счетчик".
Виджет, откланявшись, [cut удаляется]удаляется, а я погружаюсь в процесс. Вернувшись с коробочкой, полной разнообразных деталюшек,
он спрашивает: _"Асти, мне кажется оно не будет работа... [cut Ой, простите!]Ой, простите! Ваше высочество точно уверены, что хотят собрать этот прибор? Если честно, я не уверен, что он будет работать"_. ^
он спрашивает: _"Асти, мне кажется оно не будет работа... [cut Ой, простите!.."_]Ой, простите! Ваше высочество точно уверены, что хотят собрать этот прибор? Если честно, я не уверен, что он будет работать"_. ^
[cut "Вы сомневаетесь в моих способностях?"]
"Ты сомневаешься в моих способностях?" -- шутливо спрашиваю я, на что Виджет совершенно серьезно отвечает: "Нет-нет, ни в коем разе! Я буду поблизости, если понадоблюсь вашему высочеству". ^
[cut И я погрузилась в работу]И я погрузилась в работу.^
@@ -756,9 +765,11 @@ room {
end;
if have('clothes_mech', me()) then
pr 'Увы, но приходить на обед придется именно в праздничном платье и никак иначе. ';
return false;
end;
if makeup == 0 then
pr 'Появляться на обеде с неуложенными волосами и ненакрашенным лицом будет по меньшей мере опрометчиво. ';
return false;
end;
if not have('clothes_dress', me()) and not have('clothes_mech', me()) then
pr 'Не пойду я никуда пока не оденусь!';
@@ -814,7 +825,7 @@ room {
disp = 'Сторожевой пост';
onenter = function(s)
if have('clothes_dress', me()) or have('clothes_mech', me()) then
pr 'Я не хочу чтобы меня там видели. У меня есть походная одежда, в которой меня не узнать, лучше одеться в нее. ';
pr 'Я не хочу, чтобы меня там видели. У меня есть походная одежда, в которой меня не узнать, лучше одеться в нее. ';
return false;
end;
if not have('clothes_travel') then
@@ -836,7 +847,7 @@ room {
walkin('taggart_dlg');
end;
end;
dsc = 'Сторожевой пост у склада. Попасть на склад можно только через это место. ';
dsc = 'Сторожевой пост у главной кладовой. Попасть туда можно только через него. ';
way = {
ppath {'В спальню', 'guard_post', 'bedroom'};
ppath {'В мастерскую', 'guard_post', 'workshop'};
@@ -884,7 +895,7 @@ dlg {
disp = 'Таггарт';
noinv = true;
notime = true;
enter = [[Таггарт чуть старше меня и он мой хороший друг. Увидев меня, он подходит и спрашивает тихо: "Асти? Ты принесла?"]];
enter = [[Таггарт чуть старше меня, и он мой хороший друг. Увидев меня, он подходит и спрашивает тихо: "Асти? Ты принесла?"]];
phr = {
{cond=function(s) return have('key'); end, "[Отдать ключ] Да, конечно. ", function(s)
taggart_status = 1;
@@ -905,7 +916,7 @@ room {
dsc = 'Западные ворота дворца. Через них мне проще всего будет добраться до места встречи с Фредом и Уиллом. ';
onenter = function(s)
if have('clothes_dress', me()) or have('clothes_mech', me()) then
pr 'Я не хочу чтобы меня там видели. У меня есть походная одежда, в которой меня не узнать, лучше одеться в нее. ';
pr 'Я не хочу, чтобы меня там видели. У меня есть походная одежда, в которой меня не узнать, лучше одеться в нее. ';
return false;
end;
if not have('clothes_travel') then
@@ -929,7 +940,7 @@ room {
obj {
nam = '#gate';
dsc = '{Ворота} открыты. ';
act = 'Здесь постоянно ходят слуги, так что ямогупройтинезамеченной. ';
act = 'Здесь постоянно ходят слуги, так что на меня никто не обратит внимания. ';
};
obj {
nam = '#servants';
@@ -990,7 +1001,7 @@ room {
obj {
nam = '#grass';
dsc = '{Трава} здесь совершенно вытоптана. ';
act = 'Большая ровная площадка хорошо подходит для активных игр, столь любимых городскими мальчишками. Я тоже непрочь порезвиться с ними. Может силы у меня не так много, зато бегаю я быстрее многих здесь! ';
act = 'Большая ровная площадка хорошо подходит для активных игр, столь любимых городскими мальчишками. Я тоже непрочь порезвиться с ними. Может силы у меня не так много, зато бегаю я быстрее многих! ';
};
obj {
nam = '#boys';
@@ -999,7 +1010,7 @@ room {
};
obj {
nam = '#thoughts';
act = 'Я бы уже давно собрала свою счетную машинку!';
act = 'Давно бы уже собрала свою счетную машинку!';
};
obj {
nam = '#fred_and_will';
@@ -1034,9 +1045,9 @@ dlg {
{'Что увидели?', function(s)
if s.state == 0 then
s.state = 1;
return 'Фред отвлекается от процесса и смотрит на меня: "Привет, Асти! Тут жук! Красивый! Смотри!" -- Он показывает пальцем в траву.^ Я смотрю и вижу переливающегося зеленого жука. Кажется я читала, что он называется "золотистая бронзовка". Действительно, очень красивый.';
return 'Фред отвлекается от процесса и смотрит на меня: "Привет, Асти! Тут жук! Красивый! Смотри!" -- Он показывает пальцем в траву. ^ Я смотрю и вижу переливающегося зеленого жука. Я читала, что он называется "золотистая бронзовка", но до этого видела его только на картинках. Действительно, очень красивый.';
else
return 'Фред отвлекается от процесса и смотрит на меня: "Тут жук! Красивый! Смотри!" -- Он показывает пальцем в траву^ Я смотрю и вижу переливающегося зеленого жука. Кажется я читала, что он называется "золотистая бронзовка". Действительно, очень красивый.';
return 'Фред отвлекается от процесса и смотрит на меня: "Тут жук! Красивый! Смотри!" -- Он показывает пальцем в траву. ^ Я смотрю и вижу переливающегося зеленого жука. Я читала, что он называется "золотистая бронзовка", но до этого видела его только на картинках. Действительно, очень красивый.';
end;
end};
{cond=function(s) return have('trinket') end, '[Отдать колечко] Я принесла то, что обещала.', function(s)