diff --git a/assets/script/game/common/HeroSkillText.ts b/assets/script/game/common/HeroSkillText.ts index 834be55f..de557965 100644 --- a/assets/script/game/common/HeroSkillText.ts +++ b/assets/script/game/common/HeroSkillText.ts @@ -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); diff --git a/put/server/data/heroes.json编辑指引.md b/put/server/data/heroes.json编辑指引.md index 65329204..45bfa074 100644 --- a/put/server/data/heroes.json编辑指引.md +++ b/put/server/data/heroes.json编辑指引.md @@ -75,6 +75,7 @@ - `t_num`:每 n 次普攻(atking)/受击(atked)触发一次;fstart/fend 为每回合开始/结束固定触发 1 次,`t_num` 恒填 1; - `t_chance`:触发概率(百分点 0~100,**仅 atking/atked 生效**,其余组忽略);缺省/100 = 必触发。示例 30 表示次数条件达成后掷骰 30%; - `pity_add`:保底叠加(百分点,仅 atking/atked 生效);未触发时为该技能累积下次概率增量,触发成功后清零、封顶 100。示例 `t_chance:30, pity_add:20` → 30/50/70/90/100 递进; +- 触发组 `desc` 模板可额外使用 `{t_chance}`(触发概率,缺省渲染 100)与 `{pity_add}`(保底叠加,缺省渲染 0)占位符;模板显式使用 `{t_chance}` 时触发语境不再自动追加"(N%概率)"后缀,避免重复; - `name` 为组对外展示名(写在该组首档),留空回退底座名; - 复活:在 `dead` 某条目 `overrides` 配 `revive_hp`(回血%)+ `revive_count`(次数上限); - 无触发组时写空对象 `{}`,**不要省略字段**。