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,20 +2,17 @@
<cite>
**本文档引用的文件**
- [RogueConfig.ts](file://assets/script/game/map/RogueConfig.ts) - *在最近提交中更新*
- [MissionMonComp.ts](file://assets/script/game/map/MissionMonComp.ts) - *在最近提交中更新*
- [heroSet.ts](file://assets/script/game/common/config/heroSet.ts) - *在最近提交中更新*
- [SkillSet.ts](file://assets/script/game/common/config/SkillSet.ts)
- [GameMap.ts](file://assets/script/game/map/GameMap.ts)
- [RogueConfig.ts](file://assets\script\game\map\RogueConfig.ts) - *在最近提交中更新*
- [GameMap.ts](file://assets\script\game\map\GameMap.ts) - *在最近提交中更新*
</cite>
## 更新摘要
**已做更改**
- 全面重构关卡生成逻辑,采用新的 `MonType` 枚举替代旧的布尔标记
- 更新关卡类型判断机制,基于 `EliteStage``BossStage` 数组配置
- 重写怪物属性计算系统,引入 `MonAttrSet` 属性倍率配置
- 更新随机事件系统,使用数字枚举值替代字符串
- 同步更新调用流程和配置结构
- 全面重构怪物类型与属性计算系统,引入 `MonType` 枚举和动态属性计算机制
- 更新关卡类型判断逻辑,基于 `EliteStage``BossStage` 数组进行判定
- 重写怪物属性计算函数 `getMonAttr`,实现基于等级、类型和基础属性的动态计算
- 优化关卡生成流程 `getStageMonConfigs`,增强代码可读性和维护性
- 同步更新文档以准确反映最新代码实现
## 目录
1. [系统概述](#系统概述)
@@ -46,8 +43,8 @@
**更新** 重构了怪物生成逻辑,使用 `MonType` 枚举和数组配置替代原有实现
**章节来源**
- [RogueConfig.ts](file://assets/script/game/map/RogueConfig.ts#L1-L50)
- [MissionMonComp.ts](file://assets/script/game/map/MissionMonComp.ts#L1-L40)
- [RogueConfig.ts](file://assets\script\game\map\RogueConfig.ts#L1-L50)
- [GameMap.ts](file://assets\script\game\map\GameMap.ts#L1-L35)
## 核心架构
@@ -67,19 +64,16 @@ F --> J[Boss怪物添加]
F --> K[额外怪物生成]
end
subgraph "应用层"
L[MissionMonComp.ts] --> M[GameMap.ts]
L --> N[Mon.ts]
L --> O[MapModelComp.ts]
L[GameMap.ts] --> M[MapModelComp]
L --> N[MapViewComp]
end
A --> F
F --> L
M --> O
```
**图表来源**
- [RogueConfig.ts](file://assets/script/game/map/RogueConfig.ts#L1-L173)
- [MissionMonComp.ts](file://assets/script/game/map/MissionMonComp.ts#L1-L200)
- [GameMap.ts](file://assets/script/game/map/GameMap.ts#L1-L35)
- [RogueConfig.ts](file://assets\script\game\map\RogueConfig.ts#L1-L173)
- [GameMap.ts](file://assets\script\game\map\GameMap.ts#L1-L35)
## 关卡类型系统
@@ -111,7 +105,7 @@ IMonsConfig --> StageConfig : "生成"
```
**图表来源**
- [RogueConfig.ts](file://assets/script/game/map/RogueConfig.ts#L31-L31)
- [RogueConfig.ts](file://assets\script\game\map\RogueConfig.ts#L31-L31)
### 关卡类型特征对比
@@ -122,8 +116,8 @@ IMonsConfig --> StageConfig : "生成"
| Boss关卡 | 关卡号在BossStage数组中 | Boss+精英+普通怪物 | 高难度包含Boss |
**章节来源**
- [RogueConfig.ts](file://assets/script/game/map/RogueConfig.ts#L18-L20)
- [RogueConfig.ts](file://assets/script/game/map/RogueConfig.ts#L31-L31)
- [RogueConfig.ts](file://assets\script\game\map\RogueConfig.ts#L18-L20)
- [RogueConfig.ts](file://assets\script\game\map\RogueConfig.ts#L31-L31)
## 怪物类型体系
@@ -156,8 +150,8 @@ MonsterPool --> MonsterConfig : "包含"
```
**图表来源**
- [RogueConfig.ts](file://assets/script/game/map/RogueConfig.ts#L31-L31)
- [RogueConfig.ts](file://assets/script/game/map/RogueConfig.ts#L18-L20)
- [RogueConfig.ts](file://assets\script\game\map\RogueConfig.ts#L31-L31)
- [RogueConfig.ts](file://assets\script\game\map\RogueConfig.ts#L18-L20)
### 怪物池配置
@@ -168,8 +162,8 @@ MonsterPool --> MonsterConfig : "包含"
- **Boss怪物池**固定配置的Boss怪物列表 `BossMons`
**章节来源**
- [RogueConfig.ts](file://assets/script/game/map/RogueConfig.ts#L18-L20)
- [heroSet.ts](file://assets/script/game/common/config/heroSet.ts#L20-L215)
- [RogueConfig.ts](file://assets\script\game\map\RogueConfig.ts#L18-L20)
- [RogueConfig.ts](file://assets\script\game\common\config\heroSet.ts#L20-L215)
## 关卡配置规则
@@ -192,7 +186,7 @@ H --> I[返回怪物配置]
```
**图表来源**
- [RogueConfig.ts](file://assets/script/game/map/RogueConfig.ts#L95-L173)
- [RogueConfig.ts](file://assets\script\game\map\RogueConfig.ts#L95-L173)
### 怪物数量计算算法
@@ -214,7 +208,7 @@ if (isEliteStage) {
```
**章节来源**
- [RogueConfig.ts](file://assets/script/game/map/RogueConfig.ts#L95-L173)
- [RogueConfig.ts](file://assets\script\game\map\RogueConfig.ts#L95-L173)
## 随机事件系统
@@ -239,7 +233,7 @@ EventType --> StageRule : "配置概率"
```
**图表来源**
- [RogueConfig.ts](file://assets/script/game/map/RogueConfig.ts#L35-L40)
- [RogueConfig.ts](file://assets\script\game\map\RogueConfig.ts#L35-L40)
### 事件触发机制
@@ -263,7 +257,7 @@ if (Math.random() < StageRule.specialAttributeRate) {
```
**章节来源**
- [RogueConfig.ts](file://assets/script/game/map/RogueConfig.ts#L45-L56)
- [RogueConfig.ts](file://assets\script\game\map\RogueConfig.ts#L45-L56)
## 动态难度计算
@@ -287,7 +281,7 @@ G --> H
```
**图表来源**
- [RogueConfig.ts](file://assets/script/game/map/RogueConfig.ts#L69-L73)
- [RogueConfig.ts](file://assets\script\game\map\RogueConfig.ts#L69-L73)
### 难度曲线特征
@@ -298,7 +292,7 @@ G --> H
| Boss怪物 | 5.0x | 2.0x | 2.0x | 2.0x | 2.0x | 终极挑战 |
**章节来源**
- [RogueConfig.ts](file://assets/script/game/map/RogueConfig.ts#L69-L73)
- [RogueConfig.ts](file://assets\script\game\map\RogueConfig.ts#L69-L73)
## 关卡生成流程
@@ -308,29 +302,23 @@ G --> H
```mermaid
sequenceDiagram
participant MC as MissionComp
participant RM as MissionMonComp
participant RC as RogueConfig
participant GM as GameMap
participant MM as MapModel
participant M as Monster
MC->>RM : do_mon_wave()
RM->>RC : getStageMonConfigs(stageNumber)
RC-->>RM : 怪物配置数组
RM->>RM : generateMonsters()
participant MV as MapView
RC->>RC : getStageMonConfigs(stageNumber)
RC-->>GM : 怪物配置数组
GM->>GM : load()
GM->>MM : 初始化模型组件
GM->>MV : 加载地图显示资源
loop 每个怪物配置
RM->>RM : addToStageSpawnQueue()
end
loop 怪物生成队列
RM->>M : addMonster()
M->>MM : 加载怪物资源
MM-->>M : 怪物实例
M-->>RM : 怪物实体
MM->>MM : 添加怪物实体
end
```
**图表来源**
- [MissionMonComp.ts](file://assets/script/game/map/MissionMonComp.ts#L102-L136)
- [RogueConfig.ts](file://assets/script/game/map/RogueConfig.ts#L95-L173)
- [RogueConfig.ts](file://assets\script\game\map\RogueConfig.ts#L95-L173)
- [GameMap.ts](file://assets\script\game\map\GameMap.ts#L20-L35)
### 怪物生成队列管理
@@ -351,7 +339,7 @@ stateDiagram-v2
```
**图表来源**
- [MissionMonComp.ts](file://assets/script/game/map/MissionMonComp.ts#L45-L85)
- [RogueConfig.ts](file://assets\script\game\map\RogueConfig.ts#L95-L173)
## 实际调用机制
@@ -362,44 +350,33 @@ stateDiagram-v2
```mermaid
sequenceDiagram
participant GM as GameMap
participant MC as MissionComp
participant MMon as MissionMonComp
participant RC as RogueConfig
GM->>MC : 初始化游戏
MC->>MC : data_init()
MC->>MC : mission_start()
MC->>MC : to_fight()
MC->>MMon : fight_ready()
MMon->>MMon : do_mon_wave()
Note over MMon : 开始关卡生成流程
MMon->>RC : getStageMonConfigs(currentStage)
RC-->>MMon : 怪物配置数据
MMon->>MMon : generateMonsters()
MMon->>MMon : addToStageSpawnQueue()
GM->>GM : 初始化游戏
GM->>RC : getStageMonConfigs(currentStage)
RC-->>GM : 怪物配置数据
GM->>GM : load()
loop 怪物生成循环
MMon->>MMon : spawnNextMonster()
MMon->>GM : addMonster()
GM->>GM : instantiate怪物
GM->>GM : 添加到地图
end
```
**图表来源**
- [GameMap.ts](file://assets/script/game/map/GameMap.ts#L25-L35)
- [MissionComp.ts](file://assets/script/game/map/MissionComp.ts#L75-L95)
- [MissionMonComp.ts](file://assets/script/game/map/MissionMonComp.ts#L40-L50)
- [GameMap.ts](file://assets\script\game\map\GameMap.ts#L25-L35)
- [RogueConfig.ts](file://assets\script\game\map\RogueConfig.ts#L95-L173)
### 数据流传递
关卡配置数据通过以下路径传递:
1. **配置层**RogueConfig.ts 提供基础配置
2. **逻辑层**MissionMonComp.ts 处理游戏逻辑
3. **渲染层**Mon.ts 负责怪物渲染和行为
4. **状态层**smc.vmdata.mission_data 管理游戏状态
2. **逻辑层**GameMap.ts 处理游戏逻辑
3. **渲染层**MapViewComp.ts 负责地图渲染
4. **状态层**MapModelComp.ts 管理游戏状态
**章节来源**
- [GameMap.ts](file://assets/script/game/map/GameMap.ts#L25-L35)
- [MissionComp.ts](file://assets/script/game/map/MissionComp.ts#L75-L95)
- [MissionMonComp.ts](file://assets/script/game/map/MissionMonComp.ts#L40-L50)
- [GameMap.ts](file://assets\script\game\map\GameMap.ts#L25-L35)
- [RogueConfig.ts](file://assets\script\game\map\RogueConfig.ts#L95-L173)
## 扩展指南