docs(server/data,script): 更新技能触发组文档与文本渲染逻辑
1. 补充技能触发组desc占位符使用说明 2. 新增触发概率与保底叠加值的参数传递 3. 优化技能文本渲染,避免概率描述重复展示
This commit is contained in:
@@ -518,9 +518,13 @@ function collectTriggerTiers(hero: heroInfo, type: SkillTriggerType, skillUuid:
|
|||||||
desc: e.desc ?? inherit,
|
desc: e.desc ?? inherit,
|
||||||
ownDesc: e.desc,
|
ownDesc: e.desc,
|
||||||
tNum: e.t_num,
|
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 };
|
return { tiers, label };
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -531,11 +535,11 @@ function buildTierLines(tiers: ISkillTierInfo[], triggerLabel: string): HeroSkil
|
|||||||
const t = tiers[i];
|
const t = tiers[i];
|
||||||
if (i === 0) {
|
if (i === 0) {
|
||||||
// 技能 1 级:完整能力 + 数值
|
// 技能 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 });
|
lines.push({ sLv: t.sLv, heroLv: t.heroLv, text: triggerLabel ? `${triggerLabel}, ${text}` : text });
|
||||||
} else if (t.ownDesc) {
|
} else if (t.ownDesc) {
|
||||||
// 提升档:该档显式配置了模板(如护盾/治疗等 diff 标签语义不达的技能),策划表述优先
|
// 提升档:该档显式配置了模板(如护盾/治疗等 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 {
|
} else {
|
||||||
// 提升档:未配置模板,给相对上一级的提升
|
// 提升档:未配置模板,给相对上一级的提升
|
||||||
const diff = buildTierDiff(tiers[i - 1], t);
|
const diff = buildTierDiff(tiers[i - 1], t);
|
||||||
|
|||||||
@@ -75,6 +75,7 @@
|
|||||||
- `t_num`:每 n 次普攻(atking)/受击(atked)触发一次;fstart/fend 为每回合开始/结束固定触发 1 次,`t_num` 恒填 1;
|
- `t_num`:每 n 次普攻(atking)/受击(atked)触发一次;fstart/fend 为每回合开始/结束固定触发 1 次,`t_num` 恒填 1;
|
||||||
- `t_chance`:触发概率(百分点 0~100,**仅 atking/atked 生效**,其余组忽略);缺省/100 = 必触发。示例 30 表示次数条件达成后掷骰 30%;
|
- `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 递进;
|
- `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` 为组对外展示名(写在该组首档),留空回退底座名;
|
- `name` 为组对外展示名(写在该组首档),留空回退底座名;
|
||||||
- 复活:在 `dead` 某条目 `overrides` 配 `revive_hp`(回血%)+ `revive_count`(次数上限);
|
- 复活:在 `dead` 某条目 `overrides` 配 `revive_hp`(回血%)+ `revive_count`(次数上限);
|
||||||
- 无触发组时写空对象 `{}`,**不要省略字段**。
|
- 无触发组时写空对象 `{}`,**不要省略字段**。
|
||||||
|
|||||||
Reference in New Issue
Block a user