refactor(属性): 统一默认属性定义并移除调试属性

- 新增 defaultAttrs 对象集中定义 BACK_CHANCE、DODGE、CON_RES 的默认值
- 修改 Hero 和 Monster 初始化逻辑,使用 defaultAttrs 代替硬编码值
- 移除 HeroAttrsComp 中未使用的 debugMode 装饰器属性
- 简化日志消息,移除重复的组件名前缀
- 修复 SingletonModuleComp 中属性名错误(speed 改为 dodge)
This commit is contained in:
walkpan
2026-02-06 20:38:34 +08:00
parent 84963f6a3b
commit 369c10cf62
5 changed files with 16 additions and 12 deletions

View File

@@ -123,7 +123,7 @@ export class SingletonModuleComp extends ecs.Comp {
def:0,
ap:0,
crt:0,
speed:0,
dodge:0,
skills:[],
buff:[],
tal:[],

View File

@@ -93,6 +93,11 @@ export enum Attrs {
}
export const defaultAttrs = {
[Attrs.BACK_CHANCE]:0,
[Attrs.DODGE]:0,
[Attrs.CON_RES]:0,
}
/**
* 初始化英雄属性对象
* 遍历 Attrs 枚举的所有数字值,返回一个属性初始值为 0 的对象

View File

@@ -7,7 +7,7 @@ import { HeroViewComp } from "./HeroViewComp";
import { BoxSet, FacSet, IndexSet } from "../common/config/GameSet";
import { HeroInfo, HeroPos, HType } from "../common/config/heroSet";
import { GameEvent } from "../common/config/GameEvent";
import { getNeAttrs, getAttrs ,Attrs} from "../common/config/HeroAttrs";
import { getNeAttrs, getAttrs ,Attrs, defaultAttrs} from "../common/config/HeroAttrs";
import { HeroSkillsComp } from "./HeroSkills";
import { HeroMoveComp } from "./HeroMove";
import { TalComp } from "./TalComp";
@@ -118,8 +118,8 @@ export class Hero extends ecs.Entity {
// 初始化 buff/debuff 系统
model.initAttrs();
model.Attrs[Attrs.REVIVE_COUNT]=1 // 复活次数
model.Attrs[Attrs.BACK_CHANCE]=50 // 击退对手几率
model.Attrs[Attrs.CON_RES]=10 // 控制抗性
model.Attrs[Attrs.BACK_CHANCE]=defaultAttrs[Attrs.BACK_CHANCE]
model.Attrs[Attrs.CON_RES]=defaultAttrs[Attrs.CON_RES] // 控制抗性
this.add(hv);
oops.message.dispatchEvent(GameEvent.MasterCalled,{uuid:uuid})
const move = this.get(HeroMoveComp);

View File

@@ -18,7 +18,6 @@ interface talTrigger{
}
@ecs.register('HeroAttrs')
export class HeroAttrsComp extends ecs.Comp {
@property({ tooltip: "是否启用调试日志" })
public debugMode: boolean = true;
Ebus:any=null!
@@ -84,7 +83,7 @@ export class HeroAttrsComp extends ecs.Comp {
initEvent() {
// 监听升级事件
mLogger.log(this.debugMode, 'HeroAttrs', `[HeroAttrs] 注册升级事件监听`);
mLogger.log(this.debugMode, 'HeroAttrs', ` 注册升级事件监听`);
oops.message.on(GameEvent.CanUpdateLv, this.onLevelUp, this);
// 移除卡牌事件监听,改为由 MissionCardComp 直接调用,避免非主角响应
// oops.message.on(GameEvent.UseItemCard, this.onUseItemCard, this);
@@ -92,7 +91,7 @@ export class HeroAttrsComp extends ecs.Comp {
}
removeEvent() {
mLogger.log(this.debugMode, 'HeroAttrs', `[HeroAttrs] 移除升级事件监听`);
mLogger.log(this.debugMode, 'HeroAttrs', ` 移除升级事件监听`);
oops.message.off(GameEvent.CanUpdateLv, this.onLevelUp, this);
// oops.message.off(GameEvent.UseItemCard, this.onUseItemCard, this);
// oops.message.off(GameEvent.UseAttrCard, this.onUseAttrCard, this);
@@ -143,11 +142,11 @@ export class HeroAttrsComp extends ecs.Comp {
* 处理英雄升级逻辑
*/
onLevelUp(event: string, args: any) {
mLogger.log(this.debugMode, 'HeroAttrs', `[HeroAttrs] 收到升级事件: is_master=${this.is_master}, args=${JSON.stringify(args)}`);
mLogger.log(this.debugMode, 'HeroAttrs', ` 收到升级事件: is_master=${this.is_master}, args=${JSON.stringify(args)}`);
// 只有主角才响应升级事件
if (!this.is_master) return;
const newLv = args.lv;
mLogger.log(this.debugMode, 'HeroAttrs', `[HeroAttrs] 英雄升级处理: Lv.${this.lv} -> Lv.${newLv}`);
mLogger.log(this.debugMode, 'HeroAttrs', ` 英雄升级处理: Lv.${this.lv} -> Lv.${newLv}`);
if (newLv > this.lv) {
this.lv = newLv;

View File

@@ -6,7 +6,7 @@ import { BoxSet, FacSet, IndexSet } from "../common/config/GameSet";
import { HeroInfo } from "../common/config/heroSet";
import { HeroAttrsComp } from "./HeroAttrsComp";
import { BuffConf, SkillSet } from "../common/config/SkillSet";
import { getNeAttrs, getAttrs ,Attrs} from "../common/config/HeroAttrs";
import { getNeAttrs, getAttrs ,Attrs, defaultAttrs} from "../common/config/HeroAttrs";
import { getMonAttr, MonType } from "../map/RogueConfig";
import { HeroViewComp } from "./HeroViewComp";
import { HeroSkillsComp } from "./HeroSkills";
@@ -128,8 +128,8 @@ export class Monster extends ecs.Entity {
model.Attrs[Attrs.DEF] = def;
model.Attrs[Attrs.AP] = ap;
model.Attrs[Attrs.SPEED] = speed; // 使用成长后的速度
model.Attrs[Attrs.BACK_CHANCE]=15
model.Attrs[Attrs.CON_RES]=10
model.Attrs[Attrs.BACK_CHANCE]=defaultAttrs[Attrs.BACK_CHANCE]
model.Attrs[Attrs.CON_RES]=defaultAttrs[Attrs.CON_RES]
// ✅ 初始化技能数据(迁移到 HeroSkillsComp
skillsComp.initSkills(hero.skills, uuid);