Example #1
0
    public void InitRound()
    {
        count = 0;
        for (int i = 0; i < 4; ++i)
        {
            m_players[i].InitPlayerInfo();
        }

        m_teamFlag[0] = 0;
        m_teamFlag[1] = 0;

        CardDrawHandler.Instance.initCardDraw();
        m_wishCardPopup.Init();
        m_endRound = false;
        m_cardDeck.Init();

        m_turnPlayer     = null;
        m_startPlayer    = null;
        m_topPlayer      = null;
        m_firstPlayer    = null;
        m_wishCallPlayer = null;

        m_isAllReady        = false;
        m_isExchange        = false;
        m_isClosePointPopup = false;

        m_rutineState = RutineState.FirstDivisionState;

        m_tichuBtn.Active();
        m_bombBtn.Active();
    }
Example #2
0
    IEnumerator FirstDivision()
    {
        for (int i = 0; i < 8; ++i)
        {
            for (int j = 0; j < 4; ++j)
            {
                CardData cardData = m_cardDeck.GetCard(count++);

                m_players[j].AddCard(cardData);
                cardData.SetOwnerPlayer(m_players[j]);
            }
        }

        for (int i = 0; i < 4; ++i)
        {
            yield return(StartCoroutine(m_players[i].DivisionCardMove(m_cardDeck.transform.position, true)));

            m_players[i].ArrangementCard();
            m_players[i].SetCardCount();
        }

        if (m_players[0].CheckBomb())
        {
            m_bombBtn.Active();
        }
        else
        {
            m_bombBtn.Inactive();
        }

        m_rutineState = RutineState.ChooseLargeTichuState;
    }
Example #3
0
    public void DistributeAllCardRes(Protocol.DistributeAllCardResp res)
    {
        //if (m_player.PlayerIdx == res.player.index)
        //{

        //}
        for (int i = 8; i < res.player.CardList.Count; ++i)
        {
            m_player.AddCard(m_cardDeck.GetCard((CARD_TYPE)res.player.CardList[i].m_eCardType,
                                                (CARD_COLOR)res.player.CardList[i].m_eCardColor,
                                                res.player.CardList[i].m_nCardValue));
        }

        m_rutineState = RutineState.SecondDivisionState;

        //교환 단계로 넘어가자.
        StartCoroutine(SecondDivision());

        m_rutineState = RutineState.ExchangeState;

        m_ExchangeUi.View();
        m_exchangeBtn.gameObject.SetActive(true);
        m_drawBtn.Hide();
        m_passBtn.Hide();
    }
Example #4
0
    IEnumerator FirstDivision()
    {
        yield return(StartCoroutine(m_player.DivisionCardMove(m_cardDeck.transform.position, true)));

        m_player.ArrangementCard();
        m_player.SetCardCount();

        if (m_player.CheckBomb())
        {
            m_bombBtn.Active();
        }
        else
        {
            m_bombBtn.Inactive();
        }

        m_rutineState = RutineState.ChooseLargeTichuState;
    }
Example #5
0
    IEnumerator WaitingCardExchange()
    {
        //교환전에 카드를 자기자리에 셋팅을 하자
        m_players[0].SetCardOriginPosition();

        while (!m_isExchange)
        {
            m_isAllReady = true;

            for (int i = 0; i < playerSize; ++i)
            {
                if (!m_players[i].IsExchagne())
                {
                    m_isAllReady = false;
                    break;
                }
            }

            yield return(null);
        }

        Debug.Log("교환 되었습니다.");

        m_rutineState = RutineState.RoundState;

        m_ExchangeUi.Hide();
        m_exchangeBtn.gameObject.SetActive(false);
        SetActivePlayBtn(false);

        m_turnPlayer  = m_cardDeck.GetmahjongCard().m_ownerPlayer;
        m_startPlayer = m_turnPlayer;

        m_turnPlayer.MyTurn();

        if (m_turnPlayer == m_players[0])
        {
            m_passBtn.View();
        }
        else
        {
            m_passBtn.Hide();
            m_drawBtn.Hide();
        }
    }
Example #6
0
    IEnumerator ChooseLargeTichu()
    {
        m_LargeTichuPopup.gameObject.SetActive(true);

        while (m_rutineState != RutineState.SecondDivisionState)
        {
            for (int i = 0; i < playerSize; ++i)
            {
                m_isAllReady = true;

                if (!m_players[i].IsChooseLargeTichu())
                {
                    m_isAllReady = false;
                    break;
                }
            }

            if (m_isAllReady)
            {
                m_rutineState = RutineState.SecondDivisionState;
                m_LargeTichuPopup.gameObject.SetActive(false);
            }

            yield return(null);
        }

        //2차 분배
        StartCoroutine(SecondDivision());

        m_rutineState = RutineState.ExchangeState;

        m_ExchangeUi.View();
        m_exchangeBtn.gameObject.SetActive(true);
        m_drawBtn.Hide();
        m_passBtn.Hide();
    }
Example #7
0
 public void ChooseLargeTichuCofirm(bool bIsLargeTichu)
 {
     m_rutineState = RutineState.SecondDivisionState;
 }