コード例 #1
0
        public void MingBuzhang(string uid, int card, string desUid)
        {
            LinkedListNode <CsGamePlayer> node = FindPlayer(uid);

            foreach (var row in Players)
            {
                if ((row.CheckHu(card)) && row.PlayerUser.Uid != uid && row.PlayerUser.Uid != desUid)
                {
                    row.ResetEvent.WaitOne();
                }
            }

            if (node.Value.ResetEvent.WaitOne(0))
            {
                return;
            }

            //牌未被胡
            if (this.OutCardState == OutCardState.Normal)
            {
                this.OutCardState = OutCardState.Gang;

                node.Value.BuZhang(card);

                int mCard = this.ReadCard();
                node.Value.AddCard(mCard);
                A1022Response.Builder response = new A1022Response.Builder();
                response.Uid   = uid;
                response.Card  = mCard;
                response.BCard = card;

                byte[] responseArray = response.Build().ToByteArray();

                foreach (var row in this.Players)
                {
                    WebSocketServerWrappe.SendPackgeWithUser(row.PlayerUser.Uid, 1022, responseArray);
                }
                actionStorage.PushBuZhang(uid, card, mCard);
            }
        }
コード例 #2
0
        /// <summary>
        /// 暗杠补涨
        /// </summary>
        /// <param name="uid"></param>
        /// <param name="card"></param>
        public void AnBuZhang(string uid, int card)
        {
            if (this.IsFrist)
            {
                foreach (var row in Players)
                {
                    if ((row.CheckKaiJuHu()) && row.PlayerUser.Uid != uid)
                    {
                        LogManager.Log.Debug("开局胡等待" + row.PlayerUser.Uid + "wait");
                        row.ResetEvent.WaitOne();
                        LogManager.Log.Debug("开局胡等待处理完毕" + row.PlayerUser.Uid + "wait");
                    }
                }
            }

            this.IsFrist = false;

            LinkedListNode <CsGamePlayer> node = FindPlayer(uid);

            node.Value.AnBuZhang(card);

            int mCard = this.ReadCard();

            node.Value.AddCard(mCard);
            A1022Response.Builder response = new A1022Response.Builder();
            response.Uid         = uid;
            response.Card        = mCard;
            response.BCard       = card;
            response.BuZhangType = 0;

            byte[] responseArray = response.Build().ToByteArray();

            foreach (var row in this.Players)
            {
                WebSocketServerWrappe.SendPackgeWithUser(row.PlayerUser.Uid, 1022, responseArray);
            }

            actionStorage.PushBuZhang(uid, card, mCard);
        }