public void StartNewGame(GameUserSession session, string RoomCode) { PrePareNewGameInfo(RoomCode); var game = GameDataHandle.GetGameData(); game.GameCoins = new EGameCoins(RoomCode); GameTaskManager.SyncTask_ShuffleEnd(session); }
public override List <IGameMessage> HandleData(GameUserSession session, dataUserSitDown Data) { List <IGameMessage> result = new List <IGameMessage>(); //检测用户状态 GameManager gameManager = session.GameManager; //if (!gameManager.CanSitDown()) //{ // result.Add(new MessageNormalError("当前不能入座!请等待")); // return result; //} //用户坐下 lock (_lockSitDown) { var r = gameManager.UserSitDown(Data.SeatNo, Data.Coins); if (r.IsSuccess) { ResultUserSitDown msg = new ResultUserSitDown(gameManager.RoomCode); msg.RemainCoins = Data.Coins; msg.RoomCode = r.SuccessMsg; msg.SeatNo = r.IntMsg; result.Add(msg); } else { result.Add(new MessageNormalError(r.ErrorMsg)); return(result); } //游戏下一阶段 var gameInfo = gameManager.GetGameBasic(); var gs = gameInfo.GameStatus; if (gs == GameStatus.NoGame || gs == GameStatus.WaitPlayer || gs == GameStatus.Shuffling) { var nextGs = gameManager.GetNextGameStatus(gameInfo, true); if (nextGs == GameStatus.WaitPlayer) { result.Add(new ResultGameWait(gameInfo.RoomCode)); } if (nextGs == GameStatus.StartShuffle) { //通知前端洗牌 ResultGameShuffleStart shuffleStartMsg = new ResultGameShuffleStart(gameInfo.RoomCode); result.Add(shuffleStartMsg); // gameManager.PrePareNewGameInfo(gameInfo); //洗牌异步指令,洗牌结束需要通知前端,开始游戏 GameTaskManager.SyncTask_ShuffleEnd(session); } //else if (nextGs == GameStatus.Shuffling) //{ // ResultGameShuffling shuffleMsg = gameManager.WhileShuffling(); // result.Add(shuffleMsg); //} } } return(result); }