refactor(config): 统一技能触发名称翻译并修正引用

将技能触发类型的中文命名从"进击/受击"改为更准确的"攻击/受伤",同时修正HeroSkillDesc.ts中对SkillTriggerDesc的错误引用,替换为正确的SkillTriggerName。
This commit is contained in:
panFD
2026-07-31 00:48:42 +08:00
parent fbaaefea8f
commit d9575599b3
2 changed files with 11 additions and 8 deletions

View File

@@ -23,12 +23,12 @@
* 字段结构一致天然都满足。HeroBoxComp 传 model 显示当前等级;卡池/商店传 heroInfo 显示 1 级。
*
* 依赖:
* - heroSet :SkillTriggerDesc、SkillTriggerType、HeroEvolve
* - heroSet :SkillTriggerName、SkillTriggerType、HeroEvolve
* - SkillSet :SkillSet、mergeSkillParams、SkillOverrides、SkillKind、TGroup
* - SkillDescSet:结构化描述模板
* - FieldSkillSet驻场技能、BuffList计时 buff 默认值兜底、Attrs属性枚举
*/
import { HeroEvolve, SkillTriggerDesc, SkillTriggerType } from "./heroSet";
import { HeroEvolve, SkillTriggerName, SkillTriggerType } from "./heroSet";
import { FieldSkillSet, mergeSkillParams, SkillConfig, SkillKind, SkillOverrides, SkillSet, TGroup } from "./SkillSet";
import { FieldDescSet, FieldValueFmt, SkillDescSet } from "./SkillDescSet";
import { BuffList } from "./BuffSet";
@@ -224,7 +224,7 @@ function buildReviveLine(source: ISkillDescSource): ISkillLine | null {
const lv = Math.max(1, source.lv ?? 1);
const maxCount = revive.r_num + Math.floor((lv - 1) * revive.upr);
const hpPct = base.ap ?? 0;
const tpl = SkillTriggerDesc[SkillTriggerType.Revive] ?? "复活";
const tpl = SkillTriggerName[SkillTriggerType.Revive] ?? "复活";
// 高亮片段选回血百分比(数值中最关键的收益指标)
return {
prefix: `${tpl}:「${base.name}」 可复活${maxCount}次,每次恢复`,
@@ -263,12 +263,15 @@ function buildSkillLines(source: ISkillDescSource): ISkillLine[] {
for (const key of TRIGGER_KEYS) {
const arr = source[key] as { s_uuid: number; t_num: number; overrides?: SkillOverrides }[] | undefined;
if (!arr?.length) continue;
const tpl = SkillTriggerDesc[key] ?? key;
// 触发类型简称(召唤/亡语/起手/生息/进击/受击)
const name = SkillTriggerName[key] ?? key;
// 仅进击/受击带触发次数,拼为"×n";其余简称直接用
const needCount = key === SkillTriggerType.Atking || key === SkillTriggerType.Atked;
for (const item of arr) {
const base = SkillSet[item.s_uuid];
if (!base) continue;
const skill = mergeSkillParams(base, item.overrides);
const trigger = tpl.replace("n", String(item.t_num));
const trigger = needCount ? `${name}×${item.t_num}` : name;
lines.push(buildEffectLine(`${trigger}:「${base.name}`, skill));
}
}
@@ -276,7 +279,7 @@ function buildSkillLines(source: ISkillDescSource): ISkillLine[] {
// ---- 驻场光环field查 FieldDescSet 结构化渲染value 数值高亮 ----
const fieldUuids = source[SkillTriggerType.Field] as number[] | undefined;
if (fieldUuids?.length) {
const tpl = SkillTriggerDesc[SkillTriggerType.Field] ?? "光环";
const tpl = SkillTriggerName[SkillTriggerType.Field] ?? "光环";
for (const uuid of fieldUuids) {
const line = buildFieldLine(`${tpl}:`, uuid);
if (line) lines.push(line);

View File

@@ -127,8 +127,8 @@ export const SkillTriggerName = {
[SkillTriggerType.FStart]: "起手",
[SkillTriggerType.FEnd]: "生息",
[SkillTriggerType.Field]: "光环",
[SkillTriggerType.Atking]: "击",
[SkillTriggerType.Atked]: "受",
[SkillTriggerType.Atking]: "击",
[SkillTriggerType.Atked]: "受",
[SkillTriggerType.Revive]: "复活",
}