feat: 同步 HeroInfo 到 CardPoolList 并排序英雄卡

根据 heroSet.ts 中的 HeroInfo 配置,更新 CardSet.ts 的 CardPoolList。
- 新增英雄卡条目 5012 和 5013
- 更新现有英雄卡的 lv 字段以匹配 HeroInfo.cards_lv
- 按 lv 升序对英雄卡进行排序,保持非英雄卡顺序不变
This commit is contained in:
walkpan
2026-03-20 20:56:36 +08:00
parent 7c9bbea450
commit 750097dcf7
2 changed files with 87 additions and 16 deletions

View File

@@ -0,0 +1,70 @@
---
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 诊断无新增错误

View File

@@ -32,24 +32,25 @@ export interface CardConfig {
export const CARD_POOL_INIT_LEVEL = CardKind.LV1
/** 卡池等级上限 */
export const CARD_POOL_MAX_LEVEL = CardKind.LV6
/** 英雄最高等级限制 */
export const CARD_HERO_MAX_LEVEL = 3
/** 基础卡池英雄、技能、Buff、Debuff */
export const CardPoolList: CardConfig[] = [
{ uuid: 5001, type: CardType.Hero, cost: 3, weight: 25, lv: 1 ,hero_lv:1,},
{ uuid: 5002, type: CardType.Hero, cost: 3, weight: 25, lv: 3 ,hero_lv:1,},
{ uuid: 5003, type: CardType.Hero, cost: 3, weight: 25, lv: 2 ,hero_lv:1,},
{ uuid: 5004, type: CardType.Hero, cost: 3, weight: 25, lv: 4 ,hero_lv:1,},
{ uuid: 5101, type: CardType.Hero, cost: 3, weight: 25, lv: 1 ,hero_lv:1,},
{ uuid: 5102, type: CardType.Hero, cost: 3, weight: 25, lv: 2 ,hero_lv:1,},
{ uuid: 5103, type: CardType.Hero, cost: 3, weight: 25, lv: 3 ,hero_lv:1,},
{ uuid: 5104, type: CardType.Hero, cost: 3, weight: 25, lv: 4 ,hero_lv:1,},
{ uuid: 5105, type: CardType.Hero, cost: 3, weight: 25, lv: 5 ,hero_lv:1,},
{ uuid: 5201, type: CardType.Hero, cost: 3, weight: 25, lv: 1 ,hero_lv:1,},
{ uuid: 5202, type: CardType.Hero, cost: 3, weight: 25, lv: 3 ,hero_lv:1,},
{ uuid: 5301, type: CardType.Hero, cost: 3, weight: 25, lv: 1 ,hero_lv:1,},
{ uuid: 5302, type: CardType.Hero, cost: 3, weight: 25, lv: 2 ,hero_lv:1,},
{ uuid: 5303, type: CardType.Hero, cost: 3, weight: 25, lv: 4 ,hero_lv:1,},
{ uuid: 5304, type: CardType.Hero, cost: 3, weight: 25, lv: 6 ,hero_lv:1,},
{ uuid: 5001, type: CardType.Hero, cost: 3, weight: 25, lv: 1, hero_lv: 1 },
{ uuid: 5101, type: CardType.Hero, cost: 3, weight: 25, lv: 1, hero_lv: 1 },
{ uuid: 5201, type: CardType.Hero, cost: 3, weight: 25, lv: 1, hero_lv: 1 },
{ uuid: 5301, type: CardType.Hero, cost: 3, weight: 25, lv: 1, hero_lv: 1 },
{ uuid: 5003, type: CardType.Hero, cost: 3, weight: 25, lv: 2, hero_lv: 1 },
{ uuid: 5012, type: CardType.Hero, cost: 3, weight: 25, lv: 2, hero_lv: 1 },
{ uuid: 5302, type: CardType.Hero, cost: 3, weight: 25, lv: 2, hero_lv: 1 },
{ uuid: 5002, type: CardType.Hero, cost: 3, weight: 25, lv: 3, hero_lv: 1 },
{ uuid: 5013, type: CardType.Hero, cost: 3, weight: 25, lv: 3, hero_lv: 1 },
{ uuid: 5202, type: CardType.Hero, cost: 3, weight: 25, lv: 3, hero_lv: 1 },
{ uuid: 5004, type: CardType.Hero, cost: 3, weight: 25, lv: 4, hero_lv: 1 },
{ uuid: 5104, type: CardType.Hero, cost: 3, weight: 25, lv: 4, hero_lv: 1 },
{ uuid: 5303, type: CardType.Hero, cost: 3, weight: 25, lv: 4, hero_lv: 1 },
{ uuid: 5105, type: CardType.Hero, cost: 3, weight: 25, lv: 5, hero_lv: 1 },
{ uuid: 5304, type: CardType.Hero, cost: 3, weight: 25, lv: 6, hero_lv: 1 },
{ uuid: 7001, type: CardType.Special, cost: 1, weight: 20, lv: 1 },
]