新增HeroSkillDesc工具类动态生成技能描述字符串 修正heroSet.ts中的技能触发器描述文本 优化HInfoComp组件替换硬编码的英雄信息 完善hnode预制体的info标签配置与样式
46 lines
1.6 KiB
TypeScript
46 lines
1.6 KiB
TypeScript
import { heroInfo, SkillTriggerName, SkillTriggerType } from "./heroSet";
|
|
import { FieldSkillSet, SkillSet } from "./SkillSet";
|
|
|
|
const TRIGGER_KEYS: SkillTriggerType[] = [
|
|
SkillTriggerType.Call,
|
|
SkillTriggerType.Dead,
|
|
SkillTriggerType.FStart,
|
|
SkillTriggerType.FEnd,
|
|
SkillTriggerType.Atking,
|
|
SkillTriggerType.Atked,
|
|
];
|
|
|
|
export function buildSkillDesc(hero: heroInfo): string {
|
|
const lines: string[] = [];
|
|
|
|
for (const key of TRIGGER_KEYS) {
|
|
const arr = hero[key] as { s_uuid: number; t_num: number }[] | undefined;
|
|
if (!arr?.length) continue;
|
|
const triggerName = SkillTriggerName[key] ?? key;
|
|
for (const item of arr) {
|
|
const skill = SkillSet[item.s_uuid];
|
|
if (!skill) continue;
|
|
const suffix = item.t_num > 1 ? ` (每${item.t_num}次触发)` : "";
|
|
lines.push(`${triggerName}: ${skill.name}${suffix}`);
|
|
}
|
|
}
|
|
|
|
const fieldUuids = hero[SkillTriggerType.Field] as number[] | undefined;
|
|
if (fieldUuids?.length) {
|
|
const triggerName = SkillTriggerName[SkillTriggerType.Field] ?? "光环";
|
|
for (const uuid of fieldUuids) {
|
|
const fs = FieldSkillSet[uuid];
|
|
if (fs) lines.push(`${triggerName}: ${fs.info}`);
|
|
}
|
|
}
|
|
|
|
const revive = hero[SkillTriggerType.Revive] as { s_uuid: number; r_num: number; upr: number } | undefined;
|
|
if (revive) {
|
|
const triggerName = SkillTriggerName[SkillTriggerType.Revive] ?? "复活";
|
|
const skill = SkillSet[revive.s_uuid];
|
|
if (skill) lines.push(`${triggerName}: ${skill.name}`);
|
|
}
|
|
|
|
return lines.join("\n");
|
|
}
|