723 lines
22 KiB
TypeScript
723 lines
22 KiB
TypeScript
|
import { Animation, director } from "cc";
|
||
|
import { GameMgr } from "../../module_basic/scripts/GameMgr";
|
||
|
import { NetGameServer } from "../../module_basic/scripts/NetGameServer";
|
||
|
import { SubGameMgr } from "../../module_basic/scripts/SubGameMgr";
|
||
|
import { UserMgr } from "../../module_basic/scripts/UserMgr";
|
||
|
import { MsgAreanBattleReportPush } from "../../module_basic/shared/protocols/public/arean/MsgAreanBattleReportPush";
|
||
|
import { MsgAreanPlayerComesPush } from "../../module_basic/shared/protocols/public/arean/MsgAreanPlayerComesPush";
|
||
|
import { MsgAreanGameStatusPush } from "../../module_basic/shared/protocols/public/arean/MsgAreanGameStatusPush";
|
||
|
import { MsgAreanBloodVolumePush } from "../../module_basic/shared/protocols/public/arean/MsgAreanBloodVolumePush";
|
||
|
import { MsgAreanCareerPush } from "../../module_basic/shared/protocols/public/arean/MsgAreanCareerPush";
|
||
|
import { MsgAreanPlayerStatusPush } from "../../module_basic/shared/protocols/public/arean/MsgAreanPlayerStatusPush";
|
||
|
import { MsgAreanSelectCardListPush } from "../../module_basic/shared/protocols/public/arean/MsgAreanSelectCardListPush";
|
||
|
import {
|
||
|
EPlayerPushType,
|
||
|
GameStage,
|
||
|
IAreanGameData,
|
||
|
IAreanPlayer,
|
||
|
IAreanUserData
|
||
|
} from "../../module_basic/shared/protocols/public/arean/AreanTypeDef";
|
||
|
import { areanMgr } from "./AreanManager";
|
||
|
import { MsgNoticePush } from "../../module_basic/shared/protocols/public/lobby/MsgNoticePush";
|
||
|
import { MsgAreanGameDataPush } from "../../module_basic/shared/protocols/public/arean/MsgAreanGameDataPush";
|
||
|
import { MsgAreanSelectEquipListPush } from "../../module_basic/shared/protocols/public/arean/MsgAreanSelectEquipListPush";
|
||
|
import { MsgAreanSelectTreasureListPush } from "../../module_basic/shared/protocols/public/arean/MsgAreanSelectTreasureListPush";
|
||
|
import { tgxSceneUtil, tgxUIAlert } from "../../core_tgx/tgx";
|
||
|
import { SceneDef } from "../../scripts/SceneDef";
|
||
|
import { MsgAreanStageReadyPush } from "db://assets/module_basic/shared/protocols/public/arean/MsgAreanStageReadyPush";
|
||
|
import { MsgAreanAttrUpdatePush } from "../../module_basic/shared/protocols/public/arean/MsgAreanAttrUpdatePush";
|
||
|
import { MsgAreanGameBeginPush } from "../../module_basic/shared/protocols/public/arean/MsgAreanGameBeginPush";
|
||
|
import { MsgAreanInBattleViewPush } from "../../module_basic/shared/protocols/public/arean/MsgAreanInBattleViewPush";
|
||
|
import { MsgAreanDanUpdatePush } from "db://assets/module_basic/shared/protocols/public/arean/MsgAreanDanUpdatePush";
|
||
|
import { MsgPlayerInfoPush } from "db://assets/module_basic/shared/protocols/public/lobby/MsgPlayerInfoPush";
|
||
|
import { UserInfo } from "../../module_basic/shared/types/UserInfo";
|
||
|
import { MsgAreanGetBattleRewards } from "../../module_basic/shared/protocols/public/arean/MsgAreanGetBattleRewards";
|
||
|
import { MsgAreanBattleRewardsPush } from "../../module_basic/shared/protocols/public/arean/MsgAreanBattleRewardsPush";
|
||
|
|
||
|
export class AreanEvent {
|
||
|
/**
|
||
|
* 玩家同步
|
||
|
*/
|
||
|
public static PlayerComes = 'KingTDEvent.PLAYER_COMES';
|
||
|
/**
|
||
|
* 玩家数据更新
|
||
|
*/
|
||
|
public static PlayerDataChanged = 'KingTDEvent.PLAYER_DATA_CHANGED';
|
||
|
/**
|
||
|
* 游戏开始
|
||
|
*/
|
||
|
public static GameBegin = 'KingTDEvent.GAME_BEGIN';
|
||
|
/**
|
||
|
* 游戏结束
|
||
|
*/
|
||
|
public static GameOver = 'KingTDEvent.GAME_OVER';
|
||
|
/**
|
||
|
* 游戏数据更新
|
||
|
*/
|
||
|
public static GameDataChanged = 'KingTDEvent.TANK_DATA_CHANGED';
|
||
|
/**
|
||
|
*
|
||
|
*/
|
||
|
public static KingTDShoot = 'KingTDEvent.TANK_SHOOT';
|
||
|
/**
|
||
|
* 玩家攻击
|
||
|
*/
|
||
|
public static KingTDAttack = 'KingTDEvent.TANK_ATTACK';
|
||
|
|
||
|
/**
|
||
|
* 玩家死亡
|
||
|
*/
|
||
|
public static PlayerDie = 'KingTDEvent.PLAYER_DIE';
|
||
|
|
||
|
/**
|
||
|
* 游戏数据同步
|
||
|
*/
|
||
|
public static GameDataSync = 'KingTDEvent.GAME_DATA_SYNC';
|
||
|
|
||
|
/**
|
||
|
* 获取卡牌
|
||
|
*/
|
||
|
public static GetCards = "KingTDEvent.GET_CARDS";
|
||
|
|
||
|
/**
|
||
|
* 士气升级
|
||
|
*/
|
||
|
public static MoraleLevelUp = "KingTDEvent.MORALE_LEVEL_UP";
|
||
|
/**
|
||
|
* 修改角色学血量
|
||
|
*/
|
||
|
public static ChangeHp = "KingTDEvent.CHANGE_HP";
|
||
|
|
||
|
/**
|
||
|
* 修改卡片数据
|
||
|
*/
|
||
|
public static CardChanged = "KingTDEvent.CARD_CHANGED";
|
||
|
|
||
|
/**
|
||
|
* 删除卡片
|
||
|
*/
|
||
|
public static CardDelete = "KingTDEvent.CARD_DELETE";
|
||
|
|
||
|
/**
|
||
|
* 卡片移动
|
||
|
*/
|
||
|
public static CardMoving = "KingTDEvent.CARD_MOVING";
|
||
|
|
||
|
/**
|
||
|
* buff修改
|
||
|
*/
|
||
|
public static CardChangeBuff = "KingTDEvent.CARD_CHANGE_BUFF";
|
||
|
|
||
|
/**
|
||
|
* 子弹修改
|
||
|
*/
|
||
|
public static CardChangeBullet = "KingTDEvent.CARD_CHANGE_BULLET";
|
||
|
|
||
|
/**
|
||
|
* 技能修改
|
||
|
*/
|
||
|
public static CardChangeSkill = "KingTDEvent.CARD_CHANGE_SKILL";
|
||
|
|
||
|
/**
|
||
|
* 修改角色信息
|
||
|
*/
|
||
|
public static UpdateUserData = "KingTDEvent.UPDATE_USER_DATA";
|
||
|
|
||
|
/**
|
||
|
* 推送道具数量
|
||
|
*/
|
||
|
public static PropsPush = "KingTDEvent.PROPS_PUSH";
|
||
|
|
||
|
/**
|
||
|
* 获取指定道具列表的道具列表
|
||
|
*/
|
||
|
public static GetProp = "KingTDEvent.GET_PROPS";
|
||
|
|
||
|
/**
|
||
|
* 用户使用道具
|
||
|
*/
|
||
|
public static UseProp = "KingTDEvent.USE_PROP";
|
||
|
|
||
|
/**
|
||
|
* 进入关卡检测
|
||
|
*/
|
||
|
public static CheckMapLevel = 'KingTDEvent.CHECK_MAP_LEVEL';
|
||
|
|
||
|
/**
|
||
|
* 通用资源推送
|
||
|
*/
|
||
|
public static CommonPush = 'KingTDEvent.COMMON_PUSH';
|
||
|
|
||
|
/**
|
||
|
* 指挥官数据更新
|
||
|
*/
|
||
|
public static CommanderPush = 'KingTDEvent.COMMANDER_PUSH';
|
||
|
|
||
|
/**
|
||
|
* 军需官数据更新
|
||
|
*/
|
||
|
public static MasterPush = 'KingTDEvent.MASTER_PUSH';
|
||
|
|
||
|
/**
|
||
|
* 指挥官升级
|
||
|
*/
|
||
|
public static CommanderLevelUp = 'KingTDEvent.COMMANDER_LEVEL_UP';
|
||
|
|
||
|
/**
|
||
|
* 设置卡牌出战
|
||
|
*/
|
||
|
public static SetCardInBattled = 'KingTDEvent.SET_CARD_IN_BATTLE';
|
||
|
|
||
|
/**
|
||
|
* 传信官合并
|
||
|
*/
|
||
|
public static MsgerMarge = 'KingTDEvent.MSGER_MARGE';
|
||
|
|
||
|
/**
|
||
|
* 设置指挥官出战
|
||
|
*/
|
||
|
public static CommanderInBattled = 'KingTDEvent.COMMANDER_IN_BATTLE';
|
||
|
|
||
|
/**
|
||
|
* 设置传信官出战
|
||
|
*/
|
||
|
public static MsgerInBattled = 'KingTDEvent.MSGER_IN_BATTLE';
|
||
|
|
||
|
/**
|
||
|
* 卡片升级
|
||
|
*/
|
||
|
public static CardLevelUp = 'KingTDEvent.CARD_LEVEL_UP';
|
||
|
|
||
|
/**
|
||
|
* 卡片推送
|
||
|
*/
|
||
|
public static UserCardPush = 'KingTDEvent.USER_CARD_PUSH';
|
||
|
|
||
|
/**
|
||
|
* 战报
|
||
|
*/
|
||
|
public static BattleReportPush = 'AreanEvent.BATTLE_REPORT_PUSH';
|
||
|
|
||
|
/**
|
||
|
* 游戏阶段
|
||
|
*/
|
||
|
public static BattleStagePush = 'AreanEvent.BATTLE_STAGE_PUSH';
|
||
|
|
||
|
/**
|
||
|
* 挑选卡牌
|
||
|
*/
|
||
|
public static SelectCardList = 'AreanEvent.SELECT_CARD_LIST';
|
||
|
|
||
|
/**
|
||
|
* 选卡返回
|
||
|
*/
|
||
|
public static SelectCardBack = 'AreanEvent.SELECT_CARD_BACK';
|
||
|
|
||
|
/**
|
||
|
* 玩家数据
|
||
|
*/
|
||
|
public static PlayerStatus = 'AreanEvent.PLAYER_STATUS';
|
||
|
|
||
|
/**
|
||
|
* 装备
|
||
|
*/
|
||
|
public static SelectEquipList = 'AreanEvent.SELECT_EUIPLIST_PUSH';
|
||
|
|
||
|
|
||
|
/**
|
||
|
* 圣物
|
||
|
*/
|
||
|
public static SelectTreasureList = 'AreanEvent.SELECT_TREASURELIST_PUSH';
|
||
|
|
||
|
/**
|
||
|
* 切换英雄
|
||
|
*/
|
||
|
public static ChangeHero = 'AreanEvent.ChangeHero';
|
||
|
|
||
|
// 玩家准备
|
||
|
public static PlayerReady = 'AreanEvent.PlayerReady';
|
||
|
|
||
|
// 属性变化
|
||
|
public static AttrUpdate = 'AreanEvent.AttrUpdate';
|
||
|
|
||
|
|
||
|
|
||
|
/**
|
||
|
* 玩家进入战斗
|
||
|
*/
|
||
|
public static InBattleView = 'AreanEvent.InBattleView';
|
||
|
/**
|
||
|
* 玩家段位更新
|
||
|
*/
|
||
|
public static UpdateDan = 'AreanEvent.UpdateDan';
|
||
|
|
||
|
/**
|
||
|
* 头像头像框更新
|
||
|
*/
|
||
|
public static UpdateHeadOrFrame = 'AreanEvent.UpdateHeadOrFrame';
|
||
|
/**
|
||
|
* 玩家战斗奖励结算
|
||
|
*/
|
||
|
public static UpdateBattleResult = 'AreanEvent.UpdateBattleResult';
|
||
|
|
||
|
|
||
|
/**
|
||
|
* 获得新卡牌
|
||
|
*/
|
||
|
public static GetBattleRewards = 'AreanEvent.GetBattleRewards';
|
||
|
|
||
|
|
||
|
|
||
|
}
|
||
|
|
||
|
|
||
|
export class AreanNetMgr extends GameMgr {
|
||
|
|
||
|
private static _inst: AreanNetMgr;
|
||
|
public static get inst(): AreanNetMgr {
|
||
|
if (!this._inst) {
|
||
|
this._inst = new AreanNetMgr();
|
||
|
if (!this._inst.userData) {
|
||
|
this._inst.userData = {
|
||
|
uid: '',
|
||
|
nickname: '',
|
||
|
gameLevel: 1,
|
||
|
};
|
||
|
}
|
||
|
}
|
||
|
return this._inst;
|
||
|
}
|
||
|
|
||
|
|
||
|
/**
|
||
|
* 用户数据
|
||
|
*/
|
||
|
private userData: IAreanUserData;
|
||
|
|
||
|
/**
|
||
|
* 游戏数据
|
||
|
*/
|
||
|
private _gameData: IAreanGameData;
|
||
|
|
||
|
/**
|
||
|
* 游戏数据
|
||
|
*/
|
||
|
public get gameData(): IAreanGameData {
|
||
|
return this._gameData;
|
||
|
}
|
||
|
|
||
|
public set gameData(data: IAreanGameData) {
|
||
|
this._gameData = data;
|
||
|
}
|
||
|
/**
|
||
|
* 游戏玩家
|
||
|
*/
|
||
|
playerMap: { [key: number]: IAreanPlayer } = {};
|
||
|
|
||
|
|
||
|
/**
|
||
|
* 自己
|
||
|
*/
|
||
|
public get selfPlayer(): IAreanPlayer {
|
||
|
let gameUserData = this._gameData.players.find((p) => p.uid == UserMgr.inst.uid);
|
||
|
if (!gameUserData) {
|
||
|
console.log("没有找到自己", this._gameData.players);
|
||
|
return null;
|
||
|
}
|
||
|
let self = this.playerMap[gameUserData.playerId];
|
||
|
if (!self) {
|
||
|
console.log("没有找到自己", this.playerMap);
|
||
|
}
|
||
|
return self;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* 直接进入战斗
|
||
|
*/
|
||
|
// public isInBattleView: boolean = false;k
|
||
|
|
||
|
|
||
|
public reset() {
|
||
|
super.reset();
|
||
|
SubGameMgr.gameMgr = this;
|
||
|
}
|
||
|
|
||
|
protected async beforeLoadScene(): Promise<void> {
|
||
|
await AreanNetMgr.inst.rpc_JoinGame();
|
||
|
}
|
||
|
|
||
|
|
||
|
/**
|
||
|
*
|
||
|
* @returns 是否在游戏内
|
||
|
*/
|
||
|
public isInGame(): boolean {
|
||
|
console.log("是否在游戏中", this.gameData);
|
||
|
return this.gameData && this.gameData.gameStage> GameStage.GameAwait && this.gameData.gameStage < GameStage.GameEnd;
|
||
|
}
|
||
|
|
||
|
|
||
|
/**
|
||
|
* 游戏内广播推送
|
||
|
*/
|
||
|
initNetMsgHandlers() {
|
||
|
super.initNetMsgHandlers();
|
||
|
//监听战报
|
||
|
this.listenMsg("arean/AreanBattleReportPush", this.onNet_BattleReportPush, this);
|
||
|
this.listenMsg("arean/AreanGameStatusPush", this.onNet_GameStatusPush, this);
|
||
|
this.listenMsg("arean/AreanBloodVolumePush", this.onNet_BloodVolumePush, this);
|
||
|
this.listenMsg("arean/AreanCareerPush", this.onNet_CareerPush, this);
|
||
|
this.listenMsg("arean/AreanPlayerStatusPush", this.onNet_PlayerStatusPush, this);
|
||
|
this.listenMsg("arean/AreanSelectCardListPush", this.onNet_SelectCardList, this);
|
||
|
this.listenMsg("arean/AreanSelectEquipListPush", this.onNet_SelectEquipList, this);
|
||
|
this.listenMsg("arean/AreanSelectTreasureListPush", this.onNet_SelectTreasureList, this);
|
||
|
this.listenMsg("arean/AreanPlayerComesPush", this.onNet_PlayerComesPush, this);
|
||
|
this.listenMsg('arean/AreanGameDataPush', this.onNet_AreanGameDataPush, this);
|
||
|
this.listenMsg('arean/AreanStageReadyPush', this.onNet_AreanPlayerReadyDataPush, this);
|
||
|
this.listenMsg('arean/AreanAttrUpdatePush', this.onNet_AttrUpdatePush, this);
|
||
|
this.listenMsg('arean/AreanGameBeginPush', this.onNet_AreanGameBeginPush, this);
|
||
|
this.listenMsg('arean/AreanDanUpdatePush', this.onNet_AreanDanUpdatePush, this);
|
||
|
this.listenMsg('arean/AreanGetBattleRewards', this.onNet_AreanGetBattleRewards, this);
|
||
|
this.listenMsg('arean/AreanBattleRewardsPush', this.onNet_AreaBattleResult, this);
|
||
|
this.listenMsg("lobby/PlayerInfoPush", this.onNet_PlayerInfoPush, this);
|
||
|
this.initUINetMsgHandlers();
|
||
|
}
|
||
|
|
||
|
|
||
|
/**
|
||
|
*游戏外广播监听
|
||
|
*/
|
||
|
initUINetMsgHandlers() {
|
||
|
try {
|
||
|
NetGameServer.inst.listenMsg('lobby/NoticePush', this.onNet_NoticePush, this);
|
||
|
NetGameServer.inst.listenMsg("arean/AreanInBattleViewPush", this.onNet_InBattleViewPush, this);
|
||
|
} catch (error) {
|
||
|
console.log(error);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
/**
|
||
|
*
|
||
|
* @param msg 游信息推送
|
||
|
*/
|
||
|
public onNet_AreanGameDataPush(msg: MsgAreanGameDataPush) {
|
||
|
try {
|
||
|
this.gameData = msg.gameData;
|
||
|
console.log("游戏数据推送 ====== ", this.gameData)
|
||
|
switch (this.gameData.gameStage) {
|
||
|
case GameStage.GameAwait:
|
||
|
break;
|
||
|
case GameStage.GameStart:
|
||
|
// director.emit(AreanEvent.GameBegin);
|
||
|
break;
|
||
|
}
|
||
|
} catch (error) {
|
||
|
console.log(error);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
*
|
||
|
* @param msg 游信息推送
|
||
|
*/
|
||
|
public onNet_AreanPlayerReadyDataPush(msg: MsgAreanStageReadyPush) {
|
||
|
// console.log("AreanNetMgr onNet_AreanPlayerReadyDataPush", msg);
|
||
|
director.emit(AreanEvent.PlayerReady, msg);
|
||
|
}
|
||
|
|
||
|
public onNet_AttrUpdatePush(msg: MsgAreanAttrUpdatePush) {
|
||
|
console.log("AreanNetMgr onNet_AttrUpdatePush", msg);
|
||
|
let playerId = this.selfPlayer.playerId;
|
||
|
this.playerMap[playerId].attr = msg[playerId][0];
|
||
|
this.playerMap[playerId].curAttrAdd = msg[playerId][1];
|
||
|
director.emit(AreanEvent.AttrUpdate, msg[playerId][2]);
|
||
|
}
|
||
|
|
||
|
public onNet_InBattleViewPush(msg: MsgAreanInBattleViewPush) {
|
||
|
console.log('进入战斗推送', msg);
|
||
|
try {
|
||
|
director.emit(AreanEvent.InBattleView);
|
||
|
director.emit(AreanEvent.GameBegin);
|
||
|
} catch (error) {
|
||
|
console.log(error);
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
public onNet_AreanGameBeginPush(msg: MsgAreanGameBeginPush) {
|
||
|
console.log('游戏开始', msg);
|
||
|
director.emit(AreanEvent.GameBegin);
|
||
|
}
|
||
|
|
||
|
public onNet_NoticePush(msg: MsgNoticePush) {
|
||
|
console.log('广播推送', msg);
|
||
|
}
|
||
|
|
||
|
//每个阶段的剩余时间 那个阶段 剩余时间 阶段id 1等人 2选职业 3选卡 4战斗 5装备
|
||
|
onNet_GameStatusPush(msg: MsgAreanGameStatusPush) {
|
||
|
//console.log("MsgAreanGameStatusPush", msg);
|
||
|
director.emit(AreanEvent.BattleStagePush, msg);
|
||
|
}
|
||
|
|
||
|
//玩家血量
|
||
|
onNet_BloodVolumePush(msg: MsgAreanBloodVolumePush) {
|
||
|
console.log("MsgAreanBloodVolumePush", msg);
|
||
|
}
|
||
|
|
||
|
//玩家职业
|
||
|
onNet_CareerPush(msg: MsgAreanCareerPush) {
|
||
|
console.log("MsgAreanCareerPush", msg);
|
||
|
}
|
||
|
|
||
|
// 玩家信息列表
|
||
|
onNet_PlayerStatusPush(msg: MsgAreanPlayerStatusPush) {
|
||
|
console.log("游戏玩家列表", msg);
|
||
|
this.playerMap = msg;
|
||
|
//director.emit(AreanEvent.PlayerStatus, {});
|
||
|
}
|
||
|
|
||
|
|
||
|
//单独选卡接口
|
||
|
onNet_SelectCardList(msg: MsgAreanSelectCardListPush) {
|
||
|
this.playerMap[this.selfPlayer.playerId].selectCardList = msg.list;
|
||
|
console.log("MsgAreanSelectCardListPush", msg);
|
||
|
//director.emit(AreanEvent.SelectCardList, msg.list);
|
||
|
}
|
||
|
|
||
|
//选择装备
|
||
|
onNet_SelectEquipList(msg: MsgAreanSelectEquipListPush) {
|
||
|
this.playerMap[this.selfPlayer.playerId].selectEquipList = msg.list;
|
||
|
console.log("MsgAreanSelectEquipListPush", msg);
|
||
|
//director.emit(AreanEvent.SelectEquipList, msg.list);
|
||
|
}
|
||
|
|
||
|
//选择圣物
|
||
|
onNet_SelectTreasureList(msg: MsgAreanSelectTreasureListPush) {
|
||
|
this.playerMap[this.selfPlayer.playerId].selectTreasureList = msg.list;
|
||
|
console.log("MsgAreanSelectTreasureListPush", msg);
|
||
|
//director.emit(AreanEvent.SelectTreasureList, msg.list);
|
||
|
}
|
||
|
|
||
|
// 段位发生变化
|
||
|
onNet_AreanDanUpdatePush(msg: MsgAreanDanUpdatePush): void {
|
||
|
director.emit(AreanEvent.UpdateDan, msg);
|
||
|
}
|
||
|
|
||
|
// 获得战中奖励
|
||
|
onNet_AreanGetBattleRewards(msg: MsgAreanGetBattleRewards): void {
|
||
|
director.emit(AreanEvent.GetBattleRewards, msg);
|
||
|
console.log("MsgAreanGetBattleRewards", msg);
|
||
|
}
|
||
|
// 战斗结算
|
||
|
onNet_AreaBattleResult(msg: MsgAreanBattleRewardsPush): void {
|
||
|
director.emit(AreanEvent.UpdateBattleResult, msg);
|
||
|
}
|
||
|
|
||
|
//接收战报
|
||
|
onNet_BattleReportPush(msg: MsgAreanBattleReportPush) {
|
||
|
console.log("MsgAreanBattleReportPush", msg);
|
||
|
this.gameData.curBattleReport = msg;
|
||
|
//director.emit(AreanEvent.BattleReportPush, msg);
|
||
|
}
|
||
|
/**
|
||
|
* 购买道具
|
||
|
* @param itemId 购买物品id
|
||
|
* @param itemNum 购买数量
|
||
|
*/
|
||
|
async sendMsg_BuyItem(itemId: number,itemNum:number=1,moneyType:number=11) {
|
||
|
let res = await NetGameServer.inst.conn.callApi('arean/shop/AreanShopBuyItem', { itemId: itemId,count:itemNum,moneyType:moneyType});
|
||
|
if(res.isSucc){
|
||
|
|
||
|
tgxUIAlert.show('购买成功');
|
||
|
}
|
||
|
else{
|
||
|
tgxUIAlert.show('购买失败');
|
||
|
}
|
||
|
return res;
|
||
|
}
|
||
|
/**
|
||
|
*
|
||
|
* 开始游戏
|
||
|
* @returns
|
||
|
*/
|
||
|
async sendMsg_StartGame() {
|
||
|
console.log("sendMsg_StartGame ===== 1111")
|
||
|
return await NetGameServer.inst.conn.callApi('arean/AreanStartGame', {});
|
||
|
}
|
||
|
|
||
|
async sendMsg_Ready() {
|
||
|
return await NetGameServer.inst.conn.callApi('arean/AreanReady', { readyStatus: true })
|
||
|
}
|
||
|
|
||
|
async sendMsg_GetUserData() {
|
||
|
return await NetGameServer.inst.conn.callApi('arean/logic/AreanGetUserData', {});
|
||
|
}
|
||
|
async sendMsg_surrender() {
|
||
|
let res = await NetGameServer.inst.conn.callApi('arean/AreanPlayerSurrender', {});
|
||
|
console.log("投降的结果 === ", res);
|
||
|
if (res.isSucc) areanMgr.BattleView.showSettlementView(areanMgr.BattleView.getLocalPlayerData().rank);
|
||
|
}
|
||
|
|
||
|
async sendMsg_exit() {
|
||
|
let res = await this.rpc_LeaveRoom();
|
||
|
if (res.isSucc) {
|
||
|
tgxSceneUtil.loadScene(SceneDef.LOBBY_AREAN);
|
||
|
|
||
|
}
|
||
|
else {
|
||
|
tgxUIAlert.show('退出房间失败');
|
||
|
}
|
||
|
}
|
||
|
|
||
|
async sendMsg_InBattleView() {
|
||
|
await NetGameServer.inst.conn.callApi('arean/AreanInBattled', { });
|
||
|
}
|
||
|
|
||
|
|
||
|
/**
|
||
|
* 选择英雄
|
||
|
* @param heroId 英雄id
|
||
|
*/
|
||
|
async sendMsg_ChooseHero(heroId: number) {
|
||
|
await NetGameServer.inst.conn.callApi('arean/AreanChooseHero', { id: heroId });
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* 选择职业
|
||
|
* @param careerId 职业id
|
||
|
*/
|
||
|
async sendMsg_SelectCareer(careerId: number) {
|
||
|
await NetGameServer.inst.conn.callApi('arean/AreanSelectCareer', { careerId })
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* 购买刷新选择卡牌列表
|
||
|
*/
|
||
|
async sendMsg_BuySelectCardListRefresh() {
|
||
|
let msg = await NetGameServer.inst.conn.callApi('arean/AreanBuyCardRefresh', {});
|
||
|
if (msg.isSucc) {
|
||
|
let playerId = areanMgr.BattleView.getLocalPlayerData().playerId;
|
||
|
this.playerMap[playerId] = msg.res.playerData;
|
||
|
director.emit(AreanEvent.SelectCardList, msg.res);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* 购买经验
|
||
|
*/
|
||
|
async sendMsg_BuyExp() {
|
||
|
let msg = await NetGameServer.inst.conn.callApi('arean/AreanBuyExp', {});
|
||
|
if (msg.isSucc) {
|
||
|
let data = areanMgr.BattleView.getLocalPlayerData();
|
||
|
areanMgr.BattleView.moneyChange();
|
||
|
data.lv = msg.res.playerStatus.lv;
|
||
|
data.exp = msg.res.playerStatus.exp;
|
||
|
data.money = msg.res.playerStatus.money;
|
||
|
areanMgr.BattleView.refreshExpLevel();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* 修改选择卡牌列表锁定状态
|
||
|
* @param lockStatus 锁定状态
|
||
|
*/
|
||
|
async sendMsg_SelectCardListLock(lockStatus: boolean) {
|
||
|
let msg = await NetGameServer.inst.conn.callApi('arean/AreanSelectCardListLock', { lockStatus })
|
||
|
if (msg.isSucc) {
|
||
|
areanMgr.BattleView.lockBool = msg.res.lockStatus;
|
||
|
areanMgr.BattleView.lockNode.active = msg.res.lockStatus;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* 选择卡牌
|
||
|
* @param index 卡牌索引
|
||
|
*/
|
||
|
async sendMsg_SelectCard(index: number) {
|
||
|
let msg = await NetGameServer.inst.conn.callApi('arean/AreanSelcetCard', { index })
|
||
|
if (msg.isSucc) {
|
||
|
let playerId = areanMgr.BattleView.getLocalPlayerId();
|
||
|
this.playerMap[playerId] = msg.res.playerData;
|
||
|
director.emit(AreanEvent.SelectCardBack, msg.res);
|
||
|
|
||
|
}
|
||
|
}
|
||
|
|
||
|
async sendMsg_SelectEquip(index: number) {
|
||
|
let msg = await NetGameServer.inst.conn.callApi('arean/AreanSelcetEquip', { index });
|
||
|
if (msg.isSucc) {
|
||
|
areanMgr.BattleView.playwarning("获得新装备");
|
||
|
|
||
|
}
|
||
|
}
|
||
|
|
||
|
async sendMsg_SelectTreasure(index: number) {
|
||
|
let msg = await NetGameServer.inst.conn.callApi('arean/AreanSelectTreasure', { index });
|
||
|
if (msg.isSucc) {
|
||
|
areanMgr.BattleView.playwarning("获得新圣物");
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
// 刷新装备
|
||
|
async sendMsg_refresh_equip() {
|
||
|
return await NetGameServer.inst.conn.callApi("arean/AreanEquipRefresh", {});
|
||
|
}
|
||
|
|
||
|
// 刷新圣物
|
||
|
async sendMsg_refresh_treasure() {
|
||
|
return await NetGameServer.inst.conn.callApi("arean/AreanTreasureRefresh", {});
|
||
|
}
|
||
|
|
||
|
onNet_PlayerComesPush(msg: MsgAreanPlayerComesPush) {
|
||
|
director.emit(AreanEvent.PlayerComes, msg.player);
|
||
|
this.playerMap[msg.player.playerId] = msg.player;
|
||
|
console.log("--------玩家数据同步--------", msg);
|
||
|
}
|
||
|
|
||
|
onNet_PlayerInfoPush(msg: MsgPlayerInfoPush): void {
|
||
|
console.log("收到服务端推送的个人信息 === ", msg)
|
||
|
let data = msg.data;
|
||
|
switch (data.pushType) {
|
||
|
case EPlayerPushType.HeroListType: {
|
||
|
let info: UserInfo = UserMgr.inst.userInfo;
|
||
|
if (info) {
|
||
|
info.hero = data.info;
|
||
|
}
|
||
|
}
|
||
|
break;
|
||
|
case EPlayerPushType.DanType: {
|
||
|
let info: UserInfo = UserMgr.inst.userInfo;
|
||
|
if (info) {
|
||
|
info.danInfo = data.info;
|
||
|
}
|
||
|
}
|
||
|
break;
|
||
|
case EPlayerPushType.ItemListType: {
|
||
|
let info: UserInfo = UserMgr.inst.userInfo;
|
||
|
if (info) {
|
||
|
info.itemList = data.info;
|
||
|
}
|
||
|
}
|
||
|
break;
|
||
|
case EPlayerPushType.MainDanType:{
|
||
|
let info : UserInfo = UserMgr.inst.userInfo;
|
||
|
if(info){
|
||
|
info.mainDanInfo = data.info;
|
||
|
}
|
||
|
}
|
||
|
break;
|
||
|
case EPlayerPushType.SeasonDataType:{
|
||
|
let info : UserInfo = UserMgr.inst.userInfo;
|
||
|
if(info){
|
||
|
info.seasonInfo = data.info;
|
||
|
}
|
||
|
}
|
||
|
break;
|
||
|
default:
|
||
|
break
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
SubGameMgr.inst.registerGameMgr('arean', AreanNetMgr.inst);
|