Verse では、ブール値の 型 として logic を使用するため、logic の値は true と false の 2 つのみになります。
Verse コードで使用した場合、true と false はどちらもロジック リテラル となります。
次の例は、ロジック リテラル false で 初期化した、TargetLocked という名前のロジック 変数 の作成方法を示したものです。
var TargetLocked : logic = false
ロジック演算
logic 型は、クエリ 演算 と 比較 演算をサポートします。
クエリ
クエリ式は、演算子 ? (クエリ) を使用して logic 値が true かどうかをチェックします。logic 値が true ではなく false の場合、式は失敗します。
# ターゲットがロックされた場合に、ターゲットロック アイコンを表示するかどうかを指定します
if (TargetLocked?):
ShowTargetLockedIcon()
クエリ演算の詳細については、「演算子」を参照してください。
比較
比較演算では、失敗する可能性がある 演算子 = を使用して 2 つのロジック値が等しいかどうかをテストするとともに、失敗する可能性がある演算子 <> でそれらの値が異なるかどうかをテストできます。
たとえば、以下のサンプル コードでは、プレイヤーが武器を装備しているもののターゲットがないか、ターゲットがある一方でプレイヤーが武器を装備していない場合に「実行不可能なアクション」アイコンを表示させます。これは、2 つの係数を表す logic 値を比較することで表現できます。
- 両方が false の場合、プレイヤーは攻撃しようとしていないため、このアイコンは表示されません。
- 両方が true の場合、プレイヤーは攻撃できるため、このアイコンは表示されません。
# デモ目的でロジック変数を初期化します。
var TargetLocked : logic = false
var WeaponEquipped : logic = true
# 「実行不可能なアクション」アイコンが適切かどうかを判断します。
if (WeaponEquipped <> TargetLocked):
# プレイヤーが攻撃しようとしているように見えますが、武器かターゲットのいずれかが不足しているので
# アイコンが表示される必要があります。
ShowUnavailableIcon()
比較演算の詳細については、「演算子」を参照してください。
失敗する可能性がある式をロジックに変換する
logic{failable-expression}を使用して、失敗する可能性がある式を logic 型に変換することができます (failable-expression とは 失敗する可能性がある式 です。
次の例では、失敗する可能性がある式 GetRandomInt(0, MineFrequency) <> 0 は、ランダム整数が 0 の場合は false に、それ以外の場合は true に、logic 値が変換されます。
IsMined := logic{GetRandomInt(0, MineFrequency) <> 0}
標準ライブラリ
標準ライブラリ には、ロジック値の作成と使用に役立つ関数が用意されています。これらの関数の詳細については、「Verse API リファレンス」を参照してください。
持続可能型
ロジック値は持続可能な値です。そのため、モジュールスコープの weak_map 変数で使用すると、ゲーム セッションの間中、その値を持続できます。Verse における持続性の詳細については、「Verse で持続データを使用する」を参照してください。