public ISpeedrunEmbedGenerator CreateWorldRecordEmbed(Leaderboard leaderboard) { ResetEmbedBuilder(); var run = leaderboard.RunList[0]; var runner = leaderboard.Players.FirstOrDefault(x => x.Id == run.Run.Players[0].Id); if (run == null || runner == null) { throw new Exception(); } _embedBuilder.WithTitle( $"{leaderboard.Game.Names["international"]} {leaderboard.GetCategoryName} World Record") .WithUrl(leaderboard.WebLink) .AddField("World Record", $"**{runner.Names["international"]}:** {StringCleanerHelper.SpeedrunTimeConverter(run.Run.Time.Primary)}\n" + $"Check out the run at: {run.Run.WebLink}" ); if (leaderboard.Game.Assets.ContainsKey("cover-medium")) { _embedBuilder.WithThumbnailUrl(leaderboard.Game.Assets["cover-medium"].Uri); } if (leaderboard.Game.Assets.ContainsKey("icon")) { _embedBuilder.WithImageUrl(leaderboard.Game.Assets["icon"].Uri); } return(this); }
public ISpeedrunEmbedGenerator CreateLeaderboardEmbed(Leaderboard leaderboard) { ResetEmbedBuilder(); _embedBuilder.WithTitle( $"{leaderboard.Game.Names["international"]} {leaderboard.GetCategoryName} Leaderboard"); _embedBuilder.WithUrl(leaderboard.WebLink); var stringBuilder = new StringBuilder(); foreach (var run in leaderboard.RunList) { var player = leaderboard.Players.FirstOrDefault(x => x.Id == run.Run.Players[0]?.Id); stringBuilder.AppendLine( $"**{StringCleanerHelper.NumberToRanking(run.Place)}**: {player?.Names["international"]}" + $" {StringCleanerHelper.SpeedrunTimeConverter(run.Run.Time.Primary)}"); } _embedBuilder.AddField("Runs", stringBuilder); var icon = leaderboard.Game.Assets["icon"]; if (icon != null) { _embedBuilder.WithThumbnailUrl(icon.Uri); } return(this); }
public ILeagueEmbedGenerator CreatePerformanceEmbed(Performance performance) { ResetBuilder(); _embedBuilder.WithTitle($"Performances for patch {performance.Patch}"); foreach (var roleStatistic in performance.RoleStatistics) { var statistic = roleStatistic.Value; var stringBuilder = new StringBuilder(); stringBuilder.AppendLine("**Win-Rate**") .AppendLine( $"**Best:** {statistic.WinRate.Best.ChampionId.ToEmoji()} {statistic.WinRate.Best.Score.ToPercentage()}") .AppendLine( $"**Worst:** {statistic.WinRate.Worst.ChampionId.ToEmoji()} {statistic.WinRate.Worst.Score.ToPercentage()}") .AppendLine("**Over-all Performance**") .AppendLine( $"**Best:** {statistic.PerformanceScore.Best.ChampionId.ToEmoji()} {statistic.PerformanceScore.Best.Score.ToChampionGgScore()}") .AppendLine( $"**Worst:** {statistic.PerformanceScore.Worst.ChampionId.ToEmoji()} {statistic.PerformanceScore.Worst.Score.ToChampionGgScore()}"); _embedBuilder.AddField(StringCleanerHelper.ChampionGgRoleName(roleStatistic.Key), stringBuilder.ToString(), true); } return(this); }
public ILeagueEmbedGenerator CreateChampionDataEmbed(ChampionData championData) { ResetBuilder(); _embedBuilder.WithTitle($"{championData.ChampionId} as of patch {championData.Patch}"); var stringBuilder = new StringBuilder(); stringBuilder .AppendLine( $"**Pick Rate:** {championData.PickRate.ToPercentage()} ({StringCleanerHelper.NumberToRanking(championData.Rankings.PickRates)})") .AppendLine( $"**Win Rate:** {championData.WinRate.ToPercentage()} ({StringCleanerHelper.NumberToRanking(championData.Rankings.WinRates)})") .AppendLine( $"**Ban Rate:** {championData.BanRate.ToPercentage()} ({StringCleanerHelper.NumberToRanking(championData.Rankings.BanRates)})"); _embedBuilder.AddField("Picks/Bans", stringBuilder.ToString()); stringBuilder.Clear(); stringBuilder .AppendLine( $"**Kills:** {championData.Kills.ToChampionGgScore()} ({StringCleanerHelper.NumberToRanking(championData.Rankings.Kills)})") .AppendLine( $"**Deaths:** {championData.Deaths.ToChampionGgScore()} ({StringCleanerHelper.NumberToRanking(championData.Rankings.Deaths)})") .AppendLine( $"**Assists:** {championData.Assists.ToChampionGgScore()} ({StringCleanerHelper.NumberToRanking(championData.Rankings.Assists)})") .AppendLine($"**KDA:** {championData.Kda.ToChampionGgScore()}"); _embedBuilder.AddField("KDA", stringBuilder.ToString()); stringBuilder.Clear(); stringBuilder .AppendLine( $"**Damage done:** {championData.Damage.Total.ToChampionGgScore()} ({StringCleanerHelper.NumberToRanking(championData.Rankings.DamageDealt)})") .AppendLine( $"**True Damage:** {championData.Damage.TotalTrue.ToChampionGgScore()} ({championData.Damage.PercentageTrue.ToPercentage()})") .AppendLine( $"**Magic Damage:** {championData.Damage.TotalMagic.ToChampionGgScore()} ({championData.Damage.PercentageMagic.ToPercentage()})") .AppendLine( $"**Physical Damage:** {championData.Damage.TotalPhysical.ToChampionGgScore()} ({championData.Damage.PercentagePhysical.ToPercentage()})"); _embedBuilder.AddField("Damage", stringBuilder.ToString()); return(this); }