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(); } }
private Jungle createJungleData(ParticipantAPI p) { return(new Jungle(p.FirstBlood, p.FirstTurret, p.KDA, getKillParticipation(p), p.Stats.NeutralMinionsKilledTeamJungle, p.Stats.NeutralMinionsKilledEnemyJungle)); }
private Support createSupportData(ParticipantAPI p) { return(new Support( p.FirstBlood, p.FirstTurret, p.KDA, getKillParticipation(p), p.Stats.Assists)); }
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)); }
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)); }
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)); }
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)); }
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); }