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

@@ -96,7 +96,7 @@ export class MissionHeroComp extends CCComp {
/** 是否正在消费召唤队列(防止并发) */
is_processing_queue: boolean = false
/** 召唤请求队列:按职业优先级排序后串行登场 */
summon_queue: { uuid: number; hero_lv: number; card_lv: number; role: HRole }[] = []
summon_queue: { uuid: number; hero_lv: number; rarity: number; role: HRole }[] = []
/** 英雄出生序计数器(编队排队/渲染排序的稳定决胜) */
private heroSpawnOrder = 0
/** 预留英雄列表 */
@@ -160,12 +160,12 @@ export class MissionHeroComp extends CCComp {
/**
* 召唤请求入口:
* 从事件参数中提取 uuid / hero_lv / card_lv,放入串行队列。
* 从事件参数中提取 uuid / hero_lv / rarity,放入串行队列。
* 队列按职业优先级(坦克→战士→刺客→射手→法师→辅助,HRole 升序)排序,
* 保证高优先级职业先登场。
*
* @param event 事件名
* @param args { uuid, hero_lv, card_lv }
* @param args { uuid, hero_lv, rarity }
*/
private async call_hero(event: string, args: any) {
const payload = args ?? event;
@@ -174,10 +174,10 @@ export class MissionHeroComp extends CCComp {
// payload.hero_lv 保留作为下限兜底,防止外部显式指定更高等级
const outer_lv = smc.getHeroOuterLv(uuid);
const hero_lv = Math.max(outer_lv, Math.max(1, Number(payload?.hero_lv ?? 1)));
const card_lv = Math.max(1, Number(payload?.card_lv ?? 1));
const rarity = Math.max(1, Number(payload?.rarity ?? 1));
const role = HeroInfo[uuid]?.role ?? HRole.Support;
this.summon_queue.push({ uuid, hero_lv, card_lv, role });
this.summon_queue.push({ uuid, hero_lv, rarity, role });
// 按职业优先级稳定排序:HRole 升序,同职业保持入队先后
this.summon_queue.sort((a, b) => a.role - b.role);
this.processSummonQueue();
@@ -224,10 +224,10 @@ export class MissionHeroComp extends CCComp {
*
* @param uuid 英雄 UUID
* @param hero_lv 英雄等级
* @param card_lv 卡牌等级(驱动 bg_node 颜色)
* @param rarity 卡牌等级(驱动 bg_node 颜色)
* @returns 创建的 Hero 实体
*/
private spawnHeroAt(uuid: number, hero_lv: number, card_lv: number) {
private spawnHeroAt(uuid: number, hero_lv: number, rarity: number) {
let hero = ecs.getEntity<Hero>(Hero);
let scale = 1
const role = HeroInfo[uuid]?.role ?? HRole.Support;
@@ -241,7 +241,7 @@ export class MissionHeroComp extends CCComp {
const landingPos = slot.landingPos;
let spawnPos: Vec3 = v3(landingPos.x, landingPos.y + MissionHeroComp.HERO_DROP_HEIGHT, 0);
hero.load(spawnPos, scale, uuid, landingPos.y, hero_lv, card_lv, finalPosIndex);
hero.load(spawnPos, scale, uuid, landingPos.y, hero_lv, rarity, finalPosIndex);
// 登记出生序,供编队排队/渲染排序做稳定决胜
const move = hero.get(MoveComp);
@@ -289,7 +289,7 @@ export class MissionHeroComp extends CCComp {
while (this.summon_queue.length > 0) {
const payload = this.summon_queue.shift();
if (!payload) continue;
this.spawnHeroAt(payload.uuid, payload.hero_lv, payload.card_lv);
this.spawnHeroAt(payload.uuid, payload.hero_lv, payload.rarity);
// 登场间隔:让掉落动画逐个播放,避免同帧堆叠
if (this.summon_queue.length > 0) {
await new Promise<void>(resolve => setTimeout(resolve, MissionHeroComp.SUMMON_INTERVAL * 1000));