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;
        }
Example #2
0
        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));
        }
Example #3
0
        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());
        }
Example #4
0
        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());
        }
Example #5
0
        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());
        }