/// <summary>
    /// 主玩家出牌
    /// </summary>
    private void MainPlayerPlayCard()
    {
        if (!isMyTurn)
        {
            EventCenter.BroadCast(EventType.UIFlashHint, "现在无法出牌");
            return;
        }

        Card[] cards = view.GetSelectedCards();
        if (cards.Length == 0)
        {
            EventCenter.BroadCast(EventType.UIFlashHint, "请选择要出的牌");
            return;
        }

        CardSet cardSet = CardSet.GetCardSet(cards);

        Debug.LogFormat("main player cardset:{0}", cardSet);
        if (cardSet.Type == CardSetType.Invalid)
        {
            EventCenter.BroadCast(EventType.UIFlashHint, "无效的组合");
            view.UnselectAllCard();
        }
        else if (!cardSet.IsGreaterThan(CardManager.LastHand))//牌型不同,或者没对方大
        {
            EventCenter.BroadCast(EventType.UIFlashHint, "无法大过上家");
            view.UnselectAllCard();
        }
        else //合法的出牌
        {
            PlayCard(cardSet);
        }
    }
Exemplo n.º 2
0
    private void OnPlayCardClicked()
    {
        Card[]  cards   = view.GetSelectedCards();
        CardSet cardSet = CardSet.GetCardSet(cards);

        if (cards.Length == 0)
        {
            EventCenter.BroadCast(EventType.UIFlashHint, "请选择要出的牌");
            return;
        }

        if (cardSet.Type == CardSetType.Invalid)
        {
            EventCenter.BroadCast(EventType.UIFlashHint, "无效的组合");
            return;
        }

        CardSet lastHand = Models.gameModel.playModel.lastHand;

        if (lastHand != null && !cardSet.IsGreaterThan(lastHand))
        {
            EventCenter.BroadCast(EventType.UIFlashHint, "无法大过上家");
            return;
        }

        //出牌合法,向服务器发送数据
        NetMsgCenter.Instance.SendPlayCardMsg(cardSet);
    }