1
0
Fork 0
mirror of https://github.com/goraph/17rooms.git synced 2024-04-25 09:39:19 +03:00
17rooms/room1.lua
2021-05-04 14:35:02 +03:00

170 lines
10 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.

-- Доступное пространство имён для объектов - все имена объектов должны начинаться с "room1_" или "kryltco_"
-- Все описания можно менять
-- Задача: Игрок должен открыть дверь ключом с именем bigkey и попасть внутрь дома, объект ключа можно создать с любым именем и описанием, после чего он должен пройти на север
-- ВНИМАНИЕ: Это стартовая локация! Не надо делать сложно! Доступ на восток и запад преграждать нельзя!
-- Игрок может придти в локацию как с ключом так и без ключа!
obj {
-"большой ключ,ключ";
nam = "bigkey";
description = "Большой ключ.";
}
room {
attack_counter = 0;
nam = "room1_kryltco";
title = "Перед домом";
dsc = function(s)
if s:once() then
p [[
Анастасия повернулась на север и очутилась перед большим особняком. Садовая дорожка уходила на запад и восток. Вокруг особняка густой зеленой стеной возвышался лес. Рядом торчал почтовый ящик.^
Вся эта картина что-то смутно ей напоминала. Возможно, начало нового приключения?
]];
return
end
p"Особняк тётушки Агаты, как и положено добропорядочным особнякам, всё так же находится на севере. По садовой дорожке всё так же можно пойти и на запад, и на восток. Почтовый ящик белеет облупившейся краской, отсвечивая на солнце.";
end;
n_to = 'room1_mansiondoor';
e_to = 'room2_terassa'; -- <<<<<<<<<< ПУТЬ НА ВОСТОК
w_to = 'room2_terassa'; -- <<<<<<<<<< ПУТЬ НА ЗАПАД
before_Listen = "Из леса доносится пение птиц.";
before_Smell = "Пахнет весной, как обычно это бывает в мае.";
before_Think = function()
p("Анастасия попыталась подумать, но безрезультатно. Похоже, думать нужно "..fmt.em("кому-то другому."))
return true
end;
before_Attack = function (s)
s.attack_counter = s.attack_counter + 1
pn("Согласно статье 7.17 КоАП РФ, уничтожение или повреждение чужого имущества влечет наложение административного штрафа в размере от трехсот до пятисот рублей.")
pn("По возвращении в Санкт-Петербург вам будет выписан штраф на сумму " .. (s.attack_counter * 400) .. " рублей.")
return true
end;
before_Eat = function(s,w)
p("Анастасия была так голодна, что съела бы и "..w:noun('им')..", но благоразумие взяло вверх, и она решила повременить с трапезой.")
end;
obj = {
'room1_mansion',
'room1_windows',
'room1_forest',
'room1_road',
'room1_sun',
'room1_mailbox',
};
}
door {
-"дверь,дверца,вход";
nam = "room1_mansiondoor";
description = function(s)
if s:once() then
p[[
Дверь в особняк Агаты была сделана в середине 18 века её прадедом, который, как гласила семейная легенда, был дружен с самим Штакеншнейдером. Прадед вырезал ее из модного в то время канадского дуба, придал ей классическую форму и повесил ее на железные петли, которые в свое время, может быть, и были хороши, но ужасно сейчас скрипели.
На двери не было никаких орнаментов и узоров, только в левом нижнем углу виднелась одна царапина, о которой говорили, что ее сделал собственной шпорой Александр Иванович Михайловско-Данилевский, наместный мастер Великой масонской ложи Астрея, внучатый племянник деда тётушки Агаты.
]];
if s:has'locked' then
p([[Ну и конечно же, дверь была надежно заперта.]])
end
pn("В остальном же дверь была самой обыкновенной, и более подробно описывать её нет никакой надобности.")
return
else
if s:has'locked' then
pn[[Дверь в особняк заперта.]]
pn("Как же отпереть дверь? Возможно, нужно немного "..fmt.em("подумать").."?")
else
if s:has'open' then
p[[Дверь в особняк открыта.]]
else
p[[Дверь в особняк закрыта, но не заперта.]]
end
end
end
end;
after_Unlock = function(s)
remove('room1_doorkey')
mp.score=mp.score+1
return false;
end;
with_key = "room1_doorkey";
door_to = "room3_hall"; -- <<<<<<<<<< СЮДА ВЕДЁТ ДВЕРЬ В ОСОБНЯК, КОГДА ОНА ОТКРЫТА
found_in = 'room1_kryltco';
}:attr 'openable,lockable,locked,scenery,static'
obj {
-"дом,домик,особняк,коттедж,строение";
nam = "room1_mansion";
description = "Серая громада особняка в стиле северного модерна выделяется на фоне леса. В окнах поблескивает весеннее солнце.";
before_Enter = function(s, w)
mp:xaction('Enter', _'room1_mansiondoor')
end;
}:attr 'scenery'
obj {
-"лес,деревья";
nam = "room1_forest";
description = "Лес вокруг особняка прямо-таки искрился весенней свежестью. Да, весной в лесу очень хорошо, свежий воздух уже не пахнет сыростью, а благоухает ароматами зелени. Начинается новый виток природы. С далекого юга прилетают птицы, их пение наполняет лес веселыми трелями. На ветвях деревьев, в густой зелени появляются новые гнезда. Просыпаются и животные, по своим делам спешат между деревьями ежи и мыши. С ветки на ветку перескакивает проворная белка... извините, увлёкся.";
before_Take = "Анастасия хотела бы взять с собой весь этот лес вместе с его обитателями, с каждой сойкой и свиристелем, каждой белкой и зайцем, каждым муравейником, прислонившимся к сосенкам посреди грибных полян... простите, автор слегка увлёкся.";
}:attr 'scenery'
obj {
-"солнце";
nam = "room1_sun";
description = "Солнце — ближайшая к Земле звезда. Средняя удалённость Солнца от Земли — 149,6 миллионов километров — приблизительно равна астрономической единице. Сейчас же оно грело так, будто находилось на пару сотен километров поближе.";
}:attr 'scenery'
obj {
-"окно|окна";
nam = "room1_windows";
description = "Сквозь мутные окна особняка виднелись очертания внутренней обстановки, но деталей было не разобрать.";
before_Take = [[Анастасия подумала: "А не выставить ли окно и проникнуть в дом таким путём?". Но эта смелая и неординарная мысль была отброшена прочь. Дверь, и только дверь, должна была послужить порталом в тётушкин особняк.]];
}:attr 'scenery'
obj {
-"дорога,дорожка";
nam = "room1_road";
description = "Садовая дорожка уходит на запад и возвращается с востока. Или наоборот.";
}:attr 'scenery'
obj {
-"почтовый ящик,ящик";
nam = "room1_mailbox";
capacity = 1;
description = function(s)
if s:has'locked' then
pn("Что-то поблескивает внутри запертого почтового ящика.")
if s:once() then
pn("Надо бы его отпереть. Но как?")
else
pn("Как же отпереть ящик? Возможно, нужно немного "..fmt.em("подумать").."?")
end
return true
else
if not s:has'open' then
pn("В почтовом ящике что-то поблескивает. Нужно поскорее его открыть!")
return true
end
end
return false
end;
before_Take = function(s)
p "Всесторонне изучив ящик, Анастасия решила, что брать его с собой всё же излишне.";
return true;
end,
after_Unlock = function(s)
remove('bigkey')
mp.score=mp.score+1
return false;
end;
with_key="bigkey";
obj = {
'room1_doorkey',
}
}:attr 'scenery,container,openable,lockable,locked'
obj {
-"маленький ключ,ключик,ключ";
nam = "room1_doorkey";
description = "Медный ключ от особняка, слегка позеленевший от старости.";
}