Ejemplo n.º 1
0
 /// <summary>
 /// Check do we need Second tieBreaker, for two pair & full house
 /// </summary>
 /// <returns></returns>
 public bool DoWeSeccondTieBracker(HandRankPoker _rank)
 {
     if (_rank == HandRankPoker.fullHouse || _rank == HandRankPoker.twoPairs)
     {
         return(true);
     }
     else
     {
         return(false);
     }
 }
Ejemplo n.º 2
0
 /// <summary>
 /// Check do we need tieBreaker, for all except royal flush
 /// </summary>
 /// <returns></returns>
 public bool DoWeTieBracker(HandRankPoker _rank)
 {
     if (_rank == HandRankPoker.royalFlush)
     {
         return(false);
     }
     else
     {
         return(true);
     }
 }
Ejemplo n.º 3
0
 /// <summary>
 /// Check do we need kicker, only for pair, triple
 /// </summary>
 /// <returns></returns>
 public bool DoWeNeedSecondKicker(HandRankPoker _rank)
 {
     if (_rank == HandRankPoker.onePair || _rank == HandRankPoker.threeOfaKind)
     {
         return(true);
     }
     else
     {
         return(false);
     }
 }
Ejemplo n.º 4
0
 /// <summary>
 /// Check do we need kicker, only for pair, 2 pairs, triple, four of a kind
 /// </summary>
 /// <returns></returns>
 public bool DoWeNeedKicker(HandRankPoker _rank)
 {
     if (_rank == HandRankPoker.onePair || _rank == HandRankPoker.twoPairs || _rank == HandRankPoker.threeOfaKind || _rank == HandRankPoker.fourOfAKind || _rank == HandRankPoker.flush)
     {
         return(true);
     }
     else
     {
         return(false);
     }
 }
Ejemplo n.º 5
0
    /// <summary>
    /// Hand value : 2 pairs ,one pair etc.
    /// </summary>
    /// <returns></returns>
    public HandRankPoker MaxRankeInTable(_PlayerPokerActor[] _players)
    {
        HandRankPoker MaxHand = HandRankPoker.none;

        foreach (_PlayerPokerActor p in _players)
        {
            if (p._playerHandRank > MaxHand)//&& p.playerState != _PlayerPokerActor.PlayerState.fold)
            {
                MaxHand = p._playerHandRank;
            }
        }

        return(MaxHand);
    }
Ejemplo n.º 6
0
    public void SetMyInfoRank()
    {
        if (!PhotonUtility.GetPlayerProperties <bool>(myPlayer, PhotonEnums.Player.Active))
        {
            return;
        }

        if (imgHandRank == null)
        {
            panelTxtRankHand.SetActive(true);
        }
        else
        {
            imgHandRank.gameObject.SetActive(true);
        }
        System.Collections.Generic.List <_CardActor> a = new System.Collections.Generic.List <_CardActor>();

        foreach (_CardActor ca in _PokerGameManager.instance.tableCard)
        {
            if (ca.gameObject.activeSelf)
            {
                a.Add(ca);
            }
        }

        if (a.Count >= 2)
        {
            HandRankPoker hrp = _PokerGameManager.cardManager.EvaluatPlayerHand(a.ToArray(), _myHandCard);
            if (imgHandRank == null)
            {
                txtHandRank.text = hrp.ToString();
            }
            else
            {
                switch (hrp)
                {
                case HandRankPoker.highCard:
                    imgHandRank.sprite = PokerManager.instance.sprHighCard;
                    break;

                case HandRankPoker.onePair:
                    imgHandRank.sprite = PokerManager.instance.sprOnePair;
                    break;

                case HandRankPoker.twoPairs:
                    imgHandRank.sprite = PokerManager.instance.sprTwoPair;
                    break;

                case HandRankPoker.threeOfaKind:
                    imgHandRank.sprite = PokerManager.instance.sprThrice;
                    break;

                case HandRankPoker.fourOfAKind:
                    imgHandRank.sprite = PokerManager.instance.sprQuad;
                    break;

                case HandRankPoker.straight:
                    imgHandRank.sprite = PokerManager.instance.sprStraight;
                    break;

                case HandRankPoker.flush:
                    imgHandRank.sprite = PokerManager.instance.sprFlush;
                    break;

                case HandRankPoker.fullHouse:
                    imgHandRank.sprite = PokerManager.instance.sprFullHouse;
                    break;

                case HandRankPoker.straightFlush:
                    imgHandRank.sprite = PokerManager.instance.sprStraightFlush;
                    PokerManager.instance.bStraightFlush = true;
                    break;

                case HandRankPoker.royalFlush:
                    imgHandRank.sprite = PokerManager.instance.sprRoyalFlush;
                    PokerManager.instance.bRoyalFlush = true;
                    break;
                }
            }
        }
    }
Ejemplo n.º 7
0
    public void StartInitialize(int _slot, bool _flagMine, bool _isBot = false)
    {
        forceFold = false;

        isBot     = _isBot;
        slotIndex = _slot;
        isMine    = _flagMine;
        totalBet  = 0;

        //ActivateInviteButton(false);
        chatItem.SetActive(false);

        foreach (Image i in imgBetAmount)
        {
            i.sprite = PokerManager.instance.sprCoin;
        }

        ExitGames.Client.Photon.Hashtable properties = myPlayer.CustomProperties;
        #region change name & picture & Avatar 3D
        _myName = (string)properties[PhotonEnums.Player.Name];
        myMoney = (long)properties[PhotonEnums.Player.Money];

        txtName.text    = _myName;
        txtMyMoney.text = myMoney.toFlexibleCurrency();

        //Load Avatar 3D
        if (isMine && !isBot)
        {
            //avatarEquiped = DataManager.instance.hero.id;
            heroUsed = PlayerData.costume_id;
        }
        else
        {
            heroUsed = PhotonUtility.GetPlayerProperties <int> (myPlayer, PhotonEnums.Player.ContentURL);
        }

        //hero.LoadSpine (heroUsed, isMine && !isBot);
        hero.LoadFromBundle(heroUsed, isMine && !isBot);
        #endregion

        _playerHandRank = (HandRankPoker)((int)properties[PhotonEnums.Player.HandRank]);
        RANK            = (int)properties[PhotonEnums.Player.RankPoker];

        valueHand       = (int)properties[PhotonEnums.Player.ValueHand];
        secondValueHand = (int)properties[PhotonEnums.Player.SecondValueHand];

        _kicker      = (int)properties[PhotonEnums.Player.Kicker];
        secondKicker = (int)properties[PhotonEnums.Player.SecondKicker];

        totalBet = (long)properties[PhotonEnums.Player.TotalBet];
        chipsBet = (long)properties[PhotonEnums.Player.ChipsBet];

        string strCard = (string)properties[PhotonEnums.Player.Cards];
        if (strCard != "")
        {
            string[] cardTypes = strCard.Split(',');
            this.cardTypes = cardTypes;
            InstallHandCard(int.Parse(cardTypes[0]), int.Parse(cardTypes[1]));
        }

        if (isBot)
        {
            if (PhotonTexasPokerManager.instance.botCount == 0)
            {
                PhotonTexasPokerManager.instance.SyncBot();
            }
        }

        UpdateUIPlayer();
    }
Ejemplo n.º 8
0
    /// <summary>
    /// Setup The Ranks
    /// </summary>
    public void SetupRanks()
    {
        List <_PlayerPokerActor> playersOnTable = new List <_PlayerPokerActor>();

        playersOnTable.AddRange(_PokerGameManager.turnManager.matchPlayers);
        int loop = playersOnTable.Count;
        int rank = 1;

        foreach (_PlayerPokerActor player in playersOnTable)
        {
            player._playerHandRank = EvaluatPlayerHand(_PokerGameManager.instance.tableCard, player._myHandCard);

            player._myHighlightedCard = cardCounter.CardHighlight;
            player._kicker            = cardCounter.kickerValue;
            player.secondKicker       = cardCounter.secondKickerValue;

            player.valueHand       = cardCounter.tieBrakerValue;
            player.secondValueHand = cardCounter.secondTieBrakerValue;
        }

        for (int x = loop; x > 0; x--)
        {
            if (playersOnTable.Count == 0)
            {
                break;
            }

            List <_PlayerPokerActor> tmpwinners  = new List <_PlayerPokerActor>();
            List <_PlayerPokerActor> Winners     = new List <_PlayerPokerActor>();
            HandRankPoker            winningHand = MaxRankeInTable(playersOnTable.ToArray());//Hand Val Max

            int _kickerCard    = -1;
            int _secKickerCard = -1;

            int _tieBreaker    = -1;
            int _secTieBreaker = -1;

            foreach (_PlayerPokerActor p in playersOnTable)
            {
                if (p._playerHandRank == winningHand)
                {
                    tmpwinners.Add(p);
                }
            }

            if (tmpwinners.Count > 1)
            {
                if (DoWeTieBracker(winningHand))
                {
                    List <_PlayerPokerActor> winnersTie = new List <_PlayerPokerActor>();
                    _tieBreaker = MaxTieBreaker(tmpwinners.ToArray());//Max total value in numbers

                    foreach (_PlayerPokerActor p in tmpwinners)
                    {
                        if (p.valueHand == _tieBreaker)
                        {
                            winnersTie.Add(p);
                        }
                    }

                    tmpwinners.Clear();
                    tmpwinners.AddRange(winnersTie);
                }

                if (DoWeSeccondTieBracker(winningHand))
                {
                    List <_PlayerPokerActor> winnersTie = new List <_PlayerPokerActor>();
                    _secTieBreaker = MaxSecondTieBreaker(tmpwinners.ToArray());//Max total value in numbers

                    foreach (_PlayerPokerActor p in tmpwinners)
                    {
                        if (p.secondValueHand == _secTieBreaker)
                        {
                            winnersTie.Add(p);
                        }
                    }

                    tmpwinners.Clear();
                    tmpwinners.AddRange(winnersTie);
                }

                if (DoWeNeedKicker(winningHand))
                {
                    List <_PlayerPokerActor> winnersKicker = new List <_PlayerPokerActor>();
                    _kickerCard = MaxKickerValue(tmpwinners.ToArray());//Max total value in numbers

                    foreach (_PlayerPokerActor p in tmpwinners)
                    {
                        if (p._kicker == _kickerCard)
                        {
                            winnersKicker.Add(p);
                        }
                    }

                    tmpwinners.Clear();
                    tmpwinners.AddRange(winnersKicker);
                }

                if (DoWeNeedSecondKicker(winningHand))
                {
                    List <_PlayerPokerActor> winnersKicker = new List <_PlayerPokerActor>();
                    _secKickerCard = MaxSecKickerValue(tmpwinners.ToArray());//Max total value in numbers

                    foreach (_PlayerPokerActor p in tmpwinners)
                    {
                        if (p.secondKicker == _secKickerCard)
                        {
                            winnersKicker.Add(p);
                        }
                    }

                    tmpwinners.Clear();
                    tmpwinners.AddRange(winnersKicker);
                }

                Winners.AddRange(tmpwinners);

                int numWinners = Winners.Count;
                foreach (_PlayerPokerActor p in Winners)
                {
                    //p.PullTheChips(_mainPot / Winners.Count);
                    p.RANK = rank;
                    //Debug.LogError("player " + p.name + " : " + Winners.Count);

                    playersOnTable.Remove(p);
                }
            }
            else
            {
                //Debug.LogError("player " + tmpwinners[0].name + " : 1");

                tmpwinners[0].RANK = rank;
                playersOnTable.Remove(tmpwinners[0]);
                //tmpwinners[0].PullTheChips((int)_mainPot);
            }

            rank++;
        }
    }