Использование переменных
Переменные по зволяют хранить данные, которые могут изменяться в зависимости от действий игрока и влиять на дальнейшее развитие сюжета. В прошлый раз мы запомнили выбор нашего главного героя и ввели переменную его здоровья. Теперь давайте поговорим о том, как использовать переменные в вашей истории.
Давайте предположим что в конце нашего побега всё прошло хорошо и нам нужно приступать к первой миссии. Так как это новый логический блок давайте создадим новый файл mission.yarn
и добавим в него ноду с checkpoint_name.
title: mission
checkpoint_name: "Первая миссия"
---
===
В конце нод в файле escape.yarn
добавим команду <<jump mission>>
чтобы связать их с новой нодой.
Кивки
Кивки - это способ показать игроку, что его действия влияют на развитие сюжета. Даже если это не совсем так. Давайте добавим кивки в нашу историю.
Например мы можем упомянуть о пути, который мы выбрали в начале истории. Для этого добавим в начало ноды mission
следующий текст:
title: mission
checkpoint_name: "Первая миссия"
---
<<if $escape_choice == "ventilation">>
Спасибо, бежать через вентиляцию было хорошим ходом.
<<elseif $escape_choice == "scaffolding">>
В следующий раз лучше не выбираться через строительные леса. Там было жарко.
<<endif>>
===
Тут мы используем конструкцию <<if>>
чтобы проверить значение переменной escape_choice
и в зависимости от результата показать разные сообщения. Эта конструкция никак не влияет на ход сюжета, но позволяет игроку почувствовать себя частью истории.
Варианты ответов
...
Ну что, пора готовиться к следующей миссии?
-> Пришли мне план операции
-> Для начала сходи в медпункт, тебе нужно восстановиться <<if $health < 100>>
Ok, скоро буду
<<set $health = 100>>
<<wait 10>>
Порядок, сейчас скину тебе подробности операции
В этом примере мы добавили вариант ответа, который зависит от значения переменной health
. Если здоровье агента меньше 100, то мы можем отправть его в медпункт и восстановится. После этого он сможет продолжить выполнение миссии. Игрок не увидит этот вариант ответа, если здоровье агента полное. Также мы не стали добавлять отдельную ноду для этого, так как это короткое действие и если мы просто напишем его под вариантом ответа, то это не ухудшит читаемость кода.
Это простые примеры работы с переменными вы можете настраивать ход сюжета намного тоньше, добавляя новые переменные и условия. Например, вы можете добавить переменную money
и в зависимости от её значения предлагать игроку разные варианты действий. Или добавить переменную weapon
и в зависимости от того, какое оружие у агента, менять ход сюжета. Возможностей много, и это позволяет вам создавать уникальные и интересные истории.