示例#1
0
文件: MatchAPI.cs 项目: d503e16/code
        private Role createData(ParticipantAPI p)
        {
            switch (p.Timeline.Role)
            {
            case "DUO_CARRY":
                return(createBotData(p));

            case "DUO_SUPPORT":
                return(createSupportData(p));

            case "NONE":
                return(createJungleData(p));

            case "SOLO":
                if (p.Timeline.Lane == "MIDDLE" || p.Timeline.Lane == "MID")
                {
                    return(createMidData(p));
                }
                else if (p.Timeline.Lane == "TOP")
                {
                    return(createTopData(p));
                }
                else
                {
                    throw new NullReferenceException();
                }

            default:
                throw new NullReferenceException();
            }
        }
示例#2
0
文件: MatchAPI.cs 项目: d503e16/code
 private Jungle createJungleData(ParticipantAPI p)
 {
     return(new Jungle(p.FirstBlood,
                       p.FirstTurret,
                       p.KDA,
                       getKillParticipation(p),
                       p.Stats.NeutralMinionsKilledTeamJungle,
                       p.Stats.NeutralMinionsKilledEnemyJungle));
 }
示例#3
0
文件: MatchAPI.cs 项目: d503e16/code
 private Support createSupportData(ParticipantAPI p)
 {
     return(new Support(
                p.FirstBlood,
                p.FirstTurret,
                p.KDA,
                getKillParticipation(p),
                p.Stats.Assists));
 }
示例#4
0
文件: MatchAPI.cs 项目: d503e16/code
        private long getKillParticipation(ParticipantAPI p)
        {
            var teamKills = Participants.FindAll(player => player.TeamId == p.TeamId).
                            Sum(player => player.Stats.Kills);
            var killParticipation = teamKills != 0 ?
                                    ((double)p.Stats.Kills + p.Stats.Assists) / teamKills :
                                    0;

            return(Convert.ToInt64(killParticipation * 100));
        }
示例#5
0
文件: MatchAPI.cs 项目: d503e16/code
 private Top createTopData(ParticipantAPI p)
 {
     return(new Top(p.FirstBlood,
                    p.FirstTurret,
                    p.KDA,
                    getKillParticipation(p),
                    p.LaneMinions,
                    p.Stats.TotalDamageDealtToChampions,
                    p.Stats.Assists,
                    p.Stats.Deaths));
 }
示例#6
0
文件: MatchAPI.cs 项目: d503e16/code
        private Mid createMidData(ParticipantAPI p)
        {
            long enemyCs = Participants.Find(enemy => enemy.Timeline.Lane == p.Timeline.Lane &&
                                             enemy.TeamId != p.TeamId).Stats.MinionsKilled;

            return(new Mid(p.FirstBlood,
                           p.FirstTurret,
                           p.KDA,
                           getKillParticipation(p),
                           p.Stats.MinionsKilled - enemyCs,
                           p.Stats.TotalDamageDealtToChampions,
                           p.Stats.NeutralMinionsKilledEnemyJungle));
        }
示例#7
0
文件: MatchAPI.cs 项目: d503e16/code
        private Bot createBotData(ParticipantAPI p)
        {
            var enemyCs = Participants.Find(enemy => enemy.TeamId != p.TeamId &&
                                            enemy.Timeline.Role == "DUO_CARRY").Stats.MinionsKilled;

            return(new Bot(p.FirstBlood,
                           p.FirstTurret,
                           p.KDA,
                           getKillParticipation(p),
                           p.LaneMinions,
                           p.Stats.MinionsKilled - enemyCs,
                           p.Stats.TotalDamageDealtToChampions));
        }
示例#8
0
文件: MatchAPI.cs 项目: d503e16/code
        private Participant createParticipant(ParticipantAPI p)
        {
            var summoner = ParticipantIdentities.Find(
                pId => pId.ParticipantId == p.ParticipantId).Player;

            Role role = createData(p);

            if (role != null)
            {
                var result = new Participant(
                    summoner.SummonerId, summoner.SummonerName, role);

                return(result);
            }
            return(null);
        }