wiki更新

This commit is contained in:
panw
2025-10-30 16:49:19 +08:00
parent 40e0086be3
commit 93ceaa70e4
18 changed files with 746 additions and 1100 deletions

View File

@@ -2,16 +2,22 @@
<cite>
**本文档引用文件**
- [Mission.ts](file://assets/script/game/common/config/Mission.ts)
- [MissionComp.ts](file://assets/script/game/map/MissionComp.ts)
- [VictoryComp.ts](file://assets/script/game/map/VictoryComp.ts)
- [GameEvent.ts](file://assets/script/game/common/config/GameEvent.ts)
- [GameUIConfig.ts](file://assets/script/game/common/config/GameUIConfig.ts)
- [MissionMonComp.ts](file://assets/script/game/map/MissionMonComp.ts)
- [RogueConfig.ts](file://assets/script/game/map/RogueConfig.ts)
- [Design.md](file://assets/script/Design.md)
- [Mission.ts](file://assets/script/game/common/config/Mission.ts) - *奖励常量配置*
- [MissionComp.ts](file://assets/script/game/map/MissionComp.ts) - *奖励数据管理与实体销毁逻辑*
- [VictoryComp.ts](file://assets/script/game/map/VictoryComp.ts) - *奖励界面展示*
- [GameEvent.ts](file://assets/script/game/common/config/GameEvent.ts) - *事件定义*
- [MissionMonComp.ts](file://assets/script/game/map/MissionMonComp.ts) - *怪物生成与事件处理*
- [RogueConfig.ts](file://assets/script/game/map/RogueConfig.ts) - *肉鸽关卡配置*
- [Design.md](file://assets/script/Design.md) - *系统设计概述*
</cite>
## 更新摘要
**变更内容**
- 更新了`MissionComp`中实体销毁逻辑,修复空引用问题
- 修正奖励发放流程中组件清理的实现方式
- 更新相关章节以反映最新的代码实现
- 增强源码追踪信息,标注关键修改点
## 目录
1. [奖励系统概述](#奖励系统概述)
2. [三选一奖励机制](#三选一奖励机制)
@@ -232,6 +238,31 @@ VictoryComp --> GameEvent : "触发"
- [GameEvent.ts](file://assets/script/game/common/config/GameEvent.ts#L43)
- [GameUIConfig.ts](file://assets/script/game/common/config/GameUIConfig.ts#L30)
### 实体销毁逻辑优化
根据最新代码变更,`MissionComp`中的`cleanComponents`方法已优化修复了实体销毁时可能出现的空引用问题。新的实现直接销毁实体让ECS系统自动处理组件清理避免在组件`reset`方法中访问已被销毁的实体引用。
```typescript
private cleanComponents() {
// 优化销毁顺序直接销毁实体让ECS系统自动处理组件清理
// 这样可以避免在组件reset方法中访问已经被销毁的实体引用
ecs.query(ecs.allOf(HeroViewComp)).forEach(entity => {
entity.destroy();
});
ecs.query(ecs.allOf(AtkConCom)).forEach(entity => {
entity.destroy();
});
ecs.query(ecs.allOf(SkillViewCom)).forEach(entity => {
entity.destroy();
});
}
```
此变更确保了在战斗结束后的清理过程中,不会因组件访问已被销毁的实体而导致运行时错误,提高了系统的稳定性。
**Section sources**
- [MissionComp.ts](file://assets/script/game/map/MissionComp.ts#L137-L149) - *修复实体销毁空引用问题*
## 扩展新奖励类型
### 配置修改步骤