wiki更新
This commit is contained in:
@@ -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)
|
||||
|
||||
## 扩展指南
|
||||
|
||||
|
||||
Reference in New Issue
Block a user