Exemplo n.º 1
0
        public AnalModule(Dictionary <UserSetting.SettingID, UserSetting> settings, List <WheelUserItem> items) : base(settings, items)
        {
            AnalLevel analLevel = AnalLevel.None;

            if (Settings.ContainsKey(SettingID.AnalLevel))
            {
                analLevel = Settings[SettingID.AnalLevel].GetValue <AnalLevel>();
            }

            List <WheelUserItem> toys = Items.Where(item => WheelItemExtension.GetItemCategory((WheelItemExtension.Item)item.ItemId) == WheelItemExtension.Item.Toy).ToList();

            if (analLevel == AnalLevel.None || !toys.Any())
            {
                Chance = 0;

                if (!Settings.ContainsKey(SettingID.AnalLevel))
                {
                    ((List <UserSetting.SettingID>)RequiredSettings).Add(UserSetting.SettingID.AnalLevel);
                }
            }
        }
Exemplo n.º 2
0
        public override Task Generate()
        {
            UserSetting.WheelDifficultyPreference difficulty = UserSetting.WheelDifficultyPreference.Default;
            if (Settings.ContainsKey(SettingID.WheelDifficulty))
            {
                difficulty = Settings[SettingID.WheelDifficulty].GetValue <UserSetting.WheelDifficultyPreference>();
            }

            AnalLevel analLevel = AnalLevel.None;

            if (Settings.ContainsKey(SettingID.AnalLevel))
            {
                analLevel = Settings[SettingID.AnalLevel].GetValue <AnalLevel>();
            }

            List <WheelUserItem> toys = Items.Where(item => WheelItemExtension.GetItemCategory((WheelItemExtension.Item)item.ItemId) == WheelItemExtension.Item.Toy).ToList();

            var toy = (WheelItemExtension.Item)toys[Helpers.RandomGenerator.RandomInt(0, toys.Count)].ItemId;

            var builder = new DiscordEmbedBuilder()
            {
                Title = "Backside fun"
            };

            int time = (int)difficulty * (int)analLevel;

            time = Helpers.RandomGenerator.RandomInt(time / 3 * 2, time / 3 * 4);

            switch (Helpers.RandomGenerator.RandomInt(0, 3))
            {
            case 0:
                string vibeText = "";

                if (toy == WheelItemExtension.Item.Vibrator)
                {
                    string vibeSpeed = "";

                    switch (analLevel)
                    {
                    case AnalLevel.Light:
                        vibeSpeed = "lowest";
                        break;

                    case AnalLevel.Normal:
                        vibeSpeed = "normal";
                        break;

                    case AnalLevel.Hardcore:
                        vibeSpeed = "highest";
                        break;
                    }

                    vibeText = $"Turn it on to the {vibeSpeed} setting.";
                }

                builder.Description = $"Put your {toy.ToFormattedText()} in your Ass. {vibeText}" + Environment.NewLine
                                      + $"Leave it there for the next {time * 2} minutes.";
                break;

            case 1:
                builder.Description = $"Take your {toy.ToFormattedText()}, lube it up, then shove it up your butt as fast as you can. Then take it out and give it a kiss." + Environment.NewLine
                                      + $"Do this {time} times.";
                break;

            case 2:
                builder.Description = $"Take your {toy.ToFormattedText()}, lube it up, and smack your ass with it." + Environment.NewLine
                                      + $"Do this {time} times. No cleaning up after that.";
                break;
            }

            Embed = builder.Build();

            return(Task.CompletedTask);
        }
Exemplo n.º 3
0
        public async Task OverviewAsync(CommandContext ctx)
        {
            using var context = new DiscordContext();

            DiscordEmbedBuilder builder = new DiscordEmbedBuilder()
            {
                Title = "These are all of your settings"
            };

            var settings = UserSetting.GetAllSettings(ctx.Message.Author.Id, context).ToDictionary(setting => (UserSetting.SettingID)setting.SettingId);
            var items    = await WheelItemExtension.GetUserItemsAsync(ctx.Message.Author.Id, context);

            AnalLevel analLevel = AnalLevel.None;

            if (settings.ContainsKey(SettingID.AnalLevel))
            {
                analLevel = settings[SettingID.AnalLevel].GetValue <AnalLevel>();
            }

            UserSetting.WheelDifficultyPreference wheelDifficulty = UserSetting.WheelDifficultyPreference.Default;
            if (settings.ContainsKey(SettingID.WheelDifficulty))
            {
                wheelDifficulty = settings[SettingID.WheelDifficulty].GetValue <UserSetting.WheelDifficultyPreference>();
            }

            UserSetting.WheelTaskPreferenceSetting wheelTaskPreference = UserSetting.WheelTaskPreferenceSetting.Default;
            if (settings.ContainsKey(SettingID.WheelTaskPreference))
            {
                wheelTaskPreference = settings[SettingID.WheelTaskPreference].GetValue <UserSetting.WheelTaskPreferenceSetting>();
            }

            BondageLevel bondageLevel = BondageLevel.None;

            if (settings.ContainsKey(SettingID.BondageLevel))
            {
                bondageLevel = settings[SettingID.BondageLevel].GetValue <BondageLevel>();
            }

            CBTLevel cbtLevel = CBTLevel.None;

            if (settings.ContainsKey(SettingID.CBTLevel))
            {
                cbtLevel = settings[SettingID.CBTLevel].GetValue <CBTLevel>();
            }

            DungeonDifficulty dungeonDifficulty = DungeonDifficulty.Normal;

            if (settings.ContainsKey(SettingID.DungeonDifficulty))
            {
                dungeonDifficulty = settings[SettingID.DungeonDifficulty].GetValue <DungeonDifficulty>();
            }

            //PeeLevel peeLevel = PeeLevel.None;
            //if (settings.ContainsKey(SettingID.PeeLevel))
            //{
            //    peeLevel = settings[SettingID.PeeLevel].GetValue<PeeLevel>();
            //}

            SissyLevel sissyLevel = SissyLevel.None;

            if (settings.ContainsKey(SettingID.SissyLevel))
            {
                sissyLevel = settings[SettingID.SissyLevel].GetValue <SissyLevel>();
            }

            //DegrationLevel degrationLevel = DegrationLevel.None;
            //if (settings.ContainsKey(SettingID.DegrationLevel))
            //{
            //    degrationLevel = settings[SettingID.DegrationLevel].GetValue<DegrationLevel>();
            //}

            PublicLevel publicLevel = PublicLevel.None;

            if (settings.ContainsKey(SettingID.PublicLevel))
            {
                publicLevel = settings[SettingID.PublicLevel].GetValue <PublicLevel>();
            }

            Gender gender = Gender.None;

            if (settings.ContainsKey(SettingID.Gender))
            {
                gender = settings[SettingID.Gender].GetValue <Gender>();
            }

            foreach (SettingID possibleSetting in Enum.GetValues(typeof(SettingID)))
            {
                Enum setting = null;

                switch (possibleSetting)
                {
                case SettingID.AnalLevel:
                    setting = analLevel;
                    break;

                case SettingID.BanType:
                    break;

                case SettingID.WheelDifficulty:
                    setting = wheelDifficulty;
                    break;

                case SettingID.WheelTaskPreference:
                    setting = wheelTaskPreference;
                    break;

                case SettingID.BondageLevel:
                    setting = bondageLevel;
                    break;

                case SettingID.Toys:
                    break;

                case SettingID.CBTLevel:
                    setting = cbtLevel;
                    break;

                case SettingID.DungeonDifficulty:
                    break;

                case SettingID.PeeLevel:
                    break;

                case SettingID.SissyLevel:
                    setting = sissyLevel;
                    break;

                case SettingID.DegrationLevel:
                    break;

                case SettingID.PublicLevel:
                    setting = publicLevel;
                    break;

                case SettingID.BanEnd:
                    break;

                case SettingID.Gender:
                    setting = gender;
                    break;
                }

                if (setting == null)
                {
                    continue;
                }

                var name  = possibleSetting.ToFormattedText();
                var value = $"{setting.ToFormattedText()} ({Convert.ToInt32(setting)})";

                builder.AddField(name, value, true);
            }

            await ctx.RespondAsync(embed : builder.Build());

            if (items.Any())
            {
                builder = new DiscordEmbedBuilder()
                {
                    Title = "Your Items"
                };

                foreach (var item in items.OrderBy(it => it.ItemId))
                {
                    var cItem = (WheelItemExtension.Item)item.ItemId;
                    builder.AddField(cItem.ToFormattedText(), item.ItemId.ToString());
                }

                await ctx.RespondAsync(embed : builder.Build());
            }
        }