mirror of
https://gitee.com/jisol/jisol-game/
synced 2025-09-27 02:36:14 +00:00
update
This commit is contained in:
@@ -97,6 +97,9 @@ export default class GOnHookMode extends GBaseMode<{}>{
|
||||
|
||||
fsm:GFSMOnHookMode;
|
||||
|
||||
//是否允许攻击
|
||||
isAllowAttack:boolean = false;
|
||||
|
||||
onSyncInitSuccess():void{
|
||||
|
||||
//初始化战斗
|
||||
@@ -146,8 +149,13 @@ export default class GOnHookMode extends GBaseMode<{}>{
|
||||
onUpdateCamera(dt:number){
|
||||
|
||||
//如果没有敌人相机永远锁定最前面的宠物
|
||||
if(!this.isHaveEnemy()){
|
||||
if(this.isAllowAttack && this.isHaveEnemy()){
|
||||
|
||||
//如果有敌人则移动到战斗位置
|
||||
let cameraWorld = this.camera.node.worldPosition.clone();
|
||||
this.camera.node.worldPosition = cameraWorld.lerp(v3(this.nextFightX,cameraWorld.y,cameraWorld.z),(dt / 1000));
|
||||
|
||||
}else{
|
||||
//获取冲到最前面的宠物
|
||||
let roles = this.getOnesRoleAlive(GOnHookModePlayerEnum.PLAYER);
|
||||
let frontRole = roles.sort((role1,role2) => role2.v2World.x - role1.v2World.x)[0];
|
||||
@@ -156,11 +164,6 @@ export default class GOnHookMode extends GBaseMode<{}>{
|
||||
//设置相机 位置
|
||||
let cameraWorld = this.camera.node.worldPosition.clone();
|
||||
this.camera.node.worldPosition = cameraWorld.lerp(v3(frontRole.v2World.x,cameraWorld.y,cameraWorld.z),(dt / 1000));
|
||||
|
||||
}else{
|
||||
//如果有敌人则移动到战斗位置
|
||||
let cameraWorld = this.camera.node.worldPosition.clone();
|
||||
this.camera.node.worldPosition = cameraWorld.lerp(v3(this.nextFightX,cameraWorld.y,cameraWorld.z),(dt / 1000));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -210,6 +213,8 @@ export default class GOnHookMode extends GBaseMode<{}>{
|
||||
//获取敌人
|
||||
getEnumy(player:GRoleDefault,type:GOnHookModePlayerEnum):GRoleDefault{
|
||||
|
||||
if(!this.isAllowAttack) return null;
|
||||
|
||||
let enumyOnes = GOnHookModePlayerEnum.ENEMY
|
||||
//如果是ENEMY 则 它的敌人是 PLAYER
|
||||
if(type == GOnHookModePlayerEnum.ENEMY) enumyOnes = GOnHookModePlayerEnum.PLAYER
|
||||
@@ -253,6 +258,7 @@ export default class GOnHookMode extends GBaseMode<{}>{
|
||||
|
||||
//是否有怪物
|
||||
isHaveEnemy(){
|
||||
if(!this.isAllowAttack) return [];
|
||||
return this.getOnesRoleAlive(GOnHookModePlayerEnum.ENEMY).filter(role => !!role.get()).length > 0;
|
||||
}
|
||||
|
||||
|
@@ -32,18 +32,18 @@ export default class GFSMOnHookMode extends GFSMBase{
|
||||
title:"生成下一个战斗位置",
|
||||
mode:GFSMProcessMode.Execute,
|
||||
execute: this.onGenNextFightProcess.bind(this),
|
||||
to:[ProcessEnum.LeaveFight]
|
||||
},
|
||||
[ProcessEnum.LeaveFight]:{
|
||||
title:"前往战斗",
|
||||
mode:GFSMProcessMode.WaitExecute,
|
||||
execute: this.onLeaveFightProcess.bind(this),
|
||||
to:[ProcessEnum.GenEnemy]
|
||||
},
|
||||
[ProcessEnum.GenEnemy]:{
|
||||
title:"生成敌人",
|
||||
mode:GFSMProcessMode.Execute,
|
||||
execute: this.onGenEnemyProcess.bind(this),
|
||||
to:[ProcessEnum.LeaveFight]
|
||||
},
|
||||
[ProcessEnum.LeaveFight]:{
|
||||
title:"前往战斗",
|
||||
mode:GFSMProcessMode.WaitExecute,
|
||||
execute: this.onLeaveFightProcess.bind(this),
|
||||
to:[ProcessEnum.Fight]
|
||||
},
|
||||
[ProcessEnum.Fight]:{
|
||||
@@ -69,11 +69,21 @@ export default class GFSMOnHookMode extends GFSMBase{
|
||||
//生成下一个战斗位置
|
||||
onGenNextFightProcess(){
|
||||
|
||||
this.mode.isAllowAttack = false;
|
||||
this.mode.onNextTarget();
|
||||
return ProcessEnum.LeaveFight; //前往战斗位置
|
||||
return ProcessEnum.GenEnemy; //生成敌人
|
||||
|
||||
}
|
||||
|
||||
//生成敌人
|
||||
onGenEnemyProcess(){
|
||||
|
||||
this.mode.onResetGenerateEnemy();
|
||||
return ProcessEnum.LeaveFight; //前往战斗
|
||||
|
||||
}
|
||||
|
||||
|
||||
//前往战斗
|
||||
onLeaveFightProcess(){
|
||||
|
||||
@@ -90,22 +100,15 @@ export default class GFSMOnHookMode extends GFSMBase{
|
||||
}
|
||||
|
||||
//到达位置生成敌人
|
||||
return ProcessEnum.GenEnemy;
|
||||
|
||||
}
|
||||
|
||||
//生成敌人
|
||||
onGenEnemyProcess(){
|
||||
|
||||
this.mode.onResetGenerateEnemy();
|
||||
return ProcessEnum.Fight;
|
||||
|
||||
}
|
||||
|
||||
|
||||
//战斗
|
||||
onFightProcess(){
|
||||
|
||||
|
||||
this.mode.isAllowAttack = true;
|
||||
//等待敌人击杀完
|
||||
if(!(this.mode.isHaveEnemy())){
|
||||
return ProcessEnum.SeekEnemy; //击杀完寻找敌人
|
||||
|
Reference in New Issue
Block a user