From 175b93c7fadb0c6fe035a9d763c476604ac4060d Mon Sep 17 00:00:00 2001 From: panFD Date: Fri, 31 Jul 2026 23:16:59 +0800 Subject: [PATCH] =?UTF-8?q?refactor(hero):=20=E4=BC=98=E5=8C=96=E8=8B=B1?= =?UTF-8?q?=E9=9B=84=E6=8F=8F=E8=BF=B0=E6=96=87=E6=9C=AC=E5=B1=95=E7=A4=BA?= =?UTF-8?q?=E9=80=BB=E8=BE=91=E4=B8=8EUI=E5=B8=83=E5=B1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. 重构英雄组件富文本生成逻辑,直接使用配置表手写文案替代动态生成 2. 更新英雄配置表中的技能描述文本,优化表述更贴合实际效果 3. 调整任务面板和英雄预制体的UI位置与尺寸,适配新的展示内容 4. 移除冗余的空引用属性,新增刷新石数量显示节点 --- assets/resources/gui/element/cHero.prefab | 22 ++++----- assets/resources/gui/element/mission.prefab | 11 ++--- assets/script/game/common/config/heroSet.ts | 50 ++++++++++----------- assets/script/game/map/CHeroComp.ts | 7 ++- 4 files changed, 45 insertions(+), 45 deletions(-) diff --git a/assets/resources/gui/element/cHero.prefab b/assets/resources/gui/element/cHero.prefab index 07dc8535..495adcdf 100644 --- a/assets/resources/gui/element/cHero.prefab +++ b/assets/resources/gui/element/cHero.prefab @@ -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": "RichText", "_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", diff --git a/assets/resources/gui/element/mission.prefab b/assets/resources/gui/element/mission.prefab index 3da62328..b598543c 100644 --- a/assets/resources/gui/element/mission.prefab +++ b/assets/resources/gui/element/mission.prefab @@ -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": "" }, { diff --git a/assets/script/game/common/config/heroSet.ts b/assets/script/game/common/config/heroSet.ts index 8aac58aa..323fbf3f 100644 --- a/assets/script/game/common/config/heroSet.ts +++ b/assets/script/game/common/config/heroSet.ts @@ -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 = { ] }, }, - info: "每受击3次为自身添加护盾(层数随等级4→5→6);6级起每受击5次回复攻击力250%生命", + info: "受伤时获得格挡护盾;\n「Max」受伤时回复生命", infos: [ "受击3次获得4次格挡护盾", "受击3次获得5次格挡护盾", @@ -267,7 +267,7 @@ export const HeroInfo: Record = { ] }, }, - info: "每受击3次回复自身攻击力250%生命;2级治疗量300%,4级350%,5级触发阈值降至2次;6级起每受击5次为自身添加4层护盾", + info: "受伤时回复生命;\n「Max」受伤时获得格挡护盾", infos: [ "受击3次回复攻击力250%生命", "受击3次回复攻击力300%生命", @@ -281,29 +281,29 @@ export const HeroInfo: Record = { // 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 = { ] }, }, - info: "每攻击5次永久提升自身攻击力(8→10→12,5级起每4次);6级起每攻击7次永久+20%暴击伤害", + info: "攻击后永久提升自身攻击力;\n「Max」攻击后永久提升暴击伤害", infos: [ "攻击5次永久+8攻击力", "攻击5次永久+10攻击力", @@ -369,7 +369,7 @@ export const HeroInfo: Record = { ] }, }, - info: "每攻击5次自身获得+15%暴击率(持续5秒),每攻击7次永久+12攻击力;2级暴击+20%,4级持续6秒且攻击+15,5级暴击触发阈值降至4次;6级起每攻击7次永久+15%暴伤", + info: "攻击后短暂提升自身暴击率,并永久提升攻击力;\n「Max」攻击后永久提升暴击伤害", infos: [ "攻击5次获得+15%暴击率5秒;攻击7次永久+12攻击力", "攻击5次获得+20%暴击率5秒;攻击7次永久+12攻击力", @@ -386,7 +386,7 @@ export const HeroInfo: Record = { // { 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 = { // { 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 = { 5: { atking: [{ s_uuid: 6401, t_num: 5, overrides: { TGroup: TGroup.Team, hit_count: 2, ap: 12 } }] }, 6: { field: [7006] }, }, - info: "每攻击5次为随机队友永久提升攻击力(8→10→12,5级起2名);6级起全队攻击速度+10%", + info: "攻击后永久提升随机队友攻击力;\n「Max」驻场光环:全队攻击速度提升", infos: [ "攻击5次为随机1名队友永久+8攻击力", "攻击5次为随机1名队友永久+10攻击力", @@ -438,7 +438,7 @@ export const HeroInfo: Record = { ] }, }, - info: "每攻击5次为随机3名队友提供+10%暴击率(持续5秒);2级+12%,4级目标数4名且持续6秒,5级触发阈值降至4次;6级起每攻击7次为随机3名队友永久+12%暴伤", + info: "攻击后短暂提升多名队友暴击率;\n「Max」攻击后永久提升队友暴击伤害", infos: [ "攻击5次为随机3名队友+10%暴击率5秒", "攻击5次为随机3名队友+12%暴击率5秒", @@ -452,7 +452,7 @@ export const HeroInfo: Record = { // 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 = { // { 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 = { // 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「Max」死亡时额外提升全队攻击力,复活次数增加", infos: [ "死亡时全队永久+80最大生命、获得5次格挡护盾;可复活1次(50%血量)", "死亡时全队永久+100最大生命、获得6次格挡护盾;可复活1次(50%血量)", @@ -549,7 +549,7 @@ export const HeroInfo: Record = { 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/10s);6级起全队暴击率+20%(驻场)", + info: "战斗开始时短暂提升全队攻击力;\n「Max」驻场光环:全队暴击率提升", infos: [ "战斗开始全队攻击力+30,持续5秒", "战斗开始全队攻击力+30,持续5秒;额外+80最大生命", @@ -570,7 +570,7 @@ export const HeroInfo: Record = { 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「Max」驻场光环:全队最大生命提升", infos: [ "战斗开始全队获得3次格挡护盾", "战斗开始全队获得4次格挡护盾", @@ -636,7 +636,7 @@ export const HeroInfo: Record = { 5: { field: [7202, 7206] }, 6: { field: [7202, 7206, 7007] }, }, - info: "驻场期间全队攻击力+10%;2级+20%,4级追加攻击速度+10%,5级攻速+20%;6级追加最大生命值+10%", + info: "驻场期间提升全队攻击力;\n「Max」追加提升全队攻击速度与最大生命", infos: [ "驻场光环:全队攻击力+10%", "驻场光环:全队攻击力+20%", @@ -666,7 +666,7 @@ export const HeroInfo: Record = { ] }, }, - info: "每攻击5次治疗低血量队友(200→300%,5级起全队);6级起每攻击7次为全队添加3层护盾", + info: "攻击后治疗低血量队友;\n「Max」攻击后为全队添加格挡护盾", infos: [ "攻击5次治疗低血量队友,回复攻击力200%生命", "攻击5次治疗低血量队友,回复攻击力250%生命", @@ -681,21 +681,21 @@ export const HeroInfo: Record = { // 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 = { // { 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最大生命值" // }, diff --git a/assets/script/game/map/CHeroComp.ts b/assets/script/game/map/CHeroComp.ts index 1098287c..8aed8832 100644 --- a/assets/script/game/map/CHeroComp.ts +++ b/assets/script/game/map/CHeroComp.ts @@ -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; }