/// <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); }
/// <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)); }