选项与容器状态
本页遵循 Ktory 设计原则,实现边界与长期目标以该原则及其权威文档为准。
选项与容器状态
Section titled “选项与容器状态”#choice 是基础选择的惯用容器名称。解析器根据其缩进子项识别容器,核心决定哪些项可提交;显示成按钮、列表或其他形式由宿主负责。
* [询问塔的来历] 爱丽丝: 这座塔已经在这里几百年了。 + [看看窗外] : 风还没有停。 + [离开] -> break
: 我们推开了门。一次性项与持久项
Section titled “一次性项与持久项”* 在有效提交后被记录为当前会话已消耗,重新进入菜单仍不可选。+ 不消耗,可以反复选择。宿主读取 ChoiceOption.CanSelect 和 IsConsumed 决定显示方式,不得让显示逻辑重新启用已消耗项。Start() 会清除会话记录,本阶段不提供磁盘持久化。
提交就是一次继续执行
Section titled “提交就是一次继续执行”菜单出现时 Status 为 AwaitingChoice。普通 Step() 不能绕过菜单;用 SubmitChoice(option.Id, menu.PresentationId) 提交当前可选项。提交后立即读取输出,所选分支的第一拍不会被核心自动越过。该拍可能是对白、无文本指令,或另一个选择。
.loop 使分支结束后重开菜单;-> break 跳出最近活动循环。如果所有项都不可选,基础选择会自然越过容器。语言切换更新选项标签,因此应使用选项 Id,不要将翻译后的显示文字当作稳定身份。
自定义容器的 Handler 注册和未知名称告警仍应按实际实现核验。独立试读中的宽松外部条件处理不能作为真实游戏条件已经满足的依据。
