public void LoadOptionsFromTag()
 {
     try
     {
         ModCreator.PopulateRandomizerOptionsFromUUID(this, Tag);
         this.RaisePropertyChanged("");
     }
     catch
     {
         MessageBox.Show(window, $"Provided tag \"{Tag}\" is either invalid or was created with an incompatible version of the randomizer.", "Invalid Tag", MessageBox.MessageBoxButtons.Ok);
     }
 }
    public void CreateRandomizerMod()
    {
        if (DDPath == "")
        {
            MessageBox.Show(window, "Please set the Darkest Dungeon game folder.", "Folder Not Found", MessageBox.MessageBoxButtons.Ok);
            return;
        }
        try
        {
            ReadBaseGameData();

            ModDirectory = ModCreator.CreateMod(this);
            var rand = new Random(Seed);

            new CurioShuffler(this, rand).Randomize();
            new EnemyShuffler(this, rand).Randomize();
            new HeroStatRandomizer(this, rand).Randomize();
            new CampingSkillRandomizer(this, rand).Randomize();
            new HeroSkillShuffler(this, rand).Randomize();

            Process.Start(new ProcessStartInfo("cmd.exe", $"/C echo/ | \"{Path.Combine(DDPath, "_windows", "steam_workshop_upload.exe")}\" \"{Path.Combine(ModDirectory.FullName, "project.xml")}\"")
            {
                WorkingDirectory = Path.Combine(DDPath, "_windows"),
                CreateNoWindow   = true,
                UseShellExecute  = false
            })?.WaitForExit();

            Tag = ModCreator.GetRandomizerUUID(this);
            this.RaisePropertyChanged(nameof(Tag));
            MessageBox.Show(
                window,
                $"The randomizer mod has been created. Its tag is {Tag}",
                "Randomizer Finished",
                MessageBox.MessageBoxButtons.Ok);
        }
        catch (Exception e)
        {
            Console.WriteLine(e.Message);
            Console.WriteLine(e.StackTrace);
            Console.WriteLine();

            MessageBox.Show(
                window,
                $"{e.Message}\n{e.StackTrace}",
                e.GetType().FullName ?? "Exception",
                MessageBox.MessageBoxButtons.Ok
                );
        }
    }