debugmode = true

sys.title('экЗистенЦия')

RANDOM = sys.newrand()

require "palette"

-- Подгрузка спрайтов из каталога spr
spr = {}
for i,v in pairs(sys.readdir('spr')) do
  local name = string.gsub(v, "%.spr", "")
  --print(name)
  spr[name] = gfx.new('spr/'..v)
  end

-- Иконка приложения
gfx.icon(spr.hare)

-- Загрузка библиотеки визуальных компонент
require "vcl"
require "pseudobitsy"
require "eventmodel"
require "savesyst"
require "music"

require "mainmenu" -- Меню задается отдельно, чтобы разделить мобильный и горизонтальный дизайн

---------------------- Экран помощи ------------------------------------

local helpScreen = Conteiner:new('Экран помощи')
helpScreen.obj = {LabelFull:new([[
           УПРАВЛЕНИЕ

Игра может управляться мышью или
клавиатурой. Для перемещения 
персонажа используйте курсорные 
клавиши или кликайте мышью в 
области карты. Движение по диа-
гонали невозможно.
Горячие клавишы для кнопок ука-
заны непосредственно на них.

При приближени к объекту или на-
хождении в активной зоне игрок 
может выбрать один из пунктов
меню, либо применять предметы
из инвентаря.
Применение предметов инвентаря
непосредственно друг на друга
невозможно.

При выводе сообщения перемещение
и использование инвентаря блоки-
руется. Для закрытия сообщения
можно кликнуть на него мышью, 
нажать пробел или одну из кур-
сорных клавиш.

Сохранение игры осуществляется 
при каждой смене локации или 
при выходе через пункт глав-
ного меню.
]]),
                  MenuBottomButton:new('Кнопка назад', "Назад", 'b')}

_'Кнопка назад'.onclick = function(s)
                setScene(oldSceneName)
                lsite = lsite - 4
                end;

--------------------- Экран авторы -----------------------------------
local creditsScreen = Conteiner:new('Экран авторы')
creditsScreen.obj = {LabelFull:new([[
             АВТОРЫ

Бета-версия игры заняла третье 
место в игровом джеме "Дикий 
пискарь" на myindie.ru
В основу сюжета, в соответствии
с правилами джема, взята сказка
М. Салтыкова-Щедрина "Самоот-
верженный заяц".

Автор игры, текста, иллюстраций:
Лука <ot-luki@narod.ru>
Код игры распространяется по 
лицензии GNU GPL 3.
Текст и графические элементы
распространяются по лицензии
CC BY-SA.

Музыка:
Spring Spring. Gongs and DX7's
(Лицензия OGA-BY 3.0)

Звуки:
Juhani Junkala. The Essential 
Retro Video Game Sound Effects 
Collection
(Лицензия CC0)

Игровой движок:
rein <github.com/hugeping/rein>
(Лицензия MIT)
Петр Косых

Игра не содержит контента, ге-
нерированного LLM.
]]),
                  _'Кнопка назад'}

---------------------- Экран предыстории ------------------------------------

Conteiner:new('Экран предыстории')
_'Экран предыстории'.obj = {LabelFull:new([[
Вприпрыжку, что есть духу заяц 
летел по болоту к своей невесте, 
не глядя по сторонам. Серый волк 
бездушно смотрел ему вслед.
- Заинька, миленький, остано-
вись! Ты ведь не можешь сбежать. 
Никто не может. Ты бежишь от 
того, что жаждешь больше всего. 
Оно догонит тебя, оно обретёт 
тебя, а не ты обретёшь его.
Заяц замер как вкопанный. Что-
то неясное промелькнуло у него 
перед глазами.
- Кто здесь?
- Ха-ха. Здесь только я. Тот, 
кого ты ищешь.
- Ты что-то путаешь. Я спешу 
на свою свадьбу.
- Спешил. Больше незачем.
- Кто ты?
- Твой страх. Тот страх, что ты 
жаждал и искал всю жизнь.
Заяц вздрогнул.
- Я... я не готов.
- Никто никогда не бывает готов. 
И всё же ты остановился, а зна-
чит дальнейшее предопределено.
- Я... не могу. Не сейчас. Я
всего лишь маленький заинька.
Я не готов.
Они помолчали.
- Что ж, у нас есть время. Поси-
ди там, под кустом. Соберись с 
духом. Я буду ждать тебя здесь, 
в логове. Столько, сколько нужно.
]]),
                  MenuBottomButton:new('Кнопка дальше', "Дальше", 'n')}

_'Кнопка дальше'.onclick = function(s) 
    setScene('Экран игры')
    ---[[
    -- Нормальный старт
    setMap(_'Болото')
    lsite = lsite - 4
    pl.i = 8
    pl.j = 7
    --]]
    -- Старт со второй стадии
    --[[
    setMap(_'Страна_кроликов')
    pl.i = 8
    pl.j = 7
    ADD 'Поговорили с невестой'
    take 'Плащ'
    take 'Барабан'
    --]]
    end



---------------------- Экран финала ------------------------------------
-- TODO Добавить рисунок и какой-нибудь графический эффект.
Conteiner:new('Экран финала')
_'Экран финала'.obj = {LabelFull:new([[
Заяц приблизился к логову. 
Чернота кипела клочьями тумана. 
Изнутри равнодушно смотрели 
два красных глаза. Страх. Где 
он? В глубине? Ведь нет. Страх 
в себе. Поэтому побороть его 
так сложно: нужно отвергнуть 
себя. Заяц вдруг понял, почему 
ему было нужно это последнее 
путешествие. Он оставил там
себя по кусочкам. Один достал-
ся невесте, другой лодочнику,
торговцу, солдату... Он стал 
лёгким.

Заяц выбросил последний кусочек 
себя в болотную тину и шагнул в 
темноту.

            КОНЕЦ
]]),
                  MenuBottomButton:new('Кнопка_все', "В главное меню", 'n')}

_'Кнопка_все'.onclick = function(s) 
                        dump.save(sys.appdir('existenz_hare')..'/win.dmp', {1})
                        winnow = true
                        SAVEEXIST = false
                        _'Кнопка продолжить'.visible = SAVEEXIST
                        _'Кнопка продолжить'.active = SAVEEXIST
                        os.remove(SAVEFILE)
                        setScene('Главный экран') 
                        end;


--------------------- Предметы -------------------------
--[[
Перечень активных объектов, которые должны реагировать на предметы

Друг
Логово
ЗакрытаяДверь1
ЗакрытаяДверь2
Торговец
Делец
Пугало
Птица1
Птица2
Печь
Вдова
Невеста
Репка1
Репка2
Репка3
Цветок1
Цветок2
Цветок3
Цветок4
Цветок5
Харон
Солдат1
Солдат2
Ворон1
Ворон2
ПтицаУКарантина
Охранник
--]]


-------- Гвоздь

PicButton:new('Гвоздь', 0, 0, spr.nail, 'n')
_'Гвоздь'.onclick = function(s)
                        if activeObjectName == 'Друг' then
                            showmessage [[
- Он бесполезен. Его нельзя 
даже выбросить.]]
                        elseif activeObjectName == 'Логово' then
                            showmessage [[
- Эта вещь бесполезна, заинь-
ка. Ты можешь оставить её себе 
в качестве талисмана. Талис-
маны тоже бесполезны, так что 
ничего плохого не случится.
]]
                        elseif activeObjectName == 'ЗакрытаяДверь1' or activeObjectName == 'ЗакрытаяДверь2' then
                            showmessage [[
Ни на что особо не рассчиты-
вая, заяц пошурудил гвоздём в 
замочной скважине. Никакого 
результата.
]]
                        elseif activeObjectName == 'Торговец' then
                            showmessage [[
- Эта вещь ничего не стоит, 
зайчик.
]]
                        elseif activeObjectName == 'Делец' then
                            showmessage [[
- Зачем мне ржавый гвоздь? - 
делец на пару секунд заду-
мался, как бы пробуя собст-
венную мысль на вес. - Нет, 
мне не нужен ржавый гвоздь.
]]
                        elseif activeObjectName == 'Вдова' then
                            showmessage [[
- Я понимаю, почему он тебе 
нравится, заяц. Вы с ним 
похожи. Но такой подарок 
никуда не годится.
]]
                        elseif activeObjectName == 'Невеста' then
                            showmessage [[
- Лучше выбрось его. Он 
грязный.
]]
                        elseif activeObjectName == 'Харон' then
                            showmessage [[
- Я видел несколько ржавых 
гвоздей, ценность которых 
была огромна. Но этот не 
из них.
]]
                        elseif activeObjectName == 'Солдат1' or activeObjectName == 'Солдат2' then
                            showmessage [[
- Предлагаешь мне заколоться 
этим? Может ты и прав. Но не 
сейчас.
]]
                        elseif activeObjectName == 'Охранник' then
                            showmessage [[
- Эта вещь мне ни о чем не 
говорит.
]]
                        else
showmessage[[
Гвоздь был ржав, крив и беспо-
лезен во всех решительно от-
ношениях. В этой своей отор-
ванности от всякого смысла и 
целеполагания он был почти 
как человек.
]]
                        end --if
end --func


-------- Хворост

PicButton:new('Хворост', 0, 0, spr.firewood, 'f')
_'Хворост'.onclick = function(s)
                        if activeObjectName == 'Печь' then
                            drop 'Хворост'
                            ADD 'Положили хворост в печь'
                            showmessage [[
Заяц положил хворост в печь.
Вот и пригодилось.]]
                        elseif activeObjectName == 'Друг' then
                            showmessage [[
- Зачем мне эти ветки?]]
                        elseif activeObjectName == 'Логово' then
                            showmessage [[
- Это мёртвая вещь. Вокруг 
тебя очень много мёртвых 
вещей, заяц. Не придавай им 
такого уж большого значения.
]]
                        elseif activeObjectName == 'Торговец' then
                            showmessage [[
- Это просто ветки, зайчик,
я не буду их покупать.
]]
                        elseif activeObjectName == 'Делец' then
                            showmessage [[
- Зачем ты тычешь в меня этой 
веткой?
]]
                        elseif activeObjectName == 'Вдова' then
                            showmessage [[
- Я думаю, они подойдут для 
растопки.
]]
                        else
                            showmessage [[
Заяц и сам не знал, зачем он 
собрал этот хворост.]]
                        end --if
                        end --func

-------- Серп

PicButton:new('Серп', 0, 0, spr.serpI, 's')
_'Серп'.onclick = function(s)
                        if activeObjectName == 'Поле_Мысли' then
                            drop 'Серп'
                            take 'Зерно'
                            ADD 'Собрали зерна'
                            showmessage [[
Заяц срезал несколько снопов 
пшеницы и забрал с собой.]]
                        elseif activeObjectName == 'Друг' then
                            showmessage [[
- Если б у нас с тобой был ещё 
молот, мы бы смогли кашу 
заварить.]]
                        elseif activeObjectName == 'Делец' then
                            showmessage [[
- Этой штукой я буду убирать 
свои поля вечность. У меня нет 
столько времени. Оставь себе.]]
                        elseif activeObjectName == 'Торговец' then
                            showmessage [[
- Это заячий серп. Он мне не 
нужен: кому я его продам?]]
                        elseif activeObjectName == 'Вдова' then
                            showmessage [[
- Я разрешаю взять его, если 
он тебе нужен.]]
                        elseif activeObjectName == 'Логово' then
                            showmessage [[
- Это символ труда, заинька. 
Ты можешь попытаться забыться 
в нём. Это помогает... на 
какое-то время.]]
                        elseif activeObjectName == 'Репка1' or activeObjectName == 'Репка2' or activeObjectName == 'Репка3' then
                            showmessage [[
Серп был здесь не нужен: репу 
издревле выдирали с корнем из 
земли.
]]
                        elseif activeObjectName == 'Цветок1' or activeObjectName == 'Цветок2' or activeObjectName == 'Цветок3' or activeObjectName == 'Цветок4' or activeObjectName == 'Цветок5' then
                            showmessage [[
Заяц пожалел цветок и не стал 
его срезать.
]]
                        else
                            showmessage [[
Небольшой острый серп для 
хозяйственных нужд.]]
                        end -- if
                        end -- func

-------- Зерно

PicButton:new('Зерно', 0, 0, spr.grain, 'g')
_'Зерно'.onclick = function(s)
                        if activeObjectName == 'Делец' then
                            drop 'Зерно'
                            take 'Монета'
                            ADD 'Продали зерно'
                            showmessage [[
- Я хочу продать это зерно.
- Зачем тебе ассигнации, заяц? 
Я смотрю в твои глаза и думаю, 
что тебе нужнее обол.
- Нет. Мне нужен подарок для 
моей невесты.
- Ты обманываешь меня или себя 
самого? Впрочем, не важно. Ты 
не можешь продать мне то, что 
и так моё.
- Почему ты решил, что это 
зерно твоё?
- Потому что все поля в этом 
царстве принадлежат мне одному. 
Любое зерно - это моё зерно.
- Они принадлежат тебе, потому 
что ты присвоил их. Так и я 
присвоил твою пшеницу.
- Ты много говоришь, маленький 
зайчик с глазами волка. Но 
пусть будет по твоему: золотая 
монета за золотое зерно.]]
                        elseif activeObjectName == 'Торговец' then
                            showmessage [[
- Ты не возьмёшь это в уплату?
- Нет, зайчик. Я не занимаюсь 
зерном. Попробуй предложить 
дельцу в амбаре.]]
                        elseif activeObjectName == 'Друг' then
                            showmessage [[
- Зайцы такое не едят. И тебе 
я бы тоже не советовал.]]
                        elseif activeObjectName == 'Вдова' then
                            showmessage [[
- Я не ем зерно, зятёк. Это 
пища людей, не зайцев. Я даже 
не умею его готовить.]]
                        elseif activeObjectName == 'Логово' then
                            showmessage [[
- Знаешь, когда-то уже был 
один, кто пытался принести 
в жертву плоды своего поля. 
Добром это не кончилось.
]]
                        elseif activeObjectName == 'Птица1' or activeObjectName == 'Птица2' then
                            showmessage [[
Заяц предложил птицам зерно, 
но оно их не заинтересовало. 
]]
                        elseif activeObjectName == 'Печь' then
                            showmessage [[
Заяц не имел ни малейшего 
представления о том, как 
пекут хлеб.
]]
                        else
                            showmessage [[
Охапка пшеницы. Зайцы такое не 
едят, но, может быть, её можно 
продать?]]
                        end -- if
                        end -- func

-------- Монета

PicButton:new('Монета', 0, 0, spr.coin, 'c')
_'Монета'.onclick = function(s)
                        if activeObjectName == 'Торговец' then
                            drop 'Монета'
                            take 'Самовар'
                            ADD 'Купили самовар'
                            showmessage [[
- Что ты хочешь купить?
Заяц глубоко задумался. Он не 
знал. Он забыл, какие вещи 
любят зайцы, бегущие жизнью, 
и зачем они им. Он смотрел на 
прилавок и видел лишь пустые 
тени.
- У вас есть что-нибудь, что 
понравилось бы молодой 
зайчихе?
- Торговец пробежал взглядом 
по своим полкам. 
- Возьми этот самовар. Я 
продаю его как игрушечный, но 
его в самом деле можно 
растопить. А ещё он маленький 
и блестящий. Подарок должен 
блестеть, это самое главное.
- Заяц припомнил, что когда-то 
и он очень любил пить чай. Но 
ему никак не удавалось 
вспомнить, что он при этом 
чувствовал.
- Хорошо. Я покупаю его.]]
                        elseif activeObjectName == 'Делец' then
                            showmessage [[
- Нет, заяц. Обратно не 
возьму. Сделка - значит 
сделка.]]
                        elseif activeObjectName == 'Вдова' then
                            showmessage [[
- Я думаю, деньги - плохой по-
дарок, зятёк. Они одновременно 
и всё, и ничего. Придумай что-
нибудь другое.]]
                        elseif activeObjectName == 'Друг' then
                            showmessage [[
- Это подделка. Но говорят, 
что вообще все деньги 
поддельные, разница только 
в том, кто штампует.]]
                        elseif activeObjectName == 'Логово' then
                            showmessage [[
- Ха-ха. Ты рассчитываешь 
откупиться деньгами, зайчик? 
От кого? От меня? Зачем же 
мне, по-твоему, деньги?]]
                        else
                            showmessage [[
Маленькая золотая монета. 
Возможно, игрушечная. 
Возможно, несмотря на это 
платёжеспособная в этом 
сказочном мирке.]]
                        end -- if
                        end -- func

-------- Самовар

PicButton:new('Самовар', 0, 0, spr.samovar, 's')
_'Самовар'.onclick = function(s)
                        if activeObjectName == 'Вдова' then
                            drop 'Самовар'
                            ADD 'Отдали самовар вдове'
                            showmessage [[
- Вот. Я нашёл это в подарок 
невесте.
- Я думаю, это подойдет.]]
                        elseif activeObjectName == 'Торговец' then
                            showmessage [[
- Извини, зайчик, обратно не 
возьму.]]
                        elseif activeObjectName == 'Делец' then
                            showmessage [[
- Зачем мне игрушечный самовар?]]
                        elseif activeObjectName == 'Друг' then
                            showmessage [[
- Отличная штука, мне кажется.
Должно понравиться сестре.]]
                        elseif activeObjectName == 'Логово' then
                            showmessage [[
- Блестящие штуки. Они всё ещё 
интересуют тебя? Если так, 
боюсь, ты и в самом деле не 
готов.]]
                        elseif activeObjectName == 'Печь' then
                            showmessage [[
Этому самовару не нужна печь, 
он топится изнутри.
]]
                        else
                            showmessage [[
Самовар был зайцу безразличен, 
и он разглядывал себя самого в 
отражении. Заяц из отражения 
был уродлив, с огромной 
деформированной головой и 
желтушным лицом. Он смотрел на 
настоящего зайца с осуждением и 
как-то свысока.]]
                        end -- if
                        end -- func


-------- Барабан

PicButton:new('Барабан', 0, 0, spr.drum, 'd')
_'Барабан'.onclick = function(s)
                        if activeObjectName == 'Поле_битвы_Мысли' or  activeObjectName == 'Поле_битвы_Л' then
                            drop 'Барабан'
                            ADD 'Сыграли на барабане'
                            showmessage [[
Заяц поставил барабан на землю 
и начал отбивать на нём боевой 
ритм. Солдаты быстро 
построились в ряды, и скоро 
поле наполнилось вспышками, 
криками, стонами, звуками 
стрельбы. Бой длился недолго. 
Заяц не понял, кто победил и 
победил ли хоть кто-то. 
Выжившие унесли раненых, 
изуродованное поле опустело 
до поры.]]
                            setMap 'Побоище'
                        elseif activeObjectName == 'Харон' then
                            showmessage [[
- Зачем мне барабан? Разве 
моя лодка похожа на боевую 
галеру? - лодочник поёжился
под моросящим дождём.]]
                        elseif activeObjectName == 'Солдат1' then
                            showmessage [[
- Славный барабан. У нашего 
барабанщика такой же. 
Интересно, куда он запропас-
тился?]]
                        elseif activeObjectName == 'Солдат2' then
                            showmessage [[
- Славный барабан. У нашего 
барабанщика такой же. 
Интересно, куда он запропас-
тился?]]
                        elseif activeObjectName == 'Невеста' then
                            showmessage [[
- Не нравится? Понимаю. Но мне 
он тоже ни к чему, так что 
забирай.]]
                        else
                            showmessage [[
У зайца не было ни малейшего 
настроения играть на барабане.]]
                        end -- if
                        end -- func

--------  Плащ

PicButton:new('Плащ', 0, 0, spr.cloak, 'c')
_'Плащ'.onclick = function(s)
                        if activeObjectName == 'Харон' then
                            drop 'Плащ'
                            ADD 'Отдали плащ лодочнику'
                            showmessage [[
- Уверен? Я стар и давно при-
вык к тому, что небо плачет.
- Мне нужно на другую сторону.
- Как знаешь. Но учти, ты не 
сможешь вернуться. Эта лодка 
перевозит только в одну 
сторону.]]
                        elseif activeObjectName == 'Печь' then
                            showmessage [[
Заяц немного подсушил плащ от 
тёплой печи.]]
                        elseif activeObjectName == 'Невеста' then
                            showmessage [[
- На улице зарядил дождь. 
Надеюсь, это немного поможет.]]
                        else
                            showmessage [[
Заяц укутался посильнее 
в плащ.]]
                        end -- if
                        end -- func


-------- Платок 

PicButton:new('Платок', 0, 0, spr.handkerchief, 'h')
_'Платок'.onclick = function(s)
                        if activeObjectName == 'Охранник' then
                            drop 'Платок'
                            ADD 'Отдали платок охраннику'
                            showmessage [[
- Я нашёл это на одном из тел.
- Да, это его вензель. Значит 
всё. Он там? Или уже не он? Но 
всё-таки я должен позаботиться 
о теле. Спасибо, заяц. Пойду. 
Следует справить его последний 
праздник.
]]
                        elseif activeObjectName == 'ПтицаУКарантина' then
if RANDOM:rnd(2) == 1 then showmessage([[
- Черви! Много червей! Должна 
сожрать их всех! Не мешай!]])
else showmessage([[
- Красное на белом. Слишком 
красное на слишком белом для 
меня. Убери это.]])
end --if
                        else
                            showmessage [[
Белый носовой платок пропитал-
ся кровью. В углу замысловатый 
вензель N.N. Возможно, этот 
вензель был самым сложным, что
нашлось у хозяина в жизни.
]]
                        end -- if
                        end -- func

--------------------- Глобальная карта -------------------------

Conteiner:new('Глобальная карта')
_'Глобальная карта'.obj = {
    SensZoneSprite:new('КрасныеПоляКарта',spr.redfield,1, 1, 3, 4, false),
    SensZoneSprite:new('БолотоКарта',spr.swamp,10, 1, 12, 9, false),
    SensZoneSprite:new('ПолеКарта',spr.field,5, 1, 7, 8, false),
    SensZoneSprite:new(false,spr.water,4, 1, 4, 3, true),
    SensZoneSprite:new(false,spr.water,3, 5, 4, 8, true),
    SensZoneSprite:new(false,spr.water,1, 9, 7, 9, true),
    SensPic:new('ЛоговоКарта', 11, 3, true, spr.denMap),
    SensPic:new('Брод', 4, 4, false, spr.ford),
    SensPic:new('ЗайцыКарта1', 1, 3, false, spr.harestate),
    SensPic:new('ЗайцыКарта2', 1, 6, false, spr.harestate),
    SensPic:new('ГородКарта', 7, 4, false, spr.city),
    SensPic:new('Горы_верх', 8, 1, true, spr.mountainT),
    SensPic:new('Горы_низ', 8, 7, true, spr.mountainB),
    SensPic:new('Горы_право', 10, 9, true, spr.mountainR),
    SensPic:new(false, 9, 4, true, spr.mountain1),
    SensPic:new(false, 9, 6, true, spr.mountain1),
    SensPic:new('Перевал', 9, 5, false, spr.passage),
    SensZoneSprite:new('Разлив',spr.water, 3, 1, 4, 4, true),
    SensPic:new('ПереправаКарта', 3, 4, true, spr.water),
    SensZoneSprite:new('ПолеБитвыКарта',spr.field, 6, 1, 6, 8, true),
    SensZone:new('ПолеБитвыКартаЧЗ', 5, 1, 5, 8),
    SensZoneSprite:new('ПобоищеКарта',spr.field,5, 1, 7, 8, false),
    SensPic:new('ГородМимоКарта', 7, 4, false, spr.city),
    SensPic:new('Карантинная_зонаКарта', 7, 4, true, spr.city),
}

_'ЛоговоКарта'.menu = {ChLabel:new(false, [[
В самой глубине болота 
отчаяния, между трясинами и 
омутами пряталось логово 
волка. Трудно найти, если не 
знаешь, где искать.]]),
                      Ch1Button:new('ЛоговоКарта_К1', "Вернуться к логову"),
                        }
_'ЛоговоКарта_К1'.onclick = function(s) 
                      setMap('Болото')
                      pl.i = 2
                      pl.j = 8
                      end
                      
_'ПолеКарта'.menu = {ChLabel:new(false, [[
Вся округа близ города была
засеяна пшеницей.]]),
                      Ch1Button:new('ПолеКарта_К1', "Осмотреть поле"),
                        }
_'ПолеКарта_К1'.onclick = function(s) 
                      setMap('Поле')
                      pl.i = 8
                      pl.j = 8
                      end

_'ГородКарта'.menu = {ChLabel:new(false, [[
Много камня, шума и больших 
зданий. В городе жили люди.]]),
                      Ch1Button:new('ГородКарта_К1', "Войти в город"),
                        }
_'ГородКарта_К1'.onclick = function(s) 
                      setMap('Город')
                      pl.i = 6
                      pl.j = 5
                      end

_'ЗайцыКарта1'.menu = {ChLabel:new(false, [[
Зайцы жили за рекой в 
тридевятом царстве. Земля 
здесь щедрая, и зайцы были
уверены, что счастливы.]]),
                      Ch1Button:new('ЗайцыКарта1_К1', "Войти в поселение зайцев"),
                        }
_'ЗайцыКарта1_К1'.onclick = function(s) 
                      setMap('Страна_кроликов')
                      pl.i = 10
                      pl.j = 2
                      end
_'ЗайцыКарта2'.menu = _'ЗайцыКарта1'.menu

_'Перевал'.menu = {ChLabel:new(false, [[
Ущелье неизбежности вело из 
болота отчаяния сквозь горы 
фрустрации к полям бесполез-
ного труда.]])}

_'БолотоКарта'.menu = {ChLabel:new(false, [[
Смесь воды с землёй, над 
которой возвышались кочки той 
части болота, что хотела 
остаться хоть немного сухой.]])}

_'Брод'.menu = {ChLabel:new(false, [[
Зайцы не умели строить мостов, 
а люди не хотели. В этом месте 
реку можно было перейти вброд. 
Вымокнув, замёрзнув и нагло-
тавшись воды.]])}

_'КрасныеПоляКарта'.menu = {ChLabel:new(false, [[
В стране зайцев земля плодо-
носила сама собой, удобренная 
их нерушимой верой в то, что 
это только так и может быть.]])}




-- Вторая часть игры




_'Разлив'.visible = function(s) return CHECK 'Поговорили с невестой' end
_'Разлив'.active = function(s) return CHECK 'Поговорили с невестой' end

_'ПереправаКарта'.menu = {ChLabel:new(false, [[
На этом месте был брод, но 
сейчас река разлилась и 
пересечь её просто так не 
получится.]]),
                      Ch1Button:new('ПереправаКарта_К1', "Подойти к реке"),
                        }
_'ПереправаКарта_К1'.onclick = function(s) 
                      setMap('Переправа')
                      pl.i = 1
                      pl.j = 5
                      end
_'ПереправаКарта'.visible = function(s) return CHECK 'Поговорили с невестой' end
_'ПереправаКарта'.active = function(s) return CHECK 'Поговорили с невестой' end


_'ПолеБитвыКартаЧЗ'.menu = {ChLabel:new(false, [[
Две армии выстроились на поле 
друг против друга.]]),
                      Ch1Button:new('ПолеБитвыКартаЧЗ_К1', "Подойти ближе"),
                        }
_'ПолеБитвыКартаЧЗ_К1'.onclick = function(s) 
                      setMap('Поле_битвы')
                      pl.i = 1
                      pl.j = 5
                      end
_'ПолеБитвыКарта'.visible = function(s) return CHECK 'Поговорили с невестой' and not CHECK 'Сыграли на барабане' end
_'ПолеБитвыКарта'.active = function(s) return CHECK 'Поговорили с невестой' and not CHECK 'Сыграли на барабане' end
_'ПолеБитвыКартаЧЗ'.active = function(s) return CHECK 'Поговорили с невестой' and not CHECK 'Сыграли на барабане' end


_'ПобоищеКарта'.menu = {ChLabel:new(false, [[
Поле изуродовано и покрыто 
мёртвыми телами.]]),
                      Ch1Button:new('ПобоищеКарта_К1', "Осмотреть поле"),
                        }
_'ПобоищеКарта_К1'.onclick = function(s) 
                      setMap('Побоище')
                      pl.i = 7
                      pl.j = 7
                      end
_'ПобоищеКарта'.visible = function(s) return CHECK 'Сыграли на барабане' end
_'ПобоищеКарта'.active = function(s) return CHECK 'Сыграли на барабане' end


_'ГородМимоКарта'.active = function(s) return CHECK 'Отдали платок охраннику' end
_'ГородМимоКарта'.menu = {ChLabel:new(false, [[
В городе свирепствовала холе-
ра. Лучше держаться отсюда по-
дальше.]])}

_'Карантинная_зонаКарта'.active = function(s) return CHECK 'Поговорили с невестой' and not CHECK 'Отдали платок охраннику' end
_'Карантинная_зонаКарта'.menu = {ChLabel:new(false, [[
Вход в город перекрыт.]]),
                      Ch1Button:new('Карантинная_зонаКарта_К1', "Подойти ближе"),
                        }
_'Карантинная_зонаКарта_К1'.onclick = function(s) 
                      setMap('Карантинная_зона')
                      pl.i = 2
                      pl.j = 5
                      end  








----------------------- Болото -----------------------------------

Conteiner:new('Болото')
_'Болото'.obj = {
  SensZoneSprite:new('Болото_Мысли',spr.swamp, 1, 1, 12, 9),
  SensZone:new('Болото_Л', 1, 1, 1, 9),
  SensZone:new('Болото_П', 12, 1, 12, 9),
  SensZone:new('Болото_В', 2, 1, 11, 1),
  SensZone:new('Болото_Н', 2, 9, 11, 9),
  SensPic:new(false, 3, 3, true, spr.bush),
  SensPic:new(false, 4, 3, true, spr.bush),
  SensPic:new(false, 5, 3, true, spr.bush),
  SensPic:new(false, 3, 4, true, spr.bush),
  SensPic:new(false, 5, 4, true, spr.bush),
  SensZone:new('Область_кустов', 2, 2, 6, 5),
  SensZone:new('Точка_ожидания', 4, 4, 4, 4),
  SensPic:new('Друг', 3, 7, true, spr.friend),
  SensPic:new('Логово', 8, 5, true, spr.den),
  SensPic:new('Полено1', 8, 2, true, spr.log),
  SensPic:new('Полено2', 9, 2, true, spr.log),
  SensPic:new('Полено3', 5, 8, true, spr.log),
  SensPic:new('Пень', 9, 8, true, spr.stump),
  SensZone:new('ГвоздьНаКарте', 11, 3, 11, 3),
}

_'Болото_Мысли'.menu = {ChLabel:new(false, [[
Болото отчаяния. Сколько раз 
заяц пробегал по нему, торо-
пясь вырваться как можно ско-
рее? И сколько раз он возвра-
щался сюда, сам не зная зачем?
]]),
Ch1ButtonOneClick:new('Мысли_болота_К1', "Вспомнить себя", [[
Было бы преувеличением ска-
зать, что заяц забыл себя. 
Но в этом его знании пропала 
определённость. Он помнил, кто 
он, но он больше не понимал, 
что из этого следует, зачем 
он, и что это даёт ему или 
кому бы то ни было.
]]),
Ch2ButtonOneClick:new('Мысли_болота_К2', "Вспомнить невесту", [[
Заяц пытался сосредоточиться, 
но не мог. Он любил свою 
невесту, но сейчас её образ 
сливался со всеми зайчихами, 
что он знал. Это был словно 
единый, обобщённый символ 
женщины, что не значил ничего, 
кроме вечной спешки. Он не 
испытывал к нему никакого 
чувства.
]])
}


_'Болото_В'.menu = {ChLabel:new(false, [[
Дальше начиналась глубокая 
трясина. Лучше было держаться 
от неё подальше.
]])}

_'Болото_П'.menu = _'Болото_В'.menu

_'Болото_Л'.menu = {ChLabel:new(false, [[
Отсюда заяц мог видеть большую 
горную гряду, отделяющую 
болото от остального мира.
]]),
Ch1Button:new('Болото_Л_К1', "Уйти")}
_'Болото_Л_К1'.onclick = function(s) 
                      if CHECK 'Поговорили с другом' then
                              setMap('Глобальная карта')
                              pl.i = 10
                              pl.j = 3
                              else showmessage([[
Заяц не мог просто взять и 
уйти. Логово волка притягивало 
его к себе. Страх, чудо и 
неизвестность смешивались в 
нём воедино. Волк ждал его. 
Ждал ли его хоть кто-то с той 
стороны гор, он не помнил.
]])
                              end --if
                      end
_'Болото_Н'.menu = _'Болото_Л'.menu

_'Область_кустов'.menu = {ChLabel:new(false, [[
Кусты были частью засохшие, 
частью свежие. И те, и другие 
росли в одной и той же земле 
из одного корня, но что-то 
внутри них, какая-то индивиду-
альность заставляла одни 
зеленеть, а другие медленно 
умирать.
]]),
Ch1Button:new('Область_кустов_К1', "Собрать хвороста")
}
_'Область_кустов_К1'.onclick = function(s)
                take 'Хворост'
                showmessage[[
Заяц наломал небольшую кучу 
сухих веток и взвалил её на 
спину. Он сам не осознавал до 
конца, зачем это делает. Это 
было что-то из прошлой жизни, 
полностью состоящей из такого 
собирательства. Он находил 
что-то - неважно что - и тащил 
это домой, независимо от того, 
нужно оно или нет. Тем же 
занимались все вокруг него.
]]
                ADD 'Набрали хвороста'
                end
_'Область_кустов_К1'.active = function() return not CHECK('Набрали хвороста') end

_'Друг'.menu = {ChLabel:new(false, [[
Маленькое чёрное ушастое 
существо. Зайцу понадобилось 
сделать усилие, чтобы 
вспомнить: это его друг. И 
брат его невесты.
]]),
Ch1Button:new('Друг_К1', "Говорить"),
}
_'Друг'.visible = function() return CHECK('Подождали') end
_'Друг'.active = function() return CHECK('Подождали') end

_'Друг_К1'.onclick = function(s)
if not CHECK 'Поговорили с невестой' then
showmessage(ONCESTRING(343, [[
- Как ты нашёл меня?
- Хех. А кто, как не я, мог 
это сделать? Друг - значит 
другой. Я подумал: где бы я 
никогда не оказался, и вот я 
здесь. Моя сестра не забыла 
ваш уговор, она ждёт тебя.
- Я не могу уйти отсюда.
Гость огляделся по сторонам.
- Понимаю. Но ведь войти не 
можешь тоже. Ты застрял между 
жизнью и страхом.
- Что мне делать, друг?
- Иди к сестре. Ты не закончил 
там, и потому не в силах 
закончить здесь.
- Это болото огромно. Если я 
уйду... я больше не найду 
этого места никогда.
Друг помолчал.
- Иди. Я буду ждать тебя 
здесь. Я не спущу глаз с 
логова страха. Ты найдёшь 
меня так же, как я тебя. И 
может быть, - голос его 
дрогнул, - может быть, мы 
вместе сможем войти внутрь.
]], '- Иди к своей невесте.'))
ADD 'Поговорили с другом'
else
showmessage [[
- Как ты?
- Чудно. Логово притягивает и
отталкивает одновременно.
- Ты говорил с ним?
- Нет. Не хватило духу.
- Ты пойдёшь?
- Иди первый. Я за тобой. 
Может быть.
]]
end --if
end --func


_'Логово'.menu = {ChLabel:new(false, [[
Чёрная дыра вела куда-то под 
землю. Из темноты на зайца 
смотрела пара светящихся 
равнодушных глаз. Чем ближе 
заяц подходил к логову, тем 
сильнее охватывали его 
чувства, которые трудно было 
описать словами. Самым сильным 
из них был страх.
]]),
Ch1Button:new('Логово_К1', "Говорить с волком"),
Ch2Button:new('Логово_К3', "Войти в логово")
}
_'Логово_К1'.onclick = function(s)
if not CHECK 'Подождали' then
showmessage(ONCESTRING(598, [[
- Волк, ты там?
- Да.
- Почему я не могу уйти?
- Ты можешь.
- Но почему я не ухожу?
- Потому что не хочешь. Всё 
стало по-другому, когда ты 
встретился со мной.
- Ты сломал меня.
- Нет. Я лишь наблюдал за 
тобой, как наблюдаю за каждым. 
Вспомни. Ты остановился не 
потому что услышал меня, никто 
не слышит раньше положенного 
времени. Ты остановился потому 
что увидел что-то.
- Что?
- Откуда мне знать, раз даже 
ты не знаешь.
- И что мне делать? Я не могу 
войти, лапы не слушаются меня.
- Когда я не знаю что делать, 
я просто жду. Подожди и ты. В 
тех кустах есть тихое 
спокойное место.
]], [[
- Я жду тебя, заяц. Подожди и
ты себя. В тех кустах есть 
тихое спокойное место.
]]))
elseif not CHECK 'Поговорили с невестой' then
showmessage [[
- Волк?
- Что?
- Могу я сходить к своей 
невесте?
- Почему ты спрашиваешь у 
меня? Я не твой тюремщик. Ты 
сам сторожишь себя, у себя и 
отпрашивайся.
]]
else
showmessage(ONCESTRING(637, [[
- Я вернулся.
- Я следил за тобой. Ты 
доволен?
- Нет. Я видел ненастоящее 
счастье, ненастоящее богат-
ство, ненастоящее горе.
- Ничего настоящего?
- Только страх.
- Теперь ты можешь войти?
- Не знаю. Но я попытаюсь.
]], '- Я жду, заяц. Смелее.'))
end --if
end --func

_'Логово_К3'.onclick = function(s)
if CHECK 'Поговорили с невестой' then
setScene('Экран финала')
else
showmessage [[
Заяц попытался войти внутрь, 
но у него ничего не получи-
лось. Он хотел. Он действи-
тельно стремился туда, но лапы 
становились как ватные, и он 
не мог сделать ни малого 
шажочка.]]
end --if
end --func


_'Точка_ожидания'.menu = {ChLabel:new(false, [[
В глубине кустов было удобное 
сухое место.
]]),
Ch1Button:new('Точка_ожидания_К1', "Ждать"),
}
_'Точка_ожидания_К1'.onclick = function(s)
showmessage([[
Заяц сел под кустом на задние 
лапы и стал ждать. В вечной 
спешке он не замечал этого, но 
теперь видел отчётливо: 
страх притягивал его, а 
прошлая жизнь, суетливая и 
бессмысленная казалась дурным 
сном. Но страх был страхом. 
Заяц не находил сил прибли-
зиться к логову.

Кружась в вихре собственных 
мыслей он не сразу заметил, 
как к нему пришёл гость.
]])
ADD 'Подождали'
end
_'Точка_ожидания_К1'.active = function() return not CHECK('Подождали') end


_'ГвоздьНаКарте'.menu = {ChLabel:new(false, [[
Среди кочек, луж и болотной 
травы заяц нашёл ржавый 
кривой гвоздь.]]),
                      Ch1Button:new('ГвоздьНаКарте_К1', "Взять гвоздь"),
                        }
_'ГвоздьНаКарте'.active = function(s) return not CHECK 'Взяли гвоздь' end
_'ГвоздьНаКарте_К1'.onclick = function(s) 
                      take 'Гвоздь'
                      ADD 'Взяли гвоздь'
                      showmessage([[
Зайцу гвоздь был не нужен, но 
он испытывал к нему что-то 
вроде родственных чувств. Ему 
вдруг стало жаль, что гвоздь 
валяется здесь всеми брошенный, 
и он решил забрать его с собой.]])
                      end


_'Пень'.menu = {ChLabel:new(false, [[
Каждый пень когда-то был дере-
вом. Тянулся к небу, расправ-
лял листочки к солнцу. Этот 
пень тоже. Теперь он ни к чему 
не стремился и только держался 
всеми корнями за сырую болот-
ную землю.
]]),
Ch1ButtonOneClick:new('Пень_К1', "Присесть на пень", [[
Заяц посидел на пне какое-то 
время. Пень молчал. Заяц тоже. 
Они помолчали, но не вдвоём, а 
каждый сам по себе, и ни в 
одном, ни в другом это ничего 
не изменило.
]]),
Ch2ButtonOneClick:new('Пень_К2', "Грызть кору", [[
Заяц попробовал вкус остатков 
коры на пне. Она была твёрдая 
и горькая. Чтобы смириться с 
этим нужно было оставаться 
дальше зайцем, а этого как раз 
он и не мог.
]])
}

_'Полено1'.menu = {ChLabel:new(false, [[
Длинный вытянутый предмет, 
круглый в сечении. С шерохо-
ватой поверхности в сторону 
торчали мелкие отростки. Не 
без усилия заяц понял, что 
это ствол упавшего и сгнившего 
дерева, точнее то, что от него 
осталось.
]]),
Ch1ButtonOneClick:new('Полено_К1', "Отломить кору", [[
Заяц оторвал кусок коры от 
полена. Под ней обнажилась 
светлая плоть дерева, вся 
испещренная, как письменами, 
ходами древоточцев. Но самих 
жуков не было, даже они 
бросили этот бесполезный 
предмет.
]])
}

_'Полено2'.menu = _'Полено1'.menu
_'Полено3'.menu = _'Полено1'.menu







----------------------- Город -----------------------------------

Conteiner:new('Город')
_'Город'.obj = {
SensZoneSprite:new('Город_Мысли',spr.pebble, 1, 1, 12, 9),
SensZone:new('Город_Л', 1, 1, 1, 9),
SensZone:new('Город_П', 12, 1, 12, 9),
SensZone:new('Город_В', 2, 1, 11, 1),
SensZone:new('Город_Н', 2, 9, 11, 9),
-- Здание1
SensZoneSprite:new(false, spr.plankfloor, 1, 1, 5, 3, false),
SensZoneSprite:new(false, spr.brick, 1, 1, 1, 3, true),
SensZoneSprite:new(false, spr.brick, 2, 3, 3, 3, true),
SensZoneSprite:new(false, spr.brick, 5, 1, 5, 3, true),
SensPic:new('ЗакрытаяДверь1', 4, 3, true, spr.door),
SensPic:new(false, 2, 1, true, spr.bench),
-- Здание 2
SensZoneSprite:new(false, spr.plankfloor, 10, 7, 12, 9, false),
SensZoneSprite:new(false, spr.brick, 10, 7, 10, 9, true),
SensZoneSprite:new(false, spr.brick, 12, 7, 12, 7, true),
SensPic:new('ЗакрытаяДверь2', 11, 7, true, spr.door),
SensZoneSprite:new(false, spr.bag, 11, 8, 12, 9, true),
-- Лавка
SensZoneSprite:new(false, spr.plankfloor, 7, 1, 11, 4, false),
SensZoneSprite:new(false, spr.brick, 7, 1, 7, 3, true),
SensZoneSprite:new(false, spr.brick, 7, 4, 8, 4, true),
SensPic:new(false, 9, 4, false, spr.door),
SensZoneSprite:new(false, spr.brick, 10, 4, 11, 4, true),
SensZoneSprite:new(false, spr.brick, 11, 1, 11, 3, true),
SensPic:new('Вывеска1', 8, 5, false, spr.label),
SensPic:new(false, 8, 1, true, spr.table),
SensPic:new('Торговец', 10, 1, true, spr.seller),
-- Амбар
SensZoneSprite:new(false, spr.plankfloor, 1, 7, 7, 9, false),
SensZoneSprite:new(false, spr.brick, 1, 7, 2, 7, true),
SensPic:new(false, 3, 7, false, spr.door),
SensZoneSprite:new(false, spr.brick, 4, 7, 7, 7, true),
SensZoneSprite:new(false, spr.brick, 7, 8, 7, 9, true),
SensPic:new('Вывеска2',2, 6, false, spr.label),
SensZoneSprite:new(false, spr.bag, 4, 8, 6, 9, true),
SensPic:new('Делец', 2, 8, true, spr.merchant),
}

_'Город_Мысли'.menu = {ChLabel:new(false, [[
Город действовал на зайца 
подавляюще. Здания были 
огромными, люди высокими. 
Раньше он не обращал на это 
внимания, а теперь казался 
себе песчинкой которую ветер 
несёт по бесконечной пустыне. 
]])}

_'Город_Л'.menu = {ChLabel:new(false, [[
Город заканчивался, плавно 
переходя в пшеничные поля.
]]),
Ch1Button:new('Город_Л_К1', "Выйти из города")}
_'Город_Л_К1'.onclick = function(s) 
                        setMap('Глобальная карта')
                        pl.i = 7
                        pl.j = 5
                      end
_'Город_П'.menu = _'Город_Л'.menu


_'Торговец'.menu = {ChLabel:new(false, [[
Большая полка в лавке была 
уставлена предметами, разными 
по своей форме, но одинаковыми 
в их безразличности. Рядом 
стоял торговец, скучая в 
ожидании клиентов.]]),
                      Ch1Button:new('Торговец_К1', "Поговорить"),
                        }
_'Торговец_К1'.onclick = function(s) 
if not CHECK 'Купили самовар' and have 'Монета' then
-- TODO Скучно. Тут надо что-то вставить
showmessage([[
- Мне нужен подарок для моей 
невесты.
- А у тебя есть деньги, 
маленький зайчик?
- У меня есть золотая монета.
- Давай её сюда.
]])
elseif not CHECK 'Купили самовар' then
showmessage([[
- Мне нужен подарок для моей 
невесты.
- А у тебя есть деньги, 
маленький зайчик?
]])
else
showmessage [[
- Тебе нужно что-нибудь ещё, 
зайчик?
- Нет, - заяц отрицательно 
помотал головой. - Мне теперь 
ничего не нужно.]]
end --if
end --func


_'Делец'.menu = {ChLabel:new(false, [[
Толстый мужчина с маленькими 
внимательными глазками.]]),
                      Ch1Button:new('Делец_К1', "Поговорить"),
                        }
_'Делец_К1'.onclick = function(s) 
showmessage([[
- Что ты ищешь здесь, заяц? Я 
продаю зерно. Я покупаю зерно. 
Больше я ничем не занимаюсь. 
Но зачем зайцам зерно?
]])
end --func

_'Вывеска1'.menu =  {ChLabel:new(false, [[
На обструганой доске были 
выведены какие-то знаки. Заяц 
не умел читать, так что видел 
только чёрточки и штрихи, из 
которых не складывалось 
никакое изображение. Точно так 
же никакое изображение не 
складывалось больше из вещей, 
что он видел вокруг себя.]])}

_'Вывеска2'.menu = _'Вывеска1'.menu

_'ЗакрытаяДверь1'.menu =  {ChLabel:new(false, [[
Дверь была закрыта наглухо. 
Заяц понял, что внутрь он 
никогда, никаким способом 
попасть не сможет. Его жизнь, 
вся, полностью протекала с 
этой стороны двери. С другой 
же было что-то вовеки 
недоступное.]]),
Ch1ButtonOneClick:new('ЗакрытаяДверь_К1', "Постучать", [[
Заяц отбарабанил по двери 
короткую серию ударов. Точка, 
точка, точка, тире. Словно 
послал внутрь сигнал азбуки 
Морзе. Ответа не было.
]]),
Ch2ButtonOneClick:new('ЗакрытаяДверь_К2', "Заглянуть в скважину", [[
Заяц вытянулся на задних лапах 
и заглянул в замочную 
скважину. Внутри была только 
чернота. Вопреки Ницше ей не 
было до зайца никакого дела.
]])}

_'ЗакрытаяДверь2'.menu = _'ЗакрытаяДверь1'.menu




----------------------- Поле -----------------------------------



Conteiner:new('Поле')
_'Поле'.obj = {
  SensZoneSprite:new('Поле_Мысли',spr.wheat, 1, 1, 12, 9, false),
  SensZone:new('Поле_Л', 1, 1, 1, 9),
  SensZone:new('Поле_П', 12, 1, 12, 9),
  SensZone:new('Поле_В', 2, 1, 11, 1),
  SensZone:new('Поле_Н', 2, 9, 11, 9),
  SensPic:new('Пугало', 6, 3, true, spr.pugalo),
  SensPic:new('Птица1', 4, 7, true, spr.bird),
  SensPic:new('Птица2', 9, 5, true, spr.bird),
  }

_'Поле_Л'.menu = {ChLabel:new(false, [[
Поле было ограничено с одной 
стороны рекой, а с другой - 
городом.
]]),
Ch1Button:new('Поле_Л_К1', "Уйти с поля")}
_'Поле_Л_К1'.onclick = function(s) 
                        setMap('Глобальная карта')
                        pl.i = 5
                        pl.j = 5
                      end
_'Поле_П'.menu = _'Поле_Л'.menu
_'Поле_В'.menu = _'Поле_Л'.menu
_'Поле_Н'.menu = _'Поле_Л'.menu

_'Поле_Мысли'.menu = {ChLabel:new(false, [[
Пшеница прорастает из земли и 
тянется вверх, к свету. Когда 
она созреет, её уберут и 
перемолят в муку, а здесь 
посеют новую. Заяц смотрел на 
поле, словно видел его в 
первый раз в жизни.
]])}

_'Пугало'.menu = {ChLabel:new(false, [[
Кто-то установил здесь подобие 
человека. Наверно, он 
рассчитывал, что оно будет 
отпугивать птиц. Увы, птицы с 
лёгкостью отличают настоящего 
человека по источаемому им 
запаху несчастья.
]]),
Ch1ButtonOneClick:new('Пугало_К1', "Поговорить с пугалом", [[
- Скажи пугало, тебя не 
расстраивает, что тебя создали 
чтобы пугать, но никто не 
боится?
Пугало безмолвно смотрело на 
горизонт.
- Конечно, ты не сам выбрал 
себе эту миссию, она чужая 
тебе.
- ...
- Ведь если разобраться, у 
тебя в жизни ничего нет, кроме 
этой чужой задачи.
- Или есть?
- ...
]]),
Ch2ButtonOneClick:new('Пугало_К2', "Встать рядом", [[
Заяц поднялся на задние лапы 
и расставил руки в стороны. 
Какое-то время они стояли 
рядом как два креста на горе, 
оба одинаково безразличные 
колосьям, птицам и небу. Заяц 
оставил что-то от себя пугалу, 
но ничего не приобрел взамен, 
кроме неясного ощущения чего-
то вечного и неописуемого.
]])}

_'Птица1'.menu = {ChLabel:new(false, [[
Несколько серых птиц 
безразлично копались в земле. 
Они были то ли слишком глупы, 
чтобы бояться пугала, то ли 
наоборот слишком умны. Заяц 
не знал способа проверить.
]]),
Ch1ButtonOneClick:new('Птица_К1', "Спугнуть птиц", [[
Заяц попытался прогнать птиц, 
но они его игнорировали. 
Определенно, это были самые 
смелые птицы в тех краях.
]]),
Ch2ButtonOneClick:new('Птица_К2', "Осмотреть землю", [[
Заяц посмотрел, что птицы 
искали в земле, но ничего не 
увидел. Не исключено, что это 
самое "ничего" и было их 
целью. Заяц совсем не помнил, 
чем питаются птицы.
]])}

_'Птица2'.menu = _'Птица1'.menu






----------------------- Страна кроликов ------------------------------



Conteiner:new('Страна_кроликов')
_'Страна_кроликов'.obj = {
SensZoneSprite:new('Страна_кроликов_Мысли',spr.redearth, 1, 1, 12, 9, false),
SensZone:new('Страна_кроликов_Л', 1, 1, 1, 7),
SensZone:new('Страна_кроликов_П', 12, 1, 12, 9),
SensZone:new('Страна_кроликов_В', 2, 1, 11, 1),
SensZone:new('Страна_кроликов_Н', 5, 9, 11, 9),
-- Баня
SensZoneSprite:new('Баня1',spr.woodwall,3, 1, 3, 3, true),
SensZoneSprite:new('Баня2',spr.woodwall,5, 3, 6, 3, true),
SensZoneSprite:new('Баня3',spr.woodwall,3, 1, 3, 3, true),
SensZoneSprite:new('Баня4',spr.woodwall,6, 1, 6, 2, true),
SensPic:new(false, 4, 3, false, spr.door),
SensPic:new(false, 5, 1, true, spr.bench),
SensPic:new('Печь', 4, 1, true, spr.kiln),
-- Домик
SensZoneSprite:new(false,spr.woodwall,6, 8, 6, 9, true),
SensPic:new(false, 5, 7, true, spr.woodwall),
SensPic:new(false, 4, 6, true, spr.woodwall),
SensPic:new(false, 2, 6, true, spr.woodwall),
SensPic:new(false, 1, 7, true, spr.woodwall),
SensPic:new(false, 3, 6, false, spr.door),
SensPic:new(false, 5, 8, true, spr.bench),
SensPic:new('Вдова', 3, 7, true, spr.widow),
SensPic:new('Невеста', 4, 9, true, spr.girl),
-- Двор
SensZoneSprite:new('Репка1',spr.ogorod, 8, 4, 11, 4, true),
SensZoneSprite:new('Репка2',spr.ogorod, 8, 6, 11, 6, true),
SensZoneSprite:new('Репка3',spr.ogorod, 8, 8, 11, 8, true),
SensPic:new('Цветок1', 11, 2, false, spr.flower),
SensPic:new('Цветок2', 1, 6, false, spr.flower),
SensPic:new('Цветок3', 5, 6, false, spr.flower),
SensPic:new('СерпНаКарте', 7, 8, false, spr.serp),
}

_'Страна_кроликов_Мысли'.menu = {ChLabel:new(false, [[
- Почему мы живём в норах? - 
спрашивал у себя заяц, глядя 
на заглублённые под землю 
хижины. - Ведь это кролики 
живут в норах, а не зайцы. Не 
может ли быть такого, что на 
самом деле мы кролики и 
только называем себя зайцами? 
]])}

_'Страна_кроликов_Л'.menu = {ChLabel:new(false, [[
Зайцы не живут в городах. Их 
норы без видимого порядка 
разбросаны там и тут.
]]),
Ch1Button:new('Страна_кроликов_Л_К1', "Уйти")}
_'Страна_кроликов_Л_К1'.onclick = function(s) 
                        setMap('Глобальная карта')
                        pl.i = 2
                        pl.j = 6
                      end
_'Страна_кроликов_П'.menu = _'Страна_кроликов_Л'.menu
_'Страна_кроликов_В'.menu = _'Страна_кроликов_Л'.menu
_'Страна_кроликов_Н'.menu = _'Страна_кроликов_Л'.menu

_'СерпНаКарте'.menu = {ChLabel:new(false, 'Здесь лежит серп.'),
                      Ch1Button:new('СерпНаКарте_К1', "Взять серп"),
                        }
_'СерпНаКарте'.visible = function(s) return not CHECK 'Взяли серп' end
_'СерпНаКарте'.active = function(s) return not CHECK 'Взяли серп' end
_'СерпНаКарте_К1'.onclick = function(s) 
                      take 'Серп'
                      ADD 'Взяли серп'
                      showmessage('Заяц подобрал серп.')
                      end

_'Печь'.menu = {ChLabel:new(false, [[
Каменная печь в маленькой 
бане.]]),
                      Ch1Button:new('Печь_К1', "Растопить печь"),
                      Ch2Button:new('Печь_К2', "Помыться"),
                        }
_'Печь_К1'.onclick = function(s) 
                        if CHECK 'Положили хворост в печь' then
                          ADD 'Растопили печь'
                          showmessage('Заяц растопил печь.')
                          --s.active = false
                        else
                            showmessage([[
Заяц не мог растопить печь 
без дров.]])
                        end -- if
                      end --func
_'Печь_К1'.active = function() return not CHECK('Растопили печь') end

    
_'Печь_К2'.onclick = function(s) 
                        if CHECK 'Растопили печь' then
                          ADD 'Помылись'
                          showmessage([[
Заяц помылся. Вероятно, больше 
от него не пахло тиной, но 
можно ли избавиться таким 
способом от запаха волка?]])
                          --s.active = false
                        else
                            showmessage([[
В бане было слишком холодно, 
чтобы мыться.]])
                        end -- if
                      end --func

_'Печь_К2'.active = function() return not CHECK('Помылись') end

_'Вдова'.menu = {ChLabel:new(false, [[
Старая вдова зайчиха стояла на 
проходе.]]),
                      Ch1Button:new('Вдова_К1', "Говорить"),
                        }

_'Вдова_К1'.onclick = function(s) 
                        if CHECK 'Помылись' and CHECK 'Отдали самовар вдове' then
                          ADD 'Прошли к невесте'
                          showmessage(ONCESTRING(1778, [[
- Ты изменился, зятёк. В твоих 
глазах что-то нехорошее. Ты 
всё ещё заяц?
- Не совсем. 
- Что с тобой случилось?
- Я встретил волка. Волк 
окликнул меня. Волк ждёт меня 
в своем логове.
- Но ты не смог войти?
- Не смог.
- Понятно, - вдова помолчала. -
Зачем ты пришёл?
- Закончить дела.
- Нет. Ты пришёл за силой. 
Мужчина всегда ворует у 
женщины силу, так повелось.
Заяц не ответил.
- Бедная девочка, ты уйдёшь, 
когда получишь своё. Но я 
впущу тебя. Забирая у женщины 
силу, мужчина оставляет ей 
слабость. Нам слабость нужнее.
]], [[
- Бедная девочка, - снова 
повторила зайчиха. - Но что 
мы можем? Иди к ней. Иди, а 
потом - убирайся.]]))
                        elseif CHECK 'Помылись' then
                            showmessage(ONCESTRING(1778, [[
- Ты изменился, зятёк. В твоих 
глазах что-то нехорошее. Ты 
всё ещё заяц?
- Не совсем. 
- Что с тобой случилось?
- Я встретил волка. Волк 
окликнул меня. Волк ждёт меня 
в своем логове.
- Но ты не смог войти?
- Не смог.
- Понятно, - вдова помолчала. -
Зачем ты пришёл?
- Закончить дела.
- Нет. Ты пришёл за силой. 
Мужчина всегда ворует у 
женщины силу, так повелось.
Заяц не ответил.
- Бедная девочка, ты уйдёшь, 
когда получишь свое. Но я 
впущу тебя. Забирая у женщины 
силу, мужчина оставляет ей 
слабость. Нам слабость нужнее. 
Но принеси подарок невесте, 
должно же ей остаться хоть 
что-то после тебя.
]], [[
- Девочке нужен подарок на 
память. Раз уж больше с тебя 
нечего взять.]]))
                        elseif CHECK 'Отдали самовар вдове' then
                            showmessage(ONCESTRING(1778, [[
- Ты изменился, зятёк. В твоих 
глазах что-то нехорошее. Ты 
всё ещё заяц?
- Не совсем. 
- Что с тобой случилось?
- Я встретил волка. Волк 
окликнул меня. Волк ждёт меня 
в своем логове.
- Но ты не смог войти?
- Не смог.
- Понятно, - вдова помолчала. -
Зачем ты пришёл?
- Закончить дела.
- Нет. Ты пришёл за силой. 
Мужчина всегда ворует у 
женщины силу, так повелось.
Заяц не ответил.
- Бедная девочка, ты уйдёшь, 
когда получишь свое. Но я 
впущу тебя. Забирая у женщины 
силу, мужчина оставляет ей 
слабость. Нам слабость нужнее. 
Только помойся как следует, 
от тебя несёт болотом.
]], [[
- Помойся, от тебя пахнет 
болотом.]]))
                        else
                            showmessage(ONCESTRING(1778, [[
- Ты изменился, зятёк. В твоих 
глазах что-то нехорошее. Ты 
всё ещё заяц?
- Не совсем. 
- Что с тобой случилось?
- Я встретил волка. Волк 
окликнул меня. Волк ждёт меня 
в своем логове.
- Но ты не смог войти?
- Не смог.
- Понятно, - вдова помолчала. -
Зачем ты пришёл?
- Закончить дела.
- Нет. Ты пришёл за силой. 
Мужчина всегда ворует у 
женщины силу, так повелось.
Заяц не ответил.
- Бедная девочка, ты уйдёшь, 
когда получишь свое. Но я 
впущу тебя. Забирая у женщины 
силу, мужчина оставляет ей 
слабость. Нам слабость нужнее. 
Но принеси подарок невесте, 
должно же ей остаться хоть 
что-то после тебя. И помойся, 
от тебя несёт болотом.
]], [[
- Помойся и принеси подарок 
для невесты.
]]))
                        end -- if
                      end --func

_'Вдова'.active = function() return not CHECK('Прошли к невесте') end
_'Вдова'.visible = function() return not CHECK('Прошли к невесте') end

_'Невеста'.menu = {ChLabel:new(false, [[
Молодая зайчиха. Беленькая и 
хрупкая. Но заяц никак не мог 
вспомнить, как же её зовут.]]),
                      Ch1Button:new('Невеста_К1', "Говорить"),
                        }
_'Невеста_К1'.onclick = function(s) 
if not CHECK 'Поговорили с невестой' then
ADD 'Поговорили с невестой'
take 'Плащ'
take 'Барабан'
showmessage([[
- Мать сказала, ты уходишь.
- Здесь слишком много цветов, 
зайцы слишком счастливы, а 
земля слишком благополучна. 
Как в сказке. Я видел быль, я 
не могу вернуться в сказку.
- Твоя быль живет на болоте 
отчаяния?
- Да.
- И ты променяешь сказку на 
отчаяние? Меня на серого 
волка?
Заяц промолчал.
- Сколько раз я тебе говорила, 
держаться подальше от болота, 
но тебя словно тянуло туда.
Она вздохнула.
- У меня тоже есть для тебя 
подарок, хотя вряд ли он 
понравится тебе теперь. Я 
выбирала его для старого тебя.
Зайчиха протянула ему барабан.
- А теперь иди. Не хочу быть 
твоим тюремщиком. Только вот, 
возьми плащ. На улице разошёл-
ся дождь.
]])

else
    showmessage([[
- Уходи, я не хочу тебя 
видеть.]])
end -- if
end -- func



_'Баня1'.menu = {ChLabel:new(false, [[
Баня, - думал заяц, - это 
такое философское место, в 
котором жар специально доводят 
до состояния, что там нельзя 
находиться долго. Сперва может 
показаться, что надо только 
потерпеть и ты привыкнешь, но 
чем дальше, тем яснее 
понимаешь, что ты тут только 
на время.]])}

_'Баня2'.menu = _'Баня1'.menu
_'Баня3'.menu = _'Баня1'.menu
_'Баня4'.menu = _'Баня1'.menu


_'Репка1'.menu = {ChLabel:new(false, [[
Овощи росли неприлично ровными 
рядами, листик к листику, 
словно на сетке 12 на 9. 
Каждая репка была неотличима 
от другой. Возможно даже, это 
была одна и та же репка, 
проявляющая своё бытиё 
одновременно тут и там.
]]),
Ch1ButtonOneClick:new('Репка_К1', "Вырвать репку", [[
Заяц хотел выдрать из земли 
один из плодов, сломать 
больную симметрию, но ему не 
хватало духу. Он боялся: вдруг 
из-за этого все репки во всех 
заячьих селениях разом 
перестанут существовать.
]])}

_'Репка2'.menu = _'Репка1'.menu
_'Репка3'.menu = _'Репка1'.menu

_'Цветок1'.menu = {ChLabel:new(false, [[
Красивый луговой цветок рос 
сам собой, по собственному 
усмотрению. Никто его не 
сажал, никто его не поливал, 
но он всё равно вырос и 
распустился здесь. Заяц не 
знал, как он называется, но 
цветку было на это наплевать.
]]),
Ch1ButtonOneClick:new('Цветок_К1', "Сорвать цветок", [[
Заяц сорвал красивый цветок, 
и цветок стал мёртвым. Заяц 
выбросил с омерзением труп 
цветка.
]]),
Ch2ButtonOneClick:new('Цветок_К2', "Понюхать цветок", [[
Цветок пах красным, бежевым 
и немного голубым.
]])}

_'Цветок2'.menu = _'Цветок1'.menu
_'Цветок3'.menu = _'Цветок1'.menu



----------------------- Переправа -----------------------------------



Conteiner:new('Переправа')
_'Переправа'.obj = {
SensZoneSprite:new('Переправа_Мысли',spr.redearth, 1, 1, 6, 9, false),
SensZoneSprite:new('НовоеПоле1',spr.wheat, 7, 1, 12, 9, false),
SensZone:new('Переправа_Л', 1, 1, 1, 9),
SensZone:new('Переправа_П', 12, 1, 12, 9),
SensZoneSprite:new(false,spr.water, 5, 1, 10, 4, true),
SensZoneSprite:new(false,spr.water, 4, 4, 8, 6, true),
SensZoneSprite:new(false,spr.water, 3, 7, 8, 9, true),
SensPic:new('Цветок4', 2, 2, false, spr.flower),
SensPic:new('Цветок5', 1, 8, false, spr.flower),
SensPic:new('Харон', 3, 4, true, spr.haron),
SensPic:new('Лодка', 4, 5, true, spr.boat),

}

_'Переправа_Мысли'.menu = {ChLabel:new(false, [[
Река сильно разлилась от 
дождя. Соваться в воду - 
плохая идея. К счастью, на 
переправе дежурил лодочник.
]])}

_'Переправа_Л'.menu = {ChLabel:new(false, [[
Отсюда можно было разглядеть 
аккуратные домики зайцев.
]]),
Ch1Button:new('Переправа_Л_К1', "Уйти")}
_'Переправа_Л_К1'.onclick = function(s) 
                        setMap('Глобальная карта')
                        pl.i = 2
                        pl.j = 4
                      end

_'Переправа_П'.menu = {ChLabel:new(false, [[
Здесь начинались поля.
]]),
Ch1Button:new('Переправа_П_К1', "Уйти")}
_'Переправа_П_К1'.onclick = function(s) 
                        setMap('Глобальная карта')
                        pl.i = 5
                        pl.j = 4
                      end
                      
_'Харон'.menu = {ChLabel:new(false, [[
Старый человек, горбатый и 
полуголый, стоял рядом со 
своей лодкой.
]]),
Ch1Button:new('Харон_Л_К1', "Говорить")}

_'Харон_Л_К1'.onclick = function(s) 
if CHECK 'Отдали плащ лодочнику' then
showmessage [[
- Мне нужно переправиться на 
ту сторону.
- Что ж. Залезай в лодку и 
лучше не смотри назад.
]]
pl.i = 9
pl.j = 5
else
showmessage [[
- Мне нужно переправиться на 
ту сторону.
- Есть ли у тебя обол, 
маленький зайчик? - лодочник 
поёжился. Моросящий дождь 
заливал его полуголое тело.
- Нет. Я потратил его на 
подарок для своей невесты.
- Может это и к лучшему для 
тебя. С той стороны реки лишь 
смерть. Оставайся здесь, со 
своей зайчихой. Не для того 
ли разлилась река чтобы спасти 
тебя?
- Здесь нет ничего для меня. 
А там... там мой страх ждёт 
меня. Мне нужно на ту сторону.
- Тебе придётся чем-то 
заплатить мне, зайчик. Так 
заведено.
]]
end --if
end --func

_'НовоеПоле1'.menu = {ChLabel:new(false, [[
Стебель к стеблю, колос к 
колосу тут росли мириады 
неотличимых побегов, словно бы 
земля, устав от разнообразия, 
решила покрыть себя однотонным 
ворсистым ковром.
]])}

_'Цветок4'.menu = _'Цветок1'.menu
_'Цветок5'.menu = _'Цветок1'.menu

----------------------- Поле_битвы -----------------------------------



Conteiner:new('Поле_битвы')
_'Поле_битвы'.obj = {
  SensZoneSprite:new('Поле_битвы_Мысли',spr.wheat2, 1, 1, 4, 9, false),
  SensZone:new('Поле_битвы_Л', 1, 1, 1, 9),
  SensZoneSprite:new(false, spr.wheat2, 5, 1, 12, 9, true),
  SensPic:new('Солдат2', 5, 2, true, spr.solder2),
  SensPic:new(false, 7, 2, true, spr.solder2),
  SensPic:new(false, 9, 2, true, spr.solder2),
  SensPic:new('Солдат1', 5, 6, true, spr.solder1),
  SensPic:new(false, 7, 6, true, spr.solder1),
  SensPic:new(false, 9, 6, true, spr.solder1),
  SensPic:new(false, 10, 7, true, spr.canon),
  }


_'Поле_битвы_Л'.menu = {ChLabel:new(false, [[
Заяц видел отсюда разлившуюся 
реку.
]]),
Ch1Button:new('Поле_битвы_Л_К1', "Уйти")}
_'Поле_битвы_Л_К1'.onclick = function(s) 
                        setMap('Глобальная карта')
                        pl.i = 5
                        pl.j = 5
                      end

_'Поле_битвы_Мысли'.menu = {ChLabel:new(false, [[
Поле наполнено солдатами, но 
бой еще не начался. Было бы 
крайне неудачно оказаться 
между двумя армиями, когда 
всё начнётся.
]]),
}

_'Солдат1'.menu = {ChLabel:new(false, [[
Солдат терпеливо ждал, опира-
ясь на ружьё. Его лицо спокой-
но, в глазах - равнодушие.
]]),
Ch1Button:new('Солдат1_К1', "Поговорить")}
_'Солдат1_К1'.onclick = function(s)
showmessage [[
- Что тут?
- Солдат пожал плечами. Всё 
как обычно. Царь Андрон решил 
повоевать с царём Никитой. А 
может наоборот, неважно. Мы 
ждём приказа идти в атаку.
- Тебе не страшно?
Солдат пристально посмотрел 
зайцу прямо в глаза и 
улыбнулся уголком рта.
- Ты видел его, верно? Он тут 
часто бывает, серый волк. 
Ответь сам, страшно ли мне и 
есть ли что-то дороже этого 
страха?
]]
end --func

_'Солдат2'.menu = _'Солдат1'.menu



----------------------- Побоище -----------------------------------

Conteiner:new('Побоище')
_'Побоище'.obj = {
  SensZoneSprite:new('Побоище_Мысли',spr.wheat2, 1, 1, 12, 9, false),
  SensZone:new('Побоище_Л', 1, 1, 1, 9),
  SensZone:new('Побоище_П', 12, 1, 12, 9),
  SensZone:new('Побоище_В', 2, 1, 11, 1),
  SensZone:new('Побоище_Н', 2, 9, 11, 9),
  SensPic:new('Тело1', 10, 7, true, spr.corpse1),
  SensPic:new('Тело_брата', 5, 5, true, spr.corpse11),
  SensPic:new('Тело2', 6, 3, true, spr.corpse2),
  SensPic:new('Тело3', 9, 4, true, spr.corpse22),
  SensPic:new('Ворон1', 8, 4, true, spr.raven),
  SensPic:new('Ворон2', 9, 7, true, spr.raven),
  }

_'Побоище_Мысли'.menu = {ChLabel:new(false, [[
Поле изрыто воронками, пшеница 
порублена. Там и тут валялись 
мёртвые тела.
]]),}

_'Побоище_Л'.menu = {ChLabel:new(false, [[
Заяц видел отсюда предместья 
города.
]]),
Ch1Button:new('Побоище_Л_К1', "Уйти")}
_'Побоище_Л_К1'.onclick = function(s) 
                        setMap('Глобальная карта')
                        pl.i = 6
                        pl.j = 5
                      end
_'Побоище_П'.menu = _'Побоище_Л'.menu
_'Побоище_В'.menu = _'Побоище_Л'.menu
_'Побоище_Н'.menu = _'Побоище_Л'.menu

_'Тело_брата'.menu = {ChLabel:new(false, [[
Мёртвое тело в луже крови.
]]),
Ch1Button:new('Тело_брата_К1', "Обыскать")}
_'Тело_брата_К1'.onclick = function(s) 
                        if CHECK 'Поговорили с охранником' then 
                        showmessage [[
Заяц осмотрел тело и нашёл 
окровавленный платок с 
вензелем. ]]
                        take 'Платок'
                        ADD 'Нашли платок'
                        else
                        showmessage [[
Заяц осмотрел тело. Мертвец. 
Им обоим друг от друга ничего 
не было нужно.]]
                        end --if
                      end --func

_'Тело_брата_К1'.active = function() return not CHECK('Нашли платок') end

_'Тело1'.menu = {ChLabel:new(false, [[
Мёртвое тело в луже крови.
]]),
Ch1Button:new('Тело1_К1', "Обыскать")}
_'Тело1_К1'.onclick = function(s) 
                        if CHECK 'Поговорили с охранником' then 
                        showmessage [[
Заяц осмотрел тело, но не 
нашёл ничего примечатель-
ного.]]
                        else
                        showmessage [[
Заяц осмотрел тело. Мертвец. 
Им взаимно друг от друга 
ничего не было нужно.]]
                        end --if
                      end --func
                      
_'Тело2'.menu = _'Тело1'.menu 
_'Тело3'.menu = _'Тело1'.menu 


_'Ворон1'.menu = {ChLabel:new(false, [[
Серьезные чёрные птицы 
разрывали трупы, силясь найти
внутри души, чтобы унести их 
на небо. Увы, большая часть 
была давно обменена на 
повышенное жалованье, семейное 
счастье, или попросту сдана в 
ломбард.
]]),
Ch1ButtonOneClick:new('Ворон_К1', "Наблюдать", [[
Со стороны могло показаться, 
что птица пожирает плоть, но 
нет. Она лишь разрывала ее, 
оголяя кости, сердце, кишки, 
чтобы они стали лучше видны 
небу.
]]),
Ch2ButtonOneClick:new('Ворон_К2', "Прогнать", [[
Заяц попытался прогнать 
ворона, но безрезультатно. 
Птица подняла голову: из-за 
клюва на зайца смотрели волчьи 
глаза.
]])
}
_'Ворон2'.menu = _'Ворон1'.menu




----------------------- Карантинная_зона -----------------------------



Conteiner:new('Карантинная_зона')
_'Карантинная_зона'.obj = {
SensZoneSprite:new('Карантинная_зона_Мысли',spr.wheat, 1, 1, 12, 9, false),
SensPic:new('ПтицаУКарантина', 2, 8, true, spr.bird),
SensPic:new('Забор1', 4, 1, true, spr.zabor),
SensPic:new('Забор2', 7, 6, true, spr.zabor),
SensPic:new('Охранник', 6, 5, true, spr.solder1),
SensZoneSprite:new('БулыжникиМостовой', spr.pebble, 9, 1, 12, 6, false),
SensZone:new('Карантинная_зона_Л', 1, 1, 1, 9),
SensZone:new('Карантинная_зона_П', 12, 5, 12, 6),
SensZoneSprite:new(false, spr.plankfloor, 12, 1, 12, 3, false),
SensZoneSprite:new(false, spr.plankfloor, 11, 8, 12, 9, false),
SensZoneSprite:new(false, spr.brick, 11, 1, 11, 3, true),
SensZoneSprite:new(false, spr.brick, 11, 4, 12, 4, true),
SensZoneSprite:new(false, spr.brick, 10, 7, 12, 7, true),
SensZoneSprite:new(false, spr.brick, 10, 8, 10, 9, true),
}

_'Карантинная_зона_Мысли'.menu = {ChLabel:new(false, [[
Стебель к стеблю, колос к 
колосу тут росли мириады 
неотличимых побегов, словно бы 
земля, устав от разнообразия 
решила покрыть себя однотонным 
ворсистым ковром.
]])}

_'Карантинная_зона_Л'.menu = {ChLabel:new(false, [[
Заяц видел отсюда предместья 
города.
]]),
Ch1Button:new('Карантинная_зона_Л_К1', "Уйти")}
_'Карантинная_зона_Л_К1'.onclick = function(s) 
                        setMap('Глобальная карта')
                        pl.i = 6
                        pl.j = 5
                      end
_'Карантинная_зона_П'.menu = _'Карантинная_зона_Л'.menu


_'Охранник'.menu = {ChLabel:new(false, [[
Солдат в форме тяжело опирался 
на ружьё. Глаза словно из 
матового стекла. Неподвижен 
как статуя или как пугало, 
поставленное, чтобы отгонять 
птиц от грядок.
]]),
Ch1Button:new('Охранник_К1', "Говорить")}
_'Охранник_К1'.onclick = function(s) 
ADD 'Поговорили с охранником'
showmessage(ONCESTRING(937, [[
- Я не пропущу тебя, заяц. В 
городе холера.
- Я не собираюсь в город, мне 
нужно пройти до болота.
- Это ещё хуже. Или ты не 
знаешь, кто живет на болоте? 
Слишком много смертей за 
сегодня. Мой брат был там, в 
поле, а я гадаю, жив он или 
мёртв.
- Я могу поискать его среди 
павших, как его звали?
- Николай. И ты не убоишься 
мертвеца, заяц? 
- Не убоюсь.
- Что ж сходи. Я не могу 
оставить пост.
]], [[
- Мой брат где-то между жизнью 
и смертью. Сходи на поле, 
заяц. Посмотри, там ли он, или 
нет.
]]))
end --func
_'Охранник'.active = function() return not CHECK 'Отдали платок охраннику' end
_'Охранник'.visible = function() return not CHECK 'Отдали платок охраннику' end



_'Забор1'.menu = {ChLabel:new(false, [[
Поле было перегорожено прово-
лочной баррикадой. Тонкие 
металлические нити протяну-
лись от одного жердя до 
другого, на них как ноты 
сидели колючки, исполняя 
беззвучную мелодию чьей-то 
жизни.
]]),
Ch1ButtonOneClick:new('Забор_К1', "Пролезть", [[
Заяц испытал лапой колючки. 
Острые. Всю шкуру изорвёшь. 
Не то что бы он так сильно 
волновался за свою шкуру, но 
предстать перед волком в виде 
истекающей кровью тушки ему 
не хотелось.
]]), 
Ch2ButtonOneClick:new('Забор_К2', "Прочитать мелодию",[[
- Там, та-дам, тамтам, 
тарам, - утверждала проволока.
]]), 
}

_'Забор2'.menu = _'Забор1'.menu


_'ПтицаУКарантина'.menu = {ChLabel:new(false, [[
Большая серая птица со 
стеклянными глазами и 
бессмысленной мордой. Она 
крутила головой по сторонам 
в недоумении, словно не 
понимая, что это за вещи её 
окружают, и какое они к ней 
имеют отношение. Потом что-то 
находило на неё и она начинала 
яростно рыться в земле. Какое 
из этих двух состояний 
следовало считать нормальным - 
заяц не знал.
]]),
Ch1Button:new('ПтицаУКарантина_К1', "Говорить с птицей"), 
Ch2Button:new('ПтицаУКарантина_К2', "Прогнать птицу")}

_'ПтицаУКарантина'.active = function(s) return not CHECK 'Прогнали птицу' end
_'ПтицаУКарантина'.visible = function(s) return not CHECK 'Прогнали птицу' end
_'ПтицаУКарантина_К1'.onclick = function(s) 
if RANDOM:rnd(2) == 1 then showmessage([[
- Черви! Много червей! Должна 
сожрать их всех! Не мешай!]])
else showmessage([[
- Здесь слишком много лишнего. 
Тебе так не кажется, заяц? 
Взгляни, какие большие горы. 
Взгляни, сколько домов. Ты 
никогда не попадёшь в них. 
Так зачем они?]])
end --if
                    end --func
_'ПтицаУКарантина_К2'.onclick = function(s) 
                      ADD 'Прогнали птицу'
                      showmessage([[
Заяц не кричал, не размахивал 
руками - это было бы смешно. 
Он просто п о с м о т р е л на 
неё. Посмотрел глазами волка. 
Птица расправила крылья и 
улетела прочь.]])
                      end

_'БулыжникиМостовой'.menu = {ChLabel:new(false, [[
Камни прилегали друг к другу 
плотно-плотно, словно 
обнимаясь и спасаясь тем 
самым от одиночества.
]])}





--------------------- Основной игровой цикл ------------------------

currentObj = titleScreen

Shading:make('Из темноты')

FREEZE = 0 -- Это специальный счетчик, чтобы не было множественного срабатывания на клик мышкой

while sys.running() do
sitedesign()
currentObj:draw()
Shading:act()
if FREEZE==0 then currentObj:act() end
currentObj:update()
gfx.flip(1/50)
if FREEZE>0 then FREEZE=FREEZE-1 end
end
