public async Task YeetItem([Remainder] string item) { var avatar = EntityConverter.ConvertUser(Context.User); var factory = new PlayerFighterFactory(); var p = factory.CreatePlayerFighter(avatar); var inv = avatar.Inv; var embed = new EmbedBuilder(); var it = inv.GetItem(item); if (inv.Remove(item)) { UserAccountProvider.StoreUser(avatar); var maxdist = p.Stats.Atk * Math.Sqrt(p.Stats.Spd) / Math.Log(Math.Max(it.Price / 2, 2)) / 6; var level = Math.Min(avatar.LevelNumber, 100); var a = 5 + ((double)level) / 2; var b = 55 - ((double)level) / 2; var beta = new Accord.Statistics.Distributions.Univariate.BetaDistribution(a, b); embed.WithDescription($"{Context.User.Username} yeets {it.Icon}{it.Name} {Math.Round(beta.Generate(1).FirstOrDefault() * maxdist, 2)} meters away."); embed.WithColor(it.Color); _ = Context.Channel.SendMessageAsync("", false, embed.Build()); } else { embed.WithDescription(":x: You can only get rid of unequipped items in your possession."); embed.WithColor(Colors.Get("Error")); _ = Context.Channel.SendMessageAsync("", false, embed.Build()); } await Task.CompletedTask; }
public async Task Tri([Remainder] SocketGuildUser user = null) { user = user ?? (SocketGuildUser)Context.User; var account = UserAccounts.GetAccount(user); var embed = new EmbedBuilder(); var factory = new PlayerFighterFactory(); var p = factory.CreatePlayerFighter(user); embed.WithColor(Colors.Get(account.Element.ToString())); var author = new EmbedAuthorBuilder(); author.WithName(user.DisplayName()); author.WithIconUrl(user.GetAvatarUrl()); embed.WithAuthor(author); embed.WithThumbnailUrl(user.GetAvatarUrl()); embed.AddField("Server Stats", JsonConvert.SerializeObject(account.ServerStats, Formatting.Indented).Replace("{", "").Replace("}", "").Replace("\"", "")); embed.AddField("Battle Stats", JsonConvert.SerializeObject(account.BattleStats, Formatting.Indented).Replace("{", "").Replace("}", "").Replace("\"", "")); embed.AddField("Account Created:", user.CreatedAt); embed.AddField("Unlocked Classes", account.BonusClasses.Length == 0 ? "none" : string.Join(", ", account.BonusClasses)); var Footer = new EmbedFooterBuilder(); Footer.WithText("Joined this Server on " + user.JoinedAt.Value.Date.ToString("dd-MM-yyyy")); Footer.WithIconUrl(Sprites.GetImageFromName("Iodem")); embed.WithFooter(Footer); //await Context.User.SendMessageAsync("", false, embed.Build()); await Context.Channel.SendMessageAsync("", false, embed.Build()); Console.WriteLine(JsonConvert.SerializeObject(account, Formatting.Indented)); }
public async Task Xp() { var user = (SocketGuildUser)Context.User; var account = UserAccounts.GetAccount(user); var embed = new EmbedBuilder(); var factory = new PlayerFighterFactory(); var p = factory.CreatePlayerFighter(user); embed.WithColor(Colors.Get(account.Element.ToString())); var author = new EmbedAuthorBuilder(); author.WithName(user.DisplayName()); author.WithIconUrl(user.GetAvatarUrl()); embed.WithAuthor(author); embed.AddField("Level", account.LevelNumber, true); embed.AddField("XP", account.XP, true); embed.AddField("XP to level up", Leveling.XPforNextLevel(account.XP), true); await Context.Channel.SendMessageAsync("", false, embed.Build()); }
public async Task Status([Remainder] SocketGuildUser user = null) { user = user ?? (SocketGuildUser)Context.User; var account = UserAccounts.GetAccount(user); var factory = new PlayerFighterFactory(); var p = factory.CreatePlayerFighter(user); var author = new EmbedAuthorBuilder(); author.WithName($"{user.DisplayName()}"); author.WithIconUrl(user.GetAvatarUrl()); //embed.WithThumbnailUrl(user.GetAvatarUrl()); //embed.WithDescription($"Status."); //embed.AddField("Element", account.element, true); var embed = new EmbedBuilder() .WithColor(Colors.Get(account.Element.ToString())) .WithAuthor(author) .AddField("Level", account.LevelNumber, true) .AddField("XP", $"{account.XP} - next in {Leveling.XPforNextLevel(account.XP)}", true) .AddField("Rank", UserAccounts.GetRank(user) + 1, true) .AddField("Class", account.GsClass, true) .AddField("Colosso wins | streak", $"{account.ServerStats.ColossoWins} | {account.ServerStats.ColossoHighestStreak} ", true) .AddField("Endless Streaks", $"Solo: {account.ServerStats.ColossoHighestRoundEndlessSolo} | Duo: {account.ServerStats.ColossoHighestRoundEndlessDuo} \nTrio: {account.ServerStats.ColossoHighestRoundEndlessTrio} | Quad: {account.ServerStats.ColossoHighestRoundEndlessQuad}", true) .AddField("Current Equip", account.Inv.GearToString(AdeptClassSeriesManager.GetClassSeries(account).Archtype), true) .AddField("Psynergy", p.GetMoves(false), false) .AddField("Stats", p.Stats.ToString(), true) .AddField("Elemental Stats", p.ElStats.ToString(), true) .AddField("Unlocked Classes", account.BonusClasses.Length == 0 ? "none" : string.Join(", ", account.BonusClasses)); var Footer = new EmbedFooterBuilder(); Footer.WithText("Joined this Server on " + user.JoinedAt.Value.Date.ToString("dd-MM-yyyy")); Footer.WithIconUrl(Sprites.GetImageFromName("Iodem")); embed.WithFooter(Footer); await Context.Channel.SendMessageAsync("", false, embed.Build()); }
public async Task Status([Remainder] SocketUser user = null) { user ??= Context.User; var account = EntityConverter.ConvertUser(user); var factory = new PlayerFighterFactory(); var p = factory.CreatePlayerFighter(account); var author = new EmbedAuthorBuilder(); author.WithName($"{(user is SocketGuildUser sguser ? sguser.DisplayName() : user.Username)}"); author.WithIconUrl(user.GetAvatarUrl()); var embed = new EmbedBuilder() .WithColor(Colors.Get(account.Element.ToString())) .WithAuthor(author) .WithTitle($"Level {account.LevelNumber} {account.GsClass} {string.Join("", account.TrophyCase.Trophies.Select(t => t.Icon))} (Rank {UserAccounts.GetRank(account) + 1})") .AddField("Current Equip", account.Inv.GearToString(AdeptClassSeriesManager.GetClassSeries(account).Archtype), true) .AddField("Psynergy", p.GetMoves(false), true) .AddField("Djinn", account.DjinnPocket.GetDjinns().GetDisplay(DjinnDetail.None), true) .AddField("Stats", p.Stats.ToString(), true) .AddField("Elemental Stats", p.ElStats.ToString(), true) .AddField("Unlocked Classes", account.BonusClasses.Count == 0 ? "none" : string.Join(", ", account.BonusClasses)) .AddField("XP", $"{account.XP} - next in {account.XPneeded}{(account.NewGames > 1 ? $"\n({account.TotalXP} total | {account.NewGames} resets)" : "")}", true) .AddField("Colosso wins | Dungeon Wins", $"{account.ServerStats.ColossoWins} | {account.ServerStats.DungeonsCompleted}", true) .AddField("Endless Streaks", $"Solo: {account.ServerStats.EndlessStreak.Solo} | Duo: {account.ServerStats.EndlessStreak.Duo} \nTrio: {account.ServerStats.EndlessStreak.Trio} | Quad: {account.ServerStats.EndlessStreak.Quad}", true); if (user is SocketGuildUser socketGuildUser) { var Footer = new EmbedFooterBuilder(); Footer.WithText("Joined this Server on " + socketGuildUser.JoinedAt.Value.Date.ToString("dd-MM-yyyy")); Footer.WithIconUrl(Sprites.GetImageFromName("Iodem")); embed.WithFooter(Footer); } await Context.Channel.SendMessageAsync("", false, embed.Build()); }