refactor(hero): 优化英雄描述文本展示逻辑与UI布局
1. 重构英雄组件富文本生成逻辑,直接使用配置表手写文案替代动态生成 2. 更新英雄配置表中的技能描述文本,优化表述更贴合实际效果 3. 调整任务面板和英雄预制体的UI位置与尺寸,适配新的展示内容 4. 移除冗余的空引用属性,新增刷新石数量显示节点
This commit is contained in:
@@ -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→6);6级起每受击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→12,5级起每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秒且攻击+15,5级暴击触发阈值降至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→12,5级起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/10s);6级起全队暴击率+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最大生命值"
|
||||
// },
|
||||
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user