-- $Name: Пробуждение 2: Воскрешение.$ instead_version "1.9.1" require "lib" require "xact" require "hideinv" require "para" require "dash" require "quotes" game.codepage="UTF-8"; game.act = _('Ничего не происходит.'); game.inv = _('Это странная штука.'); game.use = _('Не работает...'); main = room { forcedsc = true, nam = _("..."), enter = music_("pyhun",0), title = _("ПРОБУЖДЕНИЕ 2"), num=16, dsc = function(s) p(_([[ Я и ещё несколько человек вышли из криосна. К сожалению, как минимум у двоих обнаружился синдром выхода из криосна, одного из них мне пришлось убить, другой прямо сейчас движется на меня из лифта, его глаза безумны... ^ Мне надо срочно что-то предпринять... ^^ ]])); p ("{v_483fc406_4b48_47a0_b7f5_d43ff639bade|".._('Начать игру').."}^"); end, obj = { xact( 'v_483fc406_4b48_47a0_b7f5_d43ff639bade', function(s) if not have(_("Бластер")) then take(blasterPistol); end; if not have(_("Нож")) then take(knife); end; if not have(_("Швабра")) then take(mop); end; walk(v_2); end ), }, }; blasterPistol = obj { nam = _("Бластер"), inv = _([[Стандартный бластер. Не стреляет в членов экипажа.]]), use = function(s, w) if w == zombie2 or w == crewMember then if not (blaster) then p(_([[ Я пытаюсь выстрелить в безумца, но в ответ мне раздаётся неприятный гудок, и на дисплее оружия высвечивается надпись: "Идентифицирован член экипажа. Выстрел отменён." ^^ ]])); stead.add_var { blaster = true }; else p (_("Бластер не стреляет в членов экипажа. Лучше не тратить на это время.")) end; elseif w == rat then sound_("shoot_lazer")(); walk(v_10); else p (_("Это не поможет")); end; end, }; knife = obj { nam = "Нож", inv = [[Нож-пила. Выглядит устрашающе.]], use = function(s, w) if w == zombie2 then walk(v_11); elseif w == crewMember then walk(v_3); else p (_("Это не поможет")); end; end, }; mop = obj { nam = "Швабра", inv = [[Многофункциональный инструмент.]], use = function(s, w) if w == zombie2 then remove("Швабра", inv()); walk(v_7); else p (_("Это не поможет")); end; end, }; shpritz = obj { nam = _("Шприц"), inv = _([[Шприц с остатками адреналина.]]), tak = function() p (_("Подскочив к телу, я выхватываю шприц.")) end, use = function(s, w) if w == zombie2 then remove(_("Шприц"), inv()); walk(v_9); else p (_("Это не поможет")) end; end, }; liftDoor = obj { nam = _("двери лифта"), act = _([[Конструкция таких дверей не сильно изменилась за прошедшие века.]]), }; zombie2 = obj { nam = "безумец", act = "Это точно синдром выхода из криосна. Уговоры тут не помогут, нужно что-то другое.", }; crewMember = obj { nam = _("Член экипажа"), act = _("Похоже, лекарство ему помогло..."), }; rat = obj { nam = _("Крыса"), act = _("За тысячу лет пути крыса могла подрасти..."), }; v_2 = room { forcedsc = true, nam = "У лифта", pxa = { { "door2_open", 170 }, { "zombi", 190 } }, dsc = function(s) p(_([[ ...Я судорожно жму на кнопки и {liftDoor|двери лифта} начинают закрываться, но {zombie2|безумец} успевает просунуть наружу свои руки. ^^ ]])); p ("{v_07a7a31c_42f9_4396_bee3_086eb9daccf5|".._('Осмотреться вокруг').."}^"); end, obj = { 'liftDoor', 'zombie2', xact( 'v_07a7a31c_42f9_4396_bee3_086eb9daccf5', function(s) walk(v_8); end ), }, }; v_3 = room { forcedsc = true, nam = "Коридор", dsc = _([[ Я наклоняюсь и добиваю лежащего на полу человека. Будет спокойнее, если я буду уверен, что он мёртв. ^ Не знаю, что будет дальше, но этот бой я выиграл. Буду надеяться на лучшее. ^^ ]]) .. txtc(_("КОНЕЦ")), }; v_4 = room { forcedsc = true, nam = _("Коридор"), pxa = { { "rat", 220 } }, dsc = function(s) p(_([[ Я осторожно склоняюсь над лежащим. Похоже, что он жив: пульс ровный, зрачки не расширены, цвет глаз нормальный. Возможно, то, что не помогло Александру, помогло этому бедолаге. ^ Я жду довольно долго, наконец человек приходит в себя. ^ -- Как тебя зовут? -- спрашиваю я. ^ -- Виталий... -- отвечает он. -- Где я, что со мной? ^ Я как можно мягче постарался ему всё объяснить. Некоторое время он ещё посидел на полу, понурив голову. ^ -- Я очень голоден. -- наконец говорит он. -- пойду, пожалуй, в камеру оргсинтеза, попрошу роботов что-нибудь мне приготовить. ^ Виталий медленно поднимается с пола и идёт в лифт. Видимо, он ещё не совсем в порядке. ^ -- Постой! -- говорю я ему. -- Возьми нож, там может быть опасно. ^ Я отдаю ему нож-пилу. Виталий кивает мне, двери лифта закрываются за ним. ^ Раздумывая о происшедшем, я не сразу заметил, что сзади подкрадывается огромная {rat|крыса}, привлечённая запахом крови. Похоже, она пробралась через вентиляцию. Раздавшийся за спиной шорох выводит меня из оцепенения. Резко обернувшись, я вскрикиваю от ужаса. ^^ ]])); p ("{v_b105d2a2_003b_4d06_8584_48252f71838d|".._("Бежать в лифт").."}^"); if have("Нож") then remove("Нож", inv()); end; end, obj = { 'rat', xact( 'v_b105d2a2_003b_4d06_8584_48252f71838d', function(s) walk(v_14); end ), }, }; v_5 = room { forcedsc = true, nam = "Оружейная", dsc = [[ Собственно, мой выбор был невелик. Бежать можно было только в оружейную. Я лихорадочно шарил по полкам, пытаясь найти хоть что-то полезное, когда сзади на меня обрушился удар и мир потемнел. ^^ ]] .. txtc("КОНЕЦ"), }; v_7 = room { forcedsc = true, nam = "У лифта", pxa = { { "door2", 170 } }, dsc = function(s) p [[ Я с силой толкаю противника шваброй внутрь лифта. Он не удерживается на ногах и падает, вцепившись в швабру мёртвой хваткой. Я едва успеваю отпустить её. Дверь закрывается. На какое-то время сумасшедший заблокирован в кабине лифта, но по грохоту, раздающемуся изнутри, я понимаю, что надолго это его не задержит. Рано или поздно он найдёт кнопку открытия дверей. ^^ ]]; p ("{v_99bc11cc_a4de_4c31_8865_04ad8f93d69d|".._('Скорее бежать').."}^"); p ("{v_6edd0aec_5b08_4812_8dc7_b6ff8ee67c2b|".._('Быстро осмотреться вокруг').."}^"); end, obj = { xact( 'v_99bc11cc_a4de_4c31_8865_04ad8f93d69d', function(s) walk(v_5); end ), xact( 'v_6edd0aec_5b08_4812_8dc7_b6ff8ee67c2b', function(s) walk(v_12); end ), }, }; v_8 = room { forcedsc = true, nam = "Коридор", dsc = function(s) if not have("Шприц") then take(shpritz); end; return [[ Мой взгляд скользит по стенам, по лужам крови на полу, останавливается на теле Александра. Верхняя часть его тела лежит в коридоре, нижняя -- за дверью отсека K007. В груди Александра всё ещё торчит шприц с остатками адреналина. Подскочив к телу, я выхватываю шприц. В это же мгновение пальцы безумца смыкаются вокруг моей шеи. ^^ ]] .. txtc("КОНЕЦ"); end, }; v_9 = room { forcedsc = true, nam = "Коридор", pxa = { { "door1", 10 }, { "door2", 200 }, { "zombi_dead", 400 } }, dsc = function(s) p [[ С отчаянием утопающего я бросаюсь на безумца. Он оказывается гораздо более ловким чем я и хватает меня за руку и за горло. Резко дёрнувшись в попытке вырваться, я поскальзываюсь на луже крови и мы оба с грохотом валимся на пол. ^ Я считаю себя уже мёртвым, но тут вдруг неожиданно замечаю, что мой {crewMember|противник} внезапно затих. Шприц вонзился ему в грудь, похоже, что лекарство подействовало. ^^ ]]; p ("{v_119ceea5_1cd3_482b_bf37_46b0973a6e50|".._('Проверить, что с ним').."}^"); end, obj = { 'crewMember', xact( 'v_119ceea5_1cd3_482b_bf37_46b0973a6e50', function(s) walk(v_4); end ), }, }; v_10 = room { forcedsc = true, nam = "Коридор", dsc = function(s) p [[ Я хватаю бластер, в тот же момент крыса бросается на меня. Дальше всё как в тумане, помню только яркий луч бластера и резкую боль в плече. ^^ ]]; p ("{v_327801e4_1ede_4ab4_bf5c_a669d798e86b|".._('Далее').."}^")); end, obj = { xact( 'v_327801e4_1ede_4ab4_bf5c_a669d798e86b', function(s) if have("Бластер") then remove("Бластер", inv()); end; walk(v_13); end ), }, }; v_11 = room { forcedsc = true, nam = "Коридор", dsc = [[ Я пытаюсь ударить безумца, но он как будто не чувствует удара. В ответ он с нечеловеческой силой отшвыривает меня к стене. Я падаю и проваливаюсь в темноту... ^^ ]] .. txtc("КОНЕЦ"), }; v_12 = room { forcedsc = true, nam = "Коридор", pxa = { { "door1", 10 }, { "door2", 200 }, { "zombi_dead", 400 } }, dsc = function(s) p (_([[ Мой взгляд скользит по стенам, по лужам крови на полу, останавливается на теле Александра. Верхняя часть его тела лежит в коридоре, нижняя -- за дверью отсека K007. ]])) p ((not have(_("Шприц"))) and _("В груди Александра всё ещё торчит {shpritz|шприц} с остатками адреналина.^" or "^")) p (_("{zombie2|Безумец} справился с дверью лифта и приближается ко мне.^^")) p ("{v_0df5dc84_caf3_4b24_8d7c_af7853aaf0b1|".._('Скорее бежать').."}^")); end, obj = { 'shpritz', 'zombie2', xact( 'v_0df5dc84_caf3_4b24_8d7c_af7853aaf0b1', function(s) walk(v_5); end ), }, }; v_13 = room { forcedsc = true, nam = "Коридор", enter = function() mute_()(); complete_("wake2")() end, dsc = function(s) return [[ В коридоре криоблока появился робот WR023. Первым делом он доставил раненого в камеру автодоктора. Пару дней, и будет как новенький. Затем он вернулся за крысой и потащил её в камеру оргсинтеза. Для переработки сгодится. ^ Затащив добычу в камеру оргсинтеза, робот заметил на полу человека. Он был мёртв, рядом валялась миска с остатками отвратительной смеси. "Наверное, не справился с миксером и сепаратором", -- подумал робот. ^ Приблизившись к телу, он собрал материал для клонирования. Сначала здесь, потом у дверей отсека K007. Теперь придётся несколько лет ждать, пока клоны вырастут, затем в них необходимо загрузить знания, личность и воспоминания... Эти люди так несовершенны... ]] end, act = gamefile_("arrival.lua"); obj = { vobj("next", txtc("{Это ещё не конец...}")) } }; v_14 = room { forcedsc = true, nam = "Лифт", enter = function() mute_()(); complete_("wake2")() end, dsc = function(s) if have("Бластер") then remove("Бластер", inv()); end; return [[ Я подбегаю к лифту, жму на кнопку вызова... Конечно же, лифт не успевает приехать, и чудовище набрасывается на меня. Огромные жёлтые клыки рядом с моим лицом -- последнее, что я вижу в своей жизни. ]] end, act = gamefile_("arrival.lua"); obj = { vobj("next", txtc("{Это ещё не конец...}")) } };