310 lines
9.2 KiB
Lua
310 lines
9.2 KiB
Lua
-- $Name: Личность$
|
||
-- $Version: 0.1$
|
||
instead_version "1.9.1"
|
||
require "lib"
|
||
require "para"
|
||
require "dash"
|
||
require "quotes"
|
||
require "xact"
|
||
global {
|
||
rat_i = 0;
|
||
onedsc = 5;
|
||
twodsc = 8;
|
||
threedsc = 2;
|
||
fourdsc = 6;
|
||
}
|
||
_patterns = {};
|
||
|
||
game.use = "Вариантов успешного завершения инструкций 0... Отмена действия."
|
||
|
||
main = room {
|
||
nam = "..."
|
||
,enter = music_("castle")
|
||
,title = {"Л", "И", "Ч", "Н", "О", "С", "Т", "Ь" }
|
||
,num = 14
|
||
,act = function() walk(main2) end
|
||
,obj = { vobj("next", '{Начать игру}') }
|
||
}
|
||
|
||
main2 = room {
|
||
forcedsc = true;
|
||
pxa = {
|
||
{ "door4", 10 },
|
||
{ "panel", 150 },
|
||
{ if_("exist(programmator_mozgov)","program","program_empty"), 240, 50 },
|
||
{ "crio", 300 }
|
||
},
|
||
nam = "Выход",
|
||
dsc = "Отсек криосна. Мне необходимо разобраться с одним из членов экипажа. Кажется у него какие-то проблемы с сознанием.",
|
||
obj = {"chest", "criocaps","programmator_mozgov"},
|
||
}
|
||
|
||
chest = obj {
|
||
nam = "chest",
|
||
dsc = "На стене {ящик} с кодовым замком.",
|
||
act = function (s)
|
||
walk("coderoom")
|
||
end,
|
||
}
|
||
|
||
criocaps = obj {
|
||
nam = "criocaps",
|
||
dsc = "Рядом стоит {криокапсула}. Она светится синим светом изнутри.",
|
||
act = "Судя по надписи - внутри инженер Александр. Тот кто нужен."
|
||
}
|
||
|
||
programmator_mozgov = obj {
|
||
nam = function(s)
|
||
if rat_i == 0 then
|
||
p"Программатор личности"
|
||
else
|
||
p"Программатор личности (с копией крысиной личности)"
|
||
end
|
||
end,
|
||
dsc = "На стене под стеклом висит {программатор личности}.",
|
||
act = function(s)
|
||
p"Забираю программатор себе.";
|
||
take(programmator_mozgov,me());
|
||
remove(programmator_mozgov);
|
||
end,
|
||
use = function(s,w)
|
||
if (w == criocaps) and (rat_i == 0) then
|
||
walk(podsoznanie_room)
|
||
elseif (w == criocaps) and (rat_i == 1) then
|
||
walk(criocaps_final)
|
||
p"Восстановление личности из резервной копии завершено.^Психологических проблем не обнаружено.^Спасибо за работу.^";
|
||
elseif w == rat_in_chestroom then
|
||
p"Сунув программатор в крысиную дыру удалось скопировать личность крысы.";
|
||
rat_i = 1;
|
||
end
|
||
end
|
||
}
|
||
|
||
coderoom = room {
|
||
nam = "Кодовый замок",
|
||
entered = function(s)
|
||
s._flt = stead.mouse_filter(0)
|
||
end;
|
||
left = function(s)
|
||
stead.mouse_filter(s._flt)
|
||
end;
|
||
dsc = "Это ящик Александра",
|
||
way = {"main2"},
|
||
obj = {"one","two","three","four", "openbox"},
|
||
}
|
||
|
||
one = obj {
|
||
nam = "one",
|
||
dsc = function (s)
|
||
return "{" .. tostring(onedsc).."}"
|
||
end,
|
||
act = function (s)
|
||
onedsc = onedsc + 1;
|
||
if onedsc == 10 then
|
||
onedsc = 0;
|
||
end;
|
||
stead.need_scene()
|
||
return true
|
||
end
|
||
}
|
||
|
||
two = obj {
|
||
nam = "two",
|
||
dsc = function (s)
|
||
return "{" .. tostring(twodsc) .. "}"
|
||
end,
|
||
act = function (s)
|
||
twodsc = twodsc + 1;
|
||
if twodsc == 10 then
|
||
twodsc = 0;
|
||
end;
|
||
stead.need_scene()
|
||
return true
|
||
end
|
||
}
|
||
|
||
three = obj {
|
||
nam = "three",
|
||
dsc = function (s)
|
||
return "{" .. tostring(threedsc) .. "}"
|
||
end,
|
||
act = function (s)
|
||
threedsc = threedsc + 1;
|
||
if threedsc == 10 then
|
||
threedsc = 0;
|
||
end;
|
||
stead.need_scene()
|
||
return true
|
||
end
|
||
}
|
||
|
||
four = obj {
|
||
nam = "four",
|
||
dsc = function (s)
|
||
return "{" .. tostring(fourdsc) .. "}"
|
||
end,
|
||
act = function (s)
|
||
fourdsc = fourdsc + 1;
|
||
if fourdsc == 10 then
|
||
fourdsc = 0;
|
||
end;
|
||
stead.need_scene()
|
||
return true
|
||
end
|
||
}
|
||
|
||
openbox = obj {
|
||
nam = "openbox",
|
||
dsc = "^^{Открыть}",
|
||
act = function (s)
|
||
if ((onedsc == 1) and (twodsc == 2) and (threedsc == 0) and (fourdsc == 0)) then
|
||
walk(chestroom)
|
||
else
|
||
p"Открыть не удается.."
|
||
end
|
||
end
|
||
}
|
||
|
||
podsoznanie_room = room {
|
||
nam = "Подсознание",
|
||
pxa = {
|
||
{ "screen", 165 }
|
||
},
|
||
way = {"podsoznanie_room","person","superego","main2"},
|
||
obj = {"it_crioson","it_meds"},
|
||
}
|
||
|
||
criocaps_final = room {
|
||
nam = "Подсознание",
|
||
pxa = {
|
||
{ "screen", 165 }
|
||
},
|
||
way = {"criocaps_final","person_final","superego_final","final_rooom"},
|
||
obj = {"it_crioson","it_meds"},
|
||
}
|
||
|
||
person_final = room {
|
||
nam = "Личность",
|
||
pxa = {
|
||
{ "screen", 165 }
|
||
},
|
||
way = {"criocaps_final","person_final","superego_final","final_rooom"},
|
||
obj = {"final_person_dmitry"}
|
||
}
|
||
|
||
superego_final = room {
|
||
nam = "Суперэго",
|
||
pxa = {
|
||
{ "screen", 165 }
|
||
},
|
||
way = {"criocaps_final","person_final","superego_final","final_rooom"},
|
||
obj = {"final_s_dm_parents"},
|
||
}
|
||
|
||
person = room {
|
||
nam = "Личность",
|
||
pxa = {
|
||
{ "screen", 165 }
|
||
},
|
||
way = {"podsoznanie_room","person","superego","main2"},
|
||
obj = {"person_dmitry","p_dm_stress","p_dm_depression", }
|
||
}
|
||
|
||
superego = room {
|
||
nam = "Суперэго",
|
||
pxa = {
|
||
{ "screen", 165 }
|
||
},
|
||
way = {"podsoznanie_room","person","superego","main2"},
|
||
obj = {"s_dm_parents","s_dm_dolg"},
|
||
}
|
||
|
||
final_person_dmitry = obj {
|
||
nam = "person_dmitry",
|
||
dsc = "- Самоидентификация личности: {Крыса}^^ + Проблем не выявлено.",
|
||
act = "'...'",
|
||
}
|
||
|
||
final_s_dm_parents = obj {
|
||
nam = "s_dm_dolg",
|
||
dsc = "Найдено:^ - личность 'Крыса'^- остатки личности 'Александр' (анализ не возможен)^ ^Анализ личности 'Крыса':^ ^ + Проблем не выявлено.",
|
||
}
|
||
|
||
final_rooom = room {
|
||
nam = "Выход",
|
||
enter = function() mute_()(); complete_("persona")() end,
|
||
act = gamefile_("wake.lua"),
|
||
obj = { vobj("next", txtc("{КОНЕЦ?}")) }
|
||
}
|
||
|
||
|
||
|
||
|
||
|
||
|
||
p_dm_depression = obj {
|
||
nam = "depression",
|
||
dsc = "- {Вялотякущая депрессия}^^Необходимо восстановление личности из резевной копии",
|
||
act = "'...Когда мы прилетим все, кого я знал, будут мертвы. Тысяча лет не шутки. Мои коллеги, мой начальник, родители, дочь. Я останусь один...'",
|
||
}
|
||
|
||
p_dm_stress = obj {
|
||
nam = "stress",
|
||
dsc = "^ ! Выявленные проблемы:^ - {Значительный стресс}^",
|
||
act = "'...Я не уверен, что выживу в полете. Может произойти что угодно. Роботы перепутают провода, или начнуть отрывать друг другу конечности...'",
|
||
}
|
||
|
||
person_dmitry = obj {
|
||
nam = "person_dmitry",
|
||
dsc = "- Самоидентификация личности: {Александр}^",
|
||
act = "'...Я - Александр, мне 43 года. Я инженер. Нахожусь в криосне на борту космического корабля, который в полете тысячу лет...'",
|
||
}
|
||
|
||
s_dm_parents = obj {
|
||
nam = "s_dm_dolg",
|
||
dsc = "Найдено:^ - личность 'Александр'^[альтернативные личности отсутствуют]^ ^Анализ личности 'Александр':^ - {Указания родителей} (хроническое)^",
|
||
act = "'...Ты должен быть послушным мальчиком!... ...Не будешь учиться - продадим цыганам!... ...Запомни! Ты должен чистить зубы каждый день в полдень!...'",
|
||
}
|
||
|
||
s_dm_dolg = obj {
|
||
nam = "s_dm_parents",
|
||
dsc = "- {Долг перед обществом} (хроническое)^^ + Проблем не выявлено.",
|
||
act = "'...Наша цивилизация поручила тебе ответственную миссию... ...Ты должен соответствовать... ...Ожидания командования вполне конкретны...'",
|
||
}
|
||
|
||
it_crioson = obj {
|
||
nam = "it_crioson",
|
||
dsc = "Модификации подсознания:^- {Состояние криосна}^",
|
||
act = "[Ощущения от органов чувств заблокированы]",
|
||
}
|
||
|
||
it_meds = obj {
|
||
nam = "it_meds",
|
||
dsc = "- {Блокирование неуместных инстинктов}^^ + Проблем не выявлено.",
|
||
act = "[Инстинкт размножения заблокирован]",
|
||
}
|
||
|
||
chestroom = room {
|
||
nam = "Ящик Александра",
|
||
obj = {"disk_in_chestroom","rat_in_chestroom"},
|
||
way = {"main2"},
|
||
}
|
||
|
||
rat_in_chestroom = obj {
|
||
nam = "rat_in_chestroom",
|
||
dsc = "Рядом видна {крысиная нора}.",
|
||
act = "Кажется крысы прорыли дыру в стене и повредили диск.",
|
||
}
|
||
|
||
disk_in_chestroom = obj {
|
||
nam = "Диск с личностью Александра",
|
||
dsc = "Внутри ящика {диск} с резервной копией личности Александра.. но он разломан и всюду видно следы чьих-то зубов. Надо найти другой диск.",
|
||
act = "Диск значительно поврежден. Использовать его не получится. Нужен еще один.",
|
||
}
|
||
|
||
function start()
|
||
if here() == coderoom then
|
||
stead.mouse_filter(0)
|
||
end
|
||
end
|