Exemple #1
0
        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);
            }
        }
Exemple #2
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());
            }
        }
Exemple #3
0
        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);
        }