コード例 #1
0
ファイル: GameManager.cs プロジェクト: flysnoopy1984/IQianBa
 public void PlayerGiveUp()
 {
     try
     {
         var player = this.GameDataHandle.PopPlayer(PlayerStauts.GiveUp);
         player.PlayerStauts = PlayerStauts.GiveUp;
         RoomUserRedis.SetPlayer(RoomCode, player);
     }
     catch (Exception ex)
     {
         //错误需要将改玩家剔除
     }
 }
コード例 #2
0
        public EOneGame GetGameData(bool NeedRefrush = false)
        {
            if (NeedRefrush)
            {
                var       roomCode  = _OneGame.GameInfo.RoomCode;
                EGameInfo basicInfo = GameRedis.GetGameBasic(roomCode).resultObj;
                _OneGame.GameInfo = basicInfo;

                _OneGame.PlayerList = RoomUserRedis.GetAllPlayer(roomCode).resultList;


                _OneGame.TableCardList = _CardDataManager.TableCards;
            }
            return(_OneGame);
        }
コード例 #3
0
        public OutAPIResult UserStandUp_Redis(string UserOpenId)
        {
            OutAPIResult  result = new OutAPIResult();
            RoomUserRedis redis  = new RoomUserRedis();

            try
            {
                result = redis.UserSitUp(UserOpenId);
            }
            catch (Exception ex)
            {
                result.ErrorMsg = ex.Message;
            }
            return(result);
        }
コード例 #4
0
        public OutAPIResult UserSitDown_Redis(string UserOpenId, int SeatNo, decimal coins)
        {
            OutAPIResult  result = new OutAPIResult();
            RoomUserRedis redis  = new RoomUserRedis();

            try
            {
                result = redis.UserSitDown(UserOpenId, SeatNo, coins);
            }
            catch (Exception ex)
            {
                result.ErrorMsg = ex.Message;
            }
            return(result);
        }
コード例 #5
0
ファイル: GameTest.cs プロジェクト: flysnoopy1984/IQianBa
        public void DoSomethine()
        {
            RoomUserRedis    redis           = new RoomUserRedis();
            CardDataManager  CardDataManager = new CardDataManager();
            List <ERoomUser> Players         = redis.GetAllPlayer("04023135").resultList;

            //    ResultGameShuffleStart result = new ResultGameShuffleStart(RoomCode);

            CardDataManager.ShuffleCard(Players);

            foreach (ERoomUser p in Players)
            {
                var cl = p.CardList;
                //RoomUserRedis.SetPlayer(RoomCode, p);
            }
        }
コード例 #6
0
ファイル: GameManager.cs プロジェクト: flysnoopy1984/IQianBa
        /// <summary>
        /// 前端开始洗牌,同时系统分发派
        /// </summary>
        /// <returns></returns>
        public List <ERoomUser> DoShuffle()
        {
            List <ERoomUser> Players = RoomUserRedis.GetAllPlayer(RoomCode).resultList;


            CardDataManager.ShuffleCard(Players);

            foreach (ERoomUser p in Players)
            {
                p.PlayerStauts = PlayerStauts.PrepareBet;

                RoomUserRedis.SetPlayer(RoomCode, p);
            }
            GameRedis.SetTableCards(CardDataManager.TableCards.Values.ToList());

            return(Players);
        }
コード例 #7
0
        public OutAPIResult ExitRoom_Redis(string userOpenId)
        {
            OutAPIResult result = new OutAPIResult();

            RoomUserRedis roomUserRedis = new RoomUserRedis();

            try
            {
                lock (_ExitRoom)
                {
                    result = roomUserRedis.UserExitRoom(userOpenId);
                }
            }
            catch (Exception ex)
            {
                result.ErrorMsg = ex.Message;
            }
            return(result);
        }
コード例 #8
0
ファイル: GameManager.cs プロジェクト: flysnoopy1984/IQianBa
        public ResultBackHall UserBackHall()
        {
            ResultBackHall result = new ResultBackHall();

            try
            {
                var r = RoomUserRedis.UserExitRoom(_UserOpenId);
                if (!r.IsSuccess)
                {
                    result.ErrorMsg = r.ErrorMsg;
                }
            }
            catch (Exception ex)
            {
                result.ErrorMsg = ex.Message;
            }

            return(result);
        }
コード例 #9
0
ファイル: GameManager.cs プロジェクト: flysnoopy1984/IQianBa
        public ResultUserSitUp UserSitUp()
        {
            ResultUserSitUp result = new ResultUserSitUp();

            try
            {
                var r = RoomUserRedis.UserSitUp(_UserOpenId);
                if (!r.IsSuccess)
                {
                    result.ErrorMsg = r.ErrorMsg;
                }
            }
            catch (Exception ex)
            {
                result.ErrorMsg = ex.Message;
            }

            return(result);
        }
コード例 #10
0
ファイル: GameManager.cs プロジェクト: flysnoopy1984/IQianBa
        public OutAPIResult UserSitDown(int SeatNo, decimal coins)
        {
            OutAPIResult result = new OutAPIResult();

            try
            {
                if (coins <= 0)
                {
                    result.ErrorMsg = "金币不足,无法入座";
                    return(result);
                }
                result = RoomUserRedis.UserSitDown(_UserOpenId, SeatNo, coins);
            }
            catch (Exception ex)
            {
                result.ErrorMsg = ex.Message;
            }

            return(result);
        }
コード例 #11
0
ファイル: GameManager.cs プロジェクト: flysnoopy1984/IQianBa
        public OutAPIResult UserEntryRoom(string roomCode)
        {
            OutAPIResult r = new OutAPIResult();

            try
            {
                //登记用户
                r = RoomUserRedis.UserLogin(_UserOpenId, roomCode);
                if (r.IsSuccess)
                {
                    //用户进入房间
                    r         = RoomUserRedis.UserEntryRoom(_UserOpenId, roomCode);
                    _RoomCode = roomCode;
                }
            }
            catch (Exception ex)
            {
                r.ErrorMsg = ex.Message;
            }

            return(r);
        }
コード例 #12
0
ファイル: GameManager.cs プロジェクト: flysnoopy1984/IQianBa
        public void PlayerFollow(EGameInfo gi, string userOpenId, decimal FollowCoins)
        {
            try
            {
                var player = this.GameDataHandle.PopPlayer(PlayerStauts.Follow);
                player.PlayerStauts = PlayerStauts.Follow;
                RoomUserRedis.SetPlayer(RoomCode, player);

                //加注
                ECoinDetail cd = new ECoinDetail
                {
                    Coins      = FollowCoins,
                    Diff       = 0,
                    PileNo     = (int)gi.GameTurn,
                    UserOpenId = userOpenId,
                    CoinType   = CoinType.Follow,
                };
                GameDataHandle.AddPlayerCoins(cd);
            }
            catch (Exception ex)
            {
                //错误需要将改玩家剔除
            }
        }