insteadose-3/persona.lua

310 lines
9.2 KiB
Lua
Raw Permalink Normal View History

2018-08-09 12:26:42 +03:00
-- $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