Files
pixelheros/.qoder/repowiki/zh/content/奖励系统/奖励配置/奖励配置.md
panw 4235e3b776 refactor(game): 移除已弃用的事件常量
- 删除 UpdateHero 和 UpdateFightHero 事件
- 移除 MISSION_UPDATE 事件常量
- 优化游戏事件枚举定义
2025-10-28 16:15:47 +08:00

195 lines
7.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 奖励配置
<cite>
**本文档引用的文件**
- [Mission.ts](file://assets/script/game/common/config/Mission.ts)
- [Tasks.ts](file://assets/script/game/common/config/Tasks.ts)
- [HeroAttrs.ts](file://assets/script/game/common/config/HeroAttrs.ts)
- [SkillSet.ts](file://assets/script/game/common/config/SkillSet.ts)
- [heroSet.ts](file://assets/script/game/common/config/heroSet.ts)
- [MissionComp.ts](file://assets/script/game/map/MissionComp.ts)
- [VictoryComp.ts](file://assets/script/game/map/VictoryComp.ts)
- [SingletonModuleComp.ts](file://assets/script/game/common/SingletonModuleComp.ts)
</cite>
## 目录
1. [奖励系统概述](#奖励系统概述)
2. [波次常量与奖励触发时机](#波次常量与奖励触发时机)
3. [任务系统与奖励配置](#任务系统与奖励配置)
4. [奖励类型的数据结构](#奖励类型的数据结构)
5. [属性提升与技能升级奖励](#属性提升与技能升级奖励)
6. [配置数据的加载与使用](#配置数据的加载与使用)
7. [奖励配置的修改与扩展](#奖励配置的修改与扩展)
## 奖励系统概述
奖励系统是游戏核心机制的重要组成部分,通过配置文件定义各类奖励的参数和触发条件。系统主要由`Mission.ts`中的`FightSet`枚举和`TooltipTypes`常量、`Tasks.ts`中的任务配置以及`HeroAttrs.ts`中的属性定义共同构成。奖励系统不仅包括任务完成后的金币、经验奖励,还涵盖了战斗中属性提升、技能升级、装备获取等多种奖励类型。
**Section sources**
- [Mission.ts](file://assets/script/game/common/config/Mission.ts#L1-L59)
- [Tasks.ts](file://assets/script/game/common/config/Tasks.ts#L1-L29)
## 波次常量与奖励触发时机
波次常量定义了游戏中各种事件的触发时机,直接影响奖励的发放。`FightSet`枚举中的常量精确控制了伙伴、BOSS、装备和技能的登场波次这些波次是奖励触发的关键节点。
```mermaid
classDiagram
class FightSet {
+FRIEND_WAVE_UP = 3 : 伙伴登场波次
+BOSS_WAVE_UP_1 = 3 : BOSS登场波次
+BOSS_WAVE_UP_2 = 5 : BOSS登场波次
+BOSS_WAVE_UP_3 = 7 : BOSS登场波次
+EQUIP_WAVE_UP_1 = 4 : 装备登场波次
+EQUIP_WAVE_UP_2 = 6 : 装备登场波次
+EQUIP_WAVE_UP_3 = 8 : 装备登场波次
+SKILL_WAVE_UP_1 = 2 : 技能登场波次
+SKILL_WAVE_UP_2 = 5 : 技能登场波次
+SKILL_WAVE_UP_3 = 7 : 技能登场波次
+MON_WAVE_TIME = 10 : 怪物波次时间
}
```
**Diagram sources**
- [Mission.ts](file://assets/script/game/common/config/Mission.ts#L1-L20)
**Section sources**
- [Mission.ts](file://assets/script/game/common/config/Mission.ts#L1-L35)
## 任务系统与奖励配置
任务系统通过`Tasks.ts`文件中的`Tasks`常量定义每个任务包含ID、名称、描述和奖励等属性。任务完成后系统会根据配置发放相应的奖励。
```mermaid
classDiagram
class Tasks {
+id : number
+name : string
+description : string
+reward : number
+type? : number
}
class Speeks {
+randomSpeek() : string[]
}
```
**Diagram sources**
- [Tasks.ts](file://assets/script/game/common/config/Tasks.ts#L1-L29)
**Section sources**
- [Tasks.ts](file://assets/script/game/common/config/Tasks.ts#L1-L29)
## 奖励类型的数据结构
奖励系统定义了多种奖励类型,每种类型都有其特定的数据结构。`TooltipTypes`常量定义了各种奖励的类型标识用于在UI中显示相应的奖励效果。
```mermaid
classDiagram
class TooltipTypes {
+life = 1 : 生命值变化
+health = 2 : 治疗效果
+skill = 3 : 技能获得
+crit = 4 : 暴击提示
+uskill = 5 : 使用技能
+lvup = 6 : 升级提示
+apup = 7 : 攻击力提升
+hpup = 8 : 生命值提升
}
```
**Diagram sources**
- [Mission.ts](file://assets/script/game/common/config/Mission.ts#L50-L59)
**Section sources**
- [Mission.ts](file://assets/script/game/common/config/Mission.ts#L50-L59)
## 属性提升与技能升级奖励
属性提升和技能升级奖励通过`HeroAttrs.ts`文件中的`Attrs`枚举和`AttrsType`配置表定义。系统区分数值型和百分比型属性,确保奖励计算的准确性。
```mermaid
classDiagram
class Attrs {
+HP_MAX = 0 : 最大生命值
+MP_MAX = 1 : 最大魔法值
+SHIELD_MAX = 2 : 最大护盾值
+AP = 10 : 攻击力
+MAP = 11 : 魔法攻击力
+CRITICAL = 30 : 暴击率
+CRITICAL_DMG = 31 : 暴击伤害
+GOLD_GAIN = 65 : 金币获取
+EXP_GAIN = 64 : 经验获取
}
class BType {
+VALUE = 0 : 数值型
+RATIO = 1 : 百分比型
}
class AttrsType {
+[Attrs.HP_MAX] : BType.VALUE
+[Attrs.AP] : BType.VALUE
+[Attrs.CRITICAL] : BType.RATIO
+[Attrs.GOLD_GAIN] : BType.RATIO
}
```
**Diagram sources**
- [HeroAttrs.ts](file://assets/script/game/common/config/HeroAttrs.ts#L1-L100)
**Section sources**
- [HeroAttrs.ts](file://assets/script/game/common/config/HeroAttrs.ts#L1-L100)
## 配置数据的加载与使用
配置数据通过单例模式的`SingletonModuleComp`进行管理,确保数据在游戏运行时的一致性和可访问性。奖励数据在战斗结束时通过`VictoryComp`组件显示给玩家。
```mermaid
sequenceDiagram
participant MissionComp as MissionComp
participant SingletonModule as SingletonModuleComp
participant VictoryComp as VictoryComp
MissionComp->>SingletonModule : 更新游戏数据(vmdata)
SingletonModule->>MissionComp : 返回数据更新结果
MissionComp->>VictoryComp : 传递奖励数据和游戏数据
VictoryComp->>Player : 显示胜利界面和奖励
VictoryComp->>SingletonModule : 更新金币等永久数据
SingletonModule->>VictoryComp : 返回数据更新结果
```
**Diagram sources**
- [MissionComp.ts](file://assets/script/game/map/MissionComp.ts#L1-L70)
- [VictoryComp.ts](file://assets/script/game/map/VictoryComp.ts#L1-L74)
- [SingletonModuleComp.ts](file://assets/script/game/common/SingletonModuleComp.ts#L1-L194)
**Section sources**
- [MissionComp.ts](file://assets/script/game/map/MissionComp.ts#L1-L70)
- [VictoryComp.ts](file://assets/script/game/map/VictoryComp.ts#L1-L74)
- [SingletonModuleComp.ts](file://assets/script/game/common/SingletonModuleComp.ts#L1-L194)
## 奖励配置的修改与扩展
奖励配置可以通过修改相应的TS文件进行调整和扩展。开发者可以调整奖励权重、添加新的奖励配置项或创建新的奖励类型。
```mermaid
flowchart TD
Start([开始修改奖励配置]) --> ModifyMission["修改Mission.ts中的FightSet常量"]
ModifyMission --> ModifyTasks["修改Tasks.ts中的任务奖励"]
ModifyTasks --> ModifyHeroAttrs["修改HeroAttrs.ts中的属性定义"]
ModifyHeroAttrs --> Test["测试配置变更"]
Test --> Validate["验证奖励效果"]
Validate --> Deploy["部署到游戏"]
Deploy --> End([完成])
ModifyMission --> AddNewReward["添加新的奖励类型到TooltipTypes"]
AddNewReward --> UpdateUI["更新UI显示逻辑"]
UpdateUI --> Test
```
**Diagram sources**
- [Mission.ts](file://assets/script/game/common/config/Mission.ts#L1-L59)
- [Tasks.ts](file://assets/script/game/common/config/Tasks.ts#L1-L29)
- [HeroAttrs.ts](file://assets/script/game/common/config/HeroAttrs.ts#L1-L546)
**Section sources**
- [Mission.ts](file://assets/script/game/common/config/Mission.ts#L1-L59)
- [Tasks.ts](file://assets/script/game/common/config/Tasks.ts#L1-L29)
- [HeroAttrs.ts](file://assets/script/game/common/config/HeroAttrs.ts#L1-L546)