refactor: 统一将 pool_lv 重命名为 card_lv 并清理废弃代码

本次提交完成了全项目范围内的术语统一重构:
1.  将所有`pool_lv`相关变量、字段、注释替换为`card_lv`,对齐卡牌等级的业务含义
2.  移除了配置中冗余的默认`pool_lv`赋值,简化数据结构
3.  删除了废弃的`HlistComp.ts`组件及其元文件
4.  修正了多处逻辑错误,确保卡牌等级正确驱动背景框切换
5.  更新了相关注释和文档,保持代码一致性
This commit is contained in:
pan
2026-07-27 15:54:53 +08:00
parent 62264deeed
commit 9f2599e9ec
21 changed files with 137 additions and 467 deletions

View File

@@ -1,4 +1,4 @@
import { instantiate, Node, Prefab, Vec3 ,v3,resources,SpriteFrame,Sprite,SpriteAtlas, BoxCollider2D, RigidBody2D, tween, Tween} from "cc";
import { instantiate, Node, Prefab, Vec3, v3, resources, SpriteFrame, Sprite, SpriteAtlas, BoxCollider2D, RigidBody2D, tween, Tween } from "cc";
import { oops } from "../../../../extensions/oops-plugin-framework/assets/core/Oops";
import { ecs } from "../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS";
import { smc } from "../common/SingletonModuleComp";
@@ -9,7 +9,7 @@ import { HeroInfo, HeroPos, resolveFormationTargetX } from "../common/config/her
import { GameEvent } from "../common/config/GameEvent";
import { SkillTriggerType } from "../common/config/heroSet";
import { SkillTriggerHelper } from "./SkillTriggerHelper";
import { Attrs} from "../common/config/HeroAttrs";
import { Attrs } from "../common/config/HeroAttrs";
import { MoveComp } from "./MoveComp";
import { mLogger } from "../common/Logger";
import { FieldSkillType } from "../common/config/SkillSet";
@@ -73,15 +73,15 @@ 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, pool_lv:number=1, posIndex: number = -1) {
load(pos: Vec3 = Vec3.ZERO, scale: number = 1, uuid: number = 1001, dropToY: number = pos.y, hero_lv: number = 1, card_lv: number = 1, posIndex: number = -1) {
// 英雄始终朝右,表现缩放固定为正向
scale = 1
// 英雄等级在当前规则下上限为 3避免超配表范围
if(hero_lv>3) hero_lv=3
if (hero_lv > 3) hero_lv = 3
// 英雄尺寸随等级做轻量放大,强化成长反馈
let size=1.15
let size = 1.15
// 根据配置路径加载英雄预制体
var path = "game/heros/"+HeroInfo[uuid].path;
var path = "game/heros/" + HeroInfo[uuid].path;
var prefab: Prefab = oops.res.get(path, Prefab)!;
var node = instantiate(prefab);
var scene = smc.map.MapView.scene;
@@ -90,17 +90,17 @@ export class Hero extends ecs.Entity {
const collider = node.getComponent(BoxCollider2D);
// 入场过程暂不参与碰撞,防止半空触发战斗逻辑
if (collider) collider.enabled = false;
node.setScale(size*node.scale.x,size*node.scale.y);
node.setScale(size * node.scale.x, size * node.scale.y);
node.setPosition(pos)
// 输出节点层级信息,便于排查遮挡与渲染顺序问题
mLogger.log(this.debugMode,"hero",node.getSiblingIndex());
mLogger.log(this.debugMode, "hero", node.getSiblingIndex());
var hv = node.getComponent(HeroViewComp)!;
if(hero_lv == 3){hv.playAllTime("plus")}
if(hero_lv == 4){hv.playAllTime("plus")}
if(hero_lv == 5){hv.playAllTime("plus")}
if(hero_lv == 6){hv.playAllTime("plus2")}
if (hero_lv == 3) { hv.playAllTime("plus") }
if (hero_lv == 4) { hv.playAllTime("plus") }
if (hero_lv == 5) { hv.playAllTime("plus") }
if (hero_lv == 6) { hv.playAllTime("plus2") }
// if(hero_lv == 9){hv.playAllTime("plus3")}
// if(hero_lv == 9){hv.playAllTime("plus4")}
// if(hero_lv == 9){hv.playAllTime("plus5")}
@@ -108,7 +108,7 @@ export class Hero extends ecs.Entity {
const model = this.get(HeroAttrsComp);
// 从配置中读取英雄静态数据
let hero = HeroInfo[uuid];
// 视图层参数:朝向与碰撞阵营
hv.scale = 1;
hv.box_group = BoxSet.HERO;
@@ -116,8 +116,8 @@ export class Hero extends ecs.Entity {
model.hero_uuid = uuid;
model.hero_name = hero.name;
model.lv = hero_lv;
model.pool_lv = pool_lv;
model.base_pool_lv = hero.pool_lv ?? 1;
model.card_lv = card_lv;
model.base_card_lv = hero.card_lv ?? 1;
model.type = hero.type;
model.fac = FacSet.HERO;
model.dis = hero.dis ?? 720;
@@ -125,7 +125,7 @@ export class Hero extends ecs.Entity {
if (posIndex >= 0) {
smc.mission.heroGrid[posIndex] = this.eid;
}
// 复制触发技能配置
model.call = hero.call;
model.dead = hero.dead;
@@ -135,12 +135,12 @@ export class Hero extends ecs.Entity {
model.atked = hero.atked;
model.field = hero.field;
model.revive = hero.revive;
// 基础属性按等级倍率初始化
// 使用指数增长公式:等级 2 时为原来的 HERO_LV_MULTIPLIER 倍,等级 3 时为 HERO_LV_MULTIPLIER^2 倍
let base_ap = hero.ap * Math.pow(FightSet.HERO_LV_MULTIPLIER, model.lv - 1);
let base_hp = hero.hp * Math.pow(FightSet.HERO_LV_MULTIPLIER, model.lv - 1);
model.base_ap = base_ap;
model.base_hp = base_hp;
@@ -161,7 +161,7 @@ export class Hero extends ecs.Entity {
const skill = hero.skills[key];
if (!skill) continue;
// 最终技能等级 = 初始技能等级 + 英雄等级增量,且下限为 0
model.skills[skill.uuid] = { ...skill, lv: Math.max(0,skill.lv + hero_lv - 2), ccd: 0 };
model.skills[skill.uuid] = { ...skill, lv: Math.max(0, skill.lv + hero_lv - 2), ccd: 0 };
}
// 应用等级进化配置(从 lv2 开始逐级覆盖)
@@ -198,7 +198,7 @@ export class Hero extends ecs.Entity {
// 缓存技能射程等派生数据,减少战斗帧内重复计算
model.updateSkillDistanceCache();
// 初始化属性系统buff/debuff 等动态属性容器)
model.initAttrs();
@@ -299,7 +299,7 @@ export class Hero extends ecs.Entity {
})
.start();
}
/** 重置入口:复用 destroy 的释放流程 */
reset() {
super.destroy();
@@ -309,14 +309,14 @@ export class Hero extends ecs.Entity {
/** 统一生命周期系统:按 fac 区分英雄与怪物并输出日志 */
@ecs.register('BattleEntityLifecycleSystem')
export class BattleEntityLifecycleSystem extends ecs.ComblockSystem
export class BattleEntityLifecycleSystem extends ecs.ComblockSystem
implements ecs.IEntityEnterSystem, ecs.IEntityRemoveSystem {
/** 仅处理拥有 MoveComp 的实体 */
filter() {
return ecs.allOf(MoveComp);
}
/** 基于阵营生成日志名称 */
private resolveLabel(heroAttrs: HeroAttrsComp | null) {
if (!heroAttrs) return "未知";
@@ -335,7 +335,7 @@ export class BattleEntityLifecycleSystem extends ecs.ComblockSystem
mLogger.log(true, 'BattleEntityLifecycle', `${label}进入世界: 实体ID ${e.eid}`);
}
}
/** 实体离开世界时记录日志 */
entityRemove(e: ecs.Entity): void {
const heroAttrs = e.get(HeroAttrsComp);

View File

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