Files
@ 9845ab51a6c8
Branch filter:
Location: games/Dragon-and-the-Tower/solarscale.lua
9845ab51a6c8
31.2 KiB
text/x-lua
Multiple fixes and improvements
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 | obj {
level_1_visited = false;
nam = 'solarscale_ally';
dsc = function(s)
if here()^'above_forest' or here()^'above_near_village' or here()^'above_village' or here()^'above_crater' or here()^'above_west' then
return '{Соларскейл} летит следом за мной. ';
elseif here()^'forest_glade' then
return '{Соларскейл} неспешно прогуливается по полянке, разглядывая и принюхиваясь к цветам. ';
elseif here()^'crater_near_tower' then
return '{Соларскейл} нетерпеливо машет крыльями у входа в башню. ';
elseif here()^'tower_level_1' then
return '{Соларскейл} медленно летает по залу, внимательно осматривая его. ';
elseif here()^'tower_level_2' then
return '{Соларскейл} внимательно рассматривает полки с реагентами. ';
elseif here()^'tower_level_3' then
return '{Соларскейл} задумчиво кружит над столом. ';
elseif here()^'tower_level_4' then
return '{Соларскейл} сидит на полу неподалеку от тумбочки со свечами. '
elseif here()^'tower_level_4_room_2' then
return '{Соларскейл} сидит на столе рядом с компьютером. '
elseif here()^'tower_level_3_room_2' then
if here().light then
return '{Соларскейл} висит над стеллажами, почти под самым потолком помещения. ';
else
return 'Я с трудом различаю во мраке очертания {Соларскейл}. ';
end;
end;
return 'За моей спиной машет крыльями {Соларскейл}. ';
end;
act = function(s)
walkin('solarscale_ally_dlg');
end;
life = function(s)
if (not here().nofollow) then
if (here() ~= where('solarscale_ally')) then
if here()^'crater_near_tower' then
p 'Едва заметив открывшийся проем, Соларскейл бросается к нему и, замерев перед самым входом, обращается ко мне: "Скорее, пока он не закрылся!" ';
elseif here()^'tower_level_1' and not s.level_1_visited then
s.level_1_visited = true;
p 'Соларскейл оглядывает зал с нескрываемым восторгом. "Как здесь красиво!" -- Восклицает она. ';
elseif here()^'above_forest' and where('solarscale_ally')^'forest_glade' then
p 'Соларскейл бросает прощальный взгляд на поляну и взмывает в воздух следом за мной. ';
else
p 'Соларскейл следует за мной. ';
end;
remove('solarscale_ally', where('solarscale_ally'));
put('solarscale_ally', where(pl));
end;
elseif type(here().nofollow) == 'function' then
local nofollow = here():nofollow();
if type(nofollow) == 'string' then
return nofollow;
end;
elseif type(here().nofollow) == 'string' then
return here().nofollow;
end;
end;
}
dlg {
nam = 'solarscale_ally_dlg';
disp = 'Соларскейл';
enter = function(s)
local from = here():from();
if from^'above_forest' then
return 'Я оборачиваюсь к Соларскейл, мерно взмахивающей крыльями позади меня. Она спрашивает: "Куда мы летим?"';
elseif from^'tower_level_1' then
return 'Мне пришлось окликнуть Соларскейл, чтобы она обратила на меня внимание. Она восклицает: "Это место... Потрясающе!"';
elseif from^'tower_level_2' then
return 'Соларскейл тихо шепчет про себя: "Потрясающе! Если бы у меня была такая лаборатория!"';
elseif from^'tower_level_3' then
return 'Соларскейл зависает в воздухе напротив меня и тихо спрашивает: "Могу я чем-то помочь?"';
elseif from^'tower_level_4' then
return 'Соларскейл вопросительно смотрит на меня. ';
elseif from^'tower_level_4_room_2' then
if power_on then
if pc_status == 'fail' then
return 'Соларскейл рассматривает клавиатуру терминала. ';
else
return 'Соларскейл рассматривает клавиатуру терминала. Она спрашивает: "Попробуем включить?" ';
end;
else
return 'Соларскейл рассматривает клавиатуру терминала. Она сообщает: "Похоже, электричества нет". ';
end;
elseif from^'tower_level_3_room_2' then
if from.light then
return 'Соларскейл удивленно восклицает: "Поражаюсь размеру этого склада! Кажется, эта башня внутри больше чем снаружи!"';
else
return 'Соларскейл сетует: "В этой темени вообще ничего не видно! Надо бы принести свет". ';
end;
elseif from^'tower_level_2_room_2' then
return 'Соларскейл восклицает: "Эта башня не перестает удивлять! Что еще мы здесь обнаружим?"';
elseif from^'crater_near_tower' then
return 'Соларскейл повторяет, обращаясь ко мне: "Скорее, пока проход открыт!"';
elseif from^'forest_glade' then
return 'Соларскейл неспешно прогуливается по полянке, разглядывая и принюхиваясь к цветам. Некоторые из них она бережно срывает и укладывает в свою сумку. Заметив мой взгляд, она произносит: "Очень красивое место. Мне здесь, правда, очень нравится". ';
elseif from^'above_near_village' then
return 'Я оборачиваюсь к Соларскейл, мерно взмахивающей крыльями позади меня. Она спрашивает: "Куда мы летим?" ';
elseif from^'near_village' then
return 'Соларскейл задумчиво смотрит вдаль, на деревню: "Приятное местечко. Не отказалась бы и я здесь пожить". ';
elseif from^'above_village' then
return 'Я оборачиваюсь к Соларскейл, мерно взмахивающей крыльями позади меня. Она сообщает: "Нам, драконам, лучше не показываться людям в истинном обличии. Давайте не будем здесь задерживаться". ';
elseif from^'inside_crater_path' then
return 'Соларскейл решительно восклицает: "Я готова! Вперед!"';
elseif from ^'inside_crater_glade' then
return 'Соларскейл спрашивает: "Интересно, кто проложил эту тропу? Как будто специально для нас". ';
elseif from^'above_crater' then
return 'Соларскейл осматривается вокруг и произносит: "Вы выбрали лучшее место для приземления, если действительно хотите попасть в эту башню. Вернемся?" ';
elseif from^'above_west' then
return 'Соларскейл осматривается вокруг: "Отсюда потрясающий вид. Как вы узнали про этот кратер?" ';
end;
return [[Соларскейл с улыбкой смотрит на меня. ]];
end;
phr = {
{cond=function(s) return here():from()^'tower_level_1' and not have('tower_box') and not _('tower_level_1').keys_taken and not have('tower_level_2_key') and _('level_1_up'):disabled() end, 'У вас есть идеи, как открыть эту дверь?', 'Соларскейл задумчиво произносит: "Пока не знаю. Надо все внимательно осмотреть". '};
{cond=function(s) return here():from()^'tower_level_1' and have('tower_box') and not _('tower_level_1').keys_taken and _('level_1_up'):disabled() end, 'У вас есть идеи, что мы должны сделать?', 'Соларскейл подлетает ко мне: "Я могу взглянуть на шкатулку, что вы только что подняли?" ',
only=true;
{'[Протянуть шкатулку Соларскейл] Да, конечно. ', 'Соларскейл берет шкатулку и внимательно осматривает, прежде чем вернуть ее мне. Наконец, она изрекает: "Четыре замочные скважины... Наверное, и ключи должны быть где-то здесь". '};
{'Не сейчас. ', 'Соларскейл пожимает плечами: "Что же, тогда ничем не могу помочь". '};
};
{cond=function(s) return here():from()^'tower_level_1' and not have('tower_box') and _('tower_level_1').keys_taken and not have('tower_level_2_key') and _('level_1_up'):disabled() end, 'У вас есть идеи, что мы должны сделать?', 'Соларскейл спрашивает: "Вы уверены, что ни один из ключей не подходит к двери?" ',
only=true;
{'Нет, это ключи не от этой двери.', '"Они здесь явно не просто так. Надо поискать повнимательнее", -- задумчиво сообщает драконесса. '};
{'Предположим, не подходит.', '"Они здесь явно не просто так. Надо поискать повнимательнее", -- задумчиво сообщает драконесса. '};
{'Я не проверял.', 'Соларскейл задумчиво отвечает: "Надо бы проверить... Хотя это слишком просто..."'};
};
{cond=function(s) return here():from()^'tower_level_1' and have('tower_box') and _('tower_level_1').keys_taken and not have('tower_level_2_key') and _('level_1_up'):disabled() end, 'У вас есть идеи, что мы должны сделать?', 'Соларскейл подлетает ко мне и спрашивает: "Могу я взглянуть?" ',
only=true;
{'[Протянуть шкатулку, ключи и записку Соларскейл] Да, конечно. ', function(s)
if solarscale_helps > 0 then
open('#level1_agree');
open('#level1_disagree');
close('#level1_no_help');
return 'Соларскейл берет предметы у вас и раскладываеть их на столе. Немного подумав, она сообщает: "Кажется, у меня есть идея. Позволите попробовать?"';
else
close('#level1_agree');
close('#level1_disagree');
open('#level1_no_help');
return 'Соларскейл берет предметы у вас и раскладываеть их на столе. Немного подумав, она делает вывод: "Боюсь, я не могу вам ничем помочь". ';
end;
end,
only=true;
{'#level1_agree', 'Да, конечно. ', function(s)
remove('tower_box', pl);
remove('tower_hint_1', pl);
remove('tower_key_0', pl);
remove('tower_key_1', pl);
remove('tower_key_2', pl);
remove('tower_key_3', pl);
take('tower_level_2_key');
solarscale_helps = solarscale_helps - 1;
return 'Драконесса еще некоторое время остается неподвижной, раздумывая, затем начинает перебирать ключи. Воскликнув: "Ага!" -- Она вставляет ключ за ключом в замочные скважины, и шкатулка разваливается в ее руках. Внутри шкатулки оказывается небольшой серебряный ключик. Соларскейл протягивает его мне со словами: "Попробуйте открыть им дверь". ';
end};
{'#level1_disagree', 'Спасибо, но я лучше попробую сам. ', 'Соларскейл молча возвращает вам предметы. '};
{'#level1_no_help', 'Спасибо, тогда я попробую сам. ', 'Соларскейл молча возвращает вам предметы. '};
};
{'Не сейчас. ', 'Соларскейл пожимает плечами: "Что же, тогда ничем не могу помочь". '};
};
{cond=function(s) return here():from()^'tower_level_2' end, 'Вы увлекаетесь алхимией?', 'Соларскейл немного смущенно отвечает: "Мне всегда было это интересно, но... Как бы выразиться помягче... У меня не получилось ни одного сколь-либо сложного зелья. Мне очень хочется научиться этому". ',
{"Жаль, мне не помешала бы ваша помощь.", 'Соларскейл опускает глаза: "Простите. Надеюсь смогу быть полезна в чем-нибудь другом". '};
};
{cond=function(s) return here():from()^'tower_level_3' and _('level_3_up'):disabled() end, 'У вас есть какие-то мысли по поводу этой загадки?', function(s)
if solarscale_helps > 0 then
open('#level3_agree');
open('#level3_disagree');
close('#level3_no_help');
return 'Соларскейл кивает: "Да, есть кое-что. Позволите попробовать?"'
else
close('#level3_agree');
close('#level3_disagree');
open('#level3_no_help');
return 'Соларскейл отрицательно мотает головой: "У меня нет никаких идей". '
end;
end, only=true,
{"#level3_agree", 'Да, конечно. ', function(s)
remove('figure_wolf', pl);
remove('figure_tiger', pl);
remove('figure_lion', pl);
remove('figure_knight', pl);
remove('figure_tower', pl);
_('tower_level_3_table').solved = true;
_('level_3_up'):enable();
solarscale_helps = solarscale_helps - 1;
return 'Соларскейл берет фигурки и неспешно, одну за другой, ставит их в отведенные углубления. Легкий щелчок дает нам понять, что дверь на следующий этаж башни открыта. ';
end};
{"#level3_disagree", "Сначала я попробую сам. ", 'Соларскейл молча кивает. '};
{"#level3_no_help", "Что же, тогда я попробую сам. ", 'Соларскейл молча кивает. '};
};
{cond=function(s) return here():from()^'tower_level_4' and _('level_4_next_room'):disabled() end, 'Вы знаете, что мы должны сделать?', function(s)
if solarscale_helps > 0 then
open('#level4_agree');
open('#level4_disagree');
close('#level4_no_help');
return 'Соларскейл задумчиво произносит: "Да, думаю, я могу помочь". ';
else
close('#level4_agree');
close('#level4_disagree');
open('#level4_no_help');
return 'Соларскейл отрицательно мотает головой: "К сожалению, я не знаю, что здесь делать".';
end;
end, only=true,
{"#level4_agree", '[Позволить Соларскейл все сделать]', function(s)
candles_solved = true;
_('level_3_up'):enable();
solarscale_helps = solarscale_helps - 1;
local c = _('tower_candelabra')
if #c.notestack == 0 then
local ns = {1,2,3,4,5,6,7};
for i = 1, 7 do
local idx = rnd(#ns);
table.insert(c.notestack, ns[idx]);
table.insert(c.notesequence, c.notes[ns[idx]][2]);
ns[idx] = ns[8 - i];
ns[8 - i] = nil;
end;
end;
local ns = table.copy(c.notesequence);
ns[#ns + 1] = gusts[rnd(#gusts)];
ns[#ns + 1] = 'open_door';
play_sound(ns, 600);
_('level_4_next_room'):enable();
return 'Соларскейл последовательно зажигает свечи. В темноте одна за другой звучат ноты, а затем резкий порыв ветра распахивает дверцу в дальнем конце комнаты. ';
end};
{"#level4_disagree", "Сначала я попробую сам. ", 'Соларскейл молча кивает. '};
{"#level4_no_help", "Что же, тогда я попробую сам. ", 'Соларскейл молча кивает. '};
};
{cond=function(s) return here():from()^'tower_level_4_room_2' and power_on and pc_status ~= 'fail' end, 'Включайте!', function(s)
pr [[Соларскейл включает компьютер. ]];
local rval = _('system_unit'):check(true);
close('#tl4r2a');
if rval == 'motherboard' then
pr [[Пролистав руководство, драконесса констатирует: "Похоже, не работает материнская плата. Надо бы поискать замену". ]];
return;
elseif rval == 'cpu' then
pr [[Пролистав руководство, драконесса констатирует: "Похоже, не работает центральный процессор. Надо бы поискать замену". ]];
return;
elseif rval == 'ram' then
pr [[Пролистав руководство, драконесса констатирует: "Похоже, не работает оперативная память. Надо бы поискать замену". ]];
return;
elseif rval == 'video' then
pr [[Пролистав руководство, драконесса констатирует: "Похоже, не работает видеокарта. Надо бы поискать замену". ]];
return;
elseif rval == 'keyboard' then
pr [[Пролистав руководство, драконесса констатирует: "Похоже, не работает контроллер клавиатуры. Надо бы поискать замену". ]];
return;
end;
open('#tl4r2a');
pr [[Драконесса, посмотрев на экран, сообщает: "Кажется, заработал". ]];
end,
{
'#tl4r2a', "[Подойти к терминалу]Отлично, посмотрим.",
function(s)
walkin('terminal');
end;
},
{'Вы сможете отремонтировать его?', function(s)
if have('part_box') then
if solarscale_helps > 0 then
open('#tl4r2cfa');
open('#tl4r2cfb');
close('#tl4r2cfc');
close('#tl4r2cfd');
return 'Соларскейл заглядывает в коробку с запчастями и, немного покопавшись в ней, сообщает: "Думаю, справлюсь. Позволите?"';
else
close('#tl4r2cfa');
close('#tl4r2cfb');
close('#tl4r2cfc');
open('#tl4r2cfd');
return 'Соларскейл с сожалением сообщает: "Не думаю, что смогу помочь. Я никогда не встречала компьютеров такого типа". ';
end;
else
close('#tl4r2cfa');
close('#tl4r2cfb');
close('#tl4r2cfd');
open('#tl4r2cfc');
return 'Соларскейл задумчиво говорит: "Только если мы найдем запасные детали". '
end;
end, only=true,
{'#tl4r2cfa', 'Да, разумеется. ', function(s)
walkout();
local motherboard = lookup('#motherboard', _'system_unit');
local cpu= lookup('#cpu', _'system_unit');
local ram = lookup('#ram', _'system_unit');
local slot1 = lookup('#slot1', _'system_unit');
local slot2 = lookup('#slot2', _'system_unit');
local slot3 = lookup('#slot3', _'system_unit');
motherboard.device = _'crx-rdt-i3sb';
cpu.device = _'rcpu200-crx-20mhz';
ram.device = _'rdt-m32-32mb';
slot1.device = _'gva-rx4';
slot2.device = _'fna-100-10mbs_2';
slot3.device = _'kbc-s';
solarscale_helps = solarscale_helps - 1;
pc_status = 'ok';
return 'Соларскейл привычно разбирает компьютер и, заглянув в инструкцию, меняет сломанные детали на новые. Закончив, она собирает его обратно. "Посмотрите! Кажется, я даже смогла немного улучшить его!"';
end},
{'#tl4r2cfb', 'Спасибо, но я сам справлюсь. ', function(s)
walkout();
return 'Соларскейл молча кивает. ';
end},
{'#tl4r2cfc', 'Как думаете, где они могут быть?', function(s)
return 'Соларскейл отвечает: "Этажом ниже был склад, кажется. Есть смысл начать поиск оттуда". ';
end},
{'#tl4r2cfd', '[Закончить разговор]', function(s)
walkout();
end}
};
{
'#tl4r2b', "[Закончить диалог]",
function(s)
walkout();
end;
}};
{cond=function(s) return here():from()^'tower_level_4_room_2' and pc_status == 'fail'; end, 'Вы сможете отремонтировать его?', function(s)
if have('part_box') then
if solarscale_helps > 0 then
open('#tl4r2fa');
open('#tl4r2fb');
close('#tl4r2fc');
close('#tl4r2fd');
return 'Соларскейл заглядывает в коробку с запчастями и, немного покопавшись в ней, сообщает: "Думаю, справлюсь. Позволите?"';
else
close('#tl4r2fa');
close('#tl4r2fb');
close('#tl4r2fc');
open('#tl4r2fd');
return 'Соларскейл с сожалением сообщает: "Не думаю, что смогу помочь. Я никогда не встречала компьютеров такого типа". ';
end;
else
close('#tl4r2fa');
close('#tl4r2fb');
close('#tl4r2fd');
open('#tl4r2fc');
return 'Соларскейл задумчиво говорит: "Только если мы найдем запасные детали". '
end;
end, only=true,
{'#tl4r2fa', 'Да, разумеется. ', function(s)
walkout();
local motherboard = lookup('#motherboard', _'system_unit');
local cpu= lookup('#cpu', _'system_unit');
local ram = lookup('#ram', _'system_unit');
local slot1 = lookup('#slot1', _'system_unit');
local slot2 = lookup('#slot2', _'system_unit');
local slot3 = lookup('#slot3', _'system_unit');
motherboard.device = _'crx-rdt-i3sb';
cpu.device = _'rcpu200-crx-20mhz';
ram.device = _'rdt-m32-32mb';
slot1.device = _'gva-rx4';
slot2.device = _'fna-100-10mbs_2';
slot3.device = _'kbc-s';
solarscale_helps = solarscale_helps - 1;
pc_status = 'ok';
return 'Соларскейл привычно разбирает компьютер и, заглянув в инструкцию, меняет сломанные детали на новые. Закончив, она собирает его обратно. "Посмотрите! Кажется, я даже смогла немного улучшить его!"';
end},
{'#tl4r2fb', 'Спасибо, но я сам справлюсь. ', function(s)
walkout();
return 'Соларскейл молча кивает. ';
end},
{'#tl4r2fc', 'Как думаете, где они могут быть?', function(s)
return 'Соларскейл отвечает: "Этажом ниже был склад, кажется. Есть смысл начать поиск оттуда". ';
end},
{'#tl4r2fd', '[Закончить разговор]', function(s)
walkout();
end}
};
{cond=function(s) return here():from()^'tower_level_4_room_2' and not power_on end, 'Что мы можем сделать?', 'Соларскейл пожимает плечами: "Отсюда, скорее всего, ничего. Давайте осмотрим другие помещения". '};
{'#cnt1', cond=function(s) return here():from()^'crater_near_tower' end, 'Что если дверь закроется как только мы войдем?', function(s)
close('#cnt2');
return 'Соларскейл решительно отвечает: "Разберемся! Неужели вам не интересно?"';
end};
{'#cnt2', cond=function(s) return here():from()^'crater_near_tower' end, 'Если честно, я не думаю, что дверь закроется, пока мы не вошли. ', function(s)
close('#cnt1');
return 'Соларскейл неуверенно произносит: "Откуда нам знать..."';
end};
{cond=function(s) return here():from()^'above_west' end, 'Я нашел карту, ведущую к нему, в деревне, что к востоку отсюда.', 'Соларскейл молча кивает, видимо ожидая, что я скажу что-то еще.',
only = true,
{'Я хочу посетить ее еще раз, прежде чем вернуться в кратер. ', 'Соларскейл согласно кивает: "Я подожду вас в лесу. Я не умею превращаться, как вы, и не хочу... -- Она на мгновение замолкает, подбирая нужное слово. -- Обескуражить местных жителей своим видом". '};
{'Вам знакомо это место?', 'Соларскейл отрицательно качает головой: "Я впервые в этих краях, как и вы". '};
};
{cond=function(s) return here():from()^'inside_crater_glade' end; 'Если лететь из деревни, то это самое разумное место для приземления... ', 'Соларскейл размышляет вслых: "Тогда нам точно стоит пройти этот путь до конца". '};
{cond=function(s) return not have('flower_solarscale', me) and here():from()^'forest_glade'; end; 'Полностью с вами согласен.', function(s)
take('flower_solarscale');
return 'Соларскейл протягивает мне небольшой цветочек с полупрозрачными золотистыми лепестками: "Вот, возьмите, на память", -- тихо произносит она. Я принимаю цветок из ее рук. ';
end};
{cond=function(s) return here():from()^'above_forest'; end; 'Решил еще раз облететь округу, на случай если я что-то упустил. ', function(s)
if solarscale_glade_visited then
return 'Соларскейл осторожно намекает: "Возможно, стоит вернуться к башне?" ';
else
return 'Соларскейл бегло осматриает окрестности. Ее взгляд задерживается на полянке внизу: "Я бы хотела приземлиться здесь, вы не против?" ';
end;
end};
{'#ac1', cond=function(s) return here():from()^'above_crater'; end; 'Да, но чуть позже, хочу осмотреть все еще раз. ', function(s)
close('#ac2');
return 'Соларскейл кивает: "Хорошая идея". '
end};
{'#ac2', cond=function(s) return here():from()^'above_crater'; end; 'Да, я просто хотел еще раз осмотреть это место сверху. ', function(s)
close('#ac1');
return 'Соларскейл кивает: "Хорошая идея". '
end};
{'#anv1', cond=function(s) return here():from()^'above_near_village'; end; 'Решил еще раз облететь округу, на случай если я что-то упустил. ', function(s)
close('#anv2');
return 'Соларскейл молча кивает. '
end};
{'#anv2', cond=function(s) return here():from()^'above_near_village'; end; 'Вы не против, если я посещу деревню еще раз?', function(s)
close('#anv1');
return 'Соларскейл отвечает: "Хорошо. Я подожду вас в лесу". '
end};
{'#nv2', cond=function(s) return here():from()^'near_village'; end; 'Вы еще не видели местную библиотеку -- я надеюсь вернуться в нее и прочесть хотя бы половину того, что здесь есть. ', 'Соларскейл оживляется: "Я бы тоже не отказалась, -- однако почти сразу же одергивает себя. -- Но я не могу менять форму".'};
{cond=function(s) return here():from()^'inside_crater_path'; end, "Куда ведет эта тропинка?", 'Соларскейл рассказывает: "К центру кратера. Там расположена странная башня из черного камня. Кажется, она очень старая -- вокруг все поросло травой, нет никаких следов строительства, однако выглядит так, будто время над ней не властно -- ни единой трешинки, ни единой царапинки на ее стенах! Жаль я не смогла попасть внутрь -- входная дверь сделана из того же камня что и сама башня, и ни мои когти, ни моя магия не помогли мне открыть ее". '};
{cond=function(s) return here():from()^'above_village'; end; 'Кажется, местные не знают ничего о кратере. ', 'Соларскейл задумчиво произносит: "Должно быть, карта была сделана очень давно и никто просто не помнит. Сколько же здесь стоит эта башня?!" '};
{cond=function(s) return here():from()^'above_village'; end; 'Вы не против, если я посещу деревню еще раз?', 'Соларскейл отвечает: "Нет, конечно. Я подожду вас в лесу". '};
{'[Закончить диалог]', function(s) walkout(); end};
};
}
|