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);
            }
        }
예제 #2
0
        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();
        }
예제 #3
0
    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;
        }
    }
예제 #4
0
        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);
        }
예제 #5
0
    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);
    }
예제 #6
0
 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);
 }
예제 #7
0
 public MatchFSM(Lineup home, Lineup away)
 {
     homeTeam            = home;
     awayTeam            = away;
     minute              = 0;
     state               = new StartState(homeTeam, awayTeam);
     isHomeTeamAttacking = true;
     ms = new MatchStats(homeTeam, awayTeam);
 }
예제 #8
0
 public void UpdateHud(MatchStats stats)
 {
     if (stats == null)
     {
         return;
     }
     UpdateHome(stats.HomeStats);
     UpdateAway(stats.AwayStats);
 }
예제 #9
0
파일: Character.cs 프로젝트: jkaba/Game-Dev
        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);
                }
            }
        }
예제 #10
0
 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;
 }
예제 #11
0
        //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);
        }
예제 #12
0
/*
 *  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++;
    }
예제 #13
0
 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
 }
예제 #14
0
 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;
 }
예제 #15
0
        // 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);
        }
예제 #16
0
        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());
        }
예제 #17
0
        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]);
        }
예제 #18
0
    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);
    }
예제 #19
0
        // 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);
        }
예제 #20
0
        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();
                }
            }
        }
예제 #21
0
        // 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);
        }
예제 #22
0
        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);
                            }
                        }
                    }
                }
            }
        }
예제 #23
0
        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"));
        }
예제 #25
0
        /// <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);
        }
예제 #26
0
        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;
                    }
                }
            }
        }
예제 #27
0
        // 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);
        }
예제 #29
0
        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());
        }
예제 #30
0
        /// <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);
                    }
                }
            }
        }