insteadose-3/rat.lua

381 lines
14 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.

-- $Name: Долгая служба$
-- $Version: 0.1$
instead_version "1.9.1"
require "lib"
require "para"
require "dash"
require "quotes"
require "xact"
game.use = function(s,v)
return _("Это не есть ")..v.nam .."!";
end
local old = obj;
function tcall(f,s)
if type(f) == "function" then
return tcall(f(s),s);
else
return f;
end
end
function obj(tab)
if tab.nam == nil then tab.nam = "" end
local dsc = tab.dsc;
tab.dsc = function(s)
if s.cnd == nil or s:cnd() then
return tcall(dsc,s);
end
end
return old(tab);
end
function vb(o) o.inv = function(s) return s.nam.."!" end; return obj(o) end
main = room {
nam = "..."
,dsc = "Я есть бежать."
,act = function()
walk(start2);
end
,obj = { vobj("next", '{'.._('Дальше')..'}') }
}
start2 = room {
nam = "..."
,act = function() walk(start3) end
,dsc= "Я есть бежать, бежать."
,obj = { vobj("next", '{'.._('Дальше')..'}') }
}
start3 = room {
nam = "..."
,act = function() walk(start4) end
,dsc= _("Зубастый гнаться за мной, я не успеть бежать в нора как раньше. Я бежать в какой-то другой нора -- длинный-длинный туннель. Потом ещё один туннель. Потом бежать в ещё один туннель. Потом в ещё один туннель.^Зубастый не отставать, зубастый бежать быстро-быстро.")
,obj = { vobj("next", '{'.._('Дальше')..'}') }
}
start4 = room {
nam = "..."
,enter = music_("daybefore", 0)
,title = _("КРЫСИНАЯ НОРА")
,num = 1
,act = function() take(eat);take(cry);take(th);take(climb);take(cry);walk(floor) end
,dsc= _("Я бежать мимо человеков, потом бежать в какой-то странный большой нора, который двигаться вверх! Потом я бежать куда-то, где много человеков. Я бояться! Я лезть на ящик. Потом я лезть на ящик. Потом я ещё лезть на ящик. Потом я лезть в потолочный нора. Потом я бежать по потолочный нора -- длинный-длинный нора! Потом я вдруг падать! Больно падать! И вот я здесь...")
,obj = { vobj("next", '{'.._('Где я?')..'}') }
}
eat = vb {
nam = _("ЖРАТЬ")
,use = function(s,v)
if v==cheesetake or v==cheesetake0 then
v._on=false;
return (_("Сыр вкусно! Могу жрать сколько угодно сыр! Ещё! Ещё!"));
end
end
}
push = vb {
nam = _("ТОЛКАТЬ")
,use = function(s,v)
if v==cheesetake then
v._on = false;
cheesetake0._on = true;
return (_("Я толкать сыр. Сыр падать на пол, прямо к двери."));
elseif v==cheesetake0 then
return (_("Некуда толкать!"));
end
end
}
th = vb {
nam = _("ГРЫЗТЬ")
,use = function(s,v)
if v==cheesetake_stick then
cheesetake._on = false;
cheesetake0._on = true;
return (_("Я грызть странный скобка. Скобка неожиданно сгибаться, и сыр падать со стола!"));
end
if v==chair1 or v==chair2 then return (_("Я грызть стул... Стул есть невкусный! Не еда!")) end
if v==desk1 or v==desk2 then return (_("Я пытаться грызть стол... Глупый стол! Почти сломать мне зуба!")) end
if v==door then return (_("Человечий двери не прогрызть! Я пытаться... Терять два, нет... двадцать два зуба!")) end
if v==computer and not v._used then
v._used = true;
return (_("Я грызть глупый устройство... Невкусно! Но я грызть и грызть. Вдруг чёрный коробка вспыхивать! И появляться в чёрный коробка зверь страшный-страшный -- чёрный шерсть всклокоченный, красный глаза гореть! Страшно!.. А, нет. Это же я.^Потом появляться другой картинка -- железный человек, похожий на мусорный бак заходить в комната! Он вставать у двери и пищать, как я! Пи-па-пи-пи-па! Дверь открываться!"))
elseif v==computer then
return (_("Устройство больше не вспыхивать! Всё есть сгрызено. Надо грызть другой устройство!"));
elseif v==foodgen then
foodgen._ch = not foodgen._ch;
return (_("Я грызть большая ручка, и она повернуться!"));
elseif v==foodgen2 then
if foodgen._ch then
if cheesetake._on then
return (_("Уже есть сыр! Надо жрать! Жрать! Жрать!"));
else
cheesetake._on=true;
return (_("Из устройства выпадать кусочек... сыра!"));
end
else
return (_("Из устройства что-то литься и растекаться по стол!"));
end
elseif v==cheesetake or v==cheesetake0 then
return (_("Сыр надо жрать!"));
end
end
}
cry = vb {
nam = _("ПИЩАТЬ")
,use = function(s,v)
if v==door and computer._used then
if rat1._on and rat2._on and cheesetake0._on then
return walk(end1);
else
return (_([[Я пищать на дверь, пищать и пищать. Дверь открываться! Но тут же вновь закрываться! Мерзкий человечий голос говорить: "Не обнаружен объект у двери. Дверь блокируется".]]));
end
else
return (_("Пи-пи! Пи! Пи! Пи!"))
end
end
}
climb = vb {
nam = _("ЛЕЗТЬ")
,use = function(s,v)
if v==desk1 then return (_("Стол есть высоко! Не долезть!")) end
if v==shaft1 or v==shaft2 then return (_("Мне не долезть до потолочный нора!")) end
if v==floor1 then walk(floor) end
if v==chair1 then walk(onchair) end
if v==desk2 then walk(ondesk) end
if v==chair2 then walk(onchair) end
if v==device2 then walk(oncloner1) end
end
}
floor = room {
nam = _("На полу")
,pxa = {
{ "door4", 220 },
{ if_("rat1._on","rat"), 130 },
{ if_("rat2._on","rat"), 180 },
{ if_("rat2._on","rat"), 360 },
{ "column", 70 },
{ "column", 400 }
}
,dsc = _("Жилище людей. Пахнуть едой! И не едой...")
,obj = { "door", "cheesetake0", "rat1", "rat2", "shaft1", "desk1", "chair1", "device1" }
}
rat1 = obj {
dsc= function(s)
if cheesetake0._on then
return (_("{Другой Я} сидеть у двери и жрать сыр! Но почему, если другой Я жрать сыр, я по-прежнему голоден?"));
else
return (_("{Другой Я} сидеть далеко от двери. Другой Я вращать красными глазами."));
end
end
,act = "Это Я!"
,cnd = function(s) return s._on end
}
rat2 = obj {
dsc= function(s)
if cheesetake0._on then
return (_("Два {других Я} пытаться отобрать у сыр у другого другого Я!"));
else
return (_("Два {других Я} бродить по комнате и вращать красными глазами."));
end
end
,act = _("Это Я!")
,cnd = function(s) return s._on end
}
cheesetake0 = obj {
dsc = _("У двери лежит {кусочек сыра}.")
,act = _("Сыр! Вкусно! Жрать!")
,cnd = function(s) return s._on end
}
door = obj {
dsc = _("Есть {дверь}.")
,act = _("Дверь есть закрыта!")
}
shaft1 = obj {
dsc = _("Есть потолочная {нора}.")
,act = _("Есть очень высоко-высоко. Нора не долезть. Люди тупой! Потолочная нора неудобно!")
}
desk1 = obj {
dsc = _("Есть {стол} и")
,act = _("Стол большой.")
}
chair1 = obj {
dsc = _("есть {стул}.")
,act = _("Стул! Стул! Лезть!")
}
device1 = obj {
dsc = _("Есть {что-то большой и гудящий}. Он есть похожий на мусорный бак, но в пять... нет в пятьдесят пять раз больше!")
,act = _("Запах есть плохой. Не есть еда. Надо держаться дальше.")
}
onchair = room {
nam = _("На стуле")
,pxa = {
{ "column", 455 },
{ "door6", 50 },
{ "shaft", 300 }
}
,dsc = _("Я лезть на стул.")
,obj = { "floor1", "shaft1", "desk2" }
}
floor1 = obj { dsc = _("Ниже есть {пол}."), act = _("Пол! Слезть!") }
desk2 = obj {
dsc = _("Есть {стол}. Большой стол.")
,act = _("Близко! Совсем близко! Можно лезть! Там есть запах!")
}
ondesk = room {
nam = _("На столе")
,pxa = {
{ if_("foodgen._ch", "foodgen2","foodgen"), 0 },
{ if_("cheesetake._on","stick"), 160 },
{ if_("cheesetake._on","cheese"), 160, 130 },
{ "computer", 390 },
}
,dsc = _("Я сидеть на стол. Здесь запах!")
,obj = { "chair2", "foodgen", "foodgen2", "cheesetake_stick", "cheesetake", "computer", "shaft2", "device2" }
}
cheesetake_stick = obj {
dsc = _("Из стол выдвигаться странный {скобка},")
,act = _("Странный скобка.")
,cnd = function(s) return cheesetake._on end
}
cheesetake = obj {
dsc = _("на котором лежать {сыр}!")
,act = _("Сыр! Вкусно! Жрать! Жрать! Жрать!")
,cnd = function(s) return s._on end
}
chair2 = obj {
dsc = _("Ниже стол есть {стул}.")
,act = _("Лезть вниз. Можно!")
}
foodgen = obj {
dsc = _("На стол есть ящик с {длинный ручка} и")
,act = _("Странно. Пахнуть еда. На устройство надпись: синтезатор... лактоза.. Больше не понимать! Давно ходить школа!")
}
foodgen2 = obj {
dsc = _("{большой кнопка}.")
,act = _("Странный большой кнопка...")
}
computer = obj {
dsc = _("На стол есть ещё один людское {устройство} -- чёрный коробка, много кнопок.")
,act = _("Люди глупый! Это нельзя есть!")
}
device2 = obj {
dsc = _("Рядом со стола есть большой и гудящий {мусорный бак}.")
,act = _("Он страшный. Страшно гудит.")
}
shaft2 = obj {
dsc = _("Есть потолочная {нора}.")
,act = _("Потолочная нора уже близко. Почти залезть. Но надо выше. Надо лезть на большой и гудящий.")
}
oncloner1 = room {
nam=""
,pxa = { { "cloner", 407 } }
,enter = function(s) if rat2._on then p (_("Мне больше не нужно лезть на мусорный бак."));return false end end
,act = function() rat1._on=true; walk(floor) end
,dsc = function()
if rat1._on then
cheesetake0._on = false;
rat2._on = true;
return (_("Я снова лезть на мусорный бак! Другой Я лезть со мной! Другой я делать то же, что делать я, ведь это я. Мы оба падать в чёрный нора, оба сидеть там, и нас обоих выталкивать. Теперь других Я -- четыре! Много Я!"));
else
return (_("Я лезть на мусорный бак. Я почти долезть! Но тут я падать! Падать и падать! Оказываться в какой-то тёмный запертый нора. Я думать -- полный капец. Еда -- нет. Выхода -- нет. Но потом вспышки! Потом меня что-то выталкивать! И вот я опять на полу комната.^Рядом со мной сидеть зверь страшный, со страшными красными глазами... Нет, это же я. Нет, как же? Я сидеть рядом с собой. Я не понимать!"))
end
end
,obj = { vobj("next", '{'.._('Дальше')..'}') }
}
end1 = room {
nam = ""
,enter = mute_()
,act=function(s) walk(end2) end
,pxa = { { "door4", 190 } }
,dsc = _([[Я пищать пи-па-пи-пи-па, и дверь открываться! Я тут же бежать из комната. Я вдруг думать -- зачем я бежать из комната, ведь там много других Я и много сыра! Но дверь уже закрыться! Я пищать на дверь, но дверь -- "не обнаружено объекта"! Это ужасно!]])
,obj = { vobj("next", '{'.._('Дальше')..'}') }
}
end2=room{
nam="",
enter=function(s)
timer:set(3000)
end,
dsc=txtc(_("Спустя несколько часов...")),
timer=function()
timer:stop();
walk(end3);
end
}
end3=room{
nam="",
enter=function(s)
music_("spookyloop")();
timer:set(3000)
end,
pxa = {
{"cloner",407}, {"rat",10}, {"rat",80}, {"rat",150}, {"rat",220}, {"rat",300}, {"rat",370}
},
timer=function()
timer:stop();
walk(end4);
end
}
end4=room{
nam="",
enter=function(s)
timer:set(3000)
end,
pxa = {
{"table5",150}, {"rat",185,75}, {"rat", 301,75}, {"rat",10}, {"rat",80}, {"rat",150}, {"rat",360}, {"rat",440}
},
timer=function()
timer:stop();
walk(end5);
end
}
end5=room{
nam="",
enter=function(s)
timer:set(3000)
end,
pxa = {
{"door4",190}, {"rat",10}, {"rat", 80}, {"rat",150}, {"rat",80}, {"rat",320}, {"rat",390}, {"rat",470}
},
timer=function()
timer:stop();
walk(end6);
end
}
end6=room{
nam="",
enter = function()
mute_()();
complete_("rat")()
end,
act = gamefile_("longwork.lua"),
obj = { vobj("next", txtc(_("КОНЕЦ?^^{Это только начало...}"))) }
}