Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Accessible/Easy/Novice Mode #72

Open
DoctorGoat opened this issue Apr 4, 2023 · 1 comment
Open

Accessible/Easy/Novice Mode #72

DoctorGoat opened this issue Apr 4, 2023 · 1 comment

Comments

@DoctorGoat
Copy link

Hello! I sent Sleepey a Twitter DM for this, but I think an accessible seed mode would be neat. I have two ideas, either Guaranteed Basics for just the first three GFs with the rest being random or items in the first shop being guaranteed to include certain items (configurable?) since Magic Scroll/Draw Scroll/Item Scroll/Gambler's Spirit/Amnesia item I forget the name of would all be very welcome in a seed without guaranteed basics.

I just started a seed and was one item away from pre-Dollet Lionheart and dropped it because I couldn't find any possible way to finagle Draw out of the abilities I had ;_;

@DoctorGoat
Copy link
Author

DoctorGoat commented Apr 5, 2023

    public static List<Shop> Randomise(int seed, State settings)
    {
        var result = new List<Shop>(Shops);
        var random = new Random(seed + 8);
        //Hardcoded for testing + initial version
        List<int> guaranteedItems = new List<int>() { 46, 55, 56, 57, 58, 59, 41 };

        var pool = Item.Lookup.Values
            .Where(i => !i.KeyItem || settings.ShopKeyItems)
            .Where(i => !i.SummonItem || settings.ShopSummonItems)
            .Where(i => !i.Magazine || settings.ShopMagazines)
            .Where(i => !i.ChocoboWorld || settings.ShopChocoboWorld)
            .Select(i => i.ID).ToList();

        foreach (var s in result)
        {
            s.Items = GenerateShop(random, pool);
            //Special case for Balamb shop, cuts items until the guaranteed list fits and then adds it.
            if (s.Name == "Balamb Shop")
            {
                s.Items.RemoveRange(0, guaranteedItems.Count());
                foreach (var v in guaranteedItems)
                {
                    s.Items.Add(new ShopItem((byte)v));
                }
            }
        }
        return result;
    }

This is my first attempt at trying this. I've also added a toggle to the main xaml.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant