SuperAPI AI 工具集

bevy-quest-system

编程与开发

查看项目

更新于 10-16 06:16

技能介绍

用途:在 Bevy 0.20 及以上项目中组织任务系统。任务定义(id 与目标)放在 QuestCatalog 这一 Resource 表中,运行时进度放在队伍实体的 QuestProgress Component 上,目标推进由 Message 驱动。当目标需要改变阶段、而授予任务的对话系统不参与时加载本技能;对话授予任务的部分由 bevy-dialogue-system 负责。

主要能力:区分定义(Resource 表)、目标计数(由 Message 递增)、完成(QuestProgress 的阶段变化)。完成后的奖励交由 inventory 或 economy 技能处理。系统在 Update 或固定时间步上修改组件;当伤害必须先于死亡生效时使用 .chain() 排序。

使用方式:依赖声明为 bevy = "0.20"。定义 QuestId、QuestStage(Inactive/Active/Complete)、ObjectiveDef、QuestDef、QuestCatalog(Resource)、ObjectiveProgress、QuestProgress(Component)。通过 MessageReader<ObjectiveFact> 读取一次性事实(击中、拾取、任务推进),仅由同一个系统写入 QuestProgress 并更新阶段。注册流程为:init_resource::<QuestCatalog>()、add_message::<ObjectiveFact>()、add_systems(Startup, accept)、add_systems(Update, apply_facts)。

适用场景:需要按实体跟踪任务进度、用消息汇总击杀或拾取等一次性事实、并以阶段变化作为其他技能可读的奖励负载。

限制:不得让两个无序系统可变查询同一组件,除非用 .chain() 排序;不得存在 QuestProgress 的第二个写入者;不得在本技能中发明物理、导航、网络或 XR crate;不得使用未在官方文档中记载的 API 或第三方 crate;文档 URL 不要固定 /0.20.0/ 版本,Bevy 版本目标仅在正文说明一次。消息与观察者的 API 参见 bevy-events-messaging,本技能不新增事件类型名。相关前置技能包括 bevy-master、bevy-ecs-composition、bevy-dialogue-system、bevy-data-resources、bevy-events-messaging。收费、价格与具体平台支持情况暂未提供。