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

7.2 KiB
Raw Blame History

奖励配置

**本文档引用的文件** - [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)

目录

  1. 奖励系统概述
  2. 波次常量与奖励触发时机
  3. 任务系统与奖励配置
  4. 奖励类型的数据结构
  5. 属性提升与技能升级奖励
  6. 配置数据的加载与使用
  7. 奖励配置的修改与扩展

奖励系统概述

奖励系统是游戏核心机制的重要组成部分,通过配置文件定义各类奖励的参数和触发条件。系统主要由Mission.ts中的FightSet枚举和TooltipTypes常量、Tasks.ts中的任务配置以及HeroAttrs.ts中的属性定义共同构成。奖励系统不仅包括任务完成后的金币、经验奖励,还涵盖了战斗中属性提升、技能升级、装备获取等多种奖励类型。

Section sources

波次常量与奖励触发时机

波次常量定义了游戏中各种事件的触发时机,直接影响奖励的发放。FightSet枚举中的常量精确控制了伙伴、BOSS、装备和技能的登场波次这些波次是奖励触发的关键节点。

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

Section sources

任务系统与奖励配置

任务系统通过Tasks.ts文件中的Tasks常量定义每个任务包含ID、名称、描述和奖励等属性。任务完成后系统会根据配置发放相应的奖励。

classDiagram
class Tasks {
+id : number
+name : string
+description : string
+reward : number
+type? : number
}
class Speeks {
+randomSpeek() : string[]
}

Diagram sources

Section sources

奖励类型的数据结构

奖励系统定义了多种奖励类型,每种类型都有其特定的数据结构。TooltipTypes常量定义了各种奖励的类型标识用于在UI中显示相应的奖励效果。

classDiagram
class TooltipTypes {
+life = 1 : 生命值变化
+health = 2 : 治疗效果
+skill = 3 : 技能获得
+crit = 4 : 暴击提示
+uskill = 5 : 使用技能
+lvup = 6 : 升级提示
+apup = 7 : 攻击力提升
+hpup = 8 : 生命值提升
}

Diagram sources

Section sources

属性提升与技能升级奖励

属性提升和技能升级奖励通过HeroAttrs.ts文件中的Attrs枚举和AttrsType配置表定义。系统区分数值型和百分比型属性,确保奖励计算的准确性。

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

Section sources

配置数据的加载与使用

配置数据通过单例模式的SingletonModuleComp进行管理,确保数据在游戏运行时的一致性和可访问性。奖励数据在战斗结束时通过VictoryComp组件显示给玩家。

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

Section sources

奖励配置的修改与扩展

奖励配置可以通过修改相应的TS文件进行调整和扩展。开发者可以调整奖励权重、添加新的奖励配置项或创建新的奖励类型。

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

Section sources