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); } } }
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); }
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()); } }