import { BattleUtil } from "../data/BattleUtil"; export const TowerUUID = -1; //战斗消息工具类 export enum BattleEventTarget{ Update = "update", HeroAction = "hero_action", } export enum BattleEventType{ //敌人出生 EnemyBorn = "enemy_born", //敌人移动 EnemyMove = "enemy_move", //敌人受击 EnemyHurt = "enemy_hurt", //敌人死亡 EnemyDie = "enemy_die", //敌人buff改变 EnemyBuff = "enemy_buff", //英雄动作 HeroAction = "hero_action", //英雄攻击 HeroAttack = "hero_attack", //英雄打出子弹 HeroAttackBullet = "hero_attack_bullet", //子弹伤害 /死亡 BulletAttack = "bullet_hurt", //子弹移动 BulletMove = "bullet_move", //战斗结束 Over = "over", } export enum BuffEventState{ //添加 Add, //移除 Remove, //刷新 Refresh, } //伤害状态 export enum HurtEventState{ //普通 Normal, //暴击 Critical, //毒 Poison, //雪 Snow, } //英雄动作 export enum HeroActionType{ //普通 Normal, //暴击 Critical, //技能1 Skill1, //技能2 Skill2, } export enum EnemyActionType{ //出生 Born, //受击 Hurt, //移动 Move, //技能 Skill, //死亡 Die, } export interface BattleEventData{ eventType:BattleEventType; } export interface BattleEventData_EnemyBorn extends BattleEventData{ eventType:BattleEventType.EnemyBorn; ID:number; typeID:number; position:BattleUtil.Vector2; speedVector:BattleUtil.Vector2; life:number; lifeMax:number; } export interface BattleEventData_EnemyMove extends BattleEventData{ eventType:BattleEventType.EnemyMove; ID:number; speedVector:BattleUtil.Vector2; } export interface BattleEventData_EnemyHurt extends BattleEventData{ eventType:BattleEventType.EnemyHurt; //攻击者类型,仅用于统计 typeID:number; //被攻击者ID targetID:number; hurt:number; status:HurtEventState; } export interface BattleEventData_EnemyDie extends BattleEventData{ eventType:BattleEventType.EnemyDie; typeID:number; ID:number; } //英雄开始做动作 export interface BattleEventData_HeroAction extends BattleEventData{ eventType:BattleEventType.HeroAction; //攻击者位置 posID:number; targetID:number; action:HeroActionType; } //英雄直接伤害 export interface BattleEventData_HeroAttack extends BattleEventData{ eventType:BattleEventType.HeroAttack; //攻击者位置 posID:number; targetID:number; hurt:number; status:HurtEventState; } //打出子弹 export interface BattleEventData_HeroAttackBullet extends BattleEventData{ eventType:BattleEventType.HeroAttackBullet; posID:number; targetID:number; bulletID:number; } //子弹直接伤害 export interface BattleEventData_BulletAttack extends BattleEventData{ eventType:BattleEventType.BulletAttack; //攻击者类型,仅用于统计 typeID:number; targetID:number; hurt:number; status:HurtEventState; } export interface BattleEventData_BulletMove extends BattleEventData{ eventType:BattleEventType.BulletMove; ID:number; speedVector:BattleUtil.Vector2; } //buff改变 export interface BattleEventData_EnemyBuff extends BattleEventData{ eventType:BattleEventType.EnemyBuff; ID:number; buffID:number; eventState:BuffEventState; } //战斗结束 export interface BattleEventData_Over extends BattleEventData{ eventType:BattleEventType.Over; bWin:boolean; } //动作触发计算 export interface BattleEventHeroAction{ action:HeroActionType; //攻击位置的下标 posIndex:number; } export interface BossDataUpdate{ ID:number; action:EnemyActionType; value:number; }