Example #1
0
        private bool ReadGameResponse(string data)
        {
            // Check if error code was returned, otherwise try to decode form Json
            int errorCode;

            if (Int32.TryParse(data, out errorCode))
            {
                if ((ResponseEnums.GetLastGameResponse)errorCode == ResponseEnums.GetLastGameResponse.Error_NoData)
                {
                    return(true);
                }
                else
                {
                    Debug.Log(Enum.GetName(typeof(ResponseEnums.GetLastGameResponse), errorCode));
                    return(false);
                }
            }
            else
            {
                PlayerGameStats gameStats = JsonUtility.ValidateJsonData <PlayerGameStats>(data);
                if (gameStats != default(PlayerGameStats))
                {
                    lastGameStats = gameStats;
                    return(true);
                }
                else
                {
                    Debug.LogError("Failed to deserialize as GameStats: " + data);
                    return(false);
                }
            }
        }
        public void Get(PlayerGameLogs players, string gameid)
        {
            Dictionary <string, string> values = new Dictionary <string, string>()
            {
                { "@game", gameid }
            };
            List <string[]> results   = SelectProc("GetAllPlayerGameStats", values);
            Player          player    = null;
            PlayerGameStats gameStats = null;

            foreach (string[] result in results)
            {
                if (player == null || player.player.playerid != result[0])
                {
                    if (player != null)
                    {
                        players.playergamelogs.Add(player);
                    }
                    player                 = new Player();
                    player.gameLogs        = new List <PlayerGameStats>();
                    player.player.playerid = result[0];
                    player.player.fname    = result[1];
                    player.player.lname    = result[2];
                    player.player.number   = result[3];
                    player.player.position = result[4];
                    player.team.abbr       = result[5];
                    player.team.city       = result[6];
                    player.team.name       = result[7];
                }
                gameStats                    = new PlayerGameStats();
                gameStats.game.gameid        = result[8];
                gameStats.game.date          = result[9];
                gameStats.game.time          = result[10];
                gameStats.game.homeTeam.abbr = result[11];
                gameStats.game.homeTeam.city = result[12];
                gameStats.game.homeTeam.name = result[13];
                gameStats.game.awayTeam.abbr = result[14];
                gameStats.game.awayTeam.city = result[15];
                gameStats.game.awayTeam.name = result[16];
                gameStats.stats.passAtt      = result[17];
                gameStats.stats.passComp     = result[18];
                gameStats.stats.passYds      = result[19];
                gameStats.stats.passTds      = result[20];
                gameStats.stats.intc         = result[21];
                gameStats.stats.rushAtt      = result[22];
                gameStats.stats.rushYds      = result[23];
                gameStats.stats.rushTds      = result[24];
                gameStats.stats.fum          = result[25];
                gameStats.stats.rec          = result[26];
                gameStats.stats.recYds       = result[27];
                gameStats.stats.recTds       = result[28];
                gameStats.stats.fgAtt        = result[29];
                gameStats.stats.fgMade       = result[30];
                gameStats.stats.xpAtt        = result[31];
                gameStats.stats.xpMade       = result[32];
                gameStats.stats.fgPct        = result[33];
                gameStats.stats.xpPct        = result[34];
                player.gameLogs.Add(gameStats);
            }
        }
Example #3
0
        private static GameData CreateTestDataSet()
        {
            var dataSet = new GameData {
                GameDuration = 50, GameHost = "AGameHost", Winner = "NewPlayer"
            };

            dataSet.GameMoves.Add(new GameMoveDataPoint("Player", 5, MoveType.Peel));

            var stats = new PlayerGameStats()
            {
                AvgTimeBetweenDumps = 5,
                AvgTimeBetweenPeels = 5,
                NumberOfDumps       = 3,
                NumberOfPeels       = 3,
                PerformedFirstPeel  = true,
                IsWinner            = false,
                RawGameData         = new List <GameMoveDataPoint>()
                {
                    new GameMoveDataPoint("Me", 1, MoveType.Peel)
                }
            };

            dataSet.PlayerDictionary.Add("NewPlayer", stats);
            return(dataSet);
        }
Example #4
0
 private void statsFetcher_PlayerGameDiscoveredEvent(object sender, PlayerGameStats pgs)
 {
     this.list_results.AddObject(pgs);
     this.PeformOnUI(delegate()
     {
         this.statusBar.Text += ".";
     });
 }
 public void Get(Player player)
 {
     try
     {
         Dictionary <string, string> values = new Dictionary <string, string>()
         {
             { "@PlayerID", player.player.playerid }
         };
         List <string[]> results = SelectProc("GetPlayerGameLogs", values);
         player.gameLogs        = new List <PlayerGameStats>();
         player.player.playerid = results[0][0];
         player.player.fname    = results[0][1];
         player.player.lname    = results[0][2];
         player.player.number   = results[0][3];
         player.player.position = results[0][4];
         player.team.abbr       = results[0][5];
         player.team.city       = results[0][6];
         player.team.name       = results[0][7];
         PlayerGameStats gameStats;
         foreach (string[] result in results)
         {
             gameStats                    = new PlayerGameStats();
             gameStats.game.gameid        = result[8];
             gameStats.game.date          = result[9];
             gameStats.game.time          = result[10];
             gameStats.game.homeTeam.abbr = result[11];
             gameStats.game.homeTeam.city = result[12];
             gameStats.game.homeTeam.name = result[13];
             gameStats.game.awayTeam.abbr = result[14];
             gameStats.game.awayTeam.city = result[15];
             gameStats.game.awayTeam.name = result[16];
             gameStats.stats.passAtt      = result[17];
             gameStats.stats.passComp     = result[18];
             gameStats.stats.passYds      = result[19];
             gameStats.stats.passTds      = result[20];
             gameStats.stats.intc         = result[21];
             gameStats.stats.rushAtt      = result[22];
             gameStats.stats.rushYds      = result[23];
             gameStats.stats.rushTds      = result[24];
             gameStats.stats.fum          = result[25];
             gameStats.stats.rec          = result[26];
             gameStats.stats.recYds       = result[27];
             gameStats.stats.recTds       = result[28];
             gameStats.stats.fgAtt        = result[29];
             gameStats.stats.fgMade       = result[30];
             gameStats.stats.xpAtt        = result[31];
             gameStats.stats.xpMade       = result[32];
             gameStats.stats.fgPct        = result[33];
             gameStats.stats.xpPct        = result[34];
             player.gameLogs.Add(gameStats);
         }
     }
     catch (Exception e)
     {
         throw new Exception(e.Message, e);
     }
 }
        public void Get(Player player, string gameid)
        {
            if (player.gameLogs == null)
            {
                player.gameLogs = new List <PlayerGameStats>();
            }
            Dictionary <string, string> values = new Dictionary <string, string>();

            values.Add("@Playerid", player.player.playerid);
            values.Add("@Gameid", gameid);
            try
            {
                string[]        result    = SelectProc("GetPlayerGameStats", values)[0];
                PlayerGameStats gameStats = new PlayerGameStats();
                player.player.playerid       = result[0];
                player.player.fname          = result[1];
                player.player.lname          = result[2];
                player.player.number         = result[3];
                player.player.position       = result[4];
                player.team.abbr             = result[5];
                player.team.city             = result[6];
                player.team.name             = result[7];
                gameStats.game.gameid        = result[8];
                gameStats.game.date          = result[9];
                gameStats.game.time          = result[10];
                gameStats.game.homeTeam.abbr = result[11];
                gameStats.game.homeTeam.city = result[12];
                gameStats.game.homeTeam.name = result[13];
                gameStats.game.awayTeam.abbr = result[14];
                gameStats.game.awayTeam.city = result[15];
                gameStats.game.awayTeam.name = result[16];
                gameStats.stats.passAtt      = result[17];
                gameStats.stats.passComp     = result[18];
                gameStats.stats.passYds      = result[19];
                gameStats.stats.passTds      = result[20];
                gameStats.stats.intc         = result[21];
                gameStats.stats.rushAtt      = result[22];
                gameStats.stats.rushYds      = result[23];
                gameStats.stats.rushTds      = result[24];
                gameStats.stats.fum          = result[25];
                gameStats.stats.rec          = result[26];
                gameStats.stats.recYds       = result[27];
                gameStats.stats.recTds       = result[28];
                gameStats.stats.fgAtt        = result[29];
                gameStats.stats.fgMade       = result[30];
                gameStats.stats.xpAtt        = result[31];
                gameStats.stats.xpMade       = result[32];
                gameStats.stats.fgPct        = result[33];
                gameStats.stats.xpPct        = result[34];
                player.gameLogs.Add(gameStats);
            }
            catch (Exception e)
            {
                throw new Exception(e.Message, e);
            }
        }
        public void Initialize()
        {
            _testGameMoveDataPoint = new GameMoveDataPoint {
                MoveType = MoveType.Dump, Player = "NewPlayer", TimeOfMove = 5
            };

            _playerGameStats = new PlayerGameStats
            {
                AvgTimeBetweenDumps = 10,
                AvgTimeBetweenPeels = 5,
                IsWinner            = true,
                NumberOfDumps       = 3,
                NumberOfPeels       = 0,
                PerformedFirstPeel  = false,
                RawGameData         = new List <GameMoveDataPoint>()
                {
                    _testGameMoveDataPoint, _testGameMoveDataPoint, _testGameMoveDataPoint
                }
            };

            _gameData = new GameData {
                GameDuration = 10, GameHost = "GameHost", GameStartTime = DateTime.Now, Winner = "NewPlayer"
            };
            _gameData.GameMoves.Add(_testGameMoveDataPoint);
            _gameData.GameMoves.Add(_testGameMoveDataPoint);
            _gameData.PlayerDictionary.Add("NewPlayer", _playerGameStats);
            _gameData.PlayerDictionary.Add("NewPlayer2", _playerGameStats);

            _gameDataList = new GameDataList();
            _gameDataList._GameData.Add(_gameData);
            _gameDataList._GameData.Add(_gameData);

            _stringPacketV1 = new PacketV1
            {
                PacketType = PacketType.c_QueryIfAliasAvailable,
                Data       = "Mobius",
                Recipients = null,
                Sender     = "*****@*****.**"
            };

            _IBinarySerializablePacketV1 = new PacketV1
            {
                PacketType = PacketType.c_UploadGameData,
                Data       = _gameData,
                Recipients = null,
                Sender     = "*****@*****.**"
            };

            _packetBase = new PacketBase
            {
                PacketVersion = PacketVersion.Version1,
                Data          = _stringPacketV1
            };
        }
 public void PlayerWon(Player winner)
 {
     if (winner != null)
     {
         PlayerGameStats stats = winner.GetComponent <PlayerGameStats>();
         if (stats != null)
         {
             stats.RoundWins++;
         }
     }
 }
    public int GetRoundsWonCount(Player player)
    {
        int             roundWins = 0;
        PlayerGameStats stats     = player.GetComponent <PlayerGameStats>();

        if (stats != null)
        {
            roundWins = stats.RoundWins;
        }
        return(roundWins);
    }
    public void OnPlayerDeath(Player player, Player killer)
    {
        PlayerGameStats stats = player.GetComponent <PlayerGameStats>();

        stats.Deaths++;

        if (killer != null)
        {
            PlayerGameStats killerStats = player.GetComponent <PlayerGameStats>();
            killerStats.Kills++;
        }
    }
Example #11
0
    public void SetData(List <Player> players)
    {
        Clear();

        // add a header
        Instantiate <RoundResultsRow>(rowPrefab, tableParent);

        // one row per player
        foreach (Player player in players)
        {
            RoundResultsRow row   = Instantiate <RoundResultsRow>(rowPrefab, tableParent);
            PlayerGameStats stats = player.GetComponent <PlayerGameStats>();
            row.SetData(player.Name, stats.Kills, stats.Deaths, stats.RoundWins);
        }
    }
Example #12
0
        private void ProcessGameReport(RankedGameReport report)
        {
            List <PlayerGameStats> pubplayers = new List <PlayerGameStats>();

            foreach (RankedGameReport.PlayerStatLine p in report.PlayerStats)
            {
                ApplicationUser user = _db.UsersWithPlayer().FirstOrDefault(x => x.UserName == p.Name);
                if (user == null)
                {
                    throw new InvalidOperationException("tried to report game with unregistered players.");
                }

                PlayerGameStats pp = new PlayerGameStats()
                {
                    Player     = user.PlayerStats,
                    Team       = p.Team == "Red" ? HqmTeam.red : HqmTeam.blue,
                    Goals      = p.Goals,
                    Assists    = p.Assists,
                    RatingMean = user.PlayerStats.Rating.Mean,
                    RatingStandardDeviation = user.PlayerStats.Rating.StandardDeviation
                };

                pubplayers.Add(pp);
            }

            Game game = new Game()
            {
                GameId      = new Guid(),
                playerStats = pubplayers,
                redScore    = report.RedScore,
                blueScore   = report.BlueScore,
                date        = report.Date
            };

            _db.AddGame(game);

            //apply new ratings
            foreach (KeyValuePair <Player, Rating> kvp in game.GetNewRatings())
            {
                kvp.Key.Rating.Mean = kvp.Value.Mean;
                kvp.Key.Rating.StandardDeviation = kvp.Value.StandardDeviation;
            }
            _db.SaveChanges();
            _leaderboards.FlushLeaderboards();
        }
        public static int GetGameExperienceEarned(PlayerGameStats stats)
        {
            // Add 1000 experience for a playing the game.
            int exp = 1000;

            if (stats.IsWinner)
            {
                exp += 500;
            }

            if (stats.PerformedFirstPeel)
            {
                exp += 50;
            }

            exp += stats.NumberOfPeels * 20;

            return(exp);
        }
Example #14
0
        public static int InsertPlayer(PlayerGameStats p)
        {
            DataAccessHelper dataAccess = new DataAccessHelper("");
            //string sqlStatement = "EXEC spCreateSchedule @scheduleDate, @season, @totalItems, @totalEvents, @totalGames, @totalMatches, @rawJson, @scheduleID OUT";
            string sqlStatement = "spCreatePlayer";

            List <SQLParameter> sqlParameterList = new List <SQLParameter>();

            // Create the list of input parameters
            sqlParameterList.Add(new SQLParameter("@playerId", System.Data.SqlDbType.Int, DataAccessHelper.SafeOutput <int>(p.playerID, "number"), "in"));
            sqlParameterList.Add(new SQLParameter("@firstName", System.Data.SqlDbType.VarChar, DataAccessHelper.SafeOutput <string>(p.firstName, "string"), "in"));
            sqlParameterList.Add(new SQLParameter("@lastName", System.Data.SqlDbType.VarChar, DataAccessHelper.SafeOutput <string>(p.lastName, "string"), "in"));
            sqlParameterList.Add(new SQLParameter("@primaryNumber", System.Data.SqlDbType.VarChar, DataAccessHelper.SafeOutput <int>(p.primaryNumber, "number"), "in"));
            sqlParameterList.Add(new SQLParameter("@birthDate", System.Data.SqlDbType.Date, DataAccessHelper.SafeOutput <string>(p.birthDate, "string"), "in"));
            sqlParameterList.Add(new SQLParameter("@currentAge", System.Data.SqlDbType.Int, DataAccessHelper.SafeOutput <int>(p.currentAge, "number"), "in"));
            sqlParameterList.Add(new SQLParameter("@birthCity", System.Data.SqlDbType.VarChar, DataAccessHelper.SafeOutput <string>(p.birthCity, "string"), "in"));
            sqlParameterList.Add(new SQLParameter("@birthStateProvince", System.Data.SqlDbType.VarChar, DataAccessHelper.SafeOutput <string>(p.birthStateProvince, "string"), "in"));
            sqlParameterList.Add(new SQLParameter("@birthCountry", System.Data.SqlDbType.VarChar, DataAccessHelper.SafeOutput <string>(p.birthCountry, "string"), "in"));
            sqlParameterList.Add(new SQLParameter("@nationality", System.Data.SqlDbType.VarChar, DataAccessHelper.SafeOutput <string>(p.nationality, "string"), "in"));
            sqlParameterList.Add(new SQLParameter("@height", System.Data.SqlDbType.Int, DataAccessHelper.SafeOutput <int>(p.height, "number"), "in"));
            sqlParameterList.Add(new SQLParameter("@weight", System.Data.SqlDbType.Int, DataAccessHelper.SafeOutput <int>(p.weight, "number"), "in"));
            sqlParameterList.Add(new SQLParameter("@active", System.Data.SqlDbType.VarChar, DataAccessHelper.SafeOutput <string>(p.active, "string"), "in"));
            sqlParameterList.Add(new SQLParameter("@alternateCaptain", System.Data.SqlDbType.VarChar, DataAccessHelper.SafeOutput <string>(p.alternateCaptain, "string"), "in"));
            sqlParameterList.Add(new SQLParameter("@captain", System.Data.SqlDbType.VarChar, DataAccessHelper.SafeOutput <string>(p.captain, "string"), "in"));
            sqlParameterList.Add(new SQLParameter("@rookie", System.Data.SqlDbType.VarChar, DataAccessHelper.SafeOutput <string>(p.rookie, "string"), "in"));
            sqlParameterList.Add(new SQLParameter("@shootsCatches", System.Data.SqlDbType.VarChar, DataAccessHelper.SafeOutput <string>(p.shootsCatches, "string"), "in"));
            sqlParameterList.Add(new SQLParameter("@rosterStatus", System.Data.SqlDbType.VarChar, DataAccessHelper.SafeOutput <string>(p.rosterStatus, "string"), "in"));
            sqlParameterList.Add(new SQLParameter("@currentTeamID", System.Data.SqlDbType.Int, DataAccessHelper.SafeOutput <int>(p.currentTeamID, "string"), "in"));
            sqlParameterList.Add(new SQLParameter("@primaryPositionCode", System.Data.SqlDbType.VarChar, DataAccessHelper.SafeOutput <string>(p.primaryPositionCode, "string"), "in"));
            sqlParameterList.Add(new SQLParameter("@primaryPositionName", System.Data.SqlDbType.VarChar, DataAccessHelper.SafeOutput <string>(p.primaryPositionName, "string"), "in"));
            sqlParameterList.Add(new SQLParameter("@primaryPositionType", System.Data.SqlDbType.VarChar, DataAccessHelper.SafeOutput <string>(p.primaryPositionType, "string"), "in"));
            sqlParameterList.Add(new SQLParameter("@primaryPositionAbbr", System.Data.SqlDbType.VarChar, DataAccessHelper.SafeOutput <string>(p.primaryPositionAbbr, "string"), "in"));
            //sqlParameterList.Add(new SQLParameter("@rawJson", System.Data.SqlDbType.VarChar, DataAccessHelper.SafeOutput<string>("NULL", "string"), "in"));


            // Create the output parameter

            sqlParameterList.Add(new SQLParameter("@playerIdentity", System.Data.SqlDbType.Int, DataAccessHelper.SafeOutput <int>(Convert.ToInt32("0"), "number"), "out"));

            return(dataAccess.ExecuteParameterizedQuery(sqlParameterList, sqlStatement));
        }
        public Player ConstructGameLogs(JArray games)
        {
            Player currentPlayer = new Player((string)games[0]["player"]["ID"]);

            currentPlayer.team.abbr = (string)games[0]["team"]["Abbreviation"];
            currentPlayer.gameLogs  = new List <PlayerGameStats>();
            foreach (JToken game in games)
            {
                PlayerStats currentStats = new PlayerStats();
                Game        currentGame  = currentGame = new Game((string)game["game"]["id"]);

                if (game["player"]["Position"].Equals("K"))
                {
                    currentStats.fgAtt  = (string)game["stats"]["FgAtt"]["#text"];
                    currentStats.fgMade = (string)game["stats"]["FgMade"]["#text"];
                    currentStats.xpAtt  = (string)game["stats"]["XpAtt"]["#text"];
                    currentStats.xpMade = (string)game["stats"]["XpMade"]["#text"];
                    currentStats.fgPct  = (string)game["stats"]["FgPct"]["#text"];
                    currentStats.xpPct  = (string)game["stats"]["XpPct"]["#text"];
                }
                else
                {
                    currentStats.passAtt  = (string)game["stats"]["PassAttempts"]["#text"];
                    currentStats.passComp = (string)game["stats"]["PassCompletions"]["#text"];
                    currentStats.passYds  = (string)game["stats"]["PassYards"]["#text"];
                    currentStats.passTds  = (string)game["stats"]["PassTD"]["#text"];
                    currentStats.intc     = (string)game["stats"]["PassInt"]["#text"];
                    currentStats.rushAtt  = (string)game["stats"]["RushAttempts"]["#text"];
                    currentStats.rushYds  = (string)game["stats"]["RushYards"]["#text"];
                    currentStats.rushTds  = (string)game["stats"]["RushTD"]["#text"];
                    currentStats.fum      = (string)game["stats"]["RushFumbles"]["#text"];
                    currentStats.rec      = (string)game["stats"]["Receptions"]["#text"];
                    currentStats.recYds   = (string)game["stats"]["RecYards"]["#text"];
                    currentStats.recTds   = (string)game["stats"]["RecTD"]["#text"];
                }
                PlayerGameStats currentGameStats = new PlayerGameStats(currentGame, currentStats);
                currentPlayer.gameLogs.Add(currentGameStats);
            }
            return(currentPlayer);
        }
    public void OnDeath()
    {
        Unit damagingUnit = lastDamageEvent.DamageSource != null ? lastDamageEvent.DamageSource.DamagingUnit : null;

        if (damagingUnit != null)
        {
            killedBy = damagingUnit;
        }
        else
        {
            // assume lava kill, by rule whoever pushed this unit last gets the kill
            killedBy = movement.LastForceApplier;
        }

        if (killedBy != null && killedBy != unit)
        {
            Player          player          = killedBy.Owner;
            PlayerGameStats playerGameStats = player.GetComponent <PlayerGameStats>();
            playerGameStats.Kills++;
            Debug.LogFormat("{0} killed {1}", killedBy, unit);
        }
    }
 public static object TransformPersonalGame(PlayerGameStats playerStats)
 {
     RiotJsTransformer.TransformedPersonalGame transformedPersonalGame = new RiotJsTransformer.TransformedPersonalGame()
     {
         Id = (int)playerStats.GameId,
         Length = -1,
         MapId = (int)playerStats.GameMapId,
         Mode = playerStats.GameMode,
         Queue = playerStats.QueueType,
         Started = playerStats.CreateDate,
         Type = playerStats.QueueType,
         Name = string.Empty,
         AccountId = (long)playerStats.UserId,
         ChampionId = (int)playerStats.ChampionId,
         Spell1 = (int)playerStats.Spell1,
         Spell2 = (int)playerStats.Spell2,
         Left = playerStats.Leaver,
         Statistics = playerStats.Statistics.ToDictionary<RawStat, string, int>((RawStat x) => x.StatType, (RawStat x) => (int)x.Value),
         IpEarned = (int)playerStats.IpEarned,
         Map = GameJsApiService.GetGameMapFriendlyName((int)playerStats.GameMapId)
     };
     return transformedPersonalGame;
 }
Example #18
0
        public GameResult(PlayerGameStats gameStatistics)
        {
            Statistics = gameStatistics.statistics;
            IsDominion = gameStatistics.gameMapId == 8;

            int unused = 0;

            Win = Load("WIN", ref unused);

            Level = Load("LEVEL");

            Kills   = Load("CHAMPIONS_KILLED");
            Deaths  = Load("NUM_DEATHS");
            Assists = Load("ASSISTS");

            GoldEarned = Load("GOLD_EARNED");

            MinionsKilled = Load("MINIONS_KILLED");

            Items = new int[6];
            for (int i = 0; i < Items.Length; i++)
            {
                Items[i] = Load(string.Format("ITEM{0}", i));
            }

            TotalDamageDealt    = Load("TOTAL_DAMAGE_DEALT");
            PhysicalDamageDealt = Load("PHYSICAL_DAMAGE_DEALT_PLAYER");
            MagicalDamageDealt  = Load("MAGIC_DAMAGE_DEALT_PLAYER");

            TotalDamageDealtToChampions    = Load("TOTAL_DAMAGE_DEALT_TO_CHAMPIONS");
            PhysicalDamageDealtToChampions = Load("PHYSICAL_DAMAGE_DEALT_TO_CHAMPIONS");
            MagicalDamageDealtToChampions  = Load("MAGIC_DAMAGE_DEALT_TO_CHAMPIONS");

            TotalDamageTaken    = Load("TOTAL_DAMAGE_TAKEN");
            PhysicalDamageTaken = Load("PHYSICAL_DAMAGE_TAKEN");
            MagicalDamageTaken  = Load("MAGIC_DAMAGE_TAKEN");

            TotalHealingDone = Load("TOTAL_HEAL");

            LargestCriticalStrike = Load("LARGEST_CRITICAL_STRIKE");
            LargestMultiKill      = Load("LARGEST_MULTI_KILL");
            LargestKillingSpree   = Load("LARGEST_KILLING_SPREE");

            TimeSpentDead = Load("TOTAL_TIME_SPENT_DEAD");

            SightWardsBought  = Load("SIGHT_WARDS_BOUGHT_IN_GAME");
            VisionWardsBought = Load("VISION_WARDS_BOUGHT_IN_GAME");

            //Summoner's Rift and Twisted Treeline specific

            NeutralMinionsKilled = MaybeLoad("NEUTRAL_MINIONS_KILLED", false);

            TurretsDestroyed    = MaybeLoad("TURRETS_KILLED", false);
            InhibitorsDestroyed = MaybeLoad("BARRACKS_KILLED", false);

            //Dominion specific

            NodesNeutralised          = MaybeLoad("NODE_NEUTRALIZE", true);
            NodeNeutralisationAssists = MaybeLoad("NODE_NEUTRALIZE_ASSIST", true);
            NodesCaptured             = MaybeLoad("NODE_CAPTURE", true);

            VictoryPoints = MaybeLoad("VICTORY_POINT_TOTAL", true);
            Objectives    = MaybeLoad("TEAM_OBJECTIVE", true);

            TotalScore     = MaybeLoad("TOTAL_PLAYER_SCORE", true);
            ObjectiveScore = MaybeLoad("OBJECTIVE_PLAYER_SCORE", true);
            CombatScore    = MaybeLoad("COMBAT_PLAYER_SCORE", true);

            Rank = MaybeLoad("TOTAL_SCORE_RANK", true);
        }
Example #19
0
        void InsertGameResult(Summoner summoner, int gameId, int teamId, PlayerGameStats game, GameResult gameResult, DbConnection connection)
        {
            using (var insert = GetCommand(gameResult, connection))
            {
                insert.SetFieldNames(InsertGameResultFields);

                insert.Set(gameId);
                insert.Set(teamId);
                insert.Set(summoner.Id);

                insert.Set(game.userServerPing);
                insert.Set(game.timeInQueue);

                insert.Set(game.premadeSize);

                insert.Set(game.experienceEarned);
                insert.Set(game.boostXpEarned);

                insert.Set(game.ipEarned);
                insert.Set(game.boostIpEarned);

                insert.Set(game.level);

                insert.Set(game.spell1);
                insert.Set(game.spell2);

                insert.Set(game.championId);

                insert.Set(game.skinName);
                insert.Set(game.skinIndex);

                insert.Set(gameResult.Level);

                insert.Set(gameResult.Kills);
                insert.Set(gameResult.Deaths);
                insert.Set(gameResult.Assists);

                insert.Set(gameResult.MinionsKilled);

                insert.Set(gameResult.GoldEarned);

                insert.Set(gameResult.TotalDamageDealt);
                insert.Set(gameResult.PhysicalDamageDealt);
                insert.Set(gameResult.MagicalDamageDealt);

                insert.Set(gameResult.TotalDamageTaken);
                insert.Set(gameResult.PhysicalDamageTaken);
                insert.Set(gameResult.MagicalDamageTaken);

                insert.Set(gameResult.TotalHealingDone);

                insert.Set(gameResult.TimeSpentDead);

                insert.Set(gameResult.LargestMultiKill);
                insert.Set(gameResult.LargestKillingSpree);
                insert.Set(gameResult.LargestCriticalStrike);

                //Summoner's Rift/Twisted Treeline

                insert.Set(gameResult.NeutralMinionsKilled);

                insert.Set(gameResult.TurretsDestroyed);
                insert.Set(gameResult.InhibitorsDestroyed);

                //Dominion

                insert.Set(gameResult.NodesNeutralised);
                insert.Set(gameResult.NodeNeutralisationAssists);
                insert.Set(gameResult.NodesCaptured);

                insert.Set(gameResult.VictoryPoints);
                insert.Set(gameResult.Objectives);

                insert.Set(gameResult.TotalScore);
                insert.Set(gameResult.ObjectiveScore);
                insert.Set(gameResult.CombatScore);

                insert.Set(gameResult.Rank);

                insert.Execute();
            }
        }
Example #20
0
 static int CompareGames(PlayerGameStats x, PlayerGameStats y)
 {
     return(-x.createDate.CompareTo(y.createDate));
 }
Example #21
0
        private PlayerGameStats SingleGet(int id)
        {
            PlayerGameStats SinglePlayerStats = new PlayerGameStats(id);

            return(SinglePlayerStats);
        }
Example #22
0
        private PlayerGameStats PVPTwoGet(int id)
        {
            PlayerGameStats PVPTwoStats = new PlayerGameStats(id);

            return(PVPTwoStats);
        }
Example #23
0
        private List <PlayerGameLog> MapToPlayerGameLog(string json)
        {
            List <PlayerGameLog> gameLogs = new List <PlayerGameLog>();

            dynamic array = JsonConvert.DeserializeObject(json);

            foreach (var line in array.playergamelogs.gamelogs)
            {
                var game = new Game
                {
                    Id       = line.game.id,
                    Date     = DateTime.ParseExact((string)line.game.date + " " + (string)line.game.time, "yyyy-MM-dd h:mmtt", CultureInfo.InvariantCulture),
                    AwayTeam = new Team
                    {
                        Id           = line.game.awayTeam.ID,
                        City         = line.game.awayTeam.City,
                        Name         = line.game.awayTeam.Name,
                        Abbreviation = line.game.awayTeam.Abbreviation
                    },
                    HomeTeam = new Team
                    {
                        Id           = line.game.homeTeam.ID,
                        City         = line.game.homeTeam.City,
                        Name         = line.game.homeTeam.Name,
                        Abbreviation = line.game.homeTeam.Abbreviation
                    },
                    Location = line.game.location
                };

                var player = new Player
                {
                    Id           = line.player.ID,
                    LastName     = line.player.LastName,
                    FirstName    = line.player.FirstName,
                    JerseyNumber = line.player.JerseyNumber,
                    Position     = line.player.Position,
                    Team         = new Team
                    {
                        Id           = line.team.ID,
                        City         = line.team.City,
                        Name         = line.team.Name,
                        Abbreviation = line.team.Abbreviation
                    }
                };

                PlayerGameStats gameStats = new PlayerGameStats()
                {
                    PenaltyStats = new PenaltyStats
                    {
                        Penalties = line.stats.Penalties["#text"],
                        PIM       = line.stats.PenaltyMinutes["#text"]
                    },
                    ScoringStats = new ScoringStats
                    {
                        Goals              = line.stats.Goals["#text"],
                        Assists            = line.stats.Assists["#text"],
                        Points             = line.stats.Points["#text"],
                        HatTricks          = line.stats.HatTricks["#text"],
                        PowerPlayGoals     = line.stats.PowerplayGoals["#text"],
                        PowerPlayAssists   = line.stats.PowerplayAssists["#text"],
                        PowerPlayPoints    = line.stats.PowerplayPoints["#text"],
                        ShortHandedGoals   = line.stats.ShorthandedGoals["#text"],
                        ShortHandedAssists = line.stats.ShorthandedAssists["#text"],
                        ShortHandedPoints  = line.stats.ShorthandedPoints["#text"],
                        GameWinningGoals   = line.stats.GameWinningGoals["#text"],
                        GameTyingGoals     = line.stats.GameTyingGoals["#text"]
                    }
                };

                if (player.Position == "G")
                {
                    gameStats.GoalieScoringStats = new GoalieScoringStats
                    {
                        Wins                = line.stats.Wins["#text"],
                        Losses              = line.stats.Losses["#text"],
                        OvertimeWins        = line.stats.OvertimeWins["#text"],
                        OvertimeLosses      = line.stats.OvertimeLosses["#text"],
                        GoalsAgainst        = line.stats.GoalsAgainst["#text"],
                        ShotsAgainst        = line.stats.ShotsAgainst["#text"],
                        Saves               = line.stats.Saves["#text"],
                        GoalsAgainstAverage = line.stats.GoalsAgainstAverage["#text"],
                        SavePercentage      = line.stats.SavePercentage["#text"],
                        Shutouts            = line.stats.Shutouts["#text"],
                        GamesStarted        = line.stats.GamesStarted["#text"],
                        CreditForGame       = line.stats.CreditForGame["#text"],
                        MinutesPlayed       = line.stats.MinutesPlayed["#text"]
                    };
                }
                else
                {
                    gameStats.SkatingStats = new SkatingStats
                    {
                        PlusMinus         = line.stats.PlusMinus["#text"],
                        Shots             = line.stats.Shots["#text"],
                        ShotPercentage    = line.stats.ShotPercentage["#text"],
                        BlockedShots      = line.stats.BlockedShots == null ? null : line.stats.BlockedShots["#text"],
                        Hits              = line.stats.Hits["#text"],
                        FaceoffsTaken     = line.stats.Faceoffs["#text"],
                        FaceoffWins       = line.stats.FaceoffWins["#text"],
                        FaceoffsLosses    = line.stats.FaceoffLosses["#text"],
                        FaceoffPercentage = line.stats.FaceoffPercent["#text"]
                    };
                }

                gameLogs.Add(new PlayerGameLog
                {
                    GameInfo        = game,
                    PlayerInfo      = player,
                    PlayerGameStats = gameStats
                });
            }
            return(gameLogs);
        }
Example #24
0
        void UpdateSummonerGame(Summoner summoner, PlayerGameStats game, DbConnection connection)
        {
            //Don't store tutorial games
            if (game.gameMode == "TUTORIAL" || game.gameType == "TUTORIAL_GAME")
            {
                return;
            }

            const int blueId = 100;
            //const int purpleId = 200;

            bool isBlueTeam = game.teamId == blueId;

            int        gameId;
            int        summonerTeamId;
            GameResult gameResult = new GameResult(game);

            //At first we must determine if the game is already in the database
            using (var check = Command("select id, blue_team_id, purple_team_id from game where game.game_id = :game_id", connection))
            {
                check.Set("game_id", game.gameId);
                using (var reader = check.ExecuteReader())
                {
                    if (reader.Read())
                    {
                        //The game is already in the database
                        gameId = reader.Integer();
                        int blueTeamId   = reader.Integer();
                        int purpleTeamId = reader.Integer();
                        reader.Close();
                        if (isBlueTeam)
                        {
                            summonerTeamId = blueTeamId;
                        }
                        else
                        {
                            summonerTeamId = purpleTeamId;
                        }
                        //Check if the game result for this player has already been stored
                        using (var gameCheck = Command("select count(*) from player where (team_id = :blue_team_id or team_id = :purple_team_id) and summoner_id = :summoner_id", connection))
                        {
                            gameCheck.Set("blue_team_id", blueTeamId);
                            gameCheck.Set("purple_team_id", purpleTeamId);
                            gameCheck.Set("summoner_id", summoner.Id);
                            long count = (long)gameCheck.ExecuteScalar();
                            if (count > 0)
                            {
                                //The result of this game for this player has already been stored in the database, there is no work to be done
                                return;
                            }
                        }
                        //The game is already stored in the database but the results of this player were previously unknown
                        //This means that this player must be removed from the list of unknown players for this game
                        using (var delete = Command("delete from unknown_player where team_id = :team_id and summoner_id = :summoner_id", connection))
                        {
                            delete.Set("team_id", summonerTeamId);
                            delete.Set("summoner_id", summoner.SummonerId);
                            delete.Execute();
                        }
                    }
                    else
                    {
                        reader.Close();
                        //The game is not in the database yet
                        //Need to create the team entries first
                        using (var newTeam = Command("insert into team default values", connection))
                        {
                            newTeam.Execute();
                            int blueTeamId = GetInsertId("team", connection);
                            newTeam.Execute();
                            int purpleTeamId = GetInsertId("team", connection);
                            summonerTeamId = isBlueTeam ? blueTeamId : purpleTeamId;
                            MapType      map;
                            GameModeType gameMode;
                            switch (game.gameMapId)
                            {
                            //Autumn
                            case 1:
                            //No idea what 2 means
                            case 2:
                            //Not sure either, encountered this in some games from 4 months ago on an inactive account
                            case 3:
                            //Winter
                            case 6:
                                map = MapType.SummonersRift;
                                break;

                            case 4:
                                map = MapType.TwistedTreeline;
                                break;

                            case 7:
                                map = MapType.ProvingGrounds;
                                break;

                            case 8:
                                map = MapType.Dominion;
                                break;

                            // Apparently this is from the Twisted Treeline remake
                            case 10:
                                map = MapType.TwistedTreeline;
                                break;

                            default:
                                throw new Exception(string.Format("Unknown game map ID in the match history of {0}: {1}", summoner.SummonerName, game.gameMapId));
                            }
                            if (game.gameType == "PRACTICE_GAME" || game.gameType == "CUSTOM_GAME")
                            {
                                gameMode = GameModeType.Custom;
                            }
                            else
                            {
                                switch (game.queueType)
                                {
                                case "RANKED_TEAM_3x3":
                                case "RANKED_TEAM_5x5":
                                case "RANKED_PREMADE_3x3":
                                case "RANKED_PREMADE_5x5":
                                    gameMode = GameModeType.Premade;
                                    break;

                                case "NORMAL":
                                case "NORMAL_3x3":
                                case "ODIN_UNRANKED":
                                    gameMode = GameModeType.Normal;
                                    break;

                                case "RANKED_SOLO_5x5":
                                    gameMode = GameModeType.Solo;
                                    break;

                                case "BOT":
                                    gameMode = GameModeType.Bot;
                                    break;

                                case "BOT_3x3":
                                    gameMode = GameModeType.Bot;
                                    break;

                                default:
                                    throw new Exception(string.Format("Unknown queue type in the match history of {0}: {1}", summoner.SummonerName, game.queueType));
                                }
                            }

                            using (var newGame = Command("insert into game ({0}) values ({1})", connection, GetGroupString(NewGameFields), GetPlaceholderString(NewGameFields)))
                            {
                                newGame.SetFieldNames(NewGameFields);
                                newGame.Set(game.gameId);
                                newGame.Set(map);
                                newGame.Set(gameMode);
                                newGame.Set(game.createDate.ToUnixTime());
                                newGame.Set(blueTeamId);
                                newGame.Set(purpleTeamId);
                                newGame.Set(gameResult.Win == isBlueTeam);
                                newGame.Execute();
                                gameId = GetInsertId("game", connection);
                                //We need to create a list of unknown players for this game so they can get updated in future if necessary
                                //Otherwise it is unclear who participated in this game
                                //Retrieving their stats at this point is too expensive and hence undesirable
                                foreach (var player in game.fellowPlayers)
                                {
                                    using (var missingPlayer = Command("insert into unknown_player (team_id, champion_id, summoner_id) values (:team_id, :champion_id, :summoner_id)", connection))
                                    {
                                        missingPlayer.Set("team_id", player.teamId == blueId ? blueTeamId : purpleTeamId);
                                        missingPlayer.Set("champion_id", player.championId);
                                        missingPlayer.Set("summoner_id", player.summonerId);
                                        missingPlayer.Execute();
                                    }
                                }
                            }
                        }
                    }
                }
            }
            InsertGameResult(summoner, gameId, summonerTeamId, game, gameResult, connection);
        }
        public static int InsertPlayerGameStats(PlayerGameStats p, string gameId)
        {
            DataAccessHelper dataAccess   = new DataAccessHelper("");
            string           sqlStatement = "spCreatePlayerGameStats";

            List <SQLParameter> sqlParameterList = new List <SQLParameter>();

            // Create the list of input parameters
            sqlParameterList.Add(new SQLParameter("@gameId", System.Data.SqlDbType.VarChar, DataAccessHelper.SafeOutput <string>(gameId, "string"), "in"));
            sqlParameterList.Add(new SQLParameter("@playerId", System.Data.SqlDbType.Int, DataAccessHelper.SafeOutput <int>(p.playerID, "number"), "in"));
            sqlParameterList.Add(new SQLParameter("@position", System.Data.SqlDbType.VarChar, DataAccessHelper.SafeOutput <string>(p.position, "string"), "in"));
            sqlParameterList.Add(new SQLParameter("@timeOnIce", System.Data.SqlDbType.Int, DataAccessHelper.SafeOutput <int>(Utilities.TimeToInt(DataAccessHelper.SafeOutput <string>(p.timeOnIce, "number")), "number"), "in"));
            sqlParameterList.Add(new SQLParameter("@assists", System.Data.SqlDbType.Int, DataAccessHelper.SafeOutput <string>(p.assists, "number"), "in"));
            sqlParameterList.Add(new SQLParameter("@goals", System.Data.SqlDbType.Int, DataAccessHelper.SafeOutput <string>(p.goals, "number"), "in"));
            sqlParameterList.Add(new SQLParameter("@shots", System.Data.SqlDbType.Int, DataAccessHelper.SafeOutput <string>(p.shots, "number"), "in"));
            sqlParameterList.Add(new SQLParameter("@hits", System.Data.SqlDbType.Int, DataAccessHelper.SafeOutput <string>(p.hits, "number"), "in"));
            sqlParameterList.Add(new SQLParameter("@powerPlayGoals", System.Data.SqlDbType.Int, DataAccessHelper.SafeOutput <string>(p.powerPlayGoals, "number"), "in"));
            sqlParameterList.Add(new SQLParameter("@powerPlayAssists", System.Data.SqlDbType.Int, DataAccessHelper.SafeOutput <string>(p.powerPlayAssists, "number"), "in"));
            sqlParameterList.Add(new SQLParameter("@penaltyMinutes", System.Data.SqlDbType.Int, DataAccessHelper.SafeOutput <string>(p.penaltyMinutes, "number"), "in"));
            sqlParameterList.Add(new SQLParameter("@faceoffWins", System.Data.SqlDbType.Int, DataAccessHelper.SafeOutput <string>(p.faceoffWins, "number"), "in"));
            sqlParameterList.Add(new SQLParameter("@faceoffWinPercentage", System.Data.SqlDbType.Decimal, DataAccessHelper.SafeOutput <string>(Utilities.PareDecimals(p.faceoffWinPercentage).ToString(), "number"), "in"));
            sqlParameterList.Add(new SQLParameter("@faceoffsTaken", System.Data.SqlDbType.Int, DataAccessHelper.SafeOutput <string>(p.faceoffsTaken, "number"), "in"));
            sqlParameterList.Add(new SQLParameter("@takeaways", System.Data.SqlDbType.Int, DataAccessHelper.SafeOutput <string>(p.takeaways, "number"), "in"));
            sqlParameterList.Add(new SQLParameter("@giveaways", System.Data.SqlDbType.Int, DataAccessHelper.SafeOutput <string>(p.giveaways, "number"), "in"));
            sqlParameterList.Add(new SQLParameter("@shorthandedGoals", System.Data.SqlDbType.Int, DataAccessHelper.SafeOutput <string>(p.shorthandedGoals, "number"), "in"));
            sqlParameterList.Add(new SQLParameter("@shorthandedAssists", System.Data.SqlDbType.Int, DataAccessHelper.SafeOutput <string>(p.shorthandedAssists, "number"), "in"));
            sqlParameterList.Add(new SQLParameter("@blocked", System.Data.SqlDbType.Int, DataAccessHelper.SafeOutput <string>(p.blocked, "number"), "in"));
            sqlParameterList.Add(new SQLParameter("@plusMinus", System.Data.SqlDbType.Int, DataAccessHelper.SafeOutput <string>(p.plusMinus, "number"), "in"));
            sqlParameterList.Add(new SQLParameter("@evenTimeOnIce", System.Data.SqlDbType.Int, DataAccessHelper.SafeOutput <int>(Utilities.TimeToInt(DataAccessHelper.SafeOutput <string>(p.evenTimeOnIce, "number")), "number"), "in"));
            sqlParameterList.Add(new SQLParameter("@powerPlayTimeOnIce", System.Data.SqlDbType.Int, DataAccessHelper.SafeOutput <int>(Utilities.TimeToInt(DataAccessHelper.SafeOutput <string>(p.powerPlayTimeOnIce, "number")), "number"), "in"));
            sqlParameterList.Add(new SQLParameter("@shorthandedTimeOnIce", System.Data.SqlDbType.Int, DataAccessHelper.SafeOutput <int>(Utilities.TimeToInt(DataAccessHelper.SafeOutput <string>(p.shorthandedTimeOnIce, "number")), "number"), "in"));
            sqlParameterList.Add(new SQLParameter("@goalieTimeOnIce", System.Data.SqlDbType.Int, DataAccessHelper.SafeOutput <int>(Utilities.TimeToInt(DataAccessHelper.SafeOutput <string>(p.goalieTimeOnIce, "number")), "number"), "in"));
            sqlParameterList.Add(new SQLParameter("@shotsFaced", System.Data.SqlDbType.Int, DataAccessHelper.SafeOutput <string>(p.shotsFaced, "number"), "in"));
            sqlParameterList.Add(new SQLParameter("@shotsSaved", System.Data.SqlDbType.Int, DataAccessHelper.SafeOutput <string>(p.shotsSaved, "number"), "in"));
            sqlParameterList.Add(new SQLParameter("@powerPlayShotsSaved", System.Data.SqlDbType.Int, DataAccessHelper.SafeOutput <string>(p.powerPlayShotsSaved, "number"), "in"));
            sqlParameterList.Add(new SQLParameter("@shorthandedShotsSaved", System.Data.SqlDbType.Int, DataAccessHelper.SafeOutput <string>(p.shorthandedShotsSaved, "number"), "in"));
            sqlParameterList.Add(new SQLParameter("@evenSaved", System.Data.SqlDbType.Int, DataAccessHelper.SafeOutput <string>(p.evenSaved, "number"), "in"));
            sqlParameterList.Add(new SQLParameter("@shorthandedShotsAgainst", System.Data.SqlDbType.Int, DataAccessHelper.SafeOutput <string>(p.shorthandedShotsAgainst, "number"), "in"));
            sqlParameterList.Add(new SQLParameter("@evenShotsAgainst", System.Data.SqlDbType.Int, DataAccessHelper.SafeOutput <string>(p.evenShotsAgainst, "number"), "in"));
            sqlParameterList.Add(new SQLParameter("@powerPlayShotsAgainst", System.Data.SqlDbType.Int, DataAccessHelper.SafeOutput <string>(p.powerPlayShotsAgainst, "number"), "in"));
            sqlParameterList.Add(new SQLParameter("@decision", System.Data.SqlDbType.VarChar, DataAccessHelper.SafeOutput <string>(p.decision, "string"), "in"));
            sqlParameterList.Add(new SQLParameter("@savePercentage", System.Data.SqlDbType.Decimal, DataAccessHelper.SafeOutput <string>(Utilities.PareDecimals(p.savePercentage).ToString(), "number"), "in"));
            sqlParameterList.Add(new SQLParameter("@evenSavePercentage", System.Data.SqlDbType.Decimal, DataAccessHelper.SafeOutput <string>(Utilities.PareDecimals(p.evenSavePercentage).ToString(), "number"), "in"));
            sqlParameterList.Add(new SQLParameter("@powerPlaySavePercentage", System.Data.SqlDbType.Decimal, DataAccessHelper.SafeOutput <string>(Utilities.PareDecimals(p.powerPlaySavePercentage).ToString(), "number"), "in"));
            sqlParameterList.Add(new SQLParameter("@shorthandedSavePercentage", System.Data.SqlDbType.Decimal, DataAccessHelper.SafeOutput <string>(Utilities.PareDecimals(p.shorthandedSavePercentage).ToString(), "number"), "in"));
            //sqlParameterList.Add(new SQLParameter("@rawJson", System.Data.SqlDbType.VarChar, DataAccessHelper.SafeOutput<string>("NULL", "string"), "in"));

            string theQuery = "EXEC spCreatePlayerGameStats ";

            foreach (SQLParameter s in sqlParameterList)
            {
                Console.WriteLine("{0} = {1} ({2})", s.paramName, s.paramValue, s.paramType);
                if (s.paramType.ToString().ToUpper() == "VARCHAR" || s.paramType.ToString().ToUpper() == "N")
                {
                    theQuery = theQuery + "'" + s.paramValue + "', ";
                }
                else
                {
                    theQuery = theQuery + s.paramValue + ", ";
                }
            }

            // Create the output parameter

            sqlParameterList.Add(new SQLParameter("@playerGameStatsIdentity", System.Data.SqlDbType.Int, DataAccessHelper.SafeOutput <int>(Convert.ToInt32("0"), "number"), "out"));

            return(dataAccess.ExecuteParameterizedQuery(sqlParameterList, sqlStatement));
        }