--- name: HeroInfo_to_CardPoolList description: 将 Cocos Creator 项目中 heroSet.ts 的 HeroInfo 全量同步到 CardSet.ts 的 CardPoolList。只要用户提到“根据 HeroInfo 自动补全/同步 CardPoolList”“按 cards_lv 映射 CardPoolList.lv”“按 HeroInfo.lv 映射 hero_lv”就应立即使用本技能执行批量转换与校验。 --- # HeroInfo_to_CardPoolList ## 适用场景 当用户提出以下目标时使用本技能: - 把 `HeroInfo` 里的所有英雄补进 `CardPoolList` - 保证卡池条目和英雄配置一一对应 - 批量同步等级映射关系,避免手动漏配 ## 固定输入位置 - 英雄源:`assets/script/game/common/config/heroSet.ts` - 卡池目标:`assets/script/game/common/config/CardSet.ts` ## 固定映射规则 - 仅处理英雄条目(`CardType.Hero`) - `CardPoolList.uuid = HeroInfo.uuid` - `CardPoolList.lv = HeroInfo.cards_lv` - `CardPoolList.hero_lv = HeroInfo.lv` - 英雄条目按 `CardPoolList.lv` 升序排序(同级按 `uuid` 升序) - 未指定时,英雄卡默认使用: - `type: CardType.Hero` - `cost: 3` - `weight: 25` ## 执行流程 1. 读取 `heroSet.ts`,定位 `export const HeroInfo` 对象。 2. 解析所有英雄项(按实际对象内容为准,不依赖号段硬编码)。 3. 提取每个英雄的 `uuid`、`cards_lv`、`lv`。 4. 读取 `CardSet.ts` 中 `CardPoolList`。 5. 仅对 `type: CardType.Hero` 条目做“新增或更新”: - 已存在同 `uuid`:更新 `lv` 与 `hero_lv` - 不存在同 `uuid`:按默认字段新增 6. 对全部英雄卡条目按 `lv` 升序重排(同级按 `uuid` 升序)。 7. 非英雄卡(如 `Special/Skill/Buff/Debuff`)保持原样和原顺序。 8. 输出结果后做一致性校验: - `HeroInfo` 英雄数量 == `CardPoolList` 英雄数量 - 每个英雄 `uuid` 都能在 `CardPoolList` 找到 - 每个条目都满足 `lv=cards_lv` 且 `hero_lv=HeroInfo.lv` - 英雄条目顺序满足 `lv` 升序 ## 输出要求 - 优先直接修改 `CardSet.ts`,不新建额外文档文件。 - 最终反馈必须包含: - 新增了多少英雄条目 - 更新了多少已有英雄条目 - 是否存在无法映射的异常条目 ## 失败处理 出现以下情况必须停止并明确报错: - `HeroInfo` 结构不存在或语法异常 - 英雄缺失 `uuid/cards_lv/lv` 任一关键字段 - `CardPoolList` 结构不存在 ## 质量门槛 - 不改动与本任务无关的字段 - 不改变非英雄卡逻辑 - 修改后需确认 TypeScript 诊断无新增错误