195 lines
7.2 KiB
Markdown
195 lines
7.2 KiB
Markdown
# 奖励配置
|
||
|
||
<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) |