// Token: 0x060010BA RID: 4282 RVA: 0x000166C8 File Offset: 0x000148C8
        public static PlayerMatchStats Deserialize(Stream bytes)
        {
            int num = Int32Proxy.Deserialize(bytes);
            PlayerMatchStats playerMatchStats = new PlayerMatchStats();

            playerMatchStats.Cmid             = Int32Proxy.Deserialize(bytes);
            playerMatchStats.Death            = Int32Proxy.Deserialize(bytes);
            playerMatchStats.HasFinishedMatch = BooleanProxy.Deserialize(bytes);
            playerMatchStats.HasWonMatch      = BooleanProxy.Deserialize(bytes);
            playerMatchStats.Headshots        = Int32Proxy.Deserialize(bytes);
            playerMatchStats.Hits             = Int64Proxy.Deserialize(bytes);
            playerMatchStats.Kills            = Int32Proxy.Deserialize(bytes);
            playerMatchStats.Nutshots         = Int32Proxy.Deserialize(bytes);
            if ((num & 1) != 0)
            {
                playerMatchStats.PersonalRecord = PlayerPersonalRecordStatisticsViewProxy.Deserialize(bytes);
            }
            playerMatchStats.Shots           = Int64Proxy.Deserialize(bytes);
            playerMatchStats.Smackdowns      = Int32Proxy.Deserialize(bytes);
            playerMatchStats.TimeSpentInGame = Int32Proxy.Deserialize(bytes);
            if ((num & 2) != 0)
            {
                playerMatchStats.WeaponStatistics = PlayerWeaponStatisticsViewProxy.Deserialize(bytes);
            }
            return(playerMatchStats);
        }
Example #2
0
        public static PlayerMatchStats[] CreateMatchStatsFromConfig(MatchConfig config)
        {
            var players = new PlayerMatchStats[config.PlayerCount];

            for (uint i = 0; i < players.Length; i++)
            {
                players[i].Config = config.PlayerConfigs[i];
            }
            return(players);
        }
Example #3
0
        MatchResult CreateResult(MatchState state)
        {
            var players = new PlayerMatchStats[state.PlayerCount];

            for (uint i = 0; i < players.Length; i++)
            {
                players[i].Config = MatchConfig.PlayerConfigs[i];
            }
            return(new MatchResult {
                PlayerStats = players
            });
        }
        // Token: 0x060010B9 RID: 4281 RVA: 0x000165BC File Offset: 0x000147BC
        public static void Serialize(Stream stream, PlayerMatchStats instance)
        {
            int num = 0;

            using (MemoryStream memoryStream = new MemoryStream())
            {
                Int32Proxy.Serialize(memoryStream, instance.Cmid);
                Int32Proxy.Serialize(memoryStream, instance.Death);
                BooleanProxy.Serialize(memoryStream, instance.HasFinishedMatch);
                BooleanProxy.Serialize(memoryStream, instance.HasWonMatch);
                Int32Proxy.Serialize(memoryStream, instance.Headshots);
                Int64Proxy.Serialize(memoryStream, instance.Hits);
                Int32Proxy.Serialize(memoryStream, instance.Kills);
                Int32Proxy.Serialize(memoryStream, instance.Nutshots);
                if (instance.PersonalRecord != null)
                {
                    PlayerPersonalRecordStatisticsViewProxy.Serialize(memoryStream, instance.PersonalRecord);
                }
                else
                {
                    num |= 1;
                }
                Int64Proxy.Serialize(memoryStream, instance.Shots);
                Int32Proxy.Serialize(memoryStream, instance.Smackdowns);
                Int32Proxy.Serialize(memoryStream, instance.TimeSpentInGame);
                if (instance.WeaponStatistics != null)
                {
                    PlayerWeaponStatisticsViewProxy.Serialize(memoryStream, instance.WeaponStatistics);
                }
                else
                {
                    num |= 2;
                }
                Int32Proxy.Serialize(stream, ~num);
                memoryStream.WriteTo(stream);
            }
        }
Example #5
0
    public void Initialise(GameMode gamemode, PlayerMatchStats playerMatchStats)
    {
        panelBackgroundImage.color = GameManager.instance.playerColours[playerMatchStats.playerNumber - 1];

        playerNumberText.text = "Player " + playerMatchStats.playerNumber.ToString();

        switch (gamemode)
        {
        case GameMode.FreeForAll:
            playerPointsText.text = "Total Round Wins: " + playerMatchStats.roundWins;
            roundWinsText.text    = "";
            break;

        case GameMode.Elimination:
            break;

        case GameMode.Extraction:
            playerPointsText.text = "Total Points: " + playerMatchStats.points;
            roundWinsText.text    = "Total Round Wins: " + playerMatchStats.roundWins + playerMatchStats.extractions;
            break;

        case GameMode.Climb:
            break;

        default:
            break;
        }

        playerKillsText.text = "Total Player Kills: " + playerMatchStats.playerKills;
        aiKillsText.text     = "Total AI Kills: " + playerMatchStats.aiKills;

        if (playerMatchStats.bulletsFired == 0)
        {
            accuracyText.text = "Accuracy: N/A";
        }
        else
        {
            float accuracy = (((float)playerMatchStats.bulletsHit / (float)playerMatchStats.bulletsFired) * 100);
            accuracyText.text = "Accuracy: " + accuracy.ToString("F1") + "%";
        }


        achievements = GameManager.instance.achievementChecker.GetAchievements(playerMatchStats.playerNumber);

        IListExtensions.Shuffle <Achievements>(achievements);

        indexes = new int[achievementParents.Length];
        for (int i = 0; i < indexes.Length; i++)
        {
            indexes[i] = i;
        }

        foreach (var item in achievementParents)
        {
            item.SetActive(false);
        }

        if (achievements == null)
        {
            return;
        }

        if (achievements.Count >= achievementParents.Length)
        {
            for (int i = 0; i < achievementParents.Length; i++)
            {
                achievementParents[i].SetActive(true);
                achievementTexts[i].text     = achievements[i].achievementName;
                achievementSprites[i].sprite = achievements[i].sprite;

                SetBorder(i, i);
            }
            StartCoroutine("NextSlide");
        }
        else
        {
            for (int i = 0; i < achievements.Count; i++)
            {
                achievementParents[i].SetActive(true);
                achievementTexts[i].text     = achievements[i].achievementName;
                achievementSprites[i].sprite = achievements[i].sprite;

                SetBorder(i, i);
            }
        }
    }
Example #6
0
        public static void DbFill(ServerContext context)
        {
            if (context.Servers.Any())
            {
                return;
            }

            for (int i = 0; i < 6; i++)
            {
                GameMode gameMode = new GameMode
                {
                    Name = RandomText(5).ToUpper()
                };
                context.GameMods.Add(gameMode);
            }
            for (int i = 0; i < 30; i++)
            {
                Map map = new Map {
                    Name    = RandomText(12),
                    Matches = new List <Match>()
                };
                context.Maps.Add(map);
            }
            context.SaveChanges();

            //---------------
            //for(int i = 0; i < 200 + random.Next(301); i++)
            //{
            //    PlayerStats ps = new PlayerStats();
            //    ps.Name = RandomText(10);
            //    context.PlayersStats.Add(ps);
            //}
            //---------------

            for (int i = 0; i < 5; i++)
            {
                Models.Server server = new Models.Server
                {
                    Endpoint = RandomText(12),
                    Matches  = new List <Match>()
                };

                Info info = new Info
                {
                    Name = RandomText(6)
                };

                float chance;
                foreach (var player in context.PlayersStats)
                {
                    chance = 0;
                    if (player.UniqueServers == 5)
                    {
                        continue;
                    }

                    chance  = random.Next(100) + 1;
                    chance /= player.UniqueServers;
                    if (chance <= 50)
                    {
                        continue;
                    }
                    //else
                    if ((chance > 50) || (i == 5 && player.UniqueServers == 0))
                    {
                        ServerPlayerStats sps = new ServerPlayerStats {
                            Server = server, PlayerStats = player
                        };
                        player.ServersPlayed.Add(sps);
                        context.ServerPlayerStats.Add(sps);
                    }
                }


                info.Server = server;
                server.Info = info;
                context.Servers.Add(server);
                context.Info.Add(info);
                context.SaveChanges();

                var igms = new List <InfoGameMode>();
                for (int j = 0; j < random.Next(6) + 1; j++)
                {
                    InfoGameMode igm = new InfoGameMode
                    {
                        Info     = context.Info.ToArray()[i],
                        GameMode = context.GameMods.ToArray()[j]
                    };
                    igms.Add(igm);
                    context.InfoGameMods.Add(igm);
                    context.Info.ToArray()[i].InfoGameMods.Add(igm);
                    context.GameMods.ToArray()[j].InfoGameMods.Add(igm);
                }
                context.SaveChanges();

                for (int j = 0; j < random.Next(10) + 1; j++)
                {
                    var serverMatch = context.Servers.Last();
                    var igmsMatch   = context
                                      .InfoGameMods
                                      .Where(igm => igm.Info.Server.Endpoint == serverMatch.Endpoint)
                                      .ToArray();
                    var gmMatch   = igmsMatch[random.Next(igmsMatch.Length)].GameMode;
                    int timeLimit = random.Next(100);
                    var maps      = context.Maps.ToArray();
                    var map       = maps[random.Next(maps.Length)];

                    Match match = new Match();
                    match.ScoreBoard = new List <PlayerMatchStats>();
                    match.MapDb      = map;
                    match.GameModeDb = gmMatch;

                    DateTime startDate = DateTime.Now - new TimeSpan(3650, 0, 0, 0);
                    TimeSpan timeSpan  = new TimeSpan(random.Next(3650), 0, 0, 0);
                    match.TimeStamp = startDate + timeSpan;

                    match.FragLimit   = random.Next(100);
                    match.TimeLimit   = timeLimit;
                    match.TimeElapsed = timeLimit - random.Next(timeLimit);

                    gmMatch.Matches.Add(match);
                    map.Matches.Add(match);
                    serverMatch.Matches.Add(match);
                    match.Server = serverMatch;
                    for (int k = 0; k < random.Next(30); k++)
                    {
                        PlayerMatchStats pms = new PlayerMatchStats();
                        pms.Name   = RandomText(10);
                        pms.Kills  = random.Next(100);
                        pms.Frags  = pms.Kills - random.Next(pms.Kills);
                        pms.Deaths = random.Next(100);
                        pms.Match  = match;
                        match.ScoreBoard.Add(pms);
                        context.PlayersMatchStats.Add(pms);
                    }
                    context.Matches.Add(match);
                    context.SaveChanges();

                    //----------------
                    //var serverPlayers = context.PlayersStats
                    //    .Where(ps => ps.ServersPlayed
                    //        .Any(s => s.ServerId == i)
                    //    );
                    //var matchPlayerStats = context.Matches.Last();
                    //List<PlayerMatchStats> pmss = new List<PlayerMatchStats>();
                    //int kills = 0;
                    //int deaths = 0;
                    //for (int k = 0; k < random.Next(50) + 1; k++)
                    //{
                    //    var player = serverPlayers.ToArray()
                    //        [random
                    //            .Next(serverPlayers.Count())
                    //        ];
                    //    if(pmss.Any(pms => pms.Name == player.Name))
                    //    {
                    //        k--;
                    //        continue;
                    //    }
                    //    PlayerMatchStats playerMatchStats = new PlayerMatchStats();
                    //    playerMatchStats.Name = player.Name;
                    //    kills = random.Next(100);
                    //    deaths = random.Next(100);
                    //    playerMatchStats.Kills = kills;
                    //    player.Kills += kills;
                    //    playerMatchStats.Deaths = deaths;
                    //    player.Deaths += deaths;
                    //    playerMatchStats.Frags = kills - random.Next(kills);

                    //    //matchPlayerStats.ScoreBoard.Add(playerMatchStats);
                    //    //playerMatchStats.Match = matchPlayerStats;
                    //    //context.SaveChanges();
                    //}
                    //---------------
                }

                context.SaveChanges();
            }
        }