import { app } from "../App"; import { Env, EnvCurrent } from "../Env"; import GBattleModeManager, { BattleMode, GBattleModeEvent } from "../battle/GBattleModeManager"; import { GAction } from "../consts/GAction"; import { GActionType } from "../consts/GActionType"; import { GUI } from "../ui/UIConfig"; import BaseAction from "./BaseAction"; export interface GPVPStart{ leftTactical:string; //左边玩家的阵法 leftPets:{[key:number]:string}; //左边玩家的宠物 rightTactical:string; //右边玩家的阵法 rightPets:{[key:number]:string}; //左边玩家的宠物 leftPlayerId:number; //左边的玩家Id rightPlayerId:number; //右边的玩家Id } export interface GPVPText{ text:string } export default class PVPAction extends BaseAction { onInit(){ app.socket.on(GAction.C_MODE_PVP_START_WAIT,this.onModePVPStartWait,this); app.socket.on(GAction.C_MODE_PVP_END_WAIT,this.onModePVPEndWait,this); app.socket.on(GAction.C_MODE_PVP_START,this.onModePVPStart,this,GActionType.GPVPStart); app.socket.on(GAction.C_MODE_PVP_MESSAGE,this.onModePVPMessage,this,GActionType.GPVPText); if(EnvCurrent == Env.Server){ app.socket.on(GAction.CR_REFEREE_PVP_MODE,this.onCrReferee,this,GActionType.GPVPStart); //监听PVP裁决 app.event.on(GBattleModeEvent.Close,this.onBattleRefereeClose,this); //模式结束运行 } } //PVP开始等待 onModePVPStartWait(){ //PVP 匹配页面 app.layer.Open(GUI.PVPModeMatchView); } //PVP结束等待 onModePVPEndWait(){ //PVP 匹配页面 app.layer.Close(GUI.PVPModeMatchView); } //开始PVP onModePVPStart(info:GPVPStart){ console.log("开始PVP",info); GBattleModeManager.getIns().Open(BattleMode.PVP,true,info); } //裁决运行 onCrReferee(info:GPVPStart){ console.log("开始PVP裁决",info); GBattleModeManager.getIns().Open(BattleMode.PVP,false,info); GBattleModeManager.getIns().setAuto(true,true); } //提示 onModePVPMessage(info:GPVPText){ console.log("提示PVP",info); app.layer.Open(GUI.Tips,{text:info.text}) } //裁决结束返回 onBattleRefereeClose(type:BattleMode,data?:number){ if(type == BattleMode.PVP){ console.log("裁决结束胜利玩家",data) app.socket.Send(GAction.CR_REFEREE_PVP_END,{ winnerId:data },GActionType.GPVPRefereeInfo) } } }