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"); }