jacques/rooms.lua
Alexander Yakovlev b45372f431 Самое главное: сценарий третьей части готов и я всё-таки решил его добавить. Потому что потерять его было бы очень
жаль.
Ну и я начал уже работу над кодом. Новая версия INSTEAD пришлась как раз кстати - могу удалить debug.lua.
2010-06-26 14:25:38 +07:00

151 lines
16 KiB
Lua
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

main = room {
nam = "Около 300 лет назад. Континент Рубинов.",
dsc = [[
Крепко сжимая верный меч, Джек прокрался по траве и подбежал к стене замка. Оглянувшись, он снял с плеча крюк, ещё раз проверил, выдержит ли узел канат на нём, и бросил крюк наверх. Тот полетел на крышу, унося за собой верёвку. Раздалось громкое "клац" и Джек понял, что свободный конец каната качается примерно в метре над его головой.^^
Чертыхнувшись, он разбежался, прыгнул как можно выше, схватился за верёвку и больно ударился о каменную стену. Качаясь на конце каната, он начал забираться.^^
Лимзогнок сидел в бархатном кресле спиной от окна. Он смотрел в огромный стеклянный шар, следя за каким-нибудь очередным несчастным.^^
Джек бесшумно раскрыл окно, встал на подоконник и прыгнул, занеся меч над головой...^^]]..txtem('Клетка Силы!')..
[[^^
Казалось, волшебник даже не двинул пальцем. Джек обнаружил себя в ровной тесной клетке с белыми прутьями. Он попытался сломать прутья мечом - но на белых прутьях, словно созданных из лунного света, не было видно даже царапин.^^
Оторвавшись от просмотра, Лимзогнок встал из кресла и посмотрел на Джека. Джек почувствовал острую смесь разочарования, злобы и отчаяния. Он понял, что все усилия были напрасны.
"Какая ирония. Ровно на сотом месяце эксперимента на меня было совершено первое покушение." ^^
Джек смотрел на колдуна так, словно хотел его прожечь взглядом.
"Кстати о колдунах, " - гад явно читал мысли - "что бы на моём месте сделал какой-нибудь колдун? Хмм... наверное, он бы сделал тебя своим гладиатором. Представь: ты и озеро кислоты - или нет, озеро лавы! Да, и ещё хищные кондоры, и акулы, и оборотни. И я буду делать ставки, выживешь ли ты или нет. Да, этого хотят все колдуны. Они говорят,что это весело. Весело? Быть может, но это тупо. Акулы в лаве! Что может быть хуже?"^^
Волшебник ходил взад и вперёд по комнате, хитро поглядывая на Джека.
"Но с другой стороны, я не могу тебя отпустить. Ты сам пришёл ко мне, в конце концов. Наверное, это был подарок судьбы. Хорош ли он? Посмотрим..."
В ту же секунджу Джек выронил меч и скорчился на полу клетки от боли, разрывающей его мозг. Перед ним ничего не было: ни колду...волшебника, ни комнаты, ни замка - только боль. И единственным его желанием было прекратить её.
"Как хочешь."
Боль исчезла, и Джек снова смог видеть.
"Вообще-то, я разочарован. Это было всего лишь слабое воздействие, а ты уже показал себя несостоятельным. Похоже, что ты не умнее обычных людей - конечно, это довольно много для воина, но явно недостаточно для того, кто хотел убить меня в моей же спальне. Нет, так дело не пойдёт. Ты знаешь, я хочу тебе помочь. Да, я помогу тебе. Я натренирую твой мозг и сделаю тебя умнее. Для этого мы немного поиграем...]]..txtem('Сон.'),
obj = {vway('дальше', '{Начать игру}.', 'three_doors') },
}
three_doors = room {
nam = 'Светлая комната',
enter = [[Джек проснулся в светлой комнате с каменными стенами. В его голове раздался голос:^^
"Сообщаю тебе, что первая загадка - это детская забава. Всего одна из табличек на дверях правдива, за двумя дверями тебя ждёт смерть. Постарайся не проиграть, пожалуйста. Мне будет обидно закончить, не успев ничего начать."]],
dsc = [[Светлая пустая комната с каменными стенами. Откуда идёт свет, вам непонятно.]],
obj = {'door1_obj','door2_obj','door3_obj'},
way = {vroom('Дверь 1', 'act1'),'door2_room','door3_room'}
}
door2_room = room{
nam = "Дверь 2",
dsc = [[Как только Джек открывает дверь, на него набрасывается разъярённый тигр и разрывает его в клочья.^^]]..txtc(txtb('КОНЕЦ ИГРЫ')),
obj = {vway('повтор','{Повторить?}','three_doors')},
}
door3_room = room{
nam = "Дверь 3",
dsc = [[Как только Джек открывает дверь, его поражает сноп серебряных молний.^^]]..txtc(txtb('КОНЕЦ ИГРЫ')),
obj = {vway('повтор','{Повторить?}','three_doors')},
}
act1 = room{
nam = 'Часть 1',
enter = function() pl.Points = pl.Points+10 end,
dsc = txtr(txtem([[День 3044.^^]]))..[[Сегодня на меня было совершено покушение.^^Читатель моего дневника мог подзабыть, но за всё время проведения эксперимента я столкнулся всего лишь с тремя помехами. ^^
Первой помехой был король Песчаного королевства, который внезапно вышел из-под моего контроля и чуть не испортил мои планы в самом начале. Его королевство дорого поплатилось за этот акт непослушания, но я в конце концов простил их и даже сделал одним из Трёх. Между прочим, на его троне до сих пор сидит тот же король..хотя, это скорее не из-за моей доброты, а просто потому что он такой удобный дурак. Ладно,я отвлёкся.^^
Через пять лет в Северном королевстве случился народный бунт. Люди выступали против... фактически против меня. Этот бунт заставил меня серьёзно доработать свою систему. Возможно, я должен сказать бунтовщикам спасибо - именно тогда я решил вовлечь все подвластные мне государства континента в войну, что позволило мне закрутить гайки в каждом из них. Впрочем, эти люди уже не услышат моих благодарностей. По-моему, это к лучшему.^^
И вот - теперь на меня совершено покушение. По сравнению с первыми двумя попытками мне помешать эта выглядит какой-то мелкой. Я думал, уж не стоит ли за этим идиотом кто-нибудь поумнее - но в его голове нет ничего. Хмм... Новое поколение строго проходит обряд дифференциации, а старое работает на дело войны и мира не покладая рук. Но так как появлися один человек, которого я не заметил, то может появиться и второй, и больше. ^^
Если совсем углубляться в паранойю, то мог появиться волшебник, равный мне по силе..который стёр все следы своего воздействия из мозгов этого олуха.^^
Мда. Очень, очень маловероятно. В любом случае, мне стоит быть осторожнее. Возможно, в ближайшее время я уйду в один из смежных планов - а лучше, далёких планов или миров. Так я действительно буду наблюдателем, не вмешиваясь и не будучи внутри наблюдаемого континента. Следует подумать над экстренным свитком...в какие-нибудь богами забытые королевства.]],
obj = {vway('дальше','{Продолжить игру}','falling')},
}
falling = room{
steps = 0,
Times = 0;--количество попыток
nam = "В воздухе",
enter = function()
inv():zap();
falling.steps = 0;
falling.Times = falling.Times+1;
inv():add('rope');
inv():add('pot');
inv():add('waterskin');
inv():add('knife');
inv():add('axe');
inv():add('black_powder');
inv():add('stick');
inv():add('lock');
inv():add('boat');
inv():add('cape');
inv():add('plantain');
lifeon('falling');
cape.wet = false;
rope.wet = false;
return [[Как только Джек открыл дверь, свет в комнате погас.Знакомый голос сказал:^^
"Да, ты выбрал верно. Продолжаем игру. Второй раунд! ]]..txtem('Телепорт."');
end,
life = function()
falling.steps=falling.steps+1;
if (falling.steps == 0) then return 'Над вами - только звёзды. Они быстро удаляются.';
elseif (falling.steps==1) then return 'Вы различаете крыши домов внизу.';
elseif (falling.steps == 2) then return 'Вы пролетаете мимо орла.';
elseif (falling.steps == 3) then return 'Вы видите транспаранты и плакаты на стенах города: "Песчаное королевство - наш друг и помощник в борьбе против эльфийской дряни!", "Поднимем знамя Войны за дело Мира!", "Сагиттир - наместник Звёздных Королей!"';
elseif (falling.steps == 4) then return 'Вы можете увидеть людей, идущих по улицам.';
elseif (falling.steps > 4) then
ACTION_TEXT = nil;
if have('chute') then return goto('landing'),true;
else return goto('end_fall'),true;
end;
end;
end,
dsc = "Вы находитесь в свободном полёте. На вас быстро падает земля...или вы на неё падаете, что для вас одно и то же. Похоже, что внизу лежит какой-то большой город. Вы почти не чувствуете веса рюкзака на спине."
}
end_fall = room{
nam = 'Земля',
enter = function() lifeoff('falling'); end,
dsc = function() return txtem("Полёт Пера.")..[[^^В самый последний момент, когда до земли остаётся несколько метров, Джек останавливает полёт и начинает плавно спускаться.Голос в голове Джека возмущается: ^^"]]..comment_things()..'"' end,
obj = {vway('повтор','{Повторить?}','falling')},
}
landing = room{
nam = 'Мягкая посадка',
enter = function()
if have('chute') then return 'Вы совмещаете рисунки на трёх предметах и получаете рисунок: человек, из плеч которого выходят 4 длинных линии и заканчиваются в полукруге. В ту же секунду вы чувствуете, как из ваших плеч вырастают волшебные верёвки. Вы поднимаете глаза и видите над собой круглый купол. Вы медленно спускаетесь на землю.' end;
end,
dsc = [[Как только вы приземляетесь, просыпается знакомый голос. Вы не знаете, откуда он идёт; кажется, что отовсюду сразу.^^-]]..comment_time()..[[^^
Ладно, я слишком многословен. Продолжаем!]]..txtem('Сон.'),
obj = {vway('далее','{Перейти к следующей загадке}','village')},
}
square = room{
nam = 'Площадь им. Звёздных королей',
enter = function(from, to)
if (from == 'landing') then return [[
- "Не буду тянуть кота за хвост, твоя задача проста. Ты находишься в Звёздных Лесах, город Руйцикон. Твоя задача - найти Эндрю Октанта. Хотя бы просто выяснить, где он может быть. Действуй.]]
end
end,
--http://venividi.ru/files/img/4224/4.jpg
dsc = [[Джек стоит на вымощенной брусчаткой площади. Площадь имеет форму треугольника, из углов которого выходит по улице. "Стороны" этого треугольника образованы очень плотно стоящими двухэтажными деревянными домиками, расписанными в разные цвета.^^
Небо закрыто тёмными облаками, в которых не видно солнца.]],
obj = {'fountain'},
way = {'chaos_st','ink_st','plain_st'}
}
chaos_st = room{
nam = "Улица Хаоса",
dsc = ""
}
ink_st = room{
nam = "Улица Чернил",
_visited = false,
enter = function()
if (visited) then return '' end
return 'Джек смотрит на облетевшие деревья по краям улицы. Редкий сильный ветер гоняет одинокие жёлтые листья. "А ведь уже зима" - грустнеет Джек.';
end,
dsc = 'Джек входит в узкую короткую улочку. На одном из домов по левую руку висит табличка: "Улица Чернил, дом 3".'
}
plain_st = room{
nam = "Плоская Улица",
dsc = 'Под ноги Джеку попадается ржавая табличка: "Плоская Улица, дом 6".'
}