В языке Verse тип logic используется для хранения булевых значений, поэтому для переменных этого типа возможны только два значения: true и false.
И true, и false являются логическими литералами, когда используются в коде Verse.
Ниже приведён пример создания логической переменной с именем TargetLocked, инициализированной логическим литералом false:
var TargetLocked : logic = false
Логические операции
Тип переменных logic поддерживает операции запросов и операции сравнения.
Запросы
В выражениях запроса используется оператор ? (запрос) для проверки, содержит ли переменная типа logic значение true. Если значением переменной типа logic будет false, выражение завершится с ошибкой.
# Определяем, показывать ли значок захвата цели, если цель захвачена
if (TargetLocked?):
ShowTargetLockedIcon()
Более подробную информацию о запросах см. в разделе Операторы.
Сравнение
В операциях сравнения можно использовать оператор =, допускающий возможность ошибки, для проверки равенства двух логических значений, и оператор <> (также с возможностью ошибки) для проверки неравенства.
Например, приведённый ниже код отображает значок «Недоступное действие», если игрок взял в руки оружие, но не имеет цели, или имеет цель, но не взял оружие. Это можно сделать путём сравнения значений переменных типа logic, представляющих эти два условия:
- Если оба значения ложны, вы не увидите значок, потому что игрок не пытается атаковать.
- Если оба значения истинны, вы не увидите значок, потому что игрок может атаковать.
# Инициализируем логические переменные для демонстрации.
var TargetLocked : logic = false
var WeaponEquipped : logic = true
# Определяем, нужно ли отображать значок «Недоступное действие».
if (WeaponEquipped <> TargetLocked):
# Значок должен появиться, так как игрок пытается
# атаковать, но у него нет либо оружия, либо цели.
ShowUnavailableIcon()
Другие операции сравнения описаны в разделе Операторы.
Приведение выражения с возможной ошибкой к логическому типу
Вы можете привести выражение с возможной ошибкой к типу logic при помощи выражения logic{failable-expression}, где failable-expression — это выражение с возможной ошибкой.
В следующем примере выражение с возможной ошибкой GetRandomInt(0, MineFrequency) <> 0 приводится к типу logic, а именно к значению false, если случайное целочисленное значение равно 0; в противном случае оно приводится к значению true.
IsMined := logic{GetRandomInt(0, MineFrequency) <> 0}
Стандартная библиотека
Стандартная библиотека предоставляет доступ к функциям, помогающим создавать и использовать логические значения. Более подробную информацию об этих функциях см. в Справочнике по API Verse.
Сохраняемый тип
Логические значения являются сохраняемыми. Это означает, что вы можете использовать их в переменных weak_map, входящих в область видимости модуля, и их значения будут сохраняться в течение всех игровых сессий. Подробнее о сохраняемых элементах в Verse см. в статье Использование сохраняемых данных в Verse.