refactor: 调整卡牌等级逻辑,新增基础池等级字段

1. 新增base_pool_lv字段存储英雄初始池等级
2. 替换多处直接使用pool_lv的逻辑,优先使用base_pool_lv
3. 移除预制体中废弃的pool_lv_node节点
This commit is contained in:
panw
2026-05-28 10:04:39 +08:00
parent f7f6c57b56
commit 9ddf5b99c5
8 changed files with 13 additions and 12 deletions

View File

@@ -3453,12 +3453,7 @@
"BG_node": { "BG_node": {
"__id__": 2 "__id__": 2
}, },
"pool_lv_node": { "lvl_node": null,
"__id__": 172
},
"lvl_node": {
"__id__": 187
},
"_id": "" "_id": ""
}, },
{ {

View File

@@ -53,6 +53,7 @@ export interface CardConfig {
pool_lv: CardLV pool_lv: CardLV
hero_lv?: number hero_lv?: number
card_lv?:number card_lv?:number
base_pool_lv?: number
// 技能卡扩展属性 // 技能卡扩展属性
name?: string // 卡牌名称 name?: string // 卡牌名称
@@ -116,7 +117,8 @@ HeroList.forEach(uuid => {
weight: baseWeight, weight: baseWeight,
pool_lv: pLv as CardLV, pool_lv: pLv as CardLV,
kind: CKind.Hero, kind: CKind.Hero,
hero_lv: targetHeroLv hero_lv: targetHeroLv,
base_pool_lv: basePoolLv
}); });
} }
}); });

View File

@@ -111,6 +111,7 @@ export class Hero extends ecs.Entity {
model.hero_name = hero.name; model.hero_name = hero.name;
model.lv = hero_lv; model.lv = hero_lv;
model.pool_lv = pool_lv; model.pool_lv = pool_lv;
model.base_pool_lv = hero.pool_lv ?? 1;
model.type = hero.type; model.type = hero.type;
model.fac = FacSet.HERO; model.fac = FacSet.HERO;
model.dis = hero.dis ?? 720; model.dis = hero.dis ?? 720;

View File

@@ -20,6 +20,7 @@ export class HeroAttrsComp extends ecs.Comp {
hero_name: string = "hero"; hero_name: string = "hero";
lv: number = 1; lv: number = 1;
pool_lv: number = 1; pool_lv: number = 1;
base_pool_lv: number = 1;
type: number = 0; // 0近战 1远程 2辅助 type: number = 0; // 0近战 1远程 2辅助
fac: number = 0; // 0:hero 1:monster fac: number = 0; // 0:hero 1:monster
// ==================== 基础属性(有初始值) ==================== // ==================== 基础属性(有初始值) ====================

View File

@@ -548,7 +548,7 @@ export class CardComp extends CCComp {
this.isLongPressed = true; this.isLongPressed = true;
const heroUuid = this.card_uuid; const heroUuid = this.card_uuid;
const heroLv = Math.max(1, this.cardData.hero_lv ?? 1); const heroLv = Math.max(1, this.cardData.hero_lv ?? 1);
const poolLv = Math.max(1, this.cardData.pool_lv ?? 1); const poolLv = Math.max(1, this.cardData.base_pool_lv ?? this.cardData.pool_lv ?? 1);
oops.gui.remove(UIID.HInfo); oops.gui.remove(UIID.HInfo);
oops.gui.open(UIID.HInfo, { heroUuid, heroLv, poolLv }); oops.gui.open(UIID.HInfo, { heroUuid, heroLv, poolLv });
} }
@@ -607,10 +607,11 @@ export class CardComp extends CCComp {
const kindName = CKind[this.cardData.kind]; const kindName = CKind[this.cardData.kind];
if (this.BG_node) { if (this.BG_node) {
const bgLv = this.cardData.base_pool_lv ?? this.cardData.pool_lv;
this.BG_node.children.forEach(child => { this.BG_node.children.forEach(child => {
child.active = (child.name === kindName); child.active = (child.name === kindName);
const bg = child.getComponent(CardBgComp); const bg = child.getComponent(CardBgComp);
if (bg) child.active ? bg.apply(this.cardData.pool_lv) : bg.clear(); if (bg) child.active ? bg.apply(bgLv) : bg.clear();
}); });
} }

View File

@@ -220,10 +220,11 @@ export class CardLiteComp extends CCComp {
const kindName = CKind[this.cardData.kind]; const kindName = CKind[this.cardData.kind];
if (this.BG_node) { if (this.BG_node) {
const bgLv = this.cardData.base_pool_lv ?? this.cardData.pool_lv;
this.BG_node.children.forEach(child => { this.BG_node.children.forEach(child => {
child.active = (child.name === kindName); child.active = (child.name === kindName);
const bg = child.getComponent(CardBgComp); const bg = child.getComponent(CardBgComp);
if (bg) child.active ? bg.apply(this.cardData.pool_lv) : bg.clear(); if (bg) child.active ? bg.apply(bgLv) : bg.clear();
}); });
} }

View File

@@ -275,7 +275,7 @@ export class HInfoComp extends CCComp {
this.BG_node.children.forEach(child => { this.BG_node.children.forEach(child => {
child.active = (child.name === kindName); child.active = (child.name === kindName);
const bg = child.getComponent(CardBgComp); const bg = child.getComponent(CardBgComp);
if (bg) child.active ? bg.apply(this.model.pool_lv ?? 1) : bg.clear(); if (bg) child.active ? bg.apply(this.model.base_pool_lv ?? this.model.pool_lv ?? 1) : bg.clear();
}); });
} }

View File

@@ -189,7 +189,7 @@ export class VictoryComp extends CCComp {
if (hbNode) hbNode.active = false; if (hbNode) hbNode.active = false;
// ---- 卡牌等级标识 ---- // ---- 卡牌等级标识 ----
const cardLvStr = `lv${mvp.pool_lv || 1}`; const cardLvStr = `lv${mvp.base_pool_lv || mvp.pool_lv || 1}`;
if (lv_node) { if (lv_node) {
lv_node.children.forEach(child => { lv_node.children.forEach(child => {
if (child.name === "light") { if (child.name === "light") {