Files
pixelheros/assets/script/game/heros/HeroComponent.ts
2025-01-31 21:50:59 +08:00

51 lines
1.1 KiB
TypeScript

import { ecs } from "../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS";
import { _decorator, Node } from 'cc';
const { ccclass } = _decorator;
// 继承框架的ECComponent
// 基础属性组件
@ecs.register('HeroBase')
export class HeroBase extends ecs.Comp {
// 定义需要序列化的字段
static serializeFields = ['hp', 'attack', 'node'];
hp: number = 100;
attack: number = 10;
node: Node = null;
reset() {
this.hp = 100;
this.attack = 10;
this.node = null;
}
}
// 技能组件
@ecs.register('HeroSkill')
export class HeroSkill extends ecs.Comp {
static serializeFields = ['skillId'];
skillId: string = "";
cooldown: number = 0;
reset() {
this.skillId = "";
this.cooldown = 0;
}
}
// 状态组件
@ecs.register('HeroState')
export class HeroState extends ecs.Comp {
current: 'idle' | 'attack' | 'die' = 'idle';
previous: 'idle' | 'attack' | 'die' = 'idle';
reset() {
this.current = 'idle';
this.previous = 'idle';
}
}