import { Vec3 } from "cc"; import { ecs } from "../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS"; export enum DamageType { Physical = 1, Magic = 2, True = 3 } /** 伤害请求组件 */ @ecs.register('DamageRequest') export class DamageRequest extends ecs.Comp { source!: ecs.Entity; // 伤害来源 target!: ecs.Entity; // 伤害目标 baseValue!: number; // 基础伤害值 damageType: number = 1; // 伤害类型 canCrit: boolean = true; // 是否可暴击 ignoreDefense: boolean = false; // 是否忽略防御 delay: number = 0; // 新增延迟时间属性 reset() { this.source = null!; this.target = null!; this.baseValue = 0; this.damageType = 1; this.canCrit = true; this.ignoreDefense = false; this.delay = 0; } } /** 伤害结果组件 */ @ecs.register('DamageResult') export class DamageResult extends ecs.Comp { value: number = 0; // 伤害数值 isCrit: boolean = false; // 是否暴击 isDodged: boolean = false; // 是否闪避 delay: number = 0; // 显示延迟(秒) position: Vec3 = new Vec3();// 显示位置 reset() { this.value = 0; this.isCrit = false; this.isDodged = false; this.delay = 0; this.position.set(0, 0, 0); } }