NarraLeaf

条件分岐

If、ElseIf、Else ブロックでストーリーを分岐させる `Condition` クラス

Condition を使うと、ストーリーの中に条件分岐を作成できます。

Condition
    .If((ctx) => {
        return // ここに条件を記述
    }, [
        character1.say`the condition is true`,
    ])

    .Else([
        character1.say`the condition is false`,
    ])

多くの場合、フラグの判定や変数の値の確認を行いたくなるでしょう。これには Persistent を使用します。

type PersistentData = {
    coin: number;
    flag: boolean;
    hobby: string;
};

const persis = new Persistent<PersistentData>("persis", {
    coin: 0,
    flag: false,
    hobby: "coding",
});

// プレイヤーが十分なコインを持っているか確認
Condition
    .If(persis.evaluate("coin", (coin) => coin < 50), [
        character1.say("you don't have enough coins"),
    ])

// プレイヤーがフラグを持っているか確認
Condition
    .If(persis.isTrue("coin"), [
        character1.say("you have the flag"),
    ])

// プレイヤーが趣味を持っているか確認
Condition
    .If(persis.equals("hobby", "coding"), [
        character1.say("you like coding"),
    ])

注意: スクリプトを正しく理解するために、これらのメソッドを誤った順序で呼び出すとエラーがスローされることに注意してください。

例えば、If より前に ElseIf を呼び出すことはできません。

静的メソッド

If

  • condition: Lambda | LambdaHandler<boolean> - チェックする条件。条件が真の場合、アクションが実行されます。詳細は LambdaLambdaHandler を参照してください。
  • action: ActionStatements - ActionStatements
Condition.If(({ $ }) => {
    return ($("name").get("coin") || 0) >= 10;
}, [
    character1.say("you have enough money")
])

公開メソッド

constructor

チェーン可能なメソッド

ElseIf

  • condition: Lambda | LambdaHandler<boolean>
  • action: ActionStatements - ActionStatements

Else

このページの目次