refactor: 统一将 pool_lv 重命名为 card_lv 并清理废弃代码
本次提交完成了全项目范围内的术语统一重构: 1. 将所有`pool_lv`相关变量、字段、注释替换为`card_lv`,对齐卡牌等级的业务含义 2. 移除了配置中冗余的默认`pool_lv`赋值,简化数据结构 3. 删除了废弃的`HlistComp.ts`组件及其元文件 4. 修正了多处逻辑错误,确保卡牌等级正确驱动背景框切换 5. 更新了相关注释和文档,保持代码一致性
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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
|
||||
// ==================== 基础属性(有初始值) ====================
|
||||
|
||||
Reference in New Issue
Block a user