docs(server/data,script): 更新技能触发组文档与文本渲染逻辑

1. 补充技能触发组desc占位符使用说明
2. 新增触发概率与保底叠加值的参数传递
3. 优化技能文本渲染,避免概率描述重复展示
This commit is contained in:
pan
2026-09-21 16:03:10 +08:00
parent cd9e7296a1
commit fdcd81c083
2 changed files with 8 additions and 3 deletions

View File

@@ -518,9 +518,13 @@ function collectTriggerTiers(hero: heroInfo, type: SkillTriggerType, skillUuid:
desc: e.desc ?? inherit,
ownDesc: e.desc,
tNum: e.t_num,
tChance: e.t_chance ?? 100,
pityAdd: e.pity_add ?? 0,
};
});
const label = buildTriggerLabel(type, sorted[0].t_num, sorted[0].t_chance);
// slv1 模板已显式使用 {t_chance} 时不再自动追加概率后缀,避免同一行重复展示
const firstTmpl = tiers[0]?.desc;
const label = buildTriggerLabel(type, sorted[0].t_num, firstTmpl?.includes("{t_chance}") ? undefined : sorted[0].t_chance);
return { tiers, label };
}
@@ -531,11 +535,11 @@ function buildTierLines(tiers: ISkillTierInfo[], triggerLabel: string): HeroSkil
const t = tiers[i];
if (i === 0) {
// 技能 1 级:完整能力 + 数值
const text = t.desc ? renderDesc(t.desc, t.skill) : fallbackDesc(t.skill);
const text = t.desc ? renderDesc(t.desc, t.skill, tierExtras(t)) : fallbackDesc(t.skill);
lines.push({ sLv: t.sLv, heroLv: t.heroLv, text: triggerLabel ? `${triggerLabel}, ${text}` : text });
} else if (t.ownDesc) {
// 提升档:该档显式配置了模板(如护盾/治疗等 diff 标签语义不达的技能),策划表述优先
lines.push({ sLv: t.sLv, heroLv: t.heroLv, text: renderDesc(t.ownDesc, t.skill) });
lines.push({ sLv: t.sLv, heroLv: t.heroLv, text: renderDesc(t.ownDesc, t.skill, tierExtras(t)) });
} else {
// 提升档:未配置模板,给相对上一级的提升
const diff = buildTierDiff(tiers[i - 1], t);