{
(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 4)
(set: $EventsCount to 20)
(set: $PCount to 4)
(set: $NCount to 4)
(set: $FCount to 4)
(set: $ECount to 4)
(set: $StepsCount to 12)
(set: $BonusStep to false)
(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:
"В", "''Владислав''\n38 лет, муж красавицы Златы, отец двух сыновей - Януша и Стефана. Ревнив и мелочен, однако любит свою семью. Мало образован, но по-своему умён, а также эмоционален и склонен драматизировать. В юности соперничал за внимание Златы со своим соседом Казимиром. Сейчас живёт в большом деревенском доме, занимается разведением скота. Помимо дома Владиславу досталась в наследство очень дорогая семейная реликвия, однако, ещё 18 лет назад ценность была украдена.",
"К", "''Казимир''\n38 лет, сосед Владислава. Когда-то учился в городе на художника, но вернулся в деревню чтобы ухаживать за больной матерью, поскольку лечение требовало времени и денег. В юности добивался расположения Златы, однако из-за расследования кражи, в которой обвинялся Казимир, Злата не стала с ним сближаться. До потери репутации, при жизни матери, Казимир был хулиганом и сорви-головой, после стал угрюмым и грубым. Сейчас живёт один в деревенском доме. По сравнению с другими жителями деревни беден. Занимается столярным делом и мелким ремонтом.",
"П", "''Золотой перстень''\nСемейная реликвия, перешедшая по наследству Владиславу. Как ювелирное изделие золотой перстень не так уж дорог, но в купе с антикварной ценностью его стоимость весьма солидна. По семейному преданию, перстень получил пра-прадед Владислава за спасение жизни местного герцога, хотя дарственную время не сохранило. 18 лет назад семейная реликвия была украдена. Владислав обвинил в краже соседа Казимира. Казимира арестовали, но затем выпустили из-за недостатка улик.",
"З", "''Злата''\nЗлате 36 лет. Замужем за Владиславом, мать Януша и Стефана. Живёт в той же деревне где и выросла, вместе с мужем занимается разведением скота. Рано вышла замуж. Не очень довольна своим браком и считает что могла бы добиться большего. От природы красива, в юности не было отбоя от поклонников. До того как выйти замуж некоторое время встречалась с Казимиром, ныне соседом.",
"Я", "''Януш''\nМладший брат Стефана, сын Владислава и Златы. Янушу 7 лет. Для своего возраста маловат, но надеется ещё вырасти. Терпелив, любознателен, имеет слишком богатое воображение, много читает и мечтает.",
"С", "''Стеффан''\nСтарший брат Януша, сын Владислава и Златы. Не очень умён, однако мужественен и решителен. Имеет обострённое чувство справедливости. Физически крепок, высок ростом, издалека можно принять за взрослого. Только что отпраздновал совершеннолетие и собирается выучиться на кузнеца."
)
)
(set: $AllEvents to (a:
(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: "Владислав спускается к себе в подвал и откапывает золотой перстень",
"Который был закопан 18 лет назад",
"Важно, потому что вскрывает главную ложь истории",
(dm:"П", "золотому перстню", "В", "Владиславу")
),
(a: "Владислав пробирается в дом Казимира чтобы выполнить свой план",
"Владислав думает, что Казимир сейчас в полиции. Его план - подбросить Казимиру золотой перстень.",
"Важно, потому что выдаёт во Владиславе главного героя истории",
(dm:"К", "Казимиру", "В", "Владиславу")
),
(a: "Владислав достаёт перстень и открывает тайник соседа. В тайнике он видит портреты своей жены",
"Владислав достаёт перстень из кармана и собирается оставить его в тайнике соседа",
"Важно потому что указывает на тайны обоих соседей",
(dm:"П", "перстню", "В", "Владиславу", "К", "Казимиру", "З", "жене")
),
(a: "Казимир приводит Злату в свой дом и они обнаруживают мужа Златы Владислава",
"Злата не хотела приходить, но Казимир сказал что будет лучше, если Злата сама всё увидит. Встреча оказалась неожиданной для всех участников.",
"Важно, потому что теперь все трое узнают правду, которую прежде не знали",
(dm:"В", "Владиславу", "К", "Казимиру", "З", "Злате")
),
(a: "Владислав признаётся, что собирался подбросить улику",
"Он не планировал это, но был застигнут врасплох и не совладал с эмоциями",
"Важно, потому что закрывает его арку и открывает Казимиру новые возможности",
(dm:"В", "Владиславу")
),
(a: "Казимир показывает Злате её портреты и признаётся в своих чувствах",
"Казимир рисовал их последние 18 лет",
"Важно, потому что окончательно разрешает сомнения Златы относительно Владислава",
(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: "Справка")
}