refactor: 将代码中的card_lv统一替换为rarity

本次提交完成了全项目范围内术语的统一替换,将原本指代卡牌品质/等级的card_lv字段全部重命名为rarity,对齐了设计文档中的命名规范,避免了术语混淆:
1.  更新了所有配置文件、组件类、数据结构中的字段定义
2.  同步修改了注释、文档说明中的相关表述
3.  修正了英雄、技能、装备卡牌的品质显示逻辑
4.  调整了背景颜色切换、属性计算等相关业务逻辑
This commit is contained in:
pan
2026-09-02 16:42:54 +08:00
parent 6620b67103
commit d9bccd7c93
36 changed files with 312 additions and 312 deletions

View File

@@ -98,13 +98,13 @@ interface HeroConfigFile {
| 不变量 | 依赖方 |
|---|---|
| 4 空格缩进、双引号、行尾无分号风格跟随原文件 | 全部 diff 工具 |
| 条目头字段单行紧凑(`uuid, name, path, fac, card_lv, lv, type, grow_type, role, hp, ap, def` 一行),触发块换行展开 | 现有阅读习惯 |
| 按 uuid 段位插入注释块(`// ===== card_lv=5(5401-5499)=====`) | 段位规则 |
| 条目头字段单行紧凑(`uuid, name, path, fac, rarity, lv, type, grow_type, role, hp, ap, def` 一行),触发块换行展开 | 现有阅读习惯 |
| 按 uuid 段位插入注释块(`// ===== rarity=5(5401-5499)=====`) | 段位规则 |
| **档位数组 lv 严格升序**(lv_entries / LvTriggerEntry[] / field / revive / ap_bonus / hp_bonus) | `HeroSkillDesc.ts:384` 的 `filter(e=>e.lv<=lv).pop()` |
| 数字键无引号、保持插入序 | Record 索引 |
| `ccd: 0` 占位字段不丢(HSkillInfo 必填) | Hero.ts 加载 |
| 字段顺序稳定(skills → atked/atking → dead → fstart → field → revive → info) | 减少 diff 噪音 |
| HeroList 按 card_lv 分组升序 | CardSet 卡池派生顺序 |
| HeroList 按 rarity 分组升序 | CardSet 卡池派生顺序 |
| `info: ""` 收尾、`path/icon/info` 字符串原样不转义变换 | 文本保真 |
| **文件头 BOM 原样保留**(读 utf-8 后首字符检测写回) | 避免整文件 diff |
@@ -163,8 +163,8 @@ interface HeroConfigFile {
| 规则 | 说明 |
|---|---|
| lv > 6 档位 | `HERO_MAX_LV=6` 封顶,lv7/9 档当前永不生效(数据先行,运行时扩展上限后自动生效) |
| card_lv 1/2/3 配了 field | 应改走 ap_bonus/hp_bonus(30/40/50% 补偿) |
| card_lv 4/5 的 lv9 未配 field | 按设计指引应有驻场光环 |
| rarity 1/2/3 配了 field | 应改走 ap_bonus/hp_bonus(30/40/50% 补偿) |
| rarity 4/5 的 lv9 未配 field | 按设计指引应有驻场光环 |
| infos 条数与实际档位不匹配 | 面板逐条展示依赖 |
## 六、UI 设计
@@ -177,7 +177,7 @@ interface HeroConfigFile {
┌ [强度评估 | 英雄配置●] ────────────────────────── ●=有未保存改动 ┐
├────────────┬──────────────────────────────┬─────────┤
│ 🔍搜索 │ 锚点导航: 基础|技能|触发|光环|复活|加成|说明 │ 校验抽屉 │
│ ▾LV5 │ ①基础: uuid/name/path/card_lv/role/type │ ✕2 ⚠1 │
│ ▾LV5 │ ①基础: uuid/name/path/rarity/role/type │ ✕2 ⚠1 │
│ ●5401 刀刀│ hp/ap/def 基准+增量双输入(显示合计) │ 点击 │
│ ▾LV4 … │ ②技能: [普攻|大招] SkillPicker + 底座只读条 │ 定位 │
│ [+新建] │ + OverridesEditor + 档位矩阵 │ [保存] │
@@ -188,7 +188,7 @@ interface HeroConfigFile {
| 组件 | 职责 | 数据源 | 校验 |
|---|---|---|---|
| HeroListView | card_lv 分组、搜索、dirty 圆点、新建入口 | heroSet.data.json | – |
| HeroListView | rarity 分组、搜索、dirty 圆点、新建入口 | heroSet.data.json | – |
| BaseForm | 基础字段;hp/ap/def 基准+增量双输入 | HERO_ROLE_BASE | uuid 段位/重复;role→type 联动锁定 |
| SkillPicker | 自制搜索下拉选 SkillSet,显示 `6200 火焰喷射 · 远程 · AOE` | SkillSet | 普攻限 6001~6012 按 IType 过滤;大招按形态过滤;辅助技能放行 |
| SkillBasePanel | 底座关键参数只读展示(ap/cd/hit/IType/RType/DTType) | SkillSet | – |
@@ -196,14 +196,14 @@ interface HeroConfigFile {
| LvMatrix | lv 档位矩阵(技能 lv_entries / 触发档 / field / revive 复用变体):行=lv1/2/3/5/7/9、列=参数,可整行复制加档;**lv7/9 行黄色边框+⚠「运行时 HERO_MAX_LV=6 暂不生效」** | 当前英雄 | lv 升序不重复;t_num≥1 |
| TriggerGroupEditor | s_uuid 卡片嵌套档位行(外层技能组、内层档位),保存时统一升序 | SkillSet | s_uuid 存在性 |
| InfosEditor | 9 档分级说明文本 | 当前英雄 | 条数与档位对照提示 |
| BonusEditor | ap_bonus/hp_bonus 档位(lv+value) | 当前英雄 | 仅 card_lv1/2/3 提示使用 |
| BonusEditor | ap_bonus/hp_bonus 档位(lv+value) | 当前英雄 | 仅 rarity1/2/3 提示使用 |
| ValidationPanel | 错误/警告列表(区域·字段·消息),点击 scrollIntoView + 字段红框高亮;保存按钮 error>0 时禁用 | 校验器输出 | – |
### 6.3 关键交互
- **ui- 组件与 Vue 混用**:`isCustomElement` 已配置;ui- 元素 `v-model` 不生效,须 `:value` + `@change`/`@confirm` 手动双向;属性用 kebab-case
- **自制组件**(ui- 缺失):档位矩阵表格、可搜索 SkillPicker、BuffList 分组下拉、校验列表、确认 modal
- **新建向导**:单屏 modal——选 card_lv → role →(形态按映射自动锁定为只读徽章)→ 模板预填:uuid 取段位内最小空位、职业基准属性(增量 0)、按指引 2.6 能力组合范式推荐技能(tank→6004+6301、support→6009+6302 等)、lv3/5/7 空档骨架;提供「空白模板」选项
- **新建向导**:单屏 modal——选 rarity → role →(形态按映射自动锁定为只读徽章)→ 模板预填:uuid 取段位内最小空位、职业基准属性(增量 0)、按指引 2.6 能力组合范式推荐技能(tank→6004+6301、support→6009+6302 等)、lv3/5/7 空档骨架;提供「空白模板」选项
- **状态管理**:dirty 深度 watch(加载时存 snapshot 对比),列表项与 tab 标题打点;切换英雄/切 tab 弹确认(放弃/留下);底座加载沿用 spawn 异步 + loading 态
- **保存流程**:error>0 → 保存禁用(tooltip 显示错误数);仅 warning → 自制 modal 确认后执行保存流水线