# 奖励配置 **本文档引用的文件** - [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** - [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)