用途:object 是冒险世界中的任何可交互物件,如钥匙、灯、箱子、家具、食物和工具,用于定义玩家可操作、可改变状态的实体。
主要能力:物件具有 id、name、description、examine、takeable、container、contains、state、advertisements、inherits 等属性。采用 Sims 式“智能在物件中”的架构,物件通过 advertisements 宣告可用动作,角色从广告中选择,不硬编码行为。支持 Self 风格原型继承,可继承 light-source、takeable 等行为而不复制。
模拟机制:每个物件可声明 simulate,用自然语言描述每回合发生的事,编译为接收 world 的闭包。支持防御式处理、自初始化、自愈,可声明 defaults 在模拟前合入状态。
方法与动作:methods 定义具名行为,自然语言与 JS/PY 方法一一对应,advertisements 可调用方法。广告字段包括 description、score、score_if、guard、effect,自然语言字段会编译为 JS/PY。容器可容纳其他物件,含 capacity、locked 等字段。
使用方式:以 YAML 定义 object,例如简单物品、带状态的灯、上锁宝箱等;状态变化记录在 YAML 中,冒险即存档。
适用场景:文本冒险、交互式世界、物件驱动行为模拟。
限制:资料未提供完整安装命令、运行平台、性能、价格或收费等信息。