feat(talent): 重构天赋系统配置并添加图标显示
- 将天赋配置从 TalentsComp.ts 提取到独立的 TalentSet.ts 文件
- 为每个天赋添加图标支持,在天赋名称前显示对应图标
- 改进天赋描述,使用动态数值替换模板中的 {value} 占位符
- 更新天赋项预制件以支持新的配置结构
- 修改 UI 图片资源并调整预制件的视觉样式
This commit is contained in:
@@ -55,6 +55,8 @@ export class SingletonModuleComp extends ecs.Comp {
|
||||
noStop:false,
|
||||
showInfo:true,
|
||||
}
|
||||
|
||||
|
||||
guides:any=[0,0,0,0,0]
|
||||
current_guide:number=0
|
||||
fight_hero: number = 5001; // 单个出战英雄
|
||||
|
||||
107
assets/script/game/common/config/TalentSet.ts
Normal file
107
assets/script/game/common/config/TalentSet.ts
Normal file
@@ -0,0 +1,107 @@
|
||||
/**
|
||||
* @file TalentSet.ts
|
||||
* @description 天赋系统配置数据,包含经验要求、消耗、每个天赋的具体加成数值和描述。
|
||||
*/
|
||||
|
||||
export interface TalentInfo {
|
||||
/** 天赋 ID */
|
||||
id: number;
|
||||
/** 天赋名称 */
|
||||
name: string;
|
||||
/** 天赋图标或标识(可选) */
|
||||
icon?: string;
|
||||
/** 描述模板,使用 {value} 替换具体数值 */
|
||||
desc: string;
|
||||
/** 最大等级 */
|
||||
maxLevel: number;
|
||||
/** 每级提升的数值 */
|
||||
valuePerLevel: number;
|
||||
/** 获取指定等级下的实际加成数值 */
|
||||
getValue: (level: number) => number;
|
||||
}
|
||||
|
||||
export const TalentConfig = {
|
||||
// 玩家升级所需经验配置
|
||||
expRequirements: [
|
||||
{ maxLevel: 10, expPerLevel: 100 },
|
||||
{ maxLevel: 20, expPerLevel: 150 },
|
||||
{ maxLevel: 30, expPerLevel: 200 }
|
||||
],
|
||||
|
||||
// 天赋升级消耗点数 (第1级到第5级消耗)
|
||||
costPerLevel: [1, 1, 2, 2, 3],
|
||||
|
||||
// 天赋列表
|
||||
talents: [
|
||||
{
|
||||
id: 1, name: "攻击强化", icon: "⚔️",
|
||||
desc: "所有英雄 ATK +{value}%",
|
||||
maxLevel: 5,
|
||||
valuePerLevel: 3,
|
||||
getValue: (level: number) => level * 3
|
||||
},
|
||||
{
|
||||
id: 2, name: "生命强化", icon: "❤️",
|
||||
desc: "所有英雄 HP +{value}%",
|
||||
maxLevel: 5,
|
||||
valuePerLevel: 5,
|
||||
getValue: (level: number) => level * 5
|
||||
},
|
||||
{
|
||||
id: 3, name: "暴击强化", icon: "🔥",
|
||||
desc: "所有英雄暴击率 +{value}%",
|
||||
maxLevel: 5,
|
||||
valuePerLevel: 2,
|
||||
getValue: (level: number) => level * 2
|
||||
},
|
||||
{
|
||||
id: 4, name: "风怒强化", icon: "⚡",
|
||||
desc: "所有英雄风怒率 +{value}%",
|
||||
maxLevel: 5,
|
||||
valuePerLevel: 2,
|
||||
getValue: (level: number) => level * 2
|
||||
},
|
||||
{
|
||||
id: 5, name: "冰冻强化", icon: "❄️",
|
||||
desc: "所有英雄冰冻率 +{value}%",
|
||||
maxLevel: 5,
|
||||
valuePerLevel: 2,
|
||||
getValue: (level: number) => level * 2
|
||||
},
|
||||
{
|
||||
id: 6, name: "穿刺强化", icon: "🗡️",
|
||||
desc: "所有英雄穿刺 +{value}",
|
||||
maxLevel: 5,
|
||||
valuePerLevel: 0.2,
|
||||
getValue: (level: number) => Number((level * 0.2).toFixed(1))
|
||||
},
|
||||
{
|
||||
id: 7, name: "护盾强化", icon: "🛡️",
|
||||
desc: "所有护盾效果 +{value}%",
|
||||
maxLevel: 5,
|
||||
valuePerLevel: 5,
|
||||
getValue: (level: number) => level * 5
|
||||
},
|
||||
{
|
||||
id: 8, name: "采购优惠", icon: "🛒",
|
||||
desc: "购买英雄 -{value}金",
|
||||
maxLevel: 5,
|
||||
valuePerLevel: 1,
|
||||
getValue: (level: number) => level * 1
|
||||
},
|
||||
{
|
||||
id: 9, name: "刷新优惠", icon: "🔄",
|
||||
desc: "刷新重抽 -{value}金",
|
||||
maxLevel: 5,
|
||||
valuePerLevel: 0.5,
|
||||
getValue: (level: number) => Number((level * 0.5).toFixed(1))
|
||||
},
|
||||
{
|
||||
id: 10, name: "出售补贴", icon: "💰",
|
||||
desc: "出售英雄返还 +{value}%金币",
|
||||
maxLevel: 5,
|
||||
valuePerLevel: 10,
|
||||
getValue: (level: number) => level * 10
|
||||
}
|
||||
] as TalentInfo[]
|
||||
};
|
||||
9
assets/script/game/common/config/TalentSet.ts.meta
Normal file
9
assets/script/game/common/config/TalentSet.ts.meta
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"ver": "4.0.24",
|
||||
"importer": "typescript",
|
||||
"imported": true,
|
||||
"uuid": "76a850b1-5eda-481f-a6e1-8e12e41db6c8",
|
||||
"files": [],
|
||||
"subMetas": {},
|
||||
"userData": {}
|
||||
}
|
||||
Reference in New Issue
Block a user