From 52ed41bec151e15db6c28b2fd8739205fba81d64 Mon Sep 17 00:00:00 2001 From: panw Date: Thu, 2 Apr 2026 17:36:00 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E7=BB=9F=E4=B8=80=E8=8B=B1?= =?UTF-8?q?=E9=9B=84=E5=B1=9E=E6=80=A7=E4=B8=AD=E5=8D=A1=E7=89=8C=E7=AD=89?= =?UTF-8?q?=E7=BA=A7=E5=AD=97=E6=AE=B5=E5=90=8D=E7=A7=B0=E4=B8=BApool=5Flv?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 将HeroAttrsComp中的card_lv字段重命名为pool_lv,以更准确地反映其表示英雄池等级的含义。同时更新所有相关引用点,包括HInfoComp的显示逻辑、Hero的加载方法以及MissionHeroCompComp的召唤队列和合成逻辑,确保数据一致性。 --- assets/script/game/hero/Hero.ts | 4 +-- assets/script/game/hero/HeroAttrsComp.ts | 2 +- assets/script/game/map/HInfoComp.ts | 2 +- assets/script/game/map/MissionHeroComp.ts | 32 +++++++++++------------ 4 files changed, 20 insertions(+), 20 deletions(-) diff --git a/assets/script/game/hero/Hero.ts b/assets/script/game/hero/Hero.ts index a74f4582..5d24d98c 100644 --- a/assets/script/game/hero/Hero.ts +++ b/assets/script/game/hero/Hero.ts @@ -63,7 +63,7 @@ export class Hero extends ecs.Entity { * 2) 初始化表现与属性数据 * 3) 播放下落入场并在落地后启用碰撞与移动 */ - load(pos: Vec3 = Vec3.ZERO,scale:number = 1,uuid:number=1001, dropToY:number = pos.y,hero_lv:number=1, card_lv:number=1) { + load(pos: Vec3 = Vec3.ZERO,scale:number = 1,uuid:number=1001, dropToY:number = pos.y,hero_lv:number=1, pool_lv:number=1) { // 英雄始终朝右,表现缩放固定为正向 scale = 1 // 英雄等级在当前规则下上限为 3,避免超配表范围 @@ -98,7 +98,7 @@ export class Hero extends ecs.Entity { model.hero_uuid = uuid; model.hero_name = hero.name; model.lv = hero_lv; - model.card_lv = card_lv; + model.pool_lv = pool_lv; model.type = hero.type; model.fac = FacSet.HERO; diff --git a/assets/script/game/hero/HeroAttrsComp.ts b/assets/script/game/hero/HeroAttrsComp.ts index 2efddcac..b4012577 100644 --- a/assets/script/game/hero/HeroAttrsComp.ts +++ b/assets/script/game/hero/HeroAttrsComp.ts @@ -14,7 +14,7 @@ export class HeroAttrsComp extends ecs.Comp { hero_uuid: number = 1001; hero_name: string = "hero"; lv: number = 1; - card_lv: number = 1; + pool_lv: number = 1; type: number = 0; // 0近战 1远程 2辅助 fac: number = 0; // 0:hero 1:monster // ==================== 基础属性(有初始值) ==================== diff --git a/assets/script/game/map/HInfoComp.ts b/assets/script/game/map/HInfoComp.ts index 8ce1d824..562d622b 100644 --- a/assets/script/game/map/HInfoComp.ts +++ b/assets/script/game/map/HInfoComp.ts @@ -57,7 +57,7 @@ export class HInfoComp extends CCComp { const activeFrameNode = isHighLevel ? this.HF_node : this.NF_node; if (activeFrameNode) { - const cardLvStr = `lv${this.model.card_lv ?? 1}`; + const cardLvStr = `lv${this.model.pool_lv ?? 1}`; activeFrameNode.children.forEach(child => { child.active = (child.name === cardLvStr); }); diff --git a/assets/script/game/map/MissionHeroComp.ts b/assets/script/game/map/MissionHeroComp.ts index a302d00d..dcfe167a 100644 --- a/assets/script/game/map/MissionHeroComp.ts +++ b/assets/script/game/map/MissionHeroComp.ts @@ -39,7 +39,7 @@ export class MissionHeroCompComp extends CCComp { /** 是否正在消费召唤队列,防止并发处理 */ is_processing_queue:boolean=false /** 召唤请求队列,保证召唤与合成串行 */ - summon_queue:{ uuid: number; hero_lv: number; card_lv: number }[]=[] + summon_queue:{ uuid: number; hero_lv: number; pool_lv: number }[]=[] /** 预留英雄列表 */ heros:any=[] onLoad(){ @@ -87,18 +87,18 @@ export class MissionHeroCompComp extends CCComp { const payload = args ?? event; const uuid = Number(payload?.uuid ?? 1001); const hero_lv = Math.max(1, Number(payload?.hero_lv ?? 1)); - const card_lv = Math.max(1, Number(payload?.pool_lv ?? 1)); - this.summon_queue.push({ uuid, hero_lv, card_lv }); + const pool_lv = Math.max(1, Number(payload?.pool_lv ?? 1)); + this.summon_queue.push({ uuid, hero_lv, pool_lv }); this.processSummonQueue(); } /** 添加英雄:固定出生点上方生成,再落至落点 */ - private addHero(uuid:number=1001,hero_lv:number=1, card_lv:number=1) { + private addHero(uuid:number=1001,hero_lv:number=1, pool_lv:number=1) { console.log("addHero uuid:",uuid) let hero = ecs.getEntity(Hero); let scale = 1 const landingPos = this.resolveHeroLandingPos(uuid); let spawnPos:Vec3 = v3(landingPos.x, landingPos.y + MissionHeroCompComp.HERO_DROP_HEIGHT, 0); - hero.load(spawnPos,scale,uuid,landingPos.y,hero_lv,card_lv); + hero.load(spawnPos,scale,uuid,landingPos.y,hero_lv,pool_lv); return hero; } @@ -117,8 +117,8 @@ export class MissionHeroCompComp extends CCComp { } /** 添加合成后的新英雄,并覆盖为聚合后的属性 */ - private addMergedHero(uuid:number, hero_lv:number, card_lv:number, ap:number, hp_max:number): number { - const hero = this.addHero(uuid, hero_lv, card_lv); + private addMergedHero(uuid:number, hero_lv:number, pool_lv:number, ap:number, hp_max:number): number { + const hero = this.addHero(uuid, hero_lv, pool_lv); const model = hero.get(HeroAttrsComp); if (!model) return hero_lv; model.ap = Math.max(0, ap); @@ -186,7 +186,7 @@ export class MissionHeroCompComp extends CCComp { while (this.summon_queue.length > 0) { const payload = this.summon_queue.shift(); if (!payload) continue; - await this.handleSingleSummon(payload.uuid, payload.hero_lv, payload.card_lv); + await this.handleSingleSummon(payload.uuid, payload.hero_lv, payload.pool_lv); } } finally { this.is_processing_queue = false; @@ -194,8 +194,8 @@ export class MissionHeroCompComp extends CCComp { } /** 处理单次召唤:先生成,再检测是否触发合成,再尝试链式合成 */ - private async handleSingleSummon(uuid: number, hero_lv: number, card_lv: number = 1) { - this.addHero(uuid, hero_lv, card_lv); + private async handleSingleSummon(uuid: number, hero_lv: number, pool_lv: number = 1) { + this.addHero(uuid, hero_lv, pool_lv); if (!this.canMergeLevel(hero_lv)) return; const needCount = this.getMergeNeedCount(); const aliveHeroes = this.getAliveHeroes(); @@ -203,8 +203,8 @@ export class MissionHeroCompComp extends CCComp { if (mergeHeroes.length !== needCount) return; this.is_merging = true; try { - const mergedLv = await this.mergeGroupHeroes(mergeHeroes, uuid, hero_lv, card_lv); - await this.tryChainMerge(uuid, mergedLv, card_lv); + const mergedLv = await this.mergeGroupHeroes(mergeHeroes, uuid, hero_lv, pool_lv); + await this.tryChainMerge(uuid, mergedLv, pool_lv); } finally { this.is_merging = false; } @@ -258,7 +258,7 @@ export class MissionHeroCompComp extends CCComp { } /** 执行一次完整合成:聚合属性、销毁素材、播放特效、生成高一级英雄 */ - private async mergeGroupHeroes(mergeHeroes: Hero[], uuid: number, hero_lv: number, card_lv: number): Promise { + private async mergeGroupHeroes(mergeHeroes: Hero[], uuid: number, hero_lv: number, pool_lv: number): Promise { let sumAp = 0; let sumHpMax = 0; for (let i = 0; i < mergeHeroes.length; i++) { @@ -271,11 +271,11 @@ export class MissionHeroCompComp extends CCComp { const spawnPos:Vec3 = v3(landingPos.x, landingPos.y + MissionHeroCompComp.HERO_DROP_HEIGHT, 0); await this.mergeDestroyAtBirth(mergeHeroes, spawnPos); await this.playMergeBoomFx(spawnPos); - return this.addMergedHero(uuid, Math.min(this.merge_max_lv, hero_lv + 1), card_lv, sumAp, sumHpMax); + return this.addMergedHero(uuid, Math.min(this.merge_max_lv, hero_lv + 1), pool_lv, sumAp, sumHpMax); } /** 链式合成:当前等级合成完成后,继续尝试更高等级,直到条件不满足 */ - private async tryChainMerge(uuid: number, startLv: number, card_lv: number) { + private async tryChainMerge(uuid: number, startLv: number, pool_lv: number) { let checkLv = Math.max(1, startLv); const needCount = this.getMergeNeedCount(); let guard = 0; @@ -293,7 +293,7 @@ export class MissionHeroCompComp extends CCComp { if (mergeHeroes.length < needCount) { break; } - checkLv = await this.mergeGroupHeroes(mergeHeroes, uuid, checkLv, card_lv); + checkLv = await this.mergeGroupHeroes(mergeHeroes, uuid, checkLv, pool_lv); } }