条件分岐
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>- チェックする条件。条件が真の場合、アクションが実行されます。詳細は Lambda と LambdaHandler を参照してください。action: ActionStatements- ActionStatements
Condition.If(({ $ }) => {
return ($("name").get("coin") || 0) >= 10;
}, [
character1.say("you have enough money")
])公開メソッド
constructor
config?: ConditionConfig- ConditionConfig
チェーン可能なメソッド
ElseIf
condition: Lambda | LambdaHandler<boolean>action: ActionStatements- ActionStatements
Else
action: ActionStatements- ActionStatements