mirror of
https://gitee.com/jisol/jisol-game/
synced 2025-06-26 03:14:47 +00:00
55 lines
1.0 KiB
TypeScript
55 lines
1.0 KiB
TypeScript
import GRoleBase from "../role/GRoleBase";
|
|
import GFSMBase, { GFSMProcessInfo } from "./GFSMBase";
|
|
|
|
|
|
export default abstract class GFSMBattle extends GFSMBase{
|
|
|
|
//流程图
|
|
process: { [key: number]: GFSMProcessInfo; } = {
|
|
0:{
|
|
title:"寻找敌人",
|
|
execute: this.onSeekEnemyProcess.bind(this),
|
|
to:[1]
|
|
},
|
|
1:{
|
|
title:"攻击敌人",
|
|
execute: this.onAttackProcess.bind(this),
|
|
}
|
|
}
|
|
|
|
//锁定的敌人
|
|
enemy:GRoleBase<any>;
|
|
|
|
|
|
abstract onSeekEnemy():GRoleBase<any>;
|
|
|
|
//寻敌流程
|
|
onSeekEnemyProcess():number{
|
|
|
|
if(this.enemy){
|
|
//如果有敌人 直接 攻击
|
|
return 1;
|
|
}
|
|
|
|
if(this.enemy = this.onSeekEnemy()){
|
|
//如果有敌人 直接 攻击
|
|
return 1;
|
|
}
|
|
|
|
//负责继续寻敌
|
|
return 0;
|
|
|
|
}
|
|
|
|
abstract onAttack();
|
|
|
|
//攻击敌人
|
|
onAttackProcess(){
|
|
this.onAttack();
|
|
return 0;
|
|
}
|
|
|
|
|
|
}
|
|
|