Exemplo n.º 1
0
        private void ApplyResultChanges(DsTimeResultValue resultvalue, DsTimeResult result)
        {
            result.Count++;
            if (resultvalue.Win)
            {
                result.Wins++;
            }
            if (resultvalue.MVP)
            {
                result.MVP++;
            }
            result.Duration += resultvalue.Duration;
            result.Kills    += resultvalue.Kills;
            result.Army     += resultvalue.Army;

            foreach (var teammate in resultvalue.Teammates)
            {
                var rteammate = result.Teammates.FirstOrDefault(f => f.Cmdr == teammate.Cmdr);
                if (rteammate == null)
                {
                    rteammate = new DsParticipant()
                    {
                        Cmdr = teammate.Cmdr
                    };
                    result.Teammates.Add(rteammate);
                }
                rteammate.Count++;
                if (teammate.Win)
                {
                    rteammate.Wins++;
                }
            }

            foreach (var opponent in resultvalue.Opponents)
            {
                var ropponent = result.Opponents.FirstOrDefault(f => f.Cmdr == opponent.Cmdr);
                if (ropponent == null)
                {
                    ropponent = new DsParticipant()
                    {
                        Cmdr = opponent.Cmdr
                    };
                    result.Opponents.Add(ropponent);
                }
                ropponent.Count++;
                if (opponent.Win)
                {
                    ropponent.Wins++;
                }
            }
        }
Exemplo n.º 2
0
        public static List <DsTimeResultValue> GetTimeResultValues(Dsreplay replay)
        {
            List <DsTimeResultValue> results = new List <DsTimeResultValue>();

            foreach (var pl in replay.Dsplayers)
            {
                var result = new DsTimeResultValue()
                {
                    Player   = pl.isPlayer,
                    Gametime = replay.Gametime,
                    Cmdr     = ((DSData.Commander)pl.Race).ToString(),
                    Opp      = ((DSData.Commander)pl.Opprace).ToString(),
                    Win      = pl.Win,
                    MVP      = pl.Killsum == replay.Maxkillsum,
                    Duration = replay.Duration,
                    Kills    = pl.Killsum,
                    Army     = pl.Army,
                };

                result.Teammates = GetTeammates(replay, pl.Realpos).Select(s => new DsParticipantsValue()
                {
                    Cmdr = ((DSData.Commander)s.Race).ToString(),
                    Win  = pl.Win,
                    // TeammateResult = result
                }).ToList();

                result.Opponents = GetOpponents(replay, pl.Realpos).Select(s => new DsParticipantsValue()
                {
                    Cmdr = ((DSData.Commander)s.Race).ToString(),
                    Win  = pl.Win,
                    // OpponentResult = result
                }).ToList();

                results.Add(result);
            }
            return(results);
        }