public SissyModule(Dictionary <UserSetting.SettingID, UserSetting> settings, List <WheelUserItem> items) : base(settings, items) { SissyLevel sissyLevel = SissyLevel.None; if (Settings.ContainsKey(SettingID.SissyLevel)) { sissyLevel = Settings[SettingID.SissyLevel].GetValue <SissyLevel>(); } if (sissyLevel == SissyLevel.None) { Chance = 0; ((List <UserSetting.SettingID>)RequiredSettings).Add(UserSetting.SettingID.SissyLevel); } }
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()); } }
public override Task Generate() { SissyLevel sissyLevel = SissyLevel.None; if (Settings.ContainsKey(SettingID.SissyLevel)) { sissyLevel = Settings[SettingID.SissyLevel].GetValue <SissyLevel>(); } PublicLevel publicLevel = PublicLevel.None; if (Settings.ContainsKey(SettingID.PublicLevel)) { publicLevel = Settings[SettingID.PublicLevel].GetValue <PublicLevel>(); } UserSetting.WheelDifficultyPreference difficulty = UserSetting.WheelDifficultyPreference.Default; if (Settings.ContainsKey(SettingID.WheelDifficulty)) { difficulty = Settings[SettingID.WheelDifficulty].GetValue <UserSetting.WheelDifficultyPreference>(); } List <WheelUserItem> clothing = Items.Where(item => WheelItemExtension.GetItemCategory((WheelItemExtension.Item)item.ItemId) == WheelItemExtension.Item.Clothing).ToList(); int maxItemCount = Convert.ToInt32((float)difficulty / 2 * (float)sissyLevel); maxItemCount = maxItemCount < 1 ? 1 : maxItemCount; int itemCount = Helpers.RandomGenerator.RandomInt(1, maxItemCount); DiscordEmbedBuilder builder = new DiscordEmbedBuilder() { Title = "Hmm, i bet you'd look cute in something else...", Description = "I want you, to put some of your clothes on. In fact, you'll dress up with your " }; for (int i = itemCount; i > 0; i--) { if (clothing.Count == 0) { break; } var item = clothing[Helpers.RandomGenerator.RandomInt(0, clothing.Count)]; string postfix = ""; postfix = i switch { 2 => " and ", 1 => ". ", _ => ", ", }; builder.Description += ((WheelItemExtension.Item)item.ItemId).ToFormattedText() + postfix; clothing.Remove(item); } if (sissyLevel >= SissyLevel.Normal) { switch (publicLevel) { case PublicLevel.None: case PublicLevel.Light: builder.Description += "When you're done, leave on everything you're comfortable with for at least 2 hours."; break; case PublicLevel.Normal: builder.Description += "When you're done, leave on everything you're comfortable with for at least 4 hours."; break; case PublicLevel.Hardcore: builder.Description += "When you're done, leave on everything for at least 6 hours."; break; } } else { builder.Description += "You can take everything off when you're done with your tasks."; } Embed = builder.Build(); return(Task.CompletedTask); }