public void Boxing(Boxer boxer1, Boxer boxer2) { while (total > 0 && boxer1.KnockedOut == false && boxer2.KnockedOut == false) { if (boxer1.PunchingBoxer) { boxer1.Attack(Random()); MatchStats?.Invoke(boxer1, boxer2); } if (boxer2.PunchingBoxer) { boxer2.Attack(Random()); MatchStats?.Invoke(boxer1, boxer2); } if (boxer1.KnockedOut) { Knockout?.Invoke(boxer1); break; } if (boxer2.KnockedOut) { Knockout?.Invoke(boxer2); break; } total--; } if (total == 0) { After50?.Invoke(boxer1, boxer2); } }
public static void InitiateMatch(List <Team> teams, int requiredScore, int overs) { var matchStat = new MatchStats(teams, requiredScore, overs * 6); var matchSimulator = new MatchSimulator(matchStat); matchSimulator.StartMatch(); }
private void Start() { DataManager dm = DataManager.Instance; text = GetComponent <Text>(); if (dm.match_stats.Count == 0) { text.text = ""; return; } text.text = ""; for (int i = dm.match_stats.Count - 1; i >= Mathf.Max(0, dm.match_stats.Count - 10); --i) { MatchStats ms = dm.match_stats[i]; string score; score = Tools.ColorRichTxt(ms.scores[0].ToString(), ms.colors[0]); score += ":"; score += Tools.ColorRichTxt(ms.scores[1].ToString(), ms.colors[1]); if (i > 0) { score += " "; } text.text += score; } }
private void CalculateMatchStats() { Results = matches.Select(m => m.Match) .Where(m => m.Competition.CompetitionType != CompetitionType.Friendly) .Select(m => new { Name = m.Competition.CompetitionType, Wins = m.IsWin ? 1:0, Draws = m.IsDraw ? 1:0, Losses = m.IsLoss ? 1:0, GoalsFor = m.FinalScore.GoalsFor, GoalsAgainst = m.FinalScore.GoalsAgainst }) .GroupBy(s => s.Name) .Select(g => new MatchStats() { Label = g.Key.ToString(), Won = g.Sum(s => s.Wins), Drawn = g.Sum(s => s.Draws), Lost = g.Sum(s => s.Losses), For = g.Sum(s => s.GoalsFor), Against = g.Sum(s => s.GoalsAgainst), }) .ToList(); var total = new MatchStats() { Label = "Total", Won = Results.Sum(r => r.Won), Drawn = Results.Sum(r => r.Drawn), Lost = Results.Sum(r => r.Lost), For = Results.Sum(r => r.For), Against = Results.Sum(r => r.Against) }; Results.Add(total); }
public void EndMatch() { MatchStats stats = new MatchStats(); stats.colors = new Color[] { charas[0].PlayerColor, charas[1].PlayerColor }; stats.scores = new int[] { scores[0], scores[1] }; DataManager.Instance.match_stats.Add(stats); }
public MatchDetails(int matchId) { this.matchId = matchId; statsUrl = "https://www.smitegame.com/match-details?match=" + matchId.ToString(); trimmedHtml = GetHtml(statsUrl); stats = new MatchStats(); ReadHtml(trimmedHtml); }
public MatchFSM(Lineup home, Lineup away) { homeTeam = home; awayTeam = away; minute = 0; state = new StartState(homeTeam, awayTeam); isHomeTeamAttacking = true; ms = new MatchStats(homeTeam, awayTeam); }
public void UpdateHud(MatchStats stats) { if (stats == null) { return; } UpdateHome(stats.HomeStats); UpdateAway(stats.AwayStats); }
public void TakeDamage(float damage) { if (!stationary) { float barHealth; currentHealth -= damage; barHealth = currentHealth / m_Health; SetHealthBar(barHealth); if (currentHealth <= 0) { // Death unstack(); if (m_CharacterStack.Count > 1) { m_CharacterStack[1].GetComponent <Character>().unstack(); } players.Remove(gameObject); // Set match rewards for dead player if (GetComponent <UserCharacterController>() != null) { GameSetup gs = FindObjectOfType <GameSetup>(); if (gs != null) { int playerIndex = GetComponent <UserCharacterController>().playerId; if (gs.rankings.ContainsKey(playerIndex)) { TimerScript ts = FindObjectOfType <TimerScript>(); if (ts != null) { gs.rankings[playerIndex].deathTime = ts.GetElapsedTime(); } gs.rankings[playerIndex].coinReward = 0; } else { MatchStats ms = new MatchStats(); TimerScript ts = FindObjectOfType <TimerScript>(); if (ts != null) { ms.deathTime = ts.GetElapsedTime(); } ms.coinReward = 0; ms.coinTotal = 0; gs.rankings.Add(playerIndex, ms); } } } TestOneStack(); Destroy(gameObject); } } }
private void initiateMatch() { _match = MatchService.Current; _matchStats = _match.Stats; CreateTeam(_match.HomeTeam); CreateTeam(_match.AwayTeam); _ball.SetMatchController(this); TeamWaitingToServe = _match.AwayTeam; _ball.ChangedDirection += _match.Stats.CountTouches; }
//returns a string like "33/50/17", representing win/draw/loss percentage static public string getWDLString(MatchStats stats) { string won = Math.Round((double)stats.won / stats.matchesPlayed * 100.0, 0).ToString(); string drawn = Math.Round((double)stats.drawn / stats.matchesPlayed * 100.0, 0).ToString(); string lost = Math.Round((double)stats.lost / stats.matchesPlayed * 100.0, 0).ToString(); stats.WDL = won + "/" + drawn + "/" + lost; won = Math.Round((double)stats.homeOrAwayWon / stats.homeOrAwayMatchesPlayed * 100.0, 0).ToString(); drawn = Math.Round((double)stats.homeOrAwayDrawn / stats.homeOrAwayMatchesPlayed * 100.0, 0).ToString(); lost = Math.Round((double)stats.homeOrAwayLost / stats.homeOrAwayMatchesPlayed * 100.0, 0).ToString(); return(won + "/" + drawn + "/" + lost); }
/* * public Statistics(int i) * { * TotalBattles = i; * TotalWins = i; * TotalKills = i; * DoubleKills = i; * TripleKills = i; * ItemsCollected = i; * GunsCollected = i; * SupplyDrop = i; * SupplyCreates = i; * Experience = i; * } */ public void ChangeStats(MatchStats thisMatchStats) { SupplyDrop += thisMatchStats.SupplyDrop; Experience += thisMatchStats.Experience; SupplyCreates += thisMatchStats.SupplyCreates; GunsCollected += thisMatchStats.GunsCollected; ItemsCollected += thisMatchStats.ItemsCollected; TotalKills += thisMatchStats.Kills; DoubleKills += thisMatchStats.DoubleKills; TripleKills += thisMatchStats.TripleKills; TotalWins += thisMatchStats.Wins; TotalBattles++; }
public MatchDetails() { // we maken een nieuw object aan voor HomeTeamStats (van het type MatchStats). HomeTeamStats = new MatchStats(); AwayTeamStats = new MatchStats(); YellowCardsHomeTeam = new MatchStats(); RedCardsHomeTeam = new MatchStats(); YellowCardsAwayTeam = new MatchStats(); RedCardsAwayTeam = new MatchStats(); // hier ook de andere subobjecten even eenmalig aanmaken. // YellowCardsHomeTeam // RedCardsHomeTeam // etc // etc }
private MatchAttributes(string createdAt, long duration, string matchType, string gameMode, string mapName, bool isCustomMatch, string patchVersion, string seasonState, string shardId, MatchStats stats, MatchTags tags, string titleId) { CreatedAt = createdAt; Duration = duration; MatchType = matchType; GameMode = gameMode; MapName = mapName; IsCustomMatch = isCustomMatch; PatchVersion = patchVersion; SeasonState = seasonState; ShardId = shardId; Stats = stats; Tags = tags; TitleId = titleId; }
// gets saved stats like average goals or form strings from database private MatchStats getStatsFromDatabase(int teamId, Match match) { MatchStats stats = new MatchStats(); using (SqlConnection connection = new SqlConnection(builder.ConnectionString)) { using (SqlCommand sqlCommand = new SqlCommand("SELECT * from MatchStats as stats " + "Where stats.MatchId = " + match.MatchId + " AND stats.TeamId = " + teamId + "; ", connection)) { connection.Open(); using (SqlDataReader reader = sqlCommand.ExecuteReader()) { reader.Read(); stats.position = reader["Position"].ToString(); stats.HomeOrAwayPosition = reader["HomeOrAwayPosition"].ToString(); stats.name = reader["Name"].ToString(); stats.matchesPlayed = (int)reader["MatchesPlayed"]; stats.won = (int)reader["Won"]; stats.drawn = (int)reader["Drawn"]; stats.lost = (int)reader["Lost"]; stats.homeOrAwayMatchesPlayed = (int)reader["HomeOrAwayMatchesPlayed"]; stats.homeOrAwayWon = (int)reader["HomeOrAwayWon"]; stats.homeOrAwayDrawn = (int)reader["HomeOrAwayDrawn"]; stats.homeOrAwayLost = (int)reader["HomeOrAwayLost"]; stats.goalsFor = (int)reader["GoalsFor"]; stats.goalsAgainst = (int)reader["GoalsAgainst"]; stats.goalDifference = (int)reader["GoalsDifference"]; stats.points = (int)reader["Points"]; stats.goalsScoredPerGame = (double)reader["GoalsScoredPerGame"]; stats.goalsConcededPerGame = (double)reader["GoalsConcededPerGame"]; stats.WDL = reader["WDL"].ToString(); stats.homeOrAwayWDL = reader["HomeOrAwayWDL"].ToString(); stats.overallFormString = reader["OverallFormString"].ToString(); stats.homeOrAwayFormString = reader["HomeOrAwayFormString"].ToString(); stats.PredictionPoints = (double)reader["PredictionPoints"]; stats.overallLast6Scored = (int)reader["OverallLast6Scored"]; stats.overallLast6Conceded = (int)reader["OverallLast6Conceded"]; stats.homeOrAwayLast6Scored = (int)reader["HomeOrAwayLast6Scored"]; stats.homeOrAwayLast6Conceded = (int)reader["HomeOrAwayLast6Conceded"]; stats.teamId = (int)reader["TeamId"]; stats.matchId = reader["MatchId"].ToString(); reader.Close(); } connection.Close(); } } return(stats); }
private void Form1_FormClosing(object sender, FormClosingEventArgs e) { XmlSerializer serializer = new XmlSerializer(typeof(MatchStats[])); List <MatchStats> matchStatsList = new List <MatchStats>(); foreach (DataGridViewRow kdrRow in kdrTable.Rows) { string kills = kdrRow.Cells[0].Value.ToString(); string deaths = kdrRow.Cells[2].Value.ToString(); if (kills == string.Empty || deaths == string.Empty) { continue; } MatchStats stats = new MatchStats(); stats.Kills = int.Parse(kills); stats.Deaths = int.Parse(deaths); int[] deathArray = new int[deathTable.ColumnCount]; foreach (DataGridViewCell cell in deathTable.Rows[kdrRow.Index].Cells) { string value = cell.Value.ToString(); if (value != string.Empty) { deathArray[cell.ColumnIndex] = int.Parse(value); } else { deathArray[cell.ColumnIndex] = 0; } } stats.DeathsArray = deathArray; matchStatsList.Add(stats); } string path = "MatchStats.xml"; if (File.Exists(path)) { File.Delete(path); } using (FileStream fs = File.OpenWrite(path)) serializer.Serialize(fs, matchStatsList.ToArray()); }
private void ProcessTimeAndDuration(MatchStats match, List <string> html, int lineNumber) { int durationSeparation = 3; int monthIdx = 2; int dayIdx = 3; int yearIdx = 4; int hourIdx = 5; int minIdx = 6; int secIdx = 7; int pmIdx = 8; string[] dateLine = html[lineNumber].Split(new Char[] { ':', '/', ' ', 'M' }); match.matchTime = new DateTime(Int32.Parse(dateLine[yearIdx]), Int32.Parse(dateLine[monthIdx]), Int32.Parse(dateLine[dayIdx]), Int32.Parse(dateLine[hourIdx]) + (dateLine[pmIdx] == "P" ? 12 : 0), Int32.Parse(dateLine[minIdx]), Int32.Parse(dateLine[secIdx])); match.duration = GetNumbersFromLine(html[lineNumber + durationSeparation]); }
public static MatchXP CalculateXP(MatchStats match) { Statistics stat = playerStat; MatchXP matchXp = new MatchXP { K = (match.Kills - 2 * match.DoubleKills - 3 * match.TripleKills) * Multiplyer, Dk = match.DoubleKills * 2 * Multiplyer, Tk = match.TripleKills * 4 * Multiplyer, AP = match.SupplyDrop * 2 * Multiplyer, W = match.Wins * 5 * Multiplyer, P = (1 + (int)(match.PlayTime / 60)) * Multiplyer }; return(matchXp); }
// Token: 0x060010B8 RID: 4280 RVA: 0x00016550 File Offset: 0x00014750 public static MatchStats Deserialize(Stream bytes) { int num = Int32Proxy.Deserialize(bytes); MatchStats matchStats = new MatchStats(); matchStats.GameModeId = EnumProxy <GameModeType> .Deserialize(bytes); matchStats.MapId = Int32Proxy.Deserialize(bytes); if ((num & 1) != 0) { matchStats.Players = ListProxy <PlayerMatchStats> .Deserialize(bytes, new ListProxy <PlayerMatchStats> .Deserializer <PlayerMatchStats>(PlayerMatchStatsProxy.Deserialize)); } matchStats.PlayersLimit = Int32Proxy.Deserialize(bytes); matchStats.TimeLimit = Int32Proxy.Deserialize(bytes); return(matchStats); }
private void addStatsToDatabase(MatchStats stats, int teamId, string matchId) { using (SqlConnection connection = new SqlConnection(builder.ConnectionString)) { using (SqlCommand cmd = new SqlCommand("insert into MatchStats values(" + "@position,@homeorawayposition,@name,@matchesplayed,@won,@drawn,@lost,@homeorawaymatchesplayed," + "@homeorawaywon,@homeorawaydrawn,@homeorawaylost,@goalsfor,@goalsagainst,@goaldifference," + "@points,@goalsscoredpergame,@goalsconcededpergame, @wdl, @homeorawaywdl, @overallformstring, @homeorawayformstring," + "@predictionpoints, @overalllast6scored, @overalllast6conceded, @homeorawaylast6scored, @homeorawaylast6conceded," + "@teamid, @matchid);", connection)) { connection.Open(); cmd.Parameters.AddWithValue("@position", stats.position); cmd.Parameters.AddWithValue("@homeorawayposition", stats.HomeOrAwayPosition); cmd.Parameters.AddWithValue("@name", stats.name); cmd.Parameters.AddWithValue("@matchesplayed", stats.matchesPlayed); cmd.Parameters.AddWithValue("@won", stats.won); cmd.Parameters.AddWithValue("@drawn", stats.drawn); cmd.Parameters.AddWithValue("@lost", stats.lost); cmd.Parameters.AddWithValue("@homeorawaymatchesplayed", stats.homeOrAwayMatchesPlayed); cmd.Parameters.AddWithValue("@homeorawaywon", stats.homeOrAwayWon); cmd.Parameters.AddWithValue("@homeorawaydrawn", stats.homeOrAwayDrawn); cmd.Parameters.AddWithValue("@homeorawaylost", stats.homeOrAwayLost); cmd.Parameters.AddWithValue("@goalsfor", stats.goalsFor); cmd.Parameters.AddWithValue("@goalsagainst", stats.goalsAgainst); cmd.Parameters.AddWithValue("@goaldifference", stats.goalDifference); cmd.Parameters.AddWithValue("@points", stats.points); cmd.Parameters.AddWithValue("@goalsscoredpergame", stats.goalsScoredPerGame); cmd.Parameters.AddWithValue("@goalsconcededpergame", stats.goalsConcededPerGame); cmd.Parameters.AddWithValue("@wdl", stats.WDL); cmd.Parameters.AddWithValue("@homeorawaywdl", stats.homeOrAwayWDL); cmd.Parameters.AddWithValue("@overallformstring", stats.overallFormString); cmd.Parameters.AddWithValue("@homeorawayformstring", stats.homeOrAwayFormString); cmd.Parameters.AddWithValue("@predictionpoints", stats.PredictionPoints); cmd.Parameters.AddWithValue("@overalllast6scored", stats.overallLast6Scored); cmd.Parameters.AddWithValue("@overalllast6conceded", stats.overallLast6Conceded); cmd.Parameters.AddWithValue("@homeorawaylast6scored", stats.homeOrAwayLast6Scored); cmd.Parameters.AddWithValue("@homeorawaylast6conceded", stats.homeOrAwayLast6Conceded); cmd.Parameters.AddWithValue("@teamid", teamId); cmd.Parameters.AddWithValue("@matchid", matchId); cmd.ExecuteNonQuery(); connection.Close(); } } }
// Token: 0x0600113B RID: 4411 RVA: 0x0001BB60 File Offset: 0x00019D60 public static Coroutine SetMatchScore(string clientVersion, MatchStats scoringView, string serverAuthentication, Action callback, Action <Exception> handler) { Coroutine result; using (MemoryStream memoryStream = new MemoryStream()) { StringProxy.Serialize(memoryStream, clientVersion); MatchStatsProxy.Serialize(memoryStream, scoringView); StringProxy.Serialize(memoryStream, serverAuthentication); result = MonoInstance.Mono.StartCoroutine(SoapClient.MakeRequest("IApplicationWebServiceContract", "ApplicationWebService", "SetMatchScore", memoryStream.ToArray(), delegate(byte[] data) { if (callback != null) { callback(); } }, handler)); } return(result); }
public void SetMatchResults() { GameManager gm = FindObjectOfType <GameManager>(); if (gm != null) { GameSetup gs = FindObjectOfType <GameSetup>(); if (gs != null) { foreach (GameObject player in gm.players) { if (player.GetComponent <UserCharacterController>() != null) { int playerIndex = player.GetComponent <UserCharacterController>().playerId; if (gs.rankings.ContainsKey(playerIndex)) { TimerScript ts = FindObjectOfType <TimerScript>(); if (ts != null) { gs.rankings[playerIndex].deathTime = ts.GetElapsedTime(); } gs.rankings[playerIndex].coinReward = 0; gs.rankings[playerIndex].tie = true; } else { MatchStats ms = new MatchStats(); TimerScript ts = FindObjectOfType <TimerScript>(); if (ts != null) { gs.rankings[playerIndex].deathTime = ts.GetElapsedTime(); } ms.coinReward = 0; ms.coinTotal = 0; ms.tie = true; gs.rankings.Add(playerIndex, ms); } } } } } }
string GetRankString(MatchStats m) { if (m.tie) { return("Draw"); } if (m.deathTime < 0f) { return(rankString[0]); } List <MatchStats> l = new List <MatchStats>(); for (int i = 0; i < ReInput.players.playerCount; i++) { if (setup.rankings.ContainsKey(i)) { l.Add(setup.rankings[i]); } } l.Sort(new RankComparer()); int index = l.IndexOf(m); if (index == 0) { // Can't be 1st, AI won. return("Last"); } if (index < rankString.Length - 1) { return(rankString[index]); } else { return("Last"); // I'm cheating a little } }
public ActionResult DeleteConfirmed(int id) { Fixture fixture = db.fixturesDB.Find(id); //moj kod List <Match> matches = fixture.matches.ToList(); for (int i = 0; i < matches.Count; i++) { Match m = matches.ElementAt(i); MatchStats ms = m.matchStats; db.matchStatsDB.Remove(ms); db.matchDB.Remove(m); } //moj kod db.fixturesDB.Remove(fixture); db.SaveChanges(); return(RedirectToAction("Index")); }
/// <summary> /// Devolve um MatchStats, obtido atravez da comparacao entre dador e casal, /// detalhando as semelhancas entre ambos /// </summary> /// <param name="casal">casal selecionado</param> /// <param name="dador">dador a comparar</param> /// <returns>MatchStats, com informação sobre match entre dador e casal</returns> public static MatchStats GetMatchStats(Casal casal, Dador dador) { var matchStats = new MatchStats { GrupoSanguineoMulher = casal.GrupoSanguineoMulher == dador.GrupoSanguineo, GrupoSanguineoHomem = casal.GrupoSanguineoHomem == dador.GrupoSanguineo, CorCabeloHomem = casal.CorCabeloHomem == dador.CorCabelo, CorCabeloMulher = casal.CorCabeloMulher == dador.CorCabelo, CorOlhosHomem = casal.CorOlhosHomem == dador.CorOlhos, CorOlhosMulher = casal.CorOlhosMulher == dador.CorOlhos, CorPeleHomem = casal.CorPeleHomem == dador.CorPele, CorPeleMulher = casal.CorPeleMulher == dador.CorPele, RacaHomem = casal.RacaHomem == dador.Etnia, RacaMulher = casal.RacaHomem == dador.Etnia, TexturaCabeloHomem = casal.TexturaCabeloHomem == dador.TexturaCabelo, TexturaCabeloMulher = casal.TexturaCabeloMulher == dador.TexturaCabelo, CasalId = casal.CasalID, DadorId = dador.DadorId, }; return(matchStats); }
public void Start() { setup = FindObjectOfType <GameSetup>(); if (setup != null) { List <MatchStats> l = new List <MatchStats>(); for (int i = 0; i < ReInput.players.playerCount; i++) { if (setup.selectedCharacterPrefabs[i] != null && setup.rankings.ContainsKey(i)) { GameObject matchResultObject = Instantiate(matchResultPanelPrefab, horizontalLayout); MatchResultsPanel matchResultPanel = matchResultObject.GetComponent <MatchResultsPanel>(); MatchStats m = setup.rankings[i]; matchResultPanel.rankText.text = GetRankString(m) + " - P" + i; matchResultPanel.rewardText.text = m.coinReward + " Points"; matchResultPanel.playerImage.sprite = setup.selectedCharacterPrefabs[i].GetComponentInChildren <SpriteRenderer>().sprite; } } } }
// Token: 0x060010B7 RID: 4279 RVA: 0x000164AC File Offset: 0x000146AC public static void Serialize(Stream stream, MatchStats instance) { int num = 0; using (MemoryStream memoryStream = new MemoryStream()) { EnumProxy <GameModeType> .Serialize(memoryStream, instance.GameModeId); Int32Proxy.Serialize(memoryStream, instance.MapId); if (instance.Players != null) { ListProxy <PlayerMatchStats> .Serialize(memoryStream, instance.Players, new ListProxy <PlayerMatchStats> .Serializer <PlayerMatchStats>(PlayerMatchStatsProxy.Serialize)); } else { num |= 1; } Int32Proxy.Serialize(memoryStream, instance.PlayersLimit); Int32Proxy.Serialize(memoryStream, instance.TimeLimit); Int32Proxy.Serialize(stream, ~num); memoryStream.WriteTo(stream); } }
private void addMatchInFixture(Fixture fixture, Team homeTeam, Team awayTeam) { Random rnd = new Random(); Match match = new Match(rnd.Next(0, 4), rnd.Next(0, 4), fixture.id, homeTeam, awayTeam); //add goals scored by home team for (int i = 0; i < match.homeScore; i++) { Goal goal1 = new Goal(); FootballPlayer scorer = homeTeam.footballPlayers.ToList().ElementAt( rnd.Next(0, homeTeam.footballPlayers.ToList().Count) ); FootballPlayer assist = null; while (true) { assist = homeTeam.footballPlayers.ToList().ElementAt( rnd.Next(0, homeTeam.footballPlayers.ToList().Count) ); if (assist.Equals(scorer) == false) { break; } } goal1.footballPlayers.Add(scorer); goal1.footballPlayers.Add(assist); goal1.matchId = match.id; goal1.minuteScored = rnd.Next(1, 90); match.goals.Add(goal1); db.goalsDB.Add(goal1); } //add goals scored by away team for (int i = 0; i < match.awayScore; i++) { Goal goal1 = new Goal(); FootballPlayer scorer = awayTeam.footballPlayers.ToList().ElementAt( rnd.Next(0, awayTeam.footballPlayers.ToList().Count) ); FootballPlayer assist = null; while (true) { assist = awayTeam.footballPlayers.ToList().ElementAt( rnd.Next(0, awayTeam.footballPlayers.ToList().Count) ); if (assist.Equals(scorer) == false) { break; } } goal1.footballPlayers.Add(scorer); goal1.footballPlayers.Add(assist); goal1.matchId = match.id; goal1.minuteScored = rnd.Next(1, 90); match.goals.Add(goal1); db.goalsDB.Add(goal1); } db.matchDB.Add(match); //stats MatchStats matchStats = new MatchStats(); match.matchStats = matchStats; matchStats.homeBallPosession = rnd.Next(20, 81); matchStats.awayBallPosession = 100 - matchStats.homeBallPosession; matchStats.homeTotalShoots = rnd.Next(match.homeScore, 15); matchStats.awayTotalShoots = rnd.Next(match.awayScore, 15); matchStats.homePasses = rnd.Next(200, 700); matchStats.awayPasses = rnd.Next(200, 700); matchStats.homeFouls = rnd.Next(5, 15); matchStats.awayFouls = rnd.Next(5, 15); matchStats.homeCorners = rnd.Next(3, 8); matchStats.awayCorners = rnd.Next(3, 8); matchStats.homeYellowCards = rnd.Next(0, 3); matchStats.awayYellowCards = rnd.Next(0, 3); matchStats.homeRedCards = rnd.Next(0, 2); matchStats.awayRedCards = rnd.Next(0, 2); db.matchStatsDB.Add(matchStats); //stats fixture.matches.Add(match); db.fixturesDB.Add(fixture); }
public async Task <string[]> Load(double ID) { RecentGames result = await Client.PVPNet.GetRecentGames(ID); result.GameStatistics.Sort((s1, s2) => s2.CreateDate.CompareTo(s1.CreateDate)); GamesWithChamp = 0; foreach (PlayerGameStats game in result.GameStatistics) { game.GameType = Client.TitleCaseString(game.GameType.Replace("_GAME", "").Replace("MATCHED", "NORMAL")); var match = new MatchStats(); foreach (RawStat stat in game.Statistics) { Type type = typeof(MatchStats); string fieldName = Client.TitleCaseString(stat.StatType.Replace('_', ' ')).Replace(" ", ""); FieldInfo f = type.GetField(fieldName); f.SetValue(match, stat.Value); } match.Game = game; GameStats.Add(match); } int AKills, ChampKills; int ADeaths, ChampDeaths; int AAssists, ChampAssists; int AGamesPlayed, ChampGamesPlayed; int Wins, ChampWins; AKills = 0; ADeaths = 0; AAssists = 0; AGamesPlayed = 0; ChampKills = 0; ChampDeaths = 0; ChampAssists = 0; ChampGamesPlayed = 0; Wins = 0; ChampWins = 0; //Load average KDA for past 20 games if possible foreach (MatchStats stats in GameStats) { if (stats.Win == 1) { Wins++; } champions gameChamp = champions.GetChampion((int)Math.Round(stats.Game.ChampionId)); AKills = AKills + (Int32)stats.ChampionsKilled; ADeaths = ADeaths + (Int32)stats.NumDeaths; AAssists = AAssists + (Int32)stats.Assists; AGamesPlayed++; if (ChampID == (int)Math.Round(stats.Game.ChampionId)) { if (stats.Win == 1) { ChampWins++; } ChampKills = ChampKills + (Int32)stats.ChampionsKilled; ChampDeaths = ChampDeaths + (Int32)stats.NumDeaths; ChampAssists = ChampAssists + (Int32)stats.Assists; ChampGamesPlayed++; GamesWithChamp++; } } WinLossRatio = (Wins / AGamesPlayed) * 100; try { WinLossChampRatio = (ChampWins / ChampGamesPlayed) * 100; } catch { } string KDAString = string.Format("{0}/{1}/{2}", (AKills / AGamesPlayed), (ADeaths / AGamesPlayed), (AAssists / AGamesPlayed)); string ChampKDAString = ""; try { ChampKDAString = string.Format("{0}/{1}/{2}", (ChampKills / ChampGamesPlayed), (ChampDeaths / ChampGamesPlayed), (ChampAssists / ChampGamesPlayed)); } catch { ChampKDAString = "NO RECENT GAMES!!!"; } //GetKDA String OverallKDA = new KDA() { Kills = AKills, Deaths = ADeaths, Assists = AAssists, Games = AGamesPlayed }; //Get champ KDA Champkda = new KDA() { Kills = ChampKills, Deaths = ChampDeaths, Assists = ChampAssists, Games = ChampGamesPlayed }; return(new List <string>() { ChampKDAString, KDAString }.ToArray()); }
/// <summary> /// Loads the particiapants for the game /// </summary> /// <param name="allParticipants"></param> /// <param name="n"></param> /// <param name="list"></param> private async void LoadPar(List <Participant> allParticipants, PlatformGameLifecycleDTO n, ListView list) { bool isYourTeam = false; list.Items.Clear(); list.Items.Refresh(); try { string mmrJson; string url = Client.Region.SpectatorLink + "consumer/getGameMetaData/" + Client.Region.InternalName + "/" + n.Game.Id + "/token"; using (var client = new WebClient()) mmrJson = client.DownloadString(url); var serializer = new JavaScriptSerializer(); var deserializedJson = serializer.Deserialize <Dictionary <string, object> >(mmrJson); MMRLabel.Content = "Game MMR ≈ " + deserializedJson["interestScore"]; } catch { MMRLabel.Content = "Unable to calculate Game MMR"; } foreach (Participant par in allParticipants) { if (par is PlayerParticipant) { PublicSummoner scoutersum = await RiotCalls.GetSummonerByName(GSUsername); if ((par as PlayerParticipant).AccountId == scoutersum.AcctId) { isYourTeam = true; } } } foreach (Participant par in allParticipants) { if (par is PlayerParticipant) { var participant = par as PlayerParticipant; foreach (PlayerChampionSelectionDTO championSelect in n.Game.PlayerChampionSelections.Where(championSelect => championSelect.SummonerInternalName == participant.SummonerInternalName)) { GameScouterPlayer control = new GameScouterPlayer(); control.Tag = championSelect; GameStats = new List <MatchStats>(); control.Username.Content = championSelect.SummonerInternalName; //Make it so you can see yourself if (championSelect.SummonerInternalName == GSUsername) { control.Username.Foreground = (Brush)(new BrushConverter().ConvertFrom("#FF007A53")); } control.ChampIcon.Source = champions.GetChampion(championSelect.ChampionId).icon; if (File.Exists(Path.Combine(Client.ExecutingDirectory, "Assets", "spell", SummonerSpell.GetSpellImageName(Convert.ToInt32(championSelect.Spell1Id))))) { var UriSource = new System.Uri(Path.Combine(Client.ExecutingDirectory, "Assets", "spell", SummonerSpell.GetSpellImageName(Convert.ToInt32(championSelect.Spell1Id))), UriKind.Absolute); control.SumIcon1.Source = new BitmapImage(UriSource); } if (File.Exists(Path.Combine(Client.ExecutingDirectory, "Assets", "spell", SummonerSpell.GetSpellImageName(Convert.ToInt32(championSelect.Spell2Id))))) { var UriSource = new System.Uri(Path.Combine(Client.ExecutingDirectory, "Assets", "spell", SummonerSpell.GetSpellImageName(Convert.ToInt32(championSelect.Spell2Id))), UriKind.Absolute); control.SumIcon2.Source = new BitmapImage(UriSource); } GameStats.Clear(); try { PublicSummoner summoner = await RiotCalls.GetSummonerByName(championSelect.SummonerInternalName.Replace("summoner", string.Empty)); if (File.Exists(Path.Combine(Client.ExecutingDirectory, "Assets", "profileicon", summoner.ProfileIconId.ToString() + ".png"))) { control.ProfileIcon.Source = Client.GetImage(Path.Combine(Client.ExecutingDirectory, "Assets", "profileicon", summoner.ProfileIconId.ToString() + ".png")); } RecentGames result = await RiotCalls.GetRecentGames(summoner.AcctId); result.GameStatistics.Sort((s1, s2) => s2.CreateDate.CompareTo(s1.CreateDate)); foreach (PlayerGameStats game in result.GameStatistics) { game.GameType = Client.TitleCaseString(game.GameType.Replace("_GAME", "").Replace("MATCHED", "NORMAL")); var match = new MatchStats(); foreach (RawStat stat in game.Statistics) { Type type = typeof(MatchStats); string fieldName = Client.TitleCaseString(stat.StatType.Replace('_', ' ')).Replace(" ", ""); FieldInfo f = type.GetField(fieldName); f.SetValue(match, stat.Value); } match.Game = game; GameStats.Add(match); } int Kills, ChampKills; int Deaths, ChampDeaths; int Assists, ChampAssists; int GamesPlayed, ChampGamesPlayed; Kills = 0; Deaths = 0; Assists = 0; GamesPlayed = 0; ChampKills = 0; ChampDeaths = 0; ChampAssists = 0; ChampGamesPlayed = 0; //Load average KDA for past 20 games if possible foreach (MatchStats stats in GameStats) { champions gameChamp = champions.GetChampion((int)Math.Round(stats.Game.ChampionId)); Kills = Kills + (int)stats.ChampionsKilled; Deaths = Deaths + (int)stats.NumDeaths; Assists = Assists + (int)stats.Assists; GamesPlayed++; if (championSelect.ChampionId == (int)Math.Round(stats.Game.ChampionId)) { ChampKills = ChampKills + (int)stats.ChampionsKilled; ChampDeaths = ChampDeaths + (int)stats.NumDeaths; ChampAssists = ChampAssists + (int)stats.Assists; ChampGamesPlayed++; } } //GetKDA string string KDAString = string.Format("{0}/{1}/{2}", (Kills / GamesPlayed), (Deaths / GamesPlayed), (Assists / GamesPlayed)); string ChampKDAString = ""; try { ChampKDAString = string.Format("{0}/{1}/{2}", (ChampKills / ChampGamesPlayed), (ChampDeaths / ChampGamesPlayed), (ChampAssists / ChampGamesPlayed)); } catch { } if (ChampGamesPlayed == 0) { ChampKDAString = "No Games lately"; } control.AverageKDA.Content = KDAString; control.ChampAverageKDA.Content = ChampKDAString; BrushConverter bc = new BrushConverter(); if (isYourTeam) { bc = new BrushConverter(); if (ChampKills < ChampDeaths) { control.ChampKDAColor.Fill = (Brush)bc.ConvertFrom("#FFC51C1C"); } else if (ChampKills == ChampDeaths) { control.ChampKDAColor.Fill = (Brush)bc.ConvertFrom("#FF8D8D8D"); } else { control.ChampKDAColor.Fill = (Brush)bc.ConvertFrom("#FF1EBF1E"); } bc = new BrushConverter(); if (Kills < Deaths) { control.GameKDAColor.Fill = (Brush)bc.ConvertFrom("#FFC51C1C"); } else if (Kills == Deaths) { control.GameKDAColor.Fill = (Brush)bc.ConvertFrom("#FF8D8D8D"); } else { control.GameKDAColor.Fill = (Brush)bc.ConvertFrom("#FF1EBF1E"); } } else { bc = new BrushConverter(); if (ChampKills > ChampDeaths) { control.ChampKDAColor.Fill = (Brush)bc.ConvertFrom("#FFC51C1C"); } else if (ChampKills == ChampDeaths) { control.ChampKDAColor.Fill = (Brush)bc.ConvertFrom("#FF8D8D8D"); } else { control.ChampKDAColor.Fill = (Brush)bc.ConvertFrom("#FF1EBF1E"); } bc = new BrushConverter(); if (Kills > Deaths) { control.GameKDAColor.Fill = (Brush)bc.ConvertFrom("#FFC51C1C"); } else if (Kills == Deaths) { control.GameKDAColor.Fill = (Brush)bc.ConvertFrom("#FF8D8D8D"); } else { control.GameKDAColor.Fill = (Brush)bc.ConvertFrom("#FF1EBF1E"); } } } catch { Client.Log("Failed to get stats about player", "GAME_SCOUTER_ERROR"); } if (participant.TeamParticipantId != null) { try { Brush myColor = color[(double)participant.TeamParticipantId]; control.QueueTeamColor.Fill = myColor; control.QueueTeamColor.Visibility = Visibility.Visible; } catch { BrushConverter bc = new BrushConverter(); Brush brush = Brushes.White; //I know that there is a better way in the InGamePage //I find that sometimes the colors (colours) are very hard to distinguish from eachother //This makes sure that each color is easy to see //because of hexa hill I put 12 in just in case switch (ColorId) { case 0: //blue brush = (Brush)bc.ConvertFrom("#FF00E8FF"); break; case 2: //Lime Green brush = (Brush)bc.ConvertFrom("#FF00FF00"); break; case 3: //Yellow brush = (Brush)bc.ConvertFrom("#FFFFFF00"); break; case 4: //Blue Green brush = (Brush)bc.ConvertFrom("#FF007A53"); break; case 5: //Purple brush = (Brush)bc.ConvertFrom("#FF5100FF"); break; case 6: //Pink brush = (Brush)bc.ConvertFrom("#FFCB46C5"); break; case 7: //Dark Green brush = (Brush)bc.ConvertFrom("#FF006409"); break; case 8: //Brown brush = (Brush)bc.ConvertFrom("#FF643200"); break; case 9: //White brush = (Brush)bc.ConvertFrom("#FFFFFFFF"); break; case 10: //Grey brush = (Brush)bc.ConvertFrom("#FF363636"); break; case 11: //Red Pink brush = (Brush)bc.ConvertFrom("#FF8F4242"); break; case 12: //Grey Blue brush = (Brush)bc.ConvertFrom("#FFFF0000"); break; } color.Add((double)participant.TeamParticipantId, brush); ColorId++; control.QueueTeamColor.Fill = brush; control.QueueTeamColor.Visibility = Visibility.Visible; } } //control.MouseMove += controlMouseEnter; control.MouseEnter += controlMouseEnter; control.MouseLeave += control_MouseLeave; control.MouseDown += control_MouseDown; TinyRuneMasteryData smallData = new TinyRuneMasteryData(); //Now store data in the tags so that all of the event handlers work Dictionary <string, object> data = new Dictionary <string, object>(); data.Add("MasteryDataControl", smallData); data.Add("RuneData", await GetUserRunesPage(GSUsername)); data.Add("MasteryData", await GetUserRunesPage(GSUsername)); control.Tag = data; list.Items.Add(control); } } } }