static void OnSpoilerLogCreationAccepted(GameSave save)
        {
            var seed = save.GetSeed();

            if (!seed.HasValue)
            {
                return;
            }

            using (var file = new StreamWriter(GetFileName(seed.Value)))
            {
                file.WriteLine($"Seed: {seed}");
                file.WriteLine($"Timespinner version: v{TimeSpinnerGame.Constants.GameVersion}");
                file.WriteLine($"TsRandomizer version: v{Assembly.GetExecutingAssembly().GetName().Version}");

                var itemLocations = Randomizer.Randomize(seed.Value, save.GetFillingMethod());

                var progressionItems = itemLocations.Where(l => l.ItemInfo.Unlocks != Requirement.None);
                var otherItems       = itemLocations.Where(l => l.ItemInfo.Unlocks == Requirement.None);

                WriteProgressionChain(file, itemLocations);
                WriteItemListSection(file, progressionItems, "Progression Items:");
                WriteItemListSection(file, otherItems, "Other Locations:");
            }
        }
        void OnSpoilerLogCreationAccepted(GameSave save)
        {
            var fillingMethod = save.GetFillingMethod();

            if (fillingMethod == FillingMethod.Archipelago)
            {
                var messageBox = MessageBox.Create(ScreenManager, "Not supported for Archipelago based seed");

                ScreenManager.AddScreen(messageBox.Screen, GameScreen.ControllingPlayer);

                return;
            }

            var seed = save.GetSeed();

            if (!seed.HasValue)
            {
                return;
            }

            using (var file = new StreamWriter(GetFileName(seed.Value)))
            {
                file.WriteLine($"Seed: {seed.Value}");
                file.WriteLine($"Timespinner version: v{TimeSpinnerGame.Constants.GameVersion}");
                file.WriteLine($"TsRandomizer version: v{Assembly.GetExecutingAssembly().GetName().Version}");

                var itemLocations = Randomizer.Randomize(seed.Value, fillingMethod, save);

                var progressionItems = itemLocations.Where(l => l.ItemInfo.Unlocks != Requirement.None);
                var otherItems       = itemLocations.Where(l => l.ItemInfo.Unlocks == Requirement.None);

                WriteProgressionChain(file, itemLocations);
                WriteItemListSection(file, progressionItems, "Progression Items:");
                WriteItemListSection(file, otherItems, "Other Locations:");
            }
        }