public void CreateSpoilerLogs() { int step_size = 11; // Calculation: 100 / (8 categories + savepath) int curr_progress = 0; // string spoilersPath = Path.Combine(Environment.CurrentDirectory, "Spoilers"); //if (Directory.Exists(spoilersPath)) { Directory.Delete(spoilersPath, true); } Directory.CreateDirectory(spoilersPath); //var timestamp = DateTime.Now.ToString("yy-MM-dd_HH-mm-ss"); var timestamp = DateTime.Now.ToString("yyyy-MM-dd HH-mm-ss"); var filename = $"{timestamp}, Seed {Properties.Settings.Default.Seed}.xlsx"; var path = Path.Combine(spoilersPath, filename); if (File.Exists(path)) { File.Delete(path); } try { using (var workbook = new XLWorkbook()) { curr_task = "Creating Spoilers - Item"; bwSpoilers.ReportProgress(curr_progress); ItemRando.CreateSpoilerLog(workbook); curr_task = "Creating Spoilers - Model"; bwSpoilers.ReportProgress(curr_progress += step_size); ModelRando.CreateSpoilerLog(workbook); curr_task = "Creating Spoilers - Module"; bwSpoilers.ReportProgress(curr_progress += step_size); ModuleRando.CreateSpoilerLog(workbook); curr_task = "Creating Spoilers - Music / Sound"; bwSpoilers.ReportProgress(curr_progress += step_size); SoundRando.CreateSpoilerLog(workbook); curr_task = "Creating Spoilers - Other"; bwSpoilers.ReportProgress(curr_progress += step_size); OtherRando.CreateSpoilerLog(workbook); curr_task = "Creating Spoilers - Text"; bwSpoilers.ReportProgress(curr_progress += step_size); TextRando.CreateSpoilerLog(workbook); curr_task = "Creating Spoilers - Texture"; bwSpoilers.ReportProgress(curr_progress += step_size); TextureRando.CreateSpoilerLog(workbook); curr_task = "Creating Spoilers - 2DA"; bwSpoilers.ReportProgress(curr_progress += step_size); TwodaRandom.CreateSpoilerLog(workbook); curr_task = "Creating Spoilers - Saving File"; bwSpoilers.ReportProgress(curr_progress += step_size); // If any worksheets have been added, save the spoiler log. if (workbook.Worksheets.Count > 0) { StringBuilder wsList = new StringBuilder(); foreach (var sheet in workbook.Worksheets) { wsList.Append($"{sheet.Name}, "); } wsList.Remove(wsList.Length - 2, 2); workbook.SaveAs(path); SpoilerCreated = true; } else { SpoilerCreated = false; SpoilerMessage = $"No spoilers created. Either the game has not been randomized, or the selected randomizations do not generate spoilers."; } } } catch (Exception e) { SpoilerCreated = false; SpoilerMessage = $"Exception caught while creating spoilers: {e.ToString()}"; } }