Example #1
0
    /// <summary>
    /// Khi có người chơi bốc bài
    /// </summary>
    /// <param name="index">Người bốc bài</param>
    /// <param name="cardValue">Bài bốc được</param>
    public static void DrawCard(int index, int cardValue, int timeExpire)
    {
        ChanCard card = new ChanCard(index, cardValue);

        card.Instantiate(GameModelChan.game.deck.transform);
        card.isDrawFromDeck = true;
        GetPlayer(index).mCardTrash.Add(card);

        card.setTimeExpire(timeExpire);
        DeckCount--;
        game.stolen = false;

        MiniState = EGameStateMini.stealCard_or_skip;

        if (Common.CanViewHand && (YourController == null || YourController.slotServer != index))
        {
            GetPlayer(index).mCardHand.Sort((c1, c2) => c1.CompareTo(c2));
        }

        card.UpdateParent(index);

        game.UpdateHand(index, 0.5f);
        //game.UpdateHand(GameModel.IndexLastInTurn, 0.5f);
    }
Example #2
0
    /// <summary>
    /// Khi có người chơi đánh bài
    /// </summary>
    /// <param name="index">Người đánh bài</param>
    /// <param name="cardValue">Card đã đánh</param>
    public static void Discard(int soundId, int index, int cardValue, params string[] discardToPlayer)
    {
        ECard card = GetCard_FromHandPlayer(index, cardValue);

        if (GameModelChan.YourController == null || GameModelChan.YourController.slotServer != index)
        {
            card = new ChanCard(index, cardValue);
            card.Instantiate(game.mPlaymat.locationPlayer[(int)GetPlayer(index).mSide]);
            GetPlayer(index).mCardHand.Add(card);
            card.UpdateParent(index);
        }
        GetPlayer(index).mCardDiscardedAndDraw.Add(card);
        GetPlayer(index).mCardDiscarded.Add(card);
        GetPlayer(index).mCardHand.Remove(card);

        if (discardToPlayer != null && discardToPlayer.Length > 0 && discardToPlayer[0] != null)
        {
            PlayerControllerChan p = GetPlayer(discardToPlayer[0]);
            GetPlayer(discardToPlayer[0]).mCardTrash.Add(card);
            card.ChangeSide(p.slotServer);
            card.UpdateParent(p.slotServer);
        }
        else
        {
            GetPlayer(index).mCardTrash.Add(card);
        }



        game.fullLaying = false;

        card.UpdateParent(index);
        if (YourController != null && YourController.slotServer == index)
        {
            game.OnClickSort(game.btSorted.gameObject);
        }
        else
        {
            game.UpdateHand(index, 0.5f);
        }

        if (discardToPlayer != null && discardToPlayer.Length > 0 && discardToPlayer[0] != null)
        {
            game.UpdateHand(GetPlayer(discardToPlayer[0]).slotServer, 0.5f);
        }
        if (discardToPlayer != null && discardToPlayer.Length > 0 && discardToPlayer[0] != null)// co' chiu' tra? cua
        {
            Debug.Log(GameModelChan.GetPlayer(discardToPlayer[0]).username + " PlayerState " + GameModelChan.GetPlayer(index).PlayerState.ToString());

            if (GameModelChan.GetPlayer(discardToPlayer[0]).PlayerState == EPlayerController.EPlayerState.inTurnStealOrIgnore)
            {
                // Chíu cây bốc
                MiniState = EGameStateMini.stealCard_or_skip;
                //SoundGameplay.Instances.playAudioDisCard(cardValue, GetPlayer(index), GetPlayer(discardToPlayer[0]), null);
            }
            else
            {
                // Chíu cây bốc đánh
                MiniState = EGameStateMini.stealCard_or_draw;
                //SoundGameplay.Instances.playAudioDisCard(cardValue, GetPlayer(index), GetNextPlayer(discardToPlayer[0]), null);
            }
        }
        else
        {
            MiniState = EGameStateMini.stealCard_or_draw;
            //SoundGameplay.Instances.playAudioDisCard(cardValue, GetPlayer(index), GetNextPlayer(index), GetLastPlayer(index));
        }
        SoundGameplay.Instances.PlaySoundInGame(soundId, GetPlayer(index));
    }