条件分支
用 Condition 在运行时选择分支,从单个 If/Else 到多个 ElseIf 分支与多值判断
使用 Condition 在运行时选择要执行的动作列表
import { Condition } from "narraleaf-react";
scene.action([
Condition.If(player.equals("favoriteTea", "green"), [
alice.say("我泡了绿茶。"),
]).Else([
alice.say("我煮了咖啡。"),
]),
]);一个条件可以包含一个 If、任意数量的 ElseIf,以及最后一个 Else
scene.action([
Condition.If(player.evaluate("coins", (coins) => coins >= 100), [
alice.say("你买得起这本珍本。"),
])
.ElseIf(player.evaluate("coins", (coins) => coins >= 20), [
alice.say("你买得起这张地图。"),
])
.Else([
alice.say("多攒些硬币再来吧。"),
]),
]);读取多个值
条件依赖多个值时可直接传入函数。上下文中的 $() 用于读取已注册的命名空间
scene.action([
Condition.If(({ $ }) => {
const state = $("persistent:player");
return state.get("hasKey") && state.get("coins") >= 10;
}, [
alice.say("大门打开了。"),
]),
]);只判断一个字段时,优先使用 equals、isTrue、isFalse 或 evaluate。写法更短,也能保留字段类型
分支顺序固定。ElseIf() 必须写在 If() 后面,Else() 必须放在最后。在 Else() 后继续添加分支会抛出错误