示例#1
0
        public void AskTouchCardBack(string battleCode, string accountID, AskTouchCardBackType backType)
        {
            LogHelper.DebugLog("收到:" + accountID + "  发来的AskTouchCardBack");
            Battleground bg = BattlegroundManager.Instance.Find(battleCode);

            bg.AskTouchCardBack(accountID, backType);
        }
示例#2
0
        /// <summary>
        /// 询问碰牌结束
        /// </summary>
        /// <param name="accountid"></param>
        /// <param name="backType"></param>
        public void AskTouchCardBack(string accountid, AskTouchCardBackType backType)
        {
            lock (BattleLock)
            {
                if (Battle.Step != BattleCommand.AskTouchCard)
                {
                    return;
                }

                OneSide oneSide = Battle.Sides.FirstOrDefault(c => c.AccountID == accountid);
                if (oneSide == null)
                {
                    return;//操作无效,长时间会被超时处理
                }
                if (backType == AskTouchCardBackType.Pass)
                {
                    Battle.Step  = BattleCommand.AskTouchCardBack;
                    oneSide.Step = Battle.Step;
                    TakeCard();
                }
                else if (backType == AskTouchCardBackType.Touch)
                {
                    Battle.Step  = BattleCommand.AskTouchCardBack;
                    oneSide.Step = Battle.Step;
                    oneSide.Cards.Add(Battle.CurrentSide.TakeOutCard);
                    //翻牌
                    int num = 0;
                    foreach (var card in oneSide.Cards)
                    {
                        if (Battle.CurrentSide.TakeOutCard == card)
                        {
                            card.IsFront = true;
                            num++;
                            if (num >= 3)
                            {
                                break;
                            }
                        }
                    }
                    Battle.CurrentSide.OutCards.Remove(Battle.CurrentSide.TakeOutCard);
                    NoticeTouchCard();
                }
                else if (backType == AskTouchCardBackType.Win)
                {
                    if (IsWin(oneSide, false, Battle.CurrentSide.TakeOutCard))
                    {
                        Battle.Step  = BattleCommand.AskTouchCardBack;
                        oneSide.Step = Battle.Step;
                        FlipCard();
                    }
                    else
                    {
                        return;//操作无效,长时间会被超时处理
                    }
                }
            }
        }
示例#3
0
 public void AskTouchCardBack(AskTouchCardBackType backType)
 {
     //lock (sendLock)
     toServerCommand.AskTouchCardBack(BattleCode, UserID, backType);
 }
示例#4
0
 public void AskTouchCardBack(AskTouchCardBackType backType)
 {
     Send("ToServerCommand/AskTouchCardBack", BattleCode, UserID, backType);
 }