refactor(hero): 优化英雄描述文本展示逻辑与UI布局

1.  重构英雄组件富文本生成逻辑,直接使用配置表手写文案替代动态生成
2.  更新英雄配置表中的技能描述文本,优化表述更贴合实际效果
3.  调整任务面板和英雄预制体的UI位置与尺寸,适配新的展示内容
4.  移除冗余的空引用属性,新增刷新石数量显示节点
This commit is contained in:
panFD
2026-07-31 23:16:59 +08:00
parent 2ae48afb99
commit 175b93c7fa
4 changed files with 45 additions and 45 deletions

View File

@@ -219,7 +219,7 @@
"value": {
"__type__": "cc.Size",
"width": 230,
"height": 300
"height": 320
}
},
{
@@ -239,7 +239,7 @@
"value": {
"__type__": "cc.Size",
"width": 230,
"height": 300
"height": 320
}
},
{
@@ -259,7 +259,7 @@
"value": {
"__type__": "cc.Size",
"width": 460,
"height": 600
"height": 640
}
},
{
@@ -279,7 +279,7 @@
"value": {
"__type__": "cc.Size",
"width": 428,
"height": 568
"height": 608
}
},
{
@@ -344,7 +344,7 @@
"_lpos": {
"__type__": "cc.Vec3",
"x": 0,
"y": 122.888,
"y": 132.888,
"z": 0
},
"_lrot": {
@@ -1059,7 +1059,7 @@
"value": {
"__type__": "cc.Vec3",
"x": 0,
"y": 58.485,
"y": 68.485,
"z": 0
}
},
@@ -2727,7 +2727,7 @@
"value": {
"__type__": "cc.Vec3",
"x": 0,
"y": -112,
"y": -122,
"z": 0
}
},
@@ -3035,7 +3035,7 @@
"_contentSize": {
"__type__": "cc.Size",
"width": 190,
"height": 26.46
"height": 23.94
},
"_anchorPoint": {
"__type__": "cc.Vec2",
@@ -3060,11 +3060,11 @@
"__prefab": {
"__id__": 195
},
"_lineHeight": 21,
"_lineHeight": 19,
"_string": "<color=#00ff00>Rich</color><color=#0fffff>Text</color>",
"_horizontalAlign": 0,
"_verticalAlign": 0,
"_fontSize": 20,
"_fontSize": 18,
"_fontColor": {
"__type__": "cc.Color",
"r": 32,
@@ -3114,7 +3114,7 @@
"_contentSize": {
"__type__": "cc.Size",
"width": 230,
"height": 300
"height": 320
},
"_anchorPoint": {
"__type__": "cc.Vec2",

View File

@@ -6064,7 +6064,7 @@
"value": {
"__type__": "cc.Vec3",
"x": 0,
"y": -71.13500000000002,
"y": -81.21500000000002,
"z": 0
}
},
@@ -6517,7 +6517,7 @@
"value": {
"__type__": "cc.Vec3",
"x": 0,
"y": -71.13500000000002,
"y": -81.21500000000002,
"z": 0
}
},
@@ -6970,7 +6970,7 @@
"value": {
"__type__": "cc.Vec3",
"x": 0,
"y": -71.13500000000002,
"y": -81.21500000000002,
"z": 0
}
},
@@ -16119,7 +16119,6 @@
"__prefab": {
"__id__": 1006
},
"showCards": null,
"cardPanNode": {
"__id__": 447
},
@@ -16145,7 +16144,6 @@
"herosBoxNode": {
"__id__": 325
},
"heroPrefab": null,
"showEquips": {
"__id__": 786
},
@@ -16203,6 +16201,9 @@
"hero_num_node": {
"__id__": 243
},
"refresh_stone_num_node": {
"__id__": 207
},
"_id": ""
},
{

View File

@@ -139,7 +139,7 @@ export const SkillTriggerDesc = {
[SkillTriggerType.FEnd]: "战斗结束时",
[SkillTriggerType.Field]: "光环",
[SkillTriggerType.Atking]: "攻击n次",
[SkillTriggerType.Atked]: "受n次",
[SkillTriggerType.Atked]: "受n次",
[SkillTriggerType.Revive]: "复活时",
}
@@ -241,7 +241,7 @@ export const HeroInfo: Record<number, heroInfo> = {
]
},
},
info: "每受击3次为自身添加护盾层数随等级4→5→66级起每受击5次回复攻击力250%生命",
info: "受伤时获得格挡护盾;\n<color=#27AE60>「Max」</color>受伤时回复生命",
infos: [
"受击3次获得4次格挡护盾",
"受击3次获得5次格挡护盾",
@@ -267,7 +267,7 @@ export const HeroInfo: Record<number, heroInfo> = {
]
},
},
info: "每受击3次回复自身攻击力250%生命2级治疗量300%4级350%5级触发阈值降至2次6级起每受击5次为自身添加4层护盾",
info: "受伤时回复生命;\n<color=#27AE60>「Max」</color>受伤时获得格挡护盾",
infos: [
"受击3次回复攻击力250%生命",
"受击3次回复攻击力300%生命",
@@ -281,29 +281,29 @@ export const HeroInfo: Record<number, heroInfo> = {
// 5012:{uuid:5012,name:"不死小强",path:"hk2", fac:FacSet.HERO,card_lv:2,lv:1,type:HType.Melee,hp:600,ap:57,
// skills:{6001:{uuid:6001,lv:1,cd:AtkSpeedSet[AtkSpeedLv.Slow3].cd,ccd:0}},
// atked:[{s_uuid:6302,t_num:3,overrides:{TGroup:TGroup.Self,ap:250}}],
// info:"每受击3次为自身回复攻击力250%的生命值"},
// info:"s3次为自身回复攻击力250%的生命值"},
// 5013:{uuid:5013,name:"铁骨头",path:"hk3", fac:FacSet.HERO,card_lv:2,lv:1,type:HType.Melee,hp:600,ap:57,
// skills:{6001:{uuid:6001,lv:1,cd:AtkSpeedSet[AtkSpeedLv.Slow3].cd,ccd:0}},
// atked:[{s_uuid:6402,t_num:5,overrides:{TGroup:TGroup.Self,ap:100}}],
// info:"每受击5次永久提升自身最大生命值100点"},
// info:"s5次永久提升自身最大生命值100点"},
// 5014:{uuid:5014,name:"怒火武者",path:"hk4", fac:FacSet.HERO,card_lv:3,lv:1,type:HType.Melee,hp:900,ap:85,
// skills:{6001:{uuid:6001,lv:1,cd:AtkSpeedSet[AtkSpeedLv.Slow1].cd,ccd:0}},
// atked:[{s_uuid:6401,t_num:3,overrides:{TGroup:TGroup.Self,ap:12}}],
// info:"每受击3次永久提升自身攻击力12点"},
// info:"s3次永久提升自身攻击力12点"},
// 5015:{uuid:5015,name:"血刃武者",path:"hk5", fac:FacSet.HERO,card_lv:4,lv:1,type:HType.Melee,hp:1200,ap:113,
// skills:{6001:{uuid:6001,lv:1,cd:AtkSpeedSet[AtkSpeedLv.Slow3].cd,ccd:0}},
// atked:[
// {s_uuid:6301,t_num:3,overrides:{TGroup:TGroup.Self,ap:3}},
// {s_uuid:6401,t_num:5,overrides:{TGroup:TGroup.Self,ap:15}}
// ],
// info:"每受击3次加3层护盾每受击5次永久+15攻击力"},
// info:"s3次加3层护盾s5次永久+15攻击力"},
// 5016:{uuid:5016,name:"狂血战士",path:"hc1", fac:FacSet.HERO,card_lv:5,lv:1,type:HType.Melee,hp:1500,ap:142,
// skills:{6001:{uuid:6001,lv:1,cd:AtkSpeedSet[AtkSpeedLv.Slow3].cd,ccd:0}},
// atked:[
// {s_uuid:6401,t_num:3,overrides:{TGroup:TGroup.Self,ap:10}},
// {s_uuid:6403,t_num:5,overrides:{TGroup:TGroup.Self,ap:15}}
// ],
// info:"每受击3次永久+10攻击力每受击5次永久+15%暴击率"},
// info:"s3次永久+10攻击力s5次永久+15%暴击率"},
// ========== atking 类 — 刺客(自身强化) ==========
5021: {
@@ -324,7 +324,7 @@ export const HeroInfo: Record<number, heroInfo> = {
]
},
},
info: "攻击5次永久提升自身攻击力8→10→125级起每4次6级起每攻击7次永久+20%暴击伤害",
info: "攻击永久提升自身攻击力\n<color=#27AE60>「Max」</color>攻击后永久提升暴击伤害",
infos: [
"攻击5次永久+8攻击力",
"攻击5次永久+10攻击力",
@@ -369,7 +369,7 @@ export const HeroInfo: Record<number, heroInfo> = {
]
},
},
info: "攻击5次自身获得+15%暴击率持续5秒每攻击7次永久+12攻击力2级暴击+20%4级持续6秒且攻击+155级暴击触发阈值降至4次6级起每攻击7次永久+15%暴伤",
info: "攻击后短暂提升自身暴击率,并永久提升攻击力;\n<color=#27AE60>「Max」</color>攻击后永久提升暴击伤害",
infos: [
"攻击5次获得+15%暴击率5秒攻击7次永久+12攻击力",
"攻击5次获得+20%暴击率5秒攻击7次永久+12攻击力",
@@ -386,7 +386,7 @@ export const HeroInfo: Record<number, heroInfo> = {
// { s_uuid: 6403, t_num: 5, overrides: { TGroup: TGroup.Self, ap: 10 } },
// { s_uuid: 6401, t_num: 7, overrides: { TGroup: TGroup.Self, ap: 12 } }
// ],
// info: "攻击5次永久+10%暴击率,攻击7次永久+12攻击力"
// info: "攻击5次永久+10%暴击率攻击7次永久+12攻击力"
// },
// 5023: {
// uuid: 5023, name: "暗影杀手", path: "hc3", fac: FacSet.HERO, card_lv: 5, lv: 1, type: HType.Melee, hp: 1500, ap: 142,
@@ -395,7 +395,7 @@ export const HeroInfo: Record<number, heroInfo> = {
// { s_uuid: 6403, t_num: 5, overrides: { TGroup: TGroup.Self, ap: 10 } },
// { s_uuid: 6404, t_num: 7, overrides: { TGroup: TGroup.Self, ap: 15 } }
// ],
// info: "攻击5次永久+10%暴击率,攻击7次永久+15%暴伤"
// info: "攻击5次永久+10%暴击率攻击7次永久+15%暴伤"
// },
// ========== atking 类 — 射手队友强化hit_count 控制目标数) ==========
@@ -412,7 +412,7 @@ export const HeroInfo: Record<number, heroInfo> = {
5: { atking: [{ s_uuid: 6401, t_num: 5, overrides: { TGroup: TGroup.Team, hit_count: 2, ap: 12 } }] },
6: { field: [7006] },
},
info: "攻击5次为随机队友永久提升攻击力8→10→125级起2名6级起全队攻击速度+10%",
info: "攻击后永久提升随机队友攻击力;\n<color=#27AE60>「Max」</color>驻场光环:全队攻击速度提升",
infos: [
"攻击5次为随机1名队友永久+8攻击力",
"攻击5次为随机1名队友永久+10攻击力",
@@ -438,7 +438,7 @@ export const HeroInfo: Record<number, heroInfo> = {
]
},
},
info: "攻击5次为随机3名队友提供+10%暴击率持续5秒2级+12%4级目标数4名且持续6秒5级触发阈值降至4次6级起每攻击7次为随机3名队友永久+12%暴伤",
info: "攻击后短暂提升多名队友暴击率;\n<color=#27AE60>「Max」</color>攻击后永久提升队友暴击伤害",
infos: [
"攻击5次为随机3名队友+10%暴击率5秒",
"攻击5次为随机3名队友+12%暴击率5秒",
@@ -452,7 +452,7 @@ export const HeroInfo: Record<number, heroInfo> = {
// uuid: 5032, name: "战术弓手", path: "ha2", fac: FacSet.HERO, card_lv: 3, lv: 1, type: HType.Long, hp: 430, ap: 120,
// skills: { 6001: { uuid: 6001, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Normal1].cd, ccd: 0 } },
// atking: [{ s_uuid: 6403, t_num: 5, overrides: { TGroup: TGroup.Team, hit_count: 3, ap: 10 } }],
// info: "攻击5次为随机3名队友永久提升暴击率10%"
// info: "攻击5次为随机3名队友永久提升暴击率10%"
// },
// 5033: {
// uuid: 5033, name: "鹰眼弓将", path: "ha3", fac: FacSet.HERO, card_lv: 5, lv: 1, type: HType.Long, hp: 717, ap: 200,
@@ -461,7 +461,7 @@ export const HeroInfo: Record<number, heroInfo> = {
// { s_uuid: 6401, t_num: 5, overrides: { TGroup: TGroup.Team, hit_count: 6, ap: 8 } },
// { s_uuid: 6404, t_num: 7, overrides: { TGroup: TGroup.Team, hit_count: 6, ap: 12 } }
// ],
// info: "攻击5次为随机6名队友永久+8攻击力攻击7次永久+12%暴伤"
// info: "攻击5次为随机6名队友永久+8攻击力攻击7次永久+12%暴伤"
// },
// ========== dead 类(战士+刺客 · 死亡遗产) ==========
@@ -524,7 +524,7 @@ export const HeroInfo: Record<number, heroInfo> = {
// 6级终极遗志追加 AP+30终极涅槃复活 2 次血量 70%
6: { dead: [{ s_uuid: 6301, t_num: 1, overrides: { TGroup: TGroup.Team, ap: 8 } }, { s_uuid: 6402, t_num: 1, overrides: { TGroup: TGroup.Team, ap: 150 } }, { s_uuid: 6401, t_num: 1, overrides: { TGroup: TGroup.Team, ap: 30 } }], revive: { s_uuid: 6501, r_num: 2, upr: 0.7 } },
},
info: "死亡时为全队提供 80 永久生命值与 5 层护盾6级解锁 30 永久攻击力,且可复活 2 次",
info: "死亡时为全队提供永久生命与格挡护盾,可复活;\n<color=#27AE60>「Max」</color>死亡时额外提升全队攻击力,复活次数增加",
infos: [
"死亡时全队永久+80最大生命、获得5次格挡护盾可复活1次50%血量)",
"死亡时全队永久+100最大生命、获得6次格挡护盾可复活1次50%血量)",
@@ -549,7 +549,7 @@ export const HeroInfo: Record<number, heroInfo> = {
5: { fstart: [{ s_uuid: 6401, t_num: 1, overrides: { TGroup: TGroup.Team, timed_buff_id: 7111, buff_value: 90, buff_duration: 10 } }] },
6: { field: [7204] },
},
info: "战斗开始时全队攻击力限时提升(+30/5s→+60/7s→+90/10s6级起全队暴击率+20%(驻场)",
info: "战斗开始时短暂提升全队攻击力\n<color=#27AE60>「Max」</color>驻场光环:全队暴击率提升",
infos: [
"战斗开始全队攻击力+30持续5秒",
"战斗开始全队攻击力+30持续5秒额外+80最大生命",
@@ -570,7 +570,7 @@ export const HeroInfo: Record<number, heroInfo> = {
5: { fstart: [{ s_uuid: 6301, t_num: 1, overrides: { TGroup: TGroup.Team, ap: 6 } }] },
6: { field: [7007] },
},
info: "战斗开始时为全队添加3层护盾;2级4层4级5层5级6层6级起全队最大生命值+10%(驻场)",
info: "战斗开始时为全队添加格挡护盾;\n<color=#27AE60>「Max」</color>驻场光环:全队最大生命提升",
infos: [
"战斗开始全队获得3次格挡护盾",
"战斗开始全队获得4次格挡护盾",
@@ -636,7 +636,7 @@ export const HeroInfo: Record<number, heroInfo> = {
5: { field: [7202, 7206] },
6: { field: [7202, 7206, 7007] },
},
info: "驻场期间全队攻击力+10%2级+20%4级追加攻击速度+10%5级攻速+20%6级追加最大生命值+10%",
info: "驻场期间提升全队攻击力\n<color=#27AE60>「Max」</color>追加提升全队攻击速度与最大生命",
infos: [
"驻场光环:全队攻击力+10%",
"驻场光环:全队攻击力+20%",
@@ -666,7 +666,7 @@ export const HeroInfo: Record<number, heroInfo> = {
]
},
},
info: "攻击5次治疗低血量队友200→300%5级起全队6级起每攻击7次为全队添加3层护盾",
info: "攻击治疗低血量队友\n<color=#27AE60>「Max」</color>攻击后为全队添加格挡护盾",
infos: [
"攻击5次治疗低血量队友回复攻击力200%生命",
"攻击5次治疗低血量队友回复攻击力250%生命",
@@ -681,21 +681,21 @@ export const HeroInfo: Record<number, heroInfo> = {
// skills: { 6001: { uuid: 6001, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Mid1].cd, ccd: 0 } },
// atking: [{ s_uuid: 6302, t_num: 5, overrides: { TGroup: TGroup.Team, ap: 200 } }],
// fend: [{ s_uuid: 6303, t_num: 1, overrides: { gold: 1 } }],
// info: "攻击5次治疗全队每波结束获得1金币"
// info: "攻击5次治疗全队每波结束获得1金币"
// },
// 5073: {
// uuid: 5073, name: "强化牧师", path: "hh3", fac: FacSet.HERO, card_lv: 3, lv: 1, type: HType.Long, hp: 430, ap: 120,
// skills: { 6001: { uuid: 6001, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Normal3].cd, ccd: 0 } },
// atking: [{ s_uuid: 6302, t_num: 5, overrides: { TGroup: TGroup.Team, ap: 250 } }],
// fend: [{ s_uuid: 6401, t_num: 1, overrides: { TGroup: TGroup.Team, ap: 10 } }],
// info: "攻击5次治疗全队每波结束全队永久+10攻击力"
// info: "攻击5次治疗全队每波结束全队永久+10攻击力"
// },
// 5074: {
// uuid: 5074, name: "生命牧师", path: "hh4", fac: FacSet.HERO, card_lv: 4, lv: 1, type: HType.Long, hp: 573, ap: 160,
// skills: { 6001: { uuid: 6001, lv: 1, cd: AtkSpeedSet[AtkSpeedLv.Normal3].cd, ccd: 0 } },
// atking: [{ s_uuid: 6302, t_num: 5, overrides: { TGroup: TGroup.Team, ap: 250 } }],
// fend: [{ s_uuid: 6402, t_num: 1, overrides: { TGroup: TGroup.Team, ap: 80 } }],
// info: "攻击5次治疗全队每波结束全队永久+80最大生命值"
// info: "攻击5次治疗全队每波结束全队永久+80最大生命值"
// },
// 5075: {
// uuid: 5075, name: "全能牧师", path: "hh5", fac: FacSet.HERO, card_lv: 5, lv: 1, type: HType.Long, hp: 717, ap: 200,
@@ -705,7 +705,7 @@ export const HeroInfo: Record<number, heroInfo> = {
// { s_uuid: 6401, t_num: 1, overrides: { TGroup: TGroup.Team, ap: 12 } },
// { s_uuid: 6402, t_num: 1, overrides: { TGroup: TGroup.Team, ap: 60 } }
// ],
// info: "攻击5次治疗全队300%AP每波结束全队永久+12攻击力、+60最大生命值"
// info: "攻击5次治疗全队300%AP每波结束全队永久+12攻击力、+60最大生命值"
// },

View File

@@ -21,7 +21,6 @@ import { ecs } from "../../../../extensions/oops-plugin-framework/assets/libs/ec
import { CCComp } from "../../../../extensions/oops-plugin-framework/assets/module/common/CCComp";
import { CardConfig, CardType } from "../common/config/CardSet";
import { HeroInfo } from "../common/config/heroSet";
import { buildSkillDescRich } from "../common/config/HeroSkillDesc";
import { oops } from "db://oops-framework/core/Oops";
import { GameEvent } from "../common/config/GameEvent";
import { smc } from "../common/SingletonModuleComp";
@@ -67,7 +66,7 @@ export class CHeroComp extends CCComp {
@property(Label)
private fied3: Label = null;
/** 描述富文本(多行,数值绿色高亮、技能名蓝色,由 buildSkillDescRich 生成 */
/** 描述富文本(单条,直接展示 heroSet.info 手写文案 */
@property(RichText)
private info_rich: RichText = null;
@@ -288,9 +287,9 @@ export class CHeroComp extends CCComp {
// 背景:按 card_lv 激活对应颜色子节点1→green 2→blue 3→purple 4→red 5→yellow
this.updateBgNode();
// 描述富文本(英雄触发技能,数值随等级配置高亮
// 描述富文本:直接取 heroSet 的 info 字段(单条手写文案
if (this.info_rich) {
const desc = hero ? buildSkillDescRich(hero) : (this.cardData.info || "");
const desc = hero?.info || this.cardData.info || "";
this.info_rich.string = desc;
this.info_rich.node.active = !!desc;
}