public void CountReturnsCorrectNumberOfObjects()
        {
            IPlayerStats stats = new PlayerStats();

            stats.Add("test", 8);
            stats.Add("test2", 3);

            Assert.AreEqual(2, stats.Count());
        }
        public void GetReturnsObjectFromGlobalStateForDifferentTypes()
        {
            IPlayerStats stats = new PlayerStats();

            stats.Add("test", 8);
            stats.Add("test2", 2);

            Assert.AreEqual(8, stats.Get("test"));
            Assert.AreEqual(2, stats.Get("test2"));
        }
        public void ClearEmptiesInventory()
        {
            IPlayerStats stats = new PlayerStats();

            stats.Add("test", 8);
            stats.Add("test2", 2);

            Assert.AreEqual(2, stats.Count());

            stats.Clear();

            Assert.AreEqual(0, stats.Count());
        }
Esempio n. 4
0
 protected override void InitializePlayerStats()
 {
     PlayerStats.Clear();
     foreach (EPlayerID playerID in PlayerManager.Instance.GetJoinedPlayers())
     {
         PlayerStats.Add(playerID, new TestPlayerStats(playerID, TotalLives));
     }
 }
        public void ExistsReturnsTrueForObjectThatExists()
        {
            IPlayerStats stats = new PlayerStats();

            int testNumber = 8;

            stats.Add("test", testNumber);

            Assert.AreEqual(true, stats.Exists("test"));
        }
        public void GetReturnsObjectFromGlobalState()
        {
            IPlayerStats stats = new PlayerStats();

            int testNumber = 8;

            stats.Add("test", testNumber);

            Assert.AreEqual(testNumber, (int)stats.Get("test"));
            Assert.AreEqual(8, (int)stats.Get("test"));
        }
        public void AddInsertsObjectInGameState()
        {
            IPlayerStats stats = new PlayerStats();

            int testNumber = 8;

            stats.Add("test", testNumber);

            Assert.AreEqual(1, stats.Count());
            Assert.AreEqual(testNumber, (int)stats.Get("test"));
        }
        public void SubtractFromSubtracts10ToHealthOf100()
        {
            IPlayerStats stats = new PlayerStats();

            stats.Add("health", 100);

            int returned = stats.SubtractFrom("health", 10);

            Assert.AreEqual(90, returned);
            Assert.AreEqual(90, stats.Get("health"));
        }
        public void AddToAdds10ToHealthOf100()
        {
            IPlayerStats stats = new PlayerStats();

            stats.Add("health", 100);

            int returned = stats.AddTo("health", 10);

            Assert.AreEqual(110, returned);
            Assert.AreEqual(110, stats.Get("health"));
        }
Esempio n. 10
0
        public static void OnNPCCraftedRecipe(IJob job, Recipe recipe, List <InventoryItem> results)
        {
            try
            {
                if (Configuration.EnableStatisticCollecting)
                {
                    Players.Player p = Players.GetPlayer(job.Owner.ID);
                    SortedDictionary <string, int> PlayerStats;

                    if (!Stats.ContainsKey(p.Name))
                    {
                        PlayerStats = new SortedDictionary <string, int>();
                        Stats.Add(p.Name, PlayerStats);
                    }
                    else
                    {
                        PlayerStats = Stats[p.Name];
                    }

                    foreach (InventoryItem it in results)
                    {
                        string name = ItemTypes.IndexLookup.GetName(it.Type);
                        if (name.Contains("."))
                        {
                            name = name.Substring(name.LastIndexOf('.') + 1);
                        }

                        if (!PlayerStats.ContainsKey(name))
                        {
                            PlayerStats.Add(name, 1);
                        }
                        else
                        {
                            if (PlayerStats.TryGetValue(name, out int count))
                            {
                                count++;
                                PlayerStats[name] = count;
                            }
                        }
                    }
                    Stats[p.Name] = PlayerStats;
                }
            }
            catch (System.Exception e)
            {
                Logger.Log("{0}.OnNPCCraftedRecipe had an error : {1}", Statistics.MOD_NAMESPACE, e.Message);
            }
        }
Esempio n. 11
0
        protected override PlayerStats GetPlayerStats(string playerName, IEnumerable <Game> games)
        {
            var statCollection = new PlayerStats(playerName);
            var playerGames    = games.GetGamesForPlayer(playerName).ToList();

            if (Properties.Settings.Default.Stat_Win)//win % stat
            {
                var wp = playerGames.GetHandsWonPercentForPlayerGames(playerName);
                statCollection.Add(new Stat()
                {
                    Name = "Win %", Value = Math.Round(wp, 2)
                });
            }
            if (Properties.Settings.Default.Stat_Hands)//hands
            {
                statCollection.Add(new Stat()
                {
                    Name = "Hands", Value = playerGames.Count()
                });
            }

            if (Properties.Settings.Default.Stat_VPIP)//VPIP
            {
                var vpip = playerGames.VPIP_ForPlayer(playerName);
                statCollection.Add(new Stat()
                {
                    Name = "VPIP", Value = Math.Round(vpip, 2)
                });
            }
            if (Properties.Settings.Default.Stat_EP_VPIP)//EP VPIP
            {
                var vpip = playerGames.VPIP_EP_ForPlayer(playerName);
                statCollection.Add(new Stat()
                {
                    Name = "EP VPIP", Value = Math.Round(vpip, 2)
                });
            }
            if (Properties.Settings.Default.Stat_MP_VPIP)//MP VPIP
            {
                var vpip = playerGames.VPIP_MP_ForPlayer(playerName);
                statCollection.Add(new Stat()
                {
                    Name = "MP VPIP", Value = Math.Round(vpip, 2)
                });
            }
            if (Properties.Settings.Default.Stat_LP_VPIP)//LP VPIP
            {
                var vpip = playerGames.VPIP_LP_ForPlayer(playerName);
                statCollection.Add(new Stat()
                {
                    Name = "LP VPIP", Value = Math.Round(vpip, 2)
                });
            }
            if (Properties.Settings.Default.Stat_Profit)//Profit
            {
                var profit = playerGames.CalculateTotalProfit(playerName);
                statCollection.Add(new Stat()
                {
                    Name = "Profit", Value = Math.Round(profit, 2)
                });
            }
            if (Properties.Settings.Default.Stat_PFR)//PFR
            {
                var prc = playerGames.PFR_ForPlayer(playerName);
                statCollection.Add(new Stat()
                {
                    Name = "PFR", Value = Math.Round(prc, 2)
                });
            }
            if (Properties.Settings.Default.Stat_EP_PFR)//EP PFR
            {
                var prc = playerGames.PFR_EP_ForPlayer(playerName);
                statCollection.Add(new Stat()
                {
                    Name = "EP PFR", Value = Math.Round(prc, 2)
                });
            }
            if (Properties.Settings.Default.Stat_MP_PFR)//MP PFR
            {
                var prc = playerGames.PFR_MP_ForPlayer(playerName);
                statCollection.Add(new Stat()
                {
                    Name = "MP PFR", Value = Math.Round(prc, 2)
                });
            }
            if (Properties.Settings.Default.Stat_LP_PFR)//LP PFR
            {
                var prc = playerGames.PFR_LP_ForPlayer(playerName);
                statCollection.Add(new Stat()
                {
                    Name = "LP PFR", Value = Math.Round(prc, 2)
                });
            }
            if (Properties.Settings.Default.Stat_ATS)//ATS
            {
                var atsPercent = playerGames.ATS_PercentForPlayer(playerName);
                statCollection.Add(new Stat()
                {
                    Name = "ATS", Value = Math.Round(atsPercent, 2)
                });
            }
            if (Properties.Settings.Default.Stat_ATS_CO)//CO ATS
            {
                var atsPercent = playerGames.ATS_CO_PercentForPlayer(playerName);
                statCollection.Add(new Stat()
                {
                    Name = "CO ATS", Value = Math.Round(atsPercent, 2)
                });
            }
            if (Properties.Settings.Default.Stat_ATS_B)//B ATS
            {
                var atsPercent = playerGames.ATS_B_PercentForPlayer(playerName);
                statCollection.Add(new Stat()
                {
                    Name = "B ATS", Value = Math.Round(atsPercent, 2)
                });
            }
            if (Properties.Settings.Default.Stat_ATS_SB)//SB ATS
            {
                var atsPercent = playerGames.ATS_SB_PercentForPlayer(playerName);
                statCollection.Add(new Stat()
                {
                    Name = "SB ATS", Value = Math.Round(atsPercent, 2)
                });
            }
            if (Properties.Settings.Default.Stat_BB)
            {
                statCollection.Add(new Stat()
                {
                    Name = "BB", Value = Math.Round(playerGames.Last().BB_ForPlayer(playerName))
                });
            }

            if (Properties.Settings.Default.Stat_AF) //AF
            {
                var afPercent = playerGames.AF_ForPlayer(playerName);
                statCollection.Add(new Stat()
                {
                    Name = "AF", Value = Math.Round(afPercent, 2)
                });
            }
            if (Properties.Settings.Default.Stat_AF_Flop) //AF Flop
            {
                var afPercent = playerGames.AF_Flop_ForPlayer(playerName);
                statCollection.Add(new Stat()
                {
                    Name = "AF Flop", Value = Math.Round(afPercent, 2)
                });
            }
            if (Properties.Settings.Default.Stat_AF_Turn) //AF Turn
            {
                var afPercent = playerGames.AF_Turn_ForPlayer(playerName);
                statCollection.Add(new Stat()
                {
                    Name = "AF Turn", Value = Math.Round(afPercent, 2)
                });
            }
            if (Properties.Settings.Default.Stat_AF_River) //AF River
            {
                var afPercent = playerGames.AF_River_ForPlayer(playerName);
                statCollection.Add(new Stat()
                {
                    Name = "AF River", Value = Math.Round(afPercent, 2)
                });
            }
            if (Properties.Settings.Default.Stat_3B)//3B
            {
                var thbc = playerGames.ThreeBet_ForPlayer(playerName);
                statCollection.Add(new Stat()
                {
                    Name = "3B", Value = Math.Round(thbc, 2)
                });
            }
            if (Properties.Settings.Default.Stat_Fold_SB_ToSteal)//Stat Fb to Steal
            {
                var fSb = playerGames.Fold_SB_To_Steal_ForPlayer(playerName);
                statCollection.Add(new Stat()
                {
                    Name = "Fold SB to Stl", Value = Math.Round(fSb, 2)
                });
            }
            if (Properties.Settings.Default.Stat_Fold_BB_ToSteal)//Stat Bb to Steal
            {
                var fBb = playerGames.Fold_BB_To_Steal_ForPlayer(playerName);
                statCollection.Add(new Stat()
                {
                    Name = "Fold BB to Stl", Value = Math.Round(fBb, 2)
                });
            }
            if (Properties.Settings.Default.Stat_WMWSF)
            {
                var wmwsf = playerGames.WMWSF_ForPlayer(playerName);
                statCollection.Add(new Stat()
                {
                    Name = "W$WSF", Value = Math.Round(wmwsf, 2)
                });
            }
            if (Properties.Settings.Default.Stat_WTSD)
            {
                var wtsd = playerGames.WTSD_ForPlayer(playerName);
                statCollection.Add(new Stat()
                {
                    Name = "WTSD", Value = Math.Round(wtsd, 2)
                });
            }
            if (Properties.Settings.Default.Stat_CallOpen)
            {
                var co = playerGames.CallOpen_ForPlayer(playerName);
                statCollection.Add(new Stat()
                {
                    Name = "Call Open", Value = Math.Round(co, 2)
                });
            }
            if (Properties.Settings.Default.Stat_FlopCB)
            {
                var cb = playerGames.Flop_CB(playerName);
                statCollection.Add(new Stat()
                {
                    Name = "Flop CB", Value = Math.Round(cb, 2)
                });
            }
            return(statCollection);
        }
Esempio n. 12
0
        protected override PlayerStats GetPlayerStats(string playerName, IEnumerable<Game> games)
        {
            var statCollection = new PlayerStats(playerName);
            var playerGames = games.GetGamesForPlayer(playerName).ToList();
            if (true)//win % stat
            {
                var wp = playerGames.GetHandsWonPercentForPlayerGames(playerName);
                statCollection.Add(new Stat() { Name = "Win %", Value = Math.Round(wp, 2) });
            }
            if (true)//hands
                statCollection.Add(new Stat() { Name = "Hands", Value = playerGames.Count() });

            if (true)//VPIP
            {
                var vpip = playerGames.VPIP_ForPlayer(playerName);
                statCollection.Add(new Stat() { Name = "VPIP", Value = Math.Round(vpip, 2) });
            }
            if (true)//EP VPIP
            {
                var vpip = playerGames.VPIP_EP_ForPlayer(playerName);
                statCollection.Add(new Stat() { Name = "EP VPIP", Value = Math.Round(vpip, 2) });
            }
            if (true)//MP VPIP
            {
                var vpip = playerGames.VPIP_MP_ForPlayer(playerName);
                statCollection.Add(new Stat() { Name = "MP VPIP", Value = Math.Round(vpip, 2) });
            }
            if (true)//LP VPIP
            {
                var vpip = playerGames.VPIP_LP_ForPlayer(playerName);
                statCollection.Add(new Stat() { Name = "LP VPIP", Value = Math.Round(vpip, 2) });
            }
            if (true)//Profit
            {
                var profit = playerGames.CalculateTotalProfit(playerName);
                statCollection.Add(new Stat() { Name = "Profit", Value = Math.Round(profit, 2) });
            }
            if (true)//PFR
            {
                var prc = playerGames.PFR_ForPlayer(playerName);
                statCollection.Add(new Stat() { Name = "PFR", Value = Math.Round(prc, 2) });
            }
            if (true)//EP PFR
            {
                var prc = playerGames.PFR_EP_ForPlayer(playerName);
                statCollection.Add(new Stat() { Name = "EP PFR", Value = Math.Round(prc, 2) });
            }
            if (true)//MP PFR
            {
                var prc = playerGames.PFR_MP_ForPlayer(playerName);
                statCollection.Add(new Stat() { Name = "MP PFR", Value = Math.Round(prc, 2) });
            }
            if (true)//LP PFR
            {
                var prc = playerGames.PFR_LP_ForPlayer(playerName);
                statCollection.Add(new Stat() { Name = "LP PFR", Value = Math.Round(prc, 2) });
            }
            if (true)//ATS
            {
                var atsPercent = playerGames.ATS_PercentForPlayer(playerName);
                statCollection.Add(new Stat() { Name = "ATS", Value = Math.Round(atsPercent, 2) });
            }
            if (true)//CO ATS
            {
                var atsPercent = playerGames.ATS_CO_PercentForPlayer(playerName);
                statCollection.Add(new Stat() { Name = "CO ATS", Value = Math.Round(atsPercent, 2) });
            }
            if (true)//B ATS
            {
                var atsPercent = playerGames.ATS_B_PercentForPlayer(playerName);
                statCollection.Add(new Stat() { Name = "B ATS", Value = Math.Round(atsPercent, 2) });
            }
            if (true)//SB ATS
            {
                var atsPercent = playerGames.ATS_SB_PercentForPlayer(playerName);
                statCollection.Add(new Stat() { Name = "SB ATS", Value = Math.Round(atsPercent, 2) });
            }
            if (true)
                statCollection.Add(new Stat() { Name = "BB", Value = Math.Round(playerGames.Last().BB_ForPlayer(playerName)) });

            if (true) //AF
            {
                var afPercent = playerGames.AF_ForPlayer(playerName);
                statCollection.Add(new Stat() { Name = "AF", Value = Math.Round(afPercent, 2) });
            }
            if (true) //AF Flop
            {
                var afPercent = playerGames.AF_Flop_ForPlayer(playerName);
                statCollection.Add(new Stat() { Name = "AF Flop", Value = Math.Round(afPercent, 2) });
            }
            if (true) //AF Turn
            {
                var afPercent = playerGames.AF_Turn_ForPlayer(playerName);
                statCollection.Add(new Stat() { Name = "AF Turn", Value = Math.Round(afPercent, 2) });
            }
            if (true) //AF River
            {
                var afPercent = playerGames.AF_River_ForPlayer(playerName);
                statCollection.Add(new Stat() { Name = "AF River", Value = Math.Round(afPercent, 2) });
            }
            if (true)//3B
            {
                var thbc = playerGames.ThreeBet_ForPlayer(playerName);
                statCollection.Add(new Stat() { Name = "3B", Value = Math.Round(thbc, 2) });
            }
            if (true)//Stat Fb to Steal
            {
                var fSb = playerGames.Fold_SB_To_Steal_ForPlayer(playerName);
                statCollection.Add(new Stat() { Name = "Fold SB to Stl", Value = Math.Round(fSb, 2) });
            }
            if (true)//Stat Bb to Steal
            {
                var fBb = playerGames.Fold_BB_To_Steal_ForPlayer(playerName);
                statCollection.Add(new Stat() { Name = "Fold BB to Stl", Value = Math.Round(fBb, 2) });
            }
            if (true)
            {
                var wmwsf = playerGames.WMWSF_ForPlayer(playerName);
                statCollection.Add(new Stat() { Name = "W$WSF", Value = Math.Round(wmwsf, 2) });
            }
            if (true)
            {
                var wtsd = playerGames.WTSD_ForPlayer(playerName);
                statCollection.Add(new Stat() { Name = "WTSD", Value = Math.Round(wtsd, 2) });
            }
            if (true)
            {
                var co = playerGames.CallOpen_ForPlayer(playerName);
                statCollection.Add(new Stat() { Name = "Call Open", Value = Math.Round(co, 2) });
            }
            if (true)
            {
                var cb = playerGames.Flop_CB(playerName);
                statCollection.Add(new Stat() { Name = "Flop CB", Value = Math.Round(cb, 2) });
            }
            return statCollection;
        }
        public void AddThrowsArgumentNullExceptionIfNameIsNullOrEmpty()
        {
            IPlayerStats stats = new PlayerStats();

            stats.Add("", 0);
        }
Esempio n. 14
0
        protected override PlayerStats GetPlayerStats(string playerName, IEnumerable<Game> games)
        {
            var statCollection = new PlayerStats(playerName);
            var playerGames = games.GetGamesForPlayer(playerName).ToList();
            //counters...
            var pgCount = playerGames.Count;
            var winCount = 0;

            var vpipCount = 0;
            var vpipEpCount = 0;
            var vpipMpCount = 0;
            var vpipLpCount = 0;

            var pfrCount = 0;
            var pfrEpCount = 0;
            var pfrMpCount = 0;
            var pfrLpCount = 0;

            var totalProfit = 0.0d;
            var sawFlopCount = 0;
            var winWherSawFlop = 0;
            var showdownCount = 0;

            var afArray = new List<Af>()
            {
                new Af(),//general 0
                new Af(),//flop 1
                new Af(),//turn 2
                new Af()//river 3
            };

            var threeBetCount = 0;

            foreach (var g in playerGames)
            {
                var plH = g.PlayerHistories.First(ph => ph.PlayerName == playerName);
                winCount += plH.WinForPlayer();

                vpipCount += plH.Vpip();
                vpipEpCount += plH.VpipEp();
                vpipMpCount += plH.VpipMp();
                vpipLpCount += plH.VpipLp();

                pfrCount += plH.Pfr();
                pfrEpCount += plH.PfrEp();
                pfrMpCount += plH.PfrMp();
                pfrLpCount += plH.PfrLp();

                plH.AF_(afArray[0]);
                plH.AF_Flop(afArray[1]);
                plH.AF_Turn(afArray[2]);
                plH.AF_River(afArray[3]);

                threeBetCount += plH.ThreeBet(g);
                totalProfit += plH.HandProfit();

                if (g.SawFlopForPlayer(playerName))
                {
                    sawFlopCount++;
                    if (g.IsWinGameForPlayer(playerName))
                        winWherSawFlop++;
                }

                showdownCount += plH.ReachShowdown();

            }
            if (true)//win % stat ++
            {
                statCollection.Add(new Stat() { Name = "Win %", Value = Math.Round((double)winCount/pgCount * 100, 2) });
            }
            if (true)//hands ++
                statCollection.Add(new Stat() { Name = "Hands", Value = playerGames.Count });

            if (true)//VPIP ++
            {
                statCollection.Add(new Stat() { Name = "VPIP", Value = Math.Round((double)vpipCount/playerGames.Count * 100, 2) });
            }
            if (true)//EP VPIP ++
            {
                statCollection.Add(new Stat() { Name = "EP VPIP", Value = Math.Round((double)vpipEpCount / playerGames.Count * 100, 2) });
            }
            if (true)//MP VPIP ++
            {
                statCollection.Add(new Stat() { Name = "MP VPIP", Value = Math.Round((double)vpipMpCount / playerGames.Count * 100, 2) });
            }
            if (true)//LP VPIP ++
            {
                statCollection.Add(new Stat() { Name = "LP VPIP", Value = Math.Round((double)vpipLpCount / playerGames.Count * 100, 2) });
            }
            if (true)//Profit ++
            {
                statCollection.Add(new Stat() { Name = "Profit", Value = Math.Round(totalProfit, 2) });
            }
            if (true)//PFR ++
            {
                statCollection.Add(new Stat() { Name = "PFR", Value = Math.Round((double)pfrCount / playerGames.Count * 100, 2) });
            }
            if (true)//EP PFR ++
            {
                statCollection.Add(new Stat() { Name = "EP PFR", Value = Math.Round((double)pfrEpCount / playerGames.Count * 100, 2) });
            }
            if (true)//MP PFR ++
            {
                statCollection.Add(new Stat() { Name = "MP PFR", Value = Math.Round((double)pfrMpCount / playerGames.Count * 100, 2) });
            }
            if (true)//LP PFR ++
            {
                statCollection.Add(new Stat() { Name = "LP PFR", Value = Math.Round((double)pfrLpCount / playerGames.Count * 100, 2) });
            }
            if (true)//ATS
            {
                var atsPercent = playerGames.ATS_PercentForPlayer(playerName);
                statCollection.Add(new Stat() { Name = "ATS", Value = Math.Round(atsPercent, 2) });
            }
            if (true)//CO ATS
            {
                var atsPercent = playerGames.ATS_CO_PercentForPlayer(playerName);
                statCollection.Add(new Stat() { Name = "CO ATS", Value = Math.Round(atsPercent, 2) });
            }
            if (true)//B ATS
            {
                var atsPercent = playerGames.ATS_B_PercentForPlayer(playerName);
                statCollection.Add(new Stat() { Name = "B ATS", Value = Math.Round(atsPercent, 2) });
            }
            if (true)//SB ATS
            {
                var atsPercent = playerGames.ATS_SB_PercentForPlayer(playerName);
                statCollection.Add(new Stat() { Name = "SB ATS", Value = Math.Round(atsPercent, 2) });
            }
            if (true)
                statCollection.Add(new Stat() { Name = "BB", Value = Math.Round(playerGames.Last().BB_ForPlayer(playerName)) });

            if (true) //AF ++
            {
                statCollection.Add(new Stat() { Name = "AF", Value = Math.Round(afArray[0].GetFactor(), 2) });
            }
            if (true) //AF Flop ++
            {
                statCollection.Add(new Stat() { Name = "AF Flop", Value = Math.Round(afArray[1].GetFactor(), 2) });
            }
            if (true) //AF Turn ++
            {
                statCollection.Add(new Stat() { Name = "AF Turn", Value = Math.Round(afArray[2].GetFactor(), 2) });
            }
            if (true) //AF River ++
            {
                statCollection.Add(new Stat() { Name = "AF River", Value = Math.Round(afArray[3].GetFactor(), 2) });
            }
            if (true)//3B ++
            {
                statCollection.Add(new Stat() { Name = "3B", Value = Math.Round((double)threeBetCount / playerGames.Count * 100, 2) });
            }
            if (true)//Fold sb to Steal
            {
                var fSb = playerGames.Fold_SB_To_Steal_ForPlayer(playerName);
                statCollection.Add(new Stat() { Name = "Fold SB to Stl", Value = Math.Round(fSb, 2) });
            }
            if (true)//Fold Bb to Steal
            {
                var fBb = playerGames.Fold_BB_To_Steal_ForPlayer(playerName);
                statCollection.Add(new Stat() { Name = "Fold BB to Stl", Value = Math.Round(fBb, 2) });
            }
            if (true) // w$wsf ++
            {
                statCollection.Add(new Stat() { Name = "W$WSF", Value = Math.Round(sawFlopCount == 0 ? 0 : (double)winWherSawFlop / sawFlopCount * 100, 2) });
            }
            if (true) // wtsd ++
            {
                statCollection.Add(new Stat() { Name = "WTSD", Value = Math.Round((double)showdownCount / playerGames.Count * 100, 2) });
            }
            if (true)//Call Open
            {
                var co = playerGames.CallOpen_ForPlayer(playerName);
                statCollection.Add(new Stat() { Name = "Call Open", Value = Math.Round(co, 2) });
            }
            if (true) //flop cb
            {
                var cb = playerGames.Flop_CB(playerName);
                statCollection.Add(new Stat() { Name = "Flop CB", Value = Math.Round(cb, 2) });
            }
            return statCollection;
        }