{
(display: "Настройки игры")
(display: "Рандомайзер")
}
($Title: $GameTitle)
(color: red)[''Пожалуйста, внимательно прочитайте правила!'']
Это игра-тест по темпористике. Вам будет рассказана история из ''(color: yellow)[$EventsCount]'' событий, но рассказана необычным образом. События этой истории будут перемешаны и вы не будете знать, что произошло раньше, а что позже. К примеру, вы можете получить события вроде таких:
- Лиса съедает Колобка
- Колобок спрыгивает с подоконника и катится
- Колобок поёт песенку медведю
- Дед просит бабку испечь колобок
И по ходу игры к этому наобору добавятся новые события.
Ваша задача: создать в голове образную картину всего что произошло. Процесс решения задачи заставляет проявиться ваш темпористический тип и мы расскажем как этот тип увидеть. Самые-самые начальные сведения о темпористике надо всё-таки знать :)
(color: red)[''Как проходит игра:'']
* В игре ''(color: yellow)[$StepsCount ходов]''. В начале игры вы получаете ''(color: yellow)[$StartPackCount]'' случайных событий и каждый ход к ним добавляется ещё одно. Таким образом, вы постепенно приближаетесь к разгадке истории.
* На каждом ходу у вас есть возможность облегчить себе задачу, используя подсказки.
* С помощью подсказки ''(color: yellow)[прошлого]'' вы можете попросить у игры предысторию и характеристику персонажа истории, какого-то места или предмета. Кроме того, ''(color: yellow)[прошлое]'' поможет точно установить, с чего началась и чем закончилась история.
* С помощью подсказки ''(color: yellow)[настоящего]'' вы можете попросить у игры более подробное и честное описание любого события.
Например, у вас есть событие (text-style: "underline")[*Пятачок выстрелил в Винн-Пуха из ружья*]. Вы используете подсказку ''(color: yellow)[настоящего]'' и узнаёте: (text-style: "underline")[*Пятачок выстрелил из игрушечного ружья в воздушный шарик, но попал Винни-Пуха*].
* С помощью подсказки ''(color: yellow)[будущего]'' вы можете выбрать любое событие и попросить у игры, что произошло сразу после него. Кроме того, с помощью ''(color: yellow)[будущего]'' вы можете сравнить 2 события и точно узнать, какое произошло раньше, а какое позже.
Например, у вас есть событие (text-style: "underline")[*Грузовик врезался в машину Мэри*]. Вы не знаете, выжила ли Мэри. Тогда вы используете подсказку ''(color: yellow)[будущего]'' и узнаёте что сразу после произошло событие: (text-style: "underline")[*Мэри поступила в больницу с серьёзными травмами*].
* С помощью подсказки ''(color: yellow)[вечности]'' вы можете запросить у игры причину, почему это событие важно для понимания истории. Возможно также вы узнаете, что именно в данном событии наиболее важно.
Например, у вас есть событие (text-style: "underline")[*Иванка дарит Катарине котёнка*]. Вы используете подсказку ''(color: yellow)[вечности]'' и узнаёте: (text-style: "underline")[*Событие показывает уверенность Иванки, будто она хорошо знает Катарину и её предпочтения, что сыграет важную роль в истории*].
Количество подсказок:
[➜ Прошлое - ]''(color: yellow)[$PCount]''
[➜ Настоящее - ]''(color: yellow)[$NCount]''
[➜ Будущее - ]''(color: yellow)[$FCount]''
[➜ Вечность - ]''(color: yellow)[$ECount]''
(color: red)[''И важные вещи напоследок:'']
* Подсказок больше чем нужно для окончания игры. Выбирайте что использовать, а что отбросить
* Уделите игре время и отмечайте ход рассуждения, иначе не сможете себя протипировать
* Расставлять события по порядку или нет - дело ваше, это не оценивается
* В игре работает справка
[[Начать игру->Первый ход]]
{
(if: (saved-games: ) contains $SaveSlot)
[
(link: "Продолжть старую игру")
[
(load-game:$SaveSlot)
]
]
}{
(display: "Переменные")
(display: "История")
(display: "Макросы")
}{
(set: _list to (range:1,$EventsCount))
(set: $EventsShuffle to (shuffled: ..._list))
}{
(display: "Заголовок хода")
($MiddleTitle: "Случайные стартовые события:")
(for: each _x, ...(range: 1, $StartPackCount))[
(display: "Случайное событие")
(set: _evName to (nth: 1, ...(nth: $RandomEvent, ...$AllEvents)))
* (print: _evName)
]
(display:"Статистика модификаторов")
}
(display: "Подвал хода")
{
(set: $RandomEvent to ($EventsShuffle's 1st))
(set: $EventsShuffle to ($RemoveElement: $EventsShuffle, $RandomEvent))
(if: $LastRequested and ($MyEvents contains $EventsCount))
[
(set: _tail to ($GetSequence: $EventsCount))
(set: _head to ($RemoveElements: $MyEvents, _tail))
(set: $MyEvents to (a: ..._head, $RandomEvent, ..._tail))
]
(else:)
[
(set: $MyEvents to (a: ...$MyEvents, $RandomEvent))
]
}
(text-colour:yellow)[''Осталось подсказок:'']
[➜ Прошлое - ]''$PCount''
[➜ Настоящее - ]''$NCount''
[➜ Будущее - ]''$FCount''
[➜ Вечность - ]''$ECount''{
(display: "Заголовок хода")
(if: ((length of $MyPast) > 0))
[
(print: "Напомнить открытые предыстории...\n")
(click-replace: "Напомнить открытые предыстории...")
[
($MTitle: "Предыстории и характеристики:")
(for: each _p, ...$MyPast)
[
(set: _history to _p of $PastHistory)
(print: _history)
]
]
]
($MiddleTitle: "Выберите событие, на котором будет использована подсказка:")
(set: _pastMenuEnabled to (($PCount > 0) and (not $FirstRequested or not $LastRequested)))
(for: each _idEv, ...$MyEvents)
[
(set: $CurrEvent to _idEv)
(display: "Печать события")
]
(if: _pastMenuEnabled)
[
(print: "\n")
($MiddleTitle: "Или используйте подсказку прошлого для заказа:")
(if: (not $FirstRequested))
[
* [[Первого события истории->Заказ первого события]]
]
(if: (not $LastRequested))
[
* [[Последнего события истории->Заказ последнего события]]
]
]
[["📖 Справка по игре 📖"->Справка]]
(display: "Дебаг")
}
{
(set: _printedEvent to $CurrEvent)
(set: _myFirstEvent to (nth: 1, ...$MyEvents))
(set: _myLastEvent to ($MyEvents's last))
(set:_seq to ($GetSequence: $CurrEvent))
(set: _isKnownFirstEvent to ((_seq contains 1) and $FirstRequested))
(set: _isKnownLastEvent to ((_seq contains $EventsCount) and $LastRequested))
(set: _canUp to (
(not ($CurrEvent is _myFirstEvent))
and
(not _isKnownLastEvent))
)
(set: _canDown to (
(not ($CurrEvent is _myLastEvent))
and
(not _isKnownFirstEvent))
)
(set: $InSeq to ((length of _seq) > 1))
(if: (last of _seq) is (last of $MyEvents))
[
(set: _canDown to false)
]
(if: (1st of _seq) is (1st of $MyEvents))
[
(set: _canUp to false)
]
(if: (1st of _seq) is not $CurrEvent)
[
(set: _canDown to false)
]
(if: (last of _seq) is not $CurrEvent)
[
(set: _canUp to false)
]
(if: (($IsNextLast: $CurrEvent) and $LastRequested))
[
(set: _canDown to false)
]
(if: (($IsPrevFirst: $CurrEvent) and $FirstRequested))
[
(set: _canUp to false)
]
(if: (not _isKnownFirstEvent) and (not _isKnownLastEvent) )
[
(size: 1.5)
[
(if: _canUp)[
(link: " ▲ ")
[
(set: $MovedEvent to _printedEvent)
(goto: "Переместить вверх")
]
]
(else:)[(color: black)(print: " ▲ ")]
(if: _canDown)[
(link: " ▼ ")
[
(set: $MovedEvent to _printedEvent)
(goto: "Переместить вниз")
]
]
(else:)[(color: black)(print: " ▼ ")]
]
]
(set: _eventText to ($GetEventName: $CurrEvent))
(print: " ")
(if: $InSeq)
[
(print: "⛓")
]
(if: $EditEvent)
[
(if: $MovedEvent is _printedEvent)
[
(print: "⬍")
]
(link: _eventText)
[
(set: $CurrEvent to _printedEvent)
[(goto: "Модификаторы события")]
]
]
(else:)
[
(print: _eventText)
]
(print: "\n")
(if: ($MyNow contains _printedEvent))
[
(set: _now to ($GetEventNow: $CurrEvent))
(color:green)
(print: _now)
(print: "\n")
]
(if: ($MyVoid contains _printedEvent))
[
(set: _now to ($GetEventVoid: $CurrEvent))
(color:gray)
(print: _now)
(print: "\n")
]
(if: _isKnownFirstEvent and ($CurrEvent is (last of _seq)))
[
(print: "Так и началась история\n")
]
(if: _isKnownLastEvent and ($CurrEvent is (last of _seq)))
[
(print: "Так всё и закончилось\n")
]
}{
(display: "Алгоритм переместить вниз")
(if: ($Step > $StepsCount))
[(goto: "Финальная расстановка")]
(else:)
[(goto: "Выбор события для изменения")]
}{
(display: "Алгоритм переместить вверх")
(if: ($Step > $StepsCount))
[(goto: "Финальная расстановка")]
(else:)
[(goto: "Выбор события для изменения")]
}{
(set: $Step to ($Step+1))
(display:"Заголовок хода")
(set: $FirstRequested to true)
(set: $PCount to ($PCount - 1))
(set: _isKnown to ($MyEvents contains 1))
(if: _isKnown)
[
($MiddleTitle: "Первое событие истории:")
* (print: ($GetEventName: 1))(print: "\n")
(set: _seq to ($GetSequence: 1))
(set: $MyEvents to ($RemoveElements: $MyEvents, _seq))
(set: $MyEvents to (a: ..._seq, ...$MyEvents))
($MiddleTitle: "Новое случайное событие:")
(display: "Случайное событие")
* (print: ($GetEventName: $RandomEvent))(print: "\n")
]
(else:)
[
(set: $MyEvents to (a: 1, ...$MyEvents))
($MiddleTitle: "Первое событие истории:")
* (print: ($GetEventName: 1))(print: "\n")
]
(set: $EventsShuffle to ($RemoveElement: $EventsShuffle, 1))
}
(display:"Статистика модификаторов")
(display: "Подвал хода"){
(if: ($Step > $StepsCount))
[
(border:"solid")
[
(color:yellow)
(print: "< Ход ")
''Финальный''
(print: " >")
]
]
(else:)
[
(border:"solid")
[
(color:yellow)
(print: "< Ход ")
''$Step''
(color:yellow)
(print: "из ")
''$StepsCount''
(color:yellow)
(print: " >")
]
]
(print: "<br>")
(print: "<br>")
}{
(save-game:$SaveSlot)
(if: (($Step is ($StepsCount + 1)) and $BonusStep))
[
(print:"\n")
''(color:red)(print: "В честь последнего хода - бонус:")''
''(color:red)(print: "Ещё одно случайное событие")''
(display: "Случайное событие")
* (print: ($GetEventName: $RandomEvent))
]
(print:"\n")
(if: ($Step is $FirstTestStep))
[
[[Выбрать подсказку->Выбор события для изменения]]
]
(elseif: ($Step is ($StepsCount + 1)))
[
[[К финальной расстановке->Финальная расстановка]]
]
(else:)
[
[[Выбрать подсказку->Выбор события для изменения]]
]
}
(display: "Дебаг")
{
(set: $Step to ($Step+1))
(display:"Заголовок хода")
(set: $LastRequested to true)
(set: $PCount to ($PCount - 1))
(set: _isKnown to ($MyEvents contains $EventsCount))
(if: _isKnown)
[
($MiddleTitle: "Последнее событие истории:")
* (print: ($GetEventName: $EventsCount))(print: "\n")
($MiddleTitle: "Новое случайное событие:")
(display: "Случайное событие")
* (print: ($GetEventName: $RandomEvent))(print: "\n")
(set: _seq to ($GetSequence: $EventsCount))
(set: $MyEvents to ($RemoveElements: $MyEvents, _seq))
(set: $MyEvents to (a: ...$MyEvents, ..._seq))
]
(else:)
[
(set: $MyEvents to (a: ...$MyEvents, $EventsCount))
($MiddleTitle: "Последнее событие истории:")
* (print: ($GetEventName: $EventsCount))(print: "\n")
]
(set: $EventsShuffle to ($RemoveElement: $EventsShuffle, $EventsCount))
}
(display:"Статистика модификаторов")
(display: "Подвал хода"){
($MiddleTitle: "Выбрано событие:")
(set: _eventText to (nth: 1, ...(nth: $CurrEvent, ...$AllEvents)))
*(print: _eventText)
(print: "\n")
(print: "\n")
[[Выбрать другое событие (⏎ вернуться)->Выбор события для изменения]]
(print: "\n")
(if: (($NCount > 0) and (not ($MyNow contains $CurrEvent))))
[
[[Запросить правду и подробности (настоящее)->Заказ настоящего]] (print: "\n")
]
(else:)
[
(print: "~~Запросить правду и подробности (настоящее)~~\n")
]
(if: (($ECount > 0) and (not ($MyVoid contains $CurrEvent))))
[
[[Запросить причины важности события (вечность)->Заказ вечности]]
(print: "\n")
]
(else:)
[
(print: "~~Запросить, почему событие важно (вечность)~~\n")
]
(if: ($PCount > 0))
[
(set: _past to (nth: 4, ...(nth: $CurrEvent, ...$AllEvents)))
(for: each _pastMode, ...$PastData)
[
(if: _past contains _pastMode)
[
(set: _pastVal to _pastMode of _past)
(set: _linkTitle to
("Запросить предысторию и характеристику по " + _pastVal + " (прошлое)")
)
(if: $MyPast contains _pastMode)
[
(print: ("~~"+_linkTitle+"~~\n"))
]
(else:)
[
(link: (_linkTitle))
[
(set: $CharRequest to _pastMode)
(goto: "Заказ прошлого")
]
(print: ("\n"))
]
]
]
]
(if: ($FCount > 0))
[
[[Запросить то что было сразу после (будущее)->Заказ будущего]] (print: "\n")
(set: _evSeq to ($GetSequence: $CurrEvent))
(set: _addEvents to ($RemoveElements: $MyEvents, _evSeq))
(if: (length of _addEvents) > 0)
[
(link-reveal: "Сравнить с другим событием (будущее)...")
[
(print: "\n")
(for: each _id, ..._addEvents)
[
(set: _compareEvent to _id)
(set: _evText to ($GetEventName: _id))
(set: _linkTitle to (" ➜ " + _evText ))
(link: (_linkTitle))
[
(set: $CompareEvent to _compareEvent)
(goto: "Заказ перестановки")
]
(print: "\n")
]
]
]
]
(else:)
[
(print: "~~Запросить то что было сразу после (будущее)~~\n")
]
(display: "Дебаг")
}{
(set: $Step to ($Step+1))
(display:"Заголовок хода")
(set: $NCount to ($NCount - 1))
(set: $MyNow to (a: ...$MyNow, $CurrEvent))
($MiddleTitle: "Подробности и болеее точное изложение события:")
* (print: ($GetEventName: $CurrEvent))
(print: ($GetEventNow: $CurrEvent))
(print: "\n")
(print: "\n")
($MiddleTitle: "Новое случайное событие:")
(display: "Случайное событие")
* (print: ($GetEventName: $RandomEvent))(print: "\n")
}
(display:"Статистика модификаторов")
(display: "Подвал хода")
{
(set: $Step to ($Step+1))
(display:"Заголовок хода")
(set: $ECount to ($ECount - 1))
(set: $MyVoid to (a: ...$MyVoid, $CurrEvent))
($MiddleTitle: "Причины важности события (что в данном событии важно для истории):")
* (print: ($GetEventName: $CurrEvent))
(print: ($GetEventVoid: $CurrEvent))
(print: "\n")
(print: "\n")
($MiddleTitle: "Новое случайное событие:")
(display: "Случайное событие")
* (print: ($GetEventName: $RandomEvent))(print: "\n")
}
(display:"Статистика модификаторов")
(display: "Подвал хода"){
(set: $Debug to false)
(set: $StartPackCount to 5)
(set: $EventsCount to 24)
(set: $PCount to 4)
(set: $NCount to 4)
(set: $FCount to 4)
(set: $ECount to 4)
(set: $StepsCount to 12)
(set: $BonusStep to true)
(set: $FirstTestStep to 5)
(set: $SaveSlot to "GameTale1")
(set: $GameTitle to "Игра/тест \"Далёкие земли\"")
(set: $Step to 1)
(set: $MyEvents to (a:))
(set: $MyPast to (a:))
(set: $MyNow to (a:))
(set: $MyVoid to (a:))
(set: $Sequences to (a:))
(set: $FirstRequested to false)
(set: $LastRequested to false)
(set: $EditEvent to true)
}{
(set: $PastData to (a: "С", "Г", "М", "Д", "Ц"))
(set: $PastHistory to
(dm:
"С", "''Король Сильвестр''\nКороль Сильвестр XIV, монарх королевства Полной Луны. Прозван Хитрым за свой изощрённый ум и креативный подход к проблемам. Радеет за своё довольно бедное королевство, однако очень ленив и все возникшие трудности решает в самый последний момент. Унаследовал трон от старшего брата, захлебнувшегося вином во время празднования коронации. Недавно отпраздновал пятидесятилетний юбилей. Весит почти сотню кило, имеет слабое сердце. Воспитывает дочь, принцессу Мирабеллу. Других наследников нет, хотя надежды король Сильвестр не теряет.",
"Г", "''Густаво''\nКороль Густаво III-й, монарх королевства Глубокой Воды. Молодой, глупый, неопытный в государственных делах, тщеславный, трусоватый. Едва вступил в права наследования после случайной гибели отца и братьев в горном обвале. Гибели родственников скорее рад, поскольку трон открывает путь его амбициям. Стремится доказать что достоин сидеть на троне, потому что в глубине души сильно сомневается в себе, т.к. королевство Глубокой Воды имеет славную историю и почти все её правители имеют культовый статус.",
"М", "''Мирабелла''\nЕдинственная дочь короля Сильвестра XIV, монарха королевства Полной Луны. Красоту матери не унаследовала, внешностью пошла в отца, крупного мужчину с нелепыми чертами лица. Братьев и сестёр у Мирабеллы нет, отношения с отцом натянутые. Отчасти из-за возраста, отчасти из-за характера обоих. Мирабелла увлекается книгами про чёрную магию, хотя реальных знаний у неё нет. Нрав мизантропический, романтика ей чужда.",
"Д", "''Дракон''\nВолшебное существо, владеет человеческой речью. Когда-то был страшной грозой округи, воровал скот, кошмарил города, принимал дань золотом и девственницами. Однако, уже более века как утомился от социальной жизни, вступил в драконий кризис среднего возраста. Ушёл в добровольное отшельничество, проводит время в думах, месяцами спит. Стал ранимым и сентиментальным.",
"Ц", "''Бродячий цирк''\nЛегендарный бродячий цирк “Вечный Праздник”. Непрерывно гастролирует по континенту уже более полусотни лет, сменив несколько поколений артистов. Специализируется на масштабных шоу, во время которых прикормленные карманники обчищают разинувших рты горожан. После того как “Вечный Праздник” выступал в столице королевства Глубокой Воды с цирковой реконструкцией легенды взятия Чёрной Башни, услугами цирка часто пользуются короли и герцоги для организации празднеств."
)
)
(set: $AllEvents to (a:
(a: "Принцесса королевства Полной Луны Мирабелла достигает того возраста, когда её можно выдать замуж",
"Мирабелла не хочет замуж, но понимает мотивы отца её выдать",
"Однако, выдача Мирабеллы замуж не простая задача",
(dm:"М", "Мирабелле")),
(a: "Потенциальные женихи не очень заинтересованы в союзе с королевством Полной Луны",
"Королевство Полной Луны не богато, а принцесса Мирабелла дурна собой",
"Факт важен тем что необходимо предпринять какие-то действия, чтобы свадьба состоялась"),
(a: "Монарх королевства Полной Луны приглашает молодого короля Густаво из королевства Глубокой Воды",
"Монарх королевства Полной Луны отец Мирабеллы. Он стремится выдать её замуж и видит в Густаво перспективный вариант",
"Важно тем, что именно для короля Густаво у монарха есть предложение, которое он не может предложить никому другому",
(dm:"С", "монарху королевства Полной Луны",
"Г", "королю Густаво")
),
(a: "Монархи королевств Полной Луны и Глубокой Воды приходят к тайному соглашению",
"Отец Мирабеллы предлагает королю Густаву из Глубокой Воды удовлетворить тщеславие и обещает дочь в обмен на союз",
"Важно тем, что соглашение, будучи раскрыто будет постыдно для обоих",
(dm:"C","монарху королевства Полной Луны",
"Г", "монарху королевства Глубокой Воды")
),
(a: "Монарх королевства Полной Луны нанимает знаменитый бродячий цирк",
"Для проведения масштабного городского мероприятия, смысл которого будет сокрыт от горожан",
"Сам цирк не важен, но то что цирк покажет - часть важного плана монарха королевства Полной Луны",
(dm:"C","монарху королевства Полной Луны",
"Ц","бродячему цирку")
),
(a: "Бродячий цирк изготавливает чучело дракона",
"Реалистично выглядящая модель из шкур животных на деревянном каркасе по заказу отца Мирабеллы",
"Наличие этого изделия важно для Густаво",
(dm:"Ц","бродячему цирку")
),
(a: "Бродячий цирк устраивает огненное шоу",
"Горожане не знают что это постановка. Они видят похищение принцессы драконом.",
"Важно, потому что это шоу сыграет свою роль в становлении репутации Густаво",
(dm:"Ц","бродячему цирку")
),
(a: "Слуги монарха королевства Полной Луны прячут Мирабеллу в пещерах",
"По приказу её отца. В этих пещерах живёт дракон, который интересуется происходящим, но решает не вмешиваться",
"Важно, потому что событие свидетельствует об обмане",
(dm:"C","монарху королевства Полной Луны",
"М","Мирабелле")
),
(a: "Густаво клянется убить дракона и отправляется освобождать принцессу в пещеры",
"Он врёт и отправляется освобождать принцессу только для вида",
"Важно, потому что это и было запланировано отцом Мирабеллы",
(dm:"Г","Густаво",
"Д","дракону",
"М","принцессе")
),
(a: "Король Густаво выносит из пещеры драконью голову",
"На самом деле это не настоящая голова дракона, она сделана из дерева, бумаги и медвежьих шкур",
"Важно, потому голова дракона свидетельствует о том что хитрый план удался",
(dm:"Г","королю Густаво",
"Д","дракону")
),
(a: "Король Густаво и принцесса Мирабелла играют свадьбу",
"Во время праздника Густаво непрерывно хвастается победой над драконом, а с Мирабеллой держится холодно",
"Событие важно лишь отцу Мирабеллы, для остальных это лишь формальность",
(dm:"Г","королю Густаво",
"М","принцессе Мирабелле")
),
(a: "Густаво не разрешает Мирабелле покидать дворец, а сам ведёт разгульную жизнь",
"Мирабелла неоднократно пытается убежать",
"Важно, потому что показывает значимость брака для Густаво",
(dm:"Г","Густаво",
"М","Мирабелле")
),
(a: "Пролетая над дворцом Дракон видит грустную Мирабеллу",
"На самом деле дракон давно и скрыто наблюдает за Мирабеллой",
"Важно, потому что вскрывает мотивацию дракона к действию",
(dm:"Д","дракону",
"М","Мирабелле")
),
(a: "Дракон похищает Мирабеллу из внутреннего двора замка",
"Свидетелей похищения оказывается немного. Дракон старается не навредить Мирабелле",
"Самый важный момент, переворачивающий историю с ног на голову",
(dm:"Д","дракону",
"М","Мирабелле")
),
(a: "Король Густаво игнорирует произошедшее и не предпринимает никаких действий",
"Более того, несмотря на городские слухи, он отрицает что дракон существует",
"Важно, потому что показывает истинный характер Густаво",
(dm:"Г","королю Густаво")
),
(a: "Дракон несколько раз пролетает над королевством Глубокой Воды, сея панику",
"Он старается чтобы его увидело как можно больше людей",
"Важно, потому что дракону нужны именно демонстративные действия для доказательства того что он, дракон, хочет донести",
(dm:"Д","дракону")
),
(a: "Дракон объясняет Мирабелле, что она похищена для своего же блага",
"Он говорит что Мирабелла не нужна Густаво, поскольку тот не спешит её спасать. А он, дракон, по настоящему любит Мирабеллу",
"Важно, потому что впервые сподвигает Мирабеллу на активные действия",
(dm:"Д","дракону",
"М","Мирабелле")
),
(a: "Густаво снаряжает войско рыцарей",
"Он боится, но в то же время уязвлён",
"Здесь важна вынужденность этого действия для Густаво, а также то что формальная победа ему более важна чем подвиг",
(dm:"Г","Густаво")
),
(a: "Ночью Мирабелла сбегает из логова дракона",
"Дракон охранял Мирабеллу не слишком усердно. Убегая она мысленно посылает изощрённые проклятия дракону, Густаво и своему отцу, благо есть за что",
"Важно, потому что это первый самостоятельный поступок Мирабеллы, выводящий её в активные персонажи истории",
(dm:"М","Мирабелле",
"Д","дракону")
),
(a: "Между войском Густаво и драконом происходит кровавый бой",
"Пока Густаво отсиживается в тылу, его отряд погибает. Но дракон тоже получает множество ран.",
"Важно, потому что создаёт опасную ситуацию для жизни обоих и конфликт не может быть разрешён мирно",
(dm:"Г","Густаво",
"Д","дракону")
),
(a: "Густаво в тяжелом бою убивает дракона",
"На самом деле тяжёлый бой уже отгремел. Густаво выходит из укрытия и добивает и так умирающего дракона, но получает сильнейший удар хвостом",
"Важно, потому что выводит дракона из игры, хотя для Густаво это ничего не меняет",
(dm:"Г","Густаво",
"Д","Дракону")
),
(a: "Густаво умирает от ран",
"В полном одиночестве среди погибших членов своего отряда, рядом с истерзанным телом дракона",
"Важно, потому что это событие выводит в протагонисты истории другого персонажа и содержит толику справедливости",
(dm:"Г","Густаво")
),
(a: "Мирабелла становится правящей королевой в королевстве Глубокой Воды",
"Чему все несказанно рады из-за надоевшей глупости и бахвальства Густаво",
"Важно, потому что Мирабелла наконец-то что-то получает",
(dm:"М","Мирабелле")
),
(a: "Мирабелла наследует трон в королевстве Полной Луны и становится главой двух королевств",
"Её отец умирает на охоте и Мирабелла объединяет под своим руководством два королевства",
"Важно, потому что является эпилогом истории",
(dm:"М","Мирабелле")
)
))
}{
(set: $Step to ($Step+1))
(display:"Заголовок хода")
($MiddleTitle: "Предыстория:")
(set: $PCount to ($PCount - 1))
(set: $MyPast to (a: ...$MyPast, $CharRequest))
(set: _history to $CharRequest of $PastHistory)
(print: _history)
(print: "\n")
(print: "\n")
($MiddleTitle: "Новое случайное событие:")
(display: "Случайное событие")
* (print: ($GetEventName: $RandomEvent))(print: "\n")
}
(display:"Статистика модификаторов")
(display: "Подвал хода")
{
(set: $Step to ($Step+1))
(display:"Заголовок хода")
(set: $FCount to ($FCount - 1))
(set: _seq to ($GetSequence: $CurrEvent))
(set: _last to (last of _seq))
(set: _hasFinish to true)
(set: _sortedEvents to (sorted: ...$MyEvents))
(set: _sortedEvents to (find: _x where (_x > _last), ..._sortedEvents))
(set: _findSpace to false)
(for: each _x, ..._sortedEvents)
[
(if: not _findSpace)
[
(if: _x is (_last + 1))
[
(set: _seq to (a: ..._seq, _x))
(set: _last to _x)
]
(else:)
[
(set: _findSpace to true)
]
]
]
(if: _last is not $EventsCount)
[
(set: _seq to (a: ..._seq, _last+1))
]
(if: (length of _seq) > 1)
[
(set: _newSeq to (a:))
(set: _sFirst to (1st of _seq))
(set: _sLast to (last of _seq))
(for: each _ns, ...$Sequences)
[
(if:
(
(_sFirst > (1st of _ns))
or
(_sLast < (last of _ns))
)
)
[(set: _newSeq to (a: ..._newSeq, _ns))]
]
[(set: $Sequences to (a: ..._newSeq, _seq))]
]
($MiddleTitle: "Последовательность событий:")
(for: each _id,..._seq)
[
* (print: "⛓")(print: ($GetEventName: _id))(print: "\n")
]
(set: $MyEvents to ($InsertSequence: _seq))
(if: _last is $EventsCount)
[
(set: $LastRequested to true)
($MiddleText: "Это последнее событие истории\n")
($MiddleTitle: "Новое случайное событие:")
(display: "Случайное событие")
* (print: ($GetEventName: $RandomEvent))(print: "\n")
]
(else:)
[
(set: $EventsShuffle to ($RemoveElements: $EventsShuffle, $MyEvents))
]
}
(display:"Статистика модификаторов")
(display: "Подвал хода"){
(set: $GetEventName to
(macro: num-type _id,
[
(set: _evName to (nth: 1, ...(nth: _id, ...$AllEvents)))
(output-data: _evName)
]
)
)
(set: $GetEventNow to
(macro: num-type _id,
[
(set: _evName to (nth: 2, ...(nth: _id, ...$AllEvents)))
(output-data: _evName)
]
)
)
(set: $GetEventVoid to
(macro: num-type _id,
[
(set: _evName to (nth: 3, ...(nth: _id, ...$AllEvents)))
(output-data: _evName)
]
)
)
(set: $MiddleTitle to
(macro: str-type _str,
[
(output:)+(color:yellow)[''_str''<br>]
]
)
)
(set: $MTitle to
(macro: str-type _str,
[
(output:)+(color:yellow)[''_str'']
]
)
)
(set: $Title to
(macro: str-type _str,
[
(output:)+[(border:"solid")[(color:yellow)[''< _str >'']]<br><br>]
])
)
(set: $MiddleText to
(macro: str-type _str,
[
(output:)+(color:yellow)[_str<br>]
]
)
)
(set: $GetSequence to
(macro: num-type _id,
[
(set: _seq to (find: _x where (_x contains _id),...$Sequences))
(if: length of _seq is 1)
[
(set: _seq to 1st of _seq)
]
(else:)
[
(set: _seq to (a: _id))
]
(output-data: _seq)
]
)
)
(set: $NextEvent to
(macro: num-type _id,
[
(set: _ret to 0)
(set: _find to false)
(set: _seq to ($GetSequence: _id))
(for: each _x, ...$MyEvents)
[
(if: _seq contains _x)
[
(set: _find to true)
]
(elseif: _find)
[
(set: _ret to _x)
(set: _find to false)
]
]
(output-data: _ret)
]
)
)
(set: $IsNextLast to
(macro: num-type _id,
[
(set: _next to ($GetSequence: ($NextEvent: _id)))
(output-data: (last of _next) is $EventsCount)
])
)
(set: $PrevEvent to
(macro: num-type _id,
[
(set: _ret to 0)
(set: _find to false)
(set: _seq to ($GetSequence: _id))
(for: each _x, ...$MyEvents)
[
(if: _seq contains _x)
[
(set: _find to true)
]
(elseif: not _find)
[
(set: _ret to _x)
]
]
(output-data: _ret)
]
)
)
(set: $IsPrevFirst to
(macro: num-type _id,
[
(set: _prev to ($GetSequence: ($PrevEvent: _id)))
(output-data: (1st of _prev) is 1)
])
)
(set: $HasSequence to
(macro: num-type _id,
[
(set: _len to length of ($GetSequence: _id))
(output-data: _len > 1)
]
)
)
(set: $RemoveElement to
(macro: array-type _arr, num-type _id,
[
(output-data:
(find: _x where (_x is not _id),..._arr)
)
]
)
)
(set: $RemoveElements to
(macro: array-type _arr, array-type _seq,
[
(output-data:
(find: _x where (not(_seq contains _x)),..._arr)
)
]
)
)
(set: $StringArray to
(macro: array-type _arr,
[
(set: _ret to "")
(for: each _x, ..._arr)
[
(if: _ret is "")
[
(set: _ret to (str:_x))
]
(else:)
[
(set: _ret to _ret+";"+(str:_x))
]
]
(output-data: _ret)
]
)
)
(set: $InsertSequence to
(macro: array-type _seq,
[
(set: _last to last of _seq)
(if: _last is $EventsCount)
[
(set: _newSeq to ($RemoveElements: $MyEvents, _seq))
(output-data: (a: ..._newSeq, ..._seq))
]
(else:)
[
(set: _first to 1st of _seq)
(set: _before to (a:))
(set: _after to (a:))
(set: _find to false)
(for: each _id, ...$MyEvents)
[
(if: _id is _first)
[
(set: _find to true)
]
(elseif: _find)
[
(if: not (_seq contains _id))
[
(set: _after to (a: ..._after,_id))
]
]
(else:)
[
(if: not (_seq contains _id))
[
(set: _before to (a: ..._before,_id))
]
]
]
(output-data: (a: ..._before, ..._seq,..._after))
]
]
)
)
}{
(display: "Настройки игры")
(display: "Рандомайзер")
(set: $MyEvents to (a: 4,8,10,11,17,18,20))
(print: $MyEvents)(print:"\n")
(set: $Sequences to (a: (a: 10, 11), (a: 17, 18)))
(set: $MovedEvent to 10)
(display: "Алгоритм переместить вниз")
(print: $MyEvents)(print:"\n")
}{
(set: _seq to ($GetSequence: $MovedEvent))
(set: _beforeArray to (a:))
(set: _tailArray to (a:))
(set: _isToAfter to false)
(for: each _id, ...$MyEvents)
[
(if: _seq contains _id)
[
(set: _isToAfter to true)
]
(elseif: _isToAfter)
[
(set: _tailArray to (a: ..._tailArray, _id))
]
(else:)
[
(set: _beforeArray to (a: ..._beforeArray, _id))
]
]
(set: _fistAfter to (1st of _tailArray))
(set: _seqNext to ($GetSequence: _fistAfter))
(set:_afterArray to ($RemoveElements: _tailArray, _seqNext))
(set: $MyEvents to (a: ..._beforeArray, ..._seqNext, ..._seq, ..._afterArray))
}{
(set: _seq to ($GetSequence: $MovedEvent))
(set: _seq to (reversed: ..._seq))
(set: _beforeArray to (a:))
(set: _tailArray to (a:))
(set: _isToAfter to false)
(for: each _id, ...(reversed: ...$MyEvents))
[
(if: _seq contains _id)
[
(set: _isToAfter to true)
]
(elseif: _isToAfter)
[
(set: _tailArray to (a: ..._tailArray, _id))
]
(else:)
[
(set: _beforeArray to (a: ..._beforeArray, _id))
]
]
(set: _fistAfter to (1st of _tailArray))
(set: _seqNext to ($GetSequence: _fistAfter))
(set: _seqNext to (reversed: ..._seqNext))
(set:_afterArray to ($RemoveElements: _tailArray, _seqNext))
(set: $MyEvents to (a: ..._beforeArray, ..._seqNext, ..._seq, ..._afterArray))
(set: $MyEvents to (reversed: ...$MyEvents))
}{
(display: "Настройки игры")
(display: "Рандомайзер")
(set: $MyEvents to (a: 4,8,9,10,11,17,20))
(print: $MyEvents)(print:"\n")
(set: $Sequences to (a: (a: 10, 11),(a: 8, 9)))
(set: $MovedEvent to 11)
(display: "Алгоритм переместить вверх")
(print: $MyEvents)(print:"\n")
}{
(set: $Step to ($Step+1))
(set: $FCount to ($FCount - 1))
(display:"Заголовок хода")
($MiddleTitle: "Событие")
* (print: ($GetEventName: $CurrEvent))
(if: $CurrEvent > $CompareEvent)
[
($MiddleText: "произошло после события")
]
(else:)
[
($MiddleText: "произошло до события")
]
* (print: ($GetEventName: $CompareEvent))
($MiddleTitle: "Новое случайное событие:")
(display: "Случайное событие")
(set: _evName to (nth: 1, ...(nth: $RandomEvent, ...$AllEvents)))
* (print: _evName)(print: "\n")
}
(display:"Статистика модификаторов")
(display: "Подвал хода")
{
(display: "Макросы")
($MiddleTitle: "Hello!")
($MiddleTitle: "By!")
}{
($Title: "Финальная расстановка")
($MiddleTitle: "Вспомните события истории:")
(set: $EditEvent to false)
(for: each _idEv, ...$MyEvents)
[
(set: $CurrEvent to _idEv)
(display: "Печать события")
]
(if: ((length of $MyPast) > 0))
[
(print: "\n")
($MiddleTitle: "Вспомните предыстории и характеристики:")
(for: each _p, ...$MyPast)
[
(set: _history to _p of $PastHistory)
(print: _history)
(print: "\n")
]
]
(print: "\n")
($MiddleTitle: "Открыто событий:")
''(print: length of $MyEvents)''(print: " из ")''(print: length of $AllEvents)''
(print: "\n\n")
(color:red)(print: "Скорее всего часть истории оказалась вам недоступной. Это нормально, в жизни мы тоже редко располагаем полной информацией. Составьте для себя образную картину происходящего из того что вы уже знаете.\n")
($MTitle: "И только потом переходите к полной истории\n")
[[Смотреть всю историю->Вся история]]
}
{
(display: "Заголовок всей истории")
($MiddleTitle: "История:\n")
(for: each _idEv, ...(range:1,$EventsCount))
[
(print: ($GetEventName: _idEv))
(print: "\n")
(color:green)
(print: ($GetEventNow: _idEv))
(print: "\n")
(color:gray)
(print: ($GetEventVoid: _idEv))
(print: "\n")
(print: "\n")
]
(print: "\n")
($MiddleTitle: "Все предыстории и характеристики:\n")
(for: each _p, ...$PastData)
[
(set: _history to _p of $PastHistory)
(print: _history)
(print: "\n")
(print: "\n")
]
(display: "Статистика модификаторов")
(print: "\n\n")
(color:green)
(print: "На этом всё! Запишите, какие подсказки вы использовали, иногда это помогает в расшифровке типа.\n")
(print: "Методика типрования: ")
<mark><a href='https://youtu.be/57S4iBmhYM4' target='_blank'>Смотреть видео</a></mark>
(print: "\n\n")
(link: "Начать заново")
[
[(goto: "Старт")]
]
}
{
(border:"solid")
[
(color:yellow)
[''(print: "< История целиком >")'']
]
(print: "<br>")
(print: "<br>")
}{
(border:"solid")
[
(color:yellow)
(print: "< Интервью. Вопрос ")
''$TestStep''
(color:yellow)
(print: "из ")
''$TestCount''
(color:yellow)
(print: " >")
]
(print: "<br>")
(print: "<br>")
}{
(display: "Макросы")
(set: $MyEvents to (a: 10, 13, 14, 20))
(set: $Sequences to (a: (a: 13, 14)))
(set: _next to ($NextEvent: 10))
(set: _next2 to ($NextEvent: 13))
}
_next
_next2
{
(display: "Настройки игры")
(display: "Макросы")
(set: $CurrEvent to 5)
(set: $MyEvents to (a: 4, 5, 7, 10, 12))
(set: $Sequences to (a:
))
(set: $FirstRequested to false)
(set: $LastRequested to false)
(set: $EditEvent to false)
}
(display: "Печать события")$head
(cycling-link: bind $head's hair, "Black", "Brown", "Blonde", "Red", "White")
[[Пустой тест]]{
(display: "Настройки игры")
(display: "Рандомайзер")
(set: $LastRequested to true)
(set: $MyEvents to (a: 10, 12, 5, 24))
(set: $EventsShuffle to ($RemoveElements: $EventsShuffle, $MyEvents))
(goto: "Выбор события для изменения")
}(if: $Debug)[
---
События ($StringArray: $MyEvents)
Остаток ($StringArray: $EventsShuffle)
Последовательности ($StringArray: $Sequences)
FirstRequested $FirstRequested
LastRequested $LastRequested
]
{
(display: "Настройки игры")
(set: $MyEvents to (a: 10, 12, 5, 24))
(set: _x to ($InsertSequence: (a: 24)))
(print: ($StringArray: _x))
}{
($Title: "Справка по возможностям игры")
($MiddleTitle: "Общиее сведения:")
* Цель игры - составить в голове образную картину происходящего: что просходило в этой истории.
* Каждый ход вы узнаёте новое событие истории, но не всегда будете понимать, в каком месте истории оно находится.
* Ход начинается с выбора подсказки. В игре избыточное количество подсказок, вы не сможете использовать их все, придётся выбирать.
* Прогресс игры сохраняется, после перезапуска игры вы сможете продолжить старую игру, выбрав пункт "Продолжть старую игру".
(print: "\n\n")
($MiddleTitle: "Основные обозначения:")
* (size: 3)[(print: "▲ ▼\n")]
(print: "Кнопки перемещения события\n")
(color: red)[(print: "Расставляйте события в нужном порядке для своего удобства. Вы делаете это для себя, игра не оценивает, правильно вы построили хронологию или нет.")]
* (size: 3)[(print: "⬍\n")]
(print: "Последнее перемещённое событие. Просто чтобы не потерять его в общем списке.")
* (size: 3)[(print: "⛓\n")]
(print: "Отметка для событий, идущих строго друг за другом (известны после использования подсказки будущего)")
(print: "\n\n")
($MiddleTitle: "На экране выбора события вы можете:")
* Узнать первое или последнее событие истории, если у вас остались подсказки прошлого. Эти события займут своё место в списке и будут не перемещаемыми.
* Вы можете выбрать само событие и тогда вам откроется выбор подсказок, связанных с этим конкретным событием.
(print: "\n\n")
($MiddleTitle: "Подсказки по конретному событию:")
* Все возможности доступны только при наличии неиспользованных подсказок.
* Посказка настоящего работает позволяет узнать более подробное и честное описание любого события. Например, у вас есть событие (text-style: "underline")[*Пятачок выстрелил в Винн-Пуха из ружья*]. Вы используете подсказку ''(color: yellow)[настоящего]'' и узнаёте: (text-style: "underline")[*Пятачок выстрелил из игрушечного ружья в воздушный шарик, но попал Винни-Пуха*].
* Посказка вечности поможет узнать у игры причину, почему это событие важно для понимания истории. Возможно также вы узнаете, что именно в данном событии наиболее важно. Например, у вас есть событие (text-style: "underline")[*Иванка дарит Катарине котёнка*]. Вы используете подсказку ''(color: yellow)[вечности]'' и узнаёте: (text-style: "underline")[*Событие показывает уверенность Иванки, будто она хорошо знает Катарину и её предпочтения, что важно для истории*]
* Если в событии упомянут важный персонаж, место или предмет, то вы сможете запросить его историю и характеристику. Позже эта информация всегда будет доступна на экране выбора события (см. "Напомнить открытые предыстории").
* Вы можете запросить следующее по хрнологии событие (см. "Запросить то что было сразу после"). Идущие подряд события отмечатся в общем списке символом "⛓". Если по каким-то причинам игра не сможет выдать вам следующее событие (например, вы упёрлись в конец истории), то игра предупредит об этом и выдаст случайное событие.
* Вы можете сравнить выбранное событие с другим, уже известным вам событием, раскрыв список "сравнить с другим событием". Тогда вы сможете узнать, какое из двух событий произошло раньше, а какое позже. Результат сравнения вам придётся запомнить, игра его не сохраняет.
(print: "\n\n")
[[Вернуться к игре->Выбор события для изменения]]
}{
(display: "Настройки игры")
(display: "Справка")
}