From 633f5a9cb95233d84958f7636557da382fb1e50e Mon Sep 17 00:00:00 2001 From: Doriel Rivalet <100863878+DorielRivalet@users.noreply.github.com> Date: Mon, 10 Jul 2023 22:48:48 -0300 Subject: [PATCH] style: fix style warnings --- MHFZ_Overlay/.stylecop.json | 3 +- MHFZ_Overlay/App.xaml.cs | 3 +- MHFZ_Overlay/DataLoader.cs | 88 +- .../Models/Addresses/AddressModelHGE.cs | 655 +++- .../Models/Addresses/AddressModelNotHGE.cs | 515 ++- MHFZ_Overlay/Models/Addresses/README.md | 5 +- MHFZ_Overlay/Models/BrushAnimation.cs | 13 +- MHFZ_Overlay/Models/ButtonPress.cs | 18 +- .../Models/Constant/ApplicationPaths.cs | 6 +- MHFZ_Overlay/Models/Constant/Messages.cs | 53 +- MHFZ_Overlay/Models/Constant/Numbers.cs | 222 +- MHFZ_Overlay/Models/Constant/TimeFormats.cs | 4 +- MHFZ_Overlay/Models/FastestRun.cs | 6 +- .../Models/Mappers/AchievementsMapper.cs | 2458 +++++++----- MHFZ_Overlay/Models/Mappers/AreaIconMapper.cs | 129 +- .../BerserkRavienteTriggerEventsMapper.cs | 5 +- .../Models/Mappers/BingoMonsterMapper.cs | 16 +- .../Mappers/CatppuccinMochaColorsMapper.cs | 107 +- .../Models/Mappers/DPadImageMapper.cs | 2 +- .../Models/Mappers/DiscordServersMapper.cs | 5 +- .../Models/Mappers/GatheringMapMapper.cs | 134 +- .../Models/Mappers/JoystickImageMapper.cs | 2 +- .../Models/Mappers/MezFesMinigameMapper.cs | 2 +- .../Models/Mappers/MonsterColorMapper.cs | 410 +- .../Models/Mappers/MonsterImageMapper.cs | 161 +- MHFZ_Overlay/Models/Mappers/MonsterMapper.cs | 3 +- .../Models/Mappers/MonsterNameMapper.cs | 11 +- .../Models/Mappers/MonsterRenderMapper.cs | 394 +- .../Models/Mappers/PersonalBestsMapper.cs | 24 +- MHFZ_Overlay/Models/Mappers/PlayersMapper.cs | 7 +- .../Models/Mappers/WeaponIconsMapper.cs | 4 +- .../Models/Mappers/WeaponUsageMapper.cs | 12 +- MHFZ_Overlay/Models/Monster/MonsterInfo.cs | 15 +- MHFZ_Overlay/Models/Monster/MonsterLog.cs | 18 +- MHFZ_Overlay/Models/MonsterInfoList.cs | 2390 ++++++------ MHFZ_Overlay/Models/PartnyaBag.cs | 1 - MHFZ_Overlay/Models/PlayerInventory.cs | 1 + MHFZ_Overlay/Models/RangeValidationRule.cs | 4 +- MHFZ_Overlay/Models/RecentRuns.cs | 8 +- MHFZ_Overlay/Models/Structures/Bitfields.cs | 28 +- MHFZ_Overlay/Models/Structures/Enums.cs | 16 +- .../Converter/ConfigurationPresetConverter.cs | 1 - .../Converter/OptionToTemplateConverter.cs | 9 +- .../DataAccessLayer/DatabaseManager.cs | 673 ++-- MHFZ_Overlay/Services/Hotkey/GlobalHotkey.cs | 37 +- .../Services/Manager/AchievementManager.cs | 1070 ++++-- .../Services/Manager/ApplicationManager.cs | 5 +- .../Services/Manager/DiscordManager.cs | 322 +- MHFZ_Overlay/Services/Manager/FileManager.cs | 20 +- .../Services/Manager/LoggingManager.cs | 10 +- .../Manager/OverlaySettingsManager.cs | 19 +- .../Template/OptionTemplateSelector.cs | 1 + MHFZ_Overlay/ViewModels/AddressModel.cs | 3299 +++++++++++++---- MHFZ_Overlay/Views/ConfigWindow.xaml.cs | 624 ++-- .../CustomControls/CustomProgressBar.xaml.cs | 139 +- .../MainConfigurationActions.xaml.cs | 28 +- .../Views/CustomControls/OutlinedTextBlock.cs | 2 +- MHFZ_Overlay/Views/MainWindow.xaml.cs | 823 ++-- MHFZ_Overlay/Views/SettingsForm.xaml.cs | 29 +- 59 files changed, 9901 insertions(+), 5168 deletions(-) diff --git a/MHFZ_Overlay/.stylecop.json b/MHFZ_Overlay/.stylecop.json index 278631a1..acedb4c1 100644 --- a/MHFZ_Overlay/.stylecop.json +++ b/MHFZ_Overlay/.stylecop.json @@ -3,7 +3,8 @@ "settings": { "documentationRules": { "companyName": "The mhfz-overlay developers", - "copyrightText": " © 2023 {companyName}.\n Use of this source code is governed by a {licenseName} license that can be\n found in the LICENSE file.", + "copyrightText": "© 2023 {companyName}.\nUse of this source code is governed by a {licenseName} license that can be\nfound in the LICENSE file.", + "xmlHeader": false, "variables": { "licenseName": "MIT" } diff --git a/MHFZ_Overlay/App.xaml.cs b/MHFZ_Overlay/App.xaml.cs index a56e698f..0564f5ae 100644 --- a/MHFZ_Overlay/App.xaml.cs +++ b/MHFZ_Overlay/App.xaml.cs @@ -104,7 +104,7 @@ protected override void OnStartup(StartupEventArgs e) private static void App_DispatcherUnhandledException(object sender, DispatcherUnhandledExceptionEventArgs e) { // Log/inspect the inspection here - logger.Error(e.Exception); + logger.Error("Unhandled exception", e.Exception); } private static void SetRenderingMode(string renderingMode) @@ -185,6 +185,7 @@ private static void OnAppUninstall(SemanticVersion version, IAppTools tools) private static void OnAppRun(SemanticVersion version, IAppTools tools, bool firstRun) { tools.SetProcessAppUserModelId(); + // show a welcome message when the app is first installed if (firstRun) { diff --git a/MHFZ_Overlay/DataLoader.cs b/MHFZ_Overlay/DataLoader.cs index 40428a0f..7f9e5041 100644 --- a/MHFZ_Overlay/DataLoader.cs +++ b/MHFZ_Overlay/DataLoader.cs @@ -6,20 +6,34 @@ /* - To make the DataLoader class clearly fit into a single category in the MVVM pattern, you can refactor it by separating its responsibilities into distinct components. Here's a suggestion on how you can achieve this: + To make the DataLoader class clearly fit into a single category in the MVVM pattern, +you can refactor it by separating its responsibilities into distinct components. +Here's a suggestion on how you can achieve this: -Service/Model: Move the data loading and database management responsibilities to a dedicated service class, such as DataLoadService. This service will be responsible for initializing the DatabaseManager, checking external processes and illegal modifications, and interacting with memory addresses. It can expose methods or properties to retrieve game data or perform data-related operations. This will help separate data-related concerns from the other responsibilities of DataLoader. +Service/Model: Move the data loading and database management responsibilities to +a dedicated service class, such as DataLoadService. +This service will be responsible for initializing the DatabaseManager, +checking external processes and illegal modifications, and interacting with memory addresses. +It can expose methods or properties to retrieve game data or perform data-related operations. +This will help separate data-related concerns from the other responsibilities of DataLoader. -ViewModel: Extract the logic related to game state checks and warnings into a separate ViewModel class, such as GameStatusViewModel. This ViewModel can have properties and commands that represent the game state and provide warnings or error messages to the View based on that state. It can utilize the DataLoadService to fetch relevant game data. +ViewModel: Extract the logic related to game state checks and warnings into a separate ViewModel class, +such as GameStatusViewModel. This ViewModel can have properties and commands +that represent the game state and provide warnings or error messages to the View based on that state. +It can utilize the DataLoadService to fetch relevant game data. -View: The MainWindow.xaml and MainWindow.xaml.cs files will remain as the View components, responsible for displaying the UI and interacting with the ViewModel. +View: The MainWindow.xaml and MainWindow.xaml.cs files will remain as the View components, +responsible for displaying the UI and interacting with the ViewModel. By following this approach, you achieve a clearer separation of concerns: -The DataLoadService handles the data loading, database management, and memory address interactions (service/model). +The DataLoadService handles the data loading, database management, +and memory address interactions (service/model). The GameStatusViewModel contains the logic for game state checks and warnings (viewmodel). The MainWindow acts as the user interface (view). -This separation allows for better maintainability, testability, and adherence to the MVVM pattern. Each component has a well-defined responsibility, making it easier to understand and modify the codebase. +This separation allows for better maintainability, testability, and adherence to the MVVM pattern. +Each component has a well-defined responsibility, +making it easier to understand and modify the codebase. */ @@ -74,7 +88,7 @@ public DataLoader() // Imulion's version does not have anything in the catch block. // I'm marking this as error since overlay might interfere with custom shaders. LoggerInstance.Error(ex, "Could not create code cave"); - System.Windows.MessageBox.Show("Could not create code cave. ReShade or similar programs might trigger this error. Also make sure you are not loading the overlay when on game launcher.", Messages.ERROR_TITLE, System.Windows.MessageBoxButton.OK, System.Windows.MessageBoxImage.Error); + System.Windows.MessageBox.Show("Could not create code cave. ReShade or similar programs might trigger this error. Also make sure you are not loading the overlay when on game launcher.", Messages.ErrorTitle, System.Windows.MessageBoxButton.OK, System.Windows.MessageBoxImage.Error); } if (!isHighGradeEdition) @@ -102,7 +116,7 @@ public DataLoader() else { LoggerInstance.Fatal(CultureInfo.InvariantCulture, "Launch game first"); - System.Windows.MessageBox.Show("Please launch game first", Messages.ERROR_TITLE, System.Windows.MessageBoxButton.OK, System.Windows.MessageBoxImage.Error); + System.Windows.MessageBox.Show("Please launch game first", Messages.ErrorTitle, System.Windows.MessageBoxButton.OK, System.Windows.MessageBoxImage.Error); ApplicationManager.HandleShutdown(); } @@ -134,7 +148,7 @@ private void CheckIfLoadedOutsideQuest() if (model.QuestID() != 0) { LoggerInstance.Fatal(CultureInfo.InvariantCulture, "Loaded overlay inside quest {0}", model.QuestID()); - System.Windows.MessageBox.Show("Loaded overlay inside quest. Please load the overlay outside quests.", Messages.FATAL_TITLE, System.Windows.MessageBoxButton.OK, System.Windows.MessageBoxImage.Error); + System.Windows.MessageBox.Show("Loaded overlay inside quest. Please load the overlay outside quests.", Messages.FatalTitle, System.Windows.MessageBoxButton.OK, System.Windows.MessageBoxImage.Error); LoggingManager.WriteCrashLog(new ArgumentOutOfRangeException("Loaded overlay inside quest")); } } @@ -153,12 +167,14 @@ private void GetMHFFolderLocation() { // The "mhf.exe" process was not found LoggerInstance.Fatal(CultureInfo.InvariantCulture, "mhf.exe not found"); - MessageBox.Show("The 'mhf.exe' process was not found.", Messages.ERROR_TITLE, MessageBoxButton.OK, MessageBoxImage.Error); + MessageBox.Show("The 'mhf.exe' process was not found.", Messages.ErrorTitle, MessageBoxButton.OK, MessageBoxImage.Error); ApplicationManager.HandleShutdown(); return; } + // Get the location of the first "mhf.exe" process string? mhfPath = module.FileName; + // Get the directory that contains "mhf.exe" string? mhfDirectory = Path.GetDirectoryName(mhfPath); @@ -166,10 +182,11 @@ private void GetMHFFolderLocation() { // The "mhf.exe" process was not found LoggerInstance.Fatal(CultureInfo.InvariantCulture, "mhf.exe not found"); - MessageBox.Show("The 'mhf.exe' process was not found.", Messages.ERROR_TITLE, MessageBoxButton.OK, MessageBoxImage.Error); + MessageBox.Show("The 'mhf.exe' process was not found.", Messages.ErrorTitle, MessageBoxButton.OK, MessageBoxImage.Error); ApplicationManager.HandleShutdown(); return; } + // Save the directory to the program's settings // (Assuming you have a "settings" object that can store strings) s.GameFolderPath = mhfDirectory; @@ -199,7 +216,7 @@ private void GetMHFFolderLocation() { // The "mhf.exe" process was not found LoggerInstance.Fatal(CultureInfo.InvariantCulture, "mhf.exe not found"); - MessageBox.Show("The 'mhf.exe' process was not found.", Messages.ERROR_TITLE, MessageBoxButton.OK, MessageBoxImage.Error); + MessageBox.Show("The 'mhf.exe' process was not found.", Messages.ErrorTitle, MessageBoxButton.OK, MessageBoxImage.Error); ApplicationManager.HandleShutdown(); } } @@ -254,31 +271,36 @@ public void CheckForExternalProcesses() if (process.ProcessName == "GameOverlayUI" && !steamOverlayWarningShown) { LoggerInstance.Warn(CultureInfo.InvariantCulture, "Found Steam overlay: {0}", process.ProcessName); - var result = MessageBox.Show($"Having Steam Overlay open while MHF-Z Overlay is running may decrease performance. ({process.ProcessName} found)", Messages.WARNING_TITLE, MessageBoxButton.OK, MessageBoxImage.Warning); + var result = MessageBox.Show($"Having Steam Overlay open while MHF-Z Overlay is running may decrease performance. ({process.ProcessName} found)", Messages.WarningTitle, MessageBoxButton.OK, MessageBoxImage.Warning); if (result == MessageBoxResult.OK) { steamOverlayWarningShown = true; } + continue; } + if (allowedProcesses.Any(s => process.ProcessName.Contains(s)) && process.ProcessName != "MHFZ_Overlay") { continue; } + if (bannedProcesses.Any(s => process.ProcessName.Contains(s)) && process.ProcessName != "MHFZ_Overlay") { // processName is a substring of one of the banned process strings LoggerInstance.Fatal(CultureInfo.InvariantCulture, "Found banned process {0}", process.ProcessName); - MessageBox.Show($"Close other external programs before opening the overlay ({process.ProcessName} found)", Messages.FATAL_TITLE, MessageBoxButton.OK, MessageBoxImage.Error); + MessageBox.Show($"Close other external programs before opening the overlay ({process.ProcessName} found)", Messages.FatalTitle, MessageBoxButton.OK, MessageBoxImage.Error); // Close the overlay program ApplicationManager.HandleShutdown(); } + if (process.ProcessName == "MHFZ_Overlay") { overlayCount++; } + if (process.ProcessName == "mhf") { gameCount++; @@ -288,16 +310,17 @@ public void CheckForExternalProcesses() { // More than one "MHFZ_Overlay" process is running LoggerInstance.Fatal(CultureInfo.InvariantCulture, "Found duplicate overlay"); - MessageBox.Show("Close other instances of the overlay before opening a new one", Messages.FATAL_TITLE, MessageBoxButton.OK, MessageBoxImage.Error); + MessageBox.Show("Close other instances of the overlay before opening a new one", Messages.FatalTitle, MessageBoxButton.OK, MessageBoxImage.Error); // Close the overlay program ApplicationManager.HandleShutdown(); } + if (gameCount > 1) { // More than one game process is running LoggerInstance.Fatal(CultureInfo.InvariantCulture, "Found duplicate game"); - MessageBox.Show("Close other instances of the game before opening a new one", Messages.FATAL_TITLE, MessageBoxButton.OK, MessageBoxImage.Error); + MessageBox.Show("Close other instances of the game before opening a new one", Messages.FatalTitle, MessageBoxButton.OK, MessageBoxImage.Error); // Close the overlay program ApplicationManager.HandleShutdown(); @@ -309,7 +332,9 @@ public void CheckForExternalProcesses() public void CheckForIllegalModifications() { if (App.isClowdSquirrelUpdating) + { return; + } try { @@ -324,13 +349,14 @@ public void CheckForIllegalModifications() { // The "mhf.exe" process was not found LoggerInstance.Fatal(CultureInfo.InvariantCulture, "mhf.exe not found"); - MessageBox.Show("The 'mhf.exe' process was not found. You may have closed the game. Closing overlay.", Messages.FATAL_TITLE, MessageBoxButton.OK, MessageBoxImage.Error); + MessageBox.Show("The 'mhf.exe' process was not found. You may have closed the game. Closing overlay.", Messages.FatalTitle, MessageBoxButton.OK, MessageBoxImage.Error); ApplicationManager.HandleShutdown(); return; } // Get the location of the first "mhf.exe" process string? mhfPath = module.FileName; + // Get the directory that contains "mhf.exe" string? mhfDirectory = Path.GetDirectoryName(mhfPath); @@ -338,7 +364,7 @@ public void CheckForIllegalModifications() { // The "mhf.exe" process was not found LoggerInstance.Fatal(CultureInfo.InvariantCulture, "mhf.exe not found"); - MessageBox.Show("The 'mhf.exe' process was not found. You may have closed the game. Closing overlay.", Messages.FATAL_TITLE, MessageBoxButton.OK, MessageBoxImage.Error); + MessageBox.Show("The 'mhf.exe' process was not found. You may have closed the game. Closing overlay.", Messages.FatalTitle, MessageBoxButton.OK, MessageBoxImage.Error); ApplicationManager.HandleShutdown(); return; } @@ -353,7 +379,7 @@ public void CheckForIllegalModifications() { // The "mhf.exe" process was not found LoggerInstance.Fatal(CultureInfo.InvariantCulture, "mhf.exe not found"); - MessageBox.Show("The 'mhf.exe' process was not found. You may have closed the game. Closing overlay.", Messages.FATAL_TITLE, MessageBoxButton.OK, MessageBoxImage.Error); + MessageBox.Show("The 'mhf.exe' process was not found. You may have closed the game. Closing overlay.", Messages.FatalTitle, MessageBoxButton.OK, MessageBoxImage.Error); ApplicationManager.HandleShutdown(); } } @@ -365,14 +391,13 @@ public void CheckForIllegalModifications() public bool databaseChanged; - - #region DataLoaderVariables //needed for getting data - readonly Mem m = new(); + readonly Mem m = new (); public bool isHighGradeEdition { get; set; } int index; + /// /// Gets the model. /// @@ -381,8 +406,6 @@ public void CheckForIllegalModifications() /// public AddressModel model { get; } // TODO: fix null warning - #endregion - private static readonly DatabaseManager databaseManager = DatabaseManager.GetInstance(); /// @@ -396,10 +419,11 @@ private void CreateCodeCave(int PID) if (proc == null) { LoggerInstance.Fatal(CultureInfo.InvariantCulture, "Launch game first"); - System.Windows.MessageBox.Show("Please launch game first", Messages.ERROR_TITLE, System.Windows.MessageBoxButton.OK, System.Windows.MessageBoxImage.Error); + System.Windows.MessageBox.Show("Please launch game first", Messages.ErrorTitle, System.Windows.MessageBoxButton.OK, System.Windows.MessageBoxImage.Error); ApplicationManager.HandleShutdown(); return; } + long searchAddress = m.AoBScan("89 04 8D 00 C6 43 00 61 E9").Result.FirstOrDefault(); if (searchAddress.ToString("X8", CultureInfo.InvariantCulture) == "00000000") { @@ -432,8 +456,8 @@ private void CreateCodeCave(int PID) public string GetQuestTimeCompletion() { - double totalQuestDuration = (double)model.TimeDefInt() / Numbers.FRAMES_PER_SECOND; // Total duration of the quest in seconds - double timeRemainingInQuest = (double)model.TimeInt() / Numbers.FRAMES_PER_SECOND; // Time left in the quest in seconds + double totalQuestDuration = (double)model.TimeDefInt() / Numbers.FramesPerSecond; // Total duration of the quest in seconds + double timeRemainingInQuest = (double)model.TimeInt() / Numbers.FramesPerSecond; // Time left in the quest in seconds // Calculate the elapsed time by subtracting the time left from the total duration double elapsedTime = totalQuestDuration - timeRemainingInQuest; @@ -445,7 +469,7 @@ public string GetQuestTimeCompletion() TimeSpan timeSpan = TimeSpan.FromMilliseconds(elapsedTime); // Format the TimeSpan object as a string - string formattedTime = timeSpan.ToString(TimeFormats.MINUTES_SECONDS_MILLISECONDS, CultureInfo.InvariantCulture); + string formattedTime = timeSpan.ToString(TimeFormats.MinutesSecondsMilliseconds, CultureInfo.InvariantCulture); return formattedTime; } @@ -474,6 +498,7 @@ void WriteByteFromAddress(UIntPtr codecaveAddress, Process proc, long offset1, i Process? LoadMHFODLL(int PID) { LoggerInstance.Info(CultureInfo.InvariantCulture, "Loading MHFODLL"); + //Search and get mhfo-hd.dll module base address Process proccess = Process.GetProcessById(PID); if (proccess == null) @@ -481,13 +506,17 @@ void WriteByteFromAddress(UIntPtr codecaveAddress, Process proc, long offset1, i LoggerInstance.Warn(CultureInfo.InvariantCulture, "Process not found"); return null; } + var ModuleList = new List(); foreach (ProcessModule md in proccess.Modules) { string? moduleName = md.ModuleName; if (moduleName != null) + { ModuleList.Add(moduleName); + } } + index = ModuleList.IndexOf("mhfo-hd.dll"); if (index > 0) { @@ -503,10 +532,11 @@ void WriteByteFromAddress(UIntPtr codecaveAddress, Process proc, long offset1, i else { LoggerInstance.Fatal(CultureInfo.InvariantCulture, "Could not find game dll"); - MessageBox.Show("Could not find game dll. Make sure you start the overlay inside Mezeporta.", Messages.FATAL_TITLE, MessageBoxButton.OK, MessageBoxImage.Error); + MessageBox.Show("Could not find game dll. Make sure you start the overlay inside Mezeporta.", Messages.FatalTitle, MessageBoxButton.OK, MessageBoxImage.Error); ApplicationManager.HandleShutdown(); } } + return proccess; } } diff --git a/MHFZ_Overlay/Models/Addresses/AddressModelHGE.cs b/MHFZ_Overlay/Models/Addresses/AddressModelHGE.cs index 9693f91e..cfd733af 100644 --- a/MHFZ_Overlay/Models/Addresses/AddressModelHGE.cs +++ b/MHFZ_Overlay/Models/Addresses/AddressModelHGE.cs @@ -2,7 +2,6 @@ // Use of this source code is governed by a MIT license that can be // found in the LICENSE file. - // Most Addresses from https://github.com/suzaku01/ namespace MHFZ_Overlay.Models.Addresses; @@ -21,286 +20,547 @@ public AddressModelHGE(Mem m) : base(m) } public override int HitCountInt() => M.Read2Byte("mhfo-hd.dll+ECB2DC6"); + public override int TimeDefInt() => M.ReadInt("mhfo-hd.dll+2AFA820"); + public override int TimeInt() => M.ReadInt("mhfo-hd.dll+E7FE170"); + public override int WeaponRaw() => M.Read2Byte("mhfo-hd.dll+DC6BEFA"); //This is equipment slot number that goes from 0-255 repeatedly //"mhfo-hd.dll+ED3A466 public override int WeaponType() => M.ReadByte("mhfo-hd.dll+DC6B753"); + public override bool IsNotRoad() { return M.ReadByte("mhfo-hd.dll+DCD4490") == 0; } + public override int LargeMonster1ID() { return GetNotRoad() ? M.ReadByte("mhfo-hd.dll+1BEF3D9") : LargeMonster1Road(); } + public override int LargeMonster2ID() { return GetNotRoad() ? M.ReadByte("mhfo-hd.dll+1BEF3DA") : LargeMonster2Road(); } + public override int LargeMonster3ID() => M.ReadByte("mhfo-hd.dll+1BEF3DB"); + public override int LargeMonster4ID() => M.ReadByte("mhfo-hd.dll+1BEF3DC"); + public int LargeMonster1Road() { return M.ReadByte("mhfo-hd.dll+DCD4478"); } + public int LargeMonster2Road() { return M.ReadByte("mhfo-hd.dll+DCD4498"); } + // TODO monster parts max values public string Monster1BP1() => M.Read2Byte("mhfo-hd.dll+0E37DD38,348").ToString(CultureInfo.InvariantCulture); + public override int Monster1Part1() => M.Read2Byte("mhfo-hd.dll+0E37DD38,348"); + public string Monster1BP2() => M.Read2Byte("mhfo-hd.dll+0E37DD38,350").ToString(CultureInfo.InvariantCulture); + public override int Monster1Part2() => M.Read2Byte("mhfo-hd.dll+0E37DD38,350"); public string Monster1BP3() => M.Read2Byte("mhfo-hd.dll+0E37DD38,358").ToString(CultureInfo.InvariantCulture); + public override int Monster1Part3() => M.Read2Byte("mhfo-hd.dll+0E37DD38,358"); public string Monster1BP4() => M.Read2Byte("mhfo-hd.dll+0E37DD38,360").ToString(CultureInfo.InvariantCulture); + public override int Monster1Part4() => M.Read2Byte("mhfo-hd.dll+0E37DD38,360"); public string Monster1BP5() => M.Read2Byte("mhfo-hd.dll+0E37DD38,368").ToString(CultureInfo.InvariantCulture); + public override int Monster1Part5() => M.Read2Byte("mhfo-hd.dll+0E37DD38,368"); public string Monster1BP6() => M.Read2Byte("mhfo-hd.dll+0E37DD38,370").ToString(CultureInfo.InvariantCulture); + public override int Monster1Part6() => M.Read2Byte("mhfo-hd.dll+0E37DD38,370"); public string Monster1BP7() => M.Read2Byte("mhfo-hd.dll+0E37DD38,378").ToString(CultureInfo.InvariantCulture); + public override int Monster1Part7() => M.Read2Byte("mhfo-hd.dll+0E37DD38,378"); public string Monster1BP8() => M.Read2Byte("mhfo-hd.dll+0E37DD38,380").ToString(CultureInfo.InvariantCulture); + public override int Monster1Part8() => M.Read2Byte("mhfo-hd.dll+0E37DD38,380"); public string Monster1BP9() => M.Read2Byte("mhfo-hd.dll+0E37DD38,388").ToString(CultureInfo.InvariantCulture); + public override int Monster1Part9() => M.Read2Byte("mhfo-hd.dll+0E37DD38,388"); public string Monster1BP10() => M.Read2Byte("mhfo-hd.dll+0E37DD38,390").ToString(CultureInfo.InvariantCulture); + public override int Monster1Part10() => M.Read2Byte("mhfo-hd.dll+0E37DD38,390"); public string Monster2BP1() => M.Read2Byte("mhfo-hd.dll+0E37DD38,1238").ToString(CultureInfo.InvariantCulture); + public override int Monster2Part1() => M.Read2Byte("mhfo-hd.dll+0E37DD38,1238"); public string Monster2BP2() => M.Read2Byte("mhfo-hd.dll+0E37DD38,1240").ToString(CultureInfo.InvariantCulture); + public override int Monster2Part2() => M.Read2Byte("mhfo-hd.dll+0E37DD38,1240"); public string Monster2BP3() => M.Read2Byte("mhfo-hd.dll+0E37DD38,1248").ToString(CultureInfo.InvariantCulture); + public override int Monster2Part3() => M.Read2Byte("mhfo-hd.dll+0E37DD38,1248"); public string Monster2BP4() => M.Read2Byte("mhfo-hd.dll+0E37DD38,1250").ToString(CultureInfo.InvariantCulture); + public override int Monster2Part4() => M.Read2Byte("mhfo-hd.dll+0E37DD38,1250"); public string Monster2BP5() => M.Read2Byte("mhfo-hd.dll+0E37DD38,1258").ToString(CultureInfo.InvariantCulture); + public override int Monster2Part5() => M.Read2Byte("mhfo-hd.dll+0E37DD38,1258"); public string Monster2BP6() => M.Read2Byte("mhfo-hd.dll+0E37DD38,1260").ToString(CultureInfo.InvariantCulture); + public override int Monster2Part6() => M.Read2Byte("mhfo-hd.dll+0E37DD38,1260"); public string Monster2BP7() => M.Read2Byte("mhfo-hd.dll+0E37DD38,1268").ToString(CultureInfo.InvariantCulture); + public override int Monster2Part7() => M.Read2Byte("mhfo-hd.dll+0E37DD38,1268"); public string Monster2BP8() => M.Read2Byte("mhfo-hd.dll+0E37DD38,1270").ToString(CultureInfo.InvariantCulture); + public override int Monster2Part8() => M.Read2Byte("mhfo-hd.dll+0E37DD38,1270"); public string Monster2BP9() => M.Read2Byte("mhfo-hd.dll+0E37DD38,1278").ToString(CultureInfo.InvariantCulture); + public override int Monster2Part9() => M.Read2Byte("mhfo-hd.dll+0E37DD38,1278"); public string Monster2BP10() => M.Read2Byte("mhfo-hd.dll+0E37DD38,1280").ToString(CultureInfo.InvariantCulture); + public override int Monster2Part10() => M.Read2Byte("mhfo-hd.dll+0E37DD38,1280"); public string Monster1RoadBP1() => M.Read2Byte("mhfo-hd.dll+E37DF18,348").ToString(CultureInfo.InvariantCulture); + public string Monster1RoadBP2() => M.Read2Byte("mhfo-hd.dll+E37DF18,350").ToString(CultureInfo.InvariantCulture); + public string Monster1RoadBP3() => M.Read2Byte("mhfo-hd.dll+E37DF18,358").ToString(CultureInfo.InvariantCulture); + public string Monster1RoadBP4() => M.Read2Byte("mhfo-hd.dll+E37DF18,360").ToString(CultureInfo.InvariantCulture); + public string Monster1RoadBP5() => M.Read2Byte("mhfo-hd.dll+E37DF18,368").ToString(CultureInfo.InvariantCulture); + public string Monster1RoadBP6() => M.Read2Byte("mhfo-hd.dll+E37DF18,370").ToString(CultureInfo.InvariantCulture); + public string Monster1RoadBP7() => M.Read2Byte("mhfo-hd.dll+E37DF18,378").ToString(CultureInfo.InvariantCulture); + public string Monster1RoadBP8() => M.Read2Byte("mhfo-hd.dll+E37DF18,380").ToString(CultureInfo.InvariantCulture); + public string Monster1RoadBP9() => M.Read2Byte("mhfo-hd.dll+E37DF18,388").ToString(CultureInfo.InvariantCulture); + public string Monster1RoadBP10() => M.Read2Byte("mhfo-hd.dll+E37DF18,390").ToString(CultureInfo.InvariantCulture); + public string Monster2RoadBP1() => M.Read2Byte("mhfo-hd.dll+E37DF18,1238").ToString(CultureInfo.InvariantCulture); + public string Monster2RoadBP2() => M.Read2Byte("mhfo-hd.dll+E37DF18,1240").ToString(CultureInfo.InvariantCulture); + public string Monster2RoadBP3() => M.Read2Byte("mhfo-hd.dll+E37DF18,1248").ToString(CultureInfo.InvariantCulture); + public string Monster2RoadBP4() => M.Read2Byte("mhfo-hd.dll+E37DF18,1250").ToString(CultureInfo.InvariantCulture); + public string Monster2RoadBP5() => M.Read2Byte("mhfo-hd.dll+E37DF18,1258").ToString(CultureInfo.InvariantCulture); + public string Monster2RoadBP6() => M.Read2Byte("mhfo-hd.dll+E37DF18,1260").ToString(CultureInfo.InvariantCulture); + public string Monster2RoadBP7() => M.Read2Byte("mhfo-hd.dll+E37DF18,1268").ToString(CultureInfo.InvariantCulture); + public string Monster2RoadBP8() => M.Read2Byte("mhfo-hd.dll+E37DF18,1270").ToString(CultureInfo.InvariantCulture); + public string Monster2RoadBP9() => M.Read2Byte("mhfo-hd.dll+E37DF18,1278").ToString(CultureInfo.InvariantCulture); + public string Monster2RoadBP10() => M.Read2Byte("mhfo-hd.dll+E37DF18,1280").ToString(CultureInfo.InvariantCulture); public override int Monster1HPInt() => M.Read2Byte("0043C600"); + public override int Monster2HPInt() => M.Read2Byte("0043C604"); + public override int Monster3HPInt() => M.Read2Byte("0043C608"); + public override int Monster4HPInt() => M.Read2Byte("0043C60C"); - public override string Monster1AtkMult() { return GetNotRoad() ? M.ReadFloat("mhfo-hd.dll+0E37DD38,898").ToString(CultureInfo.InvariantCulture) : Monster1RoadAtkMult(); } - public override decimal Monster1DefMult() { return GetNotRoad() ? (decimal)M.ReadFloat("mhfo-hd.dll+0E37DD38,89C", "", false) : Monster1RoadDefMult(); } - public override int Monster1Poison() { return GetNotRoad() ? M.Read2Byte("mhfo-hd.dll+0E37DD38,88A") : Monster1RoadPoison(); } - public override int Monster1PoisonNeed() { return GetNotRoad() ? M.Read2Byte("mhfo-hd.dll+0E37DD38,888") : Monster1RoadPoisonNeed(); } - public override int Monster1Sleep() { return GetNotRoad() ? M.Read2Byte("mhfo-hd.dll+0E37DD38,86C") : Monster1RoadSleep(); } - public override int Monster1SleepNeed() { return GetNotRoad() ? M.Read2Byte("mhfo-hd.dll+0E37DD38,86A") : Monster1RoadSleepNeed(); } - public override int Monster1Para() { return GetNotRoad() ? M.Read2Byte("mhfo-hd.dll+0E37DD38,886") : Monster1RoadPara(); } - public override int Monster1ParaNeed() { return GetNotRoad() ? M.Read2Byte("mhfo-hd.dll+0E37DD38,880") : Monster1RoadParaNeed(); } - public override int Monster1Blast() { return GetNotRoad() ? M.Read2Byte("mhfo-hd.dll+0E37DD38,D4A") : Monster1RoadBlast(); } - public override int Monster1BlastNeed() { return GetNotRoad() ? M.Read2Byte("mhfo-hd.dll+0E37DD38,D48") : Monster1RoadBlastNeed(); } - public override int Monster1Stun() { return GetNotRoad() ? M.Read2Byte("mhfo-hd.dll+0E37DD38,872") : Monster1RoadStun(); } - public override int Monster1StunNeed() { return GetNotRoad() ? M.Read2Byte("mhfo-hd.dll+0E37DD38,A74") : Monster1RoadStunNeed(); } - public override string Monster1Size() { return GetNotRoad() ? M.Read2Byte("mhfo-hd.dll+2AFA784").ToString(CultureInfo.InvariantCulture) + "%" : Monster1RoadSize(); } - public override string Monster2AtkMult() { return GetNotRoad() ? M.ReadFloat("mhfo-hd.dll+0E37DD38,1788").ToString(CultureInfo.InvariantCulture) : Monster2RoadAtkMult(); } - public override decimal Monster2DefMult() { return GetNotRoad() ? (decimal)M.ReadFloat("mhfo-hd.dll+0E37DD38,178C", "", false) : Monster2RoadDefMult(); } - public override int Monster2Poison() { return GetNotRoad() ? M.Read2Byte("mhfo-hd.dll+0E37DD38,177A") : Monster2RoadPoison(); } - public override int Monster2PoisonNeed() { return GetNotRoad() ? M.Read2Byte("mhfo-hd.dll+0E37DD38,1778") : Monster2RoadPoisonNeed(); } - public override int Monster2Sleep() { return GetNotRoad() ? M.Read2Byte("mhfo-hd.dll+0E37DD38,175C") : Monster2RoadSleep(); } - public override int Monster2SleepNeed() { return GetNotRoad() ? M.Read2Byte("mhfo-hd.dll+0E37DD38,175A") : Monster2RoadSleepNeed(); } - public override int Monster2Para() { return GetNotRoad() ? M.Read2Byte("mhfo-hd.dll+0E37DD38,1776") : Monster2RoadPara(); } - public override int Monster2ParaNeed() { return GetNotRoad() ? M.Read2Byte("mhfo-hd.dll+0E37DD38,1770") : Monster2RoadParaNeed(); } - public override int Monster2Blast() { return GetNotRoad() ? M.Read2Byte("mhfo-hd.dll+0E37DD38,1C3A") : Monster2RoadBlast(); } - public override int Monster2BlastNeed() { return GetNotRoad() ? M.Read2Byte("mhfo-hd.dll+0E37DD38,1C38") : Monster2RoadBlastNeed(); } - public override int Monster2Stun() { return GetNotRoad() ? M.Read2Byte("mhfo-hd.dll+0E37DD38,1762") : Monster2RoadStun(); } - public override int Monster2StunNeed() { return GetNotRoad() ? M.Read2Byte("mhfo-hd.dll+0E37DD38,1964") : Monster2RoadStunNeed(); } - public override string Monster2Size() { return GetNotRoad() ? M.Read2Byte("mhfo-hd.dll+2AFA784").ToString(CultureInfo.InvariantCulture) + "%" : Monster2RoadSize(); } + + public override string Monster1AtkMult() + { + return GetNotRoad() ? M.ReadFloat("mhfo-hd.dll+0E37DD38,898").ToString(CultureInfo.InvariantCulture) : Monster1RoadAtkMult(); + } + + public override decimal Monster1DefMult() + { + return GetNotRoad() ? (decimal)M.ReadFloat("mhfo-hd.dll+0E37DD38,89C", "", false) : Monster1RoadDefMult(); + } + + public override int Monster1Poison() + { + return GetNotRoad() ? M.Read2Byte("mhfo-hd.dll+0E37DD38,88A") : Monster1RoadPoison(); + } + + public override int Monster1PoisonNeed() + { + return GetNotRoad() ? M.Read2Byte("mhfo-hd.dll+0E37DD38,888") : Monster1RoadPoisonNeed(); + } + + public override int Monster1Sleep() + { + return GetNotRoad() ? M.Read2Byte("mhfo-hd.dll+0E37DD38,86C") : Monster1RoadSleep(); + } + + public override int Monster1SleepNeed() + { + return GetNotRoad() ? M.Read2Byte("mhfo-hd.dll+0E37DD38,86A") : Monster1RoadSleepNeed(); + } + + public override int Monster1Para() + { + return GetNotRoad() ? M.Read2Byte("mhfo-hd.dll+0E37DD38,886") : Monster1RoadPara(); + } + + public override int Monster1ParaNeed() + { + return GetNotRoad() ? M.Read2Byte("mhfo-hd.dll+0E37DD38,880") : Monster1RoadParaNeed(); + } + + public override int Monster1Blast() + { + return GetNotRoad() ? M.Read2Byte("mhfo-hd.dll+0E37DD38,D4A") : Monster1RoadBlast(); + } + + public override int Monster1BlastNeed() + { + return GetNotRoad() ? M.Read2Byte("mhfo-hd.dll+0E37DD38,D48") : Monster1RoadBlastNeed(); + } + + public override int Monster1Stun() + { + return GetNotRoad() ? M.Read2Byte("mhfo-hd.dll+0E37DD38,872") : Monster1RoadStun(); + } + + public override int Monster1StunNeed() + { + return GetNotRoad() ? M.Read2Byte("mhfo-hd.dll+0E37DD38,A74") : Monster1RoadStunNeed(); + } + + public override string Monster1Size() + { + return GetNotRoad() ? M.Read2Byte("mhfo-hd.dll+2AFA784").ToString(CultureInfo.InvariantCulture) + "%" : Monster1RoadSize(); + } + + public override string Monster2AtkMult() + { + return GetNotRoad() ? M.ReadFloat("mhfo-hd.dll+0E37DD38,1788").ToString(CultureInfo.InvariantCulture) : Monster2RoadAtkMult(); + } + + public override decimal Monster2DefMult() + { + return GetNotRoad() ? (decimal)M.ReadFloat("mhfo-hd.dll+0E37DD38,178C", "", false) : Monster2RoadDefMult(); + } + + public override int Monster2Poison() + { + return GetNotRoad() ? M.Read2Byte("mhfo-hd.dll+0E37DD38,177A") : Monster2RoadPoison(); + } + + public override int Monster2PoisonNeed() + { + return GetNotRoad() ? M.Read2Byte("mhfo-hd.dll+0E37DD38,1778") : Monster2RoadPoisonNeed(); + } + + public override int Monster2Sleep() + { + return GetNotRoad() ? M.Read2Byte("mhfo-hd.dll+0E37DD38,175C") : Monster2RoadSleep(); + } + + public override int Monster2SleepNeed() + { + return GetNotRoad() ? M.Read2Byte("mhfo-hd.dll+0E37DD38,175A") : Monster2RoadSleepNeed(); + } + + public override int Monster2Para() + { + return GetNotRoad() ? M.Read2Byte("mhfo-hd.dll+0E37DD38,1776") : Monster2RoadPara(); + } + + public override int Monster2ParaNeed() + { + return GetNotRoad() ? M.Read2Byte("mhfo-hd.dll+0E37DD38,1770") : Monster2RoadParaNeed(); + } + + public override int Monster2Blast() + { + return GetNotRoad() ? M.Read2Byte("mhfo-hd.dll+0E37DD38,1C3A") : Monster2RoadBlast(); + } + + public override int Monster2BlastNeed() + { + return GetNotRoad() ? M.Read2Byte("mhfo-hd.dll+0E37DD38,1C38") : Monster2RoadBlastNeed(); + } + + public override int Monster2Stun() + { + return GetNotRoad() ? M.Read2Byte("mhfo-hd.dll+0E37DD38,1762") : Monster2RoadStun(); + } + + public override int Monster2StunNeed() + { + return GetNotRoad() ? M.Read2Byte("mhfo-hd.dll+0E37DD38,1964") : Monster2RoadStunNeed(); + } + + public override string Monster2Size() + { + return GetNotRoad() ? M.Read2Byte("mhfo-hd.dll+2AFA784").ToString(CultureInfo.InvariantCulture) + "%" : Monster2RoadSize(); + } + public string Monster1RoadAtkMult() => M.ReadFloat("mhfo-hd.dll+E37DF18,898").ToString(CultureInfo.InvariantCulture); + public decimal Monster1RoadDefMult() => (decimal)M.ReadFloat("mhfo-hd.dll+E37DF18,89C", "", false); + public int Monster1RoadPoison() => M.Read2Byte("mhfo-hd.dll+E37DF18,88A"); + public int Monster1RoadPoisonNeed() => M.Read2Byte("mhfo-hd.dll+E37DF18,888"); + public int Monster1RoadSleep() => M.Read2Byte("mhfo-hd.dll+E37DF18,86C"); + public int Monster1RoadSleepNeed() => M.Read2Byte("mhfo-hd.dll+E37DF18,86A"); + public int Monster1RoadPara() => M.Read2Byte("mhfo-hd.dll+E37DF18,886"); + public int Monster1RoadParaNeed() => M.Read2Byte("mhfo-hd.dll+E37DF18,880"); + public int Monster1RoadBlast() => M.Read2Byte("mhfo-hd.dll+E37DF18,D4A"); + public int Monster1RoadBlastNeed() => M.Read2Byte("mhfo-hd.dll+E37DF18,D48"); + public int Monster1RoadStun() => M.Read2Byte("mhfo-hd.dll+E37DF18,872"); + public int Monster1RoadStunNeed() => M.Read2Byte("mhfo-hd.dll+E37DF18,A74"); + public string Monster1RoadSize() => M.Read2Byte("mhfo-hd.dll+2AFA784").ToString(CultureInfo.InvariantCulture) + "%"; + public string Monster2RoadAtkMult() => M.ReadFloat("mhfo-hd.dll+E37DF18,1788").ToString(CultureInfo.InvariantCulture); + public decimal Monster2RoadDefMult() => (decimal)M.ReadFloat("mhfo-hd.dll+E37DF18,178C", "", false); + public int Monster2RoadPoison() => M.Read2Byte("mhfo-hd.dll+E37DF18,177A"); + public int Monster2RoadPoisonNeed() => M.Read2Byte("mhfo-hd.dll+E37DF18,1778"); + public int Monster2RoadSleep() => M.Read2Byte("mhfo-hd.dll+E37DF18,175C"); + public int Monster2RoadSleepNeed() => M.Read2Byte("mhfo-hd.dll+E37DF18,175A"); + public int Monster2RoadPara() => M.Read2Byte("mhfo-hd.dll+E37DF18,1776"); + public int Monster2RoadParaNeed() => M.Read2Byte("mhfo-hd.dll+E37DF18,1770"); + public int Monster2RoadBlast() => M.Read2Byte("mhfo-hd.dll+E37DF18,1C3A"); + public int Monster2RoadBlastNeed() => M.Read2Byte("mhfo-hd.dll+E37DF18,1C38"); + public int Monster2RoadStun() => M.Read2Byte("mhfo-hd.dll+E37DF18,1762"); + public int Monster2RoadStunNeed() => M.Read2Byte("mhfo-hd.dll+E37DF18,1964"); + public string Monster2RoadSize() => M.Read2Byte("mhfo-hd.dll+2AFA784").ToString(CultureInfo.InvariantCulture) + "%"; - public override int DamageDealt() => M.Read2Byte("mhfo-hd.dll+E8DCF18"); - public override int RoadSelectedMonster() => M.ReadByte("mhfo-hd.dll+E87FB04"); + public override int DamageDealt() => M.Read2Byte("mhfo-hd.dll+E8DCF18"); + public override int RoadSelectedMonster() => M.ReadByte("mhfo-hd.dll+E87FB04"); //new addresses public override int AreaID() => M.Read2Byte("mhfo-hd.dll+DC6BF48"); + public override int GRankNumber() => M.Read2Byte("mhfo-hd.dll+ED784D0"); + public override int GSR() => M.Read2Byte("mhfo-hd.dll+DC6C562"); + public override int RoadFloor() => M.Read2Byte("mhfo-hd.dll+E87FAF0"); + public override int WeaponStyle() => M.ReadByte("mhfo-hd.dll+DC6C492"); + public override int QuestID() => M.Read2Byte("mhfo-hd.dll+EBEE53C"); + public override int UrukiPachinkoFish() => M.ReadByte("mhfo-hd.dll+EE26916"); + public override int UrukiPachinkoMushroom() => M.ReadByte("mhfo-hd.dll+EE26918"); + public override int UrukiPachinkoSeed() => M.ReadByte("mhfo-hd.dll+EE2691A"); + public override int UrukiPachinkoMeat() => M.ReadByte("mhfo-hd.dll+EE26914"); + public override int UrukiPachinkoChain() => M.ReadByte("mhfo-hd.dll+EE26900"); + public override int UrukiPachinkoScore() => M.ReadInt("mhfo-hd.dll+EE2690C"); + public override int UrukiPachinkoBonusScore() => M.ReadInt("mhfo-hd.dll+EE26910"); + public override int NyanrendoScore() => M.ReadInt("mhfo-hd.dll+EE26900"); + public override int DokkanBattleCatsScore() => M.ReadInt("mhfo-hd.dll+EE268F8"); + public override int DokkanBattleCatsScale() => M.ReadByte("mhfo-hd.dll+EE26A8C"); + public override int DokkanBattleCatsShell() => M.ReadByte("mhfo-hd.dll+EE268F4"); + public override int DokkanBattleCatsCamp() => M.ReadByte("mhfo-hd.dll+EE26A8A"); + public override int GuukuScoopSmall() => M.ReadByte("mhfo-hd.dll+EE26930"); + public override int GuukuScoopMedium() => M.ReadByte("mhfo-hd.dll+EE26934"); + public override int GuukuScoopLarge() => M.ReadByte("mhfo-hd.dll+EE26938"); + public override int GuukuScoopGolden() => M.ReadByte("mhfo-hd.dll+EE2693C"); + public override int GuukuScoopScore() => M.ReadInt("mhfo-hd.dll+EE26924"); + public override int PanicHoneyScore() => M.ReadByte("mhfo-hd.dll+EE26908"); + // TODO: Volpkun Together addresses public override int Sharpness() => M.Read2Byte("mhfo-hd.dll+DC6C276"); + public override int CaravanPoints() => M.ReadInt("mhfo-hd.dll+ED3C034"); + public override int MezeportaFestivalPoints() => M.ReadInt("mhfo-hd.dll+EDBA1EC"); + public override int DivaBond() => M.Read2Byte("mhfo-hd.dll+ED3DB48"); + public override int DivaItemsGiven() => M.Read2Byte("mhfo-hd.dll+ED3DB4A"); + public override int GCP() => M.ReadInt("mhfo-hd.dll+E5075D8"); + public override int RoadPoints() => M.ReadInt("mhfo-hd.dll+ED3EB98"); + public override int ArmorColor() => M.ReadByte("mhfo-hd.dll+EDE66A8"); + public override int RaviGg() => M.ReadInt("mhfo-hd.dll+ED3E928"); + public override int Ravig() => M.ReadInt("mhfo-hd.dll+ED3AB40"); + public override int GZenny() => M.ReadInt("mhfo-hd.dll+ED3ACB4"); + public override int GuildFoodSkill() => M.Read2Byte("mhfo-hd.dll+E7FED00"); + public override int GalleryEvaluationScore() => M.ReadInt("mhfo-hd.dll+ED3D9F0"); + public override int PoogiePoints() => M.ReadByte("mhfo-hd.dll+ED3AAF0"); + public override int PoogieItemUseID() => M.Read2Byte("mhfo-hd.dll+ED8E898"); + public override int PoogieCostume() => M.ReadByte("mhfo-hd.dll+1A77AF2"); //zero-indexed public override int CaravenGemLevel() => M.ReadByte("mhfo-hd.dll+1C747F6"); - public override int RoadMaxStagesMultiplayer() => M.Read2Byte("mhfo-hd.dll+E87FB78"); + public override int RoadTotalStagesMultiplayer() => M.Read2Byte("mhfo-hd.dll+E87FB58"); + public override int RoadTotalStagesSolo() => M.Read2Byte("mhfo-hd.dll+E87FB5C"); + public override int RoadMaxStagesSolo() => M.Read2Byte("mhfo-hd.dll+E87FB80"); + public override int RoadFatalisSlain() => M.Read2Byte("mhfo-hd.dll+E87FB60"); + public override int RoadFatalisEncounters() => M.Read2Byte("mhfo-hd.dll+ED3EBBC"); + public override int FirstDistrictDuremudiraEncounters() => M.Read2Byte("mhfo-hd.dll+ED3EBB4"); + public override int FirstDistrictDuremudiraSlays() => M.Read2Byte("mhfo-hd.dll+E87FB64"); + public override int SecondDistrictDuremudiraEncounters() => M.Read2Byte("mhfo-hd.dll+ED3EBB8"); + public override int SecondDistrictDuremudiraSlays() => M.Read2Byte("mhfo-hd.dll+E87FB68"); + public override int DeliveryQuestPoints() => M.Read2Byte("mhfo-hd.dll+ED3B212"); //red is 0 public override int SharpnessLevel() => M.ReadByte("mhfo-hd.dll+DC6C27F"); + public override int PartnerLevel() => M.Read2Byte("mhfo-hd.dll+E378E3E"); // as hex public override int ObjectiveType() => M.ReadInt("mhfo-hd.dll+2AFA830"); - public override int DivaSkillUsesLeft() => M.ReadByte("mhfo-hd.dll+ED3EB0A"); + public override int HalkFullness() => M.ReadByte("mhfo-hd.dll+ED3C123"); + public override int RankBand() => M.ReadByte("mhfo-hd.dll+2AFA788"); + public override int PartnyaRankPoints() => M.ReadInt("mhfo-hd.dll+E551114"); public override int Objective1ID() => M.Read2Byte("mhfo-hd.dll+2AFA834"); + public override int Objective1Quantity() => M.Read2Byte("mhfo-hd.dll+2AFA836"); + public override int Objective1CurrentQuantityMonster() => M.Read2Byte("mhfo-hd.dll+ECB2A38"); + public override int Objective1CurrentQuantityItem() => M.Read2Byte("mhfo-hd.dll+DC6C2F2"); public override int RavienteTriggeredEvent() => M.ReadByte("mhfo-hd.dll+ED3AD66"); - public override int RavienteAreaID() => M.Read2Byte("mhfo-hd.dll+ED5F30E");//untested + + public override int RavienteAreaID() => M.Read2Byte("mhfo-hd.dll+ED5F30E"); + + //untested public override int GreatSlayingPoints() => M.ReadInt("mhfo-hd.dll+ED3AD64"); + public override int GreatSlayingPointsSaved() => M.ReadInt("mhfo-hd.dll+E77DC20"); public override int AlternativeMonster1HPInt() => 1; + public override int AlternativeMonster1AtkMult() => 1; + public override int AlternativeMonster1DefMult() => 1; + public override int AlternativeMonster1Size() => 1; public override int AlternativeMonster1Poison() => 1; + public override int AlternativeMonster1PoisonNeed() => 1; + public override int AlternativeMonster1Sleep() => 1; + public override int AlternativeMonster1SleepNeed() => 1; public override int AlternativeMonster1Para() => 1; + public override int AlternativeMonster1ParaNeed() => 1; + public override int AlternativeMonster1Blast() => 1; + public override int AlternativeMonster1BlastNeed() => 1; public override int AlternativeMonster1Stun() => 1; + public override int AlternativeMonster1StunNeed() => 1; public override int AlternativeMonster1Part1() => 1; + public override int AlternativeMonster1Part2() => 1; + public override int AlternativeMonster1Part3() => 1; + public override int AlternativeMonster1Part4() => 1; + public override int AlternativeMonster1Part5() => 1; + public override int AlternativeMonster1Part6() => 1; + public override int AlternativeMonster1Part7() => 1; + public override int AlternativeMonster1Part8() => 1; + public override int AlternativeMonster1Part9() => 1; + public override int AlternativeMonster1Part10() => 1; public override int DivaSkill() => M.ReadByte("mhfo-hd.dll+ED3EB08"); @@ -308,386 +568,707 @@ public int LargeMonster2Road() public override int StarGrades() => M.ReadByte("mhfo-hd.dll+E774CAE"); public override int CurrentFaints() => M.ReadByte("mhfo-hd.dll+DC6C35B"); + //public override int MaxFaints() => M.ReadByte("mhfo-hd.dll+C4C8FE8"); + public override int MaxFaints() => M.ReadByte("mhfo-hd.dll+2B20C0C"); + public override int AlternativeMaxFaints() => M.ReadByte("mhfo-hd.dll+2AFA814"); public override int CaravanSkill1() => M.ReadByte("mhfo-hd.dll+DC6C448"); + public override int CaravanSkill2() => M.ReadByte("mhfo-hd.dll+DC6C44A"); + public override int CaravanSkill3() => M.ReadByte("mhfo-hd.dll+DC6C44C"); + public override int CaravanScore() => M.ReadInt("mhfo-hd.dll+ED8F764"); public override int CaravanMonster1ID() => M.ReadByte("mhfo-hd.dll+2AFA834"); + //unsure public override int CaravanMonster2ID() => M.ReadByte("mhfo-hd.dll+1C41D12"); - public override int BlademasterWeaponID() => M.Read2Byte("mhfo-hd.dll+DC6BB52"); + public override int GunnerWeaponID() => M.Read2Byte("mhfo-hd.dll+DC6BB52"); + public override int WeaponDeco1ID() => M.Read2Byte("mhfo-hd.dll+DC6BB56"); + public override int WeaponDeco2ID() => M.Read2Byte("mhfo-hd.dll+DC6BB58"); + public override int WeaponDeco3ID() => M.Read2Byte("mhfo-hd.dll+DC6BB5A"); + public override int ArmorHeadID() => M.Read2Byte("mhfo-hd.dll+DC6BB12"); + public override int ArmorHeadDeco1ID() => M.Read2Byte("mhfo-hd.dll+DC6BB16"); + public override int ArmorHeadDeco2ID() => M.Read2Byte("mhfo-hd.dll+DC6BB18"); + public override int ArmorHeadDeco3ID() => M.Read2Byte("mhfo-hd.dll+DC6BB1A"); + public override int ArmorChestID() => M.Read2Byte("mhfo-hd.dll+DC6BB22"); + public override int ArmorChestDeco1ID() => M.Read2Byte("mhfo-hd.dll+DC6BB26"); + public override int ArmorChestDeco2ID() => M.Read2Byte("mhfo-hd.dll+DC6BB28"); + public override int ArmorChestDeco3ID() => M.Read2Byte("mhfo-hd.dll+DC6BB2A"); + public override int ArmorArmsID() => M.Read2Byte("mhfo-hd.dll+DC6BB32"); + public override int ArmorArmsDeco1ID() => M.Read2Byte("mhfo-hd.dll+DC6BB36"); + public override int ArmorArmsDeco2ID() => M.Read2Byte("mhfo-hd.dll+DC6BB38"); + public override int ArmorArmsDeco3ID() => M.Read2Byte("mhfo-hd.dll+DC6BB3A"); + public override int ArmorWaistID() => M.Read2Byte("mhfo-hd.dll+DC6BB42"); + public override int ArmorWaistDeco1ID() => M.Read2Byte("mhfo-hd.dll+DC6BB46"); + public override int ArmorWaistDeco2ID() => M.Read2Byte("mhfo-hd.dll+DC6BB48"); + public override int ArmorWaistDeco3ID() => M.Read2Byte("mhfo-hd.dll+DC6BB4A"); + public override int ArmorLegsID() => M.Read2Byte("mhfo-hd.dll+DC6BAF2"); + public override int ArmorLegsDeco1ID() => M.Read2Byte("mhfo-hd.dll+DC6BAF6"); + public override int ArmorLegsDeco2ID() => M.Read2Byte("mhfo-hd.dll+DC6BAF8"); + public override int ArmorLegsDeco3ID() => M.Read2Byte("mhfo-hd.dll+DC6BAFA"); + public override int Cuff1ID() => M.Read2Byte("mhfo-hd.dll+DC6C482"); + public override int Cuff2ID() => M.Read2Byte("mhfo-hd.dll+DC6C484"); + public override int TotalDefense() => M.Read2Byte("mhfo-hd.dll+DC6BEF8"); + public override int PouchItem1ID() => M.Read2Byte("mhfo-hd.dll+DC6C168"); + public override int PouchItem1Qty() => M.Read2Byte("mhfo-hd.dll+DC6C16A"); + public override int PouchItem2ID() => M.Read2Byte("mhfo-hd.dll+DC6C170"); + public override int PouchItem2Qty() => M.Read2Byte("mhfo-hd.dll+DC6C172"); + public override int PouchItem3ID() => M.Read2Byte("mhfo-hd.dll+DC6C178"); + public override int PouchItem3Qty() => M.Read2Byte("mhfo-hd.dll+DC6C17A"); + public override int PouchItem4ID() => M.Read2Byte("mhfo-hd.dll+DC6C180"); + public override int PouchItem4Qty() => M.Read2Byte("mhfo-hd.dll+DC6C182"); + public override int PouchItem5ID() => M.Read2Byte("mhfo-hd.dll+DC6C188"); + public override int PouchItem5Qty() => M.Read2Byte("mhfo-hd.dll+DC6C18A"); + public override int PouchItem6ID() => M.Read2Byte("mhfo-hd.dll+DC6C190"); + public override int PouchItem6Qty() => M.Read2Byte("mhfo-hd.dll+DC6C192"); + public override int PouchItem7ID() => M.Read2Byte("mhfo-hd.dll+DC6C198"); + public override int PouchItem7Qty() => M.Read2Byte("mhfo-hd.dll+DC6C19A"); + public override int PouchItem8ID() => M.Read2Byte("mhfo-hd.dll+DC6C1A0"); + public override int PouchItem8Qty() => M.Read2Byte("mhfo-hd.dll+DC6C1A2"); + public override int PouchItem9ID() => M.Read2Byte("mhfo-hd.dll+DC6C1A8"); + public override int PouchItem9Qty() => M.Read2Byte("mhfo-hd.dll+DC6C1AA"); + public override int PouchItem10ID() => M.Read2Byte("mhfo-hd.dll+DC6C1B0"); + public override int PouchItem10Qty() => M.Read2Byte("mhfo-hd.dll+DC6C1B2"); + public override int PouchItem11ID() => M.Read2Byte("mhfo-hd.dll+DC6C1B8"); + public override int PouchItem11Qty() => M.Read2Byte("mhfo-hd.dll+DC6C1BA"); + public override int PouchItem12ID() => M.Read2Byte("mhfo-hd.dll+DC6C1C0"); + public override int PouchItem12Qty() => M.Read2Byte("mhfo-hd.dll+DC6C1C2"); + public override int PouchItem13ID() => M.Read2Byte("mhfo-hd.dll+DC6C1C8"); + public override int PouchItem13Qty() => M.Read2Byte("mhfo-hd.dll+DC6C1CA"); + public override int PouchItem14ID() => M.Read2Byte("mhfo-hd.dll+DC6C1D0"); + public override int PouchItem14Qty() => M.Read2Byte("mhfo-hd.dll+DC6C1D2"); + public override int PouchItem15ID() => M.Read2Byte("mhfo-hd.dll+DC6C1D8"); + public override int PouchItem15Qty() => M.Read2Byte("mhfo-hd.dll+DC6C1DA"); + public override int PouchItem16ID() => M.Read2Byte("mhfo-hd.dll+DC6C1E0"); + public override int PouchItem16Qty() => M.Read2Byte("mhfo-hd.dll+DC6C1E2"); + public override int PouchItem17ID() => M.Read2Byte("mhfo-hd.dll+DC6C1E8"); + public override int PouchItem17Qty() => M.Read2Byte("mhfo-hd.dll+DC6C1EA"); + public override int PouchItem18ID() => M.Read2Byte("mhfo-hd.dll+DC6C1F0"); + public override int PouchItem18Qty() => M.Read2Byte("mhfo-hd.dll+DC6C1F2"); + public override int PouchItem19ID() => M.Read2Byte("mhfo-hd.dll+DC6C1F8"); + public override int PouchItem19Qty() => M.Read2Byte("mhfo-hd.dll+DC6C1FA"); + public override int PouchItem20ID() => M.Read2Byte("mhfo-hd.dll+DC6C200"); + public override int PouchItem20Qty() => M.Read2Byte("mhfo-hd.dll+DC6C202"); + public override int AmmoPouchItem1ID() => M.Read2Byte("mhfo-hd.dll+DC6C208"); + public override int AmmoPouchItem1Qty() => M.Read2Byte("mhfo-hd.dll+DC6C20A"); + public override int AmmoPouchItem2ID() => M.Read2Byte("mhfo-hd.dll+DC6C210"); + public override int AmmoPouchItem2Qty() => M.Read2Byte("mhfo-hd.dll+DC6C212"); + public override int AmmoPouchItem3ID() => M.Read2Byte("mhfo-hd.dll+DC6C218"); + public override int AmmoPouchItem3Qty() => M.Read2Byte("mhfo-hd.dll+DC6C21A"); + public override int AmmoPouchItem4ID() => M.Read2Byte("mhfo-hd.dll+DC6C220"); + public override int AmmoPouchItem4Qty() => M.Read2Byte("mhfo-hd.dll+DC6C222"); + public override int AmmoPouchItem5ID() => M.Read2Byte("mhfo-hd.dll+DC6C228"); + public override int AmmoPouchItem5Qty() => M.Read2Byte("mhfo-hd.dll+DC6C22A"); + public override int AmmoPouchItem6ID() => M.Read2Byte("mhfo-hd.dll+DC6C230"); + public override int AmmoPouchItem6Qty() => M.Read2Byte("mhfo-hd.dll+DC6C232"); + public override int AmmoPouchItem7ID() => M.Read2Byte("mhfo-hd.dll+DC6C238"); + public override int AmmoPouchItem7Qty() => M.Read2Byte("mhfo-hd.dll+DC6C23A"); + public override int AmmoPouchItem8ID() => M.Read2Byte("mhfo-hd.dll+DC6C240"); + public override int AmmoPouchItem8Qty() => M.Read2Byte("mhfo-hd.dll+DC6C242"); + public override int AmmoPouchItem9ID() => M.Read2Byte("mhfo-hd.dll+DC6C248"); + public override int AmmoPouchItem9Qty() => M.Read2Byte("mhfo-hd.dll+DC6C24A"); + public override int AmmoPouchItem10ID() => M.Read2Byte("mhfo-hd.dll+DC6C250"); + public override int AmmoPouchItem10Qty() => M.Read2Byte("mhfo-hd.dll+DC6C252"); //slots public override int ArmorSkill1() => M.Read2Byte("mhfo-hd.dll+DC6C31C"); + public override int ArmorSkill2() => M.Read2Byte("mhfo-hd.dll+DC6C31E"); + public override int ArmorSkill3() => M.Read2Byte("mhfo-hd.dll+DC6C320"); + public override int ArmorSkill4() => M.Read2Byte("mhfo-hd.dll+DC6C322"); + public override int ArmorSkill5() => M.Read2Byte("mhfo-hd.dll+DC6C324"); + public override int ArmorSkill6() => M.Read2Byte("mhfo-hd.dll+DC6C326"); + public override int ArmorSkill7() => M.Read2Byte("mhfo-hd.dll+DC6C328"); + public override int ArmorSkill8() => M.Read2Byte("mhfo-hd.dll+DC6C32A"); + public override int ArmorSkill9() => M.Read2Byte("mhfo-hd.dll+DC6C32C"); + public override int ArmorSkill10() => M.Read2Byte("mhfo-hd.dll+DC6C32E"); + public override int ArmorSkill11() => M.Read2Byte("mhfo-hd.dll+DC6C330"); + public override int ArmorSkill12() => M.Read2Byte("mhfo-hd.dll+DC6C332"); + public override int ArmorSkill13() => M.Read2Byte("mhfo-hd.dll+DC6C334"); + public override int ArmorSkill14() => M.Read2Byte("mhfo-hd.dll+DC6C336"); + public override int ArmorSkill15() => M.Read2Byte("mhfo-hd.dll+DC6C338"); + public override int ArmorSkill16() => M.Read2Byte("mhfo-hd.dll+DC6C33A"); + public override int ArmorSkill17() => M.Read2Byte("mhfo-hd.dll+DC6C33C"); + public override int ArmorSkill18() => M.Read2Byte("mhfo-hd.dll+DC6C33E"); + public override int ArmorSkill19() => M.Read2Byte("mhfo-hd.dll+DC6C340"); public override int BloatedWeaponAttack() => M.Read2Byte("mhfo-hd.dll+E7FE4F0"); public override int ZenithSkill1() => M.Read2Byte("mhfo-hd.dll+DCD1DC8"); + public override int ZenithSkill2() => M.Read2Byte("mhfo-hd.dll+DCD1DCA"); + public override int ZenithSkill3() => M.Read2Byte("mhfo-hd.dll+DCD1DCC"); + public override int ZenithSkill4() => M.Read2Byte("mhfo-hd.dll+DCD1DCE"); + public override int ZenithSkill5() => M.Read2Byte("mhfo-hd.dll+DCD1DD0"); + public override int ZenithSkill6() => M.Read2Byte("mhfo-hd.dll+DCD1DD2"); + public override int ZenithSkill7() => M.Read2Byte("mhfo-hd.dll+DCD1DD4"); public override int AutomaticSkillWeapon() => M.Read2Byte("mhfo-hd.dll+DC6C352"); + public override int AutomaticSkillHead() => M.Read2Byte("mhfo-hd.dll+DC6C34A"); + public override int AutomaticSkillChest() => M.Read2Byte("mhfo-hd.dll+DC6C34C"); + public override int AutomaticSkillArms() => M.Read2Byte("mhfo-hd.dll+DC6C34E"); + public override int AutomaticSkillWaist() => M.Read2Byte("mhfo-hd.dll+DC6C350"); + public override int AutomaticSkillLegs() => M.Read2Byte("mhfo-hd.dll+DC6C346"); public override int StyleRank1() => M.ReadByte("mhfo-hd.dll+DC6C493"); + public override int StyleRank2() => M.ReadByte("mhfo-hd.dll+DC6C55F"); public override int GRWeaponLv() => M.ReadByte("mhfo-hd.dll+DC6BB54"); + public override int GRWeaponLvBowguns() => M.ReadByte("mhfo-hd.dll+DC6BB55"); public override int Sigil1Name1() => M.Read2Byte("mhfo-hd.dll+E830E14"); + public override int Sigil1Value1() => M.Read2Byte("mhfo-hd.dll+E830E1A"); + public override int Sigil1Name2() => M.Read2Byte("mhfo-hd.dll+E830E16"); + public override int Sigil1Value2() => M.Read2Byte("mhfo-hd.dll+E830E1C"); + public override int Sigil1Name3() => M.Read2Byte("mhfo-hd.dll+E830E18"); + public override int Sigil1Value3() => M.Read2Byte("mhfo-hd.dll+E830E1E"); + public override int Sigil2Name1() => M.Read2Byte("mhfo-hd.dll+E830E20"); + public override int Sigil2Value1() => M.Read2Byte("mhfo-hd.dll+E830E26"); + public override int Sigil2Name2() => M.Read2Byte("mhfo-hd.dll+E830E22"); + public override int Sigil2Value2() => M.Read2Byte("mhfo-hd.dll+E830E28"); + public override int Sigil2Name3() => M.Read2Byte("mhfo-hd.dll+E830E24"); + public override int Sigil2Value3() => M.Read2Byte("mhfo-hd.dll+E830E2A"); + public override int Sigil3Name1() => M.Read2Byte("mhfo-hd.dll+E831234"); + public override int Sigil3Value1() => M.Read2Byte("mhfo-hd.dll+E83123A"); + public override int Sigil3Name2() => M.Read2Byte("mhfo-hd.dll+E831236"); + public override int Sigil3Value2() => M.Read2Byte("mhfo-hd.dll+E83123C"); + public override int Sigil3Name3() => M.Read2Byte("mhfo-hd.dll+E831238"); + public override int Sigil3Value3() => M.Read2Byte("mhfo-hd.dll+E83123E"); public override int RathianHunted() => M.Read2Byte("mhfo-hd.dll+ED3E1AE"); + public override int FatalisHunted() => M.Read2Byte("mhfo-hd.dll+ED3E1B0"); + public override int KelbiHunted() => M.Read2Byte("mhfo-hd.dll+ED3E1B2"); + public override int MosswineHunted() => M.Read2Byte("mhfo-hd.dll+ED3E1B4"); + public override int BullfangoHunted() => M.Read2Byte("mhfo-hd.dll+ED3E1B6"); public override int YianKutKuHunted() => M.Read2Byte("mhfo-hd.dll+ED3E1B8"); + public override int LaoShanLungHunted() => M.Read2Byte("mhfo-hd.dll+ED3E1BA"); + public override int CephadromeHunted() => M.Read2Byte("mhfo-hd.dll+ED3E1BC"); + public override int FelyneHunted() => M.Read2Byte("mhfo-hd.dll+ED3E1BE"); + public override int RathalosHunted() => M.Read2Byte("mhfo-hd.dll+ED3E1C2"); + public override int AptonothHunted() => M.Read2Byte("mhfo-hd.dll+ED3E1C4"); + public override int GenpreyHunted() => M.Read2Byte("mhfo-hd.dll+ED3E1C6"); + public override int DiablosHunted() => M.Read2Byte("mhfo-hd.dll+ED3E1C8"); + public override int KhezuHunted() => M.Read2Byte("mhfo-hd.dll+ED3E1CA"); + public override int VelocipreyHunted() => M.Read2Byte("mhfo-hd.dll+ED3E1CC"); + public override int GraviosHunted() => M.Read2Byte("mhfo-hd.dll+ED3E1CE"); + public override int VespoidHunted() => M.Read2Byte("mhfo-hd.dll+ED3E1D2"); + public override int GypcerosHunted() => M.Read2Byte("mhfo-hd.dll+ED3E1D4"); + public override int PlesiothHunted() => M.Read2Byte("mhfo-hd.dll+ED3E1D6"); + public override int BasariosHunted() => M.Read2Byte("mhfo-hd.dll+ED3E1D8"); + public override int MelynxHunted() => M.Read2Byte("mhfo-hd.dll+ED3E1DA"); + public override int HornetaurHunted() => M.Read2Byte("mhfo-hd.dll+ED3E1DC"); + public override int ApcerosHunted() => M.Read2Byte("mhfo-hd.dll+ED3E1DE"); + public override int MonoblosHunted() => M.Read2Byte("mhfo-hd.dll+ED3E1E0"); + public override int VelocidromeHunted() => M.Read2Byte("mhfo-hd.dll+ED3E1E2"); + public override int GendromeHunted() => M.Read2Byte("mhfo-hd.dll+ED3E1E4"); + public override int RocksHunted() => M.Read2Byte("mhfo-hd.dll+ED3E1E6"); + public override int IopreyHunted() => M.Read2Byte("mhfo-hd.dll+ED3E1E8"); + public override int IodromeHunted() => M.Read2Byte("mhfo-hd.dll+ED3E1EA"); + public override int KirinHunted() => M.Read2Byte("mhfo-hd.dll+ED3E1EE"); + public override int CephalosHunted() => M.Read2Byte("mhfo-hd.dll+ED3E1F0"); public override int GiapreyHunted() => M.Read2Byte("mhfo-hd.dll+ED3E1F2"); + public override int CrimsonFatalisHunted() => M.Read2Byte("mhfo-hd.dll+ED3E1F4"); + public override int PinkRathianHunted() => M.Read2Byte("mhfo-hd.dll+ED3E1F6"); + public override int BlueYianKutKuHunted() => M.Read2Byte("mhfo-hd.dll+ED3E1F8"); + public override int PurpleGypcerosHunted() => M.Read2Byte("mhfo-hd.dll+ED3E1FA"); + public override int YianGarugaHunted() => M.Read2Byte("mhfo-hd.dll+ED3E1FC"); + public override int SilverRathalosHunted() => M.Read2Byte("mhfo-hd.dll+ED3E1FE"); + public override int GoldRathianHunted() => M.Read2Byte("mhfo-hd.dll+ED3E200"); + public override int BlackDiablosHunted() => M.Read2Byte("mhfo-hd.dll+ED3E202"); + public override int WhiteMonoblosHunted() => M.Read2Byte("mhfo-hd.dll+ED3E204"); + public override int RedKhezuHunted() => M.Read2Byte("mhfo-hd.dll+ED3E206"); + public override int GreenPlesiothHunted() => M.Read2Byte("mhfo-hd.dll+ED3E208"); + public override int BlackGraviosHunted() => M.Read2Byte("mhfo-hd.dll+ED3E20A"); + public override int DaimyoHermitaurHunted() => M.Read2Byte("mhfo-hd.dll+ED3E20C"); + public override int AzureRathalosHunted() => M.Read2Byte("mhfo-hd.dll+ED3E20E"); + public override int AshenLaoShanLungHunted() => M.Read2Byte("mhfo-hd.dll+ED3E210"); + public override int BlangongaHunted() => M.Read2Byte("mhfo-hd.dll+ED3E212"); + public override int CongalalaHunted() => M.Read2Byte("mhfo-hd.dll+ED3E214"); + public override int RajangHunted() => M.Read2Byte("mhfo-hd.dll+ED3E216"); public override int KushalaDaoraHunted() => M.Read2Byte("mhfo-hd.dll+ED3E218"); + public override int ShenGaorenHunted() => M.Read2Byte("mhfo-hd.dll+ED3E21A"); + public override int GreatThunderbugHunted() => M.Read2Byte("mhfo-hd.dll+ED3E21C"); public override int ShakalakaHunted() => M.Read2Byte("mhfo-hd.dll+ED3E21E"); + public override int YamaTsukamiHunted() => M.Read2Byte("mhfo-hd.dll+ED3E220"); + public override int ChameleosHunted() => M.Read2Byte("mhfo-hd.dll+ED3E222"); + public override int RustedKushalaDaoraHunted() => M.Read2Byte("mhfo-hd.dll+ED3E224"); + public override int BlangoHunted() => M.Read2Byte("mhfo-hd.dll+ED3E226"); + public override int CongaHunted() => M.Read2Byte("mhfo-hd.dll+ED3E228"); + public override int RemobraHunted() => M.Read2Byte("mhfo-hd.dll+ED3E22A"); + public override int LunastraHunted() => M.Read2Byte("mhfo-hd.dll+ED3E22C"); + public override int TeostraHunted() => M.Read2Byte("mhfo-hd.dll+ED3E22E"); + public override int HermitaurHunted() => M.Read2Byte("mhfo-hd.dll+ED3E230"); + public override int ShogunCeanataurHunted() => M.Read2Byte("mhfo-hd.dll+ED3E232"); + public override int BulldromeHunted() => M.Read2Byte("mhfo-hd.dll+ED3E234"); + public override int AntekaHunted() => M.Read2Byte("mhfo-hd.dll+ED3E236"); + public override int PopoHunted() => M.Read2Byte("mhfo-hd.dll+ED3E238"); + public override int WhiteFatalisHunted() => M.Read2Byte("mhfo-hd.dll+ED3E23A"); public override int CeanataurHunted() => M.Read2Byte("mhfo-hd.dll+ED3E23E"); + public override int HypnocHunted() => M.Read2Byte("mhfo-hd.dll+ED3E240"); + public override int VolganosHunted() => M.Read2Byte("mhfo-hd.dll+ED3E242"); + public override int TigrexHunted() => M.Read2Byte("mhfo-hd.dll+ED3E244"); + public override int AkantorHunted() => M.Read2Byte("mhfo-hd.dll+ED3E246"); + public override int BrightHypnocHunted() => M.Read2Byte("mhfo-hd.dll+ED3E248"); + public override int RedVolganosHunted() => M.Read2Byte("mhfo-hd.dll+ED3E24A"); + public override int EspinasHunted() => M.Read2Byte("mhfo-hd.dll+ED3E24C"); + public override int OrangeEspinasHunted() => M.Read2Byte("mhfo-hd.dll+ED3E24E"); + public override int SilverHypnocHunted() => M.Read2Byte("mhfo-hd.dll+ED3E250"); + public override int AkuraVashimuHunted() => M.Read2Byte("mhfo-hd.dll+ED3E252"); + public override int AkuraJebiaHunted() => M.Read2Byte("mhfo-hd.dll+ED3E254"); public override int BerukyurosuHunted() => M.Read2Byte("mhfo-hd.dll+ED3E256"); + public override int CactusHunted() => M.Read2Byte("mhfo-hd.dll+ED3E258"); + public override int GorgeObjectsHunted() => M.Read2Byte("mhfo-hd.dll+ED3E25A"); + public override int PariapuriaHunted() => M.Read2Byte("mhfo-hd.dll+ED3E25E"); + public override int WhiteEspinasHunted() => M.Read2Byte("mhfo-hd.dll+ED3E260"); + public override int KamuOrugaronHunted() => M.Read2Byte("mhfo-hd.dll+ED3E262"); + public override int NonoOrugaronHunted() => M.Read2Byte("mhfo-hd.dll+ED3E264"); + public override int DyuragauaHunted() => M.Read2Byte("mhfo-hd.dll+ED3E268"); + public override int DoragyurosuHunted() => M.Read2Byte("mhfo-hd.dll+ED3E26A"); + public override int GurenzeburuHunted() => M.Read2Byte("mhfo-hd.dll+ED3E26C"); + public override int BurukkuHunted() => M.Read2Byte("mhfo-hd.dll+ED3E26E"); + public override int ErupeHunted() => M.Read2Byte("mhfo-hd.dll+ED3E270"); + public override int RukodioraHunted() => M.Read2Byte("mhfo-hd.dll+ED3E272"); + public override int UnknownHunted() => M.Read2Byte("mhfo-hd.dll+ED3E274"); + public override int GogomoaHunted() => M.Read2Byte("mhfo-hd.dll+ED3E276"); + public override int TaikunZamuzaHunted() => M.Read2Byte("mhfo-hd.dll+ED3E27A"); + public override int AbioruguHunted() => M.Read2Byte("mhfo-hd.dll+ED3E27C"); + public override int KuarusepusuHunted() => M.Read2Byte("mhfo-hd.dll+ED3E27E"); + public override int OdibatorasuHunted() => M.Read2Byte("mhfo-hd.dll+ED3E280"); + public override int DisufiroaHunted() => M.Read2Byte("mhfo-hd.dll+ED3E282"); + public override int RebidioraHunted() => M.Read2Byte("mhfo-hd.dll+ED3E284"); + public override int AnorupatisuHunted() => M.Read2Byte("mhfo-hd.dll+ED3E286"); + public override int HyujikikiHunted() => M.Read2Byte("mhfo-hd.dll+ED3E288"); + public override int MidogaronHunted() => M.Read2Byte("mhfo-hd.dll+ED3E28A"); + public override int GiaoruguHunted() => M.Read2Byte("mhfo-hd.dll+ED3E28C"); + public override int MiRuHunted() => M.Read2Byte("mhfo-hd.dll+ED3E28E"); + public override int FarunokkuHunted() => M.Read2Byte("mhfo-hd.dll+ED3E290"); + public override int PokaradonHunted() => M.Read2Byte("mhfo-hd.dll+ED3E292"); + public override int ShantienHunted() => M.Read2Byte("mhfo-hd.dll+ED3E294"); + public override int PokaraHunted() => M.Read2Byte("mhfo-hd.dll+ED3E296"); + public override int GoruganosuHunted() => M.Read2Byte("mhfo-hd.dll+ED3E29A"); + public override int AruganosuHunted() => M.Read2Byte("mhfo-hd.dll+ED3E29C"); + public override int BaruragaruHunted() => M.Read2Byte("mhfo-hd.dll+ED3E29E"); + public override int ZerureusuHunted() => M.Read2Byte("mhfo-hd.dll+ED3E2A0"); + public override int GougarfHunted() => M.Read2Byte("mhfo-hd.dll+ED3E2A2"); + public override int UrukiHunted() => M.Read2Byte("mhfo-hd.dll+ED3E2A4"); + public override int ForokururuHunted() => M.Read2Byte("mhfo-hd.dll+ED3E2A6"); + public override int MeraginasuHunted() => M.Read2Byte("mhfo-hd.dll+ED3E2A8"); + public override int DiorexHunted() => M.Read2Byte("mhfo-hd.dll+ED3E2AA"); + public override int GarubaDaoraHunted() => M.Read2Byte("mhfo-hd.dll+ED3E2AC"); + public override int InagamiHunted() => M.Read2Byte("mhfo-hd.dll+ED3E2AE"); + public override int VarusaburosuHunted() => M.Read2Byte("mhfo-hd.dll+ED3E2B0"); + public override int PoborubarumuHunted() => M.Read2Byte("mhfo-hd.dll+ED3E2B2"); public override int GureadomosuHunted() => M.Read2Byte("mhfo-hd.dll+ED3E2C2"); + public override int HarudomeruguHunted() => M.Read2Byte("mhfo-hd.dll+ED3E2C4"); + public override int ToridclessHunted() => M.Read2Byte("mhfo-hd.dll+ED3E2C6"); + public override int GasurabazuraHunted() => M.Read2Byte("mhfo-hd.dll+ED3E2C8"); + public override int KusubamiHunted() => M.Read2Byte("mhfo-hd.dll+ED3E2CA"); + public override int YamaKuraiHunted() => M.Read2Byte("mhfo-hd.dll+ED3E2CC"); + public override int ZinogreHunted() => M.Read2Byte("mhfo-hd.dll+ED3E2D0"); + public override int DeviljhoHunted() => M.Read2Byte("mhfo-hd.dll+ED3E2D2"); + public override int BrachydiosHunted() => M.Read2Byte("mhfo-hd.dll+ED3E2D4"); + public override int ToaTesukatoraHunted() => M.Read2Byte("mhfo-hd.dll+ED3E2D8"); + public override int BariothHunted() => M.Read2Byte("mhfo-hd.dll+ED3E2DA"); + public override int UragaanHunted() => M.Read2Byte("mhfo-hd.dll+ED3E2DC"); + public override int StygianZinogreHunted() => M.Read2Byte("mhfo-hd.dll+ED3E2DE"); + public override int GuanzorumuHunted() => M.Read2Byte("mhfo-hd.dll+ED3E2E0"); + public override int StarvingDeviljhoHunted() => M.Read2Byte("mhfo-hd.dll+ED3E2E2"); + public override int VoljangHunted() => M.Read2Byte("mhfo-hd.dll+ED3E2E8"); + public override int NargacugaHunted() => M.Read2Byte("mhfo-hd.dll+ED3E2EA"); + public override int KeoaruboruHunted() => M.Read2Byte("mhfo-hd.dll+ED3E2EC"); + public override int ZenaserisuHunted() => M.Read2Byte("mhfo-hd.dll+ED3E2EE"); + public override int GoreMagalaHunted() => M.Read2Byte("mhfo-hd.dll+ED3E2F0"); + public override int BlinkingNargacugaHunted() => M.Read2Byte("mhfo-hd.dll+ED3E2F2"); + public override int ShagaruMagalaHunted() => M.Read2Byte("mhfo-hd.dll+ED3E2F4"); + public override int AmatsuHunted() => M.Read2Byte("mhfo-hd.dll+ED3E2F6"); + public override int ElzelionHunted() => M.Read2Byte("mhfo-hd.dll+ED3E2F8"); + public override int ArrogantDuremudiraHunted() => M.Read2Byte("mhfo-hd.dll+ED3E2FA"); + public override int SeregiosHunted() => M.Read2Byte("mhfo-hd.dll+ED3E2FE"); + public override int BogabadorumuHunted() => M.Read2Byte("mhfo-hd.dll+ED3E300"); + public override int BlitzkriegBogabadorumuHunted() => M.Read2Byte("mhfo-hd.dll+ED3E304"); - public override int SparklingZerureusuHunted() => M.Read2Byte("mhfo-hd.dll+ED3E308"); - public override int PSO2RappyHunted() => M.Read2Byte("mhfo-hd.dll+ED3E30A"); - public override int KingShakalakaHunted() => M.Read2Byte("mhfo-hd.dll+ED3E30C");// + public override int SparklingZerureusuHunted() => M.Read2Byte("mhfo-hd.dll+ED3E308"); + public override int PSO2RappyHunted() => M.Read2Byte("mhfo-hd.dll+ED3E30A"); + public override int KingShakalakaHunted() => M.Read2Byte("mhfo-hd.dll+ED3E30C"); +// public override int QuestState() => M.ReadByte("mhfo-hd.dll+ED52892"); public override int RoadDureSkill1Name() => M.ReadByte("mhfo-hd.dll+ED3E7DC"); + public override int RoadDureSkill1Level() => M.ReadByte("mhfo-hd.dll+ED3E7DE"); + public override int RoadDureSkill2Name() => M.ReadByte("mhfo-hd.dll+ED3E7E0"); + public override int RoadDureSkill2Level() => M.ReadByte("mhfo-hd.dll+ED3E7E2"); + public override int RoadDureSkill3Name() => M.ReadByte("mhfo-hd.dll+ED3E7E4"); + public override int RoadDureSkill3Level() => M.ReadByte("mhfo-hd.dll+ED3E7E6"); + public override int RoadDureSkill4Name() => M.ReadByte("mhfo-hd.dll+ED3E7E8"); + public override int RoadDureSkill4Level() => M.ReadByte("mhfo-hd.dll+ED3E7EA"); + public override int RoadDureSkill5Name() => M.ReadByte("mhfo-hd.dll+ED3E7EC"); + public override int RoadDureSkill5Level() => M.ReadByte("mhfo-hd.dll+ED3E7EE"); + public override int RoadDureSkill6Name() => M.ReadByte("mhfo-hd.dll+ED3E7F0"); + public override int RoadDureSkill6Level() => M.ReadByte("mhfo-hd.dll+ED3E7F2"); + public override int RoadDureSkill7Name() => M.ReadByte("mhfo-hd.dll+ED3E7F4"); + public override int RoadDureSkill7Level() => M.ReadByte("mhfo-hd.dll+ED3E7F6"); + public override int RoadDureSkill8Name() => M.ReadByte("mhfo-hd.dll+ED3E7F8"); + public override int RoadDureSkill8Level() => M.ReadByte("mhfo-hd.dll+ED3E7FA"); + public override int RoadDureSkill9Name() => M.ReadByte("mhfo-hd.dll+ED3E7FC"); + public override int RoadDureSkill9Level() => M.ReadByte("mhfo-hd.dll+ED3E7FE"); + public override int RoadDureSkill10Name() => M.ReadByte("mhfo-hd.dll+ED3E800"); + public override int RoadDureSkill10Level() => M.ReadByte("mhfo-hd.dll+ED3E802"); + public override int RoadDureSkill11Name() => M.ReadByte("mhfo-hd.dll+ED3E804"); + public override int RoadDureSkill11Level() => M.ReadByte("mhfo-hd.dll+ED3E806"); + public override int RoadDureSkill12Name() => M.ReadByte("mhfo-hd.dll+ED3E808"); + public override int RoadDureSkill12Level() => M.ReadByte("mhfo-hd.dll+ED3E80A"); + public override int RoadDureSkill13Name() => M.ReadByte("mhfo-hd.dll+ED3E80C"); + public override int RoadDureSkill13Level() => M.ReadByte("mhfo-hd.dll+ED3E80E"); + public override int RoadDureSkill14Name() => M.ReadByte("mhfo-hd.dll+ED3E810"); + public override int RoadDureSkill14Level() => M.ReadByte("mhfo-hd.dll+ED3E812"); + public override int RoadDureSkill15Name() => M.ReadByte("mhfo-hd.dll+ED3E814"); + public override int RoadDureSkill15Level() => M.ReadByte("mhfo-hd.dll+ED3E816"); + public override int RoadDureSkill16Name() => M.ReadByte("mhfo-hd.dll+ED3E818"); + public override int RoadDureSkill16Level() => M.ReadByte("mhfo-hd.dll+ED3E81A"); public override int PartySize() => M.ReadByte("mhfo-hd.dll+E3CE388"); + public override int PartySizeMax() => M.ReadByte("mhfo-hd.dll+EDF0828"); public override uint GSRP() => 1; + public override uint GRP() => 1; public override int HunterHP() => M.Read2Byte("mhfo-hd.dll+E7FE178"); + public override int HunterStamina() => M.Read2Byte("mhfo-hd.dll+DC6BF4C"); //farcaster doesnt count as used public override int QuestItemsUsed() => M.Read2Byte("mhfo-hd.dll+E4229E4"); + public override int AreaHitsTakenBlocked() => M.Read2Byte("mhfo-hd.dll+DC6BC38"); public override int PartnyaBagItem1ID() => M.Read2Byte("mhfo-hd.dll+E37D348"); + public override int PartnyaBagItem1Qty() => M.Read2Byte("mhfo-hd.dll+E37D34A"); public override int PartnyaBagItem2ID() => M.Read2Byte("mhfo-hd.dll+E37D34C"); @@ -725,6 +1306,4 @@ public int LargeMonster2Road() public override int PartnyaBagItem10ID() => M.Read2Byte("mhfo-hd.dll+E37D36C"); public override int PartnyaBagItem10Qty() => M.Read2Byte("mhfo-hd.dll+E37D36E"); - - } diff --git a/MHFZ_Overlay/Models/Addresses/AddressModelNotHGE.cs b/MHFZ_Overlay/Models/Addresses/AddressModelNotHGE.cs index c4dc28e4..d51908e7 100644 --- a/MHFZ_Overlay/Models/Addresses/AddressModelNotHGE.cs +++ b/MHFZ_Overlay/Models/Addresses/AddressModelNotHGE.cs @@ -2,7 +2,6 @@ // Use of this source code is governed by a MIT license that can be // found in the LICENSE file. - // Most Addresses from https://github.com/suzaku01/ namespace MHFZ_Overlay.Models.Addresses; @@ -10,7 +9,6 @@ namespace MHFZ_Overlay.Models.Addresses; using Memory; using MHFZ_Overlay.ViewModels; - /// /// Inherits from AddressModel and provides the memory address of the hit count value (etc.) when the game is running in non-High Grade Edition (HGE) mode. /// @@ -22,181 +20,315 @@ public AddressModelNotHGE(Mem m) : base(m) } public override int HitCountInt() => M.Read2Byte("mhfo.dll+60792E6"); - //public override int TimeDefInt() => M.ReadInt("mhfo.dll+1B97780"); + + // public override int TimeDefInt() => M.ReadInt("mhfo.dll+1B97780"); public override int TimeDefInt() => M.ReadInt("mhfo.dll+28C2C70"); + public override int TimeInt() => M.ReadInt("mhfo.dll+5BC6540"); + // alternative timeint for dure? mhfo.dll+5BC7600 public override int WeaponRaw() => M.Read2Byte("mhfo.dll+503433A"); - //This is equipment slot number that goes from 0-255 repeatedly - //"mhfo.dll+60FFCC6 - //"mhfo.dll+B7FF45 - //"mhfo.dll+182D3B93 - //"mhfo.dll+13E1FF45 + // This is equipment slot number that goes from 0-255 repeatedly + // "mhfo.dll+60FFCC6 + // "mhfo.dll+B7FF45 + // "mhfo.dll+182D3B93 + // "mhfo.dll+13E1FF45 public override int WeaponType() => M.ReadByte("mhfo.dll+5033B93"); + public override bool IsNotRoad() { return M.ReadByte("mhfo.dll+509C8B0") == 0; } + public override int LargeMonster1ID() { return GetNotRoad() ? M.ReadByte("mhfo.dll+1B97794") : LargeMonster1Road(); } + public override int LargeMonster2ID() { return GetNotRoad() ? M.ReadByte("mhfo.dll+1B9779C") : LargeMonster2Road(); } + public override int LargeMonster3ID() => M.ReadByte("mhfo.dll+1B977A4"); + public override int LargeMonster4ID() => M.ReadByte("mhfo.dll+1B977AC"); + public int LargeMonster1Road() { return M.ReadByte("mhfo.dll+509C8B8"); } + public int LargeMonster2Road() { return M.ReadByte("mhfo.dll+509C8D8"); } + public string Monster1BP1 { get => M.Read2Byte("mhfo.dll+60A3E58,348").ToString(CultureInfo.InvariantCulture); } + public override int Monster1Part1() => M.Read2Byte("mhfo.dll+60A3E58,348"); + public string Monster1BP2 { get => M.Read2Byte("mhfo.dll+60A3E58,350").ToString(CultureInfo.InvariantCulture); } + public override int Monster1Part2() => M.Read2Byte("mhfo.dll+60A3E58,350"); + public string Monster1BP3 { get => M.Read2Byte("mhfo.dll+60A3E58,358").ToString(CultureInfo.InvariantCulture); } + public override int Monster1Part3() => M.Read2Byte("mhfo.dll+60A3E58,358"); + public string Monster1BP4 { get => M.Read2Byte("mhfo.dll+60A3E58,360").ToString(CultureInfo.InvariantCulture); } + public override int Monster1Part4() => M.Read2Byte("mhfo.dll+60A3E58,360"); + public string Monster1BP5 { get => M.Read2Byte("mhfo.dll+60A3E58,368").ToString(CultureInfo.InvariantCulture); } + public override int Monster1Part5() => M.Read2Byte("mhfo.dll+60A3E58,368"); + public string Monster1BP6 { get => M.Read2Byte("mhfo.dll+60A3E58,370").ToString(CultureInfo.InvariantCulture); } + public override int Monster1Part6() => M.Read2Byte("mhfo.dll+60A3E58,370"); + public string Monster1BP7 { get => M.Read2Byte("mhfo.dll+60A3E58,378").ToString(CultureInfo.InvariantCulture); } + public override int Monster1Part7() => M.Read2Byte("mhfo.dll+60A3E58,378"); + public string Monster1BP8 { get => M.Read2Byte("mhfo.dll+60A3E58,380").ToString(CultureInfo.InvariantCulture); } + public override int Monster1Part8() => M.Read2Byte("mhfo.dll+60A3E58,380"); + public string Monster1BP9 { get => M.Read2Byte("mhfo.dll+60A3E58,388").ToString(CultureInfo.InvariantCulture); } + public override int Monster1Part9() => M.Read2Byte("mhfo.dll+60A3E58,388"); + public string Monster1BP10 { get => M.Read2Byte("mhfo.dll+60A3E58,390").ToString(CultureInfo.InvariantCulture); } + public override int Monster1Part10() => M.Read2Byte("mhfo.dll+60A3E58,390"); + public string Monster2BP1 { get => M.Read2Byte("mhfo.dll+60A3E58,1238").ToString(CultureInfo.InvariantCulture); } + public override int Monster2Part1() => M.Read2Byte("mhfo.dll+60A3E58,1238"); + public string Monster2BP2 { get => M.Read2Byte("mhfo.dll+60A3E58,1240").ToString(CultureInfo.InvariantCulture); } + public override int Monster2Part2() => M.Read2Byte("mhfo.dll+60A3E58,1240"); + public string Monster2BP3 { get => M.Read2Byte("mhfo.dll+60A3E58,1248").ToString(CultureInfo.InvariantCulture); } + public override int Monster2Part3() => M.Read2Byte("mhfo.dll+60A3E58,1248"); + public string Monster2BP4 { get => M.Read2Byte("mhfo.dll+60A3E58,1250").ToString(CultureInfo.InvariantCulture); } + public override int Monster2Part4() => M.Read2Byte("mhfo.dll+60A3E58,1250"); + public string Monster2BP5 { get => M.Read2Byte("mhfo.dll+60A3E58,1258").ToString(CultureInfo.InvariantCulture); } + public override int Monster2Part5() => M.Read2Byte("mhfo.dll+60A3E58,1258"); + public string Monster2BP6 { get => M.Read2Byte("mhfo.dll+60A3E58,1260").ToString(CultureInfo.InvariantCulture); } + public override int Monster2Part6() => M.Read2Byte("mhfo.dll+60A3E58,1260"); + public string Monster2BP7 { get => M.Read2Byte("mhfo.dll+60A3E58,1268").ToString(CultureInfo.InvariantCulture); } + public override int Monster2Part7() => M.Read2Byte("mhfo.dll+60A3E58,1268"); + public string Monster2BP8 { get => M.Read2Byte("mhfo.dll+60A3E58,1270").ToString(CultureInfo.InvariantCulture); } + public override int Monster2Part8() => M.Read2Byte("mhfo.dll+60A3E58,1270"); + public string Monster2BP9 { get => M.Read2Byte("mhfo.dll+60A3E58,1278").ToString(CultureInfo.InvariantCulture); } + public override int Monster2Part9() => M.Read2Byte("mhfo.dll+60A3E58,1278"); + public string Monster2BP10 { get => M.Read2Byte("mhfo.dll+60A3E58,1280").ToString(CultureInfo.InvariantCulture); } + public override int Monster2Part10() => M.Read2Byte("mhfo.dll+60A3E58,1280"); + public override int Monster1HPInt() => M.Read2Byte("0043C600"); + public override int Monster2HPInt() => M.Read2Byte("0043C604"); + public override int Monster3HPInt() => M.Read2Byte("0043C608"); + public override int Monster4HPInt() => M.Read2Byte("0043C60C"); + public override string Monster1AtkMult() => M.ReadFloat("mhfo.dll+60A3E58,898").ToString(CultureInfo.InvariantCulture); + public override decimal Monster1DefMult() => (decimal)M.ReadFloat("mhfo.dll+60A3E58,89C", "", false); + public override int Monster1Poison() => M.Read2Byte("mhfo.dll+60A3E58,88A"); + public override int Monster1PoisonNeed() => M.Read2Byte("mhfo.dll+60A3E58,888"); + public override int Monster1Sleep() => M.Read2Byte("mhfo.dll+60A3E58,86C"); + public override int Monster1SleepNeed() => M.Read2Byte("mhfo.dll+60A3E58,86A"); + public override int Monster1Para() => M.Read2Byte("mhfo.dll+60A3E58,886"); + public override int Monster1ParaNeed() => M.Read2Byte("mhfo.dll+60A3E58,880"); + public override int Monster1Blast() => M.Read2Byte("mhfo.dll+60A3E58,D4A"); + public override int Monster1BlastNeed() => M.Read2Byte("mhfo.dll+60A3E58,D48"); + public override int Monster1Stun() => M.Read2Byte("mhfo.dll+60A3E58,872"); + public override int Monster1StunNeed() => M.Read2Byte("mhfo.dll+60A3E58,A74"); + public override string Monster1Size() => M.Read2Byte("mhfo.dll+2AFA784").ToString(CultureInfo.InvariantCulture) + "%"; + public override string Monster2AtkMult() => M.ReadFloat("mhfo.dll+60A3E58,1788").ToString(CultureInfo.InvariantCulture); + public override decimal Monster2DefMult() => (decimal)M.ReadFloat("mhfo.dll+60A3E58,178C", "", false); + public override int Monster2Poison() => M.Read2Byte("mhfo.dll+60A3E58,177A"); + public override int Monster2PoisonNeed() => M.Read2Byte("mhfo.dll+60A3E58,1778"); + public override int Monster2Sleep() => M.Read2Byte("mhfo.dll+60A3E58,175C"); + public override int Monster2SleepNeed() => M.Read2Byte("mhfo.dll+60A3E58,175A"); + public override int Monster2Para() => M.Read2Byte("mhfo.dll+60A3E58,1776"); + public override int Monster2ParaNeed() => M.Read2Byte("mhfo.dll+60A3E58,1770"); + public override int Monster2Blast() => M.Read2Byte("mhfo.dll+60A3E58,1C3A"); + public override int Monster2BlastNeed() => M.Read2Byte("mhfo.dll+60A3E58,1C38"); + public override int Monster2Stun() => M.Read2Byte("mhfo.dll+60A3E58,1762"); + public override int Monster2StunNeed() => M.Read2Byte("mhfo.dll+60A3E58,1964"); + public override string Monster2Size() => M.Read2Byte("mhfo.dll+2AFA784").ToString(CultureInfo.InvariantCulture) + "%"; + public override int DamageDealt() => M.Read2Byte("mhfo.dll+5CA3430"); + public override int RoadSelectedMonster() => M.ReadByte("mhfo.dll+001B48F4,4"); //new addresses public override int AreaID() => M.Read2Byte("mhfo.dll+5034388"); + public override int RavienteAreaID() => M.Read2Byte("mhfo.dll+6124B6E"); + public override int GRankNumber() => M.Read2Byte("mhfo.dll+613DD30"); + public override int GSR() => M.Read2Byte("mhfo.dll+50349A2"); + public override int RoadFloor() => M.Read2Byte("mhfo.dll+5C47600"); + public override int WeaponStyle() => M.ReadByte("mhfo.dll+50348D2"); + public override int QuestID() => M.Read2Byte("mhfo.dll+5FB4A4C"); + public override int UrukiPachinkoFish() => M.ReadByte("mhfo.dll+61EC176"); + public override int UrukiPachinkoMushroom() => M.ReadByte("mhfo.dll+61EC178"); + public override int UrukiPachinkoSeed() => M.ReadByte("mhfo.dll+61EC17A"); + public override int UrukiPachinkoMeat() => M.ReadByte("mhfo.dll+61EC174"); + public override int UrukiPachinkoChain() => M.ReadByte("mhfo.dll+61EC160"); + public override int UrukiPachinkoScore() => M.ReadInt("mhfo.dll+61EC16C"); + public override int UrukiPachinkoBonusScore() => M.ReadInt("mhfo.dll+61EC170"); + public override int NyanrendoScore() => M.ReadInt("mhfo.dll+61EC160"); + public override int DokkanBattleCatsScore() => M.ReadInt("mhfo.dll+61EC158"); + public override int DokkanBattleCatsScale() => M.ReadByte("mhfo.dll+61EC2EC"); + public override int DokkanBattleCatsShell() => M.ReadByte("mhfo.dll+61EC2EE"); + public override int DokkanBattleCatsCamp() => M.ReadByte("mhfo.dll+61EC2EA"); + public override int GuukuScoopSmall() => M.ReadByte("mhfo.dll+61EC190"); + public override int GuukuScoopMedium() => M.ReadByte("mhfo.dll+61EC194"); + public override int GuukuScoopLarge() => M.ReadByte("mhfo.dll+61EC198"); + public override int GuukuScoopGolden() => M.ReadByte("mhfo.dll+61EC19C"); + public override int GuukuScoopScore() => M.ReadInt("mhfo.dll+61EC184"); + public override int PanicHoneyScore() => M.ReadByte("mhfo.dll+61EC168"); + public override int Sharpness() => M.Read2Byte("mhfo.dll+50346B6"); + public override int CaravanPoints() => M.ReadInt("mhfo.dll+6101894"); + public override int MezeportaFestivalPoints() => M.ReadInt("mhfo.dll+617FA4C"); + public override int DivaBond() => M.Read2Byte("mhfo.dll+61033A8"); + public override int DivaItemsGiven() => M.Read2Byte("mhfo.dll+61033AA"); + public override int GCP() => M.ReadInt("mhfo.dll+58CFA18"); + public override int RoadPoints() => M.ReadInt("mhfo.dll+61043F8"); + public override int ArmorColor() => M.ReadByte("mhfo.dll+6100476"); + public override int RaviGg() => M.ReadInt("mhfo.dll+6104188"); + public override int Ravig() => M.ReadInt("mhfo.dll+61003A0"); + public override int GZenny() => M.ReadInt("mhfo.dll+6100514"); + public override int GuildFoodSkill() => M.Read2Byte("mhfo.dll+5BC70D8"); + public override int GalleryEvaluationScore() => M.ReadInt("mhfo.dll+6103250"); + public override int PoogiePoints() => M.ReadByte("mhfo.dll+6100350"); + public override int PoogieItemUseID() => M.Read2Byte("mhfo.dll+61540F8"); - public override int PoogieCostume() => M.ReadByte("mhfo.dll+1A88392"); + public override int PoogieCostume() => M.ReadByte("mhfo.dll+1A88392"); //zero-indexed public override int CaravenGemLevel() => M.ReadByte("mhfo.dll+610037D"); - public override int RoadMaxStagesMultiplayer() => M.Read2Byte("mhfo.dll+5C47688"); + public override int RoadTotalStagesMultiplayer() => M.Read2Byte("mhfo.dll+5C47668"); + public override int RoadTotalStagesSolo() => M.Read2Byte("mhfo.dll+5C4766C"); + public override int RoadMaxStagesSolo() => M.Read2Byte("mhfo.dll+5C47690"); + public override int RoadFatalisSlain() => M.Read2Byte("mhfo.dll+5C47670"); + public override int RoadFatalisEncounters() => M.Read2Byte("mhfo.dll+5C47698"); + public override int FirstDistrictDuremudiraEncounters() => M.Read2Byte("mhfo.dll+6104414"); + public override int FirstDistrictDuremudiraSlays() => M.Read2Byte("mhfo.dll+6104FCC"); + public override int SecondDistrictDuremudiraEncounters() => M.Read2Byte("mhfo.dll+6104418"); + public override int SecondDistrictDuremudiraSlays() => M.Read2Byte("mhfo.dll+5C47678"); + public override int DeliveryQuestPoints() => M.Read2Byte("mhfo.dll+6100A72"); //red is 0 public override int SharpnessLevel() => M.ReadByte("mhfo.dll+50346BF"); + public override int PartnerLevel() => M.Read2Byte("mhfo.dll+574127E"); //as hex, consult addresses README.md public override int ObjectiveType() => M.ReadInt("mhfo.dll+28C2C80"); + public override int DivaSkillUsesLeft() => M.ReadByte("mhfo.dll+610436A"); + public override int HalkFullness() => M.ReadByte("mhfo.dll+6101983"); + public override int RankBand() => M.ReadByte("mhfo.dll+28C2BD8"); public override int PartnyaRankPoints() => M.ReadInt("mhfo.dll+5919554"); @@ -206,422 +338,770 @@ public int LargeMonster2Road() public override int Objective1Quantity() => M.Read2Byte("mhfo.dll+28C2C86"); public override int Objective1CurrentQuantityMonster() => M.Read2Byte("mhfo.dll+60792E6"); + public override int Objective1CurrentQuantityItem() => M.Read2Byte("mhfo.dll+5034732"); public override int RavienteTriggeredEvent() => M.Read2Byte("mhfo.dll+61005C6"); + public override int GreatSlayingPoints() => M.ReadInt("mhfo.dll+5B45FF8"); + public override int GreatSlayingPointsSaved() => M.ReadInt("mhfo.dll+61005C4"); public override int AlternativeMonster1HPInt() => 1; + public override int AlternativeMonster1AtkMult() => 1; + public override int AlternativeMonster1DefMult() => 1; + public override int AlternativeMonster1Size() => 1; public override int AlternativeMonster1Poison() => 1; + public override int AlternativeMonster1PoisonNeed() => 1; + public override int AlternativeMonster1Sleep() => 1; + public override int AlternativeMonster1SleepNeed() => 1; public override int AlternativeMonster1Para() => 1; + public override int AlternativeMonster1ParaNeed() => 1; + public override int AlternativeMonster1Blast() => 1; + public override int AlternativeMonster1BlastNeed() => 1; public override int AlternativeMonster1Stun() => 1; + public override int AlternativeMonster1StunNeed() => 1; public override int AlternativeMonster1Part1() => 1; + public override int AlternativeMonster1Part2() => 1; + public override int AlternativeMonster1Part3() => 1; + public override int AlternativeMonster1Part4() => 1; + public override int AlternativeMonster1Part5() => 1; + public override int AlternativeMonster1Part6() => 1; + public override int AlternativeMonster1Part7() => 1; + public override int AlternativeMonster1Part8() => 1; + public override int AlternativeMonster1Part9() => 1; + public override int AlternativeMonster1Part10() => 1; public override int DivaSkill() => M.ReadByte("mhfo.dll+6104368"); + public override int StarGrades() => M.ReadByte("mhfo.dll+5B3D086"); public override int CaravanSkill1() => M.ReadByte("mhfo.dll+5034888"); + public override int CaravanSkill2() => M.ReadByte("mhfo.dll+503488A"); + public override int CaravanSkill3() => M.ReadByte("mhfo.dll+503488C"); public override int CurrentFaints() => M.ReadByte("mhfo.dll+503479B"); + public override int MaxFaints() => M.ReadByte("mhfo.dll+1AA899C"); + public override int AlternativeMaxFaints() => M.ReadByte("mhfo.dll+28C2C64"); public override int CaravanScore() => M.ReadInt("mhfo.dll+6154FC4"); public override int CaravanMonster1ID() => M.ReadByte("mhfo.dll+28C2C84"); + //unsure public override int CaravanMonster2ID() => M.ReadByte("mhfo.dll+28C2C8C"); - public override int BlademasterWeaponID() => M.Read2Byte("mhfo.dll+5033F92"); public override int GunnerWeaponID() => M.Read2Byte("mhfo.dll+5033F92"); + //the deco addresses for the weapon includes the tower sigils public override int WeaponDeco1ID() => M.Read2Byte("mhfo.dll+5033F96"); + public override int WeaponDeco2ID() => M.Read2Byte("mhfo.dll+5033F98"); + public override int WeaponDeco3ID() => M.Read2Byte("mhfo.dll+5033F9A"); + public override int ArmorHeadID() => M.Read2Byte("mhfo.dll+5033F52"); + public override int ArmorHeadDeco1ID() => M.Read2Byte("mhfo.dll+5033F56"); + public override int ArmorHeadDeco2ID() => M.Read2Byte("mhfo.dll+5033F58"); + public override int ArmorHeadDeco3ID() => M.Read2Byte("mhfo.dll+5033F5A"); + public override int ArmorChestID() => M.Read2Byte("mhfo.dll+5033F62"); + public override int ArmorChestDeco1ID() => M.Read2Byte("mhfo.dll+5033F66"); + public override int ArmorChestDeco2ID() => M.Read2Byte("mhfo.dll+5033F68"); + public override int ArmorChestDeco3ID() => M.Read2Byte("mhfo.dll+5033F6A"); + public override int ArmorArmsID() => M.Read2Byte("mhfo.dll+5033F72"); + public override int ArmorArmsDeco1ID() => M.Read2Byte("mhfo.dll+5033F76"); + public override int ArmorArmsDeco2ID() => M.Read2Byte("mhfo.dll+5033F78"); + public override int ArmorArmsDeco3ID() => M.Read2Byte("mhfo.dll+5033F7A"); + public override int ArmorWaistID() => M.Read2Byte("mhfo.dll+5033F82"); + public override int ArmorWaistDeco1ID() => M.Read2Byte("mhfo.dll+5033F86"); + public override int ArmorWaistDeco2ID() => M.Read2Byte("mhfo.dll+5033F88"); + public override int ArmorWaistDeco3ID() => M.Read2Byte("mhfo.dll+5033F8A"); + public override int ArmorLegsID() => M.Read2Byte("mhfo.dll+5033F32"); + public override int ArmorLegsDeco1ID() => M.Read2Byte("mhfo.dll+5033F36"); + public override int ArmorLegsDeco2ID() => M.Read2Byte("mhfo.dll+5033F38"); + public override int ArmorLegsDeco3ID() => M.Read2Byte("mhfo.dll+5033F3A"); + public override int Cuff1ID() => M.Read2Byte("mhfo.dll+50348C2"); + public override int Cuff2ID() => M.Read2Byte("mhfo.dll+50348C4"); + //updates when checking guild card public override int TotalDefense() => M.Read2Byte("mhfo.dll+5034338"); + public override int PouchItem1ID() => M.Read2Byte("mhfo.dll+50345A8"); + public override int PouchItem1Qty() => M.Read2Byte("mhfo.dll+50345AA"); + public override int PouchItem2ID() => M.Read2Byte("mhfo.dll+50345B0"); + public override int PouchItem2Qty() => M.Read2Byte("mhfo.dll+50345B2"); + public override int PouchItem3ID() => M.Read2Byte("mhfo.dll+50345B8"); + public override int PouchItem3Qty() => M.Read2Byte("mhfo.dll+50345BA"); + public override int PouchItem4ID() => M.Read2Byte("mhfo.dll+50345C0"); + public override int PouchItem4Qty() => M.Read2Byte("mhfo.dll+50345C2"); + public override int PouchItem5ID() => M.Read2Byte("mhfo.dll+50345C8"); + public override int PouchItem5Qty() => M.Read2Byte("mhfo.dll+50345CA"); + public override int PouchItem6ID() => M.Read2Byte("mhfo.dll+50345D0"); + public override int PouchItem6Qty() => M.Read2Byte("mhfo.dll+50345D2"); + public override int PouchItem7ID() => M.Read2Byte("mhfo.dll+50345D8"); + public override int PouchItem7Qty() => M.Read2Byte("mhfo.dll+610445A"); + public override int PouchItem8ID() => M.Read2Byte("mhfo.dll+50345E0"); + public override int PouchItem8Qty() => M.Read2Byte("mhfo.dll+50345E2"); + public override int PouchItem9ID() => M.Read2Byte("mhfo.dll+50345E8"); + public override int PouchItem9Qty() => M.Read2Byte("mhfo.dll+610446A"); + public override int PouchItem10ID() => M.Read2Byte("mhfo.dll+50345F0"); + public override int PouchItem10Qty() => M.Read2Byte("mhfo.dll+50345F2"); + public override int PouchItem11ID() => M.Read2Byte("mhfo.dll+50345F8"); + public override int PouchItem11Qty() => M.Read2Byte("mhfo.dll+50345FA"); + public override int PouchItem12ID() => M.Read2Byte("mhfo.dll+5034600"); + public override int PouchItem12Qty() => M.Read2Byte("mhfo.dll+5034602"); + public override int PouchItem13ID() => M.Read2Byte("mhfo.dll+5034608"); + public override int PouchItem13Qty() => M.Read2Byte("mhfo.dll+503460A"); + public override int PouchItem14ID() => M.Read2Byte("mhfo.dll+5034610"); + public override int PouchItem14Qty() => M.Read2Byte("mhfo.dll+5034612"); + public override int PouchItem15ID() => M.Read2Byte("mhfo.dll+5034618"); + public override int PouchItem15Qty() => M.Read2Byte("mhfo.dll+503461A"); + public override int PouchItem16ID() => M.Read2Byte("mhfo.dll+5034620"); + public override int PouchItem16Qty() => M.Read2Byte("mhfo.dll+5034622"); + public override int PouchItem17ID() => M.Read2Byte("mhfo.dll+5034628"); + public override int PouchItem17Qty() => M.Read2Byte("mhfo.dll+503462A"); + public override int PouchItem18ID() => M.Read2Byte("mhfo.dll+5034630"); + public override int PouchItem18Qty() => M.Read2Byte("mhfo.dll+5034632"); + public override int PouchItem19ID() => M.Read2Byte("mhfo.dll+5034638"); + public override int PouchItem19Qty() => M.Read2Byte("mhfo.dll+61044BA"); + public override int PouchItem20ID() => M.Read2Byte("mhfo.dll+5034640"); + public override int PouchItem20Qty() => M.Read2Byte("mhfo.dll+5034642"); + public override int AmmoPouchItem1ID() => M.Read2Byte("mhfo.dll+5034648"); + public override int AmmoPouchItem1Qty() => M.Read2Byte("mhfo.dll+503464A"); + public override int AmmoPouchItem2ID() => M.Read2Byte("mhfo.dll+5034650"); + public override int AmmoPouchItem2Qty() => M.Read2Byte("mhfo.dll+5034652"); + public override int AmmoPouchItem3ID() => M.Read2Byte("mhfo.dll+5034658"); + public override int AmmoPouchItem3Qty() => M.Read2Byte("mhfo.dll+503465A"); + public override int AmmoPouchItem4ID() => M.Read2Byte("mhfo.dll+5034660"); + public override int AmmoPouchItem4Qty() => M.Read2Byte("mhfo.dll+5034662"); + public override int AmmoPouchItem5ID() => M.Read2Byte("mhfo.dll+5034668"); + public override int AmmoPouchItem5Qty() => M.Read2Byte("mhfo.dll+503466A"); + public override int AmmoPouchItem6ID() => M.Read2Byte("mhfo.dll+5034670"); + public override int AmmoPouchItem6Qty() => M.Read2Byte("mhfo.dll+5034672"); + public override int AmmoPouchItem7ID() => M.Read2Byte("mhfo.dll+5034678"); + public override int AmmoPouchItem7Qty() => M.Read2Byte("mhfo.dll+503467A"); + public override int AmmoPouchItem8ID() => M.Read2Byte("mhfo.dll+5034680"); + public override int AmmoPouchItem8Qty() => M.Read2Byte("mhfo.dll+5034682"); + public override int AmmoPouchItem9ID() => M.Read2Byte("mhfo.dll+5034688"); + public override int AmmoPouchItem9Qty() => M.Read2Byte("mhfo.dll+503468A"); + public override int AmmoPouchItem10ID() => M.Read2Byte("mhfo.dll+5034690"); + public override int AmmoPouchItem10Qty() => M.Read2Byte("mhfo.dll+5034692"); - // TODO: cat pouch + // TODO: cat pouch //slots public override int ArmorSkill1() => M.Read2Byte("mhfo.dll+503475C"); + public override int ArmorSkill2() => M.Read2Byte("mhfo.dll+503475E"); + public override int ArmorSkill3() => M.Read2Byte("mhfo.dll+5034760"); + public override int ArmorSkill4() => M.Read2Byte("mhfo.dll+5034762"); + public override int ArmorSkill5() => M.Read2Byte("mhfo.dll+5034764"); + public override int ArmorSkill6() => M.Read2Byte("mhfo.dll+5034766"); + public override int ArmorSkill7() => M.Read2Byte("mhfo.dll+5034768"); + public override int ArmorSkill8() => M.Read2Byte("mhfo.dll+503476A"); + public override int ArmorSkill9() => M.Read2Byte("mhfo.dll+503476C"); + public override int ArmorSkill10() => M.Read2Byte("mhfo.dll+503476E"); + public override int ArmorSkill11() => M.Read2Byte("mhfo.dll+5034770"); + public override int ArmorSkill12() => M.Read2Byte("mhfo.dll+5034772"); + public override int ArmorSkill13() => M.Read2Byte("mhfo.dll+5034774"); + public override int ArmorSkill14() => M.Read2Byte("mhfo.dll+5034776"); + public override int ArmorSkill15() => M.Read2Byte("mhfo.dll+5034778"); + public override int ArmorSkill16() => M.Read2Byte("mhfo.dll+503477A"); + public override int ArmorSkill17() => M.Read2Byte("mhfo.dll+503477C"); + public override int ArmorSkill18() => M.Read2Byte("mhfo.dll+503477E"); + public override int ArmorSkill19() => M.Read2Byte("mhfo.dll+5034780"); public override int BloatedWeaponAttack() => M.Read2Byte("mhfo.dll+5BC68C8"); public override int ZenithSkill1() => M.ReadByte("mhfo.dll+51C16D8"); + public override int ZenithSkill2() => M.ReadByte("mhfo.dll+51C16DA"); + public override int ZenithSkill3() => M.ReadByte("mhfo.dll+51C16DC"); + public override int ZenithSkill4() => M.ReadByte("mhfo.dll+51C16DE"); + public override int ZenithSkill5() => M.ReadByte("mhfo.dll+51C16E0"); + public override int ZenithSkill6() => M.ReadByte("mhfo.dll+51C16E2"); + public override int ZenithSkill7() => M.ReadByte("mhfo.dll+51C16E4"); public override int AutomaticSkillWeapon() => M.Read2Byte("mhfo.dll+5034792"); + public override int AutomaticSkillHead() => M.Read2Byte("mhfo.dll+503478A"); + public override int AutomaticSkillChest() => M.Read2Byte("mhfo.dll+503478C"); + public override int AutomaticSkillArms() => M.Read2Byte("mhfo.dll+503478E"); + public override int AutomaticSkillWaist() => M.Read2Byte("mhfo.dll+5034790"); + public override int AutomaticSkillLegs() => M.Read2Byte("mhfo.dll+5034786"); + public override int StyleRank1() => M.ReadByte("mhfo.dll+50348D3"); + public override int StyleRank2() => M.ReadByte("mhfo.dll+503499F"); public override int GRWeaponLv() => M.Read2Byte("mhfo.dll+5033F94"); + public override int GRWeaponLvBowguns() => M.Read2Byte("mhfo.dll+5033F95"); public override int Sigil1Name1() => M.ReadByte("mhfo.dll+5BF91E4"); + public override int Sigil1Value1() => M.ReadByte("mhfo.dll+5BF91EA"); + public override int Sigil1Name2() => M.ReadByte("mhfo.dll+5BF91E6"); + public override int Sigil1Value2() => M.ReadByte("mhfo.dll+5BF91EC"); + public override int Sigil1Name3() => M.ReadByte("mhfo.dll+5BF91E8"); + public override int Sigil1Value3() => M.ReadByte("mhfo.dll+5BF91EE"); + public override int Sigil2Name1() => M.ReadByte("mhfo.dll+5BF91F0"); + public override int Sigil2Value1() => M.ReadByte("mhfo.dll+5BF91F6"); + public override int Sigil2Name2() => M.ReadByte("mhfo.dll+5BF91F2"); + public override int Sigil2Value2() => M.ReadByte("mhfo.dll+5BF91F8"); + public override int Sigil2Name3() => M.ReadByte("mhfo.dll+5BF91F4"); + public override int Sigil2Value3() => M.ReadByte("mhfo.dll+5BF91FA"); + public override int Sigil3Name1() => M.ReadByte("mhfo.dll+5BF9604"); + public override int Sigil3Value1() => M.ReadByte("mhfo.dll+5BF960A"); + public override int Sigil3Name2() => M.ReadByte("mhfo.dll+5BF9606"); + public override int Sigil3Value2() => M.ReadByte("mhfo.dll+5BF960C"); + public override int Sigil3Name3() => M.ReadByte("mhfo.dll+5BF9608"); - public override int Sigil3Value3() => M.ReadByte("mhfo.dll+5BF960E"); + public override int Sigil3Value3() => M.ReadByte("mhfo.dll+5BF960E"); public override int FelyneHunted() => M.Read2Byte("mhfo.dll+6103A1E"); + public override int MelynxHunted() => M.Read2Byte("mhfo.dll+6103A3A"); + public override int ShakalakaHunted() => M.Read2Byte("mhfo.dll+6103A7E") + 0; public override int VespoidHunted() => M.Read2Byte("mhfo.dll+6103A32"); + public override int HornetaurHunted() => M.Read2Byte("mhfo.dll+6103A3C"); + public override int GreatThunderbugHunted() => M.Read2Byte("mhfo.dll+6103A7C"); + public override int KelbiHunted() => M.Read2Byte("mhfo.dll+6103A12"); + public override int MosswineHunted() => M.Read2Byte("mhfo.dll+6103A14"); + public override int AntekaHunted() => M.Read2Byte("mhfo.dll+6103A96"); + public override int PopoHunted() => M.Read2Byte("mhfo.dll+6103A98"); + public override int AptonothHunted() => M.Read2Byte("mhfo.dll+6103A24"); + public override int ApcerosHunted() => M.Read2Byte("mhfo.dll+6103A3E"); + public override int BurukkuHunted() => M.Read2Byte("mhfo.dll+6103ACE"); + public override int ErupeHunted() => M.Read2Byte("mhfo.dll+6103AD0"); + public override int VelocipreyHunted() => M.Read2Byte("mhfo.dll+6103A2C"); + public override int VelocidromeHunted() => M.Read2Byte("mhfo.dll+6103A42"); + public override int GenpreyHunted() => M.Read2Byte("mhfo.dll+6103A26"); + public override int GendromeHunted() => M.Read2Byte("mhfo.dll+6103A44"); + public override int IopreyHunted() => M.Read2Byte("mhfo.dll+6103A48"); + public override int IodromeHunted() => M.Read2Byte("mhfo.dll+6103A4A"); + public override int GiapreyHunted() => M.Read2Byte("mhfo.dll+6103A52"); + public override int YianKutKuHunted() => M.Read2Byte("mhfo.dll+6103A18"); + public override int BlueYianKutKuHunted() => M.Read2Byte("mhfo.dll+6103A58"); + public override int YianGarugaHunted() => M.Read2Byte("mhfo.dll+6103A5C"); + public override int GypcerosHunted() => M.Read2Byte("mhfo.dll+6103A34"); + public override int PurpleGypcerosHunted() => M.Read2Byte("mhfo.dll+6103A5A"); + public override int HypnocHunted() => M.Read2Byte("mhfo.dll+6103AA0"); + public override int BrightHypnocHunted() => M.Read2Byte("mhfo.dll+6103AA8"); + public override int SilverHypnocHunted() => M.Read2Byte("mhfo.dll+6103AB0"); + public override int FarunokkuHunted() => M.Read2Byte("mhfo.dll+6103AF0"); + public override int ForokururuHunted() => M.Read2Byte("mhfo.dll+6103B06"); + public override int ToridclessHunted() => M.Read2Byte("mhfo.dll+6103B26"); + public override int RemobraHunted() => M.Read2Byte("mhfo.dll+6103A8A"); + public override int RathianHunted() => M.Read2Byte("mhfo.dll+6103A0E"); + public override int PinkRathianHunted() => M.Read2Byte("mhfo.dll+6103A56"); + public override int GoldRathianHunted() => M.Read2Byte("mhfo.dll+6103A60"); + public override int RathalosHunted() => M.Read2Byte("mhfo.dll+6103A22"); + public override int AzureRathalosHunted() => M.Read2Byte("mhfo.dll+6103A6E"); + public override int SilverRathalosHunted() => M.Read2Byte("mhfo.dll+6103A5E"); + public override int KhezuHunted() => M.Read2Byte("mhfo.dll+6103A2A"); + public override int RedKhezuHunted() => M.Read2Byte("mhfo.dll+6103A66"); + public override int BasariosHunted() => M.Read2Byte("mhfo.dll+6103A38"); + public override int GraviosHunted() => M.Read2Byte("mhfo.dll+6103A2E"); + public override int BlackGraviosHunted() => M.Read2Byte("mhfo.dll+6103A6A"); + public override int MonoblosHunted() => M.Read2Byte("mhfo.dll+6103A40"); + public override int WhiteMonoblosHunted() => M.Read2Byte("mhfo.dll+6103A64"); + public override int DiablosHunted() => M.Read2Byte("mhfo.dll+6103A28"); + public override int BlackDiablosHunted() => M.Read2Byte("mhfo.dll+6103A62"); + public override int TigrexHunted() => M.Read2Byte("mhfo.dll+6103AA4"); + public override int EspinasHunted() => M.Read2Byte("mhfo.dll+6103AAC"); + public override int OrangeEspinasHunted() => M.Read2Byte("mhfo.dll+6103AAE"); + public override int WhiteEspinasHunted() => M.Read2Byte("mhfo.dll+6103AC0"); + public override int AkantorHunted() => M.Read2Byte("mhfo.dll+6103AA6"); + public override int BerukyurosuHunted() => M.Read2Byte("mhfo.dll+6103AB6"); + public override int DoragyurosuHunted() => M.Read2Byte("mhfo.dll+6103ACA"); + public override int PariapuriaHunted() => M.Read2Byte("mhfo.dll+6103ABE"); + public override int DyuragauaHunted() => M.Read2Byte("mhfo.dll+6103AC8"); + public override int GurenzeburuHunted() => M.Read2Byte("mhfo.dll+6103ACC"); + public override int OdibatorasuHunted() => M.Read2Byte("mhfo.dll+6103AE0"); + public override int HyujikikiHunted() => M.Read2Byte("mhfo.dll+6103AE8"); + public override int AnorupatisuHunted() => M.Read2Byte("mhfo.dll+6103AE6"); + public override int ZerureusuHunted() => M.Read2Byte("mhfo.dll+6103B00") + 0; public override int MeraginasuHunted() => M.Read2Byte("mhfo.dll+6103B08"); + public override int DiorexHunted() => M.Read2Byte("mhfo.dll+6103B0A"); + public override int PoborubarumuHunted() => M.Read2Byte("mhfo.dll+6103B12"); + public override int VarusaburosuHunted() => M.Read2Byte("mhfo.dll+6103B10"); + public override int GureadomosuHunted() => M.Read2Byte("mhfo.dll+6103B22"); + public override int BariothHunted() => M.Read2Byte("mhfo.dll+6103B3A"); + //musous are separate??? public override int NargacugaHunted() => M.Read2Byte("mhfo.dll+6103B4A") + 0; public override int ZenaserisuHunted() => M.Read2Byte("mhfo.dll+6103B4E"); + public override int SeregiosHunted() => M.Read2Byte("mhfo.dll+6103B5E"); + public override int BogabadorumuHunted() => M.Read2Byte("mhfo.dll+6103B60"); + public override int CephalosHunted() => M.Read2Byte("mhfo.dll+6103A50"); + public override int CephadromeHunted() => M.Read2Byte("mhfo.dll+6103A1C"); + public override int PlesiothHunted() => M.Read2Byte("mhfo.dll+6103A36"); + public override int GreenPlesiothHunted() => M.Read2Byte("mhfo.dll+6103A68"); + public override int VolganosHunted() => M.Read2Byte("mhfo.dll+6103AA2"); + public override int RedVolganosHunted() => M.Read2Byte("mhfo.dll+6103AAA"); + public override int HermitaurHunted() => M.Read2Byte("mhfo.dll+6103A90"); + public override int DaimyoHermitaurHunted() => M.Read2Byte("mhfo.dll+6103A6C"); + public override int CeanataurHunted() => M.Read2Byte("mhfo.dll+6103A9E"); + public override int ShogunCeanataurHunted() => M.Read2Byte("mhfo.dll+6103A92"); + public override int ShenGaorenHunted() => M.Read2Byte("mhfo.dll+6103A7A"); + public override int AkuraVashimuHunted() => M.Read2Byte("mhfo.dll+6103AB2"); + public override int AkuraJebiaHunted() => M.Read2Byte("mhfo.dll+6103AB4"); + public override int TaikunZamuzaHunted() => M.Read2Byte("mhfo.dll+6103ADA"); + public override int KusubamiHunted() => M.Read2Byte("mhfo.dll+6103B2A"); + public override int BullfangoHunted() => M.Read2Byte("mhfo.dll+6103A16"); + public override int BulldromeHunted() => M.Read2Byte("mhfo.dll+6103A94"); + public override int CongaHunted() => M.Read2Byte("mhfo.dll+6103A88"); + public override int CongalalaHunted() => M.Read2Byte("mhfo.dll+6103A74"); + public override int BlangoHunted() => M.Read2Byte("mhfo.dll+6103A86"); + public override int BlangongaHunted() => M.Read2Byte("mhfo.dll+6103A72"); + public override int GogomoaHunted() => M.Read2Byte("mhfo.dll+6103AD6"); + public override int RajangHunted() => M.Read2Byte("mhfo.dll+6103A76"); + public override int KamuOrugaronHunted() => M.Read2Byte("mhfo.dll+6103AC2"); + public override int NonoOrugaronHunted() => M.Read2Byte("mhfo.dll+6103AC4"); + public override int MidogaronHunted() => M.Read2Byte("mhfo.dll+6103AEA"); + public override int GougarfHunted() => M.Read2Byte("mhfo.dll+6103B02"); + public override int VoljangHunted() => M.Read2Byte("mhfo.dll+6103B48"); + public override int KirinHunted() => M.Read2Byte("mhfo.dll+6103A4E"); + public override int KushalaDaoraHunted() => M.Read2Byte("mhfo.dll+6103A78"); + public override int RustedKushalaDaoraHunted() => M.Read2Byte("mhfo.dll+6103A84"); + public override int ChameleosHunted() => M.Read2Byte("mhfo.dll+6103A82"); + public override int LunastraHunted() => M.Read2Byte("mhfo.dll+6103A8C"); + public override int TeostraHunted() => M.Read2Byte("mhfo.dll+6103A8E"); + public override int LaoShanLungHunted() => M.Read2Byte("mhfo.dll+6103A1A"); - public override int AshenLaoShanLungHunted() => M.Read2Byte("mhfo.dll+6103A70");//untested + + public override int AshenLaoShanLungHunted() => M.Read2Byte("mhfo.dll+6103A70"); + + // untested public override int YamaTsukamiHunted() => M.Read2Byte("mhfo.dll+6103A80"); + public override int RukodioraHunted() => M.Read2Byte("mhfo.dll+6103AD2"); + public override int RebidioraHunted() => M.Read2Byte("mhfo.dll+6103AE4"); + public override int FatalisHunted() => M.Read2Byte("mhfo.dll+6103A10"); + public override int ShantienHunted() => M.Read2Byte("mhfo.dll+6103AF4"); + public override int DisufiroaHunted() => M.Read2Byte("mhfo.dll+6103AE2"); + public override int GarubaDaoraHunted() => M.Read2Byte("mhfo.dll+6103B0C"); + public override int InagamiHunted() => M.Read2Byte("mhfo.dll+6103B0E"); + public override int HarudomeruguHunted() => M.Read2Byte("mhfo.dll+6103B24"); + public override int YamaKuraiHunted() => M.Read2Byte("mhfo.dll+6103B2C"); + public override int ToaTesukatoraHunted() => M.Read2Byte("mhfo.dll+6103B38"); + public override int GuanzorumuHunted() => M.Read2Byte("mhfo.dll+6103B40"); + public override int KeoaruboruHunted() => M.Read2Byte("mhfo.dll+6103B4C"); + public override int ShagaruMagalaHunted() => M.Read2Byte("mhfo.dll+6103B54"); + public override int ElzelionHunted() => M.Read2Byte("mhfo.dll+6103B58"); + public override int AmatsuHunted() => M.Read2Byte("mhfo.dll+6103B56"); + public override int AbioruguHunted() => M.Read2Byte("mhfo.dll+6103ADC"); + public override int GiaoruguHunted() => M.Read2Byte("mhfo.dll+6103AEC"); + public override int GasurabazuraHunted() => M.Read2Byte("mhfo.dll+6103B28"); + public override int DeviljhoHunted() => M.Read2Byte("mhfo.dll+6103B32"); + public override int BrachydiosHunted() => M.Read2Byte("mhfo.dll+6103B34"); + public override int UragaanHunted() => M.Read2Byte("mhfo.dll+6103B3C"); + public override int KuarusepusuHunted() => M.Read2Byte("mhfo.dll+6103ADE"); + public override int PokaraHunted() => M.Read2Byte("mhfo.dll+6103AF6"); + public override int PokaradonHunted() => M.Read2Byte("mhfo.dll+6103AF2"); + public override int BaruragaruHunted() => M.Read2Byte("mhfo.dll+6103AFE"); + public override int ZinogreHunted() => M.Read2Byte("mhfo.dll+6103B30"); + public override int StygianZinogreHunted() => M.Read2Byte("mhfo.dll+6103B3E"); + public override int GoreMagalaHunted() => M.Read2Byte("mhfo.dll+6103B50"); + public override int BlitzkriegBogabadorumuHunted() => M.Read2Byte("mhfo.dll+6103B64"); + public override int SparklingZerureusuHunted() => M.Read2Byte("mhfo.dll+6103B68"); + public override int StarvingDeviljhoHunted() => M.Read2Byte("mhfo.dll+6103B42"); + public override int CrimsonFatalisHunted() => M.Read2Byte("mhfo.dll+6103A54"); + public override int WhiteFatalisHunted() => M.Read2Byte("mhfo.dll+6103A9A"); + public override int CactusHunted() => M.Read2Byte("mhfo.dll+6103AB8"); - public override int ArrogantDuremudiraHunted() => M.Read2Byte("mhfo.dll+6103B5A");//untested + + public override int ArrogantDuremudiraHunted() => M.Read2Byte("mhfo.dll+6103B5A"); + + // untested public override int KingShakalakaHunted() => M.Read2Byte("mhfo.dll+6103B6C"); + public override int MiRuHunted() => M.Read2Byte("mhfo.dll+6103AEE"); + public override int UnknownHunted() => M.Read2Byte("mhfo.dll+6103AD4"); + public override int GoruganosuHunted() => M.Read2Byte("mhfo.dll+6103AFA"); + public override int AruganosuHunted() => M.Read2Byte("mhfo.dll+6103AFC"); + public override int PSO2RappyHunted() => M.Read2Byte("mhfo.dll+6103B6A"); + public override int RocksHunted() => M.Read2Byte("mhfo.dll+6103A46"); + public override int UrukiHunted() => M.Read2Byte("mhfo.dll+6103B04"); + public override int GorgeObjectsHunted() => M.Read2Byte("mhfo.dll+6103ABA"); - public override int BlinkingNargacugaHunted() => M.Read2Byte("mhfo.dll+6103B52"); + public override int BlinkingNargacugaHunted() => M.Read2Byte("mhfo.dll+6103B52"); public override int QuestState() => M.ReadByte("mhfo.dll+61180F2"); - public override int RoadDureSkill1Name() => M.ReadByte("mhfo.dll+610403C"); + public override int RoadDureSkill1Level() => M.ReadByte("mhfo.dll+610403E"); + public override int RoadDureSkill2Name() => M.ReadByte("mhfo.dll+6104040"); + public override int RoadDureSkill2Level() => M.ReadByte("mhfo.dll+6104042"); + public override int RoadDureSkill3Name() => M.ReadByte("mhfo.dll+6104044"); + public override int RoadDureSkill3Level() => M.ReadByte("mhfo.dll+6104046"); + public override int RoadDureSkill4Name() => M.ReadByte("mhfo.dll+6104048"); + public override int RoadDureSkill4Level() => M.ReadByte("mhfo.dll+610404A"); + public override int RoadDureSkill5Name() => M.ReadByte("mhfo.dll+610404C"); + public override int RoadDureSkill5Level() => M.ReadByte("mhfo.dll+610404E"); + public override int RoadDureSkill6Name() => M.ReadByte("mhfo.dll+6104050"); + public override int RoadDureSkill6Level() => M.ReadByte("mhfo.dll+6104052"); + public override int RoadDureSkill7Name() => M.ReadByte("mhfo.dll+6104054"); + public override int RoadDureSkill7Level() => M.ReadByte("mhfo.dll+6104056"); + public override int RoadDureSkill8Name() => M.ReadByte("mhfo.dll+6104058"); + public override int RoadDureSkill8Level() => M.ReadByte("mhfo.dll+610405A"); + public override int RoadDureSkill9Name() => M.ReadByte("mhfo.dll+610405C"); + public override int RoadDureSkill9Level() => M.ReadByte("mhfo.dll+610405E"); + public override int RoadDureSkill10Name() => M.ReadByte("mhfo.dll+6104060"); + public override int RoadDureSkill10Level() => M.ReadByte("mhfo.dll+6104062"); + public override int RoadDureSkill11Name() => M.ReadByte("mhfo.dll+6104064"); + public override int RoadDureSkill11Level() => M.ReadByte("mhfo.dll+6104066"); + public override int RoadDureSkill12Name() => M.ReadByte("mhfo.dll+6104068"); + public override int RoadDureSkill12Level() => M.ReadByte("mhfo.dll+610406A"); + public override int RoadDureSkill13Name() => M.ReadByte("mhfo.dll+610406C"); + public override int RoadDureSkill13Level() => M.ReadByte("mhfo.dll+610406E"); + public override int RoadDureSkill14Name() => M.ReadByte("mhfo.dll+6104070"); + public override int RoadDureSkill14Level() => M.ReadByte("mhfo.dll+6104072"); + public override int RoadDureSkill15Name() => M.ReadByte("mhfo.dll+6104074"); + public override int RoadDureSkill15Level() => M.ReadByte("mhfo.dll+6104076"); + public override int RoadDureSkill16Name() => M.ReadByte("mhfo.dll+6104078"); + public override int RoadDureSkill16Level() => M.ReadByte("mhfo.dll+610407A"); public override int PartySize() => M.ReadByte("mhfo.dll+57967C8"); + public override int PartySizeMax() => M.ReadByte("mhfo.dll+61B6088"); public override uint GSRP() => (uint)M.ReadInt("mhfo.dll+61041C8"); + public override uint GRP() => (uint)M.ReadInt("mhfo.dll+5BC82F8"); public override int HunterHP() => M.Read2Byte("mhfo.dll+5BC6548"); + public override int HunterStamina() => M.Read2Byte("mhfo.dll+503438C"); + public override int QuestItemsUsed() => M.Read2Byte("mhfo.dll+57EAE24"); + public override int AreaHitsTakenBlocked() => M.Read2Byte("mhfo.dll+5034078"); // TODO Untested public override int PartnyaBagItem1ID() => M.Read2Byte("mhfo.dll+5745788"); + public override int PartnyaBagItem1Qty() => M.Read2Byte("mhfo.dll+574578A"); public override int PartnyaBagItem2ID() => M.Read2Byte("mhfo.dll+574578C"); @@ -659,5 +1139,4 @@ public int LargeMonster2Road() public override int PartnyaBagItem10ID() => M.Read2Byte("mhfo.dll+57457AC"); public override int PartnyaBagItem10Qty() => M.Read2Byte("mhfo.dll+57457AE"); - } diff --git a/MHFZ_Overlay/Models/Addresses/README.md b/MHFZ_Overlay/Models/Addresses/README.md index 93401580..2719273e 100644 --- a/MHFZ_Overlay/Models/Addresses/README.md +++ b/MHFZ_Overlay/Models/Addresses/README.md @@ -7,9 +7,8 @@ For the addresses, check the respective files. ## IDs -- [Dictionaries](../Core/Class/Dictionary) -- [Bitfields and Enumerations](../Core/Enum) -- [Lists](../Core/Class/List) +- [Mappers](../Mappers) +- [Bitfields and Enumerations](../Structures) ### Sigil Skills diff --git a/MHFZ_Overlay/Models/BrushAnimation.cs b/MHFZ_Overlay/Models/BrushAnimation.cs index f61ad0cb..37a8d516 100644 --- a/MHFZ_Overlay/Models/BrushAnimation.cs +++ b/MHFZ_Overlay/Models/BrushAnimation.cs @@ -29,22 +29,30 @@ public override object GetCurrentValue(object defaultOriginValue, defaultDestinationValue as Brush, animationClock); } + public object GetCurrentValue(Brush? defaultOriginValue, Brush? defaultDestinationValue, AnimationClock animationClock) { if (!animationClock.CurrentProgress.HasValue) + { return Brushes.Transparent; + } - //use the standard values if From and To are not set - //(it is the value of the given property) + // use the standard values if From and To are not set + // (it is the value of the given property) defaultOriginValue = this.From ?? defaultOriginValue; defaultDestinationValue = this.To ?? defaultDestinationValue; if (animationClock.CurrentProgress.Value == 0 && defaultOriginValue != null) + { return defaultOriginValue; + } + if (animationClock.CurrentProgress.Value == 1 && defaultDestinationValue != null) + { return defaultDestinationValue; + } return new VisualBrush(new Border() { @@ -78,6 +86,7 @@ public Brush To public static readonly DependencyProperty FromProperty = DependencyProperty.Register("From", typeof(Brush), typeof(BrushAnimation)); + public static readonly DependencyProperty ToProperty = DependencyProperty.Register("To", typeof(Brush), typeof(BrushAnimation)); } diff --git a/MHFZ_Overlay/Models/ButtonPress.cs b/MHFZ_Overlay/Models/ButtonPress.cs index 3ff25151..473ab0ad 100644 --- a/MHFZ_Overlay/Models/ButtonPress.cs +++ b/MHFZ_Overlay/Models/ButtonPress.cs @@ -6,6 +6,15 @@ namespace MHFZ_Overlay.Models; public class ButtonPress { + public ButtonPress(string buttonType, int row, int column, string icon, object content) + { + this.ButtonType = buttonType; + this.Row = row; + this.Column = column; + this.Icon = icon; + this.Content = content; + } + public string ButtonType { get; set; } public int Row { get; set; } @@ -15,13 +24,4 @@ public class ButtonPress public string Icon { get; set; } public object Content { get; set; } - - public ButtonPress(string buttonType, int row, int column, string icon, object content) - { - ButtonType = buttonType; - Row = row; - Column = column; - Icon = icon; - Content = content; - } } diff --git a/MHFZ_Overlay/Models/Constant/ApplicationPaths.cs b/MHFZ_Overlay/Models/Constant/ApplicationPaths.cs index ac47fc86..3c25a2cc 100644 --- a/MHFZ_Overlay/Models/Constant/ApplicationPaths.cs +++ b/MHFZ_Overlay/Models/Constant/ApplicationPaths.cs @@ -1,4 +1,4 @@ -// © 2023 The mhfz-overlay developers. +// © 2023 The mhfz-overlay developers. // Use of this source code is governed by a MIT license that can be // found in the LICENSE file. @@ -12,9 +12,9 @@ public static class ApplicationPaths /// /// The Notepad path /// - public const string NOTEPAD_PATH = @"C:\Windows\System32\notepad.exe"; + public const string NotepadPath = @"C:\Windows\System32\notepad.exe"; /// /// The File Explorer path /// - public const string EXPLORER_PATH = @"C:\Windows\explorer.exe"; + public const string ExplorerPath = @"C:\Windows\explorer.exe"; } diff --git a/MHFZ_Overlay/Models/Constant/Messages.cs b/MHFZ_Overlay/Models/Constant/Messages.cs index 4c86ed21..3cb634d1 100644 --- a/MHFZ_Overlay/Models/Constant/Messages.cs +++ b/MHFZ_Overlay/Models/Constant/Messages.cs @@ -1,4 +1,4 @@ -// © 2023 The mhfz-overlay developers. +// © 2023 The mhfz-overlay developers. // Use of this source code is governed by a MIT license that can be // found in the LICENSE file. @@ -9,20 +9,39 @@ namespace MHFZ_Overlay.Models.Constant; /// public static class Messages { - public const string RUN_NOT_FOUND = "Run Not Found"; - public const string QUEST_NOT_FOUND = "Quest Not Found"; - public const string INVALID_QUEST = "Invalid Quest"; - public const string NOT_A_NUMBER = "N/A"; - public const string TIMER_NOT_LOADED = "--:--.---"; - public const string FATAL_TITLE = "MHF-Z Overlay Fatal Error"; - public const string ERROR_TITLE = "MHF-Z Overlay Error"; - public const string WARNING_TITLE = "MHF-Z Overlay Warning"; - public const string INFO_TITLE = "MHF-Z Overlay Info"; - public const string DEBUG_TITLE = "MHF-Z Overlay Debug"; - public const string MONSTER_PART_NOT_LOADED = "None: 0"; - public const string RICK_ROLL_ID = "dQw4w9WgXcQ"; - public const string MAXIMUM_TIMER_PLACEHOLDER = "9999:59.999"; - public const string OVERLAY_MODE_PLACEHOLDER = "Standard"; - public const string MONSTER_IMAGE_NOT_LOADED = "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/none.png"; - public const string SECRET_ACHIEVEMENT = "???"; + public const string RunNotFound = "Run Not Found"; + + public const string QuestNotFound = "Quest Not Found"; + + public const string InvalidQuest = "Invalid Quest"; + + public const string NotANumber = "N/A"; + + public const string TimerNotLoaded = "--:--.---"; + + public const string FatalTitle = "MHF-Z Overlay Fatal Error"; + + public const string ErrorTitle = "MHF-Z Overlay Error"; + + public const string WarningTitle = "MHF-Z Overlay Warning"; + + public const string InfoTitle = "MHF-Z Overlay Info"; + + public const string DebugTitle = "MHF-Z Overlay Debug"; + + public const string MonsterPartNotLoaded = "None: 0"; + + public const string RickRollID = "dQw4w9WgXcQ"; + + public const string MaximumTimerPlaceholder = "9999:59.999"; + + public const string OverlayModePlaceholder = "Standard"; + + public const string MonsterImageNotLoaded = "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/none.png"; + + public const string SecretAchievement = "???"; + + public const string UnknownMonsterIcon = "https://i.imgur.com/3pQEtzw.png"; + + public const string EmptyImage = "https://i.imgur.com/aAcPJGb.png"; } diff --git a/MHFZ_Overlay/Models/Constant/Numbers.cs b/MHFZ_Overlay/Models/Constant/Numbers.cs index aae915b8..c1ef4149 100644 --- a/MHFZ_Overlay/Models/Constant/Numbers.cs +++ b/MHFZ_Overlay/Models/Constant/Numbers.cs @@ -9,13 +9,17 @@ public static class Numbers /// /// The frames per second in the game. /// - public const int FRAMES_PER_SECOND = 30; - public const int FRAMES_1_MINUTE = FRAMES_PER_SECOND * 60; - public const int FRAMES_1_HOUR = FRAMES_1_MINUTE * 60; + public const int FramesPerSecond = 30; - public const int REQUIRED_COMPLETIONS_MONSTER_SLAYER = 10; - public const int REQUIRED_COMPLETIONS_MONSTER_ANNIHILATOR = 25; - public const int REQUIRED_COMPLETIONS_MONSTER_EXTERMINATOR = 50; + public const int Frames1Minute = FramesPerSecond * 60; + + public const int Frames1Hour = Frames1Minute * 60; + + public const int RequiredCompletionsMonsterSlayer = 10; + + public const int RequiredCompletionsMonsterAnnihilator = 25; + + public const int RequiredCompletionsMonsterExterminator = 50; /* Quest IDs @@ -91,74 +95,142 @@ VR 53232 TODO replace the numbers in source code as necessary */ - public const int QUEST_ID_Z4_AKURA_VASHIMU = 23539; - public const int QUEST_ID_Z4_ANORUPATISU = 23721; - public const int QUEST_ID_Z4_BLANGONGA = 23519; - public const int QUEST_ID_Z4_DAIMYO_HERMITAUR = 23479; - public const int QUEST_ID_Z4_DORAGYUROSU = 23662; - public const int QUEST_ID_Z4_ESPINAS = 23483; - public const int QUEST_ID_Z4_GASURABAZURA = 23671; - public const int QUEST_ID_Z4_GIAORUGU = 23613; - public const int QUEST_ID_Z4_HYPNOCATRICE = 23471; - public const int QUEST_ID_Z4_HYUJIKIKI = 23609; - public const int QUEST_ID_Z4_INAGAMI = 23647; - public const int QUEST_ID_Z4_KHEZU = 23475; - public const int QUEST_ID_Z4_MIDOGARON = 23617; - public const int QUEST_ID_Z4_PLESIOTH = 23625; - public const int QUEST_ID_Z4_RATHALOS = 23523; - public const int QUEST_ID_Z4_RUKODIORA = 23621; - public const int QUEST_ID_Z4_TIGREX = 23543; - public const int QUEST_ID_Z4_TORIDCLESS = 23658; - public const int QUEST_ID_Z4_BARURAGARU = 23716; - public const int QUEST_ID_Z4_BOGABADORUMU = 23708; - public const int QUEST_ID_Z4_GRAVIOS = 23712; - public const int QUEST_ID_Z4_HARUDOMERUGU = 55932; - public const int QUEST_ID_Z4_TAIKUN_ZAMUZA = 55926; - public const int QUEST_ID_LV9999_FATALIS = 23596; - public const int QUEST_ID_LV9999_CRIMSON_FATALIS = 23601; - public const int QUEST_ID_LV9999_SHANTIEN = 23588; - public const int QUEST_ID_LV9999_DISUFIROA = 23592; - public const int QUEST_ID_UPPER_SHITEN_UNKNOWN = 23605; - public const int QUEST_ID_UPPER_SHITEN_DISUFIROA = 23603; - public const int QUEST_ID_THIRSTY_PARIAPURIA = 55532; - public const int QUEST_ID_RULING_GUANZORUMU = 55529; - public const int QUEST_ID_SHIFTING_MI_RU = 55531; - public const int QUEST_ID_BLINKING_NARGACUGA_FOREST = 55534; - public const int QUEST_ID_BLINKING_NARGACUGA_HISTORIC = 55922; - public const int QUEST_ID_HOWLING_ZINOGRE_FOREST = 55535; - public const int QUEST_ID_HOWLING_ZINOGRE_HISTORIC = 55919; - public const int QUEST_ID_SPARKLING_ZERUREUSU = 55951; - public const int QUEST_ID_SPARKLING_ZERUREUSU_EVENT = 56106; - public const int QUEST_ID_ARROGANT_DUREMUDIRA = 23649; - public const int QUEST_ID_STARVING_DEVILJHO_ARENA = 55530; - public const int QUEST_ID_STARVING_DEVILJHO_HISTORIC = 55917; - public const int QUEST_ID_BLITZKRIEG_BOGABADORUMU = 55949; - public const int QUEST_ID_BURNING_FREEZING_ELZELION_TOWER = 55714; - public const int QUEST_ID_BURNING_FREEZING_ELZELION_HISTORIC = 55936; - public const int QUEST_ID_VEGGIE_ELDER_LOVE = 53189; - public const int QUEST_ID_PRODUCER_GOGOMOA_LR = 50748; - public const int QUEST_ID_PRODUCER_GOGOMOA_HR = 53032; - public const int QUEST_ID_FOUR_HEAVENLY_KING_MALE_1 = 40219; - public const int QUEST_ID_FOUR_HEAVENLY_KING_MALE_2 = 40220; - public const int QUEST_ID_FOUR_HEAVENLY_KING_FEMALE_1 = 40237; - public const int QUEST_ID_FOUR_HEAVENLY_KING_FEMALE_2 = 40238; - public const int QUEST_ID_HATSUNE_MIKU = 40230; - public const int QUEST_ID_PSO2 = 40239; - public const int QUEST_ID_MEGAMAN = 40240; - public const int QUEST_ID_HIGANJIMA = 40217; - public const int QUEST_ID_MHFQ = 53209; - public const int QUEST_ID_HUGE_PLESIOTH = 53028; - public const int QUEST_ID_SUNGLASSES_KUTKU = 53139; - public const int QUEST_ID_CONGALALA_CURE = 50365; - public const int QUEST_ID_JUNGLE_PUZZLE = 53208; - public const int QUEST_ID_MULTIPLAYER_ROAD = 23527; - public const int QUEST_ID_SECOND_DISTRICT_DUREMUDIRA = 21746; - public const int QUEST_ID_TWINHEAD_RAJANGS_HISTORIC = 55937; - public const int QUEST_ID_NUCLEAR_GYPCEROS = 63390; - public const int QUEST_ID_MOSSWINE_REVENGE = 50143; - public const int QUEST_ID_MOSSWINE_DUEL = 62793; - public const int QUEST_ID_MOSSWINE_LAST_STAND = 53323; - public const int QUEST_ID_HALLOWEEN_SPEEDSTER = 53325; - public const int QUEST_ID_VR = 53232; + public const int QuestIDZ4AkuraVashimu = 23539; + + public const int QuestIDZ4Anorupatisu = 23721; + + public const int QuestIDZ4Blangonga = 23519; + + public const int QuestIDZ4DaimyoHermitaur = 23479; + + public const int QuestIDZ4Doragyurosu = 23662; + + public const int QuestIDZ4Espinas = 23483; + + public const int QuestIDZ4Gasurabazura = 23671; + + public const int QuestIDZ4Giaorugu = 23613; + + public const int QuestIDZ4Hypnocatrice = 23471; + + public const int QuestIDZ4Hyujikiki = 23609; + + public const int QuestIDZ4Inagami = 23647; + + public const int QuestIDZ4Khezu = 23475; + + public const int QuestIDZ4Midogaron = 23617; + + public const int QuestIDZ4Plesioth = 23625; + + public const int QuestIDZ4Rathalos = 23523; + + public const int QuestIDZ4Rukodiora = 23621; + + public const int QuestIDZ4Tigrex = 23543; + + public const int QuestIDZ4Toridcless = 23658; + + public const int QuestIDZ4Baruragaru = 23716; + + public const int QuestIDZ4Bogabadorumu = 23708; + + public const int QuestIDZ4Gravios = 23712; + + public const int QuestIDZ4Harudomerugu = 55932; + + public const int QuestIDZ4TaikunZamuza = 55926; + + public const int QuestIDLV9999Fatalis = 23596; + + public const int QuestIDLV9999CrimsonFatalis = 23601; + + public const int QuestIDLV9999Shantien = 23588; + + public const int QuestIDLV9999Disufiroa = 23592; + + public const int QuestIDUpperShitenUnknown = 23605; + + public const int QuestIDUpperShitenDisufiroa = 23603; + + public const int QuestIDThirstyPariapuria = 55532; + + public const int QuestIDRulingGuanzorumu = 55529; + + public const int QuestIDShiftingMiRu = 55531; + + public const int QuestIDBlinkingNargacugaForest = 55534; + + public const int QuestIDBlinkingNargacugaHistoric = 55922; + + public const int QuestIDHowlingZinogreForest = 55535; + + public const int QuestIDHowlingZinogreHistoric = 55919; + + public const int QuestIDSparklingZerureusu = 55951; + + public const int QuestIDSparklingZerureusuEvent = 56106; + + public const int QuestIDArrogantDuremudira = 23649; + + public const int QuestIDStarvingDeviljhoArena = 55530; + + public const int QuestIDStarvingDeviljhoHistoric = 55917; + + public const int QuestIDBlitzkriegBogabadorumu = 55949; + + public const int QuestIDBurningFreezingElzelionTower = 55714; + + public const int QuestIDBurningFreezingElzelionHistoric = 55936; + + public const int QuestIDVeggieElderLove = 53189; + + public const int QuestIDProducerGogomoaLR = 50748; + + public const int QuestIDProducerGogomoaHR = 53032; + + public const int QuestIDFourHeavenlyKingMale1 = 40219; + + public const int QuestIDFourHeavenlyKingMale2 = 40220; + + public const int QuestIDFourHeavenlyKingFemale1 = 40237; + + public const int QuestIDFourHeavenlyKingFemale2 = 40238; + + public const int QuestIDHatsuneMiku = 40230; + + public const int QuestIDPSO2 = 40239; + + public const int QuestIDMegaman = 40240; + + public const int QuestIDHiganjima = 40217; + + public const int QuestIDMHFQ = 53209; + + public const int QuestIDHugePlesioth = 53028; + + public const int QuestIDSunglassesKutKu = 53139; + + public const int QuestIDCongalalaCure = 50365; + + public const int QuestIDJunglePuzzle = 53208; + + public const int QuestIDMultiplayerRoad = 23527; + + public const int QuestIDSecondDistrictDuremudira = 21746; + + public const int QuestIDTwinheadRajangsHistoric = 55937; + + public const int QuestIDNuclearGypceros = 63390; + + public const int QuestIDMosswineRevenge = 50143; + + public const int QuestIDMosswineDuel = 62793; + + public const int QuestIDMosswineLastStand = 53323; + + public const int QuestIDHalloweenSpeedster = 53325; + + public const int QuestIDVR = 53232; } diff --git a/MHFZ_Overlay/Models/Constant/TimeFormats.cs b/MHFZ_Overlay/Models/Constant/TimeFormats.cs index 96362339..a720f904 100644 --- a/MHFZ_Overlay/Models/Constant/TimeFormats.cs +++ b/MHFZ_Overlay/Models/Constant/TimeFormats.cs @@ -9,7 +9,7 @@ namespace MHFZ_Overlay.Models.Constant; /// public static class TimeFormats { - public const string HOURS_MINUTES_SECONDS_MILLISECONDS = @"hh\:mm\:ss\.fff"; + public const string HoursMinutesSecondsMilliseconds = @"hh\:mm\:ss\.fff"; - public const string MINUTES_SECONDS_MILLISECONDS = @"mm\:ss\.fff"; + public const string MinutesSecondsMilliseconds = @"mm\:ss\.fff"; } diff --git a/MHFZ_Overlay/Models/FastestRun.cs b/MHFZ_Overlay/Models/FastestRun.cs index 879a9bb0..0aaef5c1 100644 --- a/MHFZ_Overlay/Models/FastestRun.cs +++ b/MHFZ_Overlay/Models/FastestRun.cs @@ -9,7 +9,7 @@ namespace MHFZ_Overlay.Models; public class FastestRun { - public string ObjectiveImage { get; set; } = Messages.MONSTER_IMAGE_NOT_LOADED; + public string ObjectiveImage { get; set; } = Messages.MonsterImageNotLoaded; public string QuestName { get; set; } = string.Empty; @@ -17,9 +17,9 @@ public class FastestRun public long QuestID { get; set; } - public string YoutubeID { get; set; } = Messages.RICK_ROLL_ID; + public string YoutubeID { get; set; } = Messages.RickRollID; - public string FinalTimeDisplay { get; set; } = Messages.MAXIMUM_TIMER_PLACEHOLDER; + public string FinalTimeDisplay { get; set; } = Messages.MaximumTimerPlaceholder; public DateTime Date { get; set; } } diff --git a/MHFZ_Overlay/Models/Mappers/AchievementsMapper.cs b/MHFZ_Overlay/Models/Mappers/AchievementsMapper.cs index 2cd0104e..4d9c86e9 100644 --- a/MHFZ_Overlay/Models/Mappers/AchievementsMapper.cs +++ b/MHFZ_Overlay/Models/Mappers/AchievementsMapper.cs @@ -22,40 +22,48 @@ public static class AchievementsMapper /// public static IReadOnlyDictionary IDAchievement { get; } = new Dictionary { - {0, new Achievement(){ - CompletionDate = DateTime.UnixEpoch, - Title = "Akura Vashimu Slain", - Description = string.Empty, - Rank = AchievementRank.Bronze, - Image = @"pack://application:,,,/MHFZ_Overlay;component/Assets/Icons/achievement/monster_red2.jpg", - Objective = "Complete 1 Zenith★4 Akura Vashimu quest.", - IsSecret = false, - Hint = string.Empty - } - }, - {1, new Achievement(){ - CompletionDate = DateTime.UnixEpoch, - Title = "Akura Vashimu Slayer", - Description = string.Empty, - Rank = AchievementRank.Silver, - Image = @"pack://application:,,,/MHFZ_Overlay;component/Assets/Icons/achievement/monster_white2.jpg", - Objective = "Complete 10 Zenith★4 Akura Vashimu quests.", - IsSecret = false, - Hint = string.Empty - } - }, - {2, new Achievement(){ - CompletionDate = DateTime.UnixEpoch, - Title = "Akura Vashimu Annihilator", - Description = string.Empty, - Rank = AchievementRank.Gold, - Image = @"pack://application:,,,/MHFZ_Overlay;component/Assets/Icons/achievement/monster_yellow.jpg", - Objective = "Complete 25 Zenith★4 Akura Vashimu quests.", - IsSecret = false, - Hint = string.Empty - } - }, - {3, new Achievement(){ + { + 0, new Achievement() + { + CompletionDate = DateTime.UnixEpoch, + Title = "Akura Vashimu Slain", + Description = string.Empty, + Rank = AchievementRank.Bronze, + Image = @"pack://application:,,,/MHFZ_Overlay;component/Assets/Icons/achievement/monster_red2.jpg", + Objective = "Complete 1 Zenith★4 Akura Vashimu quest.", + IsSecret = false, + Hint = string.Empty, + } + }, + { + 1, new Achievement() + { + CompletionDate = DateTime.UnixEpoch, + Title = "Akura Vashimu Slayer", + Description = string.Empty, + Rank = AchievementRank.Silver, + Image = @"pack://application:,,,/MHFZ_Overlay;component/Assets/Icons/achievement/monster_white2.jpg", + Objective = "Complete 10 Zenith★4 Akura Vashimu quests.", + IsSecret = false, + Hint = string.Empty, + } + }, + { + 2, new Achievement() + { + CompletionDate = DateTime.UnixEpoch, + Title = "Akura Vashimu Annihilator", + Description = string.Empty, + Rank = AchievementRank.Gold, + Image = @"pack://application:,,,/MHFZ_Overlay;component/Assets/Icons/achievement/monster_yellow.jpg", + Objective = "Complete 25 Zenith★4 Akura Vashimu quests.", + IsSecret = false, + Hint = string.Empty, + } + }, + { + 3, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Akura Vashimu Exterminator", Description = string.Empty, @@ -63,10 +71,12 @@ public static class AchievementsMapper Image = @"pack://application:,,,/MHFZ_Overlay;component/Assets/Icons/achievement/monster_blue2.jpg", Objective = "Complete 50 Zenith★4 Akura Vashimu quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {4, new Achievement(){ + { + 4, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Akura Vashimu's Nightmare", Description = string.Empty, @@ -74,10 +84,12 @@ public static class AchievementsMapper Image = @"pack://application:,,,/MHFZ_Overlay;component/Assets/Icons/achievement/monster_white2.jpg", Objective = "Complete 1 Zenith★4 Akura Vashimu quest solo (Speedrun/Zen).", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {5, new Achievement(){ + { + 5, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Anorupatisu Slain", Description = string.Empty, @@ -85,10 +97,12 @@ public static class AchievementsMapper Image = @"pack://application:,,,/MHFZ_Overlay;component/Assets/Icons/achievement/monster_red2.jpg", Objective = "Complete 1 Zenith★4 Anorupatisu quest.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {6, new Achievement(){ + { + 6, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Anorupatisu Slayer", Description = string.Empty, @@ -96,10 +110,12 @@ public static class AchievementsMapper Image = @"pack://application:,,,/MHFZ_Overlay;component/Assets/Icons/achievement/monster_white2.jpg", Objective = "Complete 10 Zenith★4 Anorupatisu quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {7, new Achievement(){ + { + 7, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Anorupatisu Annihilator", Description = string.Empty, @@ -107,10 +123,12 @@ public static class AchievementsMapper Image = @"pack://application:,,,/MHFZ_Overlay;component/Assets/Icons/achievement/monster_yellow.jpg", Objective = "Complete 25 Zenith★4 Anorupatisu quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {8, new Achievement(){ + { + 8, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Anorupatisu Exterminator", Description = string.Empty, @@ -118,10 +136,12 @@ public static class AchievementsMapper Image = @"pack://application:,,,/MHFZ_Overlay;component/Assets/Icons/achievement/monster_blue2.jpg", Objective = "Complete 50 Zenith★4 Anorupatisu quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {9, new Achievement(){ + { + 9, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Anorupatisu's Nightmare", Description = string.Empty, @@ -129,10 +149,12 @@ public static class AchievementsMapper Image = @"pack://application:,,,/MHFZ_Overlay;component/Assets/Icons/achievement/monster_white2.jpg", Objective = "Complete 1 Zenith★4 Anorupatisu quest solo (Speedrun/Zen).", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {10, new Achievement(){ + { + 10, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Blangonga Slain", Description = string.Empty, @@ -140,10 +162,12 @@ public static class AchievementsMapper Image = @"pack://application:,,,/MHFZ_Overlay;component/Assets/Icons/achievement/monster_red2.jpg", Objective = "Complete 1 Zenith★4 Blangonga quest.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {11, new Achievement(){ + { + 11, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Blangonga Slayer", Description = string.Empty, @@ -151,10 +175,12 @@ public static class AchievementsMapper Image = @"pack://application:,,,/MHFZ_Overlay;component/Assets/Icons/achievement/monster_white2.jpg", Objective = "Complete 10 Zenith★4 Blangonga quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {12, new Achievement(){ + { + 12, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Blangonga Annihilator", Description = string.Empty, @@ -162,10 +188,12 @@ public static class AchievementsMapper Image = @"pack://application:,,,/MHFZ_Overlay;component/Assets/Icons/achievement/monster_yellow.jpg", Objective = "Complete 25 Zenith★4 Blangonga quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {13, new Achievement(){ + { + 13, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Blangonga Exterminator", Description = string.Empty, @@ -173,10 +201,12 @@ public static class AchievementsMapper Image = @"pack://application:,,,/MHFZ_Overlay;component/Assets/Icons/achievement/monster_blue2.jpg", Objective = "Complete 50 Zenith★4 Blangonga quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {14, new Achievement(){ + { + 14, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Blangonga's Nightmare", Description = string.Empty, @@ -184,10 +214,12 @@ public static class AchievementsMapper Image = @"pack://application:,,,/MHFZ_Overlay;component/Assets/Icons/achievement/monster_white2.jpg", Objective = "Complete 1 Zenith★4 Blangonga quest solo (Speedrun/Zen).", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {15, new Achievement(){ + { + 15, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Daimyo Hermitaur Slain", Description = string.Empty, @@ -195,10 +227,12 @@ public static class AchievementsMapper Image = @"pack://application:,,,/MHFZ_Overlay;component/Assets/Icons/achievement/monster_red2.jpg", Objective = "Complete 1 Zenith★4 Daimyo Hermitaur quest.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {16, new Achievement(){ + { + 16, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Daimyo Hermitaur Slayer", Description = string.Empty, @@ -206,10 +240,12 @@ public static class AchievementsMapper Image = @"pack://application:,,,/MHFZ_Overlay;component/Assets/Icons/achievement/monster_white2.jpg", Objective = "Complete 10 Zenith★4 Daimyo Hermitaur quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {17, new Achievement(){ + { + 17, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Daimyo Hermitaur Annihilator", Description = string.Empty, @@ -217,10 +253,12 @@ public static class AchievementsMapper Image = @"pack://application:,,,/MHFZ_Overlay;component/Assets/Icons/achievement/monster_yellow.jpg", Objective = "Complete 25 Zenith★4 Daimyo Hermitaur quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {18, new Achievement(){ + { + 18, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Daimyo Hermitaur Exterminator", Description = string.Empty, @@ -228,10 +266,12 @@ public static class AchievementsMapper Image = @"pack://application:,,,/MHFZ_Overlay;component/Assets/Icons/achievement/monster_blue2.jpg", Objective = "Complete 50 Zenith★4 Daimyo Hermitaur quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {19, new Achievement(){ + { + 19, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Daimyo Hermitaur's Nightmare", Description = string.Empty, @@ -239,10 +279,12 @@ public static class AchievementsMapper Image = @"pack://application:,,,/MHFZ_Overlay;component/Assets/Icons/achievement/monster_white2.jpg", Objective = "Complete 1 Zenith★4 Daimyo Hermitaur quest solo (Speedrun/Zen).", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {20, new Achievement(){ + { + 20, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Doragyurosu Slain", Description = string.Empty, @@ -250,10 +292,12 @@ public static class AchievementsMapper Image = @"pack://application:,,,/MHFZ_Overlay;component/Assets/Icons/achievement/monster_red2.jpg", Objective = "Complete 1 Zenith★4 Doragyurosu quest.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {21, new Achievement(){ + { + 21, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Doragyurosu Slayer", Description = string.Empty, @@ -261,10 +305,12 @@ public static class AchievementsMapper Image = @"pack://application:,,,/MHFZ_Overlay;component/Assets/Icons/achievement/monster_white2.jpg", Objective = "Complete 10 Zenith★4 Doragyurosu quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {22, new Achievement(){ + { + 22, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Doragyurosu Annihilator", Description = string.Empty, @@ -272,10 +318,12 @@ public static class AchievementsMapper Image = @"pack://application:,,,/MHFZ_Overlay;component/Assets/Icons/achievement/monster_yellow.jpg", Objective = "Complete 25 Zenith★4 Doragyurosu quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {23, new Achievement(){ + { + 23, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Doragyurosu Exterminator", Description = string.Empty, @@ -283,10 +331,12 @@ public static class AchievementsMapper Image = @"pack://application:,,,/MHFZ_Overlay;component/Assets/Icons/achievement/monster_blue2.jpg", Objective = "Complete 50 Zenith★4 Doragyurosu quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {24, new Achievement(){ + { + 24, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Doragyurosu's Nightmare", Description = string.Empty, @@ -294,10 +344,12 @@ public static class AchievementsMapper Image = @"pack://application:,,,/MHFZ_Overlay;component/Assets/Icons/achievement/monster_white2.jpg", Objective = "Complete 1 Zenith★4 Doragyurosu quest solo (Speedrun/Zen).", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {25, new Achievement(){ + { + 25, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Espinas Slain", Description = string.Empty, @@ -305,10 +357,12 @@ public static class AchievementsMapper Image = @"pack://application:,,,/MHFZ_Overlay;component/Assets/Icons/achievement/monster_red2.jpg", Objective = "Complete 1 Zenith★4 Espinas quest.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {26, new Achievement(){ + { + 26, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Espinas Slayer", Description = string.Empty, @@ -316,10 +370,12 @@ public static class AchievementsMapper Image = @"pack://application:,,,/MHFZ_Overlay;component/Assets/Icons/achievement/monster_white2.jpg", Objective = "Complete 10 Zenith★4 Espinas quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {27, new Achievement(){ + { + 27, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Espinas Annihilator", Description = string.Empty, @@ -327,10 +383,12 @@ public static class AchievementsMapper Image = @"pack://application:,,,/MHFZ_Overlay;component/Assets/Icons/achievement/monster_yellow.jpg", Objective = "Complete 25 Zenith★4 Espinas quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {28, new Achievement(){ + { + 28, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Espinas Exterminator", Description = string.Empty, @@ -338,10 +396,12 @@ public static class AchievementsMapper Image = @"pack://application:,,,/MHFZ_Overlay;component/Assets/Icons/achievement/monster_blue2.jpg", Objective = "Complete 50 Zenith★4 Espinas quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {29, new Achievement(){ + { + 29, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Espinas' Nightmare", Description = string.Empty, @@ -349,10 +409,12 @@ public static class AchievementsMapper Image = @"pack://application:,,,/MHFZ_Overlay;component/Assets/Icons/achievement/monster_white2.jpg", Objective = "Complete 1 Zenith★4 Espinas quest solo (Speedrun/Zen).", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {30, new Achievement(){ + { + 30, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Gasurabazura Slain", Description = string.Empty, @@ -360,10 +422,12 @@ public static class AchievementsMapper Image = @"pack://application:,,,/MHFZ_Overlay;component/Assets/Icons/achievement/monster_red2.jpg", Objective = "Complete 1 Zenith★4 Gasurabazura quest.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {31, new Achievement(){ + { + 31, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Gasurabazura Slayer", Description = string.Empty, @@ -371,10 +435,12 @@ public static class AchievementsMapper Image = @"pack://application:,,,/MHFZ_Overlay;component/Assets/Icons/achievement/monster_white2.jpg", Objective = "Complete 10 Zenith★4 Gasurabazura quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {32, new Achievement(){ + { + 32, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Gasurabazura Annihilator", Description = string.Empty, @@ -383,10 +449,12 @@ public static class AchievementsMapper Objective = "Complete 25 Zenith★4 Gasurabazura quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {33, new Achievement(){ + { + 33, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Gasurabazura Exterminator", Description = string.Empty, @@ -395,10 +463,12 @@ public static class AchievementsMapper Objective = "Complete 50 Zenith★4 Gasurabazura quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {34, new Achievement(){ + { + 34, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Gasurabazura's Nightmare", Description = string.Empty, @@ -407,10 +477,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Gasurabazura quest solo (Speedrun/Zen).", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {35, new Achievement(){ + { + 35, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Giaorugu Slain", Description = string.Empty, @@ -419,10 +491,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Giaorugu quest.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {36, new Achievement(){ + { + 36, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Giaorugu Slayer", Description = string.Empty, @@ -431,10 +505,12 @@ public static class AchievementsMapper Objective = "Complete 10 Zenith★4 Giaorugu quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {37, new Achievement(){ + { + 37, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Giaorugu Annihilator", Description = string.Empty, @@ -443,10 +519,12 @@ public static class AchievementsMapper Objective = "Complete 25 Zenith★4 Giaorugu quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {38, new Achievement(){ + { + 38, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Giaorugu Exterminator", Description = string.Empty, @@ -455,10 +533,12 @@ public static class AchievementsMapper Objective = "Complete 50 Zenith★4 Giaorugu quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {39, new Achievement(){ + { + 39, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Giaorugu's Nightmare", Description = string.Empty, @@ -467,10 +547,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Giaorugu quest solo (Speedrun/Zen).", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {40, new Achievement(){ + { + 40, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Hypnocatrice Slain", Description = string.Empty, @@ -479,10 +561,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Hypnocatrice quest.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {41, new Achievement(){ + { + 41, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Hypnocatrice Slayer", Description = string.Empty, @@ -491,10 +575,12 @@ public static class AchievementsMapper Objective = "Complete 10 Zenith★4 Hypnocatrice quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {42, new Achievement(){ + { + 42, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Hypnocatrice Annihilator", Description = string.Empty, @@ -503,10 +589,12 @@ public static class AchievementsMapper Objective = "Complete 25 Zenith★4 Hypnocatrice quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {43, new Achievement(){ + { + 43, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Hypnocatrice Exterminator", Description = string.Empty, @@ -515,10 +603,12 @@ public static class AchievementsMapper Objective = "Complete 50 Zenith★4 Hypnocatrice quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {44, new Achievement(){ + { + 44, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Hypnocatrice's Nightmare", Description = string.Empty, @@ -527,10 +617,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Hypnocatrice quest solo (Speedrun/Zen).", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {45, new Achievement(){ + { + 45, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Hyujikiki Slain", Description = string.Empty, @@ -539,10 +631,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Hyujikiki quest.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {46, new Achievement(){ + { + 46, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Hyujikiki Slayer", Description = string.Empty, @@ -551,10 +645,12 @@ public static class AchievementsMapper Objective = "Complete 10 Zenith★4 Hyujikiki quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {47, new Achievement(){ + { + 47, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Hyujikiki Annihilator", Description = string.Empty, @@ -563,10 +659,12 @@ public static class AchievementsMapper Objective = "Complete 25 Zenith★4 Hyujikiki quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {48, new Achievement(){ + { + 48, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Hyujikiki Exterminator", Description = string.Empty, @@ -575,10 +673,12 @@ public static class AchievementsMapper Objective = "Complete 50 Zenith★4 Hyujikiki quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {49, new Achievement(){ + { + 49, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Hyujikiki's Nightmare", Description = string.Empty, @@ -587,10 +687,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Hyujikiki quest solo (Speedrun/Zen).", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {50, new Achievement(){ + { + 50, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Inagami Slain", Description = string.Empty, @@ -599,10 +701,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Inagami quest.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {51, new Achievement(){ + { + 51, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Inagami Slayer", Description = string.Empty, @@ -611,10 +715,12 @@ public static class AchievementsMapper Objective = "Complete 10 Zenith★4 Inagami quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {52, new Achievement(){ + { + 52, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Inagami Annihilator", Description = string.Empty, @@ -623,10 +729,12 @@ public static class AchievementsMapper Objective = "Complete 25 Zenith★4 Inagami quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {53, new Achievement(){ + { + 53, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Inagami Exterminator", Description = string.Empty, @@ -635,10 +743,12 @@ public static class AchievementsMapper Objective = "Complete 50 Zenith★4 Inagami quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {54, new Achievement(){ + { + 54, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Inagami's Nightmare", Description = string.Empty, @@ -647,10 +757,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Inagami quest solo (Speedrun/Zen).", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {55, new Achievement(){ + { + 55, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Khezu Slain", Description = string.Empty, @@ -659,10 +771,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Khezu quest.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {56, new Achievement(){ + { + 56, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Khezu Slayer", Description = string.Empty, @@ -671,10 +785,12 @@ public static class AchievementsMapper Objective = "Complete 10 Zenith★4 Khezu quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {57, new Achievement(){ + { + 57, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Khezu Annihilator", Description = string.Empty, @@ -683,10 +799,12 @@ public static class AchievementsMapper Objective = "Complete 25 Zenith★4 Khezu quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {58, new Achievement(){ + { + 58, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Khezu Exterminator", Description = string.Empty, @@ -695,10 +813,12 @@ public static class AchievementsMapper Objective = "Complete 50 Zenith★4 Khezu quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {59, new Achievement(){ + { + 59, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Khezu's Nightmare", Description = string.Empty, @@ -707,10 +827,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Khezu quest solo (Speedrun/Zen).", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {60, new Achievement(){ + { + 60, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Midogaron Slain", Description = string.Empty, @@ -719,10 +841,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Midogaron quest.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {61, new Achievement(){ + { + 61, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Midogaron Slayer", Description = string.Empty, @@ -731,10 +855,12 @@ public static class AchievementsMapper Objective = "Complete 10 Zenith★4 Midogaron quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {62, new Achievement(){ + { + 62, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Midogaron Annihilator", Description = string.Empty, @@ -743,10 +869,12 @@ public static class AchievementsMapper Objective = "Complete 25 Zenith★4 Midogaron quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {63, new Achievement(){ + { + 63, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Midogaron Exterminator", Description = string.Empty, @@ -755,10 +883,12 @@ public static class AchievementsMapper Objective = "Complete 50 Zenith★4 Midogaron quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {64, new Achievement(){ + { + 64, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Midogaron's Nightmare", Description = string.Empty, @@ -767,10 +897,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Midogaron quest solo (Speedrun/Zen).", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {65, new Achievement(){ + { + 65, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Plesioth Slain", Description = string.Empty, @@ -779,10 +911,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Plesioth quest.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {66, new Achievement(){ + { + 66, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Plesioth Slayer", Description = string.Empty, @@ -791,10 +925,12 @@ public static class AchievementsMapper Objective = "Complete 10 Zenith★4 Plesioth quest.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {67, new Achievement(){ + { + 67, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Plesioth Annihilator", Description = string.Empty, @@ -803,10 +939,12 @@ public static class AchievementsMapper Objective = "Complete 25 Zenith★4 Plesioth quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {68, new Achievement(){ + { + 68, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Plesioth Exterminator", Description = string.Empty, @@ -815,10 +953,12 @@ public static class AchievementsMapper Objective = "Complete 50 Zenith★4 Plesioth quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {69, new Achievement(){ + { + 69, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Plesioth's Nightmare", Description = string.Empty, @@ -827,10 +967,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Plesioth quest solo (Speedrun/Zen).", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {70, new Achievement(){ + { + 70, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Rathalos Slain", Description = string.Empty, @@ -839,10 +981,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Rathalos quest.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {71, new Achievement(){ + { + 71, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Rathalos Slayer", Description = string.Empty, @@ -851,10 +995,12 @@ public static class AchievementsMapper Objective = "Complete 10 Zenith★4 Rathalos quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {72, new Achievement(){ + { + 72, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Rathalos Annihilator", Description = string.Empty, @@ -863,10 +1009,12 @@ public static class AchievementsMapper Objective = "Complete 25 Zenith★4 Rathalos quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {73, new Achievement(){ + { + 73, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Rathalos Exterminator", Description = string.Empty, @@ -875,10 +1023,12 @@ public static class AchievementsMapper Objective = "Complete 50 Zenith★4 Rathalos quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {74, new Achievement(){ + { + 74, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Rathalos' Nightmare", Description = string.Empty, @@ -887,10 +1037,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Rathalos quest solo (Speedrun/Zen).", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {75, new Achievement(){ + { + 75, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Rukodiora Slain", Description = string.Empty, @@ -899,10 +1051,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Rukodiora quest.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {76, new Achievement(){ + { + 76, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Rukodiora Slayer", Description = string.Empty, @@ -911,10 +1065,12 @@ public static class AchievementsMapper Objective = "Complete 10 Zenith★4 Rukodiora quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {77, new Achievement(){ + { + 77, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Rukodiora Annihilator", Description = string.Empty, @@ -923,10 +1079,12 @@ public static class AchievementsMapper Objective = "Complete 25 Zenith★4 Rukodiora quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {78, new Achievement(){ + { + 78, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Rukodiora Exterminator", Description = string.Empty, @@ -935,10 +1093,12 @@ public static class AchievementsMapper Objective = "Complete 50 Zenith★4 Rukodiora quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {79, new Achievement(){ + { + 79, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Rukodiora's Nightmare", Description = string.Empty, @@ -947,10 +1107,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Rukodiora quest solo (Speedrun/Zen).", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {80, new Achievement(){ + { + 80, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Tigrex Slain", Description = string.Empty, @@ -959,10 +1121,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Tigrex quest.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {81, new Achievement(){ + { + 81, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Tigrex Slayer", Description = string.Empty, @@ -971,10 +1135,12 @@ public static class AchievementsMapper Objective = "Complete 10 Zenith★4 Tigrex quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {82, new Achievement(){ + { + 82, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Tigrex Annihilator", Description = string.Empty, @@ -983,10 +1149,12 @@ public static class AchievementsMapper Objective = "Complete 25 Zenith★4 Tigrex quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {83, new Achievement(){ + { + 83, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Tigrex Exterminator", Description = string.Empty, @@ -995,10 +1163,12 @@ public static class AchievementsMapper Objective = "Complete 50 Zenith★4 Tigrex quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {84, new Achievement(){ + { + 84, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Tigrex's Nightmare", Description = string.Empty, @@ -1007,10 +1177,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Tigrex quest solo (Speedrun/Zen).", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {85, new Achievement(){ + { + 85, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Toridcless Slain", Description = string.Empty, @@ -1019,10 +1191,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Toridcless quest.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {86, new Achievement(){ + { + 86, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Toridcless Slayer", Description = string.Empty, @@ -1031,10 +1205,12 @@ public static class AchievementsMapper Objective = "Complete 10 Zenith★4 Toridcless quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {87, new Achievement(){ + { + 87, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Toridcless Annihilator", Description = string.Empty, @@ -1043,10 +1219,12 @@ public static class AchievementsMapper Objective = "Complete 25 Zenith★4 Toridcless quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {88, new Achievement(){ + { + 88, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Toridcless Exterminator", Description = string.Empty, @@ -1055,10 +1233,12 @@ public static class AchievementsMapper Objective = "Complete 50 Zenith★4 Toridcless quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {89, new Achievement(){ + { + 89, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Toridcless' Nightmare", Description = string.Empty, @@ -1067,10 +1247,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Toridcless quest solo (Speedrun/Zen).", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {90, new Achievement(){ + { + 90, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Baruragaru Slain", Description = string.Empty, @@ -1079,10 +1261,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Baruragaru quest.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {91, new Achievement(){ + { + 91, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Baruragaru Slayer", Description = string.Empty, @@ -1091,10 +1275,12 @@ public static class AchievementsMapper Objective = "Complete 10 Zenith★4 Baruragaru quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {92, new Achievement(){ + { + 92, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Baruragaru Annihilator", Description = string.Empty, @@ -1103,10 +1289,12 @@ public static class AchievementsMapper Objective = "Complete 25 Zenith★4 Baruragaru quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {93, new Achievement(){ + { + 93, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Baruragaru Exterminator", Description = string.Empty, @@ -1115,10 +1303,12 @@ public static class AchievementsMapper Objective = "Complete 50 Zenith★4 Baruragaru quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {94, new Achievement(){ + { + 94, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Baruragaru's Nightmare", Description = string.Empty, @@ -1127,10 +1317,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Baruragaru quest solo (Speedrun/Zen).", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {95, new Achievement(){ + { + 95, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Bogabadorumu Slain", Description = string.Empty, @@ -1139,10 +1331,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Bogabadorumu quest.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {96, new Achievement(){ + { + 96, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Bogabadorumu Slayer", Description = string.Empty, @@ -1151,10 +1345,12 @@ public static class AchievementsMapper Objective = "Complete 10 Zenith★4 Bogabadorumu quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {97, new Achievement(){ + { + 97, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Bogabadorumu Annihilator", Description = string.Empty, @@ -1163,10 +1359,12 @@ public static class AchievementsMapper Objective = "Complete 25 Zenith★4 Bogabadorumu quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {98, new Achievement(){ + { + 98, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Bogabadorumu Exterminator", Description = string.Empty, @@ -1175,10 +1373,12 @@ public static class AchievementsMapper Objective = "Complete 50 Zenith★4 Bogabadorumu quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {99, new Achievement(){ + { + 99, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Bogabadorumu's Nightmare", Description = string.Empty, @@ -1187,10 +1387,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Bogabadorumu quest solo (Speedrun/Zen).", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {100, new Achievement(){ + { + 100, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Gravios Slain", Description = string.Empty, @@ -1199,10 +1401,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Gravios quest.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {101, new Achievement(){ + { + 101, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Gravios Slayer", Description = string.Empty, @@ -1211,10 +1415,12 @@ public static class AchievementsMapper Objective = "Complete 10 Zenith★4 Gravios quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {102, new Achievement(){ + { + 102, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Gravios Annihilator", Description = string.Empty, @@ -1223,10 +1429,12 @@ public static class AchievementsMapper Objective = "Complete 25 Zenith★4 Gravios quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {103, new Achievement(){ + { + 103, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Gravios Exterminator", Description = string.Empty, @@ -1235,10 +1443,12 @@ public static class AchievementsMapper Objective = "Complete 50 Zenith★4 Gravios quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {104, new Achievement(){ + { + 104, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Gravios' Nightmare", Description = string.Empty, @@ -1247,10 +1457,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Gravios quest solo (Speedrun/Zen).", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {105, new Achievement(){ + { + 105, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Harudomerugu Slain", Description = string.Empty, @@ -1259,10 +1471,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Harudomerugu quest.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {106, new Achievement(){ + { + 106, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Harudomerugu Slayer", Description = string.Empty, @@ -1271,10 +1485,12 @@ public static class AchievementsMapper Objective = "Complete 10 Zenith★4 Harudomerugu quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {107, new Achievement(){ + { + 107, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Harudomerugu Annihilator", Description = string.Empty, @@ -1283,10 +1499,12 @@ public static class AchievementsMapper Objective = "Complete 25 Zenith★4 Harudomerugu quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {108, new Achievement(){ + { + 108, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Harudomerugu Exterminator", Description = string.Empty, @@ -1295,10 +1513,12 @@ public static class AchievementsMapper Objective = "Complete 50 Zenith★4 Harudomerugu quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {109, new Achievement(){ + { + 109, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Harudomerugu's Nightmare", Description = string.Empty, @@ -1307,10 +1527,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Harudomerugu quest solo (Speedrun/Zen).", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {110, new Achievement(){ + { + 110, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Taikun Zamuza Slain", Description = string.Empty, @@ -1319,10 +1541,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Taikun Zamuza quest.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {111, new Achievement(){ + { + 111, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Taikun Zamuza Slayer", Description = string.Empty, @@ -1331,10 +1555,12 @@ public static class AchievementsMapper Objective = "Complete 10 Zenith★4 Taikun Zamuza quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {112, new Achievement(){ + { + 112, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Taikun Zamuza Annihilator", Description = string.Empty, @@ -1343,10 +1569,12 @@ public static class AchievementsMapper Objective = "Complete 25 Zenith★4 Taikun Zamuza quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {113, new Achievement(){ + { + 113, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Taikun Zamuza Exterminator", Description = string.Empty, @@ -1355,10 +1583,12 @@ public static class AchievementsMapper Objective = "Complete 50 Zenith★4 Taikun Zamuza quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {114, new Achievement(){ + { + 114, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Taikun Zamuza's Nightmare", Description = string.Empty, @@ -1367,10 +1597,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Taikun Zamuza quest solo (Speedrun/Zen).", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {115, new Achievement(){ + { + 115, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Fatalis Slain", Description = string.Empty, @@ -1379,10 +1611,12 @@ public static class AchievementsMapper Objective = "Complete 1 Lv9999 Fatalis quest.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {116, new Achievement(){ + { + 116, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Fatalis Slayer", Description = string.Empty, @@ -1391,10 +1625,12 @@ public static class AchievementsMapper Objective = "Complete 10 Lv9999 Fatalis quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {117, new Achievement(){ + { + 117, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Fatalis Annihilator", Description = string.Empty, @@ -1403,10 +1639,12 @@ public static class AchievementsMapper Objective = "Complete 25 Lv9999 Fatalis quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {118, new Achievement(){ + { + 118, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Fatalis Exterminator", Description = string.Empty, @@ -1415,10 +1653,12 @@ public static class AchievementsMapper Objective = "Complete 50 Lv9999 Fatalis quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {119, new Achievement(){ + { + 119, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Fatalis' Nightmare", Description = string.Empty, @@ -1427,10 +1667,12 @@ public static class AchievementsMapper Objective = "Complete 1 Lv9999 Fatalis quest solo (Speedrun/Zen).", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {120, new Achievement(){ + { + 120, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Crimson Fatalis Slain", Description = string.Empty, @@ -1439,10 +1681,12 @@ public static class AchievementsMapper Objective = "Complete 1 Lv9999 Crimson Fatalis quest.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {121, new Achievement(){ + { + 121, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Crimson Fatalis Slayer", Description = string.Empty, @@ -1451,10 +1695,12 @@ public static class AchievementsMapper Objective = "Complete 10 Lv9999 Crimson Fatalis quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {122, new Achievement(){ + { + 122, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Crimson Fatalis Annihilator", Description = string.Empty, @@ -1463,10 +1709,12 @@ public static class AchievementsMapper Objective = "Complete 25 Lv9999 Crimson Fatalis quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {123, new Achievement(){ + { + 123, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Crimson Fatalis Exterminator", Description = string.Empty, @@ -1475,10 +1723,12 @@ public static class AchievementsMapper Objective = "Complete 50 Lv9999 Crimson Fatalis quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {124, new Achievement(){ + { + 124, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Crimson Fatalis' Nightmare", Description = string.Empty, @@ -1487,10 +1737,12 @@ public static class AchievementsMapper Objective = "Complete 1 Lv9999 Crimson Fatalis quest solo (Speedrun/Zen).", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {125, new Achievement(){ + { + 125, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Shantien Slain", Description = string.Empty, @@ -1499,10 +1751,12 @@ public static class AchievementsMapper Objective = "Complete 1 Lv9999 Shantien quest.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {126, new Achievement(){ + { + 126, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Shantien Slayer", Description = string.Empty, @@ -1511,10 +1765,12 @@ public static class AchievementsMapper Objective = "Complete 10 Lv9999 Shantien quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {127, new Achievement(){ + { + 127, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Shantien Annihilator", Description = string.Empty, @@ -1523,10 +1779,12 @@ public static class AchievementsMapper Objective = "Complete 25 Lv9999 Shantien quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {128, new Achievement(){ + { + 128, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Shantien Exterminator", Description = string.Empty, @@ -1535,10 +1793,12 @@ public static class AchievementsMapper Objective = "Complete 50 Lv9999 Shantien quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {129, new Achievement(){ + { + 129, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Shantien's Nightmare", Description = string.Empty, @@ -1547,10 +1807,12 @@ public static class AchievementsMapper Objective = "Complete 1 Lv9999 Shantien quest solo (Speedrun/Zen).", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {130, new Achievement(){ + { + 130, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Disufiroa Slain", Description = string.Empty, @@ -1559,10 +1821,12 @@ public static class AchievementsMapper Objective = "Complete 1 Lv9999 Disufiroa quest.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {131, new Achievement(){ + { + 131, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Disufiroa Slayer", Description = string.Empty, @@ -1571,10 +1835,12 @@ public static class AchievementsMapper Objective = "Complete 10 Lv9999 Disufiroa quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {132, new Achievement(){ + { + 132, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Disufiroa Annihilator", Description = string.Empty, @@ -1583,10 +1849,12 @@ public static class AchievementsMapper Objective = "Complete 25 Lv9999 Disufiroa quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {133, new Achievement(){ + { + 133, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Disufiroa Exterminator", Description = string.Empty, @@ -1595,10 +1863,12 @@ public static class AchievementsMapper Objective = "Complete 50 Lv9999 Disufiroa quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {134, new Achievement(){ + { + 134, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Disufiroa's Nightmare", Description = string.Empty, @@ -1607,10 +1877,12 @@ public static class AchievementsMapper Objective = "Complete 1 Lv9999 Disufiroa quest solo (Speedrun/Zen).", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {135, new Achievement(){ + { + 135, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "UNKNOWN Slain", Description = string.Empty, @@ -1619,10 +1891,12 @@ public static class AchievementsMapper Objective = "Complete 1 Upper Shiten Unknown quest.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {136, new Achievement(){ + { + 136, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "UNKNOWN Slayer", Description = string.Empty, @@ -1631,10 +1905,12 @@ public static class AchievementsMapper Objective = "Complete 10 Upper Shiten Unknown quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {137, new Achievement(){ + { + 137, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "UNKNOWN Annihilator", Description = string.Empty, @@ -1643,10 +1919,12 @@ public static class AchievementsMapper Objective = "Complete 25 Upper Shiten Unknown quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {138, new Achievement(){ + { + 138, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "UNKNOWN Exterminator", Description = string.Empty, @@ -1655,10 +1933,12 @@ public static class AchievementsMapper Objective = "Complete 50 Upper Shiten Unknown quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {139, new Achievement(){ + { + 139, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "UNKNOWN's Nightmare", Description = string.Empty, @@ -1667,10 +1947,12 @@ public static class AchievementsMapper Objective = "Complete 1 Upper Shiten Unknown quest solo (Speedrun/Zen).", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {140, new Achievement(){ + { + 140, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "At World's End", Description = string.Empty, @@ -1679,10 +1961,12 @@ public static class AchievementsMapper Objective = "Complete 1 Upper Shiten Disufiroa quest.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {141, new Achievement(){ + { + 141, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Apocalyptic Red Moon", Description = string.Empty, @@ -1691,10 +1975,12 @@ public static class AchievementsMapper Objective = "Complete 10 Upper Shiten Disufiroa quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {142, new Achievement(){ + { + 142, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Disufiroa's Last Stand", Description = string.Empty, @@ -1703,10 +1989,12 @@ public static class AchievementsMapper Objective = "Complete 25 Upper Shiten Disufiroa quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {143, new Achievement(){ + { + 143, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Blood Moon Emperor", Description = string.Empty, @@ -1715,10 +2003,12 @@ public static class AchievementsMapper Objective = "Complete 50 Upper Shiten Disufiroa quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {144, new Achievement(){ + { + 144, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Eclipse Conqueror", Description = string.Empty, @@ -1727,10 +2017,12 @@ public static class AchievementsMapper Objective = "Complete 1 Upper Shiten Disufiroa quest solo (Speedrun/Zen).", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {145, new Achievement(){ + { + 145, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Pariapuria Slain", Description = string.Empty, @@ -1739,10 +2031,12 @@ public static class AchievementsMapper Objective = "Complete 1 Thirsty Pariapuria quest.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {146, new Achievement(){ + { + 146, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Pariapuria Slayer", Description = string.Empty, @@ -1751,10 +2045,12 @@ public static class AchievementsMapper Objective = "Complete 10 Thirsty Pariapuria quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {147, new Achievement(){ + { + 147, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Pariapuria Annihilator", Description = string.Empty, @@ -1763,10 +2059,12 @@ public static class AchievementsMapper Objective = "Complete 25 Thirsty Pariapuria quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {148, new Achievement(){ + { + 148, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Pariapuria Exterminator", Description = string.Empty, @@ -1775,10 +2073,12 @@ public static class AchievementsMapper Objective = "Complete 50 Thirsty Pariapuria quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {149, new Achievement(){ + { + 149, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Pariapuria's Nightmare", Description = string.Empty, @@ -1787,10 +2087,12 @@ public static class AchievementsMapper Objective = "Complete 1 Thirsty Pariapuria quest solo (Speedrun/Zen).", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {150, new Achievement(){ + { + 150, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Guanzorumu Slain", Description = string.Empty, @@ -1799,10 +2101,12 @@ public static class AchievementsMapper Objective = "Complete 1 Ruling Guanzorumu True Slay quest.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {151, new Achievement(){ + { + 151, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Guanzorumu Slayer", Description = string.Empty, @@ -1811,10 +2115,12 @@ public static class AchievementsMapper Objective = "Complete 10 Ruling Guanzorumu True Slay quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {152, new Achievement(){ + { + 152, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Guanzorumu Annihilator", Description = string.Empty, @@ -1823,10 +2129,12 @@ public static class AchievementsMapper Objective = "Complete 25 Ruling Guanzorumu True Slay quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {153, new Achievement(){ + { + 153, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Guanzorumu Exterminator", Description = string.Empty, @@ -1835,10 +2143,12 @@ public static class AchievementsMapper Objective = "Complete 50 Ruling Guanzorumu True Slay quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {154, new Achievement(){ + { + 154, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Guanzorumu's Nightmare", Description = string.Empty, @@ -1847,10 +2157,12 @@ public static class AchievementsMapper Objective = "Complete 1 Ruling Guanzorumu True Slay quest solo (Speedrun/Zen).", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {155, new Achievement(){ + { + 155, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Mi Ru Slain", Description = string.Empty, @@ -1859,10 +2171,12 @@ public static class AchievementsMapper Objective = "Complete 1 Shifting Mi Ru quest.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {156, new Achievement(){ + { + 156, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Mi Ru Slayer", Description = string.Empty, @@ -1871,10 +2185,12 @@ public static class AchievementsMapper Objective = "Complete 10 Shifting Mi Ru quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {157, new Achievement(){ + { + 157, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Mi Ru Annihilator", Description = string.Empty, @@ -1883,10 +2199,12 @@ public static class AchievementsMapper Objective = "Complete 25 Shifting Mi Ru quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {158, new Achievement(){ + { + 158, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Mi Ru Exterminator", Description = string.Empty, @@ -1895,10 +2213,12 @@ public static class AchievementsMapper Objective = "Complete 50 Shifting Mi Ru quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {159, new Achievement(){ + { + 159, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Mi Ru's Nightmare", Description = string.Empty, @@ -1907,10 +2227,12 @@ public static class AchievementsMapper Objective = "Complete 1 Shifting Mi Ru quest solo (Speedrun/Zen).", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {160, new Achievement(){ + { + 160, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Nargacuga Slain", Description = string.Empty, @@ -1919,10 +2241,12 @@ public static class AchievementsMapper Objective = "Complete 1 Blinking Nargacuga True Slay quest.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {161, new Achievement(){ + { + 161, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Nargacuga Slayer", Description = string.Empty, @@ -1931,10 +2255,12 @@ public static class AchievementsMapper Objective = "Complete 10 Blinking Nargacuga True Slay quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {162, new Achievement(){ + { + 162, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Nargacuga Annihilator", Description = string.Empty, @@ -1943,10 +2269,12 @@ public static class AchievementsMapper Objective = "Complete 25 Blinking Nargacuga True Slay quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {163, new Achievement(){ + { + 163, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Nargacuga Exterminator", Description = string.Empty, @@ -1955,10 +2283,12 @@ public static class AchievementsMapper Objective = "Complete 50 Blinking Nargacuga True Slay quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {164, new Achievement(){ + { + 164, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Nargacuga's Nightmare", Description = string.Empty, @@ -1967,10 +2297,12 @@ public static class AchievementsMapper Objective = "Complete 1 Blinking Nargacuga True Slay quest solo (Speedrun/Zen).", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {165, new Achievement(){ + { + 165, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Zinogre Slain", Description = string.Empty, @@ -1979,10 +2311,12 @@ public static class AchievementsMapper Objective = "Complete 1 Howling Zinogre True Slay quest.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {166, new Achievement(){ + { + 166, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Zinogre Slayer", Description = string.Empty, @@ -1991,10 +2325,12 @@ public static class AchievementsMapper Objective = "Complete 10 Howling Zinogre True Slay quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {167, new Achievement(){ + { + 167, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Zinogre Annihilator", Description = string.Empty, @@ -2003,10 +2339,12 @@ public static class AchievementsMapper Objective = "Complete 25 Howling Zinogre True Slay quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {168, new Achievement(){ + { + 168, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Zinogre Exterminator", Description = string.Empty, @@ -2015,10 +2353,12 @@ public static class AchievementsMapper Objective = "Complete 50 Howling Zinogre True Slay quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {169, new Achievement(){ + { + 169, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Zinogre's Nightmare", Description = string.Empty, @@ -2027,10 +2367,12 @@ public static class AchievementsMapper Objective = "Complete 1 Howling Zinogre True Slay quest solo (Speedrun/Zen).", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {170, new Achievement(){ + { + 170, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Deviljho Slain", Description = string.Empty, @@ -2039,10 +2381,12 @@ public static class AchievementsMapper Objective = "Complete 1 Starving Deviljho True Slay quest.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {171, new Achievement(){ + { + 171, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Deviljho Slayer", Description = string.Empty, @@ -2051,10 +2395,12 @@ public static class AchievementsMapper Objective = "Complete 10 Starving Deviljho True Slay quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {172, new Achievement(){ + { + 172, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Deviljho Annihilator", Description = string.Empty, @@ -2063,10 +2409,12 @@ public static class AchievementsMapper Objective = "Complete 25 Starving Deviljho True Slay quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {173, new Achievement(){ + { + 173, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Deviljho Exterminator", Description = string.Empty, @@ -2075,10 +2423,12 @@ public static class AchievementsMapper Objective = "Complete 50 Starving Deviljho True Slay quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {174, new Achievement(){ + { + 174, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Deviljho's Nightmare", Description = string.Empty, @@ -2087,10 +2437,12 @@ public static class AchievementsMapper Objective = "Complete 1 Starving Deviljho True Slay quest solo (Speedrun/Zen).", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {175, new Achievement(){ + { + 175, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Zerureusu Slain", Description = string.Empty, @@ -2099,10 +2451,12 @@ public static class AchievementsMapper Objective = "Complete 1 Sparkling Zerureusu True Slay quest.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {176, new Achievement(){ + { + 176, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Zerureusu Slayer", Description = string.Empty, @@ -2111,10 +2465,12 @@ public static class AchievementsMapper Objective = "Complete 10 Sparkling Zerureusu True Slay quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {177, new Achievement(){ + { + 177, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Zerureusu Annihilator", Description = string.Empty, @@ -2123,10 +2479,12 @@ public static class AchievementsMapper Objective = "Complete 25 Sparkling Zerureusu True Slay quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {178, new Achievement(){ + { + 178, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Zerureusu Exterminator", Description = string.Empty, @@ -2135,10 +2493,12 @@ public static class AchievementsMapper Objective = "Complete 50 Sparkling Zerureusu True Slay quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {179, new Achievement(){ + { + 179, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Zerureusu's Nightmare", Description = string.Empty, @@ -2147,10 +2507,12 @@ public static class AchievementsMapper Objective = "Complete 1 Sparkling Zerureusu True Slay quest solo (Speedrun/Zen).", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {180, new Achievement(){ + { + 180, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Duremudira Slain", Description = string.Empty, @@ -2159,10 +2521,12 @@ public static class AchievementsMapper Objective = "Complete 1 Arrogant Duremudira True Slay quest.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {181, new Achievement(){ + { + 181, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Duremudira Slayer", Description = string.Empty, @@ -2171,10 +2535,12 @@ public static class AchievementsMapper Objective = "Complete 10 Arrogant Duremudira True Slay quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {182, new Achievement(){ + { + 182, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Duremudira Annihilator", Description = string.Empty, @@ -2183,10 +2549,12 @@ public static class AchievementsMapper Objective = "Complete 25 Arrogant Duremudira True Slay quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {183, new Achievement(){ + { + 183, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Duremudira Exterminator", Description = string.Empty, @@ -2195,10 +2563,12 @@ public static class AchievementsMapper Objective = "Complete 50 Arrogant Duremudira True Slay quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {184, new Achievement(){ + { + 184, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Duremudira's Nightmare", Description = string.Empty, @@ -2207,10 +2577,12 @@ public static class AchievementsMapper Objective = "Complete 1 Arrogant Duremudira True Slay quest solo (Speedrun/Zen).", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {185, new Achievement(){ + { + 185, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Bombardier", Description = string.Empty, @@ -2219,10 +2591,12 @@ public static class AchievementsMapper Objective = "Complete 1 Blitzkrieg Bogabadorumu True Slay quest.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {186, new Achievement(){ + { + 186, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Blitzkrieg", Description = string.Empty, @@ -2231,10 +2605,12 @@ public static class AchievementsMapper Objective = "Complete 10 Blitzkrieg Bogabadorumu True Slay quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {187, new Achievement(){ + { + 187, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Boggy", Description = string.Empty, @@ -2243,10 +2619,12 @@ public static class AchievementsMapper Objective = "Complete 25 Blitzkrieg Bogabadorumu True Slay quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {188, new Achievement(){ + { + 188, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Boggers", Description = string.Empty, @@ -2255,10 +2633,12 @@ public static class AchievementsMapper Objective = "Complete 50 Blitzkrieg Bogabadorumu True Slay quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {189, new Achievement(){ + { + 189, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Explosion!", Description = string.Empty, @@ -2267,10 +2647,12 @@ public static class AchievementsMapper Objective = "Complete 1 Blitzkrieg Bogabadorumu True Slay quest solo (Speedrun/Zen).", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {190, new Achievement(){ + { + 190, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Elzelion Slain", Description = string.Empty, @@ -2279,10 +2661,12 @@ public static class AchievementsMapper Objective = "Complete 1 Burning Freezing Elzelion True Slay quest.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {191, new Achievement(){ + { + 191, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Elzelion Slayer", Description = string.Empty, @@ -2291,10 +2675,12 @@ public static class AchievementsMapper Objective = "Complete 10 Burning Freezing Elzelion True Slay quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {192, new Achievement(){ + { + 192, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Elzelion Annihilator", Description = string.Empty, @@ -2303,10 +2689,12 @@ public static class AchievementsMapper Objective = "Complete 25 Burning Freezing Elzelion True Slay quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {193, new Achievement(){ + { + 193, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Elzelion Exterminator", Description = string.Empty, @@ -2315,10 +2703,12 @@ public static class AchievementsMapper Objective = "Complete 50 Burning Freezing Elzelion True Slay quests.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {194, new Achievement(){ + { + 194, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Elzelion's Nightmare", Description = string.Empty, @@ -2327,10 +2717,12 @@ public static class AchievementsMapper Objective = "Complete 1 Burning Freezing Elzelion True Slay quest solo (Speedrun/Zen).", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {195, new Achievement(){ + { + 195, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Seriously Thirsty", Description = string.Empty, @@ -2339,10 +2731,12 @@ public static class AchievementsMapper Objective = "Complete a Thirsty Pariapuria quest with a Serious Drink Affinity in your inventory.", IsSecret = true, - Hint = "I wish I had something to drink...seriously!" + Hint = "I wish I had something to drink...seriously!", } }, - {196, new Achievement(){ + { + 196, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Back to the Past", Description = string.Empty, @@ -2351,10 +2745,12 @@ public static class AchievementsMapper Objective = "Complete a Ruling Guanzorumu True Slay quest with a non-extreme style.", IsSecret = true, - Hint = "Do I really need to run to beat this monster?" + Hint = "Do I really need to run to beat this monster?", } }, - {197, new Achievement(){ + { + 197, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Shifty", Description = string.Empty, @@ -2363,10 +2759,12 @@ public static class AchievementsMapper Objective = "Complete a Shifting Mi Ru quest while having pressed Shift at the start.", IsSecret = true, - Hint = "What if the hunter is also shifting?" + Hint = "What if the hunter is also shifting?", } }, - {198, new Achievement(){ + { + 198, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Ultra Instinct", Description = string.Empty, @@ -2375,10 +2773,12 @@ public static class AchievementsMapper Objective = "Complete a Blinking Nargacuga True Slay quest without getting hit (including blocks)", IsSecret = true, - Hint = "Do you have the instinct to dodge everything?" + Hint = "Do you have the instinct to dodge everything?", } }, - {199, new Achievement(){ + { + 199, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "A lonely and starving wolf", Description = string.Empty, @@ -2387,10 +2787,12 @@ public static class AchievementsMapper Objective = "Complete a Howling Zinogre True Slay quest solo with 40 max stamina.", IsSecret = true, - Hint = "I'm starving and lonely." + Hint = "I'm starving and lonely.", } }, - {200, new Achievement(){ + { + 200, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Majestic Lord of Ice and Fire", Description = string.Empty, @@ -2399,10 +2801,12 @@ public static class AchievementsMapper Objective = "Complete a Burning Freezing Elzelion True Slay quest with Blazing Majesty and Ice Age", IsSecret = true, - Hint = "Fire and flame? No, ice and blaze!" + Hint = "Fire and flame? No, ice and blaze!", } }, - {201, new Achievement(){ + { + 201, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Bombardment", Description = string.Empty, @@ -2411,10 +2815,12 @@ public static class AchievementsMapper Objective = "Complete a Blitzkrieg Bogabadorumu True Slay quest with a Large Barrel Bomb in your inventory.", IsSecret = true, - Hint = "We are going to need bigger bombs for this guy..." + Hint = "We are going to need bigger bombs for this guy...", } }, - {202, new Achievement(){ + { + 202, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Oblivion Negated", Description = string.Empty, @@ -2423,10 +2829,12 @@ public static class AchievementsMapper Objective = "Complete an Arrogant Duremudira True Slay quest with Soul Revival equipped.", IsSecret = true, - Hint = "This thunder brings oblivion! Unless..." + Hint = "This thunder brings oblivion! Unless...", } }, - {203, new Achievement(){ + { + 203, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Lovely Vegetables", Description = string.Empty, @@ -2435,10 +2843,12 @@ public static class AchievementsMapper Objective = "Complete a certain quest on February 14th.", IsSecret = true, - Hint = "Veggie Elder! How I missed you..." + Hint = "Veggie Elder! How I missed you...", } }, - {204, new Achievement(){ + { + 204, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Ultimate Gunlance Duel", Description = string.Empty, @@ -2447,10 +2857,12 @@ public static class AchievementsMapper Objective = "Defeat Producer Gogomoa with a Gunlance", IsSecret = true, - Hint = "If he uses a Gunlance, so do I!" + Hint = "If he uses a Gunlance, so do I!", } }, - {205, new Achievement(){ + { + 205, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Emperor of Fire", Description = string.Empty, @@ -2459,10 +2871,12 @@ public static class AchievementsMapper Objective = "Complete a Four Heavenly King Deviljho quest.", IsSecret = true, - Hint = "Slay an emperor of fire." + Hint = "Slay an emperor of fire.", } }, - {206, new Achievement(){ + { + 206, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Dancing Gopher", Description = string.Empty, @@ -2471,10 +2885,12 @@ public static class AchievementsMapper Objective = "Complete a Hatsune Miku quest.", IsSecret = true, - Hint = "Erupe thinks we should dance!" + Hint = "Erupe thinks we should dance!", } }, - {207, new Achievement(){ + { + 207, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Singing Rappy", Description = string.Empty, @@ -2483,10 +2899,12 @@ public static class AchievementsMapper Objective = "Complete a PSO2 quest.", IsSecret = true, - Hint = "Rappy thinks we should sing!" + Hint = "Rappy thinks we should sing!", } }, - {208, new Achievement(){ + { + 208, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Gears of Destiny", Description = string.Empty, @@ -2495,10 +2913,12 @@ public static class AchievementsMapper Objective = "Complete a Megaman quest.", IsSecret = true, - Hint = "Obtain the Gears of Destiny." + Hint = "Obtain the Gears of Destiny.", } }, - {209, new Achievement(){ + { + 209, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Higanjima", Description = string.Empty, @@ -2507,10 +2927,12 @@ public static class AchievementsMapper Objective = "Complete a Higanjima quest.", IsSecret = true, - Hint = "Higanjima." + Hint = "Higanjima.", } }, - {210, new Achievement(){ + { + 210, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Plesioth Transformation", Description = string.Empty, @@ -2519,10 +2941,12 @@ public static class AchievementsMapper Objective = "Defeat the huge Plesioth.", IsSecret = true, - Hint = "Don't let the Plesioth grow." + Hint = "Don't let the Plesioth grow.", } }, - {211, new Achievement(){ + { + 211, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Oh noes! My sunglasses!", Description = string.Empty, @@ -2531,10 +2955,12 @@ public static class AchievementsMapper Objective = "Defeat Sunglasses Kut-Ku.", IsSecret = true, - Hint = "I need a new pair of sunglasses..." + Hint = "I need a new pair of sunglasses...", } }, - {212, new Achievement(){ + { + 212, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Quiz Time!", Description = string.Empty, @@ -2543,10 +2969,12 @@ public static class AchievementsMapper Objective = "Complete 1 MHF-Q quest.", IsSecret = true, - Hint = "You need an extreme amount of knowledge to complete this quest." + Hint = "You need an extreme amount of knowledge to complete this quest.", } }, - {213, new Achievement(){ + { + 213, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Smell No Evil", Description = string.Empty, @@ -2555,10 +2983,12 @@ public static class AchievementsMapper Objective = "Complete a certain Congalala quest.", IsSecret = true, - Hint = "See no evil, hear no evil, speak no evil." + Hint = "See no evil, hear no evil, speak no evil.", } }, - {214, new Achievement(){ + { + 214, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Zenny Galore", Description = string.Empty, @@ -2567,10 +2997,12 @@ public static class AchievementsMapper Objective = "Get the maximum amount of GZenny", IsSecret = true, - Hint = "I should probably hunt a Zenith Hypnoc." + Hint = "I should probably hunt a Zenith Hypnoc.", } }, - {215, new Achievement(){ + { + 215, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Diva's Friend", Description = string.Empty, @@ -2579,10 +3011,12 @@ public static class AchievementsMapper Objective = "Get the maximum amount of Diva Bond", IsSecret = true, - Hint = "Do you like fluffy cakes?" + Hint = "Do you like fluffy cakes?", } }, - {216, new Achievement(){ + { + 216, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "#1", Description = string.Empty, @@ -2591,10 +3025,12 @@ public static class AchievementsMapper Objective = "Obtain S Rank in all single-player MezFes minigames", IsSecret = true, - Hint = "Do you like minigames?" + Hint = "Do you like minigames?", } }, - {217, new Achievement(){ + { + 217, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Caravaneer", Description = string.Empty, @@ -2606,7 +3042,9 @@ public static class AchievementsMapper Hint = "Carry me Caravan take me away", } }, - {218, new Achievement(){ + { + 218, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Road Champion", Description = string.Empty, @@ -2615,10 +3053,12 @@ public static class AchievementsMapper Objective = "Get to Multiplayer Road Floor 50.", IsSecret = true, - Hint = "A long road ahead..." + Hint = "A long road ahead...", } }, - {219, new Achievement(){ + { + 219, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Rengoku", Description = string.Empty, @@ -2627,10 +3067,12 @@ public static class AchievementsMapper Objective = "Get to Multiplayer Road Floor 100.", IsSecret = true, - Hint = "End of the road?" + Hint = "End of the road?", } }, - {220, new Achievement(){ + { + 220, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Expert Companion", Description = string.Empty, @@ -2639,10 +3081,12 @@ public static class AchievementsMapper Objective = "Obtain a Max Level partner.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {221, new Achievement(){ + { + 221, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Solid Determination", Description = string.Empty, @@ -2651,10 +3095,12 @@ public static class AchievementsMapper Objective = "Attempt a quest 1000 times.", IsSecret = true, - Hint = "You need a strong determination for doing this quest this many times." + Hint = "You need a strong determination for doing this quest this many times.", } }, - {222, new Achievement(){ + { + 222, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Compensation", Description = string.Empty, @@ -2663,10 +3109,12 @@ public static class AchievementsMapper Objective = "Attempt a personal best 100 times.", IsSecret = true, - Hint = "You haven't gotten a new record yet, hopefully this cheers you up." + Hint = "You haven't gotten a new record yet, hopefully this cheers you up.", } }, - {223, new Achievement(){ + { + 223, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Chilling Monster Count", Description = string.Empty, @@ -2675,10 +3123,12 @@ public static class AchievementsMapper Objective = "Defeat 2nd District duremudira 100 times.", IsSecret = true, - Hint = "You killed that many monsters?!" + Hint = "You killed that many monsters?!", } }, - {224, new Achievement(){ + { + 224, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Emperor's Final Roar", Description = string.Empty, @@ -2687,10 +3137,12 @@ public static class AchievementsMapper Objective = "Defeat Road Fatalis 100 times.", IsSecret = true, - Hint = "How many times will this monster roar?!" + Hint = "How many times will this monster roar?!", } }, - {225, new Achievement(){ + { + 225, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Fumo", Description = string.Empty, @@ -2699,10 +3151,12 @@ public static class AchievementsMapper Objective = "Click a Fumo.", IsSecret = true, - Hint = "Fumo." + Hint = "Fumo.", } }, - {226, new Achievement(){ + { + 226, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Monkey Bomb", Description = string.Empty, @@ -2711,10 +3165,12 @@ public static class AchievementsMapper Objective = "Defeat the Twinhead Rajangs.", IsSecret = true, - Hint = "You will need to go even further beyond in order to beat this quest." + Hint = "You will need to go even further beyond in order to beat this quest.", } }, - {227, new Achievement(){ + { + 227, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Akura Vashimu's Nemesis", Description = string.Empty, @@ -2723,10 +3179,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Akura Vashimu quest under 10 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {228, new Achievement(){ + { + 228, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Anorupatisu's Nemesis", Description = string.Empty, @@ -2735,10 +3193,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Anorupatisu quest under 10 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {229, new Achievement(){ + { + 229, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Blangonga's Nemesis", Description = string.Empty, @@ -2747,10 +3207,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Blangonga quest under 10 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {230, new Achievement(){ + { + 230, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Daimyo Hermitaur's Nemesis", Description = string.Empty, @@ -2759,10 +3221,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Daimyo Hermitaur quest under 10 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {231, new Achievement(){ + { + 231, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Doragyurosu's Nemesis", Description = string.Empty, @@ -2771,10 +3235,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Doragyurosu quest under 10 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {232, new Achievement(){ + { + 232, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Espinas' Nemesis", Description = string.Empty, @@ -2783,10 +3249,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Espinas quest under 10 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {233, new Achievement(){ + { + 233, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Gasurabazura's Nemesis", Description = string.Empty, @@ -2795,10 +3263,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Gasurabazura quest under 10 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {234, new Achievement(){ + { + 234, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Giaorugu's Nemesis", Description = string.Empty, @@ -2807,10 +3277,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Giaorugu quest under 10 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {235, new Achievement(){ + { + 235, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Hypnocatrice's Nemesis", Description = string.Empty, @@ -2819,10 +3291,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Hypnocatrice quest under 10 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {236, new Achievement(){ + { + 236, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Hyujikiki's Nemesis", Description = string.Empty, @@ -2831,10 +3305,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Hyujikiki quest under 10 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {237, new Achievement(){ + { + 237, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Inagami's Nemesis", Description = string.Empty, @@ -2843,10 +3319,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Inagami quest under 10 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {238, new Achievement(){ + { + 238, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Khezu's Nemesis", Description = string.Empty, @@ -2855,10 +3333,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Khezu quest under 10 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {239, new Achievement(){ + { + 239, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Midogaron's Nemesis", Description = string.Empty, @@ -2867,10 +3347,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Midogaron quest under 10 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {240, new Achievement(){ + { + 240, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Plesioth's Nemesis", Description = string.Empty, @@ -2879,10 +3361,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Plesioth quest under 10 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {241, new Achievement(){ + { + 241, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Rathalos' Nemesis", Description = string.Empty, @@ -2891,10 +3375,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Rathalos quest under 10 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {242, new Achievement(){ + { + 242, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Rukodiora's Nemesis", Description = string.Empty, @@ -2903,10 +3389,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Rukodiora quest under 10 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {243, new Achievement(){ + { + 243, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Tigrex's Nemesis", Description = string.Empty, @@ -2915,10 +3403,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Tigrex quest under 10 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {244, new Achievement(){ + { + 244, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Toridcless' Nemesis", Description = string.Empty, @@ -2927,10 +3417,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Toridcless quest under 10 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {245, new Achievement(){ + { + 245, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Baruragaru's Nemesis", Description = string.Empty, @@ -2939,10 +3431,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Baruragaru quest under 10 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {246, new Achievement(){ + { + 246, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Bogabadorumu's Nemesis", Description = string.Empty, @@ -2951,10 +3445,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Bogabadorumu quest under 10 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {247, new Achievement(){ + { + 247, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Gravios' Nemesis", Description = string.Empty, @@ -2963,10 +3459,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Gravios quest under 10 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {248, new Achievement(){ + { + 248, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Harudomerugu's Nemesis", Description = string.Empty, @@ -2975,10 +3473,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Harudomerugu quest under 10 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {249, new Achievement(){ + { + 249, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Taikun Zamuza's Nemesis", Description = string.Empty, @@ -2987,10 +3487,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Taikun Zamuza quest under 10 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {250, new Achievement(){ + { + 250, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Fatalis' Nemesis", Description = string.Empty, @@ -2999,10 +3501,12 @@ public static class AchievementsMapper Objective = "Complete 1 Lv9999 Fatalis quest under 10 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {251, new Achievement(){ + { + 251, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Crimson Fatalis' Nemesis", Description = string.Empty, @@ -3011,10 +3515,12 @@ public static class AchievementsMapper Objective = "Complete 1 Lv9999 Crimson Fatalis quest under 10 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {252, new Achievement(){ + { + 252, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Shantien's Nemesis", Description = string.Empty, @@ -3023,10 +3529,12 @@ public static class AchievementsMapper Objective = "Complete 1 Lv9999 Shantien quest under 10 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {253, new Achievement(){ + { + 253, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Disufiroa's Nemesis", Description = string.Empty, @@ -3035,10 +3543,12 @@ public static class AchievementsMapper Objective = "Complete 1 Lv9999 Disufiroa quest under 10 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {254, new Achievement(){ + { + 254, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Akura Vashimu's Archenemy", Description = string.Empty, @@ -3047,10 +3557,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Akura Vashimu quest under 8 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {255, new Achievement(){ + { + 255, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Anorupatisu's Archenemy", Description = string.Empty, @@ -3059,10 +3571,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Anorupatisu quest under 8 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {256, new Achievement(){ + { + 256, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Blangonga's Archenemy", Description = string.Empty, @@ -3071,10 +3585,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Blangonga quest under 8 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {257, new Achievement(){ + { + 257, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Daimyo Hermitaur's Archenemy", Description = string.Empty, @@ -3083,10 +3599,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Daimyo Hermitaur quest under 8 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {258, new Achievement(){ + { + 258, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Doragyurosu's Archenemy", Description = string.Empty, @@ -3095,10 +3613,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Doragyurosu quest under 8 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {259, new Achievement(){ + { + 259, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Espinas' Archenemy", Description = string.Empty, @@ -3107,10 +3627,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Espinas quest under 8 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {260, new Achievement(){ + { + 260, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Gasurabazura's Archenemy", Description = string.Empty, @@ -3119,10 +3641,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Gasurabazura quest under 8 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {261, new Achievement(){ + { + 261, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Giaorugu's Archenemy", Description = string.Empty, @@ -3131,10 +3655,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Giaorugu quest under 8 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {262, new Achievement(){ + { + 262, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Hypnocatrice's Archenemy", Description = string.Empty, @@ -3143,10 +3669,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Hypnocatrice quest under 8 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {263, new Achievement(){ + { + 263, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Hyujikiki's Archenemy", Description = string.Empty, @@ -3155,10 +3683,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Hyujikiki quest under 8 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {264, new Achievement(){ + { + 264, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Inagami's Archenemy", Description = string.Empty, @@ -3167,10 +3697,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Inagami quest under 8 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {265, new Achievement(){ + { + 265, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Khezu's Archenemy", Description = string.Empty, @@ -3179,10 +3711,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Khezu quest under 8 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {266, new Achievement(){ + { + 266, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Midogaron's Archenemy", Description = string.Empty, @@ -3191,10 +3725,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Midogaron quest under 8 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {267, new Achievement(){ + { + 267, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Plesioth's Archenemy", Description = string.Empty, @@ -3203,10 +3739,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Plesioth quest under 8 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {268, new Achievement(){ + { + 268, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Rathalos' Archenemy", Description = string.Empty, @@ -3215,10 +3753,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Rathalos quest under 8 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {269, new Achievement(){ + { + 269, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Rukodiora's Archenemy", Description = string.Empty, @@ -3227,10 +3767,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Rukodiora quest under 8 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {270, new Achievement(){ + { + 270, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Tigrex's Archenemy", Description = string.Empty, @@ -3239,10 +3781,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Tigrex quest under 8 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {271, new Achievement(){ + { + 271, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Toridcless's Archenemy", Description = string.Empty, @@ -3251,10 +3795,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Toridcless quest under 8 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {272, new Achievement(){ + { + 272, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Baruragaru's Archenemy", Description = string.Empty, @@ -3263,10 +3809,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Baruragaru quest under 8 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {273, new Achievement(){ + { + 273, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Bogabadorumu's Archenemy", Description = string.Empty, @@ -3275,10 +3823,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Bogabadorumu quest under 8 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {274, new Achievement(){ + { + 274, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Gravios's Archenemy", Description = string.Empty, @@ -3287,10 +3837,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Gravios quest under 8 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {275, new Achievement(){ + { + 275, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Harudomerugu's Archenemy", Description = string.Empty, @@ -3299,10 +3851,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Harudomerugu quest under 8 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {276, new Achievement(){ + { + 276, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Taikun Zamuza's Archenemy", Description = string.Empty, @@ -3311,10 +3865,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Taikun Zamuza quest under 8 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {277, new Achievement(){ + { + 277, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Fatalis' Archenemy", Description = string.Empty, @@ -3323,10 +3879,12 @@ public static class AchievementsMapper Objective = "Complete 1 Lv9999 Fatalis quest under 8 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {278, new Achievement(){ + { + 278, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Crimson Fatalis' Archenemy", Description = string.Empty, @@ -3335,10 +3893,12 @@ public static class AchievementsMapper Objective = "Complete 1 Lv9999 Crimson Fatalis quest under 8 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {279, new Achievement(){ + { + 279, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Shantien's Archenemy", Description = string.Empty, @@ -3347,10 +3907,12 @@ public static class AchievementsMapper Objective = "Complete 1 Lv9999 Shantien quest under 8 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {280, new Achievement(){ + { + 280, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Disufiroa's Archenemy", Description = string.Empty, @@ -3359,10 +3921,12 @@ public static class AchievementsMapper Objective = "Complete 1 Lv9999 Disufiroa quest under 8 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {281, new Achievement(){ + { + 281, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Akura Vashimu's Bane", Description = string.Empty, @@ -3371,10 +3935,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Akura Vashimu quest under 5 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {282, new Achievement(){ + { + 282, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Anorupatisu's Bane", Description = string.Empty, @@ -3383,10 +3949,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Anorupatisu quest under 5 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {283, new Achievement(){ + { + 283, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Blangonga's Bane", Description = string.Empty, @@ -3395,10 +3963,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Blangonga quest under 5 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {284, new Achievement(){ + { + 284, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Daimyo Hermitaur's Bane", Description = string.Empty, @@ -3407,10 +3977,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Daimyo Hermitaur quest under 5 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {285, new Achievement(){ + { + 285, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Doragyurosu's Bane", Description = string.Empty, @@ -3419,10 +3991,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Doragyurosu quest under 5 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {286, new Achievement(){ + { + 286, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Espinas' Bane", Description = string.Empty, @@ -3431,10 +4005,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Espinas quest under 5 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {287, new Achievement(){ + { + 287, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Gasurabazura's Bane", Description = string.Empty, @@ -3443,10 +4019,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Gasurabazura quest under 5 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {288, new Achievement(){ + { + 288, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Giaorugu's Bane", Description = string.Empty, @@ -3455,10 +4033,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Giaorugu quest under 5 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {289, new Achievement(){ + { + 289, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Hypnocatrice's Bane", Description = string.Empty, @@ -3467,10 +4047,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Hypnocatrice quest under 5 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {290, new Achievement(){ + { + 290, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Hyujikiki's Bane", Description = string.Empty, @@ -3479,10 +4061,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Hyujikiki quest under 5 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {291, new Achievement(){ + { + 291, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Inagami's Bane", Description = string.Empty, @@ -3491,10 +4075,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Inagami quest under 5 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {292, new Achievement(){ + { + 292, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Khezu's Bane", Description = string.Empty, @@ -3503,10 +4089,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Khezu quest under 5 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {293, new Achievement(){ + { + 293, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Midogaron's Bane", Description = string.Empty, @@ -3515,10 +4103,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Midogaron quest under 5 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {294, new Achievement(){ + { + 294, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Plesioth's Bane", Description = string.Empty, @@ -3527,10 +4117,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Plesioth quest under 5 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {295, new Achievement(){ + { + 295, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Rathalos' Bane", Description = string.Empty, @@ -3539,10 +4131,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Rathalos quest under 5 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {296, new Achievement(){ + { + 296, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Rukodiora's Bane", Description = string.Empty, @@ -3551,10 +4145,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Rukodiora quest under 5 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {297, new Achievement(){ + { + 297, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Tigrex's Bane", Description = string.Empty, @@ -3563,10 +4159,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Tigrex quest under 5 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {298, new Achievement(){ + { + 298, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Toridcless' Bane", Description = string.Empty, @@ -3575,10 +4173,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Toridcless quest under 5 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {299, new Achievement(){ + { + 299, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Baruragaru' Bane", Description = string.Empty, @@ -3587,10 +4187,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Baruragaru quest under 5 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {300, new Achievement(){ + { + 300, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Bogabadorumu's Bane", Description = string.Empty, @@ -3599,10 +4201,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Bogabadorumu quest under 5 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {301, new Achievement(){ + { + 301, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Gravios' Bane", Description = string.Empty, @@ -3611,10 +4215,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Gravios quest under 5 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {302, new Achievement(){ + { + 302, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Harudomerugu's Bane", Description = string.Empty, @@ -3623,10 +4229,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Harudomerugu quest under 5 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {303, new Achievement(){ + { + 303, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Taikun Zamuza's Bane", Description = string.Empty, @@ -3635,10 +4243,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith★4 Taikun Zamuza quest under 5 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {304, new Achievement(){ + { + 304, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Fatalis' Bane", Description = string.Empty, @@ -3647,10 +4257,12 @@ public static class AchievementsMapper Objective = "Complete 1 Lv9999 Fatalis quest under 5 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {305, new Achievement(){ + { + 305, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Crimson Fatalis' Bane", Description = string.Empty, @@ -3659,10 +4271,12 @@ public static class AchievementsMapper Objective = "Complete 1 Lv9999 Crimson Fatalis quest under 5 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {306, new Achievement(){ + { + 306, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Shantien's Bane", Description = string.Empty, @@ -3671,10 +4285,12 @@ public static class AchievementsMapper Objective = "Complete 1 Lv9999 Shantien quest under 5 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {307, new Achievement(){ + { + 307, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Disufiroa's Bane", Description = string.Empty, @@ -3683,10 +4299,12 @@ public static class AchievementsMapper Objective = "Complete 1 Lv9999 Disufiroa quest under 5 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {308, new Achievement(){ + { + 308, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Pariapuria's Bane", Description = string.Empty, @@ -3695,10 +4313,12 @@ public static class AchievementsMapper Objective = "Complete 1 Thirsty Pariapuria quest under 3 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {309, new Achievement(){ + { + 309, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Mi Ru's Bane", Description = string.Empty, @@ -3707,10 +4327,12 @@ public static class AchievementsMapper Objective = "Complete 1 Shifting Mi Ru quest under 5 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {310, new Achievement(){ + { + 310, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Guanzorumu's Bane", Description = string.Empty, @@ -3719,10 +4341,12 @@ public static class AchievementsMapper Objective = "Complete 1 Ruling Guanzorumu True Slay quest under 5 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {311, new Achievement(){ + { + 311, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Nargacuga's Bane", Description = string.Empty, @@ -3731,10 +4355,12 @@ public static class AchievementsMapper Objective = "Complete 1 Blinking Nargacuga True Slay quest under 7 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {312, new Achievement(){ + { + 312, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Zinogre's Bane", Description = string.Empty, @@ -3743,10 +4369,12 @@ public static class AchievementsMapper Objective = "Complete 1 Howling Zinogre True Slay quest under 7 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {313, new Achievement(){ + { + 313, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Zerureusu's Bane", Description = string.Empty, @@ -3755,10 +4383,12 @@ public static class AchievementsMapper Objective = "Complete 1 Sparkling Zerureusu True Slay quest under 9 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {314, new Achievement(){ + { + 314, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Deviljho's Bane", Description = string.Empty, @@ -3767,10 +4397,12 @@ public static class AchievementsMapper Objective = "Complete 1 Starving Deviljho True Slay quest under 9 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {315, new Achievement(){ + { + 315, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Duremudira's Bane", Description = string.Empty, @@ -3779,10 +4411,12 @@ public static class AchievementsMapper Objective = "Complete 1 Arrogant Duremudira True Slay quest under 9 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {316, new Achievement(){ + { + 316, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Come on Big Guy!", Description = string.Empty, @@ -3791,10 +4425,12 @@ public static class AchievementsMapper Objective = "Complete 1 Blitzkrieg Bogabadorumu True Slay quest under 9 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {317, new Achievement(){ + { + 317, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Elzelion's Bane", Description = string.Empty, @@ -3803,10 +4439,12 @@ public static class AchievementsMapper Objective = "Complete 1 Burning Freezing Elzelion True Slay quest under 9 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {318, new Achievement(){ + { + 318, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "UNKNOWN's Bane", Description = string.Empty, @@ -3815,10 +4453,12 @@ public static class AchievementsMapper Objective = "Complete 1 Upper Shiten Unknown quest under 9 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {319, new Achievement(){ + { + 319, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Bloodthirsty Moon", Description = string.Empty, @@ -3827,10 +4467,12 @@ public static class AchievementsMapper Objective = "Complete 1 Upper Shiten Disufiroa quest under 9 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {320, new Achievement(){ + { + 320, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Well, that was easy!", Description = string.Empty, @@ -3839,10 +4481,12 @@ public static class AchievementsMapper Objective = "Complete Bingo (Easy).", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {321, new Achievement(){ + { + 321, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Ramping Up The Difficulty", Description = string.Empty, @@ -3851,10 +4495,12 @@ public static class AchievementsMapper Objective = "Complete Bingo (Medium).", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {322, new Achievement(){ + { + 322, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Bingo!", Description = string.Empty, @@ -3863,10 +4509,12 @@ public static class AchievementsMapper Objective = "Complete Bingo (Hard).", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {323, new Achievement(){ + { + 323, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "B I N G O", Description = string.Empty, @@ -3875,10 +4523,12 @@ public static class AchievementsMapper Objective = "Complete Bingo (Extreme).", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {324, new Achievement(){ + { + 324, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Shiny!", Description = string.Empty, @@ -3887,10 +4537,12 @@ public static class AchievementsMapper Objective = "Obtain a Gacha Card.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {325, new Achievement(){ + { + 325, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Getting the hang of it", Description = string.Empty, @@ -3899,10 +4551,12 @@ public static class AchievementsMapper Objective = "Obtain 100 Gacha Cards.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {326, new Achievement(){ + { + 326, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Gacha Collector", Description = string.Empty, @@ -3911,10 +4565,12 @@ public static class AchievementsMapper Objective = "Obtain 1000 Gacha Cards.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {327, new Achievement(){ + { + 327, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Gacha Overlord", Description = string.Empty, @@ -3923,10 +4579,12 @@ public static class AchievementsMapper Objective = "Obtain all Gacha Cards.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {328, new Achievement(){ + { + 328, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "This is just the beginning", Description = string.Empty, @@ -3935,10 +4593,12 @@ public static class AchievementsMapper Objective = "Complete 1 Zenith Gauntlet.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {329, new Achievement(){ + { + 329, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Pinnacle of Hunting", Description = string.Empty, @@ -3947,10 +4607,12 @@ public static class AchievementsMapper Objective = "Complete 10 Zenith Gauntlets.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {330, new Achievement(){ + { + 330, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Zenith Exterminator", Description = string.Empty, @@ -3959,10 +4621,12 @@ public static class AchievementsMapper Objective = "Complete 25 Zenith Gauntlets.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {331, new Achievement(){ + { + 331, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Speedster", Description = string.Empty, @@ -3971,10 +4635,12 @@ public static class AchievementsMapper Objective = "Complete a Zenith Gauntlet under 4 hours.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {332, new Achievement(){ + { + 332, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Conqueror", Description = string.Empty, @@ -3983,10 +4649,12 @@ public static class AchievementsMapper Objective = "Complete 1 Solstice Gauntlet.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {333, new Achievement(){ + { + 333, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Supreme Conqueror", Description = string.Empty, @@ -3995,10 +4663,12 @@ public static class AchievementsMapper Objective = "Complete 10 Solstice Gauntlets.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {334, new Achievement(){ + { + 334, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Solstice Conqueror", Description = string.Empty, @@ -4007,10 +4677,12 @@ public static class AchievementsMapper Objective = "Complete 25 Solstice Gauntlets.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {335, new Achievement(){ + { + 335, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Marathon Runner", Description = string.Empty, @@ -4019,10 +4691,12 @@ public static class AchievementsMapper Objective = "Complete a Solstice Gauntlet under an hour.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {336, new Achievement(){ + { + 336, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Unstoppable", Description = string.Empty, @@ -4031,10 +4705,12 @@ public static class AchievementsMapper Objective = "Complete 1 Musou Gauntlet.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {337, new Achievement(){ + { + 337, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Peerless", Description = string.Empty, @@ -4043,10 +4719,12 @@ public static class AchievementsMapper Objective = "Complete 10 Musou Gauntlets.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {338, new Achievement(){ + { + 338, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Musou", Description = string.Empty, @@ -4055,10 +4733,12 @@ public static class AchievementsMapper Objective = "Complete 25 Musou Gauntlets.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {339, new Achievement(){ + { + 339, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Speedrunner", Description = string.Empty, @@ -4067,10 +4747,12 @@ public static class AchievementsMapper Objective = "Complete a Musou Gauntlet under 100 minutes.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {340, new Achievement(){ + { + 340, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "We Gamin' Bois", Description = string.Empty, @@ -4079,10 +4761,12 @@ public static class AchievementsMapper Objective = "Enable Discord Rich Presence", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {341, new Achievement(){ + { + 341, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "No Distractions", Description = string.Empty, @@ -4091,10 +4775,12 @@ public static class AchievementsMapper Objective = "Enable Zen mode", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {342, new Achievement(){ + { + 342, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Speed", Description = string.Empty, @@ -4103,10 +4789,12 @@ public static class AchievementsMapper Objective = "Enable one of the Speedrun modes", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {343, new Achievement(){ + { + 343, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Yummy", Description = string.Empty, @@ -4115,10 +4803,12 @@ public static class AchievementsMapper Objective = "Complete 50 quests with Guild Food", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {344, new Achievement(){ + { + 344, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "More Skills!", Description = string.Empty, @@ -4127,10 +4817,12 @@ public static class AchievementsMapper Objective = "Complete 50 quests with a Diva Skill", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {345, new Achievement(){ + { + 345, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "The Best Gallery", Description = string.Empty, @@ -4139,10 +4831,12 @@ public static class AchievementsMapper Objective = "Earn 100,000 or more evaluation points in the gallery competition in My Gallery.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {346, new Achievement(){ + { + 346, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Monster Hunter", Description = string.Empty, @@ -4151,10 +4845,12 @@ public static class AchievementsMapper Objective = "Hunt 1000 Large Monsters.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {347, new Achievement(){ + { + 347, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Dedicated", Description = string.Empty, @@ -4163,10 +4859,12 @@ public static class AchievementsMapper Objective = "Have a total hunt time of 100 hours.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {348, new Achievement(){ + { + 348, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "20% more damage for 99% more effort", Description = string.Empty, @@ -4174,10 +4872,12 @@ public static class AchievementsMapper Image = @"pack://application:,,,/MHFZ_Overlay;component/Assets/Icons/achievement/berserk_raviente.jpg", Objective = "Complete a quest with a Z100 weapon.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {349, new Achievement(){ + { + 349, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Mosswine's Revenge", Description = string.Empty, @@ -4185,10 +4885,12 @@ public static class AchievementsMapper Image = @"pack://application:,,,/MHFZ_Overlay;component/Assets/Icons/achievement/unknown_white.jpg", Objective = "Find a very peculiar mosswine.", IsSecret = true, - Hint = "I have no gear and I'm hunting a White Fatalis?!" + Hint = "I have no gear and I'm hunting a White Fatalis?!", } }, - {350, new Achievement(){ + { + 350, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Jungle Puzzle", Description = string.Empty, @@ -4196,10 +4898,12 @@ public static class AchievementsMapper Image = @"pack://application:,,,/MHFZ_Overlay;component/Assets/Icons/achievement/unknown_white.jpg", Objective = "Complete the Jungle Puzzle quest.", IsSecret = true, - Hint = "I found some rocks in this jungle, I wonder what they are for..." + Hint = "I found some rocks in this jungle, I wonder what they are for...", } }, - {351, new Achievement(){ + { + 351, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Poogie's Best Friend", Description = string.Empty, @@ -4207,10 +4911,12 @@ public static class AchievementsMapper Image = @"pack://application:,,,/MHFZ_Overlay;component/Assets/Icons/achievement/poogie.jpg", Objective = "Complete 100 quests having used a Poogie item", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {352, new Achievement(){ + { + 352, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Gypceros' Judgment", Description = string.Empty, @@ -4218,10 +4924,12 @@ public static class AchievementsMapper Image = @"pack://application:,,,/MHFZ_Overlay;component/Assets/Icons/achievement/unknown_white.jpg", Objective = "Defeat Nuclear Gypceros", IsSecret = true, - Hint = "Can you survive the nuclear explosion?" + Hint = "Can you survive the nuclear explosion?", } }, - {353, new Achievement(){ + { + 353, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Mosswine's Rage", Description = string.Empty, @@ -4229,10 +4937,12 @@ public static class AchievementsMapper Image = @"pack://application:,,,/MHFZ_Overlay;component/Assets/Icons/achievement/unknown_white.jpg", Objective = "Defeat Mosswine in an arena", IsSecret = true, - Hint = "This mosswine wants a duel." + Hint = "This mosswine wants a duel.", } }, - {354, new Achievement(){ + { + 354, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Mosswine's Last Stand", Description = string.Empty, @@ -4240,10 +4950,12 @@ public static class AchievementsMapper Image = @"pack://application:,,,/MHFZ_Overlay;component/Assets/Icons/achievement/unknown_black.jpg", Objective = "Defeat the mosswine on the top of tower", IsSecret = true, - Hint = "You escaped from the White Fatalis, but can you reach the top back in time?" + Hint = "You escaped from the White Fatalis, but can you reach the top back in time?", } }, - {355, new Achievement(){ + { + 355, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Winter General", Description = string.Empty, @@ -4251,10 +4963,12 @@ public static class AchievementsMapper Image = @"pack://application:,,,/MHFZ_Overlay;component/Assets/Icons/achievement/unknown_blue.jpg", Objective = "Complete the Halloween Speedster quest", IsSecret = true, - Hint = "Can you place the guild flags on this snowy mountain fast enough?" + Hint = "Can you place the guild flags on this snowy mountain fast enough?", } }, - {356, new Achievement(){ + { + 356, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "The Perfect Bingo", Description = string.Empty, @@ -4262,10 +4976,12 @@ public static class AchievementsMapper Image = @"pack://application:,,,/MHFZ_Overlay;component/Assets/Icons/achievement/stamp.jpg", Objective = "Obtain 1000 Bingo points or more in 1 bingo card completion.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {357, new Achievement(){ + { + 357, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Bingo Beginner", Description = string.Empty, @@ -4273,10 +4989,12 @@ public static class AchievementsMapper Image = @"pack://application:,,,/MHFZ_Overlay;component/Assets/Icons/achievement/stamp.jpg", Objective = "Complete a bingo card.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {358, new Achievement(){ + { + 358, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Bingo Enthusiast", Description = string.Empty, @@ -4284,10 +5002,12 @@ public static class AchievementsMapper Image = @"pack://application:,,,/MHFZ_Overlay;component/Assets/Icons/achievement/stamp.jpg", Objective = "Complete 10 bingo cards.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {359, new Achievement(){ + { + 359, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Bingo Expert", Description = string.Empty, @@ -4295,10 +5015,12 @@ public static class AchievementsMapper Image = @"pack://application:,,,/MHFZ_Overlay;component/Assets/Icons/achievement/stamp.jpg", Objective = "Complete 25 bingo cards.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {360, new Achievement(){ + { + 360, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Bingo Maniac", Description = string.Empty, @@ -4306,10 +5028,12 @@ public static class AchievementsMapper Image = @"pack://application:,,,/MHFZ_Overlay;component/Assets/Icons/achievement/stamp.jpg", Objective = "Complete 50 bingo cards.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {361, new Achievement(){ + { + 361, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Gacha Beginner", Description = string.Empty, @@ -4317,10 +5041,12 @@ public static class AchievementsMapper Image = @"pack://application:,,,/MHFZ_Overlay;component/Assets/Icons/achievement/zenny.jpg", Objective = "Generate 1 gacha pull.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {362, new Achievement(){ + { + 362, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Gacha Enthusiast", Description = string.Empty, @@ -4328,10 +5054,12 @@ public static class AchievementsMapper Image = @"pack://application:,,,/MHFZ_Overlay;component/Assets/Icons/achievement/zenny.jpg", Objective = "Generate 10 gacha pulls.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {363, new Achievement(){ + { + 363, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Gacha Expert", Description = string.Empty, @@ -4339,10 +5067,12 @@ public static class AchievementsMapper Image = @"pack://application:,,,/MHFZ_Overlay;component/Assets/Icons/achievement/zenny.jpg", Objective = "Generate 100 gacha pulls.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {364, new Achievement(){ + { + 364, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Gacha Maniac", Description = string.Empty, @@ -4350,10 +5080,12 @@ public static class AchievementsMapper Image = @"pack://application:,,,/MHFZ_Overlay;component/Assets/Icons/achievement/zenny.jpg", Objective = "Generate 1000 gacha pulls.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {365, new Achievement(){ + { + 365, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Gacha God", Description = string.Empty, @@ -4361,10 +5093,12 @@ public static class AchievementsMapper Image = @"pack://application:,,,/MHFZ_Overlay;component/Assets/Icons/achievement/zenny.jpg", Objective = "Generate 10000 gacha pulls.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {366, new Achievement(){ + { + 366, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "B O N U S", Description = string.Empty, @@ -4372,10 +5106,12 @@ public static class AchievementsMapper Image = @"pack://application:,,,/MHFZ_Overlay;component/Assets/Icons/achievement/zenny.jpg", Objective = "Generate a gacha pull using gacha bonus coins.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {367, new Achievement(){ + { + 367, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Shimmering Coins", Description = string.Empty, @@ -4383,10 +5119,12 @@ public static class AchievementsMapper Image = @"pack://application:,,,/MHFZ_Overlay;component/Assets/Icons/achievement/zenny.jpg", Objective = "Generate a gacha pull using gacha prismatic coins.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {368, new Achievement(){ + { + 368, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "The First Generation", Description = string.Empty, @@ -4394,10 +5132,12 @@ public static class AchievementsMapper Image = @"pack://application:,,,/MHFZ_Overlay;component/Assets/Icons/achievement/stamp.jpg", Objective = "Obtain all gacha cards from MH1, MH1G and MHF1.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {369, new Achievement(){ + { + 369, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "The Second Generation", Description = string.Empty, @@ -4405,10 +5145,12 @@ public static class AchievementsMapper Image = @"pack://application:,,,/MHFZ_Overlay;component/Assets/Icons/achievement/stamp.jpg", Objective = "Obtain all gacha cards from MH2, MHF2 and MHFU.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {370, new Achievement(){ + { + 370, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "The Third Generation", Description = string.Empty, @@ -4416,10 +5158,12 @@ public static class AchievementsMapper Image = @"pack://application:,,,/MHFZ_Overlay;component/Assets/Icons/achievement/stamp.jpg", Objective = "Obtain all gacha cards from MH3, MHP3 and MH3U.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {371, new Achievement(){ + { + 371, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "The Fourth Generation", Description = string.Empty, @@ -4427,10 +5171,12 @@ public static class AchievementsMapper Image = @"pack://application:,,,/MHFZ_Overlay;component/Assets/Icons/achievement/stamp.jpg", Objective = "Obtain all gacha cards from MH4, MH4U, MHG and MHGU.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {372, new Achievement(){ + { + 372, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "The Fifth Generation", Description = string.Empty, @@ -4438,10 +5184,12 @@ public static class AchievementsMapper Image = @"pack://application:,,,/MHFZ_Overlay;component/Assets/Icons/achievement/stamp.jpg", Objective = "Obtain all gacha cards from MHW, MHWI, MHR and MHRS.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {373, new Achievement(){ + { + 373, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "The Spinoffs", Description = string.Empty, @@ -4449,10 +5197,12 @@ public static class AchievementsMapper Image = @"pack://application:,,,/MHFZ_Overlay;component/Assets/Icons/achievement/stamp.jpg", Objective = "Obtain all gacha cards from MHXR, MHST and MHST2.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {374, new Achievement(){ + { + 374, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Online", Description = string.Empty, @@ -4460,10 +5210,12 @@ public static class AchievementsMapper Image = @"pack://application:,,,/MHFZ_Overlay;component/Assets/Icons/achievement/stamp.jpg", Objective = "Obtain all gacha cards from Monster Hunter Online.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {375, new Achievement(){ + { + 375, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "In search of a new frontier", Description = string.Empty, @@ -4471,10 +5223,12 @@ public static class AchievementsMapper Image = @"pack://application:,,,/MHFZ_Overlay;component/Assets/Icons/achievement/stamp.jpg", Objective = "Obtain all gacha cards from Monster Hunter Frontier", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {376, new Achievement(){ + { + 376, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "PRI", Description = string.Empty, @@ -4482,10 +5236,12 @@ public static class AchievementsMapper Image = @"pack://application:,,,/MHFZ_Overlay;component/Assets/Icons/achievement/stamp.jpg", Objective = "Obtain a ★1 gacha card.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {377, new Achievement(){ + { + 377, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "DUO", Description = string.Empty, @@ -4493,10 +5249,12 @@ public static class AchievementsMapper Image = @"pack://application:,,,/MHFZ_Overlay;component/Assets/Icons/achievement/stamp.jpg", Objective = "Obtain 2 ★2 gacha cards.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {378, new Achievement(){ + { + 378, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "TRI", Description = string.Empty, @@ -4504,10 +5262,12 @@ public static class AchievementsMapper Image = @"pack://application:,,,/MHFZ_Overlay;component/Assets/Icons/achievement/stamp.jpg", Objective = "Obtain 3 ★3 gacha cards.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {379, new Achievement(){ + { + 379, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "TET", Description = string.Empty, @@ -4515,10 +5275,12 @@ public static class AchievementsMapper Image = @"pack://application:,,,/MHFZ_Overlay;component/Assets/Icons/achievement/stamp.jpg", Objective = "Obtain 4 ★4 gacha cards.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {380, new Achievement(){ + { + 380, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "PEN", Description = string.Empty, @@ -4526,10 +5288,12 @@ public static class AchievementsMapper Image = @"pack://application:,,,/MHFZ_Overlay;component/Assets/Icons/achievement/stamp.jpg", Objective = "Obtain 5 ★5 gacha cards.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {381, new Achievement(){ + { + 381, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "HEX", Description = string.Empty, @@ -4537,10 +5301,12 @@ public static class AchievementsMapper Image = @"pack://application:,,,/MHFZ_Overlay;component/Assets/Icons/achievement/stamp.jpg", Objective = "Obtain 6 ★6 gacha cards.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {382, new Achievement(){ + { + 382, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "HEP", Description = string.Empty, @@ -4548,10 +5314,12 @@ public static class AchievementsMapper Image = @"pack://application:,,,/MHFZ_Overlay;component/Assets/Icons/achievement/stamp.jpg", Objective = "Obtain 7 ★7 gacha cards.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {383, new Achievement(){ + { + 383, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "OCT", Description = string.Empty, @@ -4559,10 +5327,12 @@ public static class AchievementsMapper Image = @"pack://application:,,,/MHFZ_Overlay;component/Assets/Icons/achievement/stamp.jpg", Objective = "Obtain 8 ★8 gacha cards.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {384, new Achievement(){ + { + 384, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "NON", Description = string.Empty, @@ -4570,10 +5340,12 @@ public static class AchievementsMapper Image = @"pack://application:,,,/MHFZ_Overlay;component/Assets/Icons/achievement/stamp.jpg", Objective = "Obtain 9 ★9 gacha cards.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {385, new Achievement(){ + { + 385, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "DEC", Description = string.Empty, @@ -4581,10 +5353,12 @@ public static class AchievementsMapper Image = @"pack://application:,,,/MHFZ_Overlay;component/Assets/Icons/achievement/stamp.jpg", Objective = "Obtain 10 ★10 gacha cards.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {386, new Achievement(){ + { + 386, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "UND", Description = string.Empty, @@ -4592,10 +5366,12 @@ public static class AchievementsMapper Image = @"pack://application:,,,/MHFZ_Overlay;component/Assets/Icons/achievement/stamp.jpg", Objective = "Obtain 11 ★11 gacha cards.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {387, new Achievement(){ + { + 387, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "DOD", Description = string.Empty, @@ -4603,10 +5379,12 @@ public static class AchievementsMapper Image = @"pack://application:,,,/MHFZ_Overlay;component/Assets/Icons/achievement/stamp.jpg", Objective = "Obtain 12 ★12 gacha cards.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {388, new Achievement(){ + { + 388, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "One star to rule them all", Description = string.Empty, @@ -4614,10 +5392,12 @@ public static class AchievementsMapper Image = @"pack://application:,,,/MHFZ_Overlay;component/Assets/Icons/achievement/stamp.jpg", Objective = "Obtain all ★1 gacha cards.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {389, new Achievement(){ + { + 389, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Two stars make a supernova", Description = string.Empty, @@ -4625,10 +5405,12 @@ public static class AchievementsMapper Image = @"pack://application:,,,/MHFZ_Overlay;component/Assets/Icons/achievement/stamp.jpg", Objective = "Obtain all ★2 gacha cards.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {390, new Achievement(){ + { + 390, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Alpha Centauri", Description = string.Empty, @@ -4636,10 +5418,12 @@ public static class AchievementsMapper Image = @"pack://application:,,,/MHFZ_Overlay;component/Assets/Icons/achievement/stamp.jpg", Objective = "Obtain all ★3 gacha cards.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {391, new Achievement(){ + { + 391, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Cosmic Tesseract", Description = string.Empty, @@ -4647,10 +5431,12 @@ public static class AchievementsMapper Image = @"pack://application:,,,/MHFZ_Overlay;component/Assets/Icons/achievement/stamp.jpg", Objective = "Obtain all ★4 gacha cards.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {392, new Achievement(){ + { + 392, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "A 5-Star collection", Description = string.Empty, @@ -4658,10 +5444,12 @@ public static class AchievementsMapper Image = @"pack://application:,,,/MHFZ_Overlay;component/Assets/Icons/achievement/stamp.jpg", Objective = "Obtain all ★5 gacha cards.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {393, new Achievement(){ + { + 393, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Gacha Hexagram", Description = string.Empty, @@ -4669,10 +5457,12 @@ public static class AchievementsMapper Image = @"pack://application:,,,/MHFZ_Overlay;component/Assets/Icons/achievement/stamp.jpg", Objective = "Obtain all ★6 gacha cards.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {394, new Achievement(){ + { + 394, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "777", Description = string.Empty, @@ -4680,10 +5470,12 @@ public static class AchievementsMapper Image = @"pack://application:,,,/MHFZ_Overlay;component/Assets/Icons/achievement/stamp.jpg", Objective = "Obtain all ★7 gacha cards.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {395, new Achievement(){ + { + 395, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Gacha Octagram", Description = string.Empty, @@ -4691,10 +5483,12 @@ public static class AchievementsMapper Image = @"pack://application:,,,/MHFZ_Overlay;component/Assets/Icons/achievement/stamp.jpg", Objective = "Obtain all ★8 gacha cards.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {396, new Achievement(){ + { + 396, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Gacha Enneagram", Description = string.Empty, @@ -4702,10 +5496,12 @@ public static class AchievementsMapper Image = @"pack://application:,,,/MHFZ_Overlay;component/Assets/Icons/achievement/stamp.jpg", Objective = "Obtain all ★9 gacha cards.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {397, new Achievement(){ + { + 397, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Ten", Description = string.Empty, @@ -4713,10 +5509,12 @@ public static class AchievementsMapper Image = @"pack://application:,,,/MHFZ_Overlay;component/Assets/Icons/achievement/stamp.jpg", Objective = "Obtain all ★10 gacha cards.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {398, new Achievement(){ + { + 398, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Gacha up to eleven", Description = string.Empty, @@ -4724,10 +5522,12 @@ public static class AchievementsMapper Image = @"pack://application:,,,/MHFZ_Overlay;component/Assets/Icons/achievement/stamp.jpg", Objective = "Obtain all ★11 gacha cards.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {399, new Achievement(){ + { + 399, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "12", Description = string.Empty, @@ -4735,10 +5535,12 @@ public static class AchievementsMapper Image = @"pack://application:,,,/MHFZ_Overlay;component/Assets/Icons/achievement/stamp.jpg", Objective = "Obtain all ★12 gacha cards.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } }, - {400, new Achievement(){ + { + 400, new Achievement() + { CompletionDate = DateTime.UnixEpoch, Title = "Gacha Bonus", Description = string.Empty, @@ -4746,7 +5548,7 @@ public static class AchievementsMapper Image = @"pack://application:,,,/MHFZ_Overlay;component/Assets/Icons/achievement/zenny.jpg", Objective = "Complete a gacha bonus quest.", IsSecret = false, - Hint = string.Empty + Hint = string.Empty, } } }; diff --git a/MHFZ_Overlay/Models/Mappers/AreaIconMapper.cs b/MHFZ_Overlay/Models/Mappers/AreaIconMapper.cs index 6e4b99a5..f9eca2d0 100644 --- a/MHFZ_Overlay/Models/Mappers/AreaIconMapper.cs +++ b/MHFZ_Overlay/Models/Mappers/AreaIconMapper.cs @@ -6,7 +6,6 @@ namespace MHFZ_Overlay.Models.Mappers; using System.Collections.Generic; - /// ///The area icon list /// @@ -15,70 +14,102 @@ public static class AreaIconMapper public static IReadOnlyDictionary, string> AreaIconID { get; } = new Dictionary, string> { // Loading - {new List{0 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/icon/entrance.png" }, - //Jungle areas - {new List{1,2,3,4,5,18,19,22,23,26,110,111,112,113,114,115,116,117,118,119,120,212,213 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/icon/jungle.png" }, + { new List { 0 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/icon/entrance.png" }, + + // Jungle areas + { new List { 1, 2,3, 4,5, 18, 19, 22, 23, 26, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 212, 213 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/icon/jungle.png" }, + //Snowy mountain areas - {new List{6,15,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,218,219 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/icon/snowy_mountains.png" }, - //Desert areas - {new List{7,24,45,47,48,49,50,51,52,53,54,55,56,140,141,142,143,144,145,146,147,148,149,150,214,215 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/icon/desert.png" }, - //Volcano areas - {new List{8,27,58,59,60,61,62,63,64,65,74,161,162,163,164,165,166,167,169,216,217,220,221,222,223 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/icon/volcano.png" }, - //Swamp areas - {new List{9,16,29,44,67,68,69,70,71,72,73,75,151,152,153,154,155,156,157,158,159,160 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/icon/swamp.png" }, - //Forest and Hills areas - {new List{21,32,33,34,35,36,37,38,39,40,41,42,43,184,185,186,187,188,189,190,191,192,193,194,195,196 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/icon/forest_and_hills.png" }, + { new List { 6, 15, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 218, 219 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/icon/snowy_mountains.png" }, + + // Desert areas + { new List { 7, 24, 45, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 214, 215 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/icon/desert.png" }, + + // Volcano areas + { new List { 8, 27, 58, 59, 60, 61, 62, 63, 64, 65, 74, 161, 162, 163, 164, 165, 166, 167, 169, 216, 217, 220, 221, 222, 223 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/icon/volcano.png" }, + + // Swamp areas + { new List { 9, 16, 29, 44, 67, 68, 69, 70, 71, 72, 73, 75, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/icon/swamp.png" }, + + // Forest and Hills areas + { new List { 21, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/icon/forest_and_hills.png" }, + //Great Forest areas - {new List{224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/icon/great_forest.png" }, - //Highlands areas - {new List{247,248,249,250,251,252,253,254,255,302,303,304,305,306,307,308 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/icon/highlands.png" }, - //Tidal Island areas - {new List{322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/icon/tidal_island.png" }, - //Polar Sea areas - {new List{345,346,347,348,349,350,351,352,353,354,355,356,357,358 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/icon/polar_sea.png" }, - //Flower Field areas - {new List{361,362,363,364,365,366,367,368,369,370,371,372 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/icon/flower_fields.png" }, + { new List { 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/icon/great_forest.png" }, + + // Highlands areas + { new List { 247, 248, 249, 250, 251, 252, 253, 254, 255, 302, 303, 304, 305, 306, 307, 308 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/icon/highlands.png" }, + + // Tidal Island areas + { new List {322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/icon/tidal_island.png" }, + + // Polar Sea areas + { new List {345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/icon/polar_sea.png" }, + + // Flower Field areas + { new List { 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/icon/flower_fields.png" }, + // Sky Corridor / Tower - {new List{390,391,392,393,394,415,416 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/icon/tower.png" }, + { new List { 390, 391, 392, 393, 394, 415, 416 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/icon/tower.png" }, + // Duremudira Areas - {new List{399,414 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/icon/dure.gif" }, + { new List { 399, 414 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/icon/dure.gif" }, + // White Lake - {new List{400,401,402,403,404,405,406,407,408,409,410,411,412,413 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/icon/white_lake.png" }, - //Painted Falls areas - {new List{423,424,425,426,427,428,429,430,431,432,433,434,435,436 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/icon/painted_falls.png" }, + { new List { 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/icon/white_lake.png" }, + + // Painted Falls areas + { new List { 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/icon/painted_falls.png" }, + // road - {new List{459 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/icon/rengoku.png" }, - //Gorge areas - {new List{288,289,290,291,292,293,294,295,296,297,298,299,300,301 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/icon/gorge.png" }, - //Mezeporta - {new List{200,397 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/icon/cattleya.png" }, - //my houses - {new List{173,174,175 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/icon/my_house.png" }, - //hairdresser - {new List{201 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/icon/tent.png" }, - //guild halls - {new List{202,203,204 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/icon/guild_hall.png" }, + { new List { 459 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/icon/rengoku.png" }, + + // Gorge areas + { new List { 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/icon/gorge.png" }, + + // Mezeporta + { new List { 200, 397 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/icon/cattleya.png" }, + + // my houses + { new List { 173, 174, 175 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/icon/my_house.png" }, + + // hairdresser + { new List { 201 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/icon/tent.png" }, + + // guild halls + { new List { 202, 203, 204 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/icon/guild_hall.png" }, + // my tore / poogie farm - {new List{205 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/icon/my_tore.png" }, + { new List { 205 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/icon/my_tore.png" }, + // bars - {new List{210,211 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/icon/rasta_bar.png" }, + { new List { 210, 211 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/icon/rasta_bar.png" }, + // caravan / pallone - {new List{256,260,261,262,263 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/icon/pallone_caravan.png" }, + { new List { 256, 260, 261, 262, 263 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/icon/pallone_caravan.png" }, + // blacksmith - {new List{257 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/icon/blacksmith.png" }, + { new List { 257 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/icon/blacksmith.png" }, + // gallery - {new List{264 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/icon/my_gallery.png" }, + { new List { 264 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/icon/my_gallery.png" }, + // guuku farm/garden - {new List{265 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/icon/my_garden.png" }, + { new List { 265 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/icon/my_garden.png" }, + // halk area - {new List{283 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/icon/my_support.png" }, + { new List { 283 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/icon/my_support.png" }, + // PvP room - {new List{286 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/icon/pvp.png" }, + { new List { 286 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/icon/pvp.png" }, + // sr rooms - {new List{340,341 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/icon/my_missions.png" }, + { new List { 340, 341 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/icon/my_missions.png" }, + // diva halls/fountain - {new List{379,445 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/icon/diva_fountain.png" }, + { new List { 379, 445 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/icon/diva_fountain.png" }, + // MezFes areas - {new List{462,463,464,465,466,467,468,469 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/icon/mezfes.png" }, + { new List { 462, 463, 464, 465, 466, 467, 468, 469 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/icon/mezfes.png" }, }; } diff --git a/MHFZ_Overlay/Models/Mappers/BerserkRavienteTriggerEventsMapper.cs b/MHFZ_Overlay/Models/Mappers/BerserkRavienteTriggerEventsMapper.cs index 31d3587c..c58fd3fd 100644 --- a/MHFZ_Overlay/Models/Mappers/BerserkRavienteTriggerEventsMapper.cs +++ b/MHFZ_Overlay/Models/Mappers/BerserkRavienteTriggerEventsMapper.cs @@ -6,7 +6,6 @@ namespace MHFZ_Overlay.Models.Mappers; using System.Collections.Generic; - /// /// The Berserk Raviente Practice Trigger Events list /// @@ -25,7 +24,7 @@ public static class BerserkRavientePracticeTriggerEvents {8, "Sedation 5" }, {9, "Sedation 6" }, }; -}; +} /// /// The Berserk Raviente Trigger Events list @@ -49,4 +48,4 @@ public static class BerserkRavienteTriggerEvents {12, "Destruction 7" }, {13, "Slay Done" } }; -}; +} diff --git a/MHFZ_Overlay/Models/Mappers/BingoMonsterMapper.cs b/MHFZ_Overlay/Models/Mappers/BingoMonsterMapper.cs index 8969b402..b8e9fd77 100644 --- a/MHFZ_Overlay/Models/Mappers/BingoMonsterMapper.cs +++ b/MHFZ_Overlay/Models/Mappers/BingoMonsterMapper.cs @@ -17,7 +17,9 @@ public static class BingoMonsterMapper // TODO make a function with input monster name and output dictionary monsterID rankbandID // TODO i should use questid instead and use monster names as comments // Extreme difficulty is same as hard difficulty but the bingo board is twice as big. - {Difficulty.Easy, new List{ + { + Difficulty.Easy, new List + { "Elzelion", "Zenaserisu", "Zinogre", @@ -101,7 +103,9 @@ public static class BingoMonsterMapper "Zenith★2 Bogabadorumu", } }, - {Difficulty.Medium, new List{ + { + Difficulty.Medium, new List + { "Zenith★3 Espinas", "Zenith★3 Hypnoc", "Zenith★3 Khezu", @@ -132,10 +136,12 @@ public static class BingoMonsterMapper "Lv9999 Fatalis", "Lv9999 Crimson Fatalis", "Lv9999 Shantien", - "2nd District Duremudira" + "2nd District Duremudira", } }, - {Difficulty.Hard, new List{ + { + Difficulty.Hard, new List + { "Zenith★4 Espinas", "Zenith★4 Hypnoc", "Zenith★4 Khezu", @@ -167,7 +173,7 @@ public static class BingoMonsterMapper "Blitzkrieg Bogabadorumu", "Golden Deviljho", "Upper Shiten Unknown", - "Upper Shiten Disufiroa" + "Upper Shiten Disufiroa", } } }; diff --git a/MHFZ_Overlay/Models/Mappers/CatppuccinMochaColorsMapper.cs b/MHFZ_Overlay/Models/Mappers/CatppuccinMochaColorsMapper.cs index 1da8ad1a..ddb905d9 100644 --- a/MHFZ_Overlay/Models/Mappers/CatppuccinMochaColorsMapper.cs +++ b/MHFZ_Overlay/Models/Mappers/CatppuccinMochaColorsMapper.cs @@ -6,66 +6,65 @@ namespace MHFZ_Overlay.Models.Mappers; using System.Collections.Generic; - /// ///The color list /// -/// /// Labels Hex RGB HSL -//Rosewater #f5e0dc rgb(245, 224, 220) hsl(10, 56%, 91%) -//Flamingo #f2cdcd rgb(242, 205, 205) hsl(0, 59%, 88%) -//Pink #f5c2e7 rgb(245, 194, 231) hsl(316, 72%, 86%) -//Mauve #cba6f7 rgb(203, 166, 247) hsl(267, 84%, 81%) -//Red #f38ba8 rgb(243, 139, 168) hsl(343, 81%, 75%) -//Maroon #eba0ac rgb(235, 160, 172) hsl(350, 65%, 77%) -//Peach #fab387 rgb(250, 179, 135) hsl(23, 92%, 75%) -//Yellow #f9e2af rgb(249, 226, 175) hsl(41, 86%, 83%) -//Green #a6e3a1 rgb(166, 227, 161) hsl(115, 54%, 76%) -//Teal #94e2d5 rgb(148, 226, 213) hsl(170, 57%, 73%) -//Sky #89dceb rgb(137, 220, 235) hsl(189, 71%, 73%) -//Sapphire #74c7ec rgb(116, 199, 236) hsl(199, 76%, 69%) -//Blue #89b4fa rgb(137, 180, 250) hsl(217, 92%, 76%) -//Lavender #b4befe rgb(180, 190, 254) hsl(232, 97%, 85%) -//Text #cdd6f4 rgb(205, 214, 244) hsl(226, 64%, 88%) -//Subtext1 #bac2de rgb(186, 194, 222) hsl(227, 35%, 80%) -//Subtext0 #a6adc8 rgb(166, 173, 200) hsl(228, 24%, 72%) -//Overlay2 #9399b2 rgb(147, 153, 178) hsl(228, 17%, 64%) -//Overlay1 #7f849c rgb(127, 132, 156) hsl(230, 13%, 55%) -//Overlay0 #6c7086 rgb(108, 112, 134) hsl(231, 11%, 47%) -//Surface2 #585b70 rgb(88, 91, 112) hsl(233, 12%, 39%) -//Surface1 #45475a rgb(69, 71, 90) hsl(234, 13%, 31%) -//Surface0 #313244 rgb(49, 50, 68) hsl(237, 16%, 23%) -//Base #1e1e2e rgb(30, 30, 46) hsl(240, 21%, 15%) -//Mantle #181825 rgb(24, 24, 37) hsl(240, 21%, 12%) -//Crust #11111b rgb(17, 17, 27) hsl(240, 23%, 9%) +// Labels Hex RGB HSL +// Rosewater #f5e0dc rgb(245, 224, 220) hsl(10, 56%, 91%) +// Flamingo #f2cdcd rgb(242, 205, 205) hsl(0, 59%, 88%) +// Pink #f5c2e7 rgb(245, 194, 231) hsl(316, 72%, 86%) +// Mauve #cba6f7 rgb(203, 166, 247) hsl(267, 84%, 81%) +// Red #f38ba8 rgb(243, 139, 168) hsl(343, 81%, 75%) +// Maroon #eba0ac rgb(235, 160, 172) hsl(350, 65%, 77%) +// Peach #fab387 rgb(250, 179, 135) hsl(23, 92%, 75%) +// Yellow #f9e2af rgb(249, 226, 175) hsl(41, 86%, 83%) +// Green #a6e3a1 rgb(166, 227, 161) hsl(115, 54%, 76%) +// Teal #94e2d5 rgb(148, 226, 213) hsl(170, 57%, 73%) +// Sky #89dceb rgb(137, 220, 235) hsl(189, 71%, 73%) +// Sapphire #74c7ec rgb(116, 199, 236) hsl(199, 76%, 69%) +// Blue #89b4fa rgb(137, 180, 250) hsl(217, 92%, 76%) +// Lavender #b4befe rgb(180, 190, 254) hsl(232, 97%, 85%) +// Text #cdd6f4 rgb(205, 214, 244) hsl(226, 64%, 88%) +// Subtext1 #bac2de rgb(186, 194, 222) hsl(227, 35%, 80%) +// Subtext0 #a6adc8 rgb(166, 173, 200) hsl(228, 24%, 72%) +// Overlay2 #9399b2 rgb(147, 153, 178) hsl(228, 17%, 64%) +// Overlay1 #7f849c rgb(127, 132, 156) hsl(230, 13%, 55%) +// Overlay0 #6c7086 rgb(108, 112, 134) hsl(231, 11%, 47%) +// Surface2 #585b70 rgb(88, 91, 112) hsl(233, 12%, 39%) +// Surface1 #45475a rgb(69, 71, 90) hsl(234, 13%, 31%) +// Surface0 #313244 rgb(49, 50, 68) hsl(237, 16%, 23%) +// Base #1e1e2e rgb(30, 30, 46) hsl(240, 21%, 15%) +// Mantle #181825 rgb(24, 24, 37) hsl(240, 21%, 12%) +// Crust #11111b rgb(17, 17, 27) hsl(240, 23%, 9%) public static class CatppuccinMochaColorsMapper { public static IReadOnlyDictionary CatppuccinMochaColors { get; } = new Dictionary { - { "Rosewater","#f5e0dc" }, - { "Flamingo","#f2cdcd" }, - { "Pink","#f5c2e7" }, - { "Mauve","#cba6f7" }, - { "Red","#f38ba8" }, - { "Maroon","#eba0ac" }, - { "Peach","#fab387" }, - { "Yellow","#f9e2af" }, - { "Green","#a6e3a1" }, - { "Teal","#94e2d5" }, - { "Sky","#89dceb" }, - { "Sapphire","#74c7ec" }, - { "Blue","#89b4fa" }, - { "Lavender","#b4befe" }, - { "Text","#cdd6f4" }, - { "Subtext1","#bac2de" }, - { "Subtext0","#a6adc8" }, - { "Overlay2","#9399b2" }, - { "Overlay1","#7f849c" }, - { "Overlay0","#6c7086" }, - { "Surface2","#585b70" }, - { "Surface1","#45475a" }, - { "Surface0","#313244" }, - { "Base","#1e1e2e" }, - { "Mantle","#181825" }, - { "Crust","#11111b" } + { "Rosewater", "#f5e0dc" }, + { "Flamingo", "#f2cdcd" }, + { "Pink", "#f5c2e7" }, + { "Mauve", "#cba6f7" }, + { "Red", "#f38ba8" }, + { "Maroon", "#eba0ac" }, + { "Peach", "#fab387" }, + { "Yellow", "#f9e2af" }, + { "Green", "#a6e3a1" }, + { "Teal", "#94e2d5" }, + { "Sky", "#89dceb" }, + { "Sapphire", "#74c7ec" }, + { "Blue", "#89b4fa" }, + { "Lavender", "#b4befe" }, + { "Text", "#cdd6f4" }, + { "Subtext1", "#bac2de" }, + { "Subtext0", "#a6adc8" }, + { "Overlay2", "#9399b2" }, + { "Overlay1", "#7f849c" }, + { "Overlay0", "#6c7086" }, + { "Surface2", "#585b70" }, + { "Surface1", "#45475a" }, + { "Surface0", "#313244" }, + { "Base", "#1e1e2e" }, + { "Mantle", "#181825" }, + { "Crust", "#11111b" }, }; } diff --git a/MHFZ_Overlay/Models/Mappers/DPadImageMapper.cs b/MHFZ_Overlay/Models/Mappers/DPadImageMapper.cs index 5c50b481..01ab4558 100644 --- a/MHFZ_Overlay/Models/Mappers/DPadImageMapper.cs +++ b/MHFZ_Overlay/Models/Mappers/DPadImageMapper.cs @@ -19,7 +19,7 @@ public static class DPadImageMapper { Direction.Down, "Assets/Icons/png/gamepad_dpad_down.png" }, { Direction.DownLeft, "Assets/Icons/png/gamepad_dpad_downleft.png" }, { Direction.Left, "Assets/Icons/png/gamepad_dpad_left.png" }, - { Direction.UpLeft, "Assets/Icons/png/gamepad_dpad_upleft.png" } + { Direction.UpLeft, "Assets/Icons/png/gamepad_dpad_upleft.png" }, }; public static string GetImage(Direction direction) diff --git a/MHFZ_Overlay/Models/Mappers/DiscordServersMapper.cs b/MHFZ_Overlay/Models/Mappers/DiscordServersMapper.cs index 62782d54..9735c8d9 100644 --- a/MHFZ_Overlay/Models/Mappers/DiscordServersMapper.cs +++ b/MHFZ_Overlay/Models/Mappers/DiscordServersMapper.cs @@ -6,7 +6,6 @@ namespace MHFZ_Overlay.Models.Mappers; using System.Collections.Generic; - /// ///The discord servers list /// @@ -20,6 +19,6 @@ public static class DiscordServersMapper { 759022449743495170, "Monster Hunter [Ancient_Warriors]" }, { 973963573619486740, "MezeLounge" }, { 288170871908990976, "Hunsterverse" }, - { 967058504403808356, "Arca" } + { 967058504403808356, "Arca" }, }; -}; +} diff --git a/MHFZ_Overlay/Models/Mappers/GatheringMapMapper.cs b/MHFZ_Overlay/Models/Mappers/GatheringMapMapper.cs index eb32b3f3..d367b740 100644 --- a/MHFZ_Overlay/Models/Mappers/GatheringMapMapper.cs +++ b/MHFZ_Overlay/Models/Mappers/GatheringMapMapper.cs @@ -5,7 +5,7 @@ namespace MHFZ_Overlay.Models.Mappers; using System.Collections.Generic; - +using MHFZ_Overlay.Models.Constant; /// ///The gathering map list @@ -15,70 +15,102 @@ public static class GatheringMapMapper public static IReadOnlyDictionary, string> GatheringMapID { get; } = new Dictionary, string> { // Loading - {new List{ 0 }, "https://i.imgur.com/aAcPJGb.png" }, - //Jungle areas - {new List{ 1,2,3,4,5,18,19,22,23,26,110,111,112,113,114,115,116,117,118,119,120,212,213 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/map/jungle_map.png" }, - //Snowy mountain areas - {new List{ 6,15,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,218,219 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/map/snowy_mountains_map.png" }, - //Desert areas - {new List{ 7,24,45,47,48,49,50,51,52,53,54,55,56,140,141,142,143,144,145,146,147,148,149,150,214,215 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/map/desert_map.png" }, - //Volcano areas - {new List{ 8,27,58,59,60,61,62,63,64,65,74,161,162,163,164,165,166,167,169,216,217,220,221,222,223 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/map/volcano_map.png" }, - //Swamp areas - {new List{ 9,16,29,44,67,68,69,70,71,72,73,75,151,152,153,154,155,156,157,158,159,160 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/map/swamp_map.png" }, - //Forest and Hills areas - {new List{ 21,32,33,34,35,36,37,38,39,40,41,42,43,184,185,186,187,188,189,190,191,192,193,194,195,196 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/map/forest_and_hills_map.png" }, - //Great Forest areas - {new List{ 224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/map/great_forest_map.png" }, - //Highlands areas - {new List{ 247,248,249,250,251,252,253,254,255,302,303,304,305,306,307,308 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/map/highlands_map.png" }, - //Tidal Island areas - {new List{ 322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/map/tidal_island_map.png" }, - //Polar Sea areas - {new List{ 345,346,347,348,349,350,351,352,353,354,355,356,357,358 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/map/polar_sea_map.png" }, - //Flower Field areas - {new List{ 361,362,363,364,365,366,367,368,369,370,371,372 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/map/flower_fields_.png" }, + { new List { 0 }, Messages.EmptyImage }, + + // Jungle areas + { new List { 1, 2,3, 4,5, 18, 19, 22, 23, 26, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 212, 213 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/map/jungle_map.png" }, + + // Snowy mountain areas + { new List { 6, 15, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 218, 219 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/map/snowy_mountains_map.png" }, + + // Desert areas + { new List { 7, 24, 45, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 214, 215 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/map/desert_map.png" }, + + // Volcano areas + { new List { 8, 27, 58, 59, 60, 61, 62, 63, 64, 65, 74, 161, 162, 163, 164, 165, 166, 167, 169, 216, 217, 220, 221, 222, 223 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/map/volcano_map.png" }, + + // Swamp areas + { new List { 9, 16, 29, 44, 67, 68, 69, 70, 71, 72, 73, 75, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/map/swamp_map.png" }, + + // Forest and Hills areas + { new List { 21, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/map/forest_and_hills_map.png" }, + + // Great Forest areas + { new List { 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/map/great_forest_map.png" }, + + // Highlands areas + { new List { 247, 248, 249, 250, 251, 252, 253, 254, 255, 302, 303, 304, 305, 306, 307, 308 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/map/highlands_map.png" }, + + // Tidal Island areas + { new List { 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/map/tidal_island_map.png" }, + + // Polar Sea areas + { new List { 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/map/polar_sea_map.png" }, + + // Flower Field areas + { new List { 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/map/flower_fields_.png" }, + // Sky Corridor / Tower - {new List{ 390,391,392,393,394,415,416 }, "https://i.imgur.com/aAcPJGb.png" }, + { new List { 390, 391, 392, 393, 394, 415, 416 }, Messages.EmptyImage }, + // Duremudira Areas - {new List{ 399,414 }, "https://i.imgur.com/aAcPJGb.png" }, + { new List { 399, 414 }, Messages.EmptyImage }, + // White Lake - {new List{ 400,401,402,403,404,405,406,407,408,409,410,411,412,413 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/map/white_lake_map.png" }, - //Painted Falls areas - {new List{ 423,424,425,426,427,428,429,430,431,432,433,434,435,436 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/map/painted_falls_map.png" }, + { new List { 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/map/white_lake_map.png" }, + + // Painted Falls areas + { new List { 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/map/painted_falls_map.png" }, + // road - {new List{ 459 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/map/road_map.png" }, - //Gorge areas - {new List{ 288,289,290,291,292,293,294,295,296,297,298,299,300,301 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/map/gorge_map.png" }, - //Mezeporta - {new List{ 200,397 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/map/mezeporta_map.png" }, - //my houses - {new List{ 173,174,175 }, "https://i.imgur.com/aAcPJGb.png" }, - //hairdresser - {new List{ 201 }, "https://i.imgur.com/aAcPJGb.png" }, - //guild halls - {new List{ 202,203,204 }, "https://i.imgur.com/aAcPJGb.png" }, + { new List { 459 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/map/road_map.png" }, + + // Gorge areas + { new List { 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/map/gorge_map.png" }, + + // Mezeporta + { new List { 200, 397 }, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/map/mezeporta_map.png" }, + + // my houses + { new List { 173, 174, 175 }, Messages.EmptyImage }, + + // hairdresser + { new List { 201 }, Messages.EmptyImage }, + + // guild halls + { new List { 202, 203, 204 }, Messages.EmptyImage }, + // my tore / poogie farm - {new List{ 205 }, "https://i.imgur.com/aAcPJGb.png" }, + { new List { 205 }, Messages.EmptyImage }, + // bars - {new List{ 210,211 }, "https://i.imgur.com/aAcPJGb.png" }, + { new List { 210, 211 }, Messages.EmptyImage }, + // caravan / pallone - {new List{ 256,260,261,262,263 }, "https://i.imgur.com/aAcPJGb.png" }, + { new List { 256, 260, 261, 262, 263 }, Messages.EmptyImage }, + // blacksmith - {new List{ 257 }, "https://i.imgur.com/aAcPJGb.png" }, + { new List { 257 }, Messages.EmptyImage }, + // gallery - {new List{ 264 }, "https://i.imgur.com/aAcPJGb.png" }, + { new List { 264 }, Messages.EmptyImage }, + // guuku farm/garden - {new List{ 265 }, "https://i.imgur.com/aAcPJGb.png" }, + { new List { 265 }, Messages.EmptyImage }, + // halk area - {new List{ 283 }, "https://i.imgur.com/aAcPJGb.png" }, + { new List { 283 }, Messages.EmptyImage }, + // PvP room - {new List{ 286 }, "https://i.imgur.com/aAcPJGb.png" }, + { new List { 286 }, Messages.EmptyImage }, + // sr rooms - {new List{ 340,341 }, "https://i.imgur.com/aAcPJGb.png" }, + { new List { 340, 341 }, Messages.EmptyImage }, + // diva halls/fountain - {new List{ 379,445 }, "https://i.imgur.com/aAcPJGb.png" }, + { new List { 379, 445 }, Messages.EmptyImage }, + // MezFes areas - {new List{ 462,463,464,465,466,467,468,469 }, "https://i.imgur.com/aAcPJGb.png" }, + { new List { 462, 463, 464, 465, 466, 467, 468, 469 }, Messages.EmptyImage }, }; } diff --git a/MHFZ_Overlay/Models/Mappers/JoystickImageMapper.cs b/MHFZ_Overlay/Models/Mappers/JoystickImageMapper.cs index fac93738..2ef9ed55 100644 --- a/MHFZ_Overlay/Models/Mappers/JoystickImageMapper.cs +++ b/MHFZ_Overlay/Models/Mappers/JoystickImageMapper.cs @@ -19,7 +19,7 @@ public static class JoystickImageMapper { Direction.Down, "Assets/Icons/png/gamepad_joystick_down.png" }, { Direction.DownLeft, "Assets/Icons/png/gamepad_joystick_downleft.png" }, { Direction.Left, "Assets/Icons/png/gamepad_joystick_left.png" }, - { Direction.UpLeft, "Assets/Icons/png/gamepad_joystick_upleft.png" } + { Direction.UpLeft, "Assets/Icons/png/gamepad_joystick_upleft.png" }, }; public static string GetImage(Direction direction) diff --git a/MHFZ_Overlay/Models/Mappers/MezFesMinigameMapper.cs b/MHFZ_Overlay/Models/Mappers/MezFesMinigameMapper.cs index 96b29c3d..3e24f913 100644 --- a/MHFZ_Overlay/Models/Mappers/MezFesMinigameMapper.cs +++ b/MHFZ_Overlay/Models/Mappers/MezFesMinigameMapper.cs @@ -22,4 +22,4 @@ public static class MezFesMinigameMapper { 468,"Panic Honey" }, { 469,"Dokkan Battle Cats" }, }; -}; +} diff --git a/MHFZ_Overlay/Models/Mappers/MonsterColorMapper.cs b/MHFZ_Overlay/Models/Mappers/MonsterColorMapper.cs index df91a966..3cadbee8 100644 --- a/MHFZ_Overlay/Models/Mappers/MonsterColorMapper.cs +++ b/MHFZ_Overlay/Models/Mappers/MonsterColorMapper.cs @@ -6,219 +6,217 @@ namespace MHFZ_Overlay.Models.Mappers; using System.Collections.Generic; - /// ///The monster color list /// public static class MonsterColorMapper { - /// /// Labels Hex RGB HSL - //Rosewater #f5e0dc rgb(245, 224, 220) hsl(10, 56%, 91%) - //Flamingo #f2cdcd rgb(242, 205, 205) hsl(0, 59%, 88%) - //Pink #f5c2e7 rgb(245, 194, 231) hsl(316, 72%, 86%) - //Mauve #cba6f7 rgb(203, 166, 247) hsl(267, 84%, 81%) - //Red #f38ba8 rgb(243, 139, 168) hsl(343, 81%, 75%) - //Maroon #eba0ac rgb(235, 160, 172) hsl(350, 65%, 77%) - //Peach #fab387 rgb(250, 179, 135) hsl(23, 92%, 75%) - //Yellow #f9e2af rgb(249, 226, 175) hsl(41, 86%, 83%) - //Green #a6e3a1 rgb(166, 227, 161) hsl(115, 54%, 76%) - //Teal #94e2d5 rgb(148, 226, 213) hsl(170, 57%, 73%) - //Sky #89dceb rgb(137, 220, 235) hsl(189, 71%, 73%) - //Sapphire #74c7ec rgb(116, 199, 236) hsl(199, 76%, 69%) - //Blue #89b4fa rgb(137, 180, 250) hsl(217, 92%, 76%) - //Lavender #b4befe rgb(180, 190, 254) hsl(232, 97%, 85%) - //Text #cdd6f4 rgb(205, 214, 244) hsl(226, 64%, 88%) - //Subtext1 #bac2de rgb(186, 194, 222) hsl(227, 35%, 80%) - //Subtext0 #a6adc8 rgb(166, 173, 200) hsl(228, 24%, 72%) - //Overlay2 #9399b2 rgb(147, 153, 178) hsl(228, 17%, 64%) - //Overlay1 #7f849c rgb(127, 132, 156) hsl(230, 13%, 55%) - //Overlay0 #6c7086 rgb(108, 112, 134) hsl(231, 11%, 47%) - //Surface2 #585b70 rgb(88, 91, 112) hsl(233, 12%, 39%) - //Surface1 #45475a rgb(69, 71, 90) hsl(234, 13%, 31%) - //Surface0 #313244 rgb(49, 50, 68) hsl(237, 16%, 23%) - //Base #1e1e2e rgb(30, 30, 46) hsl(240, 21%, 15%) - //Mantle #181825 rgb(24, 24, 37) hsl(240, 21%, 12%) - //Crust #11111b rgb(17, 17, 27) hsl(240, 23%, 9%) - + // Labels Hex RGB HSL + // Rosewater #f5e0dc rgb(245, 224, 220) hsl(10, 56%, 91%) + // Flamingo #f2cdcd rgb(242, 205, 205) hsl(0, 59%, 88%) + // Pink #f5c2e7 rgb(245, 194, 231) hsl(316, 72%, 86%) + // Mauve #cba6f7 rgb(203, 166, 247) hsl(267, 84%, 81%) + // Red #f38ba8 rgb(243, 139, 168) hsl(343, 81%, 75%) + // Maroon #eba0ac rgb(235, 160, 172) hsl(350, 65%, 77%) + // Peach #fab387 rgb(250, 179, 135) hsl(23, 92%, 75%) + // Yellow #f9e2af rgb(249, 226, 175) hsl(41, 86%, 83%) + // Green #a6e3a1 rgb(166, 227, 161) hsl(115, 54%, 76%) + // Teal #94e2d5 rgb(148, 226, 213) hsl(170, 57%, 73%) + // Sky #89dceb rgb(137, 220, 235) hsl(189, 71%, 73%) + // Sapphire #74c7ec rgb(116, 199, 236) hsl(199, 76%, 69%) + // Blue #89b4fa rgb(137, 180, 250) hsl(217, 92%, 76%) + // Lavender #b4befe rgb(180, 190, 254) hsl(232, 97%, 85%) + // Text #cdd6f4 rgb(205, 214, 244) hsl(226, 64%, 88%) + // Subtext1 #bac2de rgb(186, 194, 222) hsl(227, 35%, 80%) + // Subtext0 #a6adc8 rgb(166, 173, 200) hsl(228, 24%, 72%) + // Overlay2 #9399b2 rgb(147, 153, 178) hsl(228, 17%, 64%) + // Overlay1 #7f849c rgb(127, 132, 156) hsl(230, 13%, 55%) + // Overlay0 #6c7086 rgb(108, 112, 134) hsl(231, 11%, 47%) + // Surface2 #585b70 rgb(88, 91, 112) hsl(233, 12%, 39%) + // Surface1 #45475a rgb(69, 71, 90) hsl(234, 13%, 31%) + // Surface0 #313244 rgb(49, 50, 68) hsl(237, 16%, 23%) + // Base #1e1e2e rgb(30, 30, 46) hsl(240, 21%, 15%) + // Mantle #181825 rgb(24, 24, 37) hsl(240, 21%, 12%) + // Crust #11111b rgb(17, 17, 27) hsl(240, 23%, 9%) public static IReadOnlyDictionary MonsterColorID { get; } = new Dictionary { - { 0, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Rosewater"]}, - { 1, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Green"]}, - { 2, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Base"]}, - { 3, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Surface0"]}, - { 4, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Green"]}, - { 5, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Mauve"]}, - { 6, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Pink"]}, - { 7, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Maroon"]}, - { 8, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Rosewater"]}, - { 9, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Rosewater"]}, - { 10, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Rosewater"]}, - { 11, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Red"]}, - { 12, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Overlay0"]}, - { 13, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Rosewater"]}, - { 14, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Rosewater"]}, - { 15, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Surface0"]}, - { 16, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Blue"]}, - { 17, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Mantle"]}, - { 18, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Rosewater"]}, - { 19, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Rosewater"]}, - { 20, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Mauve"]}, - { 21, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Teal"]}, - { 22, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Surface1"]}, - { 23, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Mantle"]}, - { 24, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Rosewater"]}, - { 25, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Rosewater"]}, - { 26, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Rosewater"]}, - { 27, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Blue"]}, - { 28, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Rosewater"]}, - { 29, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Rosewater"]}, - { 30, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Red"]}, - { 31, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Red"]}, - { 32, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Rosewater"]}, - { 33, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Text"]}, - { 34, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Rosewater"]}, - { 35, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Sky"]}, - { 36, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Maroon"]}, - { 37, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Pink"]}, - { 38, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Blue"]}, - { 39, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Mauve"]}, - { 40, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Lavender"]}, - { 41, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Subtext1"]}, - { 42, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Yellow"]}, - { 43, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Mantle"]}, - { 44, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Text"]}, - { 45, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Red"]}, - { 46, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Green"]}, - { 47, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Crust"]}, - { 48, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Peach"]}, - { 49, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Sky"]}, - { 50, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Blue"]}, - { 51, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Text"]}, - { 52, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Pink"]}, - { 53, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Crust"]}, - { 54, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Subtext1"]}, - { 55, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Overlay2"]}, - { 56, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Rosewater"]}, - { 57, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Rosewater"]}, - { 58, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Green"]}, - { 59, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Lavender"]}, - { 60, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Maroon"]}, - { 61, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Text"]}, - { 62, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Pink"]}, - { 63, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Overlay1"]}, - { 64, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Blue"]}, - { 65, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Red"]}, // teo - { 66, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Red"]}, - { 67, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Blue"]}, - { 68, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Maroon"]}, - { 69, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Rosewater"]}, - { 70, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Rosewater"]}, - { 71, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Text"]}, - { 72, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Green"]}, - { 73, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Blue"]}, - { 74, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Peach"]}, - { 75, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Maroon"]}, - { 76, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Rosewater"]}, - { 77, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Maroon"]}, - { 78, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Pink"]}, - { 79, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Red"]}, - { 80, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Green"]}, - { 81, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Peach"]}, - { 82, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Text"]}, - { 83, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Lavender"]}, - { 84, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Mauve"]}, - { 85, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Yellow"]}, - { 86, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Green"]}, - { 87, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Rosewater"]}, - { 88, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Rosewater"]}, - { 89, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Maroon"]}, // paria - { 90, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Text"]}, - { 91, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Base"]}, - { 92, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Text"]}, - { 93, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Peach"]}, - { 94, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Green"]}, - { 95, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Mauve"]}, // dora - { 96, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Blue"]}, - { 97, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Rosewater"]}, - { 98, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Rosewater"]}, - { 99, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Peach"]}, - { 100, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Crust"]}, - { 101, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Red"]}, - { 102, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Red"]}, - { 103, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Peach"]}, - { 104, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Green"]}, - { 105, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Blue"]}, - { 106, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Red"]}, // odi - { 107, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Subtext1"]}, - { 108, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Teal"]}, - { 109, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Sapphire"]}, - { 110, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Rosewater"]}, - { 111, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Maroon"]}, - { 112, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Sapphire"]}, - { 113, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Crust"]}, // mi ru - { 114, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Teal"]}, - { 115, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Subtext1"]}, - { 116, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Sapphire"]}, - { 117, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Sapphire"]}, - { 118, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Rosewater"]}, - { 119, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Yellow"]}, - { 120, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Subtext1"]}, - { 121, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Subtext1"]}, - { 122, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Sky"]}, - { 123, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Lavender"]}, - { 124, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Rosewater"]}, - { 125, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Green"]}, - { 126, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Yellow"]}, - { 127, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Sapphire"]}, - { 128, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Yellow"]}, - { 129, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Green"]}, - { 130, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Red"]}, - { 131, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Blue"]}, - { 132, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Blue"]}, - { 133, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Rosewater"]}, - { 134, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Rosewater"]}, - { 135, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Rosewater"]}, - { 136, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Rosewater"]}, - { 137, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Green"]}, - { 138, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Rosewater"]}, - { 139, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Green"]}, - { 140, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Text"]}, - { 141, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Sapphire"]}, - { 142, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Rosewater"]}, - { 143, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Rosewater"]}, - { 144, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Maroon"]}, - { 145, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Lavender"]}, - { 146, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Sky"]}, // zin - { 147, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Maroon"]}, - { 148, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Blue"]}, - { 149, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Crust"]}, - { 150, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Sapphire"]}, - { 151, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Text"]}, - { 152, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Yellow"]}, - { 153, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Maroon"]}, - { 154, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Peach"]}, // guanzo - { 155, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Maroon"]}, // starving - { 156, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Rosewater"]}, - { 157, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Rosewater"]}, - { 158, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Peach"]}, - { 159, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Base"]}, - { 160, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Subtext1"]}, - { 161, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Blue"]}, - { 162, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Mantle"]}, - { 163, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Text"]}, - { 164, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Subtext1"]}, - { 165, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Text"]}, - { 166, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Mauve"]}, // elzelion - { 167, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Lavender"]}, - { 168, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Rosewater"]}, - { 169, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Rosewater"]}, - { 170, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Blue"]}, - { 171, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Rosewater"]}, - { 172, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Blue"]}, - { 173, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Rosewater"]}, - { 174, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Red"]}, - { 175, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Rosewater"]}, - { 176, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Rosewater"]}, + { 0, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Rosewater"] }, + { 1, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Green"] }, + { 2, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Base"] }, + { 3, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Surface0"] }, + { 4, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Green"] }, + { 5, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Mauve"] }, + { 6, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Pink"] }, + { 7, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Maroon"] }, + { 8, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Rosewater"] }, + { 9, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Rosewater"] }, + { 10, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Rosewater"] }, + { 11, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Red"] }, + { 12, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Overlay0"] }, + { 13, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Rosewater"] }, + { 14, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Rosewater"] }, + { 15, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Surface0"] }, + { 16, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Blue"] }, + { 17, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Mantle"] }, + { 18, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Rosewater"] }, + { 19, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Rosewater"] }, + { 20, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Mauve"] }, + { 21, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Teal"] }, + { 22, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Surface1"] }, + { 23, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Mantle"] }, + { 24, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Rosewater"] }, + { 25, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Rosewater"] }, + { 26, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Rosewater"] }, + { 27, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Blue"] }, + { 28, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Rosewater"] }, + { 29, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Rosewater"] }, + { 30, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Red"] }, + { 31, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Red"] }, + { 32, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Rosewater"] }, + { 33, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Text"] }, + { 34, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Rosewater"] }, + { 35, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Sky"] }, + { 36, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Maroon"] }, + { 37, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Pink"] }, + { 38, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Blue"] }, + { 39, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Mauve"] }, + { 40, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Lavender"] }, + { 41, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Subtext1"] }, + { 42, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Yellow"] }, + { 43, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Mantle"] }, + { 44, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Text"] }, + { 45, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Red"] }, + { 46, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Green"] }, + { 47, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Crust"] }, + { 48, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Peach"] }, + { 49, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Sky"] }, + { 50, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Blue"] }, + { 51, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Text"] }, + { 52, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Pink"] }, + { 53, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Crust"] }, + { 54, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Subtext1"] }, + { 55, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Overlay2"] }, + { 56, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Rosewater"] }, + { 57, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Rosewater"] }, + { 58, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Green"] }, + { 59, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Lavender"] }, + { 60, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Maroon"] }, + { 61, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Text"] }, + { 62, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Pink"] }, + { 63, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Overlay1"] }, + { 64, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Blue"] }, + { 65, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Red"] }, // teo + { 66, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Red"] }, + { 67, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Blue"] }, + { 68, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Maroon"] }, + { 69, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Rosewater"] }, + { 70, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Rosewater"] }, + { 71, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Text"] }, + { 72, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Green"] }, + { 73, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Blue"] }, + { 74, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Peach"] }, + { 75, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Maroon"] }, + { 76, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Rosewater"] }, + { 77, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Maroon"] }, + { 78, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Pink"] }, + { 79, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Red"] }, + { 80, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Green"] }, + { 81, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Peach"] }, + { 82, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Text"] }, + { 83, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Lavender"] }, + { 84, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Mauve"] }, + { 85, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Yellow"] }, + { 86, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Green"] }, + { 87, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Rosewater"] }, + { 88, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Rosewater"] }, + { 89, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Maroon"] }, // paria + { 90, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Text"] }, + { 91, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Base"] }, + { 92, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Text"] }, + { 93, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Peach"] }, + { 94, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Green"] }, + { 95, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Mauve"] }, // dora + { 96, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Blue"] }, + { 97, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Rosewater"] }, + { 98, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Rosewater"] }, + { 99, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Peach"] }, + { 100, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Crust"] }, + { 101, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Red"] }, + { 102, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Red"] }, + { 103, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Peach"] }, + { 104, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Green"] }, + { 105, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Blue"] }, + { 106, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Red"] }, // odi + { 107, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Subtext1"] }, + { 108, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Teal"] }, + { 109, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Sapphire"] }, + { 110, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Rosewater"] }, + { 111, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Maroon"] }, + { 112, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Sapphire"] }, + { 113, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Crust"] }, // mi ru + { 114, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Teal"] }, + { 115, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Subtext1"] }, + { 116, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Sapphire"] }, + { 117, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Sapphire"] }, + { 118, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Rosewater"] }, + { 119, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Yellow"] }, + { 120, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Subtext1"] }, + { 121, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Subtext1"] }, + { 122, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Sky"] }, + { 123, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Lavender"] }, + { 124, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Rosewater"] }, + { 125, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Green"] }, + { 126, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Yellow"] }, + { 127, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Sapphire"] }, + { 128, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Yellow"] }, + { 129, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Green"] }, + { 130, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Red"] }, + { 131, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Blue"] }, + { 132, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Blue"] }, + { 133, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Rosewater"] }, + { 134, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Rosewater"] }, + { 135, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Rosewater"] }, + { 136, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Rosewater"] }, + { 137, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Green"] }, + { 138, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Rosewater"] }, + { 139, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Green"] }, + { 140, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Text"] }, + { 141, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Sapphire"] }, + { 142, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Rosewater"] }, + { 143, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Rosewater"] }, + { 144, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Maroon"] }, + { 145, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Lavender"] }, + { 146, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Sky"] }, // zin + { 147, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Maroon"] }, + { 148, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Blue"] }, + { 149, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Crust"] }, + { 150, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Sapphire"] }, + { 151, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Text"] }, + { 152, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Yellow"] }, + { 153, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Maroon"] }, + { 154, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Peach"] }, // guanzo + { 155, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Maroon"] }, // starving + { 156, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Rosewater"] }, + { 157, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Rosewater"] }, + { 158, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Peach"] }, + { 159, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Base"] }, + { 160, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Subtext1"] }, + { 161, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Blue"] }, + { 162, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Mantle"] }, + { 163, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Text"] }, + { 164, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Subtext1"] }, + { 165, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Text"] }, + { 166, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Mauve"] }, // elzelion + { 167, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Lavender"] }, + { 168, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Rosewater"] }, + { 169, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Rosewater"] }, + { 170, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Blue"] }, + { 171, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Rosewater"] }, + { 172, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Blue"] }, + { 173, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Rosewater"] }, + { 174, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Red"] }, + { 175, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Rosewater"] }, + { 176, CatppuccinMochaColorsMapper.CatppuccinMochaColors["Rosewater"] }, }; } diff --git a/MHFZ_Overlay/Models/Mappers/MonsterImageMapper.cs b/MHFZ_Overlay/Models/Mappers/MonsterImageMapper.cs index f03c4383..45be44c5 100644 --- a/MHFZ_Overlay/Models/Mappers/MonsterImageMapper.cs +++ b/MHFZ_Overlay/Models/Mappers/MonsterImageMapper.cs @@ -6,7 +6,6 @@ namespace MHFZ_Overlay.Models.Mappers; using System.Collections.Generic; - /// ///The monster image list /// @@ -17,85 +16,85 @@ public static class MonsterImageMapper { 0, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/none.png" }, { 1, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/rathian.png" }, { 3, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/kelbi.png" }, - { 4,"https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/mosswine.png" }, - { 5,"https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/bullfango.png" }, - { 6,"https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/yian_kut-ku.png" }, - { 7,"https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/lao-shan_lung.png" }, - { 8,"https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/cephadrome.png" }, - { 9,"https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/felyne.png" }, - { 10,"https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/random.png" }, - { 12,"https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/aptonoth.png" }, - { 13,"https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/genprey.png" }, - { 14,"https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/diablos.png" }, - { 16,"https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/velociprey.png" }, - { 18,"https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/felyne.png" }, - { 19,"https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/vespoid.png" }, - { 20,"https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/gypceros.png" }, - { 22,"https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/basarios.png" }, - { 23,"https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/melynx.png" }, - { 24,"https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/hornetaur.png" }, - { 25,"https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/apceros.png" }, - { 26,"https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/monoblos.png" }, - { 27,"https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/velocidrome.png" }, - { 28,"https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/gendrome.png" }, - { 29,"https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/random.png" }, - { 30,"https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/ioprey.png" }, - { 31,"https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/iodrome.png" }, - { 32,"https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/random.png" }, - { 33,"https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/kirin.png" }, - { 34,"https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/cephalos.png" }, - { 35,"https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/giaprey.png" }, - { 37,"https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/pink_rathian.png" }, - { 38,"https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/blue_yian_kut-ku.png" }, - { 39,"https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/purple_gypceros.png" }, - { 40,"https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/yian_garuga.png" }, - { 41,"https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/silver_rathalos.png" }, - { 42,"https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/gold_rathian.png" }, - { 43,"https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/black_diablos.png" }, - { 44,"https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/white_monoblos.png" }, - { 45,"https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/red_khezu.png" }, - { 46,"https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/green_plesioth.png" }, - { 47,"https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/black_gravios.png" }, - { 49,"https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/azure_rathalos.png" }, - { 50,"https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/ashen_lao-shan_lung.png" }, - { 52,"https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/congalala.png" }, - { 54,"https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/kushala_daora.png" }, - { 55,"https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/shen_gaoren.png" }, - { 56,"https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/great_thunderbug.png" }, - { 57,"https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/shakalaka.png" }, - { 58,"https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/yama_tsukami.png" }, - { 59,"https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/chameleos.png" }, - { 60,"https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/rusted_kushala_daora.png" }, - { 61,"https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/blango.png" }, - { 62,"https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/conga.png" }, - { 63,"https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/remobra.png" }, - { 64,"https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/lunastra.png" }, - { 66,"https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/hermitaur.png" }, - { 67,"https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/shogun_ceanataur.png" }, - { 68,"https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/bulldrome.png" }, - { 69,"https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/anteka.png" }, - { 70,"https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/popo.png" }, - { 72,"https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/yama_tsukami.png" }, - { 73,"https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/ceanataur.png" }, - { 75,"https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/lavasioth.png" }, - { 77,"https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/akantor.png" }, - { 78,"https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/bright_hypnoc.png" }, - { 79,"https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/red_lavasioth.png" }, - { 81,"https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/orange_espinas.png" }, - { 82,"https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/silver_hypnoc.png" }, - { 84,"https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/akura_jebia.png" }, - { 85,"https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/berukyurosu.png" }, - { 86,"https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/cactus.png" }, - { 87,"https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/random.png" }, - { 88,"https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/random.png" }, - { 90,"https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/white_espinas.png" }, - { 91,"https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/kamu_orugaron.png" }, - { 92,"https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/nono_orugaron.png" }, - { 93,"https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/raviente.png" }, - { 94,"https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/dyuragaua.png" }, - { 96,"https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/gurenzeburu.png" }, - { 97,"https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/burukku.png" }, - { 98,"https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/erupe.png" }, + { 4, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/mosswine.png" }, + { 5, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/bullfango.png" }, + { 6, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/yian_kut-ku.png" }, + { 7, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/lao-shan_lung.png" }, + { 8, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/cephadrome.png" }, + { 9, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/felyne.png" }, + { 10, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/random.png" }, + { 12, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/aptonoth.png" }, + { 13, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/genprey.png" }, + { 14, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/diablos.png" }, + { 16, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/velociprey.png" }, + { 18, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/felyne.png" }, + { 19, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/vespoid.png" }, + { 20, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/gypceros.png" }, + { 22, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/basarios.png" }, + { 23, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/melynx.png" }, + { 24, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/hornetaur.png" }, + { 25, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/apceros.png" }, + { 26, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/monoblos.png" }, + { 27, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/velocidrome.png" }, + { 28, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/gendrome.png" }, + { 29, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/random.png" }, + { 30, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/ioprey.png" }, + { 31, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/iodrome.png" }, + { 32, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/random.png" }, + { 33, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/kirin.png" }, + { 34, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/cephalos.png" }, + { 35, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/giaprey.png" }, + { 37, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/pink_rathian.png" }, + { 38, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/blue_yian_kut-ku.png" }, + { 39, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/purple_gypceros.png" }, + { 40, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/yian_garuga.png" }, + { 41, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/silver_rathalos.png" }, + { 42, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/gold_rathian.png" }, + { 43, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/black_diablos.png" }, + { 44, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/white_monoblos.png" }, + { 45, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/red_khezu.png" }, + { 46, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/green_plesioth.png" }, + { 47, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/black_gravios.png" }, + { 49, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/azure_rathalos.png" }, + { 50, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/ashen_lao-shan_lung.png" }, + { 52, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/congalala.png" }, + { 54, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/kushala_daora.png" }, + { 55, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/shen_gaoren.png" }, + { 56, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/great_thunderbug.png" }, + { 57, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/shakalaka.png" }, + { 58, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/yama_tsukami.png" }, + { 59, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/chameleos.png" }, + { 60, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/rusted_kushala_daora.png" }, + { 61, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/blango.png" }, + { 62, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/conga.png" }, + { 63, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/remobra.png" }, + { 64, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/lunastra.png" }, + { 66, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/hermitaur.png" }, + { 67, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/shogun_ceanataur.png" }, + { 68, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/bulldrome.png" }, + { 69, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/anteka.png" }, + { 70, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/popo.png" }, + { 72, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/yama_tsukami.png" }, + { 73, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/ceanataur.png" }, + { 75, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/lavasioth.png" }, + { 77, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/akantor.png" }, + { 78, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/bright_hypnoc.png" }, + { 79, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/red_lavasioth.png" }, + { 81, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/orange_espinas.png" }, + { 82, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/silver_hypnoc.png" }, + { 84, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/akura_jebia.png" }, + { 85, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/berukyurosu.png" }, + { 86, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/cactus.png" }, + { 87, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/random.png" }, + { 88, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/random.png" }, + { 90, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/white_espinas.png" }, + { 91, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/kamu_orugaron.png" }, + { 92, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/nono_orugaron.png" }, + { 93, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/raviente.png" }, + { 94, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/dyuragaua.png" }, + { 96, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/gurenzeburu.png" }, + { 97, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/burukku.png" }, + { 98, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/erupe.png" }, { 101, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/gogomoa.png" }, { 102, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/gogomoa.png" }, { 104, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/abiorugu.png" }, @@ -104,7 +103,7 @@ public static class MonsterImageMapper { 114, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/farunokku.png" }, { 115, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/pokaradon.png" }, { 117, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/pokara.png" }, - { 118,"https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/random.png" }, + { 118, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/random.png" }, { 119, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/supremacy_goruganosu.gif" }, { 120, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/supremacy_aruganosu.gif" }, { 122, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/zerureusu.png" }, diff --git a/MHFZ_Overlay/Models/Mappers/MonsterMapper.cs b/MHFZ_Overlay/Models/Mappers/MonsterMapper.cs index e3c7f358..941cbcaa 100644 --- a/MHFZ_Overlay/Models/Mappers/MonsterMapper.cs +++ b/MHFZ_Overlay/Models/Mappers/MonsterMapper.cs @@ -6,7 +6,6 @@ namespace MHFZ_Overlay.Models.Mappers; using System.Collections.Generic; - /// ///The monster ID list ///is the same as monsternamedictionary seemingly. could use this for something else. @@ -193,4 +192,4 @@ public static class MonsterMapper { 175, "PSO2 Rappy" }, { 176, "King Shakalaka" }, }; -}; +} diff --git a/MHFZ_Overlay/Models/Mappers/MonsterNameMapper.cs b/MHFZ_Overlay/Models/Mappers/MonsterNameMapper.cs index 5dce7f9c..aa54e02c 100644 --- a/MHFZ_Overlay/Models/Mappers/MonsterNameMapper.cs +++ b/MHFZ_Overlay/Models/Mappers/MonsterNameMapper.cs @@ -6,9 +6,8 @@ namespace MHFZ_Overlay.Models.Mappers; using System.Collections.Generic; - /// -///The monster name list +///The monster name list. Not the full list. /// public static class MonsterNameMapper { @@ -79,7 +78,6 @@ public static class MonsterNameMapper { 62, "Conga" }, { 63, "Remobra" }, { 64, "Lunastra" }, - { 66, "Hermitaur" }, { 67, "Shogun Ceanataur" }, { 68, "Bulldrome" }, @@ -103,13 +101,11 @@ public static class MonsterNameMapper { 86, "Cactus" }, { 87, "Gorge Object" }, { 88, "Gorge Rock" }, - { 90, "White Espinas" }, { 91, "Kamu Orugaron" }, { 92, "Nono Orugaron" }, { 93, "Raviente" }, { 94, "Dyuragaua" }, - { 96, "Gurenzeburu" }, { 97, "Burukku" }, { 98, "Erupe" }, @@ -120,14 +116,12 @@ public static class MonsterNameMapper { 103, "Taikun Zamuza" }, { 104, "Abiorugu" }, { 105, "Kuarusepusu" }, - { 107, "Disufiroa" }, { 108, "Rebidiora" }, { 109, "Anorupatisu" }, { 110, "Hyujikiki" }, { 111, "Midogaron" }, { 112, "Giaorugu" }, - { 114, "Farunokku" }, { 115, "Pokaradon" }, { 116, "Shantien" }, @@ -160,7 +154,6 @@ public static class MonsterNameMapper { 143, "Kusubami" }, { 144, "Yama Kurai" }, { 145, "3rd Phase Duremudira" }, - { 147, "Deviljho" }, { 148, "Brachydios" }, { 149, "Berserk Raviente" }, @@ -168,7 +161,6 @@ public static class MonsterNameMapper { 151, "Barioth" }, { 152, "Uragaan" }, { 153, "Stygian Zinogre" }, - { 156, "UNK" }, { 157, "Egyurasu" }, { 158, "Voljang" }, @@ -179,7 +171,6 @@ public static class MonsterNameMapper { 163, "Blinking Nargacuga" }, { 164, "Shagaru Magala" }, { 165, "Amatsu" }, - { 167, "Arrogant Duremudira" }, { 168, "Rocks" }, { 169, "Seregios" }, diff --git a/MHFZ_Overlay/Models/Mappers/MonsterRenderMapper.cs b/MHFZ_Overlay/Models/Mappers/MonsterRenderMapper.cs index b795f97f..219a410a 100644 --- a/MHFZ_Overlay/Models/Mappers/MonsterRenderMapper.cs +++ b/MHFZ_Overlay/Models/Mappers/MonsterRenderMapper.cs @@ -13,207 +13,205 @@ public static class MonsterRenderMapper { public static IReadOnlyDictionary MonsterRender { get; } = new Dictionary { - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/none.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/none.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/rathian.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/rathian.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/kelbi.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/kelbi.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/mosswine.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/mosswine.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/bullfango.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/bullfango.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/yian_kut-ku.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/yian_kut-ku.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/lao-shan_lung.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/lao-shan_lung.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/cephadrome.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/cephadrome.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/felyne.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/felyne.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/random.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/random.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/aptonoth.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/aptonoth.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/genprey.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/genprey.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/diablos.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/diablos.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/velociprey.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/velociprey.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/vespoid.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/vespoid.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/gypceros.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/gypceros.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/basarios.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/basarios.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/melynx.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/melynx.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/hornetaur.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/hornetaur.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/apceros.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/apceros.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/monoblos.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/monoblos.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/velocidrome.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/velocidrome.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/gendrome.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/gendrome.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/ioprey.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/ioprey.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/iodrome.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/iodrome.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/kirin.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/kirin.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/cephalos.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/cephalos.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/giaprey.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/giaprey.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/pink_rathian.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/pink_rathian.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/blue_yian_kut-ku.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/blue_yian_kut-ku.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/purple_gypceros.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/purple_gypceros.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/yian_garuga.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/yian_garuga.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/silver_rathalos.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/silver_rathalos.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/gold_rathian.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/gold_rathian.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/black_diablos.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/black_diablos.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/white_monoblos.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/white_monoblos.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/red_khezu.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/red_khezu.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/green_plesioth.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/green_plesioth.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/black_gravios.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/black_gravios.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/azure_rathalos.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/azure_rathalos.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/ashen_lao-shan_lung.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/ashen_lao-shan_lung.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/congalala.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/congalala.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/kushala_daora.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/kushala_daora.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/shen_gaoren.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/shen_gaoren.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/great_thunderbug.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/great_thunderbug.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/shakalaka.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/shakalaka.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/yama_tsukami.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/yama_tsukami.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/chameleos.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/chameleos.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/rusted_kushala_daora.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/rusted_kushala_daora.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/blango.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/blango.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/conga.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/conga.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/remobra.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/remobra.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/lunastra.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/lunastra.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/hermitaur.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/hermitaur.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/shogun_ceanataur.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/shogun_ceanataur.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/bulldrome.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/bulldrome.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/anteka.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/anteka.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/popo.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/popo.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/ceanataur.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/ceanataur.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/lavasioth.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/lavasioth.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/akantor.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/akantor.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/bright_hypnoc.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/bright_hypnoc.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/red_lavasioth.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/red_lavasioth.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/orange_espinas.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/orange_espinas.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/silver_hypnoc.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/silver_hypnoc.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/akura_jebia.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/akura_jebia.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/berukyurosu.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/berukyurosu.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/cactus.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/cactus.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/white_espinas.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/white_espinas.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/kamu_orugaron.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/kamu_orugaron.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/nono_orugaron.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/nono_orugaron.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/raviente.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/raviente.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/dyuragaua.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/dyuragaua.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/gurenzeburu.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/gurenzeburu.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/burukku.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/burukku.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/erupe.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/erupe.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/gogomoa.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/gogomoa.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/abiorugu.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/abiorugu.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/kuarusepusu.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/kuarusepusu.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/rebidiora.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/rebidiora.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/farunokku.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/farunokku.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/pokaradon.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/pokaradon.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/pokara.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/pokara.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/supremacy_goruganosu.gif","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/goruganosu.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/supremacy_aruganosu.gif","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/aruganosu.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/zerureusu.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/zerureusu.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/gougarf.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/gougarf.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/uruki.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/uruki.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/forokururu.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/forokururu.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/meraginasu.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/meragniasu.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/diorex.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/diorex.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/garuba_daora.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/garuba_daora.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/varusaburosu.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/varusaburosu.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/poborubarumu.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/poborubarumu.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/duremudira.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/duremudira.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/gureadomosu.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/gureadomosu.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/kusubami.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/kusubami.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/yama_kurai.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/yama_kurai.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/deviljho.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/deviljho.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/brachydios.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/brachydios.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/berserk_raviente.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/berserk_raviente.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/toa_tesukatora.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/toa_tesukatora.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/barioth.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/barioth.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/uragaan.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/uragaan.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/stygian_zinogre.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/stygian_zinogre.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/voljang.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/voljang.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/nargacuga.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/nargacuga.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/keoaruboru.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/keoaruboru.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/zenaserisu.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/zenaserisu.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/gore_magala.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/gore_magala.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/blinking_nargacuga.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/blinking_nargacuga.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/shagaru_magala.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/shagaru_magala.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/amatsu.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/amatsu.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/arrogant_duremudira.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/arrogant_duremudira.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/seregios.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/seregios.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/zenith_bogabadorumu.gif","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/zenith_bogabadorumu.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/blitzkrieg_bogabadorumu.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/blitzkrieg_bogabadorumu.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/sparkling_zerureusu.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/sparkling_zerureusu.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/pso2_rappy.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/pso2_rappy.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/king_shakalaka.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/king_shakalaka.png" }, - + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/none.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/none.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/rathian.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/rathian.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/kelbi.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/kelbi.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/mosswine.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/mosswine.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/bullfango.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/bullfango.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/yian_kut-ku.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/yian_kut-ku.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/lao-shan_lung.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/lao-shan_lung.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/cephadrome.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/cephadrome.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/felyne.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/felyne.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/random.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/random.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/aptonoth.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/aptonoth.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/genprey.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/genprey.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/diablos.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/diablos.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/velociprey.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/velociprey.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/vespoid.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/vespoid.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/gypceros.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/gypceros.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/basarios.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/basarios.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/melynx.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/melynx.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/hornetaur.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/hornetaur.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/apceros.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/apceros.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/monoblos.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/monoblos.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/velocidrome.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/velocidrome.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/gendrome.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/gendrome.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/ioprey.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/ioprey.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/iodrome.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/iodrome.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/kirin.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/kirin.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/cephalos.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/cephalos.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/giaprey.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/giaprey.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/pink_rathian.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/pink_rathian.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/blue_yian_kut-ku.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/blue_yian_kut-ku.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/purple_gypceros.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/purple_gypceros.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/yian_garuga.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/yian_garuga.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/silver_rathalos.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/silver_rathalos.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/gold_rathian.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/gold_rathian.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/black_diablos.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/black_diablos.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/white_monoblos.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/white_monoblos.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/red_khezu.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/red_khezu.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/green_plesioth.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/green_plesioth.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/black_gravios.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/black_gravios.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/azure_rathalos.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/azure_rathalos.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/ashen_lao-shan_lung.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/ashen_lao-shan_lung.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/congalala.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/congalala.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/kushala_daora.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/kushala_daora.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/shen_gaoren.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/shen_gaoren.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/great_thunderbug.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/great_thunderbug.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/shakalaka.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/shakalaka.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/yama_tsukami.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/yama_tsukami.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/chameleos.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/chameleos.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/rusted_kushala_daora.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/rusted_kushala_daora.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/blango.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/blango.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/conga.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/conga.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/remobra.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/remobra.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/lunastra.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/lunastra.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/hermitaur.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/hermitaur.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/shogun_ceanataur.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/shogun_ceanataur.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/bulldrome.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/bulldrome.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/anteka.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/anteka.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/popo.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/popo.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/ceanataur.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/ceanataur.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/lavasioth.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/lavasioth.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/akantor.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/akantor.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/bright_hypnoc.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/bright_hypnoc.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/red_lavasioth.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/red_lavasioth.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/orange_espinas.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/orange_espinas.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/silver_hypnoc.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/silver_hypnoc.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/akura_jebia.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/akura_jebia.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/berukyurosu.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/berukyurosu.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/cactus.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/cactus.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/white_espinas.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/white_espinas.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/kamu_orugaron.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/kamu_orugaron.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/nono_orugaron.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/nono_orugaron.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/raviente.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/raviente.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/dyuragaua.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/dyuragaua.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/gurenzeburu.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/gurenzeburu.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/burukku.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/burukku.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/erupe.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/erupe.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/gogomoa.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/gogomoa.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/abiorugu.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/abiorugu.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/kuarusepusu.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/kuarusepusu.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/rebidiora.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/rebidiora.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/farunokku.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/farunokku.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/pokaradon.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/pokaradon.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/pokara.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/pokara.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/supremacy_goruganosu.gif", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/goruganosu.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/supremacy_aruganosu.gif", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/aruganosu.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/zerureusu.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/zerureusu.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/gougarf.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/gougarf.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/uruki.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/uruki.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/forokururu.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/forokururu.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/meraginasu.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/meragniasu.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/diorex.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/diorex.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/garuba_daora.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/garuba_daora.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/varusaburosu.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/varusaburosu.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/poborubarumu.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/poborubarumu.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/duremudira.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/duremudira.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/gureadomosu.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/gureadomosu.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/kusubami.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/kusubami.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/yama_kurai.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/yama_kurai.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/deviljho.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/deviljho.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/brachydios.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/brachydios.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/berserk_raviente.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/berserk_raviente.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/toa_tesukatora.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/toa_tesukatora.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/barioth.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/barioth.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/uragaan.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/uragaan.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/stygian_zinogre.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/stygian_zinogre.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/voljang.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/voljang.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/nargacuga.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/nargacuga.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/keoaruboru.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/keoaruboru.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/zenaserisu.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/zenaserisu.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/gore_magala.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/gore_magala.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/blinking_nargacuga.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/blinking_nargacuga.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/shagaru_magala.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/shagaru_magala.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/amatsu.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/amatsu.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/arrogant_duremudira.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/arrogant_duremudira.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/seregios.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/seregios.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/zenith_bogabadorumu.gif", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/zenith_bogabadorumu.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/blitzkrieg_bogabadorumu.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/blitzkrieg_bogabadorumu.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/sparkling_zerureusu.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/sparkling_zerureusu.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/pso2_rappy.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/pso2_rappy.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/king_shakalaka.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/king_shakalaka.png" }, // alternate { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/conquest_fatalis.png" ,"https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/conquest_fatalis.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/fatalis.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/fatalis.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/zenith_rathalos.gif","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/zenith_rathalos.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/rathalos.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/rathalos.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/zenith_khezu.gif","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/zenith_khezu.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/khezu.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/khezu.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/zenith_gravios.gif","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/zenith_gravios.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/gravios.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/gravios.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/zenith_plesioth.gif","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/zenith_plesioth.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/plesioth.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/plesioth.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/conquest_crimson_fatalis.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/conquest_crimson_fatalis.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/crimson_fatalis.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/crimson_fatalis.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/zenith_daimyo_hermitaur.gif","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/zenith_daimyo_hermitaur.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/daimyo_hermitaur.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/daimyo_hermitaur.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/zenith_blangonga.gif","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/zenith_blangonga.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/blangonga.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/blangonga.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/twinhead_rajang.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/hc_rajang.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/rajang.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/rajang.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/supremacy_teostra.gif","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/supremacy_teostra.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/teostra.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/teostra.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/road_white_fatalis.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/road_white_fatalis.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/white_fatalis.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/white_fatalis.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/zenith_hypnoc.gif","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/zenith_hypnoc.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/hypnoc.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/hypnoc.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/zenith_tigrex.gif","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/zenith_tigrex.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/tigrex.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/tigrex.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/zenith_espinas.gif","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/zenith_espinas.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/espinas.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/espinas.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/zenith_akura_vashimu.gif","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/zenith_akura_vashimu.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/akura_vashimu.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/akura_vashimu.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/thirsty_pariapuria.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/thirsty_pariapuria.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/pariapuria.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/pariapuria.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/zenith_doragyurosu.gif","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/zenith_doragyurosu.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/supremacy_doragyurosu.gif","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/supremacy_doragyurosu.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/doragyurosu.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/doragyurosu.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/zenith_rukodiora.gif","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/zenith_rukodiora.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/rukodiora.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/rukodiora.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/shiten_unknown.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/shiten_unknown.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/unknown.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/unknown.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/zenith_taikun_zamuza.gif","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/zenith_taikun_zamuza.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/taikun_zamuza.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/taikun_zamuza.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/supremacy_odibatorasu.gif","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/supremacy_odibatorasu.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/odibatorasu.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/odibatorasu.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/shiten_disufiroa.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/shiten_disufiroa.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/disufiroa.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/disufiroa.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/zenith_anorupatisu.gif","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/zenith_anorupatisu.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/anorupatisu.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/anorupatisu.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/zenith_hyujikiki.gif","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/zenith_hyujikiki.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/hyujikiki.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/hyujikiki.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/zenith_midogaron.gif","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/zenith_midogaron.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/midogaron.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/midogaron.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/zenith_giaorugu.gif","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/zenith_giaorugu.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/giaorugu.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/giaorugu.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/shifting_mi_ru.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/shifting_mi_ru.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/mi_ru.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/mi_ru.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/conquest_shantien.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/shantien.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/shantien.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/shantien.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/zenith_baruragaru.gif","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/zenith_baruragaru.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/baruragaru.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/baruragaru.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/zenith_inagami.gif","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/zenith_inagami.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/inagami.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/inagami.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/zenith_harudomerugu.gif","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/zenith_harudomerugu.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/harudomerugu.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/harudomerugu.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/zenith_toridcless.gif","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/zenith_toridcless.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/toridcless.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/toridcless.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/zenith_gasurabazura.gif","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/zenith_gasurabazura.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/gasurabazura.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/gasurabazura.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/howling_zinogre.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/howling_zinogre.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/zinogre.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/zinogre.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/ruling_guanzorumu.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/ruling_guanzorumu.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/guanzorumu.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/guanzorumu.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/golden_deviljho.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/golden_deviljho.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/starving_deviljho.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/starving_deviljho.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/burning_freezing_elzelion.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/burning_freezing_elzelion.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/elzelion.png","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/elzelion.png" }, - - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/supremacy_pariapuria.gif","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/thirsty_pariapuria.png" }, - { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/supremacy_unknown.gif","https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/supremacy_unknown.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/fatalis.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/fatalis.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/zenith_rathalos.gif", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/zenith_rathalos.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/rathalos.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/rathalos.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/zenith_khezu.gif", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/zenith_khezu.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/khezu.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/khezu.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/zenith_gravios.gif", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/zenith_gravios.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/gravios.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/gravios.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/zenith_plesioth.gif", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/zenith_plesioth.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/plesioth.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/plesioth.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/conquest_crimson_fatalis.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/conquest_crimson_fatalis.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/crimson_fatalis.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/crimson_fatalis.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/zenith_daimyo_hermitaur.gif", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/zenith_daimyo_hermitaur.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/daimyo_hermitaur.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/daimyo_hermitaur.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/zenith_blangonga.gif", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/zenith_blangonga.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/blangonga.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/blangonga.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/twinhead_rajang.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/hc_rajang.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/rajang.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/rajang.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/supremacy_teostra.gif", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/supremacy_teostra.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/teostra.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/teostra.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/road_white_fatalis.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/road_white_fatalis.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/white_fatalis.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/white_fatalis.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/zenith_hypnoc.gif", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/zenith_hypnoc.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/hypnoc.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/hypnoc.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/zenith_tigrex.gif", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/zenith_tigrex.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/tigrex.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/tigrex.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/zenith_espinas.gif", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/zenith_espinas.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/espinas.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/espinas.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/zenith_akura_vashimu.gif", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/zenith_akura_vashimu.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/akura_vashimu.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/akura_vashimu.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/thirsty_pariapuria.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/thirsty_pariapuria.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/pariapuria.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/pariapuria.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/zenith_doragyurosu.gif", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/zenith_doragyurosu.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/supremacy_doragyurosu.gif", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/supremacy_doragyurosu.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/doragyurosu.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/doragyurosu.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/zenith_rukodiora.gif", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/zenith_rukodiora.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/rukodiora.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/rukodiora.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/shiten_unknown.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/shiten_unknown.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/unknown.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/unknown.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/zenith_taikun_zamuza.gif", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/zenith_taikun_zamuza.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/taikun_zamuza.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/taikun_zamuza.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/supremacy_odibatorasu.gif", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/supremacy_odibatorasu.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/odibatorasu.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/odibatorasu.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/shiten_disufiroa.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/shiten_disufiroa.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/disufiroa.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/disufiroa.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/zenith_anorupatisu.gif", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/zenith_anorupatisu.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/anorupatisu.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/anorupatisu.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/zenith_hyujikiki.gif", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/zenith_hyujikiki.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/hyujikiki.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/hyujikiki.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/zenith_midogaron.gif", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/zenith_midogaron.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/midogaron.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/midogaron.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/zenith_giaorugu.gif", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/zenith_giaorugu.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/giaorugu.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/giaorugu.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/shifting_mi_ru.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/shifting_mi_ru.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/mi_ru.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/mi_ru.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/conquest_shantien.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/shantien.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/shantien.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/shantien.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/zenith_baruragaru.gif", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/zenith_baruragaru.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/baruragaru.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/baruragaru.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/zenith_inagami.gif", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/zenith_inagami.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/inagami.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/inagami.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/zenith_harudomerugu.gif", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/zenith_harudomerugu.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/harudomerugu.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/harudomerugu.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/zenith_toridcless.gif", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/zenith_toridcless.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/toridcless.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/toridcless.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/zenith_gasurabazura.gif", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/zenith_gasurabazura.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/gasurabazura.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/gasurabazura.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/howling_zinogre.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/howling_zinogre.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/zinogre.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/zinogre.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/ruling_guanzorumu.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/ruling_guanzorumu.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/guanzorumu.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/guanzorumu.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/golden_deviljho.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/golden_deviljho.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/starving_deviljho.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/starving_deviljho.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/burning_freezing_elzelion.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/burning_freezing_elzelion.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/elzelion.png", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/elzelion.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/supremacy_pariapuria.gif", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/thirsty_pariapuria.png" }, + { "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/supremacy_unknown.gif", "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/render/supremacy_unknown.png" }, }; } diff --git a/MHFZ_Overlay/Models/Mappers/PersonalBestsMapper.cs b/MHFZ_Overlay/Models/Mappers/PersonalBestsMapper.cs index 64a00571..3a2b07a6 100644 --- a/MHFZ_Overlay/Models/Mappers/PersonalBestsMapper.cs +++ b/MHFZ_Overlay/Models/Mappers/PersonalBestsMapper.cs @@ -6,23 +6,27 @@ namespace MHFZ_Overlay.Models.Mappers; using System; - public class PersonalBestsMapper { - public string WeaponType { get; set; } - public long Attempts { get; set; } - public DateTime CreatedAt { get; set; } - public string ActualOverlayMode { get; set; } - public long RunID { get; set; } - public long TimeLeft { get; set; } - - public PersonalBestsMapper(string weaponType, long attempts, DateTime createdAt, string ActualOverlayMode, long runID, long timeLeft) + public PersonalBestsMapper(string weaponType, long attempts, DateTime createdAt, string actualOverlayMode, long runID, long timeLeft) { this.WeaponType = weaponType; this.Attempts = attempts; this.CreatedAt = createdAt; - this.ActualOverlayMode = ActualOverlayMode; + this.ActualOverlayMode = actualOverlayMode; this.RunID = runID; this.TimeLeft = timeLeft; } + + public string WeaponType { get; set; } + + public long Attempts { get; set; } + + public DateTime CreatedAt { get; set; } + + public string ActualOverlayMode { get; set; } + + public long RunID { get; set; } + + public long TimeLeft { get; set; } } diff --git a/MHFZ_Overlay/Models/Mappers/PlayersMapper.cs b/MHFZ_Overlay/Models/Mappers/PlayersMapper.cs index 4192b01f..4f261c0b 100644 --- a/MHFZ_Overlay/Models/Mappers/PlayersMapper.cs +++ b/MHFZ_Overlay/Models/Mappers/PlayersMapper.cs @@ -16,8 +16,9 @@ public static class PlayersList public static IReadOnlyDictionary> PlayerIDs { get; } = new Dictionary> { // No Player - { 0, new List{ DateTime.UnixEpoch.Date.ToString(CultureInfo.InvariantCulture), "None","NoGuild","0","Unknown","Japan" } }, + { 0, new List{ DateTime.UnixEpoch.Date.ToString(CultureInfo.InvariantCulture), "None", "NoGuild", "0", "Unknown", "Japan" } }, + // Local Player - { 1, new List{ DateTime.UtcNow.Date.ToString(CultureInfo.InvariantCulture), "HunterName","GuildName","0","Unknown","Japan" } }, + { 1, new List{ DateTime.UtcNow.Date.ToString(CultureInfo.InvariantCulture), "HunterName", "GuildName","0", "Unknown", "Japan" } }, }; -}; +} diff --git a/MHFZ_Overlay/Models/Mappers/WeaponIconsMapper.cs b/MHFZ_Overlay/Models/Mappers/WeaponIconsMapper.cs index 5b0842f0..d77c0a02 100644 --- a/MHFZ_Overlay/Models/Mappers/WeaponIconsMapper.cs +++ b/MHFZ_Overlay/Models/Mappers/WeaponIconsMapper.cs @@ -13,7 +13,6 @@ public static class WeaponIcons { public static IReadOnlyDictionary WeaponIconID { get; } = new Dictionary { - { 0, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/weapon/gs.png" }, { 1, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/weapon/hbg.png" }, { 2, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/weapon/hammer.png" }, @@ -29,5 +28,4 @@ public static class WeaponIcons { 12, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/weapon/saf.png" }, { 13, "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/weapon/ms.png" }, }; - -}; +} diff --git a/MHFZ_Overlay/Models/Mappers/WeaponUsageMapper.cs b/MHFZ_Overlay/Models/Mappers/WeaponUsageMapper.cs index ca058f5b..ddae0b76 100644 --- a/MHFZ_Overlay/Models/Mappers/WeaponUsageMapper.cs +++ b/MHFZ_Overlay/Models/Mappers/WeaponUsageMapper.cs @@ -6,16 +6,16 @@ namespace MHFZ_Overlay.Models.Mappers; public class WeaponUsageMapper { - public string WeaponType { get; set; } - - public string Style { get; set; } - - public long RunCount { get; set; } - public WeaponUsageMapper(string weaponType, string style, int runCount) { this.WeaponType = weaponType; this.Style = style; this.RunCount = runCount; } + + public string WeaponType { get; set; } + + public string Style { get; set; } + + public long RunCount { get; set; } } diff --git a/MHFZ_Overlay/Models/Monster/MonsterInfo.cs b/MHFZ_Overlay/Models/Monster/MonsterInfo.cs index 22ae6548..f214706a 100644 --- a/MHFZ_Overlay/Models/Monster/MonsterInfo.cs +++ b/MHFZ_Overlay/Models/Monster/MonsterInfo.cs @@ -12,6 +12,13 @@ namespace MHFZ_Overlay.Models.Monster; /// public class MonsterInfo { + public MonsterInfo(string name, string feriaslink, Dictionary matchups, string wikilink) + { + this.Name = name; + this.FeriasLink = feriaslink; + this.WeaponMatchups = matchups; + this.WikiLink = wikilink; + } public string Name { get; set; } @@ -20,12 +27,4 @@ public class MonsterInfo public string WikiLink { get; set; } public string FeriasLink { get; set; } - - public MonsterInfo(string name, string feriaslink, Dictionary matchups, string wikilink) - { - Name = name; - FeriasLink = feriaslink; - WeaponMatchups = matchups; - WikiLink = wikilink; - } } diff --git a/MHFZ_Overlay/Models/Monster/MonsterLog.cs b/MHFZ_Overlay/Models/Monster/MonsterLog.cs index 91cab460..2d402b16 100644 --- a/MHFZ_Overlay/Models/Monster/MonsterLog.cs +++ b/MHFZ_Overlay/Models/Monster/MonsterLog.cs @@ -9,6 +9,14 @@ namespace MHFZ_Overlay.Models.Monster; /// public class MonsterLog { + public MonsterLog(int id, string name, string image, int hunted, bool islarge = false) + { + this.ID = id; + this.Name = name; + this.MonsterImage = image; + this.Hunted = hunted; + this.IsLarge = islarge; + } public string Name { get; set; } @@ -19,14 +27,4 @@ public class MonsterLog public bool IsLarge { get; set; } public string MonsterImage { get; set; } - - public MonsterLog(int id, string name, string image, int hunted, bool islarge = false) - { - ID = id; - Name = name; - MonsterImage = image; - Hunted = hunted; - IsLarge = islarge; - } - } diff --git a/MHFZ_Overlay/Models/MonsterInfoList.cs b/MHFZ_Overlay/Models/MonsterInfoList.cs index aaed6a06..f9035d5f 100644 --- a/MHFZ_Overlay/Models/MonsterInfoList.cs +++ b/MHFZ_Overlay/Models/MonsterInfoList.cs @@ -13,1805 +13,2025 @@ namespace MHFZ_Overlay.Models; /// public static class MonsterInfoList { - private static string RickRoll = string.Empty; + private static string rickRoll = string.Empty; public static IReadOnlyList MonsterInfoIDs { get; } = new List { - new MonsterInfo("[Musou] Arrogant Duremudira", + new MonsterInfo( + "[Musou] Arrogant Duremudira", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/dolem_n.htm", new Dictionary() { - { "Sword and Shield","https://www.youtube.com/embed/jqaUPZ8DVfw" }, - { "Dual Swords","https://www.youtube.com/embed/qa6LfcOr_S0" }, - { "Great Sword","https://www.youtube.com/embed/MQit-3HZLhM" }, - { "Long Sword","https://www.youtube.com/embed/8letGMGpjbU" }, - { "Hammer","https://www.youtube.com/embed/Z2OwUAWROio" }, - { "Hunting Horn","" }, - { "Lance","https://www.youtube.com/embed/laa4x-V_qrQ" }, - { "Gunlance","https://www.youtube.com/embed/68WK1F69fMo" }, - { "Tonfa","https://www.youtube.com/embed/ry1faWMTdtQ" }, - { "Switch Axe F","https://www.youtube.com/embed/HV8qzOGYEoM" }, - { "Magnet Spike","https://www.youtube.com/embed/0Av3vuNs1pA" }, - { "Light Bowgun","https://www.youtube.com/embed/aWsO7pdp8OU" }, - { "Heavy Bowgun","" }, - { "Bow","https://www.youtube.com/embed/9UVFdkZT6SQ" }, - }, - "https://monsterhunter.fandom.com/wiki/Arrogant_Duremudira" - ), - - new MonsterInfo("[Musou] Blinking Nargacuga", + { "Sword and Shield", "https://www.youtube.com/embed/jqaUPZ8DVfw" }, + { "Dual Swords", "https://www.youtube.com/embed/qa6LfcOr_S0" }, + { "Great Sword", "https://www.youtube.com/embed/MQit-3HZLhM" }, + { "Long Sword", "https://www.youtube.com/embed/8letGMGpjbU" }, + { "Hammer", "https://www.youtube.com/embed/Z2OwUAWROio" }, + { "Hunting Horn", string.Empty }, + { "Lance", "https://www.youtube.com/embed/laa4x-V_qrQ" }, + { "Gunlance", "https://www.youtube.com/embed/68WK1F69fMo" }, + { "Tonfa", "https://www.youtube.com/embed/ry1faWMTdtQ" }, + { "Switch Axe F", "https://www.youtube.com/embed/HV8qzOGYEoM" }, + { "Magnet Spike", "https://www.youtube.com/embed/0Av3vuNs1pA" }, + { "Light Bowgun", "https://www.youtube.com/embed/aWsO7pdp8OU" }, + { "Heavy Bowgun", string.Empty }, + { "Bow", "https://www.youtube.com/embed/9UVFdkZT6SQ" }, + }, + "https://monsterhunter.fandom.com/wiki/Arrogant_Duremudira"), + + new MonsterInfo( + "[Musou] Blinking Nargacuga", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/nalgaK_n.htm", new Dictionary() { - { "Sword and Shield","https://www.youtube.com/embed/baWvEuLLwxk" }, - { "Dual Swords","https://www.youtube.com/embed/dlBMmEwCO6k" }, - { "Great Sword","https://www.youtube.com/embed/MA46kDZpDEs" }, - { "Long Sword","https://www.youtube.com/embed/qHCVjd0Ov7E" }, - { "Hammer","" }, - { "Hunting Horn","" }, - { "Lance","https://www.youtube.com/embed/TwWPTcuwK4o" }, - { "Gunlance","https://www.youtube.com/embed/IQRRyzkUSew" }, - { "Tonfa","https://www.youtube.com/embed/Q1bnA9LnWlU" }, - { "Switch Axe F","https://www.youtube.com/embed/n6SdO7Cpugg" }, - { "Magnet Spike","https://www.youtube.com/embed/n6SdO7Cpugg" }, - { "Light Bowgun","" }, - { "Heavy Bowgun","" }, - { "Bow","https://www.youtube.com/embed/pXPh2uqvFD8" }, - }, - "https://monsterhunter.fandom.com/wiki/Blinking_Nargacuga" - ), - - new MonsterInfo("[Musou] Blitzkrieg Bogabadorumu", + { "Sword and Shield", "https://www.youtube.com/embed/baWvEuLLwxk" }, + { "Dual Swords", "https://www.youtube.com/embed/dlBMmEwCO6k" }, + { "Great Sword", "https://www.youtube.com/embed/MA46kDZpDEs" }, + { "Long Sword", "https://www.youtube.com/embed/qHCVjd0Ov7E" }, + { "Hammer", string.Empty }, + { "Hunting Horn", string.Empty }, + { "Lance", "https://www.youtube.com/embed/TwWPTcuwK4o" }, + { "Gunlance", "https://www.youtube.com/embed/IQRRyzkUSew" }, + { "Tonfa", "https://www.youtube.com/embed/Q1bnA9LnWlU" }, + { "Switch Axe F", "https://www.youtube.com/embed/n6SdO7Cpugg" }, + { "Magnet Spike", "https://www.youtube.com/embed/n6SdO7Cpugg" }, + { "Light Bowgun", string.Empty }, + { "Heavy Bowgun", string.Empty }, + { "Bow", "https://www.youtube.com/embed/pXPh2uqvFD8" }, + }, + "https://monsterhunter.fandom.com/wiki/Blinking_Nargacuga"), + + new MonsterInfo( + "[Musou] Blitzkrieg Bogabadorumu", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/bogaK_n.htm", new Dictionary() { - { "Sword and Shield","https://youtube.com/embed/ak1o6N06V6U" }, - { "Dual Swords","https://youtube.com/embed/XAIvnGBVIp8" }, - { "Great Sword","https://youtube.com/embed/huULgUrupPM" }, - { "Long Sword","https://youtube.com/embed/X49Z85BCVIk" }, - { "Hammer","" }, - { "Hunting Horn","" }, - { "Lance","https://youtube.com/embed/kL1Zkhoa9eg" }, - { "Gunlance","https://youtube.com/embed/Lc3fS_010Ws" }, - { "Tonfa","https://youtube.com/embed/SyVWewqI1nw" }, - { "Switch Axe F","https://youtube.com/embed/LXaYqpRonrk" }, - { "Magnet Spike","https://www.youtube.com/embed/60UlLymak2k" }, - { "Light Bowgun","https://www.youtube.com/embed/_D5UqIjNm4Q" }, - { "Heavy Bowgun","" }, - { "Bow","https://www.youtube.com/embed/3aHSjPo90Vc" }, - }, - "https://monsterhunter.fandom.com/wiki/Bombardier_Bogabadorumu" - ), - - new MonsterInfo("[Musou] Burning Freezing Elzelion", + { "Sword and Shield", "https://youtube.com/embed/ak1o6N06V6U" }, + { "Dual Swords", "https://youtube.com/embed/XAIvnGBVIp8" }, + { "Great Sword", "https://youtube.com/embed/huULgUrupPM" }, + { "Long Sword", "https://youtube.com/embed/X49Z85BCVIk" }, + { "Hammer", string.Empty }, + { "Hunting Horn", string.Empty }, + { "Lance", "https://youtube.com/embed/kL1Zkhoa9eg" }, + { "Gunlance", "https://youtube.com/embed/Lc3fS_010Ws" }, + { "Tonfa", "https://youtube.com/embed/SyVWewqI1nw" }, + { "Switch Axe F", "https://youtube.com/embed/LXaYqpRonrk" }, + { "Magnet Spike", "https://www.youtube.com/embed/60UlLymak2k" }, + { "Light Bowgun", "https://www.youtube.com/embed/_D5UqIjNm4Q" }, + { "Heavy Bowgun", string.Empty }, + { "Bow", "https://www.youtube.com/embed/3aHSjPo90Vc" }, + }, + "https://monsterhunter.fandom.com/wiki/Bombardier_Bogabadorumu"), + + new MonsterInfo( + "[Musou] Burning Freezing Elzelion", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/elze_n.htm", new Dictionary() { - { "Sword and Shield","https://www.youtube.com/embed/RAdft8GHKvU" }, - { "Dual Swords","https://www.youtube.com/embed/X6F2uywrZiE" }, - { "Great Sword","https://www.youtube.com/embed/lN-4yfgd9y0" }, - { "Long Sword","https://www.youtube.com/embed/5EC60bXCUZ8" }, - { "Hammer","" }, - { "Hunting Horn","" }, - { "Lance","https://www.youtube.com/embed/vXkz-JgDWJQ" }, - { "Gunlance","https://www.youtube.com/embed/KxNao8p8eYw" }, - { "Tonfa","https://www.youtube.com/embed/4TmtciKAJyg" }, - { "Switch Axe F","https://www.youtube.com/embed/H5e7TYB1B9A" }, - { "Magnet Spike","https://www.youtube.com/embed/n27VlF1r894" }, - { "Light Bowgun","https://www.youtube.com/embed/lWZaWexqzxE" }, - { "Heavy Bowgun","https://www.youtube.com/embed/yGLLnEDVZoY" }, - { "Bow","" }, - }, - "https://monsterhunter.fandom.com/wiki/Burning_Freezing_Eruzerion" - ), - + { "Sword and Shield", "https://www.youtube.com/embed/RAdft8GHKvU" }, + { "Dual Swords", "https://www.youtube.com/embed/X6F2uywrZiE" }, + { "Great Sword", "https://www.youtube.com/embed/lN-4yfgd9y0" }, + { "Long Sword", "https://www.youtube.com/embed/5EC60bXCUZ8" }, + { "Hammer", string.Empty }, + { "Hunting Horn", string.Empty }, + { "Lance", "https://www.youtube.com/embed/vXkz-JgDWJQ" }, + { "Gunlance", "https://www.youtube.com/embed/KxNao8p8eYw" }, + { "Tonfa", "https://www.youtube.com/embed/4TmtciKAJyg" }, + { "Switch Axe F", "https://www.youtube.com/embed/H5e7TYB1B9A" }, + { "Magnet Spike", "https://www.youtube.com/embed/n27VlF1r894" }, + { "Light Bowgun", "https://www.youtube.com/embed/lWZaWexqzxE" }, + { "Heavy Bowgun", "https://www.youtube.com/embed/yGLLnEDVZoY" }, + { "Bow", string.Empty }, + }, + "https://monsterhunter.fandom.com/wiki/Burning_Freezing_Eruzerion"), - new MonsterInfo("[Musou] Howling Zinogre", + new MonsterInfo( + "[Musou] Howling Zinogre", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/zin_ng.htm", new Dictionary() { - { "Sword and Shield","https://www.youtube.com/embed/wc8lCUg0pko" }, - { "Dual Swords","https://www.youtube.com/embed/QOK1Kg5fzHk" }, - { "Great Sword","https://www.youtube.com/embed/sjBwjTN1VVg" }, - { "Long Sword","https://www.youtube.com/embed/C5eJ4wk9fYk" }, - { "Hammer","https://www.youtube.com/embed/R1rpbYzrCnQ" }, - { "Hunting Horn","https://www.youtube.com/embed/8GRK_r4al_Y" }, - { "Lance","https://www.youtube.com/embed/fii-JAZACQM" }, - { "Gunlance","https://www.youtube.com/embed/hawNX97Xp28" }, - { "Tonfa","https://www.youtube.com/embed/I8BbYtfJZdI" }, - { "Switch Axe F","https://www.youtube.com/embed/Dg9xQkCzqmo" }, - { "Magnet Spike","https://www.youtube.com/embed/bUpRnWAlpUw" }, - { "Light Bowgun","" }, - { "Heavy Bowgun","" }, - { "Bow","https://www.youtube.com/embed/GqMh_KUJx4E" }, - }, - "https://monsterhunter.fandom.com/wiki/Howling_Zinogre" - ), - - new MonsterInfo("[Musou] Ruling Guanzorumu", + { "Sword and Shield", "https://www.youtube.com/embed/wc8lCUg0pko" }, + { "Dual Swords", "https://www.youtube.com/embed/QOK1Kg5fzHk" }, + { "Great Sword", "https://www.youtube.com/embed/sjBwjTN1VVg" }, + { "Long Sword", "https://www.youtube.com/embed/C5eJ4wk9fYk" }, + { "Hammer", "https://www.youtube.com/embed/R1rpbYzrCnQ" }, + { "Hunting Horn", "https://www.youtube.com/embed/8GRK_r4al_Y" }, + { "Lance", "https://www.youtube.com/embed/fii-JAZACQM" }, + { "Gunlance", "https://www.youtube.com/embed/hawNX97Xp28" }, + { "Tonfa", "https://www.youtube.com/embed/I8BbYtfJZdI" }, + { "Switch Axe F", "https://www.youtube.com/embed/Dg9xQkCzqmo" }, + { "Magnet Spike", "https://www.youtube.com/embed/bUpRnWAlpUw" }, + { "Light Bowgun", string.Empty }, + { "Heavy Bowgun", string.Empty }, + { "Bow", "https://www.youtube.com/embed/GqMh_KUJx4E" }, + }, + "https://monsterhunter.fandom.com/wiki/Howling_Zinogre"), + + new MonsterInfo( + "[Musou] Ruling Guanzorumu", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/guan_ng.htm", new Dictionary() { - { "Sword and Shield","https://www.youtube.com/embed/UzLiZrO9CDE" }, - { "Dual Swords","https://www.youtube.com/embed/vMfgFOYoO3Q" }, - { "Great Sword","https://www.youtube.com/embed/3OUgl9HnTUQ" }, - { "Long Sword","https://www.youtube.com/embed/8OhtxYRlTIg" }, - { "Hammer","" }, - { "Hunting Horn","https://www.youtube.com/embed/DPX1MMBNojc" }, - { "Lance","" }, - { "Gunlance","https://www.youtube.com/embed/m4tZGBrdZWo" }, - { "Tonfa","https://www.youtube.com/embed/r7kPtv2v_m0" }, - { "Switch Axe F","https://www.youtube.com/embed/YNxAe0emonY" }, - { "Magnet Spike","https://www.youtube.com/embed/ZrGuUhbS06M" }, - { "Light Bowgun","https://www.youtube.com/embed/YjPCAW2VVcE" }, - { "Heavy Bowgun","https://www.youtube.com/embed/S5UYDotONl0" }, - { "Bow","https://www.youtube.com/embed/DXjkOqzyll8" }, - }, - "https://monsterhunter.fandom.com/wiki/Ruler_Guanzorumu" - ), - - new MonsterInfo("[Musou] Shifting Mi Ru", + { "Sword and Shield", "https://www.youtube.com/embed/UzLiZrO9CDE" }, + { "Dual Swords", "https://www.youtube.com/embed/vMfgFOYoO3Q" }, + { "Great Sword", "https://www.youtube.com/embed/3OUgl9HnTUQ" }, + { "Long Sword", "https://www.youtube.com/embed/8OhtxYRlTIg" }, + { "Hammer", string.Empty }, + { "Hunting Horn", "https://www.youtube.com/embed/DPX1MMBNojc" }, + { "Lance", string.Empty }, + { "Gunlance", "https://www.youtube.com/embed/m4tZGBrdZWo" }, + { "Tonfa", "https://www.youtube.com/embed/r7kPtv2v_m0" }, + { "Switch Axe F", "https://www.youtube.com/embed/YNxAe0emonY" }, + { "Magnet Spike", "https://www.youtube.com/embed/ZrGuUhbS06M" }, + { "Light Bowgun", "https://www.youtube.com/embed/YjPCAW2VVcE" }, + { "Heavy Bowgun", "https://www.youtube.com/embed/S5UYDotONl0" }, + { "Bow", "https://www.youtube.com/embed/DXjkOqzyll8" }, + }, + "https://monsterhunter.fandom.com/wiki/Ruler_Guanzorumu"), + + new MonsterInfo( + "[Musou] Shifting Mi Ru", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/mi-ru_n.htm", new Dictionary() { - { "Sword and Shield","" }, - { "Dual Swords","https://www.youtube.com/embed/V8YpNhcqJdE" }, - { "Great Sword","https://www.youtube.com/embed/7FwFQgJdumc" }, - { "Long Sword","https://www.youtube.com/embed/DpXkiVAvxYs" }, - { "Hammer","" }, - { "Hunting Horn","" }, - { "Lance","" }, - { "Gunlance","" }, - { "Tonfa","https://www.youtube.com/embed/4KbAyc9PElo" }, - { "Switch Axe F","https://www.youtube.com/embed/FyfYV8uuR9Q" }, - { "Magnet Spike","https://www.youtube.com/embed/ZP-IYyGhzu0" }, - { "Light Bowgun","" }, - { "Heavy Bowgun","" }, - { "Bow","https://www.youtube.com/embed/6UPpgA1V2n8" }, - }, - "https://monsterhunter.fandom.com/wiki/Mysterious_Mi_Ru" - ), - - new MonsterInfo("[Musou] Sparkling Zerureusu", + { "Sword and Shield", string.Empty }, + { "Dual Swords", "https://www.youtube.com/embed/V8YpNhcqJdE" }, + { "Great Sword", "https://www.youtube.com/embed/7FwFQgJdumc" }, + { "Long Sword", "https://www.youtube.com/embed/DpXkiVAvxYs" }, + { "Hammer", string.Empty }, + { "Hunting Horn", string.Empty }, + { "Lance", string.Empty }, + { "Gunlance", string.Empty }, + { "Tonfa", "https://www.youtube.com/embed/4KbAyc9PElo" }, + { "Switch Axe F", "https://www.youtube.com/embed/FyfYV8uuR9Q" }, + { "Magnet Spike", "https://www.youtube.com/embed/ZP-IYyGhzu0" }, + { "Light Bowgun", string.Empty }, + { "Heavy Bowgun", string.Empty }, + { "Bow", "https://www.youtube.com/embed/6UPpgA1V2n8" }, + }, + "https://monsterhunter.fandom.com/wiki/Mysterious_Mi_Ru"), + + new MonsterInfo( + "[Musou] Sparkling Zerureusu", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/zeruK_n.htm", new Dictionary() { - { "Sword and Shield","" }, - { "Dual Swords","https://www.youtube.com/embed/kTIjBZtjZvk" }, - { "Great Sword","https://www.youtube.com/embed/J49O7mh3Zyo" }, - { "Long Sword","https://www.youtube.com/embed/fTdHHEkZ6ho" }, - { "Hammer","" }, - { "Hunting Horn","" }, - { "Lance","https://www.youtube.com/embed/xRsJPgvGeLo" }, - { "Gunlance","https://www.youtube.com/embed/mMmweo6r5_Y" }, - { "Tonfa","https://www.youtube.com/embed/Tog0m5RnMzg" }, - { "Switch Axe F","https://www.youtube.com/embed/QJSEa9tle4U" }, - { "Magnet Spike","https://www.youtube.com/embed/xCSTBXjhE_4" }, - { "Light Bowgun","https://www.youtube.com/embed/Amg_AoLuabw" }, - { "Heavy Bowgun","" }, - { "Bow","https://www.youtube.com/embed/w3tjb5NNHQA" }, - }, - "https://monsterhunter.fandom.com/wiki/Sparkling_Zerureusu" - ), - - new MonsterInfo("[Musou] Starving Deviljho", + { "Sword and Shield", string.Empty }, + { "Dual Swords", "https://www.youtube.com/embed/kTIjBZtjZvk" }, + { "Great Sword", "https://www.youtube.com/embed/J49O7mh3Zyo" }, + { "Long Sword", "https://www.youtube.com/embed/fTdHHEkZ6ho" }, + { "Hammer", string.Empty }, + { "Hunting Horn", string.Empty }, + { "Lance", "https://www.youtube.com/embed/xRsJPgvGeLo" }, + { "Gunlance", "https://www.youtube.com/embed/mMmweo6r5_Y" }, + { "Tonfa", "https://www.youtube.com/embed/Tog0m5RnMzg" }, + { "Switch Axe F", "https://www.youtube.com/embed/QJSEa9tle4U" }, + { "Magnet Spike", "https://www.youtube.com/embed/xCSTBXjhE_4" }, + { "Light Bowgun", "https://www.youtube.com/embed/Amg_AoLuabw" }, + { "Heavy Bowgun", string.Empty }, + { "Bow", "https://www.youtube.com/embed/w3tjb5NNHQA" }, + }, + "https://monsterhunter.fandom.com/wiki/Sparkling_Zerureusu"), + + new MonsterInfo( + "[Musou] Starving Deviljho", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/joeK_n.htm", new Dictionary() { - { "Sword and Shield","" }, - { "Dual Swords","https://www.youtube.com/embed/RMiSqvbCaPA" }, - { "Great Sword","" }, - { "Long Sword","" }, - { "Hammer","" }, - { "Hunting Horn","" }, - { "Lance","" }, - { "Gunlance","" }, - { "Tonfa","https://www.youtube.com/embed/9jOg_zTG0X8" }, - { "Switch Axe F","" }, - { "Magnet Spike","" }, - { "Light Bowgun","" }, - { "Heavy Bowgun","" }, - { "Bow","" }, - }, - "https://monsterhunter.fandom.com/wiki/Starving_Deviljho" - ), - - new MonsterInfo("[Musou] Thirsty Pariapuria", + { "Sword and Shield", string.Empty }, + { "Dual Swords", "https://www.youtube.com/embed/RMiSqvbCaPA" }, + { "Great Sword", string.Empty }, + { "Long Sword", string.Empty }, + { "Hammer", string.Empty }, + { "Hunting Horn", string.Empty }, + { "Lance", string.Empty }, + { "Gunlance", string.Empty }, + { "Tonfa", "https://www.youtube.com/embed/9jOg_zTG0X8" }, + { "Switch Axe F", string.Empty }, + { "Magnet Spike", string.Empty }, + { "Light Bowgun", string.Empty }, + { "Heavy Bowgun", string.Empty }, + { "Bow", string.Empty }, + }, + "https://monsterhunter.fandom.com/wiki/Starving_Deviljho"), + + new MonsterInfo( + "[Musou] Thirsty Pariapuria", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/paria_ng.htm", new Dictionary() { - { "Sword and Shield","" }, - { "Dual Swords","https://www.youtube.com/embed/_B6E8ijgFis" }, - { "Great Sword","https://www.youtube.com/embed/ySVMaA0LdiM" }, - { "Long Sword","https://www.youtube.com/embed/TGyS7w7dbuc" }, - { "Hammer","https://www.youtube.com/embed/onsSrWl1kfE" }, - { "Hunting Horn","https://www.youtube.com/embed/M_j4qp9efYs" }, - { "Lance","https://www.youtube.com/embed/TkriXHXyMWw" }, - { "Gunlance","" }, - { "Tonfa","https://www.youtube.com/embed/wVdgUosZvZc" }, - { "Switch Axe F","https://www.youtube.com/embed/55Wfapp4eDI" }, - { "Magnet Spike","https://www.youtube.com/embed/myyS3hL7XT0" }, - { "Light Bowgun","" }, - { "Heavy Bowgun","https://www.youtube.com/embed/5kZF5LIWT3A" }, - { "Bow","https://www.youtube.com/embed/Y3YY1v4afJA" }, - }, - "https://monsterhunter.fandom.com/wiki/Thirsty_Pariapuria" - ), - + { "Sword and Shield", string.Empty }, + { "Dual Swords", "https://www.youtube.com/embed/_B6E8ijgFis" }, + { "Great Sword", "https://www.youtube.com/embed/ySVMaA0LdiM" }, + { "Long Sword", "https://www.youtube.com/embed/TGyS7w7dbuc" }, + { "Hammer", "https://www.youtube.com/embed/onsSrWl1kfE" }, + { "Hunting Horn", "https://www.youtube.com/embed/M_j4qp9efYs" }, + { "Lance", "https://www.youtube.com/embed/TkriXHXyMWw" }, + { "Gunlance", string.Empty }, + { "Tonfa", "https://www.youtube.com/embed/wVdgUosZvZc" }, + { "Switch Axe F", "https://www.youtube.com/embed/55Wfapp4eDI" }, + { "Magnet Spike", "https://www.youtube.com/embed/myyS3hL7XT0" }, + { "Light Bowgun", string.Empty }, + { "Heavy Bowgun", "https://www.youtube.com/embed/5kZF5LIWT3A" }, + { "Bow", "https://www.youtube.com/embed/Y3YY1v4afJA" }, + }, + "https://monsterhunter.fandom.com/wiki/Thirsty_Pariapuria"), - new MonsterInfo("Zenith Akura Vashimu", + new MonsterInfo( + "Zenith Akura Vashimu", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/aqura_ni.htm", new Dictionary() { - { "Sword and Shield","" }, - { "Dual Swords","" }, - { "Great Sword","" }, - { "Long Sword","" }, - { "Hammer","" }, - { "Hunting Horn","" }, - { "Lance","" }, - { "Gunlance","" }, - { "Tonfa","" }, - { "Switch Axe F","" }, - { "Magnet Spike","" }, - { "Light Bowgun","" }, - { "Heavy Bowgun","" }, - { "Bow","" }, - }, - "https://monsterhunter.fandom.com/wiki/Zenith_Akura_Vashimu" - ), - new MonsterInfo("Zenith Anorupatisu", + { "Sword and Shield", string.Empty }, + { "Dual Swords", string.Empty }, + { "Great Sword", string.Empty }, + { "Long Sword", string.Empty }, + { "Hammer", string.Empty }, + { "Hunting Horn", string.Empty }, + { "Lance", string.Empty }, + { "Gunlance", string.Empty }, + { "Tonfa", string.Empty }, + { "Switch Axe F", string.Empty }, + { "Magnet Spike", string.Empty }, + { "Light Bowgun", string.Empty }, + { "Heavy Bowgun", string.Empty }, + { "Bow", string.Empty }, + }, + "https://monsterhunter.fandom.com/wiki/Zenith_Akura_Vashimu"), + + new MonsterInfo( + "Zenith Anorupatisu", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/anolu_ni.htm", new Dictionary() { - { "Sword and Shield","" }, - { "Dual Swords","" }, - { "Great Sword","" }, - { "Long Sword","" }, - { "Hammer","" }, - { "Hunting Horn","" }, - { "Lance","" }, - { "Gunlance","" }, - { "Tonfa","" }, - { "Switch Axe F","" }, - { "Magnet Spike","" }, - { "Light Bowgun","" }, - { "Heavy Bowgun","" }, - { "Bow","" }, - }, - "https://monsterhunter.fandom.com/wiki/Zenith_Anorupatisu" - ), - new MonsterInfo("Zenith Baruragaru", + { "Sword and Shield", string.Empty }, + { "Dual Swords", string.Empty }, + { "Great Sword", string.Empty }, + { "Long Sword", string.Empty }, + { "Hammer", string.Empty }, + { "Hunting Horn", string.Empty }, + { "Lance", string.Empty }, + { "Gunlance", string.Empty }, + { "Tonfa", string.Empty }, + { "Switch Axe F", string.Empty }, + { "Magnet Spike", string.Empty }, + { "Light Bowgun", string.Empty }, + { "Heavy Bowgun", string.Empty }, + { "Bow", string.Empty }, + }, + "https://monsterhunter.fandom.com/wiki/Zenith_Anorupatisu"), + + new MonsterInfo( + "Zenith Baruragaru", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/bal_ni.htm", new Dictionary() { - { "Sword and Shield","" }, - { "Dual Swords","" }, - { "Great Sword","" }, - { "Long Sword","" }, - { "Hammer","" }, - { "Hunting Horn","" }, - { "Lance","" }, - { "Gunlance","" }, - { "Tonfa","" }, - { "Switch Axe F","" }, - { "Magnet Spike","" }, - { "Light Bowgun","" }, - { "Heavy Bowgun","" }, - { "Bow","" }, - }, - "https://monsterhunter.fandom.com/wiki/Zenith_Baruragaru" - ), - new MonsterInfo("Zenith Blangonga", + { "Sword and Shield", string.Empty }, + { "Dual Swords", string.Empty }, + { "Great Sword", string.Empty }, + { "Long Sword", string.Empty }, + { "Hammer", string.Empty }, + { "Hunting Horn", string.Empty }, + { "Lance", string.Empty }, + { "Gunlance", string.Empty }, + { "Tonfa", string.Empty }, + { "Switch Axe F", string.Empty }, + { "Magnet Spike", string.Empty }, + { "Light Bowgun", string.Empty }, + { "Heavy Bowgun", string.Empty }, + { "Bow", string.Empty }, + }, + "https://monsterhunter.fandom.com/wiki/Zenith_Baruragaru"), + + new MonsterInfo( + "Zenith Blangonga", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/dodobura_ni.htm", new Dictionary() { - { "Sword and Shield","" }, - { "Dual Swords","" }, - { "Great Sword","" }, - { "Long Sword","" }, - { "Hammer","" }, - { "Hunting Horn","" }, - { "Lance","" }, - { "Gunlance","" }, - { "Tonfa","" }, - { "Switch Axe F","" }, - { "Magnet Spike","" }, - { "Light Bowgun","" }, - { "Heavy Bowgun","" }, - { "Bow","" }, - }, - "https://monsterhunter.fandom.com/wiki/Zenith_Blangonga" - ), - new MonsterInfo("Zenith Daimyo Hermitaur", + { "Sword and Shield", string.Empty }, + { "Dual Swords", string.Empty }, + { "Great Sword", string.Empty }, + { "Long Sword", string.Empty }, + { "Hammer", string.Empty }, + { "Hunting Horn", string.Empty }, + { "Lance", string.Empty }, + { "Gunlance", string.Empty }, + { "Tonfa", string.Empty }, + { "Switch Axe F", string.Empty }, + { "Magnet Spike", string.Empty }, + { "Light Bowgun", string.Empty }, + { "Heavy Bowgun", string.Empty }, + { "Bow", string.Empty }, + }, + "https://monsterhunter.fandom.com/wiki/Zenith_Blangonga"), + + new MonsterInfo( + "Zenith Daimyo Hermitaur", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/daimyo_ni.htm", new Dictionary() { - { "Sword and Shield","" }, - { "Dual Swords","" }, - { "Great Sword","" }, - { "Long Sword","" }, - { "Hammer","" }, - { "Hunting Horn","" }, - { "Lance","" }, - { "Gunlance","" }, - { "Tonfa","" }, - { "Switch Axe F","" }, - { "Magnet Spike","" }, - { "Light Bowgun","" }, - { "Heavy Bowgun","" }, - { "Bow","" }, - }, - "https://monsterhunter.fandom.com/wiki/Zenith_Daimyo_Hermitaur" - ), - new MonsterInfo("Zenith Doragyurosu", + { "Sword and Shield", string.Empty }, + { "Dual Swords", string.Empty }, + { "Great Sword", string.Empty }, + { "Long Sword", string.Empty }, + { "Hammer", string.Empty }, + { "Hunting Horn", string.Empty }, + { "Lance", string.Empty }, + { "Gunlance", string.Empty }, + { "Tonfa", string.Empty }, + { "Switch Axe F", string.Empty }, + { "Magnet Spike", string.Empty }, + { "Light Bowgun", string.Empty }, + { "Heavy Bowgun", string.Empty }, + { "Bow", string.Empty }, + }, + "https://monsterhunter.fandom.com/wiki/Zenith_Daimyo_Hermitaur"), + + new MonsterInfo( + "Zenith Doragyurosu", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/doragyu_ni.htm", new Dictionary() { - { "Sword and Shield","" }, - { "Dual Swords","" }, - { "Great Sword","" }, - { "Long Sword","" }, - { "Hammer","" }, - { "Hunting Horn","" }, - { "Lance","" }, - { "Gunlance","" }, - { "Tonfa","" }, - { "Switch Axe F","" }, - { "Magnet Spike","" }, - { "Light Bowgun","" }, - { "Heavy Bowgun","" }, - { "Bow","" }, - }, - "https://monsterhunter.fandom.com/wiki/Zenith_Doragyurosu" - ), - - new MonsterInfo("Zenith Espinas", + { "Sword and Shield", string.Empty }, + { "Dual Swords", string.Empty }, + { "Great Sword", string.Empty }, + { "Long Sword", string.Empty }, + { "Hammer", string.Empty }, + { "Hunting Horn", string.Empty }, + { "Lance", string.Empty }, + { "Gunlance", string.Empty }, + { "Tonfa", string.Empty }, + { "Switch Axe F", string.Empty }, + { "Magnet Spike", string.Empty }, + { "Light Bowgun", string.Empty }, + { "Heavy Bowgun", string.Empty }, + { "Bow", string.Empty }, + }, + "https://monsterhunter.fandom.com/wiki/Zenith_Doragyurosu"), + + new MonsterInfo( + "Zenith Espinas", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/esp_ni.htm", new Dictionary() { - { "Sword and Shield","" }, - { "Dual Swords","" }, - { "Great Sword","" }, - { "Long Sword","" }, - { "Hammer","" }, - { "Hunting Horn","" }, - { "Lance","" }, - { "Gunlance","" }, - { "Tonfa","" }, - { "Switch Axe F","" }, - { "Magnet Spike","" }, - { "Light Bowgun","" }, - { "Heavy Bowgun","" }, - { "Bow","" }, - }, - "https://monsterhunter.fandom.com/wiki/Zenith_Espinas" - ), - new MonsterInfo("Zenith Gasurabazura", + { "Sword and Shield", string.Empty }, + { "Dual Swords", string.Empty }, + { "Great Sword", string.Empty }, + { "Long Sword", string.Empty }, + { "Hammer", string.Empty }, + { "Hunting Horn", string.Empty }, + { "Lance", string.Empty }, + { "Gunlance", string.Empty }, + { "Tonfa", string.Empty }, + { "Switch Axe F", string.Empty }, + { "Magnet Spike", string.Empty }, + { "Light Bowgun", string.Empty }, + { "Heavy Bowgun", string.Empty }, + { "Bow", string.Empty }, + }, + "https://monsterhunter.fandom.com/wiki/Zenith_Espinas"), + + new MonsterInfo( + "Zenith Gasurabazura", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/gasra_ni.htm", new Dictionary() { - { "Sword and Shield","" }, - { "Dual Swords","" }, - { "Great Sword","" }, - { "Long Sword","" }, - { "Hammer","" }, - { "Hunting Horn","" }, - { "Lance","" }, - { "Gunlance","" }, - { "Tonfa","" }, - { "Switch Axe F","" }, - { "Magnet Spike","" }, - { "Light Bowgun","" }, - { "Heavy Bowgun","" }, - { "Bow","" }, - }, - "https://monsterhunter.fandom.com/wiki/Zenith_Gasurabazura" - ), - new MonsterInfo("Zenith Giaorugu", + { "Sword and Shield", string.Empty }, + { "Dual Swords", string.Empty }, + { "Great Sword", string.Empty }, + { "Long Sword", string.Empty }, + { "Hammer", string.Empty }, + { "Hunting Horn", string.Empty }, + { "Lance", string.Empty }, + { "Gunlance", string.Empty }, + { "Tonfa", string.Empty }, + { "Switch Axe F", string.Empty }, + { "Magnet Spike", string.Empty }, + { "Light Bowgun", string.Empty }, + { "Heavy Bowgun", string.Empty }, + { "Bow", string.Empty }, + }, + "https://monsterhunter.fandom.com/wiki/Zenith_Gasurabazura"), + + new MonsterInfo( + "Zenith Giaorugu", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/giao_ni.htm", new Dictionary() { - { "Sword and Shield","" }, - { "Dual Swords","" }, - { "Great Sword","" }, - { "Long Sword","" }, - { "Hammer","" }, - { "Hunting Horn","" }, - { "Lance","" }, - { "Gunlance","" }, - { "Tonfa","" }, - { "Switch Axe F","" }, - { "Magnet Spike","" }, - { "Light Bowgun","" }, - { "Heavy Bowgun","" }, - { "Bow","" }, - }, - "https://monsterhunter.fandom.com/wiki/Zenith_Giaorugu" - ), - new MonsterInfo("Zenith Gravios", + { "Sword and Shield", string.Empty }, + { "Dual Swords", string.Empty }, + { "Great Sword", string.Empty }, + { "Long Sword", string.Empty }, + { "Hammer", string.Empty }, + { "Hunting Horn", string.Empty }, + { "Lance", string.Empty }, + { "Gunlance", string.Empty }, + { "Tonfa", string.Empty }, + { "Switch Axe F", string.Empty }, + { "Magnet Spike", string.Empty }, + { "Light Bowgun", string.Empty }, + { "Heavy Bowgun", string.Empty }, + { "Bow", string.Empty }, + }, + "https://monsterhunter.fandom.com/wiki/Zenith_Giaorugu"), + + new MonsterInfo( + "Zenith Gravios", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/gura_ni.htm", new Dictionary() { - { "Sword and Shield","" }, - { "Dual Swords","" }, - { "Great Sword","" }, - { "Long Sword","" }, - { "Hammer","" }, - { "Hunting Horn","" }, - { "Lance","" }, - { "Gunlance","" }, - { "Tonfa","" }, - { "Switch Axe F","" }, - { "Magnet Spike","" }, - { "Light Bowgun","" }, - { "Heavy Bowgun","" }, - { "Bow","" }, - }, - "https://monsterhunter.fandom.com/wiki/Zenith_Gravios" - ), - - new MonsterInfo("Zenith Harudomerugu", + { "Sword and Shield", string.Empty }, + { "Dual Swords", string.Empty }, + { "Great Sword", string.Empty }, + { "Long Sword", string.Empty }, + { "Hammer", string.Empty }, + { "Hunting Horn", string.Empty }, + { "Lance", string.Empty }, + { "Gunlance", string.Empty }, + { "Tonfa", string.Empty }, + { "Switch Axe F", string.Empty }, + { "Magnet Spike", string.Empty }, + { "Light Bowgun", string.Empty }, + { "Heavy Bowgun", string.Empty }, + { "Bow", string.Empty }, + }, + "https://monsterhunter.fandom.com/wiki/Zenith_Gravios"), + + new MonsterInfo( + "Zenith Harudomerugu", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/hald_ni.htm", new Dictionary() { - { "Sword and Shield","" }, - { "Dual Swords","" }, - { "Great Sword","" }, - { "Long Sword","" }, - { "Hammer","" }, - { "Hunting Horn","" }, - { "Lance","" }, - { "Gunlance","" }, - { "Tonfa","" }, - { "Switch Axe F","" }, - { "Magnet Spike","" }, - { "Light Bowgun","" }, - { "Heavy Bowgun","" }, - { "Bow","" }, - }, - "https://monsterhunter.fandom.com/wiki/Zenith_Harudomerugu" - ), - new MonsterInfo("Zenith Hypnoc", + { "Sword and Shield", string.Empty }, + { "Dual Swords", string.Empty }, + { "Great Sword", string.Empty }, + { "Long Sword", string.Empty }, + { "Hammer", string.Empty }, + { "Hunting Horn", string.Empty }, + { "Lance", string.Empty }, + { "Gunlance", string.Empty }, + { "Tonfa", string.Empty }, + { "Switch Axe F", string.Empty }, + { "Magnet Spike", string.Empty }, + { "Light Bowgun", string.Empty }, + { "Heavy Bowgun", string.Empty }, + { "Bow", string.Empty }, + }, + "https://monsterhunter.fandom.com/wiki/Zenith_Harudomerugu"), + + new MonsterInfo( + "Zenith Hypnoc", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/hipu_ni.htm", new Dictionary() { - { "Sword and Shield","" }, - { "Dual Swords","" }, - { "Great Sword","" }, - { "Long Sword","" }, - { "Hammer","" }, - { "Hunting Horn","" }, - { "Lance","" }, - { "Gunlance","" }, - { "Tonfa","" }, - { "Switch Axe F","" }, - { "Magnet Spike","" }, - { "Light Bowgun","" }, - { "Heavy Bowgun","" }, - { "Bow","" }, - }, - "https://monsterhunter.fandom.com/wiki/Zenith_Hypnocatrice" - ), - new MonsterInfo("Zenith Hyujikiki", + { "Sword and Shield", string.Empty }, + { "Dual Swords", string.Empty }, + { "Great Sword", string.Empty }, + { "Long Sword", string.Empty }, + { "Hammer", string.Empty }, + { "Hunting Horn", string.Empty }, + { "Lance", string.Empty }, + { "Gunlance", string.Empty }, + { "Tonfa", string.Empty }, + { "Switch Axe F", string.Empty }, + { "Magnet Spike", string.Empty }, + { "Light Bowgun", string.Empty }, + { "Heavy Bowgun", string.Empty }, + { "Bow", string.Empty }, + }, + "https://monsterhunter.fandom.com/wiki/Zenith_Hypnocatrice"), + + new MonsterInfo( + "Zenith Hyujikiki", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/hyuji_ni.htm", new Dictionary() { - { "Sword and Shield","" }, - { "Dual Swords","" }, - { "Great Sword","" }, - { "Long Sword","" }, - { "Hammer","" }, - { "Hunting Horn","" }, - { "Lance","" }, - { "Gunlance","" }, - { "Tonfa","" }, - { "Switch Axe F","" }, - { "Magnet Spike","" }, - { "Light Bowgun","" }, - { "Heavy Bowgun","" }, - { "Bow","" }, - }, - "https://monsterhunter.fandom.com/wiki/Zenith_Hyujikiki" - ), - new MonsterInfo("Zenith Inagami", + { "Sword and Shield", string.Empty }, + { "Dual Swords", string.Empty }, + { "Great Sword", string.Empty }, + { "Long Sword", string.Empty }, + { "Hammer", string.Empty }, + { "Hunting Horn", string.Empty }, + { "Lance", string.Empty }, + { "Gunlance", string.Empty }, + { "Tonfa", string.Empty }, + { "Switch Axe F", string.Empty }, + { "Magnet Spike", string.Empty }, + { "Light Bowgun", string.Empty }, + { "Heavy Bowgun", string.Empty }, + { "Bow", string.Empty }, + }, + "https://monsterhunter.fandom.com/wiki/Zenith_Hyujikiki"), + + new MonsterInfo( + "Zenith Inagami", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/ina_ni.htm", new Dictionary() { - { "Sword and Shield","" }, - { "Dual Swords","" }, - { "Great Sword","" }, - { "Long Sword","" }, - { "Hammer","" }, - { "Hunting Horn","" }, - { "Lance","" }, - { "Gunlance","" }, - { "Tonfa","" }, - { "Switch Axe F","" }, - { "Magnet Spike","" }, - { "Light Bowgun","" }, - { "Heavy Bowgun","" }, - { "Bow","" }, - }, - "https://monsterhunter.fandom.com/wiki/Zenith_Inagami" - ), - new MonsterInfo("Zenith Khezu", + { "Sword and Shield", string.Empty }, + { "Dual Swords", string.Empty }, + { "Great Sword", string.Empty }, + { "Long Sword", string.Empty }, + { "Hammer", string.Empty }, + { "Hunting Horn", string.Empty }, + { "Lance", string.Empty }, + { "Gunlance", string.Empty }, + { "Tonfa", string.Empty }, + { "Switch Axe F", string.Empty }, + { "Magnet Spike", string.Empty }, + { "Light Bowgun", string.Empty }, + { "Heavy Bowgun", string.Empty }, + { "Bow", string.Empty }, + }, + "https://monsterhunter.fandom.com/wiki/Zenith_Inagami"), + + new MonsterInfo( + "Zenith Khezu", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/furu_ni.htm", new Dictionary() { - { "Sword and Shield","" }, - { "Dual Swords","" }, - { "Great Sword","" }, - { "Long Sword","" }, - { "Hammer","" }, - { "Hunting Horn","" }, - { "Lance","" }, - { "Gunlance","" }, - { "Tonfa","" }, - { "Switch Axe F","" }, - { "Magnet Spike","" }, - { "Light Bowgun","" }, - { "Heavy Bowgun","" }, - { "Bow","" }, - }, - "https://monsterhunter.fandom.com/wiki/Zenith_Khezu" - ), - - new MonsterInfo("Zenith Midogaron", + { "Sword and Shield", string.Empty }, + { "Dual Swords", string.Empty }, + { "Great Sword", string.Empty }, + { "Long Sword", string.Empty }, + { "Hammer", string.Empty }, + { "Hunting Horn", string.Empty }, + { "Lance", string.Empty }, + { "Gunlance", string.Empty }, + { "Tonfa", string.Empty }, + { "Switch Axe F", string.Empty }, + { "Magnet Spike", string.Empty }, + { "Light Bowgun", string.Empty }, + { "Heavy Bowgun", string.Empty }, + { "Bow", string.Empty }, + }, + "https://monsterhunter.fandom.com/wiki/Zenith_Khezu"), + + new MonsterInfo( + "Zenith Midogaron", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/mido_ni.htm", new Dictionary() { - { "Sword and Shield","" }, - { "Dual Swords","" }, - { "Great Sword","" }, - { "Long Sword","" }, - { "Hammer","" }, - { "Hunting Horn","" }, - { "Lance","" }, - { "Gunlance","" }, - { "Tonfa","" }, - { "Switch Axe F","" }, - { "Magnet Spike","" }, - { "Light Bowgun","" }, - { "Heavy Bowgun","" }, - { "Bow","" }, - }, - "https://monsterhunter.fandom.com/wiki/Zenith_Midogaron" - ), - - new MonsterInfo("Zenith Plesioth", + { "Sword and Shield", string.Empty }, + { "Dual Swords", string.Empty }, + { "Great Sword", string.Empty }, + { "Long Sword", string.Empty }, + { "Hammer", string.Empty }, + { "Hunting Horn", string.Empty }, + { "Lance", string.Empty }, + { "Gunlance", string.Empty }, + { "Tonfa", string.Empty }, + { "Switch Axe F", string.Empty }, + { "Magnet Spike", string.Empty }, + { "Light Bowgun", string.Empty }, + { "Heavy Bowgun", string.Empty }, + { "Bow", string.Empty }, + }, + "https://monsterhunter.fandom.com/wiki/Zenith_Midogaron"), + + new MonsterInfo( + "Zenith Plesioth", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/gano_ni.htm", new Dictionary() { - { "Sword and Shield","" }, - { "Dual Swords","" }, - { "Great Sword","" }, - { "Long Sword","" }, - { "Hammer","" }, - { "Hunting Horn","" }, - { "Lance","" }, - { "Gunlance","" }, - { "Tonfa","" }, - { "Switch Axe F","" }, - { "Magnet Spike","" }, - { "Light Bowgun","" }, - { "Heavy Bowgun","" }, - { "Bow","" }, - }, - "https://monsterhunter.fandom.com/wiki/Zenith_Plesioth" - ), - new MonsterInfo("Zenith Rathalos", + { "Sword and Shield", string.Empty }, + { "Dual Swords", string.Empty }, + { "Great Sword", string.Empty }, + { "Long Sword", string.Empty }, + { "Hammer", string.Empty }, + { "Hunting Horn", string.Empty }, + { "Lance", string.Empty }, + { "Gunlance", string.Empty }, + { "Tonfa", string.Empty }, + { "Switch Axe F", string.Empty }, + { "Magnet Spike", string.Empty }, + { "Light Bowgun", string.Empty }, + { "Heavy Bowgun", string.Empty }, + { "Bow", string.Empty }, + }, + "https://monsterhunter.fandom.com/wiki/Zenith_Plesioth"), + + new MonsterInfo( + "Zenith Rathalos", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/reusu_ni.htm", new Dictionary() { - { "Sword and Shield","https://www.youtube.com/embed/pGqYN1ks5AQ" }, - { "Dual Swords","" }, - { "Great Sword","https://www.youtube.com/embed/LQra_886zSA" }, - { "Long Sword","https://www.youtube.com/embed/2rKIOjUx1wU" }, - { "Hammer","https://www.youtube.com/embed/Dmmr6rrRkXg" }, - { "Hunting Horn","https://www.youtube.com/embed/cKe1_xqLGm8" }, - { "Lance","" }, - { "Gunlance","" }, - { "Tonfa","https://www.youtube.com/embed/Xt96sulv-Wc" }, - { "Switch Axe F","https://www.youtube.com/embed/mI2WKvwVKXU" }, - { "Magnet Spike","https://www.youtube.com/embed/gQT9DiO7BJ4" }, - { "Light Bowgun","https://www.youtube.com/embed/R9kK5AmjcHk" }, - { "Heavy Bowgun","" }, - { "Bow","https://www.youtube.com/embed/bsQ-skmpe4Q" }, - }, - "https://monsterhunter.fandom.com/wiki/Rathalos" - ), - new MonsterInfo("Zenith Rukodiora", + { "Sword and Shield", "https://www.youtube.com/embed/pGqYN1ks5AQ" }, + { "Dual Swords", string.Empty }, + { "Great Sword", "https://www.youtube.com/embed/LQra_886zSA" }, + { "Long Sword", "https://www.youtube.com/embed/2rKIOjUx1wU" }, + { "Hammer", "https://www.youtube.com/embed/Dmmr6rrRkXg" }, + { "Hunting Horn", "https://www.youtube.com/embed/cKe1_xqLGm8" }, + { "Lance", string.Empty }, + { "Gunlance", string.Empty }, + { "Tonfa", "https://www.youtube.com/embed/Xt96sulv-Wc" }, + { "Switch Axe F", "https://www.youtube.com/embed/mI2WKvwVKXU" }, + { "Magnet Spike", "https://www.youtube.com/embed/gQT9DiO7BJ4" }, + { "Light Bowgun", "https://www.youtube.com/embed/R9kK5AmjcHk" }, + { "Heavy Bowgun", string.Empty }, + { "Bow", "https://www.youtube.com/embed/bsQ-skmpe4Q" }, + }, + "https://monsterhunter.fandom.com/wiki/Rathalos"), + + new MonsterInfo( + "Zenith Rukodiora", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/ruco_ni.htm", new Dictionary() { - { "Sword and Shield","" }, - { "Dual Swords","" }, - { "Great Sword","" }, - { "Long Sword","" }, - { "Hammer","" }, - { "Hunting Horn","" }, - { "Lance","" }, - { "Gunlance","" }, - { "Tonfa","" }, - { "Switch Axe F","" }, - { "Magnet Spike","" }, - { "Light Bowgun","" }, - { "Heavy Bowgun","" }, - { "Bow","" }, - }, - "https://monsterhunter.fandom.com/wiki/Zenith_Rukodiora" - ), - new MonsterInfo("Zenith Taikun Zamuza", + { "Sword and Shield", string.Empty }, + { "Dual Swords", string.Empty }, + { "Great Sword", string.Empty }, + { "Long Sword", string.Empty }, + { "Hammer", string.Empty }, + { "Hunting Horn", string.Empty }, + { "Lance", string.Empty }, + { "Gunlance", string.Empty }, + { "Tonfa", string.Empty }, + { "Switch Axe F", string.Empty }, + { "Magnet Spike", string.Empty }, + { "Light Bowgun", string.Empty }, + { "Heavy Bowgun", string.Empty }, + { "Bow", string.Empty }, + }, + "https://monsterhunter.fandom.com/wiki/Zenith_Rukodiora"), + + new MonsterInfo( + "Zenith Taikun Zamuza", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/taikun_ni.htm", new Dictionary() { - { "Sword and Shield","" }, - { "Dual Swords","" }, - { "Great Sword","" }, - { "Long Sword","" }, - { "Hammer","" }, - { "Hunting Horn","" }, - { "Lance","" }, - { "Gunlance","" }, - { "Tonfa","" }, - { "Switch Axe F","" }, - { "Magnet Spike","" }, - { "Light Bowgun","" }, - { "Heavy Bowgun","" }, - { "Bow","" }, - }, - "https://monsterhunter.fandom.com/wiki/Zenith_Taikun_Zamuza" - ), - new MonsterInfo("Zenith Tigrex", + { "Sword and Shield", string.Empty }, + { "Dual Swords", string.Empty }, + { "Great Sword", string.Empty }, + { "Long Sword", string.Empty }, + { "Hammer", string.Empty }, + { "Hunting Horn", string.Empty }, + { "Lance", string.Empty }, + { "Gunlance", string.Empty }, + { "Tonfa", string.Empty }, + { "Switch Axe F", string.Empty }, + { "Magnet Spike", string.Empty }, + { "Light Bowgun", string.Empty }, + { "Heavy Bowgun", string.Empty }, + { "Bow", string.Empty }, + }, + "https://monsterhunter.fandom.com/wiki/Zenith_Taikun_Zamuza"), + + new MonsterInfo( + "Zenith Tigrex", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/tiga_ni.htm", new Dictionary() { - { "Sword and Shield","" }, - { "Dual Swords","" }, - { "Great Sword","" }, - { "Long Sword","" }, - { "Hammer","" }, - { "Hunting Horn","" }, - { "Lance","" }, - { "Gunlance","" }, - { "Tonfa","" }, - { "Switch Axe F","" }, - { "Magnet Spike","" }, - { "Light Bowgun","" }, - { "Heavy Bowgun","" }, - { "Bow","" }, - }, - "https://monsterhunter.fandom.com/wiki/Zenith_Tigrex" - ), - new MonsterInfo("Zenith Toridcless", + { "Sword and Shield", string.Empty }, + { "Dual Swords", string.Empty }, + { "Great Sword", string.Empty }, + { "Long Sword", string.Empty }, + { "Hammer", string.Empty }, + { "Hunting Horn", string.Empty }, + { "Lance", string.Empty }, + { "Gunlance", string.Empty }, + { "Tonfa", string.Empty }, + { "Switch Axe F", string.Empty }, + { "Magnet Spike", string.Empty }, + { "Light Bowgun", string.Empty }, + { "Heavy Bowgun", string.Empty }, + { "Bow", string.Empty }, + }, + "https://monsterhunter.fandom.com/wiki/Zenith_Tigrex"), + + new MonsterInfo( + "Zenith Toridcless", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/torid_ni.htm", new Dictionary() { - { "Sword and Shield","" }, - { "Dual Swords","" }, - { "Great Sword","" }, - { "Long Sword","" }, - { "Hammer","" }, - { "Hunting Horn","" }, - { "Lance","" }, - { "Gunlance","" }, - { "Tonfa","" }, - { "Switch Axe F","" }, - { "Magnet Spike","" }, - { "Light Bowgun","" }, - { "Heavy Bowgun","" }, - { "Bow","" }, - }, - "https://monsterhunter.fandom.com/wiki/Zenith_Toridcless" - ), + { "Sword and Shield", string.Empty }, + { "Dual Swords", string.Empty }, + { "Great Sword", string.Empty }, + { "Long Sword", string.Empty }, + { "Hammer", string.Empty }, + { "Hunting Horn", string.Empty }, + { "Lance", string.Empty }, + { "Gunlance", string.Empty }, + { "Tonfa", string.Empty }, + { "Switch Axe F", string.Empty }, + { "Magnet Spike", string.Empty }, + { "Light Bowgun", string.Empty }, + { "Heavy Bowgun", string.Empty }, + { "Bow", string.Empty }, + }, + "https://monsterhunter.fandom.com/wiki/Zenith_Toridcless"), - - new MonsterInfo("1st District Duremudira", + new MonsterInfo( + "1st District Duremudira", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/dolem1_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Duremudira" - ), new MonsterInfo("2nd District Duremudira", + "https://monsterhunter.fandom.com/wiki/Duremudira"), + + new MonsterInfo( + "2nd District Duremudira", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/dolem2_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Duremudira" - ), new MonsterInfo("Abiorugu", + "https://monsterhunter.fandom.com/wiki/Duremudira"), + + new MonsterInfo( + "Abiorugu", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/abio_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Abiorugu" - ), new MonsterInfo("Akantor", + "https://monsterhunter.fandom.com/wiki/Abiorugu"), + new MonsterInfo( + "Akantor", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/akamu_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Akantor" - ), new MonsterInfo("Akura Jebia", + "https://monsterhunter.fandom.com/wiki/Akantor"), + + new MonsterInfo( + "Akura Jebia", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/aquraj_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Akura_Jebia" - ), new MonsterInfo("Akura Vashimu", + "https://monsterhunter.fandom.com/wiki/Akura_Jebia"), + new MonsterInfo( + "Akura Vashimu", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/aqura_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Akura_Vashimu" - ), new MonsterInfo("Amatsu", + "https://monsterhunter.fandom.com/wiki/Akura_Vashimu"), + + new MonsterInfo( + "Amatsu", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/amatsu_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Amatsu" - ), new MonsterInfo("Anorupatisu", + "https://monsterhunter.fandom.com/wiki/Amatsu"), + + new MonsterInfo( + "Anorupatisu", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/anolu_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Anorupatisu" - ), new MonsterInfo("Anteka", + "https://monsterhunter.fandom.com/wiki/Anorupatisu"), + + new MonsterInfo( + "Anteka", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/gau_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Anteka" - ), new MonsterInfo("Apceros", + "https://monsterhunter.fandom.com/wiki/Anteka"), + + new MonsterInfo( + "Apceros", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/apuke_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Apceros" - ), new MonsterInfo("Aptonoth", + "https://monsterhunter.fandom.com/wiki/Apceros"), + + new MonsterInfo( + "Aptonoth", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/apono_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Aptonoth" - ), new MonsterInfo("Aruganosu", + "https://monsterhunter.fandom.com/wiki/Aptonoth"), + + new MonsterInfo( + "Aruganosu", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/volgin_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Aruganosu" - ), new MonsterInfo("Ashen Lao-Shan Lung", + "https://monsterhunter.fandom.com/wiki/Aruganosu"), + + new MonsterInfo( + "Ashen Lao-Shan Lung", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/raoao_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Ashen_Lao-Shan_Lung" - ), new MonsterInfo("Azure Rathalos", + "https://monsterhunter.fandom.com/wiki/Ashen_Lao-Shan_Lung"), + + new MonsterInfo( + "Azure Rathalos", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/reusuao_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Azure_Rathalos" - ), new MonsterInfo("Barioth", + "https://monsterhunter.fandom.com/wiki/Azure_Rathalos"), + + new MonsterInfo( + "Barioth", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/berio_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Barioth" - ), new MonsterInfo("Baruragaru", + "https://monsterhunter.fandom.com/wiki/Barioth"), + + new MonsterInfo( + "Baruragaru", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/bal_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Baruragaru" - ), - new MonsterInfo("Basarios", + "https://monsterhunter.fandom.com/wiki/Baruragaru"), + + new MonsterInfo( + "Basarios", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/basa_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Basarios" - ),new MonsterInfo("Berserk Raviente", + "https://monsterhunter.fandom.com/wiki/Basarios"), + + new MonsterInfo( + "Berserk Raviente", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/lavieG_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Berserk_Raviente" - ),new MonsterInfo("Berukyurosu", + "https://monsterhunter.fandom.com/wiki/Berserk_Raviente"), + + new MonsterInfo( + "Berukyurosu", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/beru_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Berukyurosu" - ),new MonsterInfo("Black Diablos", + "https://monsterhunter.fandom.com/wiki/Berukyurosu"), + + new MonsterInfo( + "Black Diablos", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/deakuro_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Black_Diablos" - ),new MonsterInfo("Black Gravios", + "https://monsterhunter.fandom.com/wiki/Black_Diablos"), + + new MonsterInfo( + "Black Gravios", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/gurakuro_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Black_Gravios" - ),new MonsterInfo("Blango", + "https://monsterhunter.fandom.com/wiki/Black_Gravios"), + + new MonsterInfo( + "Blango", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/bura_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Blango" - ),new MonsterInfo("Blangonga", + "https://monsterhunter.fandom.com/wiki/Blango"), + + new MonsterInfo( + "Blangonga", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/dodobura_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Blangonga" - ),new MonsterInfo("Blue Yian Kut-Ku", + "https://monsterhunter.fandom.com/wiki/Blangonga"), + + new MonsterInfo( + "Blue Yian Kut-Ku", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/kukkuao_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Blue_Yian_Kut-Ku" - ),new MonsterInfo("Bogabadorumu", + "https://monsterhunter.fandom.com/wiki/Blue_Yian_Kut-Ku"), + + new MonsterInfo( + "Bogabadorumu", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/boga_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Bogabadorumu" - ),new MonsterInfo("Brachydios", + "https://monsterhunter.fandom.com/wiki/Bogabadorumu"), + + new MonsterInfo( + "Brachydios", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/buraki_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Brachydios" - ),new MonsterInfo("Bright Hypnoc", + "https://monsterhunter.fandom.com/wiki/Brachydios"), + + new MonsterInfo( + "Bright Hypnoc", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/hipuao_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Breeding_Season_Hypnocatrice" - ),new MonsterInfo("Bulldrome", + "https://monsterhunter.fandom.com/wiki/Breeding_Season_Hypnocatrice"), + + new MonsterInfo( + "Bulldrome", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/dosburu_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Bulldrome" - ),new MonsterInfo("Bullfango", + "https://monsterhunter.fandom.com/wiki/Bulldrome"), + + new MonsterInfo( + "Bullfango", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/buru_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Bullfango" - ),new MonsterInfo("Burukku", + "https://monsterhunter.fandom.com/wiki/Bullfango"), + + new MonsterInfo( + "Burukku", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/brook_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Burukku" - ),new MonsterInfo("Ceanataur", + "https://monsterhunter.fandom.com/wiki/Burukku"), + + new MonsterInfo( + "Ceanataur", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/yao_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Ceanataur" - ),new MonsterInfo("Cephadrome", + "https://monsterhunter.fandom.com/wiki/Ceanataur"), + + new MonsterInfo( + "Cephadrome", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/dosgare_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Cephadrome" - ),new MonsterInfo("Cephalos", + "https://monsterhunter.fandom.com/wiki/Cephadrome"), + + new MonsterInfo( + "Cephalos", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/gare_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Cephalos" - ),new MonsterInfo("Chameleos", + "https://monsterhunter.fandom.com/wiki/Cephalos"), + + new MonsterInfo( + "Chameleos", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/oo_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Chameleos" - ),new MonsterInfo("Conga", + "https://monsterhunter.fandom.com/wiki/Chameleos"), + + new MonsterInfo( + "Conga", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/konga_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Conga" - ),new MonsterInfo("Congalala", + "https://monsterhunter.fandom.com/wiki/Conga"), + + new MonsterInfo( + "Congalala", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/babakonga_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Congalala" - ),new MonsterInfo("Crimson Fatalis", + "https://monsterhunter.fandom.com/wiki/Congalala"), + + new MonsterInfo( + "Crimson Fatalis", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/miraval_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Crimson_Fatalis" - ),new MonsterInfo("Daimyo Hermitaur", + "https://monsterhunter.fandom.com/wiki/Crimson_Fatalis"), + + new MonsterInfo( + "Daimyo Hermitaur", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/daimyo_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Daimyo_Hermitaur" - ),new MonsterInfo("Deviljho", + "https://monsterhunter.fandom.com/wiki/Daimyo_Hermitaur"), + + new MonsterInfo( + "Deviljho", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/joe_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Deviljho" - ),new MonsterInfo("Diablos", + "https://monsterhunter.fandom.com/wiki/Deviljho"), + + new MonsterInfo( + "Diablos", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/dea_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Diablos" - ),new MonsterInfo("Diorex", + "https://monsterhunter.fandom.com/wiki/Diablos"), + + new MonsterInfo( + "Diorex", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/dio_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Diorekkusu" - ),new MonsterInfo("Disufiroa", + "https://monsterhunter.fandom.com/wiki/Diorekkusu"), + + new MonsterInfo( + "Disufiroa", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/disf_n.htm", new Dictionary() { - { "Sword and Shield","https://www.youtube.com/embed/leNWg4HoAbQ" }, - { "Dual Swords","https://www.youtube.com/embed/obcm9-ebei8" }, - { "Great Sword","https://www.youtube.com/embed/obcm9-ebei8" }, - { "Long Sword","https://www.youtube.com/embed/3dJR6YqTZcM" }, - { "Hammer","" }, - { "Hunting Horn","" }, - { "Lance","https://www.youtube.com/embed/TTj9T6Tskcg" }, - { "Gunlance","https://www.youtube.com/embed/wgR1Bf-kApo" }, - { "Tonfa","https://www.youtube.com/embed/1sjynMO0CJk" }, - { "Switch Axe F","" }, - { "Magnet Spike","https://www.youtube.com/embed/FYS_yi7EQmA" }, - { "Light Bowgun","https://www.youtube.com/embed/TPR4nYlWFgY" }, - { "Heavy Bowgun","https://www.youtube.com/embed/MHf2R504_xc" }, - { "Bow","" }, - }, - "https://monsterhunter.fandom.com/wiki/Disufiroa" - ),new MonsterInfo("Doragyurosu", + { "Sword and Shield", "https://www.youtube.com/embed/leNWg4HoAbQ" }, + { "Dual Swords", "https://www.youtube.com/embed/obcm9-ebei8" }, + { "Great Sword", "https://www.youtube.com/embed/obcm9-ebei8" }, + { "Long Sword", "https://www.youtube.com/embed/3dJR6YqTZcM" }, + { "Hammer", string.Empty }, + { "Hunting Horn", string.Empty }, + { "Lance", "https://www.youtube.com/embed/TTj9T6Tskcg" }, + { "Gunlance", "https://www.youtube.com/embed/wgR1Bf-kApo" }, + { "Tonfa", "https://www.youtube.com/embed/1sjynMO0CJk" }, + { "Switch Axe F", string.Empty }, + { "Magnet Spike", "https://www.youtube.com/embed/FYS_yi7EQmA" }, + { "Light Bowgun", "https://www.youtube.com/embed/TPR4nYlWFgY" }, + { "Heavy Bowgun", "https://www.youtube.com/embed/MHf2R504_xc" }, + { "Bow", string.Empty }, + }, + "https://monsterhunter.fandom.com/wiki/Disufiroa"), + + new MonsterInfo( + "Doragyurosu", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/doragyu_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Doragyurosu" - ),new MonsterInfo("Dyuragaua", + "https://monsterhunter.fandom.com/wiki/Doragyurosu"), + + new MonsterInfo( + "Dyuragaua", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/dura_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Dyuragaua" - ),new MonsterInfo("Egyurasu", + "https://monsterhunter.fandom.com/wiki/Dyuragaua"), + + new MonsterInfo( + "Egyurasu", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/egura_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Egyurasu" - ),new MonsterInfo("Elzelion", + "https://monsterhunter.fandom.com/wiki/Egyurasu"), + + new MonsterInfo( + "Elzelion", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/elze_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Eruzerion" - ),new MonsterInfo("Erupe", + "https://monsterhunter.fandom.com/wiki/Eruzerion"), + + new MonsterInfo( + "Erupe", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/erupe_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Erupe" - ),new MonsterInfo("Espinas", + "https://monsterhunter.fandom.com/wiki/Erupe"), + + new MonsterInfo( + "Espinas", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/esp_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Espinas" - ),new MonsterInfo("Farunokku", + "https://monsterhunter.fandom.com/wiki/Espinas"), + + new MonsterInfo( + "Farunokku", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/faru_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Farunokku" - ),new MonsterInfo("Fatalis", + "https://monsterhunter.fandom.com/wiki/Farunokku"), + + new MonsterInfo( + "Fatalis", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/mira_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Fatalis" - ),new MonsterInfo("Felyne", + "https://monsterhunter.fandom.com/wiki/Fatalis"), + + new MonsterInfo( + "Felyne", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/airu_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Felyne" - ),new MonsterInfo("Forokururu", + "https://monsterhunter.fandom.com/wiki/Felyne"), + + new MonsterInfo( + "Forokururu", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/folo_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Forokururu" - ),new MonsterInfo("Garuba Daora", + "https://monsterhunter.fandom.com/wiki/Forokururu"), + + new MonsterInfo( + "Garuba Daora", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/galba_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Garuba_Daora" - ),new MonsterInfo("Gasurabazura", + "https://monsterhunter.fandom.com/wiki/Garuba_Daora"), + + new MonsterInfo( + "Gasurabazura", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/gasra_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Gasurabazura" - ),new MonsterInfo("Gendrome", + "https://monsterhunter.fandom.com/wiki/Gasurabazura"), + + new MonsterInfo( + "Gendrome", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/dosgene_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Gendrome" - ),new MonsterInfo("Genprey", + "https://monsterhunter.fandom.com/wiki/Gendrome"), + + new MonsterInfo( + "Genprey", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/gene_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Genprey" - ),new MonsterInfo("Giaorugu", + "https://monsterhunter.fandom.com/wiki/Genprey"), + + new MonsterInfo( + "Giaorugu", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/giao_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Giaorugu" - ),new MonsterInfo("Giaprey", + "https://monsterhunter.fandom.com/wiki/Giaorugu"), + new MonsterInfo( + "Giaprey", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/giano_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Giaprey" - ),new MonsterInfo("Gogomoa", + "https://monsterhunter.fandom.com/wiki/Giaprey"), + new MonsterInfo( + "Gogomoa", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/gogo_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Gogomoa" - ),new MonsterInfo("Gold Rathian", + "https://monsterhunter.fandom.com/wiki/Gogomoa"), + new MonsterInfo( + "Gold Rathian", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/reiakin_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Gold_Rathian" - ),new MonsterInfo("Gore Magala", + "https://monsterhunter.fandom.com/wiki/Gold_Rathian"), + new MonsterInfo( + "Gore Magala", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/goa_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Gore_Magala" - ),new MonsterInfo("Goruganosu", + "https://monsterhunter.fandom.com/wiki/Gore_Magala"), + new MonsterInfo( + "Goruganosu", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/volkin_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Goruganosu" - ),new MonsterInfo("Gougarf, Ray", + "https://monsterhunter.fandom.com/wiki/Goruganosu"), + new MonsterInfo( + "Gougarf, Ray", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/goglf_r_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Ray_Gougarf" - ),new MonsterInfo("Gougarf, Lolo", + "https://monsterhunter.fandom.com/wiki/Ray_Gougarf"), + new MonsterInfo( + "Gougarf, Lolo", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/goglf_l_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Lolo_Gougarf" - ),new MonsterInfo("Gravios", + "https://monsterhunter.fandom.com/wiki/Lolo_Gougarf"), + new MonsterInfo( + "Gravios", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/gura_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Gravios" - ),new MonsterInfo("Great Thunderbug", + "https://monsterhunter.fandom.com/wiki/Gravios"), + new MonsterInfo( + "Great Thunderbug", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/raikou_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Great_Thunderbug" - ),new MonsterInfo("Green Plesioth", + "https://monsterhunter.fandom.com/wiki/Great_Thunderbug"), + new MonsterInfo( + "Green Plesioth", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/ganomidori_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Green_Plesioth" - ),new MonsterInfo("Guanzorumu", + "https://monsterhunter.fandom.com/wiki/Green_Plesioth"), + new MonsterInfo( + "Guanzorumu", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/guan_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Guanzorumu" - ),new MonsterInfo("Gureadomosu", + "https://monsterhunter.fandom.com/wiki/Guanzorumu"), + new MonsterInfo( + "Gureadomosu", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/glare_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Gureadomosu" - ),new MonsterInfo("Gurenzeburu", + "https://monsterhunter.fandom.com/wiki/Gureadomosu"), + new MonsterInfo( + "Gurenzeburu", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/guren_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Gurenzeburu" - ),new MonsterInfo("Gypceros", + "https://monsterhunter.fandom.com/wiki/Gurenzeburu"), + new MonsterInfo( + "Gypceros", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/geryo_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Gypceros" - ),new MonsterInfo("Harudomerugu", + "https://monsterhunter.fandom.com/wiki/Gypceros"), + new MonsterInfo( + "Harudomerugu", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/hald_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Harudomerugu" - ),new MonsterInfo("Hermitaur", + "https://monsterhunter.fandom.com/wiki/Harudomerugu"), + new MonsterInfo( + "Hermitaur", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/gami_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Hermitaur" - ),new MonsterInfo("Hornetaur", + "https://monsterhunter.fandom.com/wiki/Hermitaur"), + new MonsterInfo( + "Hornetaur", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/kanta_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Hornetaur" - ),new MonsterInfo("Hypnoc", + "https://monsterhunter.fandom.com/wiki/Hornetaur"), + new MonsterInfo( + "Hypnoc", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/hipu_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Hypnocatrice" - ),new MonsterInfo("Hyujikiki", + "https://monsterhunter.fandom.com/wiki/Hypnocatrice"), + new MonsterInfo( + "Hyujikiki", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/hyuji_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Hyujikiki" - ),new MonsterInfo("Inagami", + "https://monsterhunter.fandom.com/wiki/Hyujikiki"), + new MonsterInfo( + "Inagami", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/ina_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Inagami" - ),new MonsterInfo("Iodrome", + "https://monsterhunter.fandom.com/wiki/Inagami"), + new MonsterInfo( + "Iodrome", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/dosios_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Iodrome" - ),new MonsterInfo("Ioprey", + "https://monsterhunter.fandom.com/wiki/Iodrome"), + new MonsterInfo( + "Ioprey", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/ios_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Ioprey" - ),new MonsterInfo("Kamu Orugaron", + "https://monsterhunter.fandom.com/wiki/Ioprey"), + new MonsterInfo( + "Kamu Orugaron", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/olgk_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Kamu_Orugaron" - ),new MonsterInfo("Kelbi", + "https://monsterhunter.fandom.com/wiki/Kamu_Orugaron"), + new MonsterInfo( + "Kelbi", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/kerubi_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Kelbi" - ),new MonsterInfo("Keoaruboru", + "https://monsterhunter.fandom.com/wiki/Kelbi"), + new MonsterInfo( + "Keoaruboru", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/keoa_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Keoaruboru" - ),new MonsterInfo("Khezu", + "https://monsterhunter.fandom.com/wiki/Keoaruboru"), + new MonsterInfo( + "Khezu", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/furu_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Khezu" - ),new MonsterInfo("King Shakalaka", + "https://monsterhunter.fandom.com/wiki/Khezu"), + new MonsterInfo( + "King Shakalaka", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/cyacyaKing_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/King_Shakalaka" - ),new MonsterInfo("Kirin", + "https://monsterhunter.fandom.com/wiki/King_Shakalaka"), + new MonsterInfo( + "Kirin", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/kirin_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Kirin" - ),new MonsterInfo("Kokomoa", + "https://monsterhunter.fandom.com/wiki/Kirin"), + new MonsterInfo( + "Kokomoa", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/koko_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Gogomoa" - ),new MonsterInfo("Kuarusepusu", + "https://monsterhunter.fandom.com/wiki/Gogomoa"), + new MonsterInfo( + "Kuarusepusu", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/qual_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Kuarusepusu" - ),new MonsterInfo("Kushala Daora", + "https://monsterhunter.fandom.com/wiki/Kuarusepusu"), + new MonsterInfo( + "Kushala Daora", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/kusha_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Kushala_Daora" - ),new MonsterInfo("Kusubami", + "https://monsterhunter.fandom.com/wiki/Kushala_Daora"), + new MonsterInfo( + "Kusubami", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/kusb_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Kusubami" - ),new MonsterInfo("Lao-Shan Lung", + "https://monsterhunter.fandom.com/wiki/Kusubami"), + new MonsterInfo( + "Lao-Shan Lung", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/rao_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Lao-Shan_Lung" - ),new MonsterInfo("Lavasioth", + "https://monsterhunter.fandom.com/wiki/Lao-Shan_Lung"), + new MonsterInfo( + "Lavasioth", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/vol_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Lavasioth" - ),new MonsterInfo("Lunastra", + "https://monsterhunter.fandom.com/wiki/Lavasioth"), + new MonsterInfo( + "Lunastra", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/nana_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Lunastra" - ),new MonsterInfo("Melynx", + "https://monsterhunter.fandom.com/wiki/Lunastra"), + new MonsterInfo( + "Melynx", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/merura_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Melynx" - ),new MonsterInfo("Meraginasu", + "https://monsterhunter.fandom.com/wiki/Melynx"), + new MonsterInfo( + "Meraginasu", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/mera_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Meraginasu" - ),new MonsterInfo("Mi Ru", + "https://monsterhunter.fandom.com/wiki/Meraginasu"), + new MonsterInfo( + "Mi Ru", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/mi-ru_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Mi_Ru" - ),new MonsterInfo("Midogaron", + "https://monsterhunter.fandom.com/wiki/Mi_Ru"), + new MonsterInfo( + "Midogaron", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/mido_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Midogaron" - ),new MonsterInfo("Monoblos", + "https://monsterhunter.fandom.com/wiki/Midogaron"), + new MonsterInfo( + "Monoblos", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/mono_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Monoblos" - ),new MonsterInfo("Mosswine", + "https://monsterhunter.fandom.com/wiki/Monoblos"), + new MonsterInfo( + "Mosswine", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/mos_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Mosswine" - ),new MonsterInfo("Nargacuga", + "https://monsterhunter.fandom.com/wiki/Mosswine"), + new MonsterInfo( + "Nargacuga", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/nalga_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Nargacuga" - ),new MonsterInfo("Nono Orugaron", + "https://monsterhunter.fandom.com/wiki/Nargacuga"), + new MonsterInfo( + "Nono Orugaron", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/olgn_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Nono_Orugaron" - ),new MonsterInfo("Odibatorasu", + "https://monsterhunter.fandom.com/wiki/Nono_Orugaron"), + new MonsterInfo( + "Odibatorasu", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/odiva_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Odibatorasu" - ),new MonsterInfo("Orange Espinas", + "https://monsterhunter.fandom.com/wiki/Odibatorasu"), + new MonsterInfo( + "Orange Espinas", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/espcya_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Flaming_Espinas" - ),new MonsterInfo("Pariapuria", + "https://monsterhunter.fandom.com/wiki/Flaming_Espinas"), + new MonsterInfo( + "Pariapuria", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/paria_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Pariapuria" - ),new MonsterInfo("Pink Rathian", + "https://monsterhunter.fandom.com/wiki/Pariapuria"), + new MonsterInfo( + "Pink Rathian", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/reiasa_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Pink_Rathian" - ),new MonsterInfo("Plesioth", + "https://monsterhunter.fandom.com/wiki/Pink_Rathian"), + new MonsterInfo( + "Plesioth", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/gano_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Plesioth" - ),new MonsterInfo("Poborubarumu", + "https://monsterhunter.fandom.com/wiki/Plesioth"), + new MonsterInfo( + "Poborubarumu", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/pobol_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Poborubarumu" - ),new MonsterInfo("Pokara", + "https://monsterhunter.fandom.com/wiki/Poborubarumu"), + new MonsterInfo( + "Pokara", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/pokara_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Pokara" - ),new MonsterInfo("Pokaradon", + "https://monsterhunter.fandom.com/wiki/Pokara"), + new MonsterInfo( + "Pokaradon", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/pokaradon_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Pokaradon" - ),new MonsterInfo("Popo", + "https://monsterhunter.fandom.com/wiki/Pokaradon"), + new MonsterInfo( + "Popo", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/popo_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Popo" - ),new MonsterInfo("PSO2 Rappy", + "https://monsterhunter.fandom.com/wiki/Popo"), + new MonsterInfo( + "PSO2 Rappy", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/lappy_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - RickRoll - ),new MonsterInfo("Purple Gypceros", + rickRoll), + new MonsterInfo( + "Purple Gypceros", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/geryoao_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Purple_Gypceros" - ),new MonsterInfo("Rajang", + "https://monsterhunter.fandom.com/wiki/Purple_Gypceros"), + new MonsterInfo( + "Rajang", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/ra_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Rajang" - ),new MonsterInfo("Rathalos", + "https://monsterhunter.fandom.com/wiki/Rajang"), + new MonsterInfo( + "Rathalos", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/reusu_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Rathalos" - ),new MonsterInfo("Rathian", + "https://monsterhunter.fandom.com/wiki/Rathalos"), + new MonsterInfo( + "Rathian", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/reia_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Rathian" - ),new MonsterInfo("Raviente", + "https://monsterhunter.fandom.com/wiki/Rathian"), + new MonsterInfo( + "Raviente", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/lavie_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Raviente" - ),new MonsterInfo("Rebidiora", + "https://monsterhunter.fandom.com/wiki/Raviente"), + new MonsterInfo( + "Rebidiora", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/levy_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Rebidiora" - ),new MonsterInfo("Red Khezu", + "https://monsterhunter.fandom.com/wiki/Rebidiora"), + new MonsterInfo( + "Red Khezu", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/furuaka_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Red_Khezu" - ),new MonsterInfo("Red Lavasioth", + "https://monsterhunter.fandom.com/wiki/Red_Khezu"), + new MonsterInfo( + "Red Lavasioth", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/volaka_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Red_Volganos" - ),new MonsterInfo("Remobra", + "https://monsterhunter.fandom.com/wiki/Red_Volganos"), + new MonsterInfo( + "Remobra", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/gabu_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Remobra" - ),new MonsterInfo("Rocks", + "https://monsterhunter.fandom.com/wiki/Remobra"), + new MonsterInfo( + "Rocks", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/iwa_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - RickRoll - ),new MonsterInfo("Rukodiora", + rickRoll), + new MonsterInfo( + "Rukodiora", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/ruco_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Rukodiora" - ),new MonsterInfo("Rusted Kushala Daora", + "https://monsterhunter.fandom.com/wiki/Rukodiora"), + new MonsterInfo( + "Rusted Kushala Daora", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/kushasabi_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Rusted_Kushala_Daora" - ),new MonsterInfo("Seregios", + "https://monsterhunter.fandom.com/wiki/Rusted_Kushala_Daora"), + new MonsterInfo( + "Seregios", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/sell_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Seregios" - ),new MonsterInfo("Shagaru Magala", + "https://monsterhunter.fandom.com/wiki/Seregios"), + new MonsterInfo( + "Shagaru Magala", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/shagal_nh.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Shagaru_Magala" - ),new MonsterInfo("Shakalaka", + "https://monsterhunter.fandom.com/wiki/Shagaru_Magala"), + new MonsterInfo( + "Shakalaka", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/cyacya_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Shakalaka" - ),new MonsterInfo("Shantien", + "https://monsterhunter.fandom.com/wiki/Shakalaka"), + new MonsterInfo( + "Shantien", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/shan_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Shantien" - ),new MonsterInfo("Shen Gaoren", + "https://monsterhunter.fandom.com/wiki/Shantien"), + new MonsterInfo( + "Shen Gaoren", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/shen_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Rathian" - ),new MonsterInfo("Shogun Ceanataur", + "https://monsterhunter.fandom.com/wiki/Rathian"), + new MonsterInfo( + "Shogun Ceanataur", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/syougun_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Shogun_Ceanataur" - ),new MonsterInfo("Silver Hypnoc", + "https://monsterhunter.fandom.com/wiki/Shogun_Ceanataur"), + new MonsterInfo( + "Silver Hypnoc", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/hipusiro_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Silver_Hypnocatrice" - ),new MonsterInfo("Silver Rathalos", + "https://monsterhunter.fandom.com/wiki/Silver_Hypnocatrice"), + new MonsterInfo( + "Silver Rathalos", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/reusugin_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Silver_Rathalos" - ),new MonsterInfo("Stygian Zinogre", + "https://monsterhunter.fandom.com/wiki/Silver_Rathalos"), + new MonsterInfo( + "Stygian Zinogre", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/zingoku_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Stygian_Zinogre" - ),new MonsterInfo("Taikun Zamuza", + "https://monsterhunter.fandom.com/wiki/Stygian_Zinogre"), + new MonsterInfo( + "Taikun Zamuza", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/taikun_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Taikun_Zamuza" - ),new MonsterInfo("Teostra", + "https://monsterhunter.fandom.com/wiki/Taikun_Zamuza"), + new MonsterInfo( + "Teostra", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/teo_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Teostra" - ),new MonsterInfo("Tigrex", + "https://monsterhunter.fandom.com/wiki/Teostra"), + new MonsterInfo( + "Tigrex", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/tiga_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Tigrex" - ),new MonsterInfo("Toa Tesukatora", + "https://monsterhunter.fandom.com/wiki/Tigrex"), + new MonsterInfo( + "Toa Tesukatora", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/toa_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Toa_Tesukatora" - ),new MonsterInfo("Toridcless", + "https://monsterhunter.fandom.com/wiki/Toa_Tesukatora"), + new MonsterInfo( + "Toridcless", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/torid_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Toridcless" - ),new MonsterInfo("UNKNOWN", + "https://monsterhunter.fandom.com/wiki/Toridcless"), + new MonsterInfo( + "UNKNOWN", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/ra-ro_n.htm", new Dictionary() { - { "Sword and Shield","https://www.youtube.com/embed/REF3OBNu4Wo" }, - { "Dual Swords","https://www.youtube.com/embed/fAremzgKfos" }, - { "Great Sword","https://www.youtube.com/embed/xX7KH0r68f4" }, - { "Long Sword","https://www.youtube.com/embed/6G8865fllSo" }, - { "Hammer","https://www.youtube.com/embed/A6pqZgrA-9o" }, - { "Hunting Horn","https://www.youtube.com/embed/-qMOOTOOnrw" }, - { "Lance","https://www.youtube.com/embed/m66unQSZzIc" }, - { "Gunlance","https://www.youtube.com/embed/yCz_sigKiGs" }, - { "Tonfa","https://www.youtube.com/embed/sj_jMp0T3Pc" }, - { "Switch Axe F","https://www.youtube.com/embed/hZvxtDsqSf4" }, - { "Magnet Spike","https://www.youtube.com/embed/FLmxy-xCoqM" }, - { "Light Bowgun","https://www.youtube.com/embed/xTvTlPkIp3w" }, - { "Heavy Bowgun","" }, - { "Bow","https://www.youtube.com/embed/gp48Gk-y_JY" }, - }, - "https://monsterhunter.fandom.com/wiki/Unknown_(Black_Flying_Wyvern)" - ),new MonsterInfo("Uragaan", + { "Sword and Shield", "https://www.youtube.com/embed/REF3OBNu4Wo" }, + { "Dual Swords", "https://www.youtube.com/embed/fAremzgKfos" }, + { "Great Sword", "https://www.youtube.com/embed/xX7KH0r68f4" }, + { "Long Sword", "https://www.youtube.com/embed/6G8865fllSo" }, + { "Hammer", "https://www.youtube.com/embed/A6pqZgrA-9o" }, + { "Hunting Horn", "https://www.youtube.com/embed/-qMOOTOOnrw" }, + { "Lance", "https://www.youtube.com/embed/m66unQSZzIc" }, + { "Gunlance", "https://www.youtube.com/embed/yCz_sigKiGs" }, + { "Tonfa", "https://www.youtube.com/embed/sj_jMp0T3Pc" }, + { "Switch Axe F", "https://www.youtube.com/embed/hZvxtDsqSf4" }, + { "Magnet Spike", "https://www.youtube.com/embed/FLmxy-xCoqM" }, + { "Light Bowgun", "https://www.youtube.com/embed/xTvTlPkIp3w" }, + { "Heavy Bowgun", string.Empty }, + { "Bow", "https://www.youtube.com/embed/gp48Gk-y_JY" }, + }, + "https://monsterhunter.fandom.com/wiki/Unknown_(Black_Flying_Wyvern)"), + new MonsterInfo( + "Uragaan", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/ura_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Uragaan" - ),new MonsterInfo("Uruki", + "https://monsterhunter.fandom.com/wiki/Uragaan"), + new MonsterInfo( + "Uruki", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/ulky_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Uruki" - ),new MonsterInfo("Varusaburosu", + "https://monsterhunter.fandom.com/wiki/Uruki"), + new MonsterInfo( + "Varusaburosu", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/valsa_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Varusaburosu" - ),new MonsterInfo("Velocidrome", + "https://monsterhunter.fandom.com/wiki/Varusaburosu"), + new MonsterInfo( + "Velocidrome", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/dosran_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Velocidrome" - ),new MonsterInfo("Velociprey", + "https://monsterhunter.fandom.com/wiki/Velocidrome"), + new MonsterInfo( + "Velociprey", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/ran_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Velociprey" - ),new MonsterInfo("Vespoid", + "https://monsterhunter.fandom.com/wiki/Velociprey"), + new MonsterInfo( + "Vespoid", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/rango_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Vespoid" - ),new MonsterInfo("Voljang", + "https://monsterhunter.fandom.com/wiki/Vespoid"), + new MonsterInfo( + "Voljang", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/Vau_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Voljang" - ),new MonsterInfo("White Espinas", + "https://monsterhunter.fandom.com/wiki/Voljang"), + new MonsterInfo( + "White Espinas", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/espsiro_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Espinas_Rare_Species" - ),new MonsterInfo("White Fatalis", + "https://monsterhunter.fandom.com/wiki/Espinas_Rare_Species"), + new MonsterInfo( + "White Fatalis", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/miraru_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/White_Fatalis" - ),new MonsterInfo("White Monoblos", + "https://monsterhunter.fandom.com/wiki/White_Fatalis"), + new MonsterInfo( + "White Monoblos", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/monosiro_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/White_Monoblos" - ),new MonsterInfo("Yama Kurai", + "https://monsterhunter.fandom.com/wiki/White_Monoblos"), + new MonsterInfo( + "Yama Kurai", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/yamac_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Yama_Kurai" - ),new MonsterInfo("Yama Tsukami", + "https://monsterhunter.fandom.com/wiki/Yama_Kurai"), + new MonsterInfo( + "Yama Tsukami", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/yama_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Yama_Tsukami" - ),new MonsterInfo("Yian Garuga", + "https://monsterhunter.fandom.com/wiki/Yama_Tsukami"), + new MonsterInfo( + "Yian Garuga", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/garuru_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Yian_Garuga" - ),new MonsterInfo("Yian Kut-Ku", + "https://monsterhunter.fandom.com/wiki/Yian_Garuga"), + new MonsterInfo( + "Yian Kut-Ku", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/kukku_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Yian_Kut-Ku" - ),new MonsterInfo("Zenaserisu", + "https://monsterhunter.fandom.com/wiki/Yian_Kut-Ku"), + new MonsterInfo( + "Zenaserisu", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/zena_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Zenaserisu" - ),new MonsterInfo("Zerureusu", + "https://monsterhunter.fandom.com/wiki/Zenaserisu"), + new MonsterInfo( + "Zerureusu", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/zeru_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Zerureusu" - ),new MonsterInfo("Zinogre", + "https://monsterhunter.fandom.com/wiki/Zerureusu"), + new MonsterInfo( + "Zinogre", "https://dorielrivalet.github.io/mhfz-ferias-english-project/mons/zin_n.htm", new Dictionary() { - { "","" }, + { string.Empty,string.Empty }, }, - "https://monsterhunter.fandom.com/wiki/Zinogre" - ) + "https://monsterhunter.fandom.com/wiki/Zinogre"), }; -}; +} diff --git a/MHFZ_Overlay/Models/PartnyaBag.cs b/MHFZ_Overlay/Models/PartnyaBag.cs index a3b0e735..16adb6d3 100644 --- a/MHFZ_Overlay/Models/PartnyaBag.cs +++ b/MHFZ_Overlay/Models/PartnyaBag.cs @@ -21,7 +21,6 @@ public class PartnyaBag public long Item1Quantity { get; set; } - public long Item2ID { get; set; } public long Item2Quantity { get; set; } diff --git a/MHFZ_Overlay/Models/PlayerInventory.cs b/MHFZ_Overlay/Models/PlayerInventory.cs index 454c8bd7..a94b5e4c 100644 --- a/MHFZ_Overlay/Models/PlayerInventory.cs +++ b/MHFZ_Overlay/Models/PlayerInventory.cs @@ -64,6 +64,7 @@ public class PlayerInventory public long Item12ID { get; set; } public long Item12Quantity { get; set; } + public long Item13ID { get; set; } public long Item13Quantity { get; set; } diff --git a/MHFZ_Overlay/Models/RangeValidationRule.cs b/MHFZ_Overlay/Models/RangeValidationRule.cs index 0223f125..e6220527 100644 --- a/MHFZ_Overlay/Models/RangeValidationRule.cs +++ b/MHFZ_Overlay/Models/RangeValidationRule.cs @@ -19,9 +19,9 @@ public override ValidationResult Validate(object value, CultureInfo cultureInfo) if (int.TryParse((string)value, out inputValue)) { - if (inputValue < Minimum || inputValue > Maximum) + if (inputValue < this.Minimum || inputValue > this.Maximum) { - return new ValidationResult(false, $"Value must be between {Minimum} and {Maximum}"); + return new ValidationResult(false, $"Value must be between {this.Minimum} and {this.Maximum}"); } else { diff --git a/MHFZ_Overlay/Models/RecentRuns.cs b/MHFZ_Overlay/Models/RecentRuns.cs index 7884812b..feb0e7ba 100644 --- a/MHFZ_Overlay/Models/RecentRuns.cs +++ b/MHFZ_Overlay/Models/RecentRuns.cs @@ -9,7 +9,7 @@ namespace MHFZ_Overlay.Models; public class RecentRuns { - public string ObjectiveImage { get; set; } = Messages.MONSTER_IMAGE_NOT_LOADED; + public string ObjectiveImage { get; set; } = Messages.MonsterImageNotLoaded; public string QuestName { get; set; } = string.Empty; @@ -17,13 +17,13 @@ public class RecentRuns public long QuestID { get; set; } - public string YoutubeID { get; set; } = Messages.RICK_ROLL_ID; + public string YoutubeID { get; set; } = Messages.RickRollID; - public string FinalTimeDisplay { get; set; } = Messages.MAXIMUM_TIMER_PLACEHOLDER; + public string FinalTimeDisplay { get; set; } = Messages.MaximumTimerPlaceholder; public DateTime Date { get; set; } - public string ActualOverlayMode { get; set; } = Messages.OVERLAY_MODE_PLACEHOLDER; + public string ActualOverlayMode { get; set; } = Messages.OverlayModePlaceholder; public long PartySize { get; set; } } diff --git a/MHFZ_Overlay/Models/Structures/Bitfields.cs b/MHFZ_Overlay/Models/Structures/Bitfields.cs index e9a3888b..c4a142d7 100644 --- a/MHFZ_Overlay/Models/Structures/Bitfields.cs +++ b/MHFZ_Overlay/Models/Structures/Bitfields.cs @@ -3,9 +3,9 @@ // found in the LICENSE file. /* -[Flags]: Indicates that an enum is intended to be used as a bit field, -where each value represents a single bit. Any enum can be used as flags, it does not require -the attribute. What the Flags attribute does is changing the default ToString behavior. +[Flags]: Indicates that an enum is intended to be used as a bit field, +where each value represents a single bit. Any enum can be used as flags, it does not require +the attribute. What the Flags attribute does is changing the default ToString behavior. Without the Flags attribute, any enum whose value doesn't match a specified member exactly would make ToString return its numeric value. Whereas if you use the Flags attribute, you get a comma separated list of the flags that are set, which can be desirable. @@ -15,15 +15,15 @@ [DataContract], [DataMember]: Used for serializing an enum to a specific format, such as JSON or XML. -[Description]: This attribute can be used to provide a string that describes the enum value. +[Description]: This attribute can be used to provide a string that describes the enum value. It can be useful when generating documentation or when displaying the enum values in a user interface. -[DefaultValue]: This attribute can be used to specify the default value for an enum. +[DefaultValue]: This attribute can be used to specify the default value for an enum. It can be useful when you want to initialize a variable with the default value of the enum. -[XmlEnum]: This attribute can be used to specify the XML name for an enum value. -It can be useful when serializing or deserializing an enum to or from XML. +[XmlEnum]: This attribute can be used to specify the XML name for an enum value. +It can be useful when serializing or deserializing an enum to or from XML. [JsonConverter]: used to specify a custom converter for JSON serialization and deserialization, and it works independently of the [Flags] attribute. @@ -69,7 +69,7 @@ public enum WeaponSpecialProperty1 : uint Gacha_Evolution = 32, G_Rank = 64, UNK = 128, - Raviente = Supremacy | UNK // bitwise operators are pog + Raviente = Supremacy | UNK, // bitwise operators are pog } /// @@ -98,7 +98,7 @@ public enum WeaponSpecialProperty2 : uint UNK1 = 8192, UNK2 = 16384, UNK3 = 32768, - Zenith_Finesse = G_Finesse | Zenith // TODO untested + Zenith_Finesse = G_Finesse | Zenith, // TODO untested } /// @@ -142,12 +142,12 @@ public enum BowgunShots : uint Tranq_Shot = 268435456, Paint_Shot = 536870912, Demon_Shot = 1073741824, - Armor_Shot = 2147483648 + Armor_Shot = 2147483648, } /// -/// Impact shots are typically limited to Raviente only and Blast to Gou trees. -/// Both can arbitrarily be added to any bows. +/// Impact shots are typically limited to Raviente only and Blast to Gou trees. +/// Both can arbitrarily be added to any bows. /// For Poison/Sleep/Paralysis +1 or +2 select the base coating on top row too. /// [Flags] @@ -171,7 +171,7 @@ public enum BowCoatings : uint ParalysisPLUS2 = 4096, SleepPLUS2 = 8192, NULL2 = 16384, - NULL3 = 32768 + NULL3 = 32768, } /// @@ -191,5 +191,5 @@ public enum QuestState : uint UNK5 = 32, UNK6 = 64, UNK7 = 128, - Quest_Clear = Achieved_Main_Objective | UNK7 + Quest_Clear = Achieved_Main_Objective | UNK7, } diff --git a/MHFZ_Overlay/Models/Structures/Enums.cs b/MHFZ_Overlay/Models/Structures/Enums.cs index caf49965..a93db815 100644 --- a/MHFZ_Overlay/Models/Structures/Enums.cs +++ b/MHFZ_Overlay/Models/Structures/Enums.cs @@ -16,7 +16,7 @@ public enum GachaCardTypes : uint Gear, Character, Location, - Special + Special, } public enum RankTypes : uint @@ -24,7 +24,7 @@ public enum RankTypes : uint Low_Rank, High_Rank, G_Rank, - Zenith_Rank + Zenith_Rank, } public enum AchievementRank @@ -33,7 +33,7 @@ public enum AchievementRank Bronze, Silver, Gold, - Platinum + Platinum, } public enum Direction @@ -46,7 +46,7 @@ public enum Direction UpLeft, UpRight, DownLeft, - DownRight + DownRight, } public enum Difficulty @@ -55,5 +55,11 @@ public enum Difficulty Easy, Medium, Hard, - Extreme + Extreme, +} + +public enum MonsterHPMode +{ + True, + Effective, } diff --git a/MHFZ_Overlay/Services/Converter/ConfigurationPresetConverter.cs b/MHFZ_Overlay/Services/Converter/ConfigurationPresetConverter.cs index d764ada4..a8426608 100644 --- a/MHFZ_Overlay/Services/Converter/ConfigurationPresetConverter.cs +++ b/MHFZ_Overlay/Services/Converter/ConfigurationPresetConverter.cs @@ -5,7 +5,6 @@ namespace MHFZ_Overlay.Services.Converter; using static MHFZ_Overlay.Services.Manager.OverlaySettingsManager; - public static class ConfigurationPresetConverter { public static ConfigurationPreset Convert(string input) diff --git a/MHFZ_Overlay/Services/Converter/OptionToTemplateConverter.cs b/MHFZ_Overlay/Services/Converter/OptionToTemplateConverter.cs index fca8e426..1fafe762 100644 --- a/MHFZ_Overlay/Services/Converter/OptionToTemplateConverter.cs +++ b/MHFZ_Overlay/Services/Converter/OptionToTemplateConverter.cs @@ -19,40 +19,47 @@ public class OptionToTemplateConverter : DataTemplateSelector } // this only needs run id - if (option.Name == "Gear")//gear + if (option.Name == "Gear") //gear { return (DataTemplate)((FrameworkElement)container).FindResource("GearTemplate"); } + // this only needs quest id else if (option.Name == "Top 20") { return (DataTemplate)((FrameworkElement)container).FindResource("Top20Template"); } + // this only needs quest id or nothing else if (option.Name == "Weapon Stats") { return (DataTemplate)((FrameworkElement)container).FindResource("WeaponStatsTemplate"); } + // this only needs quest id or nothing else if (option.Name == "Most Recent") { return (DataTemplate)((FrameworkElement)container).FindResource("MostRecentTemplate"); } + // this only needs run id else if (option.Name == "YouTube") { return (DataTemplate)((FrameworkElement)container).FindResource("YouTubeTemplate"); } + // quest id, run id, or nothing. quest id: general stats for that quest. run id: stats for that run. nothing: general stats for all of ur runs. or monster/gear info in general. else if (option.Name == "Stats (Graphs)") { return (DataTemplate)((FrameworkElement)container).FindResource("StatsGraphsTemplate"); } + // run id else if (option.Name == "Stats (Text)") { return (DataTemplate)((FrameworkElement)container).FindResource("StatsTextTemplate"); } + // quest id else if (option.Name == "Personal Best") { diff --git a/MHFZ_Overlay/Services/DataAccessLayer/DatabaseManager.cs b/MHFZ_Overlay/Services/DataAccessLayer/DatabaseManager.cs index 53240977..97cf56aa 100644 --- a/MHFZ_Overlay/Services/DataAccessLayer/DatabaseManager.cs +++ b/MHFZ_Overlay/Services/DataAccessLayer/DatabaseManager.cs @@ -3,7 +3,6 @@ // found in the LICENSE file. // TODO: PascalCase for functions, camelCase for private fields, ALL_CAPS for constants - namespace MHFZ_Overlay.Services.DataAccessLayer; using System; @@ -44,7 +43,19 @@ namespace MHFZ_Overlay.Services.DataAccessLayer; /// public class DatabaseManager { - private string? _connectionString; + public HashSet AllQuests = new (); + public HashSet AllMezFes = new (); + public HashSet AllBingo = new (); + public HashSet AllZenithGauntlets = new (); + public HashSet AllSolsticeGauntlets = new (); + public HashSet AllMusouGauntlets = new (); + public HashSet AllPersonalBestAttempts = new (); + public HashSet AllPlayerGear = new (); + public HashSet AllActiveSkills = new (); + public HashSet AllStyleRankSkills = new (); + public HashSet AllQuestAttempts = new (); + public HashSet AllGachaCards = new (); + public HashSet AllPlayerInventories = new (); private static DatabaseManager? instance; @@ -52,20 +63,7 @@ public class DatabaseManager private static readonly AchievementManager achievementManager = AchievementManager.GetInstance(); private const string BackupFolderName = "backups"; - - public HashSet allQuests = new(); - public HashSet allMezFes = new(); - public HashSet allBingo = new(); - public HashSet allZenithGauntlets = new(); - public HashSet allSolsticeGauntlets = new(); - public HashSet allMusouGauntlets = new(); - public HashSet allPersonalBestAttempts = new(); - public HashSet allPlayerGear = new(); - public HashSet allActiveSkills = new(); - public HashSet allStyleRankSkills = new(); - public HashSet allQuestAttempts = new(); - public HashSet allGachaCards = new(); - public HashSet allPlayerInventories = new(); + private string? _connectionString; private DatabaseManager() { @@ -81,7 +79,7 @@ public void CheckIfSchemaChanged(DataLoader mainWindowDataLoader) { var s = (Settings)Application.Current.TryFindResource("Settings"); logger.Warn(CultureInfo.InvariantCulture, "Database structure needs update"); - MessageBox.Show("Please update the database structure", Messages.WARNING_TITLE, MessageBoxButton.OK, MessageBoxImage.Warning); + MessageBox.Show("Please update the database structure", Messages.WarningTitle, MessageBoxButton.OK, MessageBoxImage.Warning); s.EnableQuestLogging = false; } } @@ -98,6 +96,7 @@ public void CheckIfUserSetDatabasePath() // Show warning to user that they should set a custom database path to prevent data loss on update logger.Warn(CultureInfo.InvariantCulture, "The database file is being saved to the overlay default location"); MessageBox.Show("Warning: The database is currently stored in the default location and will be deleted on update. Please select a custom database location to prevent data loss.", "MHFZ-Overlay Data Loss Warning", MessageBoxButton.OK, MessageBoxImage.Warning); + // Use default database path _customDatabasePath = _connectionString; } @@ -122,13 +121,12 @@ public static DatabaseManager GetInstance() logger.Debug("Singleton not found, creating instance."); instance = new DatabaseManager(); } + logger.Debug("Singleton found, returning instance."); logger.Trace(new StackTrace().ToString()); return instance; } - #region program time - // Calculate the total time spent using the program // TODO: add transaction. check if others also need transaction. // TODO: test @@ -172,13 +170,8 @@ public TimeSpan CalculateTotalTimeSpent() return totalTimeSpent; } + private bool isDatabaseSetup; - - #endregion - - #region database - - private bool isDatabaseSetup = false; private static string previousVersion = string.Empty; public bool SetupLocalDatabase(DataLoader dataLoader) @@ -212,7 +205,7 @@ public bool SetupLocalDatabase(DataLoader dataLoader) catch (SQLiteException ex) { logger.Error(ex, "Invalid database file"); - MessageBox.Show(string.Format(CultureInfo.InvariantCulture, "Invalid database file. Delete the MHFZ_Overlay.sqlite, previousVersion.txt and reference_schema.json if present, and rerun the program.\n\n{0}", ex), Messages.ERROR_TITLE, MessageBoxButton.OK, MessageBoxImage.Error); + MessageBox.Show(string.Format(CultureInfo.InvariantCulture, "Invalid database file. Delete the MHFZ_Overlay.sqlite, previousVersion.txt and reference_schema.json if present, and rerun the program.\n\n{0}", ex), Messages.ErrorTitle, MessageBoxButton.OK, MessageBoxImage.Error); ApplicationManager.HandleShutdown(); } @@ -259,14 +252,16 @@ public bool SetupLocalDatabase(DataLoader dataLoader) if (schemaChanged) { logger.Fatal(CultureInfo.InvariantCulture, "Outdated database schema"); - MessageBox.Show("Your quest runs will not be accepted into the central database unless you update the schemas.", Messages.ERROR_TITLE, MessageBoxButton.OK, MessageBoxImage.Error); + MessageBox.Show("Your quest runs will not be accepted into the central database unless you update the schemas.", Messages.ErrorTitle, MessageBoxButton.OK, MessageBoxImage.Error); ApplicationManager.HandleShutdown(); } } dataLoader.model.ShowSaveIcon = false; + // Stop the stopwatch stopwatch.Stop(); + // Get the elapsed time in milliseconds var elapsedTimeMs = stopwatch.Elapsed.TotalMilliseconds; @@ -311,7 +306,7 @@ public string CalculateFileHash(string folderPath, string fileName) /// public void InsertPersonalBest(DataLoader dataLoader, long currentPersonalBest, long attempts, int runID) { - if (dataSource == null || dataSource == "") + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot insert personal best. dataSource: {0}", dataSource); return; @@ -340,9 +335,11 @@ public void InsertPersonalBest(DataLoader dataLoader, long currentPersonalBest, { cmd.Parameters.AddWithValue("@RunID", runID); cmd.Parameters.AddWithValue("@Attempts", attempts); + // Execute the stored procedure cmd.ExecuteNonQuery(); } + // Commit the transaction transaction.Commit(); } @@ -371,16 +368,12 @@ public int InsertQuestData(DataLoader dataLoader, int attempts) var s = (Settings)Application.Current.TryFindResource("Settings"); - if (!dataLoader.model.ValidateGameFolder()) - return runID; - - if (!s.EnableQuestLogging) - return runID; - - if (!dataLoader.model.questCleared) + if (!dataLoader.model.ValidateGameFolder() || !s.EnableQuestLogging || !dataLoader.model.questCleared) + { return runID; + } - if (dataSource == null || dataSource == "") + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot insert quest data. dataSource: {0}", dataSource); return runID; @@ -404,9 +397,13 @@ public int InsertQuestData(DataLoader dataLoader, int attempts) cmd.CommandText = @"SELECT MAX(RunID) FROM Quests;"; var result = cmd.ExecuteScalar(); if (result != null && result.ToString() != "") + { runID = Convert.ToInt32(result); + } else - runID = 1;// TODO test + { + runID = 1; // TODO test + } } // Insert data into the Quests table @@ -517,36 +514,44 @@ public int InsertQuestData(DataLoader dataLoader, int attempts) var questID = model.QuestID(); var timeLeft = model.TimeInt(); // Example value of the TimeLeft variable var finalTimeValue = model.TimeDefInt() - model.TimeInt(); + // Calculate the elapsed time of the quest var finalTimeDisplay = dataLoader.GetQuestTimeCompletion(); + // Convert the elapsed time to a DateTime object string objectiveImage; + //Gathering/etc if ((dataLoader.model.ObjectiveType() == 0x0 || dataLoader.model.ObjectiveType() == 0x02 || dataLoader.model.ObjectiveType() == 0x1002) && dataLoader.model.QuestID() != 23527 && dataLoader.model.QuestID() != 23628 && dataLoader.model.QuestID() != 21731 && dataLoader.model.QuestID() != 21749 && dataLoader.model.QuestID() != 21746 && dataLoader.model.QuestID() != 21750) { objectiveImage = dataLoader.model.GetAreaIconFromID(dataLoader.model.AreaID()); } + //Tenrou Sky Corridor areas else if (dataLoader.model.AreaID() == 391 || dataLoader.model.AreaID() == 392 || dataLoader.model.AreaID() == 394 || dataLoader.model.AreaID() == 415 || dataLoader.model.AreaID() == 416) { objectiveImage = dataLoader.model.GetAreaIconFromID(dataLoader.model.AreaID()); } + //Duremudira Doors else if (dataLoader.model.AreaID() == 399 || dataLoader.model.AreaID() == 414) { objectiveImage = dataLoader.model.GetAreaIconFromID(dataLoader.model.AreaID()); } + //Duremudira Arena else if (dataLoader.model.AreaID() == 398) { objectiveImage = dataLoader.model.getMonsterIcon(dataLoader.model.LargeMonster1ID()); } + //Hunter's Road Base Camp else if (dataLoader.model.AreaID() == 459) { objectiveImage = dataLoader.model.GetAreaIconFromID(dataLoader.model.AreaID()); } + //Raviente else if (dataLoader.model.AreaID() == 309 || dataLoader.model.AreaID() >= 311 && dataLoader.model.AreaID() <= 321 || dataLoader.model.AreaID() >= 417 && dataLoader.model.AreaID() <= 422 || dataLoader.model.AreaID() == 437 || dataLoader.model.AreaID() >= 440 && dataLoader.model.AreaID() <= 444) { @@ -561,24 +566,33 @@ public int InsertQuestData(DataLoader dataLoader, int attempts) string objectiveName; if ((model.ObjectiveType() == 0x0 || model.ObjectiveType() == 0x02 || model.ObjectiveType() == 0x1002 || model.ObjectiveType() == 0x10) && model.QuestID() != 23527 && model.QuestID() != 23628 && model.QuestID() != 21731 && model.QuestID() != 21749 && model.QuestID() != 21746 && model.QuestID() != 21750) + { objectiveName = model.GetObjective1Name(model.Objective1ID(), true); + } else + { objectiveName = model.GetRealMonsterName(model.CurrentMonster1Icon, true); + } var rankName = model.GetRankNameFromID(model.RankBand(), true); var objectiveQuantity = model.Objective1Quantity(); var starGrade = model.StarGrades(); + // TODO repeated? if ((model.ObjectiveType() == 0x0 || model.ObjectiveType() == 0x02 || model.ObjectiveType() == 0x1002 || model.ObjectiveType() == 0x10) && model.QuestID() != 23527 && model.QuestID() != 23628 && model.QuestID() != 21731 && model.QuestID() != 21749 && model.QuestID() != 21746 && model.QuestID() != 21750) + { objectiveName = model.GetObjective1Name(model.Objective1ID(), true); + } else + { objectiveName = model.GetRealMonsterName(model.CurrentMonster1Icon, true); + } var date = DateTime.UtcNow; // TODO //rick roll - var youtubeID = Messages.RICK_ROLL_ID; + var youtubeID = Messages.RickRollID; var attackBuffDictionary = dataLoader.model.attackBuffDictionary; var hitCountDictionary = dataLoader.model.hitCountDictionary; var hitsPerSecondDictionary = dataLoader.model.hitsPerSecondDictionary; @@ -586,6 +600,7 @@ public int InsertQuestData(DataLoader dataLoader, int attempts) var damagePerSecondDictionary = dataLoader.model.damagePerSecondDictionary; var areaChangesDictionary = dataLoader.model.areaChangesDictionary; var cartsDictionary = dataLoader.model.cartsDictionary; + // time var hitsTakenBlockedDictionary = dataLoader.model.hitsTakenBlockedDictionary; var hitsTakenBlockedPerSecondDictionary = dataLoader.model.hitsTakenBlockedPerSecondDictionary; @@ -596,19 +611,26 @@ public int InsertQuestData(DataLoader dataLoader, int attempts) var gamepadInputDictionary = dataLoader.model.gamepadInputDictionary; var actionsPerMinuteDictionary = dataLoader.model.actionsPerMinuteDictionary; var overlayModeDictionary = dataLoader.model.overlayModeDictionary; + //check if its grabbing a TimeDefInt from a previous quest // TODO is this enough? if (overlayModeDictionary.Count == 2 && overlayModeDictionary.Last().Value == "" || overlayModeDictionary.Count == 1 && overlayModeDictionary.First().Value == "" || overlayModeDictionary.Count > 2) + { actualOverlayMode = "Standard"; + } else { // TODO: test if (overlayModeDictionary.Count == 2 && overlayModeDictionary.First().Value == "") + { actualOverlayMode = overlayModeDictionary.Last().Value; + } else + { actualOverlayMode = overlayModeDictionary.First().Value; + } actualOverlayMode = actualOverlayMode.Replace(")", ""); actualOverlayMode = actualOverlayMode.Replace("(", ""); @@ -786,6 +808,7 @@ FinalTimeValue ASC cmd.Parameters.AddWithValue("@QuestID", questID); cmd.Parameters.AddWithValue("@WeaponTypeID", weaponType); cmd.Parameters.AddWithValue("@ActualOverlayMode", actualOverlayMode); + // Execute the stored procedure cmd.ExecuteNonQuery(); logger.Debug("Updated PersonalBestAttempts table"); @@ -1701,8 +1724,10 @@ FinalTimeValue ASC } var gearName = s.GearDescriptionExport; - if (gearName == "" || gearName == null) + if (string.IsNullOrEmpty(gearName)) + { gearName = "Unnamed"; + } var weaponTypeID = model.WeaponType(); var weaponClassID = weaponTypeID; @@ -1905,6 +1930,7 @@ FinalTimeValue ASC cmd.Parameters.AddWithValue("@WeaponIconID", weaponIconID); cmd.Parameters.AddWithValue("@WeaponClassID", weaponClassID); cmd.Parameters.AddWithValue("@WeaponTypeID", weaponTypeID); + if (blademasterWeaponID == null) { cmd.Parameters.AddWithValue("@BlademasterWeaponID", DBNull.Value); @@ -1913,6 +1939,7 @@ FinalTimeValue ASC { cmd.Parameters.AddWithValue("@BlademasterWeaponID", blademasterWeaponID); } + if (gunnerWeaponID == null) { cmd.Parameters.AddWithValue("@GunnerWeaponID", DBNull.Value); @@ -1921,6 +1948,7 @@ FinalTimeValue ASC { cmd.Parameters.AddWithValue("@GunnerWeaponID", gunnerWeaponID); } + cmd.Parameters.AddWithValue("@WeaponSlot1", weaponSlot1); cmd.Parameters.AddWithValue("@WeaponSlot2", weaponSlot2); cmd.Parameters.AddWithValue("@WeaponSlot3", weaponSlot3); @@ -1967,13 +1995,17 @@ FinalTimeValue ASC logger.Debug("Inserted into PlayerGear table"); } + // Commit the transaction transaction.Commit(); } catch (SQLiteException ex) { if (transaction != null) + { transaction.Rollback(); + } + // Handle a SQL exception logger.Error(ex, "An error occurred while accessing the database"); MessageBox.Show(string.Format( @@ -1995,22 +2027,28 @@ FinalTimeValue ASC Message: {7}", ex.SqlState, ex.HelpLink, ex.ResultCode, ex.ErrorCode, ex.Source, ex.StackTrace, JsonConvert.SerializeObject(ex.Data), ex.Message), - Messages.ERROR_TITLE, MessageBoxButton.OK, MessageBoxImage.Error); + Messages.ErrorTitle, MessageBoxButton.OK, MessageBoxImage.Error); } catch (IOException ex) { if (transaction != null) + { transaction.Rollback(); + } + // Handle an I/O exception logger.Error(ex, "An error occurred while accessing a file"); - MessageBox.Show("An error occurred while accessing a file: " + ex.Message + "\n\n" + ex.StackTrace + "\n\n" + ex.Source + "\n\n" + ex.Data.ToString(), Messages.ERROR_TITLE, MessageBoxButton.OK, MessageBoxImage.Error); + MessageBox.Show("An error occurred while accessing a file: " + ex.Message + "\n\n" + ex.StackTrace + "\n\n" + ex.Source + "\n\n" + ex.Data.ToString(), Messages.ErrorTitle, MessageBoxButton.OK, MessageBoxImage.Error); } catch (ArgumentException ex) { if (transaction != null) + { transaction.Rollback(); + } + logger.Error(ex, "ArgumentException"); - MessageBox.Show("ArgumentException " + ex.ParamName + "\n\n" + ex.Message + "\n\n" + ex.StackTrace + "\n\n" + ex.Source + "\n\n" + ex.Data.ToString(), Messages.ERROR_TITLE, MessageBoxButton.OK, MessageBoxImage.Error); + MessageBox.Show("ArgumentException " + ex.ParamName + "\n\n" + ex.Message + "\n\n" + ex.StackTrace + "\n\n" + ex.Source + "\n\n" + ex.Data.ToString(), Messages.ErrorTitle, MessageBoxButton.OK, MessageBoxImage.Error); } catch (Exception ex) { @@ -2021,6 +2059,7 @@ FinalTimeValue ASC UpdateHashSets(conn); } + logger.Debug("Inserted quest data, returning runID {0}", runID); dataLoader.model.ShowSaveIcon = false; return runID; } @@ -2047,93 +2086,119 @@ private void UpdateHashSets(SQLiteConnection conn) if (lastQuest.RunID != 0) { - var questAdded = allQuests.Add(lastQuest); + var questAdded = AllQuests.Add(lastQuest); if (!questAdded) + { logger.Warn(CultureInfo.InvariantCulture, "Last quest already found in hash set"); + } } if (lastMezFes.MezFesID != 0) { - var mezfesAdded = allMezFes.Add(lastMezFes); + var mezfesAdded = AllMezFes.Add(lastMezFes); if (!mezfesAdded) + { logger.Warn(CultureInfo.InvariantCulture, "Last mezfes already found in hash set"); + } } if (lastBingo.BingoID != 0) { - var bingoAdded = allBingo.Add(lastBingo); + var bingoAdded = AllBingo.Add(lastBingo); if (!bingoAdded) + { logger.Warn(CultureInfo.InvariantCulture, "Last bingo already found in hash set"); + } } if (lastZenithGauntlet.ZenithGauntletID != 0) { - var zenithGauntletAdded = allZenithGauntlets.Add(lastZenithGauntlet); + var zenithGauntletAdded = AllZenithGauntlets.Add(lastZenithGauntlet); if (!zenithGauntletAdded) + { logger.Warn(CultureInfo.InvariantCulture, "Last zenith gauntlet already found in hash set"); + } } if (lastSolsticeGauntlet.SolsticeGauntletID != 0) { - var solsticeGauntletAdded = allSolsticeGauntlets.Add(lastSolsticeGauntlet); + var solsticeGauntletAdded = AllSolsticeGauntlets.Add(lastSolsticeGauntlet); if (!solsticeGauntletAdded) + { logger.Warn(CultureInfo.InvariantCulture, "Last solstice gauntlet already found in hash set"); + } } if (lastMusouGauntlet.MusouGauntletID != 0) { - var musouGauntletAdded = allMusouGauntlets.Add(lastMusouGauntlet); + var musouGauntletAdded = AllMusouGauntlets.Add(lastMusouGauntlet); if (!musouGauntletAdded) + { logger.Warn(CultureInfo.InvariantCulture, "Last musou gauntlet already found in hash set"); + } } if (lastPersonalBestAttempt.PersonalBestAttemptsID != 0) { - var personalBestAttemptAdded = allPersonalBestAttempts.Add(lastPersonalBestAttempt); + var personalBestAttemptAdded = AllPersonalBestAttempts.Add(lastPersonalBestAttempt); if (!personalBestAttemptAdded) + { logger.Warn(CultureInfo.InvariantCulture, "Last personal best attempt already found in hash set"); + } } if (lastPlayerGear.PlayerGearID != 0) { - var playerGearAdded = allPlayerGear.Add(lastPlayerGear); + var playerGearAdded = AllPlayerGear.Add(lastPlayerGear); if (!playerGearAdded) + { logger.Warn(CultureInfo.InvariantCulture, "Last player gear already found in hash set"); + } } if (lastActiveSkills.ActiveSkillsID != 0) { - var activeSkillsAdded = allActiveSkills.Add(lastActiveSkills); + var activeSkillsAdded = AllActiveSkills.Add(lastActiveSkills); if (!activeSkillsAdded) + { logger.Warn(CultureInfo.InvariantCulture, "Last active skills already found in hash set"); + } } if (lastStyleRankSkills.StyleRankSkillsID != 0) { - var stylerankSkillsAdded = allStyleRankSkills.Add(lastStyleRankSkills); + var stylerankSkillsAdded = AllStyleRankSkills.Add(lastStyleRankSkills); if (!stylerankSkillsAdded) + { logger.Warn(CultureInfo.InvariantCulture, "Last style rank skills already found in hash set"); + } } if (lastQuestAttempts.QuestAttemptsID != 0) { - var questAttemptAdded = allQuestAttempts.Add(lastQuestAttempts); + var questAttemptAdded = AllQuestAttempts.Add(lastQuestAttempts); if (!questAttemptAdded) + { logger.Warn(CultureInfo.InvariantCulture, "Last quest attempt already found in hash set"); + } } if (lastGachaCard.GachaCardInventoryID != 0) { - var gachaCardAdded = allGachaCards.Add(lastGachaCard); + var gachaCardAdded = AllGachaCards.Add(lastGachaCard); if (!gachaCardAdded) + { logger.Warn(CultureInfo.InvariantCulture, "Last gacha card already found in hash set"); + } } if (lastPlayerInventory.PlayerInventoryID != 0) { - var playerInventoryAdded = allPlayerInventories.Add(lastPlayerInventory); + var playerInventoryAdded = AllPlayerInventories.Add(lastPlayerInventory); if (!playerInventoryAdded) + { logger.Warn(CultureInfo.InvariantCulture, "Last player inventory already found in hash set"); + } } } @@ -2743,7 +2808,7 @@ public void MakeDeserealizedQuestInfoDictionariesFromRunID(SQLiteConnection conn /// public string StoreOverlayHash() { - if (dataSource == null || dataSource == "") + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot store overlay hash. dataSource: {0}", dataSource); return string.Empty; @@ -2759,9 +2824,13 @@ public string StoreOverlayHash() { var module = processes[0].MainModule; if (module == null) + { return string.Empty; + } else + { exePath = module.FileName; + } } else { @@ -2769,7 +2838,9 @@ public string StoreOverlayHash() } if (exePath == null) + { return string.Empty; + } // Calculate the SHA256 hash of the executable using (var sha256 = SHA256.Create()) @@ -2794,6 +2865,7 @@ public string StoreOverlayHash() cmd.Parameters.AddWithValue("@hash", hashString); cmd.ExecuteNonQuery(); } + // Commit the transaction transaction.Commit(); } @@ -2810,8 +2882,6 @@ public string StoreOverlayHash() return overlayHash; } - #region session time - public DateTime DatabaseStartTime = DateTime.UtcNow; /// @@ -2820,7 +2890,7 @@ public string StoreOverlayHash() /// The window. public void StoreSessionTime(DateTime ProgramStart) { - if (dataSource == null || dataSource == "") + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot store session time. dataSource: {0}", dataSource); return; @@ -2850,13 +2920,15 @@ public void StoreSessionTime(DateTime ProgramStart) insertCommand.Parameters.AddWithValue("@startTime", ProgramStart); insertCommand.Parameters.AddWithValue("@endTime", ProgramEnd); insertCommand.Parameters.AddWithValue("@sessionDuration", sessionDuration); + // Execute the INSERT statement insertCommand.ExecuteNonQuery(); } + // Commit the transaction transaction.Commit(); - logger.Info(CultureInfo.InvariantCulture, "Stored session time. Duration: {0}", TimeSpan.FromSeconds(sessionDuration).ToString(TimeFormats.HOURS_MINUTES_SECONDS_MILLISECONDS, CultureInfo.InvariantCulture)); + logger.Info(CultureInfo.InvariantCulture, "Stored session time. Duration: {0}", TimeSpan.FromSeconds(sessionDuration).ToString(TimeFormats.HoursMinutesSecondsMilliseconds, CultureInfo.InvariantCulture)); } catch (SQLiteException ex) { @@ -2898,24 +2970,24 @@ public void StoreSessionTime(DateTime ProgramStart) Message: {7}", ex.SqlState, ex.HelpLink, ex.ResultCode, ex.ErrorCode, ex.Source, ex.StackTrace, JsonConvert.SerializeObject(ex.Data), ex.Message), - Messages.ERROR_TITLE, MessageBoxButton.OK, MessageBoxImage.Error); + Messages.ErrorTitle, MessageBoxButton.OK, MessageBoxImage.Error); } catch (IOException ex) { // Handle an I/O exception logger.Error(ex, "An error occurred while accessing a file"); - MessageBox.Show("An error occurred while accessing a file: " + ex.Message + "\n\n" + ex.StackTrace + "\n\n" + ex.Source + "\n\n" + ex.Data.ToString(), Messages.ERROR_TITLE, MessageBoxButton.OK, MessageBoxImage.Error); + MessageBox.Show("An error occurred while accessing a file: " + ex.Message + "\n\n" + ex.StackTrace + "\n\n" + ex.Source + "\n\n" + ex.Data.ToString(), Messages.ErrorTitle, MessageBoxButton.OK, MessageBoxImage.Error); } catch (Exception ex) { // Handle any other exception logger.Error(ex, "An error occurred"); - MessageBox.Show("An error occurred: " + ex.Message + "\n\n" + ex.StackTrace + "\n\n" + ex.Source + "\n\n" + ex.Data.ToString(), Messages.ERROR_TITLE, MessageBoxButton.OK, MessageBoxImage.Error); + MessageBox.Show("An error occurred: " + ex.Message + "\n\n" + ex.StackTrace + "\n\n" + ex.Source + "\n\n" + ex.Data.ToString(), Messages.ErrorTitle, MessageBoxButton.OK, MessageBoxImage.Error); } } - #endregion + private readonly List _validTableNames = new List { "RankName", @@ -2995,7 +3067,7 @@ private Dictionary> CreateReferenceSchemaJSON // Initialize the schema entry for the table if it doesn't exist if (tableName != null && !schema.ContainsKey(tableName)) { - schema[tableName] = new(); + schema[tableName] = new (); } if (tableName != null) { @@ -3018,7 +3090,7 @@ private Dictionary> CreateReferenceSchemaJSON // Initialize the schema entry for the table if it doesn't exist if (tableName != null && !schema.ContainsKey(tableName)) { - schema[tableName] = new(); + schema[tableName] = new (); } if (tableName != null) { @@ -3043,7 +3115,7 @@ private Dictionary> CreateReferenceSchemaJSON // Initialize the schema entry for the table if it doesn't exist if (tableName != null && !schema.ContainsKey(tableName)) { - schema[tableName] = new(); + schema[tableName] = new (); } if (tableName != null) { @@ -3075,6 +3147,7 @@ private Dictionary> CreateReferenceSchemaJSON // Serialize the schema dictionary to a JSON string var json = JsonConvert.SerializeObject(schema, Formatting.Indented); var referenceSchemaFilePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "MHFZ_Overlay\\reference_schema.json"); + // Write the JSON string to the reference schema file FileManager.WriteToFile(referenceSchemaFilePath, json); } @@ -3176,7 +3249,7 @@ private bool CompareDatabaseSchemas(Dictionary dict { throw new ArgumentException("Invalid table name, id column, or value column"); } + if (conn == null) { throw new ArgumentException("Invalid connection"); } + if (conn.State != ConnectionState.Open) { throw new InvalidOperationException("Connection is not open"); @@ -3390,6 +3470,7 @@ private void InsertAchievementsDataIntoTable(SQLiteConnection conn) { throw new ArgumentException("Invalid connection"); } + if (conn.State != ConnectionState.Open) { throw new InvalidOperationException("Connection is not open"); @@ -3490,7 +3571,7 @@ public List GetPlayerAchievementIDList() { var achievementIDList = new List(); - if (dataSource == null || dataSource == "") + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot get player achievements list. dataSource: {0}", dataSource); return achievementIDList; @@ -3533,7 +3614,7 @@ public List GetPlayerAchievementIDList() public void StoreAchievements(List achievementsID) { - if (dataSource == null || dataSource == "") + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot reward achievement. dataSource: {0}", dataSource); return; @@ -3590,7 +3671,7 @@ public void StoreAchievement(int achievementID) { logger.Debug("Storing achievement ID {0}", achievementID); - if (dataSource == null || dataSource == "") + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot store achievement. dataSource: {0}", dataSource); return; @@ -4829,7 +4910,6 @@ FOREIGN KEY(RunID) REFERENCES Quests(RunID) cmd.ExecuteNonQuery(); } - #region gacha // a mh game but like a MUD. hunt in-game to get many kinds of points for this game. hunt and tame monsters. challenge other CPU players/monsters. sql = @"CREATE TABLE IF NOT EXISTS GachaMaterial( @@ -5271,7 +5351,7 @@ FOREIGN KEY(GachaCardID) REFERENCES GachaCard(GachaCardID) cmd.ExecuteNonQuery(); } - #endregion + // Commit the transaction transaction.Commit(); @@ -5286,15 +5366,15 @@ FOREIGN KEY(GachaCardID) REFERENCES GachaCard(GachaCardID) // TODO put somewhere else and test public string FormatTime(int framesElapsed) { - var minutes = framesElapsed / (Numbers.FRAMES_PER_SECOND * 60); - var seconds = framesElapsed % (Numbers.FRAMES_PER_SECOND * 60) / Numbers.FRAMES_PER_SECOND; - var milliseconds = framesElapsed % (Numbers.FRAMES_PER_SECOND * 60) % Numbers.FRAMES_PER_SECOND / double.Parse(Numbers.FRAMES_PER_SECOND.ToString()); + var minutes = framesElapsed / (Numbers.FramesPerSecond * 60); + var seconds = framesElapsed % (Numbers.FramesPerSecond * 60) / Numbers.FramesPerSecond; + var milliseconds = framesElapsed % (Numbers.FramesPerSecond * 60) % Numbers.FramesPerSecond / double.Parse(Numbers.FramesPerSecond.ToString()); return $"{minutes:D2}:{seconds:D2}.{(int)(milliseconds * 1000):D3}"; } public string GetYoutubeLinkForRunID(long runID) { - if (dataSource == null || dataSource == "") + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot get youtube link for run ID. dataSource: {0}", dataSource); return string.Empty; @@ -5340,7 +5420,7 @@ public string GetYoutubeLinkForRunID(long runID) public bool UpdateYoutubeLink(object sender, RoutedEventArgs e, long runID, string youtubeLink) { - if (dataSource == null || dataSource == "") + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot update youtube link. dataSource: {0}", dataSource); return false; @@ -5390,7 +5470,7 @@ public bool UpdateYoutubeLink(object sender, RoutedEventArgs e, long runID, stri public long GetPersonalBestElapsedTimeValue(long questID, int weaponTypeID, string category) { - if (dataSource == null || dataSource == "") + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot get personal best elapsed time. dataSource: {0}", dataSource); return 0; @@ -5449,8 +5529,8 @@ FinalTimeValue ASC public string GetPersonalBest(long questID, int weaponTypeID, string category, string timerMode, DataLoader dataLoader) { - var personalBest = Messages.TIMER_NOT_LOADED; - if (dataSource == null || dataSource == "") + var personalBest = Messages.TimerNotLoaded; + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot get personal best. dataSource: {0}", dataSource); return personalBest; @@ -5503,7 +5583,7 @@ FinalTimeValue ASC } else { - personalBest = Messages.TIMER_NOT_LOADED; + personalBest = Messages.TimerNotLoaded; } } transaction.Commit(); @@ -5520,8 +5600,8 @@ FinalTimeValue ASC public async Task GetPersonalBestAsync(long questID, int weaponTypeID, string category, string timerMode, DataLoader dataLoader) { - var personalBest = Messages.TIMER_NOT_LOADED; - if (dataSource == null || dataSource == "") + var personalBest = Messages.TimerNotLoaded; + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot get personal best. dataSource: {0}", dataSource); return personalBest; @@ -5574,7 +5654,7 @@ FinalTimeValue ASC } else { - personalBest = Messages.TIMER_NOT_LOADED; + personalBest = Messages.TimerNotLoaded; } } transaction.Commit(); @@ -5592,8 +5672,8 @@ FinalTimeValue ASC public Dictionary GetPersonalBestsByDate(long questID, int weaponTypeID, string category) { - Dictionary personalBests = new(); - if (dataSource == null || dataSource == "") + Dictionary personalBests = new (); + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot get personal bests by date. dataSource: {0}", dataSource); return personalBests; @@ -5630,7 +5710,7 @@ q.CreatedAt ASC" cmd.Parameters.AddWithValue("@category", category); var reader = cmd.ExecuteReader(); - Dictionary personalBestTimes = new(); + Dictionary personalBestTimes = new (); while (reader.Read()) { @@ -5687,8 +5767,8 @@ q.CreatedAt ASC" // Get personal best times by attempts public Dictionary GetPersonalBestsByAttempts(long questID, int weaponTypeID, string category) { - Dictionary personalBests = new(); - if (dataSource == null || dataSource == "") + Dictionary personalBests = new (); + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot get personal bests by attempts. dataSource: {0}", dataSource); return personalBests; @@ -5772,7 +5852,7 @@ pb.Attempts ASC" public int UpsertQuestAttempts(long questID, int weaponTypeID, string category) { var attempts = 0; - if (dataSource == null || dataSource == "") + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot upsert quest attempts. dataSource: {0}", dataSource); return attempts; @@ -5836,7 +5916,7 @@ DO UPDATE public int UpsertPersonalBestAttempts(long questID, int weaponTypeID, string category) { var attempts = 0; - if (dataSource == null || dataSource == "") + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot upsert personal best attempts. dataSource: {0}", dataSource); return attempts; @@ -5900,7 +5980,7 @@ DO UPDATE public async Task UpsertQuestAttemptsAsync(long questID, int weaponTypeID, string category) { var attempts = 0; - if (dataSource == null || dataSource == "") + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot upsert quest attempts. dataSource: {0}", dataSource); return attempts; @@ -5964,7 +6044,7 @@ DO UPDATE public async Task UpsertPersonalBestAttemptsAsync(long questID, int weaponTypeID, string category) { var attempts = 0; - if (dataSource == null || dataSource == "") + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot upsert personal best attempts. dataSource: {0}", dataSource); return attempts; @@ -6029,7 +6109,7 @@ DO UPDATE public long GetQuestAttempts(long questID, int weaponTypeID, string category) { long attempts = 0; - if (dataSource == null || dataSource == "") + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot get quest attempts. dataSource: {0}", dataSource); return attempts; @@ -6077,7 +6157,7 @@ public long GetQuestAttempts(long questID, int weaponTypeID, string category) public AmmoPouch GetAmmoPouch(long runID) { var ammoPouch = new AmmoPouch(); - if (dataSource == null || dataSource == "") + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot get ammo pouch. dataSource: {0}", dataSource); return ammoPouch; @@ -6125,7 +6205,7 @@ public AmmoPouch GetAmmoPouch(long runID) public PartnyaBag GetPartnyaBag(long runID) { var partnyaBag = new PartnyaBag(); - if (dataSource == null || dataSource == "") + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot get partnya bag. dataSource: {0}", dataSource); return partnyaBag; @@ -6172,7 +6252,7 @@ public PartnyaBag GetPartnyaBag(long runID) public PlayerInventory GetPlayerInventory(long runID) { var playerInventory = new PlayerInventory(); - if (dataSource == null || dataSource == "") + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot get player inventory. dataSource: {0}", dataSource); return playerInventory; @@ -6218,7 +6298,7 @@ public PlayerInventory GetPlayerInventory(long runID) private Quest GetLastQuest(SQLiteConnection conn) { - Quest quest = new(); + Quest quest = new (); using (var transaction = conn.BeginTransaction()) { try @@ -6287,7 +6367,7 @@ private Quest GetLastQuest(SQLiteConnection conn) private MezFes GetLastMezFes(SQLiteConnection conn) { - MezFes last = new(); + MezFes last = new (); using (var transaction = conn.BeginTransaction()) { try @@ -6323,7 +6403,7 @@ private MezFes GetLastMezFes(SQLiteConnection conn) private Bingo GetLastBingo(SQLiteConnection conn) { - Bingo last = new(); + Bingo last = new (); using (var transaction = conn.BeginTransaction()) { try @@ -6364,7 +6444,7 @@ private Bingo GetLastBingo(SQLiteConnection conn) private ZenithGauntlet GetLastZenithGauntlet(SQLiteConnection conn) { - ZenithGauntlet last = new(); + ZenithGauntlet last = new (); using (var transaction = conn.BeginTransaction()) { try @@ -6423,7 +6503,7 @@ private ZenithGauntlet GetLastZenithGauntlet(SQLiteConnection conn) private SolsticeGauntlet GetLastSolsticeGauntlet(SQLiteConnection conn) { - SolsticeGauntlet last = new(); + SolsticeGauntlet last = new (); using (var transaction = conn.BeginTransaction()) { try @@ -6465,7 +6545,7 @@ private SolsticeGauntlet GetLastSolsticeGauntlet(SQLiteConnection conn) private MusouGauntlet GetLastMusouGauntlet(SQLiteConnection conn) { - MusouGauntlet last = new(); + MusouGauntlet last = new (); using (var transaction = conn.BeginTransaction()) { try @@ -6511,7 +6591,7 @@ private MusouGauntlet GetLastMusouGauntlet(SQLiteConnection conn) private PersonalBestAttempts GetLastPersonalBestAttempt(SQLiteConnection conn) { - PersonalBestAttempts last = new(); + PersonalBestAttempts last = new (); using (var transaction = conn.BeginTransaction()) { try @@ -6547,7 +6627,7 @@ private PersonalBestAttempts GetLastPersonalBestAttempt(SQLiteConnection conn) private QuestAttempts GetLastQuestAttempt(SQLiteConnection conn) { - QuestAttempts last = new(); + QuestAttempts last = new (); using (var transaction = conn.BeginTransaction()) { try @@ -6583,7 +6663,7 @@ private QuestAttempts GetLastQuestAttempt(SQLiteConnection conn) private PlayerGear GetLastPlayerGear(SQLiteConnection conn) { - PlayerGear last = new(); + PlayerGear last = new (); using (var transaction = conn.BeginTransaction()) { try @@ -6667,7 +6747,7 @@ private PlayerGear GetLastPlayerGear(SQLiteConnection conn) private ActiveSkills GetLastActiveSkills(SQLiteConnection conn) { - ActiveSkills last = new(); + ActiveSkills last = new (); using (var transaction = conn.BeginTransaction()) { try @@ -6721,7 +6801,7 @@ private ActiveSkills GetLastActiveSkills(SQLiteConnection conn) private StyleRankSkills GetLastStyleRankSkills(SQLiteConnection conn) { - StyleRankSkills last = new(); + StyleRankSkills last = new (); using (var transaction = conn.BeginTransaction()) { try @@ -6758,7 +6838,7 @@ private StyleRankSkills GetLastStyleRankSkills(SQLiteConnection conn) private GachaCardInventory GetLastGachaCard(SQLiteConnection conn) { - GachaCardInventory last = new(); + GachaCardInventory last = new (); using (var transaction = conn.BeginTransaction()) { try @@ -6791,7 +6871,7 @@ private GachaCardInventory GetLastGachaCard(SQLiteConnection conn) private PlayerInventory GetLastPlayerInventory(SQLiteConnection conn) { - PlayerInventory last = new(); + PlayerInventory last = new (); using (var transaction = conn.BeginTransaction()) { try @@ -6866,8 +6946,8 @@ private PlayerInventory GetLastPlayerInventory(SQLiteConnection conn) public Quest GetQuest(long runID) { - Quest quest = new(); - if (dataSource == null || dataSource == "") + Quest quest = new (); + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot get quest. dataSource: {0}", dataSource); return quest; @@ -6952,7 +7032,7 @@ public void LoadDatabaseDataIntoHashSets(Grid saveIconGrid, DataLoader dataLoade { dataLoader.model.ShowSaveIcon = true; - if (dataSource == null || dataSource == "") + if (string.IsNullOrEmpty(dataSource)) { logger.Fatal(CultureInfo.InvariantCulture, "Cannot run LoadDatabaseDataIntoHashSets. dataSource: {0}", dataSource); LoggingManager.WriteCrashLog(new Exception("Cannot run LoadDatabaseDataIntoHashSets.")); @@ -6962,19 +7042,19 @@ public void LoadDatabaseDataIntoHashSets(Grid saveIconGrid, DataLoader dataLoade using (var conn = new SQLiteConnection(dataSource)) { conn.Open(); - allQuests = GetAllQuests(conn); - allMezFes = GetAllMezFes(conn); - allBingo = GetAllBingo(conn); - allZenithGauntlets = GetAllZenithGauntlets(conn); - allSolsticeGauntlets = GetAllSolsticeGauntlets(conn); - allMusouGauntlets = GetAllMusouGauntlets(conn); - allPersonalBestAttempts = GetAllPersonalBestAttempts(conn); - allPlayerGear = GetAllPlayerGear(conn); - allActiveSkills = GetAllActiveSkills(conn); - allStyleRankSkills = GetAllStyleRankSkills(conn); - allQuestAttempts = GetAllQuestAttempts(conn); - allGachaCards = GetAllGachaCards(conn); - allPlayerInventories = GetAllPlayerInventories(conn); + AllQuests = GetAllQuests(conn); + AllMezFes = GetAllMezFes(conn); + AllBingo = GetAllBingo(conn); + AllZenithGauntlets = GetAllZenithGauntlets(conn); + AllSolsticeGauntlets = GetAllSolsticeGauntlets(conn); + AllMusouGauntlets = GetAllMusouGauntlets(conn); + AllPersonalBestAttempts = GetAllPersonalBestAttempts(conn); + AllPlayerGear = GetAllPlayerGear(conn); + AllActiveSkills = GetAllActiveSkills(conn); + AllStyleRankSkills = GetAllStyleRankSkills(conn); + AllQuestAttempts = GetAllQuestAttempts(conn); + AllGachaCards = GetAllGachaCards(conn); + AllPlayerInventories = GetAllPlayerInventories(conn); } } catch (Exception ex) @@ -6988,7 +7068,7 @@ public void LoadDatabaseDataIntoHashSets(Grid saveIconGrid, DataLoader dataLoade private HashSet GetAllPlayerInventories(SQLiteConnection conn) { - HashSet hashSet = new(); + HashSet hashSet = new (); using (var transaction = conn.BeginTransaction()) { try @@ -6999,7 +7079,7 @@ private HashSet GetAllPlayerInventories(SQLiteConnection conn) { while (reader.Read()) { - PlayerInventory data = new(); + PlayerInventory data = new (); data.PlayerInventoryID = long.Parse(reader["PlayerInventoryID"]?.ToString() ?? "0", CultureInfo.InvariantCulture); data.CreatedAt = DateTime.Parse(reader["CreatedAt"]?.ToString() ?? DateTime.UnixEpoch.ToString(CultureInfo.InvariantCulture), CultureInfo.InvariantCulture); data.CreatedBy = reader["CreatedBy"].ToString(); @@ -7061,7 +7141,7 @@ private HashSet GetAllPlayerInventories(SQLiteConnection conn) private HashSet GetAllGachaCards(SQLiteConnection conn) { - HashSet hashSet = new(); + HashSet hashSet = new (); using (var transaction = conn.BeginTransaction()) { try @@ -7072,7 +7152,7 @@ private HashSet GetAllGachaCards(SQLiteConnection conn) { while (reader.Read()) { - GachaCardInventory data = new(); + GachaCardInventory data = new (); data.GachaCardInventoryID = long.Parse(reader["GachaCardInventoryID"]?.ToString() ?? "0", CultureInfo.InvariantCulture); data.GachaCardID = long.Parse(reader["GachaCardID"]?.ToString() ?? "0", CultureInfo.InvariantCulture); @@ -7093,7 +7173,7 @@ private HashSet GetAllGachaCards(SQLiteConnection conn) private HashSet GetAllQuestAttempts(SQLiteConnection conn) { - HashSet hashSet = new(); + HashSet hashSet = new (); using (var transaction = conn.BeginTransaction()) { try @@ -7104,7 +7184,7 @@ private HashSet GetAllQuestAttempts(SQLiteConnection conn) { while (reader.Read()) { - QuestAttempts data = new(); + QuestAttempts data = new (); data.QuestAttemptsID = long.Parse(reader["QuestAttemptsID"]?.ToString() ?? "0", CultureInfo.InvariantCulture); data.QuestID = long.Parse(reader["QuestID"]?.ToString() ?? "0", CultureInfo.InvariantCulture); @@ -7128,7 +7208,7 @@ private HashSet GetAllQuestAttempts(SQLiteConnection conn) private HashSet GetAllPlayerGear(SQLiteConnection conn) { - HashSet hashSet = new(); + HashSet hashSet = new (); using (var transaction = conn.BeginTransaction()) { try @@ -7139,7 +7219,7 @@ private HashSet GetAllPlayerGear(SQLiteConnection conn) { while (reader.Read()) { - PlayerGear data = new(); + PlayerGear data = new (); data.PlayerGearHash = reader["PlayerGearHash"]?.ToString() ?? "0"; data.CreatedAt = DateTime.Parse(reader["CreatedAt"]?.ToString() ?? DateTime.UnixEpoch.ToString(CultureInfo.InvariantCulture), CultureInfo.InvariantCulture); @@ -7217,7 +7297,7 @@ private HashSet GetAllPlayerGear(SQLiteConnection conn) private HashSet GetAllActiveSkills(SQLiteConnection conn) { - HashSet hashSet = new(); + HashSet hashSet = new (); using (var transaction = conn.BeginTransaction()) { try @@ -7228,7 +7308,7 @@ private HashSet GetAllActiveSkills(SQLiteConnection conn) { while (reader.Read()) { - ActiveSkills data = new(); + ActiveSkills data = new (); data.ActiveSkillsID = long.Parse(reader["ActiveSkillsID"]?.ToString() ?? "0", CultureInfo.InvariantCulture); data.CreatedAt = DateTime.Parse(reader["CreatedAt"]?.ToString() ?? DateTime.UnixEpoch.ToString(CultureInfo.InvariantCulture), CultureInfo.InvariantCulture); @@ -7270,7 +7350,7 @@ private HashSet GetAllActiveSkills(SQLiteConnection conn) private HashSet GetAllStyleRankSkills(SQLiteConnection conn) { - HashSet hashSet = new(); + HashSet hashSet = new (); using (var transaction = conn.BeginTransaction()) { try @@ -7281,7 +7361,7 @@ private HashSet GetAllStyleRankSkills(SQLiteConnection conn) { while (reader.Read()) { - StyleRankSkills data = new(); + StyleRankSkills data = new (); data.StyleRankSkillsID = long.Parse(reader["StyleRankSkillsID"]?.ToString() ?? "0", CultureInfo.InvariantCulture); data.CreatedAt = DateTime.Parse(reader["CreatedAt"]?.ToString() ?? DateTime.UnixEpoch.ToString(CultureInfo.InvariantCulture), CultureInfo.InvariantCulture); @@ -7306,7 +7386,7 @@ private HashSet GetAllStyleRankSkills(SQLiteConnection conn) private HashSet GetAllPersonalBestAttempts(SQLiteConnection conn) { - HashSet hashSet = new(); + HashSet hashSet = new (); using (var transaction = conn.BeginTransaction()) { try @@ -7317,7 +7397,7 @@ private HashSet GetAllPersonalBestAttempts(SQLiteConnectio { while (reader.Read()) { - PersonalBestAttempts data = new(); + PersonalBestAttempts data = new (); data.PersonalBestAttemptsID = long.Parse(reader["PersonalBestAttemptsID"]?.ToString() ?? "0", CultureInfo.InvariantCulture); data.QuestID = long.Parse(reader["QuestID"]?.ToString() ?? "0", CultureInfo.InvariantCulture); @@ -7341,7 +7421,7 @@ private HashSet GetAllPersonalBestAttempts(SQLiteConnectio private HashSet GetAllMusouGauntlets(SQLiteConnection conn) { - HashSet hashSet = new(); + HashSet hashSet = new (); using (var transaction = conn.BeginTransaction()) { try @@ -7352,7 +7432,7 @@ private HashSet GetAllMusouGauntlets(SQLiteConnection conn) { while (reader.Read()) { - MusouGauntlet data = new(); + MusouGauntlet data = new (); data.MusouGauntletID = long.Parse(reader["MusouGauntletID"]?.ToString() ?? "0", CultureInfo.InvariantCulture); data.WeaponType = reader["WeaponType"]?.ToString() ?? "0"; data.Category = reader["Category"]?.ToString() ?? "0"; @@ -7385,7 +7465,7 @@ private HashSet GetAllMusouGauntlets(SQLiteConnection conn) private HashSet GetAllSolsticeGauntlets(SQLiteConnection conn) { - HashSet hashSet = new(); + HashSet hashSet = new (); using (var transaction = conn.BeginTransaction()) { try @@ -7396,7 +7476,7 @@ private HashSet GetAllSolsticeGauntlets(SQLiteConnection conn) { while (reader.Read()) { - SolsticeGauntlet data = new(); + SolsticeGauntlet data = new (); data.SolsticeGauntletID = long.Parse(reader["SolsticeGauntletID"]?.ToString() ?? "0", CultureInfo.InvariantCulture); data.WeaponType = reader["WeaponType"]?.ToString() ?? "0"; data.Category = reader["Category"]?.ToString() ?? "0"; @@ -7425,7 +7505,7 @@ private HashSet GetAllSolsticeGauntlets(SQLiteConnection conn) private HashSet GetAllZenithGauntlets(SQLiteConnection conn) { - HashSet hashSet = new(); + HashSet hashSet = new (); using (var transaction = conn.BeginTransaction()) { try @@ -7436,7 +7516,7 @@ private HashSet GetAllZenithGauntlets(SQLiteConnection conn) { while (reader.Read()) { - ZenithGauntlet data = new(); + ZenithGauntlet data = new (); data.ZenithGauntletID = long.Parse(reader["ZenithGauntletID"]?.ToString() ?? "0", CultureInfo.InvariantCulture); data.WeaponType = reader["WeaponType"]?.ToString() ?? "0"; @@ -7483,7 +7563,7 @@ private HashSet GetAllZenithGauntlets(SQLiteConnection conn) private HashSet GetAllBingo(SQLiteConnection conn) { - HashSet hashSet = new(); + HashSet hashSet = new (); using (var transaction = conn.BeginTransaction()) { try @@ -7494,7 +7574,7 @@ private HashSet GetAllBingo(SQLiteConnection conn) { while (reader.Read()) { - Bingo data = new(); + Bingo data = new (); data.BingoID = long.Parse(reader["BingoID"]?.ToString() ?? "0", CultureInfo.InvariantCulture); data.CreatedAt = DateTime.Parse(reader["CreatedAt"]?.ToString() ?? DateTime.UnixEpoch.ToString(CultureInfo.InvariantCulture), CultureInfo.InvariantCulture); @@ -7523,7 +7603,7 @@ private HashSet GetAllBingo(SQLiteConnection conn) private HashSet GetAllMezFes(SQLiteConnection conn) { - HashSet hashSet = new(); + HashSet hashSet = new (); using (var transaction = conn.BeginTransaction()) { try @@ -7534,7 +7614,7 @@ private HashSet GetAllMezFes(SQLiteConnection conn) { while (reader.Read()) { - MezFes data = new(); + MezFes data = new (); data.MezFesID = long.Parse(reader["MezFesID"]?.ToString() ?? "0", CultureInfo.InvariantCulture); data.CreatedAt = DateTime.Parse(reader["CreatedAt"]?.ToString() ?? DateTime.UnixEpoch.ToString(CultureInfo.InvariantCulture), CultureInfo.InvariantCulture); @@ -7558,7 +7638,7 @@ private HashSet GetAllMezFes(SQLiteConnection conn) private HashSet GetAllQuests(SQLiteConnection conn) { - HashSet quests = new(); + HashSet quests = new (); using (var transaction = conn.BeginTransaction()) { try @@ -7630,7 +7710,7 @@ private HashSet GetAllQuests(SQLiteConnection conn) public RoadDureSkills GetRoadDureSkills(long runID) { var roadDureSkills = new RoadDureSkills(); - if (dataSource == null || dataSource == "") + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot get road/dure skills. dataSource: {0}", dataSource); return roadDureSkills; @@ -7677,7 +7757,7 @@ public RoadDureSkills GetRoadDureSkills(long runID) public StyleRankSkills GetStyleRankSkills(long runID) { var styleRankSkills = new StyleRankSkills(); - if (dataSource == null || dataSource == "") + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot get style rank skills. dataSource: {0}", dataSource); return styleRankSkills; @@ -7721,7 +7801,7 @@ public StyleRankSkills GetStyleRankSkills(long runID) public AutomaticSkills GetAutomaticSkills(long runID) { var automaticSkills = new AutomaticSkills(); - if (dataSource == null || dataSource == "") + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot get automatic skills. dataSource: {0}", dataSource); return automaticSkills; @@ -7767,7 +7847,7 @@ public AutomaticSkills GetAutomaticSkills(long runID) public ZenithSkills GetZenithSkills(long runID) { var zenithSkills = new ZenithSkills(); - if (dataSource == null || dataSource == "") + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot get zenith skills. dataSource: {0}", dataSource); return zenithSkills; @@ -7813,7 +7893,7 @@ public ZenithSkills GetZenithSkills(long runID) public CaravanSkills GetCaravanSkills(long runID) { var caravanSkills = new CaravanSkills(); - if (dataSource == null || dataSource == "") + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot get caravan skills. dataSource: {0}", dataSource); return caravanSkills; @@ -7858,8 +7938,8 @@ public CaravanSkills GetCaravanSkills(long runID) public Dictionary GetAttackBuffDictionary(long runID) { - Dictionary attackBuffDictionary = new(); - if (dataSource == null || dataSource == "") + Dictionary attackBuffDictionary = new (); + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot get attack buff dictionary. dataSource: {0}", dataSource); return attackBuffDictionary; @@ -7898,8 +7978,8 @@ public Dictionary GetAttackBuffDictionary(long runID) public Dictionary GetHitCountDictionary(long runID) { - Dictionary dictionary = new(); - if (dataSource == null || dataSource == "") + Dictionary dictionary = new (); + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot get hit count dictionary. dataSource: {0}", dataSource); return dictionary; @@ -7938,8 +8018,8 @@ public Dictionary GetHitCountDictionary(long runID) public Dictionary GetHitsPerSecondDictionary(long runID) { - Dictionary dictionary = new(); - if (dataSource == null || dataSource == "") + Dictionary dictionary = new (); + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot get hits per second dictionary. dataSource: {0}", dataSource); return dictionary; @@ -7978,8 +8058,8 @@ public Dictionary GetHitsPerSecondDictionary(long runID) public Dictionary GetDamageDealtDictionary(long runID) { - Dictionary dictionary = new(); - if (dataSource == null || dataSource == "") + Dictionary dictionary = new (); + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot get damage dealt dictionary. dataSource: {0}", dataSource); return dictionary; @@ -8018,8 +8098,8 @@ public Dictionary GetDamageDealtDictionary(long runID) public Dictionary GetDamagePerSecondDictionary(long runID) { - Dictionary dictionary = new(); - if (dataSource == null || dataSource == "") + Dictionary dictionary = new (); + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot get damage per second dictionary. dataSource: {0}", dataSource); return dictionary; @@ -8058,8 +8138,8 @@ public Dictionary GetDamagePerSecondDictionary(long runID) public Dictionary GetAreaChangesDictionary(long runID) { - Dictionary dictionary = new(); - if (dataSource == null || dataSource == "") + Dictionary dictionary = new (); + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot get area changes dictionary. dataSource: {0}", dataSource); return dictionary; @@ -8098,8 +8178,8 @@ public Dictionary GetAreaChangesDictionary(long runID) public Dictionary GetCartsDictionary(long runID) { - Dictionary dictionary = new(); - if (dataSource == null || dataSource == "") + Dictionary dictionary = new (); + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot get carts dictionary. dataSource: {0}", dataSource); return dictionary; @@ -8138,8 +8218,8 @@ public Dictionary GetCartsDictionary(long runID) public Dictionary> GetMonster1HPDictionary(long runID) { - Dictionary> dictionary = new(); - if (dataSource == null || dataSource == "") + Dictionary> dictionary = new (); + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot get monster 1 HP dictionary. dataSource: {0}", dataSource); return dictionary; @@ -8178,8 +8258,8 @@ public Dictionary> GetMonster1HPDictionary(long runID) public Dictionary> GetMonster2HPDictionary(long runID) { - Dictionary> dictionary = new(); - if (dataSource == null || dataSource == "") + Dictionary> dictionary = new (); + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot get monster 2 HP dictionary. dataSource: {0}", dataSource); return dictionary; @@ -8218,8 +8298,8 @@ public Dictionary> GetMonster2HPDictionary(long runID) public Dictionary> GetMonster3HPDictionary(long runID) { - Dictionary> dictionary = new(); - if (dataSource == null || dataSource == "") + Dictionary> dictionary = new (); + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot get monster 3 HP dictionary. dataSource: {0}", dataSource); return dictionary; @@ -8258,8 +8338,8 @@ public Dictionary> GetMonster3HPDictionary(long runID) public Dictionary> GetMonster4HPDictionary(long runID) { - Dictionary> dictionary = new(); - if (dataSource == null || dataSource == "") + Dictionary> dictionary = new (); + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot get monster 4 HP dictionary. dataSource: {0}", dataSource); return dictionary; @@ -8298,8 +8378,8 @@ public Dictionary> GetMonster4HPDictionary(long runID) public Dictionary> GetMonster1AttackMultiplierDictionary(long runID) { - Dictionary> dictionary = new(); - if (dataSource == null || dataSource == "") + Dictionary> dictionary = new (); + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot get monster 1 attack multiplier dictionary. dataSource: {0}", dataSource); return dictionary; @@ -8338,8 +8418,8 @@ public Dictionary> GetMonster1AttackMultiplierDicti public Dictionary> GetMonster1DefenseRateDictionary(long runID) { - Dictionary> dictionary = new(); - if (dataSource == null || dataSource == "") + Dictionary> dictionary = new (); + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot get monster 1 defense rate dictionary. dataSource: {0}", dataSource); return dictionary; @@ -8379,7 +8459,7 @@ public Dictionary> GetMonster1DefenseRateDictionary public Dictionary> GetMonster1PoisonThresholdDictionary(long runID) { var dictionary = new Dictionary>(); - if (dataSource == null || dataSource == "") + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot get monster 1 poison threshold dictionary. dataSource: {0}", dataSource); return dictionary; @@ -8418,8 +8498,8 @@ public Dictionary> GetMonster1PoisonThresholdDictionar public Dictionary> GetMonster1SleepThresholdDictionary(long runID) { - Dictionary> dictionary = new(); - if (dataSource == null || dataSource == "") + Dictionary> dictionary = new (); + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot get monster 1 sleep threshold dictionary. dataSource: {0}", dataSource); return dictionary; @@ -8458,8 +8538,8 @@ public Dictionary> GetMonster1SleepThresholdDictionary public Dictionary> GetMonster1ParalysisThresholdDictionary(long runID) { - Dictionary> dictionary = new(); - if (dataSource == null || dataSource == "") + Dictionary> dictionary = new (); + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot get monster 1 paralysis threshold dictionary. dataSource: {0}", dataSource); return dictionary; @@ -8498,8 +8578,8 @@ public Dictionary> GetMonster1ParalysisThresholdDictio public Dictionary> GetMonster1BlastThresholdDictionary(long runID) { - Dictionary> dictionary = new(); - if (dataSource == null || dataSource == "") + Dictionary> dictionary = new (); + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot get monster 1 blast threshold dictionary. dataSource: {0}", dataSource); return dictionary; @@ -8538,8 +8618,8 @@ public Dictionary> GetMonster1BlastThresholdDictionary public Dictionary> GetMonster1StunThresholdDictionary(long runID) { - Dictionary> dictionary = new(); - if (dataSource == null || dataSource == "") + Dictionary> dictionary = new (); + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot get monster 1 stun threshold dictionary. dataSource: {0}", dataSource); return dictionary; @@ -8578,8 +8658,8 @@ public Dictionary> GetMonster1StunThresholdDictionary( public Dictionary>> GetPlayerInventoryDictionary(long runID) { - Dictionary>> dictionary = new(); - if (dataSource == null || dataSource == "") + Dictionary>> dictionary = new (); + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot get player inventory dictionary. dataSource: {0}", dataSource); return dictionary; @@ -8618,8 +8698,8 @@ public Dictionary>> GetPlayerInventoryDictionary( public Dictionary>> GetAmmoDictionary(long runID) { - Dictionary>> dictionary = new(); - if (dataSource == null || dataSource == "") + Dictionary>> dictionary = new (); + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot get ammo dictionary. dataSource: {0}", dataSource); return dictionary; @@ -8658,8 +8738,8 @@ public Dictionary>> GetAmmoDictionary(long runID) public Dictionary>> GetPartnyaBagDictionary(long runID) { - Dictionary>> dictionary = new(); - if (dataSource == null || dataSource == "") + Dictionary>> dictionary = new (); + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot get partnya bag dictionary. dataSource: {0}", dataSource); return dictionary; @@ -8698,8 +8778,8 @@ public Dictionary>> GetPartnyaBagDictionary(long public Dictionary> GetHitsTakenBlockedDictionary(long runID) { - Dictionary> dictionary = new(); - if (dataSource == null || dataSource == "") + Dictionary> dictionary = new (); + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot get hits taken/blocked dictionary. dataSource: {0}", dataSource); return dictionary; @@ -8738,8 +8818,8 @@ public Dictionary> GetHitsTakenBlockedDictionary(long public Dictionary GetHitsTakenBlockedPerSecondDictionary(long runID) { - Dictionary dictionary = new(); - if (dataSource == null || dataSource == "") + Dictionary dictionary = new (); + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot get hits taken/blocked per second dictionary. dataSource: {0}", dataSource); return dictionary; @@ -8778,8 +8858,8 @@ public Dictionary GetHitsTakenBlockedPerSecondDictionary(long runID public Dictionary GetPlayerHPDictionary(long runID) { - Dictionary dictionary = new(); - if (dataSource == null || dataSource == "") + Dictionary dictionary = new (); + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot get player HP dictionary. dataSource: {0}", dataSource); return dictionary; @@ -8818,8 +8898,8 @@ public Dictionary GetPlayerHPDictionary(long runID) public Dictionary GetPlayerStaminaDictionary(long runID) { - Dictionary dictionary = new(); - if (dataSource == null || dataSource == "") + Dictionary dictionary = new (); + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot get player stamina dictionary. dataSource: {0}", dataSource); return dictionary; @@ -8858,8 +8938,8 @@ public Dictionary GetPlayerStaminaDictionary(long runID) public Dictionary GetKeystrokesDictionary(long runID) { - Dictionary dictionary = new(); - if (dataSource == null || dataSource == "") + Dictionary dictionary = new (); + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot get keystrokes dictionary. dataSource: {0}", dataSource); return dictionary; @@ -8898,8 +8978,8 @@ public Dictionary GetKeystrokesDictionary(long runID) public Dictionary GetMouseInputDictionary(long runID) { - Dictionary dictionary = new(); - if (dataSource == null || dataSource == "") + Dictionary dictionary = new (); + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot get mouse input dictionary. dataSource: {0}", dataSource); return dictionary; @@ -8938,8 +9018,8 @@ public Dictionary GetMouseInputDictionary(long runID) public Dictionary GetGamepadInputDictionary(long runID) { - Dictionary dictionary = new(); - if (dataSource == null || dataSource == "") + Dictionary dictionary = new (); + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot get gamepad input dictionary. dataSource: {0}", dataSource); return dictionary; @@ -8978,8 +9058,8 @@ public Dictionary GetGamepadInputDictionary(long runID) public Dictionary GetActionsPerMinuteDictionary(long runID) { - Dictionary dictionary = new(); - if (dataSource == null || dataSource == "") + Dictionary dictionary = new (); + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot get actions per minute dictionary. dataSource: {0}", dataSource); return dictionary; @@ -9018,8 +9098,8 @@ public Dictionary GetActionsPerMinuteDictionary(long runID) public Dictionary GetMostCommonCategory() { - Dictionary fieldCounts = new(); - if (dataSource == null || dataSource == "") + Dictionary fieldCounts = new (); + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot get most common category. dataSource: {0}", dataSource); return fieldCounts; @@ -9066,7 +9146,7 @@ GROUP BY public ActiveSkills GetActiveSkills(long runID) { var activeSkills = new ActiveSkills(); - if (dataSource == null || dataSource == "") + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot get active skills. dataSource: {0}", dataSource); return activeSkills; @@ -9111,7 +9191,7 @@ public ActiveSkills GetActiveSkills(long runID) public PlayerGear GetPlayerGear(long runID) { var gearUsed = new PlayerGear(); - if (dataSource == null || dataSource == "") + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot get player gear. dataSource: {0}", dataSource); return gearUsed; @@ -9218,7 +9298,7 @@ public PlayerGear GetPlayerGear(long runID) public List GetFastestRuns(ConfigWindow configWindow, string weaponName = "All Weapons") { var fastestRuns = new List(); - if (dataSource == null || dataSource == "") + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot get fastest runs. dataSource: {0}", dataSource); return fastestRuns; @@ -9340,7 +9420,7 @@ FinalTimeValue ASC public ObservableCollection GetRecentRuns() { var recentRuns = new ObservableCollection(); - if (dataSource == null || dataSource == "") + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot get recent runs. dataSource: {0}", dataSource); return recentRuns; @@ -9411,7 +9491,7 @@ Date DESC public List GetCalendarRuns(DateTime? selectedDate) { var recentRuns = new List(); - if (dataSource == null || dataSource == "") + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot get calendar runs. dataSource: {0}", dataSource); return recentRuns; @@ -9486,7 +9566,7 @@ ORDER BY public List CalculateTotalWeaponUsage(ConfigWindow configWindow, DataLoader dataLoader, bool isByQuestID = false) { var weaponUsageData = new List(); - if (dataSource == null || dataSource == "") + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot calculate total weapon usage. dataSource: {0}", dataSource); return weaponUsageData; @@ -9538,7 +9618,7 @@ GROUP BY { if (!reader.HasRows) { - //MessageBox.Show(string.Format(CultureInfo.InvariantCulture, "Runs not found. Please use the Quest ID option in Settings and go into a quest in order to view the ID needed to search. You may also not have completed any runs for the selected Quest ID or for the selected category.\n\nQuest ID: {0}\nOverlay Mode: {1}\n{2}", questID, selectedOverlayMode, reader.ToString()), Messages.ERROR_TITLE, MessageBoxButton.OK, MessageBoxImage.Error); + //MessageBox.Show(string.Format(CultureInfo.InvariantCulture, "Runs not found. Please use the Quest ID option in Settings and go into a quest in order to view the ID needed to search. You may also not have completed any runs for the selected Quest ID or for the selected category.\n\nQuest ID: {0}\nOverlay Mode: {1}\n{2}", questID, selectedOverlayMode, reader.ToString()), Messages.ErrorTitle, MessageBoxButton.OK, MessageBoxImage.Error); return weaponUsageData; } else @@ -9583,7 +9663,7 @@ GROUP BY public void QuestIDButton_Click(object sender, RoutedEventArgs e, ConfigWindow configWindow) { - if (dataSource == null || dataSource == "") + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot process quest ID button click. dataSource: {0}", dataSource); return; @@ -9629,7 +9709,7 @@ INNER JOIN if (!reader.HasRows) { var message = string.Format(CultureInfo.InvariantCulture, "Quest ID not found. Please use the Quest ID option in Settings and go into a quest in order to view the ID needed to search. You may also not have completed any runs for the selected Quest ID or for the selected category.\n\nQuest ID: {0}\nOverlay Mode: {1}\n{2}", questID, selectedOverlayMode, reader.ToString()); - configWindow.ConfigWindowSnackBar.ShowAsync(Messages.ERROR_TITLE, message, new SymbolIcon(SymbolRegular.ErrorCircle24), ControlAppearance.Danger); + configWindow.ConfigWindowSnackBar.ShowAsync(Messages.ErrorTitle, message, new SymbolIcon(SymbolRegular.ErrorCircle24), ControlAppearance.Danger); return; } else @@ -9673,7 +9753,7 @@ GROUP BY if (!reader.HasRows) { var message = string.Format(CultureInfo.InvariantCulture, "Quest ID not found. Please use the Quest ID option in Settings and go into a quest in order to view the ID needed to search. You may also not have completed any runs for the selected Quest ID or for the selected category.\n\nQuest ID: {0}\nOverlay Mode: {1}\n{2}", questID, selectedOverlayMode, reader.ToString()); - configWindow.ConfigWindowSnackBar.ShowAsync(Messages.ERROR_TITLE, message, new SymbolIcon(SymbolRegular.ErrorCircle24), ControlAppearance.Danger); + configWindow.ConfigWindowSnackBar.ShowAsync(Messages.ErrorTitle, message, new SymbolIcon(SymbolRegular.ErrorCircle24), ControlAppearance.Danger); return; } while (reader.Read()) @@ -9769,8 +9849,8 @@ GROUP BY public Dictionary GetMostQuestCompletions() { - Dictionary questCompletions = new(); - if (dataSource == null || dataSource == "") + Dictionary questCompletions = new (); + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot get most quest completions. dataSource: {0}", dataSource); return questCompletions; @@ -9817,7 +9897,7 @@ GROUP BY public string GetQuestCompletions(long questID, string actualOverlayMode, int weaponTypeID) { var questCompletions = "0"; - if (dataSource == null || dataSource == "") + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot get quest completions. dataSource: {0}", dataSource); return questCompletions; @@ -9868,7 +9948,7 @@ Quests q public async Task GetQuestCompletionsAsync(long questID, string actualOverlayMode, int weaponTypeID) { var questCompletions = "0"; - if (dataSource == null || dataSource == "") + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot get quest completions. dataSource: {0}", dataSource); return questCompletions; @@ -9920,8 +10000,8 @@ Quests q public Dictionary GetMostCommonObjectiveTypes() { - Dictionary objectiveCounts = new(); - if (dataSource == null || dataSource == "") + Dictionary objectiveCounts = new (); + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot get most common objective types. dataSource: {0}", dataSource); return objectiveCounts; @@ -9968,8 +10048,8 @@ GROUP BY public Dictionary GetMostCommonStarGrades() { - Dictionary fieldCounts = new(); - if (dataSource == null || dataSource == "") + Dictionary fieldCounts = new (); + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot get most common star grades. dataSource: {0}", dataSource); return fieldCounts; @@ -10015,8 +10095,8 @@ GROUP BY public Dictionary GetMostCommonHeadPieces() { - Dictionary fieldCounts = new(); - if (dataSource == null || dataSource == "") + Dictionary fieldCounts = new (); + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot get most common head pieces. dataSource: {0}", dataSource); return fieldCounts; @@ -10063,8 +10143,8 @@ GROUP BY public Dictionary GetMostCommonChestPieces() { - Dictionary fieldCounts = new(); - if (dataSource == null || dataSource == "") + Dictionary fieldCounts = new (); + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot get most common chest pieces. dataSource: {0}", dataSource); return fieldCounts; @@ -10111,8 +10191,8 @@ GROUP BY public Dictionary GetMostCommonArmsPieces() { - Dictionary fieldCounts = new(); - if (dataSource == null || dataSource == "") + Dictionary fieldCounts = new (); + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot get most common arms pieces. dataSource: {0}", dataSource); return fieldCounts; @@ -10159,8 +10239,8 @@ GROUP BY public Dictionary GetMostCommonWaistPieces() { - Dictionary fieldCounts = new(); - if (dataSource == null || dataSource == "") + Dictionary fieldCounts = new (); + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot get most common waist pieces. dataSource: {0}", dataSource); return fieldCounts; @@ -10207,8 +10287,8 @@ GROUP BY public Dictionary GetMostCommonLegsPieces() { - Dictionary fieldCounts = new(); - if (dataSource == null || dataSource == "") + Dictionary fieldCounts = new (); + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot get most common legs pieces. dataSource: {0}", dataSource); return fieldCounts; @@ -10255,8 +10335,8 @@ GROUP BY public Dictionary GetMostCommonDivaSkill() { - Dictionary fieldCounts = new(); - if (dataSource == null || dataSource == "") + Dictionary fieldCounts = new (); + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot get most common diva skill. dataSource: {0}", dataSource); return fieldCounts; @@ -10303,8 +10383,8 @@ GROUP BY public Dictionary GetMostCommonGuildFood() { - Dictionary fieldCounts = new(); - if (dataSource == null || dataSource == "") + Dictionary fieldCounts = new (); + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot get most common guild food. dataSource: {0}", dataSource); return fieldCounts; @@ -10351,8 +10431,8 @@ GROUP BY public Dictionary GetMostCommonRankBands() { - Dictionary fieldCounts = new(); - if (dataSource == null || dataSource == "") + Dictionary fieldCounts = new (); + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot get most common rank bands. dataSource: {0}", dataSource); return fieldCounts; @@ -10398,8 +10478,8 @@ GROUP BY public Dictionary GetMostCommonObjectives() { - Dictionary fieldCounts = new(); - if (dataSource == null || dataSource == "") + Dictionary fieldCounts = new (); + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot get most common objectives. dataSource: {0}", dataSource); return fieldCounts; @@ -10445,8 +10525,8 @@ GROUP BY public Dictionary GetMostCommonSetNames() { - Dictionary fieldCounts = new(); - if (dataSource == null || dataSource == "") + Dictionary fieldCounts = new (); + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot get most common set names. dataSource: {0}", dataSource); return fieldCounts; @@ -10492,8 +10572,8 @@ GROUP BY public Dictionary GetQuestsCompletedByDate() { - Dictionary questsCompletedByDate = new(); - if (dataSource == null || dataSource == "") + Dictionary questsCompletedByDate = new (); + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot get quests completed by date. dataSource: {0}", dataSource); return questsCompletedByDate; @@ -10539,8 +10619,8 @@ GROUP BY public Dictionary GetMostCommonWeaponNames() { - Dictionary weaponCounts = new(); - if (dataSource == null || dataSource == "") + Dictionary weaponCounts = new (); + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot get most common weapon names. dataSource: {0}", dataSource); return weaponCounts; @@ -10600,8 +10680,8 @@ GROUP BY public Dictionary GetMostCommonStyleRankSkills() { - Dictionary skillCounts = new(); - if (dataSource == null || dataSource == "") + Dictionary skillCounts = new (); + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot get most common style rank skills. dataSource: {0}", dataSource); return skillCounts; @@ -10663,8 +10743,8 @@ GROUP BY public Dictionary GetMostCommonCaravanSkills() { - Dictionary skillCounts = new(); - if (dataSource == null || dataSource == "") + Dictionary skillCounts = new (); + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot get most common caravan skills. dataSource: {0}", dataSource); return skillCounts; @@ -10734,8 +10814,8 @@ GROUP BY public Dictionary GetMostCommonPartySize() { - Dictionary fieldCounts = new(); - if (dataSource == null || dataSource == "") + Dictionary fieldCounts = new (); + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot get most common party size. dataSource: {0}", dataSource); return fieldCounts; @@ -10785,8 +10865,8 @@ GROUP BY /// public Dictionary GetTotalTimeSpentInQuests() { - Dictionary questTimeSpent = new(); - if (dataSource == null || dataSource == "") + Dictionary questTimeSpent = new (); + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot get total time spent in quests. dataSource: {0}", dataSource); return questTimeSpent; @@ -10838,7 +10918,7 @@ public void InsertMezFesMinigameScore(DataLoader dataLoader, int previousMezFesA return; } - if (dataSource == null || dataSource == "") + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot insert MezFes minigame score. dataSource: {0}", dataSource); return; @@ -10893,7 +10973,7 @@ public long GetTotalQuestTimeElapsed() { long totalTimeElapsed = 0; - if (dataSource == null || dataSource == "") + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot get total frames elapsed in quests. dataSource: {0}", dataSource); return totalTimeElapsed; @@ -10931,7 +11011,6 @@ public long GetTotalQuestTimeElapsed() } // TODO: i still need to reorganize all regions. ideally i put in separate classes/files. maybe a DatabaseHelper class? - #region database functions /// /// Helper function to calculate the median of a list of integers @@ -11607,7 +11686,7 @@ FROM PlayerGear /// private long GetMostCommonDecorationID(SQLiteConnection conn) { - Dictionary decorationCounts = new(); + Dictionary decorationCounts = new (); var query = @" SELECT HeadSlot1ID, HeadSlot2ID, HeadSlot3ID, @@ -11676,7 +11755,7 @@ private long GetLeastUsedArmorSkillID(SQLiteConnection conn) FROM ActiveSkills "; - Dictionary skillCounts = new(); + Dictionary skillCounts = new (); using (var cmd = new SQLiteCommand(query, conn)) { @@ -12092,14 +12171,10 @@ FROM Quests return soloQuests * 100.0 / totalQuests; } - #endregion - - #region compendium - public QuestCompendium GetQuestCompendium() { var questCompendium = new QuestCompendium(); - if (dataSource == null || dataSource == "") + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot get quest compendium. dataSource: {0}", dataSource); return questCompendium; @@ -12186,7 +12261,7 @@ FROM Quests questCompendium.TotalCartsInQuest = finalCartValues.Sum(); // Initialize dictionary to hold the total carts for each quest ID - Dictionary questTotalCarts = new(); + Dictionary questTotalCarts = new (); // Query to get carts dictionary for all quests with non-empty carts dictionary query = @"SELECT QuestId, CartsDictionary FROM Quests WHERE CartsDictionary IS NOT NULL AND CartsDictionary != '{}'"; @@ -12327,7 +12402,7 @@ FROM Quests public GearCompendium GetGearCompendium() { var gearCompendium = new GearCompendium(); - if (dataSource == null || dataSource == "") + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot get gear compendium. dataSource: {0}", dataSource); return gearCompendium; @@ -12366,7 +12441,7 @@ public GearCompendium GetGearCompendium() public PerformanceCompendium GetPerformanceCompendium() { var performanceCompendium = new PerformanceCompendium(); - if (dataSource == null || dataSource == "") + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot get performance compendium. dataSource: {0}", dataSource); return performanceCompendium; @@ -12437,7 +12512,7 @@ public PerformanceCompendium GetPerformanceCompendium() public MezFesCompendium GetMezFesCompendium() { var mezFesCompendium = new MezFesCompendium(); - if (dataSource == null || dataSource == "") + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot get MezFes compendium. dataSource: {0}", dataSource); return mezFesCompendium; @@ -12489,7 +12564,7 @@ public MezFesCompendium GetMezFesCompendium() public MonsterCompendium GetMonsterCompendium() { var monsterCompendium = new MonsterCompendium(); - if (dataSource == null || dataSource == "") + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot get monster compendium. dataSource: {0}", dataSource); return monsterCompendium; @@ -12524,7 +12599,7 @@ public MonsterCompendium GetMonsterCompendium() public MiscellaneousCompendium GetMiscellaneousCompendium() { var miscellaneousCompendium = new MiscellaneousCompendium(); - if (dataSource == null || dataSource == "") + if (string.IsNullOrEmpty(dataSource)) { logger.Warn(CultureInfo.InvariantCulture, "Cannot get miscellaneous compendium. dataSource: {0}", dataSource); return miscellaneousCompendium; @@ -12553,10 +12628,6 @@ public MiscellaneousCompendium GetMiscellaneousCompendium() return miscellaneousCompendium; } - #endregion - - #region migrations - private int GetUserVersion(SQLiteConnection connection) { var version = 0; @@ -12789,7 +12860,7 @@ private void CheckDatabaseVersion(SQLiteConnection connection, DataLoader dataLo else { logger.Fatal(CultureInfo.InvariantCulture, "Outdated database schema"); - MessageBox.Show("Cannot use the overlay with an outdated database schema", Messages.ERROR_TITLE, MessageBoxButton.OK, MessageBoxImage.Error); + MessageBox.Show("Cannot use the overlay with an outdated database schema", Messages.ErrorTitle, MessageBoxButton.OK, MessageBoxImage.Error); ApplicationManager.HandleShutdown(); } } @@ -12819,7 +12890,7 @@ private void UpdateDatabaseSchema(SQLiteConnection connection, DataLoader dataLo { // The "mhf.exe" process was not found logger.Fatal(CultureInfo.InvariantCulture, "mhf.exe not found"); - MessageBox.Show("The 'mhf.exe' process was not found.", Messages.ERROR_TITLE, MessageBoxButton.OK, MessageBoxImage.Error); + MessageBox.Show("The 'mhf.exe' process was not found.", Messages.ErrorTitle, MessageBoxButton.OK, MessageBoxImage.Error); ApplicationManager.HandleShutdown(); } @@ -12828,12 +12899,12 @@ private void UpdateDatabaseSchema(SQLiteConnection connection, DataLoader dataLo FileManager.DeleteFile(referenceSchemaFilePath); // later on it creates it // see this comment: Check if the reference schema file exists - //MessageBox.Show("The current version and the previous version aren't the same, however no update was found", Messages.ERROR_TITLE, MessageBoxButton.OK, MessageBoxImage.Error); + //MessageBox.Show("The current version and the previous version aren't the same, however no update was found", Messages.ErrorTitle, MessageBoxButton.OK, MessageBoxImage.Error); //logger.Fatal(CultureInfo.InvariantCulture, "The current version and the previous version aren't the same, however no update was found"); //ApplicationManager.HandleShutdown(MainWindow._notifyIcon); logger.Info(CultureInfo.InvariantCulture, "Database update process finished"); dataLoader.model.ShowSaveIcon = false; - MessageBox.Show("Database update process finished", Messages.INFO_TITLE, MessageBoxButton.OK, MessageBoxImage.Information); + MessageBox.Show("Database update process finished", Messages.InfoTitle, MessageBoxButton.OK, MessageBoxImage.Information); } // TODO: this is repeating code. also not sure if the data types handling is correct @@ -13244,7 +13315,7 @@ v0.24 to v0.25 (fixing the refreshrate check is above, but the fix is implemente if (foreignKeysViolations != "") { logger.Fatal(CultureInfo.InvariantCulture, "Foreign keys violations detected, closing program. Violations: {0}", foreignKeysViolations); - MessageBox.Show("Foreign keys violations detected, closing program.", Messages.ERROR_TITLE, MessageBoxButton.OK, MessageBoxImage.Error); + MessageBox.Show("Foreign keys violations detected, closing program.", Messages.ErrorTitle, MessageBoxButton.OK, MessageBoxImage.Error); ApplicationManager.HandleShutdown(); } else @@ -13440,7 +13511,7 @@ WHERE EXISTS (SELECT 1 FROM GameFolder WHERE GameFolder.GameFolderID = new_GameF if (foreignKeysViolations != "") { logger.Fatal(CultureInfo.InvariantCulture, "Foreign keys violations detected, closing program. Violations: {0}", foreignKeysViolations); - MessageBox.Show("Foreign keys violations detected, closing program.", Messages.ERROR_TITLE, MessageBoxButton.OK, MessageBoxImage.Error); + MessageBox.Show("Foreign keys violations detected, closing program.", Messages.ErrorTitle, MessageBoxButton.OK, MessageBoxImage.Error); ApplicationManager.HandleShutdown(); } else @@ -13474,9 +13545,9 @@ private void AlterTableSchema(SQLiteConnection connection, string tableName, str var rememberFormat = new SQLiteCommand("SELECT type, sql FROM sqlite_schema WHERE tbl_name=@tableName;", connection); rememberFormat.Parameters.AddWithValue("@tableName", tableName); var reader = rememberFormat.ExecuteReader(); - List indexSqls = new(); - List triggerSqls = new(); - List viewSqls = new(); + List indexSqls = new (); + List triggerSqls = new (); + List viewSqls = new (); while (reader.Read()) { var type = reader.GetString(0); @@ -13565,8 +13636,8 @@ private void AlterTableSchema(SQLiteConnection connection, string tableName, str // Check if any views refer to table X in a way that is affected by the schema change var findViews = new SQLiteCommand("SELECT name, sql FROM sqlite_master WHERE type='view' AND sql LIKE '% " + tableName + " %';", connection); var viewReader = findViews.ExecuteReader(); - List viewNames = new(); - List viewSqlsModified = new(); + List viewNames = new (); + List viewSqlsModified = new (); while (viewReader.Read()) { viewNames.Add(viewReader.GetString(0)); @@ -13676,7 +13747,7 @@ private void EnableForeignKeyConstraints(SQLiteConnection connection) catch (Exception ex) { logger.Fatal(CultureInfo.InvariantCulture, "Could not toggle foreign key constraints", ex); - MessageBox.Show("Could not toggle foreign key constraints", Messages.ERROR_TITLE, MessageBoxButton.OK, MessageBoxImage.Error); + MessageBox.Show("Could not toggle foreign key constraints", Messages.ErrorTitle, MessageBoxButton.OK, MessageBoxImage.Error); ApplicationManager.HandleShutdown(); } } @@ -13695,7 +13766,7 @@ private void DisableForeignKeyConstraints(SQLiteConnection connection) catch (Exception ex) { logger.Fatal(CultureInfo.InvariantCulture, "Could not toggle foreign key constraints", ex); - MessageBox.Show("Could not toggle foreign key constraints", Messages.ERROR_TITLE, MessageBoxButton.OK, MessageBoxImage.Error); + MessageBox.Show("Could not toggle foreign key constraints", Messages.ErrorTitle, MessageBoxButton.OK, MessageBoxImage.Error); ApplicationManager.HandleShutdown(); } } @@ -13962,7 +14033,7 @@ private void WriteNewVersionToFile() } } - #endregion + /// /// Throws an exception. @@ -13990,7 +14061,7 @@ private void ThrowException(SQLiteConnection conn) } } - #endregion + } /// /// * add checker for triggers and indexes changes diff --git a/MHFZ_Overlay/Services/Hotkey/GlobalHotkey.cs b/MHFZ_Overlay/Services/Hotkey/GlobalHotkey.cs index ad04c807..75163fe6 100644 --- a/MHFZ_Overlay/Services/Hotkey/GlobalHotkey.cs +++ b/MHFZ_Overlay/Services/Hotkey/GlobalHotkey.cs @@ -31,6 +31,7 @@ public static bool RegisterHotKey(ModifierKeys aModifier, Key aKey, Action aActi { throw new ArgumentException("Modifier must not be ModifierKeys.None"); } + if (aAction is null) { throw new ArgumentNullException(nameof(aAction)); @@ -38,7 +39,8 @@ public static bool RegisterHotKey(ModifierKeys aModifier, Key aKey, Action aActi var aVirtualKeyCode = (System.Windows.Forms.Keys)KeyInterop.VirtualKeyFromKey(aKey); currentID = currentID + 1; - var aRegistered = RegisterHotKey(window.Handle, currentID, + var aRegistered = RegisterHotKey(window.Handle, + currentID, (uint)aModifier | MOD_NOREPEAT, (uint)aVirtualKeyCode); @@ -46,6 +48,7 @@ public static bool RegisterHotKey(ModifierKeys aModifier, Key aKey, Action aActi { registeredHotKeys.Add(new HotKeyWithAction(aModifier, aKey, aAction)); } + return aRegistered; } @@ -76,8 +79,11 @@ static GlobalHotKey() } private static readonly InvisibleWindowForMessages window = new InvisibleWindowForMessages(); + private static int currentID; + private static uint MOD_NOREPEAT = 0x4000; + private static List registeredHotKeys = new List(); private class HotKeyWithAction @@ -85,13 +91,15 @@ private class HotKeyWithAction public HotKeyWithAction(ModifierKeys modifier, Key key, Action action) { - Modifier = modifier; - Key = key; - Action = action; + this.Modifier = modifier; + this.Key = key; + this.Action = action; } public ModifierKeys Modifier { get; } + public Key Key { get; } + public Action Action { get; } } @@ -106,7 +114,7 @@ private class InvisibleWindowForMessages : System.Windows.Forms.NativeWindow, ID { public InvisibleWindowForMessages() { - CreateHandle(new System.Windows.Forms.CreateParams()); + this.CreateHandle(new System.Windows.Forms.CreateParams()); } private static int WM_HOTKEY = 0x0312; @@ -118,9 +126,9 @@ protected override void WndProc(ref System.Windows.Forms.Message m) { var aWPFKey = KeyInterop.KeyFromVirtualKey((int)m.LParam >> 16 & 0xFFFF); var modifier = (ModifierKeys)((int)m.LParam & 0xFFFF); - if (KeyPressed != null) + if (this.KeyPressed != null) { - KeyPressed(this, new HotKeyPressedEventArgs(modifier, aWPFKey)); + this.KeyPressed(this, new HotKeyPressedEventArgs(modifier, aWPFKey)); } } } @@ -132,31 +140,26 @@ public sealed class HotKeyPressedEventArgs : EventArgs internal HotKeyPressedEventArgs(ModifierKeys modifier, Key key) { - _modifier = modifier; - _key = key; + this._modifier = modifier; + this._key = key; } public ModifierKeys Modifier { - get { return _modifier; } + get { return this._modifier; } } public Key Key { - get { return _key; } + get { return this._key; } } } - public event EventHandler KeyPressed; - #region IDisposable Members - public void Dispose() { this.DestroyHandle(); - } - - #endregion + } } } diff --git a/MHFZ_Overlay/Services/Manager/AchievementManager.cs b/MHFZ_Overlay/Services/Manager/AchievementManager.cs index 3e0fe0dd..02fb0b75 100644 --- a/MHFZ_Overlay/Services/Manager/AchievementManager.cs +++ b/MHFZ_Overlay/Services/Manager/AchievementManager.cs @@ -86,7 +86,7 @@ public async Task RewardAchievement(int achievementID, Snackbar snackbar) private static readonly DatabaseManager DatabaseManagerInstance = DatabaseManager.GetInstance(); private static readonly NLog.Logger LoggerInstance = NLog.LogManager.GetCurrentClassLogger(); private static AchievementManager? instance; - private HashSet obtainedAchievements = new(); + private HashSet obtainedAchievements = new (); private AchievementManager() { @@ -121,11 +121,14 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa switch (achievementID) { default: - return false; + { + return false; + } + case 0: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_AKURA_VASHIMU); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4AkuraVashimu); case 1: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_Z4_AKURA_VASHIMU) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_SLAYER) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDZ4AkuraVashimu) >= Numbers.RequiredCompletionsMonsterSlayer) { return true; } @@ -135,7 +138,7 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa } case 2: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_Z4_AKURA_VASHIMU) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_ANNIHILATOR) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDZ4AkuraVashimu) >= Numbers.RequiredCompletionsMonsterAnnihilator) { return true; } @@ -145,7 +148,7 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa } case 3: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_Z4_AKURA_VASHIMU) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_EXTERMINATOR) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDZ4AkuraVashimu) >= Numbers.RequiredCompletionsMonsterExterminator) { return true; } @@ -153,12 +156,13 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 4: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_AKURA_VASHIMU && quest.PartySize == 1 && quest.ActualOverlayMode != null && (quest.ActualOverlayMode == "Zen" || quest.ActualOverlayMode == "Time Attack" || quest.ActualOverlayMode.Contains("Freestyle"))); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4AkuraVashimu && quest.PartySize == 1 && quest.ActualOverlayMode != null && (quest.ActualOverlayMode == "Zen" || quest.ActualOverlayMode == "Time Attack" || quest.ActualOverlayMode.Contains("Freestyle"))); case 5: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_ANORUPATISU); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Anorupatisu); case 6: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_Z4_ANORUPATISU) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_SLAYER) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDZ4Anorupatisu) >= Numbers.RequiredCompletionsMonsterSlayer) { return true; } @@ -166,8 +170,9 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 7: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_Z4_ANORUPATISU) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_ANNIHILATOR) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDZ4Anorupatisu) >= Numbers.RequiredCompletionsMonsterAnnihilator) { return true; } @@ -175,8 +180,9 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 8: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_Z4_ANORUPATISU) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_EXTERMINATOR) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDZ4Anorupatisu) >= Numbers.RequiredCompletionsMonsterExterminator) { return true; } @@ -184,12 +190,13 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 9: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_ANORUPATISU && quest.PartySize == 1 && quest.ActualOverlayMode != null && (quest.ActualOverlayMode == "Zen" || quest.ActualOverlayMode == "Time Attack" || quest.ActualOverlayMode.Contains("Freestyle"))); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Anorupatisu && quest.PartySize == 1 && quest.ActualOverlayMode != null && (quest.ActualOverlayMode == "Zen" || quest.ActualOverlayMode == "Time Attack" || quest.ActualOverlayMode.Contains("Freestyle"))); case 10: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_BLANGONGA); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Blangonga); case 11: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_Z4_BLANGONGA) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_SLAYER) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDZ4Blangonga) >= Numbers.RequiredCompletionsMonsterSlayer) { return true; } @@ -197,8 +204,9 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 12: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_Z4_BLANGONGA) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_ANNIHILATOR) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDZ4Blangonga) >= Numbers.RequiredCompletionsMonsterAnnihilator) { return true; } @@ -206,8 +214,9 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 13: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_Z4_BLANGONGA) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_EXTERMINATOR) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDZ4Blangonga) >= Numbers.RequiredCompletionsMonsterExterminator) { return true; } @@ -215,12 +224,13 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 14: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_BLANGONGA && quest.PartySize == 1 && quest.ActualOverlayMode != null && (quest.ActualOverlayMode == "Zen" || quest.ActualOverlayMode == "Time Attack" || quest.ActualOverlayMode.Contains("Freestyle"))); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Blangonga && quest.PartySize == 1 && quest.ActualOverlayMode != null && (quest.ActualOverlayMode == "Zen" || quest.ActualOverlayMode == "Time Attack" || quest.ActualOverlayMode.Contains("Freestyle"))); case 15: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_DAIMYO_HERMITAUR); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4DaimyoHermitaur); case 16: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_Z4_DAIMYO_HERMITAUR) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_SLAYER) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDZ4DaimyoHermitaur) >= Numbers.RequiredCompletionsMonsterSlayer) { return true; } @@ -228,8 +238,9 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 17: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_Z4_DAIMYO_HERMITAUR) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_ANNIHILATOR) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDZ4DaimyoHermitaur) >= Numbers.RequiredCompletionsMonsterAnnihilator) { return true; } @@ -237,8 +248,9 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 18: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_Z4_DAIMYO_HERMITAUR) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_EXTERMINATOR) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDZ4DaimyoHermitaur) >= Numbers.RequiredCompletionsMonsterExterminator) { return true; } @@ -246,12 +258,13 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 19: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_DAIMYO_HERMITAUR && quest.PartySize == 1 && quest.ActualOverlayMode != null && (quest.ActualOverlayMode == "Zen" || quest.ActualOverlayMode == "Time Attack" || quest.ActualOverlayMode.Contains("Freestyle"))); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4DaimyoHermitaur && quest.PartySize == 1 && quest.ActualOverlayMode != null && (quest.ActualOverlayMode == "Zen" || quest.ActualOverlayMode == "Time Attack" || quest.ActualOverlayMode.Contains("Freestyle"))); case 20: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_DORAGYUROSU); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Doragyurosu); case 21: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_Z4_DORAGYUROSU) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_SLAYER) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDZ4Doragyurosu) >= Numbers.RequiredCompletionsMonsterSlayer) { return true; } @@ -259,8 +272,9 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 22: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_Z4_DORAGYUROSU) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_ANNIHILATOR) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDZ4Doragyurosu) >= Numbers.RequiredCompletionsMonsterAnnihilator) { return true; } @@ -268,8 +282,9 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 23: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_Z4_DORAGYUROSU) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_EXTERMINATOR) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDZ4Doragyurosu) >= Numbers.RequiredCompletionsMonsterExterminator) { return true; } @@ -277,12 +292,13 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 24: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_DORAGYUROSU && quest.PartySize == 1 && quest.ActualOverlayMode != null && (quest.ActualOverlayMode == "Zen" || quest.ActualOverlayMode == "Time Attack" || quest.ActualOverlayMode.Contains("Freestyle"))); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Doragyurosu && quest.PartySize == 1 && quest.ActualOverlayMode != null && (quest.ActualOverlayMode == "Zen" || quest.ActualOverlayMode == "Time Attack" || quest.ActualOverlayMode.Contains("Freestyle"))); case 25: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_ESPINAS); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Espinas); case 26: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_Z4_ESPINAS) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_SLAYER) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDZ4Espinas) >= Numbers.RequiredCompletionsMonsterSlayer) { return true; } @@ -290,8 +306,9 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 27: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_Z4_ESPINAS) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_ANNIHILATOR) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDZ4Espinas) >= Numbers.RequiredCompletionsMonsterAnnihilator) { return true; } @@ -299,8 +316,9 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 28: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_Z4_ESPINAS) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_EXTERMINATOR) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDZ4Espinas) >= Numbers.RequiredCompletionsMonsterExterminator) { return true; } @@ -308,12 +326,13 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 29: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_ESPINAS && quest.PartySize == 1 && quest.ActualOverlayMode != null && (quest.ActualOverlayMode == "Zen" || quest.ActualOverlayMode == "Time Attack" || quest.ActualOverlayMode.Contains("Freestyle"))); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Espinas && quest.PartySize == 1 && quest.ActualOverlayMode != null && (quest.ActualOverlayMode == "Zen" || quest.ActualOverlayMode == "Time Attack" || quest.ActualOverlayMode.Contains("Freestyle"))); case 30: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_GASURABAZURA); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Gasurabazura); case 31: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_Z4_GASURABAZURA) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_SLAYER) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDZ4Gasurabazura) >= Numbers.RequiredCompletionsMonsterSlayer) { return true; } @@ -321,8 +340,9 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 32: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_Z4_GASURABAZURA) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_ANNIHILATOR) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDZ4Gasurabazura) >= Numbers.RequiredCompletionsMonsterAnnihilator) { return true; } @@ -330,8 +350,9 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 33: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_Z4_GASURABAZURA) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_EXTERMINATOR) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDZ4Gasurabazura) >= Numbers.RequiredCompletionsMonsterExterminator) { return true; } @@ -339,12 +360,13 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 34: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_GASURABAZURA && quest.PartySize == 1 && quest.ActualOverlayMode != null && (quest.ActualOverlayMode == "Zen" || quest.ActualOverlayMode == "Time Attack" || quest.ActualOverlayMode.Contains("Freestyle"))); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Gasurabazura && quest.PartySize == 1 && quest.ActualOverlayMode != null && (quest.ActualOverlayMode == "Zen" || quest.ActualOverlayMode == "Time Attack" || quest.ActualOverlayMode.Contains("Freestyle"))); case 35: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_GIAORUGU); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Giaorugu); case 36: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_Z4_GIAORUGU) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_SLAYER) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDZ4Giaorugu) >= Numbers.RequiredCompletionsMonsterSlayer) { return true; } @@ -352,8 +374,9 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 37: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_Z4_GIAORUGU) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_ANNIHILATOR) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDZ4Giaorugu) >= Numbers.RequiredCompletionsMonsterAnnihilator) { return true; } @@ -361,8 +384,9 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 38: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_Z4_GIAORUGU) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_EXTERMINATOR) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDZ4Giaorugu) >= Numbers.RequiredCompletionsMonsterExterminator) { return true; } @@ -370,12 +394,13 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 39: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_GIAORUGU && quest.PartySize == 1 && quest.ActualOverlayMode != null && (quest.ActualOverlayMode == "Zen" || quest.ActualOverlayMode == "Time Attack" || quest.ActualOverlayMode.Contains("Freestyle"))); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Giaorugu && quest.PartySize == 1 && quest.ActualOverlayMode != null && (quest.ActualOverlayMode == "Zen" || quest.ActualOverlayMode == "Time Attack" || quest.ActualOverlayMode.Contains("Freestyle"))); case 40: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_HYPNOCATRICE); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Hypnocatrice); case 41: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_Z4_HYPNOCATRICE) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_SLAYER) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDZ4Hypnocatrice) >= Numbers.RequiredCompletionsMonsterSlayer) { return true; } @@ -383,8 +408,9 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 42: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_Z4_HYPNOCATRICE) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_ANNIHILATOR) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDZ4Hypnocatrice) >= Numbers.RequiredCompletionsMonsterAnnihilator) { return true; } @@ -392,8 +418,9 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 43: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_Z4_HYPNOCATRICE) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_EXTERMINATOR) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDZ4Hypnocatrice) >= Numbers.RequiredCompletionsMonsterExterminator) { return true; } @@ -401,12 +428,13 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 44: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_HYPNOCATRICE && quest.PartySize == 1 && quest.ActualOverlayMode != null && (quest.ActualOverlayMode == "Zen" || quest.ActualOverlayMode == "Time Attack" || quest.ActualOverlayMode.Contains("Freestyle"))); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Hypnocatrice && quest.PartySize == 1 && quest.ActualOverlayMode != null && (quest.ActualOverlayMode == "Zen" || quest.ActualOverlayMode == "Time Attack" || quest.ActualOverlayMode.Contains("Freestyle"))); case 45: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_HYUJIKIKI); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Hyujikiki); case 46: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_Z4_HYUJIKIKI) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_SLAYER) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDZ4Hyujikiki) >= Numbers.RequiredCompletionsMonsterSlayer) { return true; } @@ -414,8 +442,9 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 47: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_Z4_HYUJIKIKI) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_ANNIHILATOR) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDZ4Hyujikiki) >= Numbers.RequiredCompletionsMonsterAnnihilator) { return true; } @@ -423,8 +452,9 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 48: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_Z4_HYUJIKIKI) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_EXTERMINATOR) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDZ4Hyujikiki) >= Numbers.RequiredCompletionsMonsterExterminator) { return true; } @@ -432,12 +462,13 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 49: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_HYUJIKIKI && quest.PartySize == 1 && quest.ActualOverlayMode != null && (quest.ActualOverlayMode == "Zen" || quest.ActualOverlayMode == "Time Attack" || quest.ActualOverlayMode.Contains("Freestyle"))); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Hyujikiki && quest.PartySize == 1 && quest.ActualOverlayMode != null && (quest.ActualOverlayMode == "Zen" || quest.ActualOverlayMode == "Time Attack" || quest.ActualOverlayMode.Contains("Freestyle"))); case 50: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_INAGAMI); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Inagami); case 51: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_Z4_INAGAMI) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_SLAYER) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDZ4Inagami) >= Numbers.RequiredCompletionsMonsterSlayer) { return true; } @@ -445,8 +476,9 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 52: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_Z4_INAGAMI) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_ANNIHILATOR) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDZ4Inagami) >= Numbers.RequiredCompletionsMonsterAnnihilator) { return true; } @@ -454,8 +486,9 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 53: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_Z4_INAGAMI) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_EXTERMINATOR) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDZ4Inagami) >= Numbers.RequiredCompletionsMonsterExterminator) { return true; } @@ -463,12 +496,13 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 54: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_INAGAMI && quest.PartySize == 1 && quest.ActualOverlayMode != null && (quest.ActualOverlayMode == "Zen" || quest.ActualOverlayMode == "Time Attack" || quest.ActualOverlayMode.Contains("Freestyle"))); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Inagami && quest.PartySize == 1 && quest.ActualOverlayMode != null && (quest.ActualOverlayMode == "Zen" || quest.ActualOverlayMode == "Time Attack" || quest.ActualOverlayMode.Contains("Freestyle"))); case 55: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_KHEZU); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Khezu); case 56: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_Z4_KHEZU) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_SLAYER) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDZ4Khezu) >= Numbers.RequiredCompletionsMonsterSlayer) { return true; } @@ -476,8 +510,9 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 57: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_Z4_KHEZU) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_ANNIHILATOR) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDZ4Khezu) >= Numbers.RequiredCompletionsMonsterAnnihilator) { return true; } @@ -485,8 +520,9 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 58: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_Z4_KHEZU) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_EXTERMINATOR) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDZ4Khezu) >= Numbers.RequiredCompletionsMonsterExterminator) { return true; } @@ -494,12 +530,13 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 59: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_KHEZU && quest.PartySize == 1 && quest.ActualOverlayMode != null && (quest.ActualOverlayMode == "Zen" || quest.ActualOverlayMode == "Time Attack" || quest.ActualOverlayMode.Contains("Freestyle"))); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Khezu && quest.PartySize == 1 && quest.ActualOverlayMode != null && (quest.ActualOverlayMode == "Zen" || quest.ActualOverlayMode == "Time Attack" || quest.ActualOverlayMode.Contains("Freestyle"))); case 60: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_MIDOGARON); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Midogaron); case 61: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_Z4_MIDOGARON) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_SLAYER) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDZ4Midogaron) >= Numbers.RequiredCompletionsMonsterSlayer) { return true; } @@ -507,8 +544,9 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 62: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_Z4_MIDOGARON) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_ANNIHILATOR) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDZ4Midogaron) >= Numbers.RequiredCompletionsMonsterAnnihilator) { return true; } @@ -516,8 +554,9 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 63: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_Z4_MIDOGARON) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_EXTERMINATOR) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDZ4Midogaron) >= Numbers.RequiredCompletionsMonsterExterminator) { return true; } @@ -525,12 +564,13 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 64: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_MIDOGARON && quest.PartySize == 1 && quest.ActualOverlayMode != null && (quest.ActualOverlayMode == "Zen" || quest.ActualOverlayMode == "Time Attack" || quest.ActualOverlayMode.Contains("Freestyle"))); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Midogaron && quest.PartySize == 1 && quest.ActualOverlayMode != null && (quest.ActualOverlayMode == "Zen" || quest.ActualOverlayMode == "Time Attack" || quest.ActualOverlayMode.Contains("Freestyle"))); case 65: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_HUGE_PLESIOTH); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDHugePlesioth); case 66: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_HUGE_PLESIOTH) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_SLAYER) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDHugePlesioth) >= Numbers.RequiredCompletionsMonsterSlayer) { return true; } @@ -538,8 +578,9 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 67: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_HUGE_PLESIOTH) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_ANNIHILATOR) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDHugePlesioth) >= Numbers.RequiredCompletionsMonsterAnnihilator) { return true; } @@ -547,8 +588,9 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 68: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_HUGE_PLESIOTH) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_EXTERMINATOR) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDHugePlesioth) >= Numbers.RequiredCompletionsMonsterExterminator) { return true; } @@ -556,12 +598,13 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 69: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_HUGE_PLESIOTH && quest.PartySize == 1 && quest.ActualOverlayMode != null && (quest.ActualOverlayMode == "Zen" || quest.ActualOverlayMode == "Time Attack" || quest.ActualOverlayMode.Contains("Freestyle"))); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDHugePlesioth && quest.PartySize == 1 && quest.ActualOverlayMode != null && (quest.ActualOverlayMode == "Zen" || quest.ActualOverlayMode == "Time Attack" || quest.ActualOverlayMode.Contains("Freestyle"))); case 70: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_RATHALOS); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Rathalos); case 71: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_Z4_RATHALOS) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_SLAYER) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDZ4Rathalos) >= Numbers.RequiredCompletionsMonsterSlayer) { return true; } @@ -569,8 +612,9 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 72: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_Z4_RATHALOS) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_ANNIHILATOR) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDZ4Rathalos) >= Numbers.RequiredCompletionsMonsterAnnihilator) { return true; } @@ -578,8 +622,9 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 73: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_Z4_RATHALOS) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_EXTERMINATOR) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDZ4Rathalos) >= Numbers.RequiredCompletionsMonsterExterminator) { return true; } @@ -587,12 +632,13 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 74: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_RATHALOS && quest.PartySize == 1 && quest.ActualOverlayMode != null && (quest.ActualOverlayMode == "Zen" || quest.ActualOverlayMode == "Time Attack" || quest.ActualOverlayMode.Contains("Freestyle"))); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Rathalos && quest.PartySize == 1 && quest.ActualOverlayMode != null && (quest.ActualOverlayMode == "Zen" || quest.ActualOverlayMode == "Time Attack" || quest.ActualOverlayMode.Contains("Freestyle"))); case 75: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_RUKODIORA); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Rukodiora); case 76: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_Z4_RUKODIORA) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_SLAYER) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDZ4Rukodiora) >= Numbers.RequiredCompletionsMonsterSlayer) { return true; } @@ -600,8 +646,9 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 77: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_Z4_RUKODIORA) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_ANNIHILATOR) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDZ4Rukodiora) >= Numbers.RequiredCompletionsMonsterAnnihilator) { return true; } @@ -609,8 +656,9 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 78: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_Z4_RUKODIORA) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_EXTERMINATOR) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDZ4Rukodiora) >= Numbers.RequiredCompletionsMonsterExterminator) { return true; } @@ -618,12 +666,13 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 79: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_RUKODIORA && quest.PartySize == 1 && quest.ActualOverlayMode != null && (quest.ActualOverlayMode == "Zen" || quest.ActualOverlayMode == "Time Attack" || quest.ActualOverlayMode.Contains("Freestyle"))); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Rukodiora && quest.PartySize == 1 && quest.ActualOverlayMode != null && (quest.ActualOverlayMode == "Zen" || quest.ActualOverlayMode == "Time Attack" || quest.ActualOverlayMode.Contains("Freestyle"))); case 80: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_TIGREX); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Tigrex); case 81: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_Z4_TIGREX) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_SLAYER) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDZ4Tigrex) >= Numbers.RequiredCompletionsMonsterSlayer) { return true; } @@ -631,8 +680,9 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 82: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_Z4_TIGREX) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_ANNIHILATOR) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDZ4Tigrex) >= Numbers.RequiredCompletionsMonsterAnnihilator) { return true; } @@ -640,8 +690,9 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 83: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_Z4_TIGREX) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_EXTERMINATOR) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDZ4Tigrex) >= Numbers.RequiredCompletionsMonsterExterminator) { return true; } @@ -649,12 +700,13 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 84: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_TIGREX && quest.PartySize == 1 && quest.ActualOverlayMode != null && (quest.ActualOverlayMode == "Zen" || quest.ActualOverlayMode == "Time Attack" || quest.ActualOverlayMode.Contains("Freestyle"))); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Tigrex && quest.PartySize == 1 && quest.ActualOverlayMode != null && (quest.ActualOverlayMode == "Zen" || quest.ActualOverlayMode == "Time Attack" || quest.ActualOverlayMode.Contains("Freestyle"))); case 85: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_TORIDCLESS); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Toridcless); case 86: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_Z4_TORIDCLESS) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_SLAYER) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDZ4Toridcless) >= Numbers.RequiredCompletionsMonsterSlayer) { return true; } @@ -662,8 +714,9 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 87: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_Z4_TORIDCLESS) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_ANNIHILATOR) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDZ4Toridcless) >= Numbers.RequiredCompletionsMonsterAnnihilator) { return true; } @@ -671,8 +724,9 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 88: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_Z4_TORIDCLESS) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_EXTERMINATOR) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDZ4Toridcless) >= Numbers.RequiredCompletionsMonsterExterminator) { return true; } @@ -680,12 +734,13 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 89: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_TORIDCLESS && quest.PartySize == 1 && quest.ActualOverlayMode != null && (quest.ActualOverlayMode == "Zen" || quest.ActualOverlayMode == "Time Attack" || quest.ActualOverlayMode.Contains("Freestyle"))); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Toridcless && quest.PartySize == 1 && quest.ActualOverlayMode != null && (quest.ActualOverlayMode == "Zen" || quest.ActualOverlayMode == "Time Attack" || quest.ActualOverlayMode.Contains("Freestyle"))); case 90: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_BARURAGARU); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Baruragaru); case 91: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_Z4_BARURAGARU) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_SLAYER) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDZ4Baruragaru) >= Numbers.RequiredCompletionsMonsterSlayer) { return true; } @@ -693,8 +748,9 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 92: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_Z4_BARURAGARU) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_ANNIHILATOR) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDZ4Baruragaru) >= Numbers.RequiredCompletionsMonsterAnnihilator) { return true; } @@ -702,8 +758,9 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 93: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_Z4_BARURAGARU) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_EXTERMINATOR) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDZ4Baruragaru) >= Numbers.RequiredCompletionsMonsterExterminator) { return true; } @@ -711,12 +768,13 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 94: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_BARURAGARU && quest.PartySize == 1 && quest.ActualOverlayMode != null && (quest.ActualOverlayMode == "Zen" || quest.ActualOverlayMode == "Time Attack" || quest.ActualOverlayMode.Contains("Freestyle"))); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Baruragaru && quest.PartySize == 1 && quest.ActualOverlayMode != null && (quest.ActualOverlayMode == "Zen" || quest.ActualOverlayMode == "Time Attack" || quest.ActualOverlayMode.Contains("Freestyle"))); case 95: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_BOGABADORUMU); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Bogabadorumu); case 96: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_Z4_BOGABADORUMU) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_SLAYER) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDZ4Bogabadorumu) >= Numbers.RequiredCompletionsMonsterSlayer) { return true; } @@ -724,8 +782,9 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 97: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_Z4_BOGABADORUMU) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_ANNIHILATOR) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDZ4Bogabadorumu) >= Numbers.RequiredCompletionsMonsterAnnihilator) { return true; } @@ -733,8 +792,9 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 98: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_Z4_BOGABADORUMU) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_EXTERMINATOR) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDZ4Bogabadorumu) >= Numbers.RequiredCompletionsMonsterExterminator) { return true; } @@ -742,12 +802,13 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 99: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_BOGABADORUMU && quest.PartySize == 1 && quest.ActualOverlayMode != null && (quest.ActualOverlayMode == "Zen" || quest.ActualOverlayMode == "Time Attack" || quest.ActualOverlayMode.Contains("Freestyle"))); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Bogabadorumu && quest.PartySize == 1 && quest.ActualOverlayMode != null && (quest.ActualOverlayMode == "Zen" || quest.ActualOverlayMode == "Time Attack" || quest.ActualOverlayMode.Contains("Freestyle"))); case 100: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_GRAVIOS); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Gravios); case 101: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_Z4_GRAVIOS) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_SLAYER) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDZ4Gravios) >= Numbers.RequiredCompletionsMonsterSlayer) { return true; } @@ -755,8 +816,9 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 102: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_Z4_GRAVIOS) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_ANNIHILATOR) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDZ4Gravios) >= Numbers.RequiredCompletionsMonsterAnnihilator) { return true; } @@ -764,8 +826,9 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 103: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_Z4_GRAVIOS) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_EXTERMINATOR) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDZ4Gravios) >= Numbers.RequiredCompletionsMonsterExterminator) { return true; } @@ -773,12 +836,13 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 104: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_GRAVIOS && quest.PartySize == 1 && quest.ActualOverlayMode != null && (quest.ActualOverlayMode == "Zen" || quest.ActualOverlayMode == "Time Attack" || quest.ActualOverlayMode.Contains("Freestyle"))); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Gravios && quest.PartySize == 1 && quest.ActualOverlayMode != null && (quest.ActualOverlayMode == "Zen" || quest.ActualOverlayMode == "Time Attack" || quest.ActualOverlayMode.Contains("Freestyle"))); case 105: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_HARUDOMERUGU); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Harudomerugu); case 106: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_Z4_HARUDOMERUGU) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_SLAYER) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDZ4Harudomerugu) >= Numbers.RequiredCompletionsMonsterSlayer) { return true; } @@ -786,8 +850,9 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 107: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_Z4_HARUDOMERUGU) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_ANNIHILATOR) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDZ4Harudomerugu) >= Numbers.RequiredCompletionsMonsterAnnihilator) { return true; } @@ -795,8 +860,9 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 108: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_Z4_HARUDOMERUGU) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_EXTERMINATOR) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDZ4Harudomerugu) >= Numbers.RequiredCompletionsMonsterExterminator) { return true; } @@ -804,12 +870,13 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 109: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_HARUDOMERUGU && quest.PartySize == 1 && quest.ActualOverlayMode != null && (quest.ActualOverlayMode == "Zen" || quest.ActualOverlayMode == "Time Attack" || quest.ActualOverlayMode.Contains("Freestyle"))); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Harudomerugu && quest.PartySize == 1 && quest.ActualOverlayMode != null && (quest.ActualOverlayMode == "Zen" || quest.ActualOverlayMode == "Time Attack" || quest.ActualOverlayMode.Contains("Freestyle"))); case 110: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_TAIKUN_ZAMUZA); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4TaikunZamuza); case 111: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_Z4_TAIKUN_ZAMUZA) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_SLAYER) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDZ4TaikunZamuza) >= Numbers.RequiredCompletionsMonsterSlayer) { return true; } @@ -817,8 +884,9 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 112: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_Z4_TAIKUN_ZAMUZA) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_ANNIHILATOR) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDZ4TaikunZamuza) >= Numbers.RequiredCompletionsMonsterAnnihilator) { return true; } @@ -826,8 +894,9 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 113: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_Z4_TAIKUN_ZAMUZA) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_EXTERMINATOR) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDZ4TaikunZamuza) >= Numbers.RequiredCompletionsMonsterExterminator) { return true; } @@ -835,12 +904,13 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 114: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_TAIKUN_ZAMUZA && quest.PartySize == 1 && quest.ActualOverlayMode != null && (quest.ActualOverlayMode == "Zen" || quest.ActualOverlayMode == "Time Attack" || quest.ActualOverlayMode.Contains("Freestyle"))); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4TaikunZamuza && quest.PartySize == 1 && quest.ActualOverlayMode != null && (quest.ActualOverlayMode == "Zen" || quest.ActualOverlayMode == "Time Attack" || quest.ActualOverlayMode.Contains("Freestyle"))); case 115: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_LV9999_FATALIS); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDLV9999Fatalis); case 116: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_LV9999_FATALIS) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_SLAYER) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDLV9999Fatalis) >= Numbers.RequiredCompletionsMonsterSlayer) { return true; } @@ -848,8 +918,9 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 117: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_LV9999_FATALIS) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_ANNIHILATOR) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDLV9999Fatalis) >= Numbers.RequiredCompletionsMonsterAnnihilator) { return true; } @@ -857,8 +928,9 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 118: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_LV9999_FATALIS) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_EXTERMINATOR) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDLV9999Fatalis) >= Numbers.RequiredCompletionsMonsterExterminator) { return true; } @@ -866,12 +938,13 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 119: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_LV9999_FATALIS && quest.PartySize == 1 && quest.ActualOverlayMode != null && (quest.ActualOverlayMode == "Zen" || quest.ActualOverlayMode == "Time Attack" || quest.ActualOverlayMode.Contains("Freestyle"))); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDLV9999Fatalis && quest.PartySize == 1 && quest.ActualOverlayMode != null && (quest.ActualOverlayMode == "Zen" || quest.ActualOverlayMode == "Time Attack" || quest.ActualOverlayMode.Contains("Freestyle"))); case 120: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_LV9999_CRIMSON_FATALIS); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDLV9999CrimsonFatalis); case 121: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_LV9999_CRIMSON_FATALIS) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_SLAYER) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDLV9999CrimsonFatalis) >= Numbers.RequiredCompletionsMonsterSlayer) { return true; } @@ -879,8 +952,9 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 122: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_LV9999_CRIMSON_FATALIS) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_ANNIHILATOR) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDLV9999CrimsonFatalis) >= Numbers.RequiredCompletionsMonsterAnnihilator) { return true; } @@ -888,8 +962,9 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 123: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_LV9999_CRIMSON_FATALIS) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_EXTERMINATOR) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDLV9999CrimsonFatalis) >= Numbers.RequiredCompletionsMonsterExterminator) { return true; } @@ -897,12 +972,13 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 124: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_LV9999_CRIMSON_FATALIS && quest.PartySize == 1 && quest.ActualOverlayMode != null && (quest.ActualOverlayMode == "Zen" || quest.ActualOverlayMode == "Time Attack" || quest.ActualOverlayMode.Contains("Freestyle"))); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDLV9999CrimsonFatalis && quest.PartySize == 1 && quest.ActualOverlayMode != null && (quest.ActualOverlayMode == "Zen" || quest.ActualOverlayMode == "Time Attack" || quest.ActualOverlayMode.Contains("Freestyle"))); case 125: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_LV9999_SHANTIEN); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDLV9999Shantien); case 126: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_LV9999_SHANTIEN) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_SLAYER) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDLV9999Shantien) >= Numbers.RequiredCompletionsMonsterSlayer) { return true; } @@ -910,8 +986,9 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 127: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_LV9999_SHANTIEN) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_ANNIHILATOR) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDLV9999Shantien) >= Numbers.RequiredCompletionsMonsterAnnihilator) { return true; } @@ -919,8 +996,9 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 128: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_LV9999_SHANTIEN) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_EXTERMINATOR) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDLV9999Shantien) >= Numbers.RequiredCompletionsMonsterExterminator) { return true; } @@ -928,12 +1006,13 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 129: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_LV9999_SHANTIEN && quest.PartySize == 1 && quest.ActualOverlayMode != null && (quest.ActualOverlayMode == "Zen" || quest.ActualOverlayMode == "Time Attack" || quest.ActualOverlayMode.Contains("Freestyle"))); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDLV9999Shantien && quest.PartySize == 1 && quest.ActualOverlayMode != null && (quest.ActualOverlayMode == "Zen" || quest.ActualOverlayMode == "Time Attack" || quest.ActualOverlayMode.Contains("Freestyle"))); case 130: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_LV9999_DISUFIROA); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDLV9999Disufiroa); case 131: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_LV9999_DISUFIROA) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_SLAYER) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDLV9999Disufiroa) >= Numbers.RequiredCompletionsMonsterSlayer) { return true; } @@ -941,8 +1020,9 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 132: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_LV9999_DISUFIROA) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_ANNIHILATOR) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDLV9999Disufiroa) >= Numbers.RequiredCompletionsMonsterAnnihilator) { return true; } @@ -950,8 +1030,9 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 133: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_LV9999_DISUFIROA) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_EXTERMINATOR) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDLV9999Disufiroa) >= Numbers.RequiredCompletionsMonsterExterminator) { return true; } @@ -959,12 +1040,13 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 134: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_LV9999_DISUFIROA && quest.PartySize == 1 && quest.ActualOverlayMode != null && (quest.ActualOverlayMode == "Zen" || quest.ActualOverlayMode == "Time Attack" || quest.ActualOverlayMode.Contains("Freestyle"))); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDLV9999Disufiroa && quest.PartySize == 1 && quest.ActualOverlayMode != null && (quest.ActualOverlayMode == "Zen" || quest.ActualOverlayMode == "Time Attack" || quest.ActualOverlayMode.Contains("Freestyle"))); case 135: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_UPPER_SHITEN_UNKNOWN); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDUpperShitenUnknown); case 136: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_UPPER_SHITEN_UNKNOWN) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_SLAYER) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDUpperShitenUnknown) >= Numbers.RequiredCompletionsMonsterSlayer) { return true; } @@ -972,8 +1054,9 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 137: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_UPPER_SHITEN_UNKNOWN) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_ANNIHILATOR) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDUpperShitenUnknown) >= Numbers.RequiredCompletionsMonsterAnnihilator) { return true; } @@ -981,8 +1064,9 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 138: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_UPPER_SHITEN_UNKNOWN) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_EXTERMINATOR) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDUpperShitenUnknown) >= Numbers.RequiredCompletionsMonsterExterminator) { return true; } @@ -990,12 +1074,13 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 139: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_UPPER_SHITEN_UNKNOWN && quest.PartySize == 1 && quest.ActualOverlayMode != null && (quest.ActualOverlayMode == "Zen" || quest.ActualOverlayMode == "Time Attack" || quest.ActualOverlayMode.Contains("Freestyle"))); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDUpperShitenUnknown && quest.PartySize == 1 && quest.ActualOverlayMode != null && (quest.ActualOverlayMode == "Zen" || quest.ActualOverlayMode == "Time Attack" || quest.ActualOverlayMode.Contains("Freestyle"))); case 140: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_UPPER_SHITEN_DISUFIROA); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDUpperShitenDisufiroa); case 141: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_UPPER_SHITEN_DISUFIROA) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_SLAYER) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDUpperShitenDisufiroa) >= Numbers.RequiredCompletionsMonsterSlayer) { return true; } @@ -1003,8 +1088,9 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 142: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_UPPER_SHITEN_DISUFIROA) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_ANNIHILATOR) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDUpperShitenDisufiroa) >= Numbers.RequiredCompletionsMonsterAnnihilator) { return true; } @@ -1012,8 +1098,9 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 143: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_UPPER_SHITEN_DISUFIROA) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_EXTERMINATOR) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDUpperShitenDisufiroa) >= Numbers.RequiredCompletionsMonsterExterminator) { return true; } @@ -1021,12 +1108,13 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 144: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_UPPER_SHITEN_DISUFIROA && quest.PartySize == 1 && quest.ActualOverlayMode != null && (quest.ActualOverlayMode == "Zen" || quest.ActualOverlayMode == "Time Attack" || quest.ActualOverlayMode.Contains("Freestyle"))); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDUpperShitenDisufiroa && quest.PartySize == 1 && quest.ActualOverlayMode != null && (quest.ActualOverlayMode == "Zen" || quest.ActualOverlayMode == "Time Attack" || quest.ActualOverlayMode.Contains("Freestyle"))); case 145: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_THIRSTY_PARIAPURIA); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDThirstyPariapuria); case 146: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_THIRSTY_PARIAPURIA) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_SLAYER) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDThirstyPariapuria) >= Numbers.RequiredCompletionsMonsterSlayer) { return true; } @@ -1034,8 +1122,9 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 147: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_THIRSTY_PARIAPURIA) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_ANNIHILATOR) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDThirstyPariapuria) >= Numbers.RequiredCompletionsMonsterAnnihilator) { return true; } @@ -1043,8 +1132,9 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 148: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_THIRSTY_PARIAPURIA) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_EXTERMINATOR) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDThirstyPariapuria) >= Numbers.RequiredCompletionsMonsterExterminator) { return true; } @@ -1052,12 +1142,13 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 149: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_THIRSTY_PARIAPURIA && quest.PartySize == 1 && quest.ActualOverlayMode != null && (quest.ActualOverlayMode == "Zen" || quest.ActualOverlayMode == "Time Attack" || quest.ActualOverlayMode.Contains("Freestyle"))); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDThirstyPariapuria && quest.PartySize == 1 && quest.ActualOverlayMode != null && (quest.ActualOverlayMode == "Zen" || quest.ActualOverlayMode == "Time Attack" || quest.ActualOverlayMode.Contains("Freestyle"))); case 150: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_RULING_GUANZORUMU); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDRulingGuanzorumu); case 151: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_RULING_GUANZORUMU) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_SLAYER) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDRulingGuanzorumu) >= Numbers.RequiredCompletionsMonsterSlayer) { return true; } @@ -1065,8 +1156,9 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 152: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_RULING_GUANZORUMU) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_ANNIHILATOR) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDRulingGuanzorumu) >= Numbers.RequiredCompletionsMonsterAnnihilator) { return true; } @@ -1074,8 +1166,9 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 153: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_RULING_GUANZORUMU) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_EXTERMINATOR) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDRulingGuanzorumu) >= Numbers.RequiredCompletionsMonsterExterminator) { return true; } @@ -1083,12 +1176,13 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 154: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_RULING_GUANZORUMU && quest.PartySize == 1 && quest.ActualOverlayMode != null && (quest.ActualOverlayMode == "Zen" || quest.ActualOverlayMode == "Time Attack" || quest.ActualOverlayMode.Contains("Freestyle"))); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDRulingGuanzorumu && quest.PartySize == 1 && quest.ActualOverlayMode != null && (quest.ActualOverlayMode == "Zen" || quest.ActualOverlayMode == "Time Attack" || quest.ActualOverlayMode.Contains("Freestyle"))); case 155: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_SHIFTING_MI_RU); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDShiftingMiRu); case 156: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_SHIFTING_MI_RU) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_SLAYER) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDShiftingMiRu) >= Numbers.RequiredCompletionsMonsterSlayer) { return true; } @@ -1098,7 +1192,7 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa } case 157: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_SHIFTING_MI_RU) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_ANNIHILATOR) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDShiftingMiRu) >= Numbers.RequiredCompletionsMonsterAnnihilator) { return true; } @@ -1108,7 +1202,7 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa } case 158: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_SHIFTING_MI_RU) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_EXTERMINATOR) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDShiftingMiRu) >= Numbers.RequiredCompletionsMonsterExterminator) { return true; } @@ -1118,11 +1212,11 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa } case 159: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_SHIFTING_MI_RU && quest.PartySize == 1 && quest.ActualOverlayMode != null && (quest.ActualOverlayMode == "Zen" || quest.ActualOverlayMode == "Time Attack" || quest.ActualOverlayMode.Contains("Freestyle"))); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDShiftingMiRu && quest.PartySize == 1 && quest.ActualOverlayMode != null && (quest.ActualOverlayMode == "Zen" || quest.ActualOverlayMode == "Time Attack" || quest.ActualOverlayMode.Contains("Freestyle"))); case 160: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_BLINKING_NARGACUGA_FOREST || quest.QuestID == Numbers.QUEST_ID_BLINKING_NARGACUGA_HISTORIC); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDBlinkingNargacugaForest || quest.QuestID == Numbers.QuestIDBlinkingNargacugaHistoric); case 161: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_BLINKING_NARGACUGA_FOREST || quest.QuestID == Numbers.QUEST_ID_BLINKING_NARGACUGA_HISTORIC) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_SLAYER) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDBlinkingNargacugaForest || quest.QuestID == Numbers.QuestIDBlinkingNargacugaHistoric) >= Numbers.RequiredCompletionsMonsterSlayer) { return true; } @@ -1132,7 +1226,7 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa } case 162: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_BLINKING_NARGACUGA_FOREST || quest.QuestID == Numbers.QUEST_ID_BLINKING_NARGACUGA_HISTORIC) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_ANNIHILATOR) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDBlinkingNargacugaForest || quest.QuestID == Numbers.QuestIDBlinkingNargacugaHistoric) >= Numbers.RequiredCompletionsMonsterAnnihilator) { return true; } @@ -1142,7 +1236,7 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa } case 163: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_BLINKING_NARGACUGA_FOREST || quest.QuestID == Numbers.QUEST_ID_BLINKING_NARGACUGA_HISTORIC) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_EXTERMINATOR) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDBlinkingNargacugaForest || quest.QuestID == Numbers.QuestIDBlinkingNargacugaHistoric) >= Numbers.RequiredCompletionsMonsterExterminator) { return true; } @@ -1152,11 +1246,11 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa } case 164: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_BLINKING_NARGACUGA_FOREST || quest.QuestID == Numbers.QUEST_ID_BLINKING_NARGACUGA_HISTORIC && quest.PartySize == 1 && quest.ActualOverlayMode != null && (quest.ActualOverlayMode == "Zen" || quest.ActualOverlayMode == "Time Attack" || quest.ActualOverlayMode.Contains("Freestyle"))); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDBlinkingNargacugaForest || quest.QuestID == Numbers.QuestIDBlinkingNargacugaHistoric && quest.PartySize == 1 && quest.ActualOverlayMode != null && (quest.ActualOverlayMode == "Zen" || quest.ActualOverlayMode == "Time Attack" || quest.ActualOverlayMode.Contains("Freestyle"))); case 165: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_HOWLING_ZINOGRE_FOREST || quest.QuestID == Numbers.QUEST_ID_HOWLING_ZINOGRE_HISTORIC); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDHowlingZinogreForest || quest.QuestID == Numbers.QuestIDHowlingZinogreHistoric); case 166: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_HOWLING_ZINOGRE_FOREST || quest.QuestID == Numbers.QUEST_ID_HOWLING_ZINOGRE_HISTORIC) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_SLAYER) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDHowlingZinogreForest || quest.QuestID == Numbers.QuestIDHowlingZinogreHistoric) >= Numbers.RequiredCompletionsMonsterSlayer) { return true; } @@ -1166,7 +1260,7 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa } case 167: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_HOWLING_ZINOGRE_FOREST || quest.QuestID == Numbers.QUEST_ID_HOWLING_ZINOGRE_HISTORIC) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_ANNIHILATOR) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDHowlingZinogreForest || quest.QuestID == Numbers.QuestIDHowlingZinogreHistoric) >= Numbers.RequiredCompletionsMonsterAnnihilator) { return true; } @@ -1174,8 +1268,9 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 168: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_HOWLING_ZINOGRE_FOREST || quest.QuestID == Numbers.QUEST_ID_HOWLING_ZINOGRE_HISTORIC) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_EXTERMINATOR) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDHowlingZinogreForest || quest.QuestID == Numbers.QuestIDHowlingZinogreHistoric) >= Numbers.RequiredCompletionsMonsterExterminator) { return true; } @@ -1183,12 +1278,13 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 169: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_HOWLING_ZINOGRE_FOREST || quest.QuestID == Numbers.QUEST_ID_HOWLING_ZINOGRE_HISTORIC && quest.PartySize == 1 && quest.ActualOverlayMode != null && (quest.ActualOverlayMode == "Zen" || quest.ActualOverlayMode == "Time Attack" || quest.ActualOverlayMode.Contains("Freestyle"))); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDHowlingZinogreForest || quest.QuestID == Numbers.QuestIDHowlingZinogreHistoric && quest.PartySize == 1 && quest.ActualOverlayMode != null && (quest.ActualOverlayMode == "Zen" || quest.ActualOverlayMode == "Time Attack" || quest.ActualOverlayMode.Contains("Freestyle"))); case 170: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_STARVING_DEVILJHO_ARENA || quest.QuestID == Numbers.QUEST_ID_STARVING_DEVILJHO_HISTORIC); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDStarvingDeviljhoArena || quest.QuestID == Numbers.QuestIDStarvingDeviljhoHistoric); case 171: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_STARVING_DEVILJHO_ARENA || quest.QuestID == Numbers.QUEST_ID_STARVING_DEVILJHO_HISTORIC) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_SLAYER) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDStarvingDeviljhoArena || quest.QuestID == Numbers.QuestIDStarvingDeviljhoHistoric) >= Numbers.RequiredCompletionsMonsterSlayer) { return true; } @@ -1196,8 +1292,9 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 172: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_STARVING_DEVILJHO_ARENA || quest.QuestID == Numbers.QUEST_ID_STARVING_DEVILJHO_HISTORIC) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_ANNIHILATOR) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDStarvingDeviljhoArena || quest.QuestID == Numbers.QuestIDStarvingDeviljhoHistoric) >= Numbers.RequiredCompletionsMonsterAnnihilator) { return true; } @@ -1205,8 +1302,9 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 173: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_STARVING_DEVILJHO_ARENA || quest.QuestID == Numbers.QUEST_ID_STARVING_DEVILJHO_HISTORIC) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_EXTERMINATOR) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDStarvingDeviljhoArena || quest.QuestID == Numbers.QuestIDStarvingDeviljhoHistoric) >= Numbers.RequiredCompletionsMonsterExterminator) { return true; } @@ -1214,12 +1312,13 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 174: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_STARVING_DEVILJHO_ARENA || quest.QuestID == Numbers.QUEST_ID_STARVING_DEVILJHO_HISTORIC && quest.PartySize == 1 && quest.ActualOverlayMode != null && (quest.ActualOverlayMode == "Zen" || quest.ActualOverlayMode == "Time Attack" || quest.ActualOverlayMode.Contains("Freestyle"))); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDStarvingDeviljhoArena || quest.QuestID == Numbers.QuestIDStarvingDeviljhoHistoric && quest.PartySize == 1 && quest.ActualOverlayMode != null && (quest.ActualOverlayMode == "Zen" || quest.ActualOverlayMode == "Time Attack" || quest.ActualOverlayMode.Contains("Freestyle"))); case 175: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_SPARKLING_ZERUREUSU || quest.QuestID == Numbers.QUEST_ID_SPARKLING_ZERUREUSU_EVENT); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDSparklingZerureusu || quest.QuestID == Numbers.QuestIDSparklingZerureusuEvent); case 176: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_SPARKLING_ZERUREUSU || quest.QuestID == Numbers.QUEST_ID_SPARKLING_ZERUREUSU_EVENT) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_SLAYER) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDSparklingZerureusu || quest.QuestID == Numbers.QuestIDSparklingZerureusuEvent) >= Numbers.RequiredCompletionsMonsterSlayer) { return true; } @@ -1227,8 +1326,9 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 177: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_SPARKLING_ZERUREUSU || quest.QuestID == Numbers.QUEST_ID_SPARKLING_ZERUREUSU_EVENT) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_ANNIHILATOR) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDSparklingZerureusu || quest.QuestID == Numbers.QuestIDSparklingZerureusuEvent) >= Numbers.RequiredCompletionsMonsterAnnihilator) { return true; } @@ -1236,8 +1336,9 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 178: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_SPARKLING_ZERUREUSU || quest.QuestID == Numbers.QUEST_ID_SPARKLING_ZERUREUSU_EVENT) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_EXTERMINATOR) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDSparklingZerureusu || quest.QuestID == Numbers.QuestIDSparklingZerureusuEvent) >= Numbers.RequiredCompletionsMonsterExterminator) { return true; } @@ -1245,12 +1346,13 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 179: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_SPARKLING_ZERUREUSU || quest.QuestID == Numbers.QUEST_ID_SPARKLING_ZERUREUSU_EVENT && quest.PartySize == 1 && quest.ActualOverlayMode != null && (quest.ActualOverlayMode == "Zen" || quest.ActualOverlayMode == "Time Attack" || quest.ActualOverlayMode.Contains("Freestyle"))); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDSparklingZerureusu || quest.QuestID == Numbers.QuestIDSparklingZerureusuEvent && quest.PartySize == 1 && quest.ActualOverlayMode != null && (quest.ActualOverlayMode == "Zen" || quest.ActualOverlayMode == "Time Attack" || quest.ActualOverlayMode.Contains("Freestyle"))); case 180: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_ARROGANT_DUREMUDIRA); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDArrogantDuremudira); case 181: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_ARROGANT_DUREMUDIRA) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_SLAYER) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDArrogantDuremudira) >= Numbers.RequiredCompletionsMonsterSlayer) { return true; } @@ -1258,8 +1360,9 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 182: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_ARROGANT_DUREMUDIRA) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_ANNIHILATOR) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDArrogantDuremudira) >= Numbers.RequiredCompletionsMonsterAnnihilator) { return true; } @@ -1267,8 +1370,9 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 183: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_ARROGANT_DUREMUDIRA) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_EXTERMINATOR) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDArrogantDuremudira) >= Numbers.RequiredCompletionsMonsterExterminator) { return true; } @@ -1276,12 +1380,13 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 184: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_ARROGANT_DUREMUDIRA && quest.PartySize == 1 && quest.ActualOverlayMode != null && (quest.ActualOverlayMode == "Zen" || quest.ActualOverlayMode == "Time Attack" || quest.ActualOverlayMode.Contains("Freestyle"))); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDArrogantDuremudira && quest.PartySize == 1 && quest.ActualOverlayMode != null && (quest.ActualOverlayMode == "Zen" || quest.ActualOverlayMode == "Time Attack" || quest.ActualOverlayMode.Contains("Freestyle"))); case 185: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_BLITZKRIEG_BOGABADORUMU); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDBlitzkriegBogabadorumu); case 186: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_BLITZKRIEG_BOGABADORUMU) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_SLAYER) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDBlitzkriegBogabadorumu) >= Numbers.RequiredCompletionsMonsterSlayer) { return true; } @@ -1289,8 +1394,9 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 187: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_BLITZKRIEG_BOGABADORUMU) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_ANNIHILATOR) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDBlitzkriegBogabadorumu) >= Numbers.RequiredCompletionsMonsterAnnihilator) { return true; } @@ -1298,8 +1404,9 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 188: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_BLITZKRIEG_BOGABADORUMU) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_EXTERMINATOR) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDBlitzkriegBogabadorumu) >= Numbers.RequiredCompletionsMonsterExterminator) { return true; } @@ -1307,12 +1414,13 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 189: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_BLITZKRIEG_BOGABADORUMU && quest.PartySize == 1 && quest.ActualOverlayMode != null && (quest.ActualOverlayMode == "Zen" || quest.ActualOverlayMode == "Time Attack" || quest.ActualOverlayMode.Contains("Freestyle"))); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDBlitzkriegBogabadorumu && quest.PartySize == 1 && quest.ActualOverlayMode != null && (quest.ActualOverlayMode == "Zen" || quest.ActualOverlayMode == "Time Attack" || quest.ActualOverlayMode.Contains("Freestyle"))); case 190: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_BURNING_FREEZING_ELZELION_TOWER || quest.QuestID == Numbers.QUEST_ID_BURNING_FREEZING_ELZELION_HISTORIC); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDBurningFreezingElzelionTower || quest.QuestID == Numbers.QuestIDBurningFreezingElzelionHistoric); case 191: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_BURNING_FREEZING_ELZELION_TOWER || quest.QuestID == Numbers.QUEST_ID_BURNING_FREEZING_ELZELION_HISTORIC) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_SLAYER) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDBurningFreezingElzelionTower || quest.QuestID == Numbers.QuestIDBurningFreezingElzelionHistoric) >= Numbers.RequiredCompletionsMonsterSlayer) { return true; } @@ -1320,8 +1428,9 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 192: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_BURNING_FREEZING_ELZELION_TOWER || quest.QuestID == Numbers.QUEST_ID_BURNING_FREEZING_ELZELION_HISTORIC) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_ANNIHILATOR) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDBurningFreezingElzelionTower || quest.QuestID == Numbers.QuestIDBurningFreezingElzelionHistoric) >= Numbers.RequiredCompletionsMonsterAnnihilator) { return true; } @@ -1329,8 +1438,9 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } + case 193: - if (DatabaseManagerInstance.allQuests.Count(quest => quest.QuestID == Numbers.QUEST_ID_BURNING_FREEZING_ELZELION_TOWER || quest.QuestID == Numbers.QUEST_ID_BURNING_FREEZING_ELZELION_HISTORIC) >= Numbers.REQUIRED_COMPLETIONS_MONSTER_EXTERMINATOR) + if (DatabaseManagerInstance.AllQuests.Count(quest => quest.QuestID == Numbers.QuestIDBurningFreezingElzelionTower || quest.QuestID == Numbers.QuestIDBurningFreezingElzelionHistoric) >= Numbers.RequiredCompletionsMonsterExterminator) { return true; } @@ -1338,13 +1448,14 @@ private bool CheckConditionsForAchievement(int achievementID, DataLoader dataLoa { return false; } - case 194:// - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_BURNING_FREEZING_ELZELION_TOWER || quest.QuestID == Numbers.QUEST_ID_BURNING_FREEZING_ELZELION_HISTORIC && quest.PartySize == 1 && quest.ActualOverlayMode != null && (quest.ActualOverlayMode == "Zen" || quest.ActualOverlayMode == "Time Attack" || quest.ActualOverlayMode.Contains("Freestyle"))); + + case 194: + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDBurningFreezingElzelionTower || quest.QuestID == Numbers.QuestIDBurningFreezingElzelionHistoric && quest.PartySize == 1 && quest.ActualOverlayMode != null && (quest.ActualOverlayMode == "Zen" || quest.ActualOverlayMode == "Time Attack" || quest.ActualOverlayMode.Contains("Freestyle"))); case 195: // Join quests and player inventories based on RunID - var completedQuests = from quest in DatabaseManagerInstance.allQuests - join playerInventory in DatabaseManagerInstance.allPlayerInventories on quest.RunID equals playerInventory.RunID - where quest.QuestID == Numbers.QUEST_ID_THIRSTY_PARIAPURIA && + var completedQuests = from quest in DatabaseManagerInstance.AllQuests + join playerInventory in DatabaseManagerInstance.AllPlayerInventories on quest.RunID equals playerInventory.RunID + where quest.QuestID == Numbers.QuestIDThirstyPariapuria && (playerInventory.Item1ID == 4943 || playerInventory.Item2ID == 4943 || playerInventory.Item3ID == 4943 || @@ -1367,28 +1478,38 @@ join playerInventory in DatabaseManagerInstance.allPlayerInventories on quest.Ru playerInventory.Item20ID == 4943) select quest; if (completedQuests != null && completedQuests.Any()) + { return true; + } else + { return false; + } + case 196: - completedQuests = from quest in DatabaseManagerInstance.allQuests - join playerGear in DatabaseManagerInstance.allPlayerGear on quest.RunID equals playerGear.RunID - where quest.QuestID == Numbers.QUEST_ID_RULING_GUANZORUMU && playerGear.StyleID != 3 + completedQuests = from quest in DatabaseManagerInstance.AllQuests + join playerGear in DatabaseManagerInstance.AllPlayerGear on quest.RunID equals playerGear.RunID + where quest.QuestID == Numbers.QuestIDRulingGuanzorumu && playerGear.StyleID != 3 select quest; if (completedQuests != null && completedQuests.Any()) + { return true; + } else + { return false; + } + case 197: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_SHIFTING_MI_RU && quest.KeyStrokesDictionary != null && JsonConvert.DeserializeObject>(quest.KeyStrokesDictionary).Values.First() == "LShiftKey"); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDShiftingMiRu && quest.KeyStrokesDictionary != null && JsonConvert.DeserializeObject>(quest.KeyStrokesDictionary).Values.First() == "LShiftKey"); case 198: - return DatabaseManagerInstance.allQuests.Any(quest => (quest.QuestID == Numbers.QUEST_ID_BLINKING_NARGACUGA_FOREST || quest.QuestID == Numbers.QUEST_ID_BLINKING_NARGACUGA_HISTORIC) && quest.HitsTakenBlockedDictionary != null && JsonConvert.DeserializeObject>>(quest.HitsTakenBlockedDictionary).Count == 0); + return DatabaseManagerInstance.AllQuests.Any(quest => (quest.QuestID == Numbers.QuestIDBlinkingNargacugaForest || quest.QuestID == Numbers.QuestIDBlinkingNargacugaHistoric) && quest.HitsTakenBlockedDictionary != null && JsonConvert.DeserializeObject>>(quest.HitsTakenBlockedDictionary).Count == 0); case 199: - return DatabaseManagerInstance.allQuests.Any(quest => (quest.QuestID == Numbers.QUEST_ID_HOWLING_ZINOGRE_FOREST || quest.QuestID == Numbers.QUEST_ID_HOWLING_ZINOGRE_HISTORIC) && quest.PartySize == 1 && quest.PlayerStaminaDictionary != null && JsonConvert.DeserializeObject>(quest.PlayerStaminaDictionary).Values.First() <= 75); + return DatabaseManagerInstance.AllQuests.Any(quest => (quest.QuestID == Numbers.QuestIDHowlingZinogreForest || quest.QuestID == Numbers.QuestIDHowlingZinogreHistoric) && quest.PartySize == 1 && quest.PlayerStaminaDictionary != null && JsonConvert.DeserializeObject>(quest.PlayerStaminaDictionary).Values.First() <= 75); case 200: - completedQuests = from quest in DatabaseManagerInstance.allQuests - join activeSkills in DatabaseManagerInstance.allActiveSkills on quest.RunID equals activeSkills.RunID - where (quest.QuestID == Numbers.QUEST_ID_BURNING_FREEZING_ELZELION_HISTORIC || quest.QuestID == Numbers.QUEST_ID_BURNING_FREEZING_ELZELION_TOWER) && + completedQuests = from quest in DatabaseManagerInstance.AllQuests + join activeSkills in DatabaseManagerInstance.AllActiveSkills on quest.RunID equals activeSkills.RunID + where (quest.QuestID == Numbers.QuestIDBurningFreezingElzelionHistoric || quest.QuestID == Numbers.QuestIDBurningFreezingElzelionTower) && (activeSkills.ActiveSkill1ID == 473 || activeSkills.ActiveSkill1ID == 504 || activeSkills.ActiveSkill2ID == 473 || activeSkills.ActiveSkill2ID == 504 || activeSkills.ActiveSkill3ID == 473 || activeSkills.ActiveSkill3ID == 504 || @@ -1410,13 +1531,18 @@ join activeSkills in DatabaseManagerInstance.allActiveSkills on quest.RunID equa activeSkills.ActiveSkill19ID == 473 || activeSkills.ActiveSkill19ID == 504) select quest; if (completedQuests != null && completedQuests.Any()) + { return true; + } else + { return false; + } + case 201: - completedQuests = from quest in DatabaseManagerInstance.allQuests - join playerInventory in DatabaseManagerInstance.allPlayerInventories on quest.RunID equals playerInventory.RunID - where quest.QuestID == Numbers.QUEST_ID_BLITZKRIEG_BOGABADORUMU && + completedQuests = from quest in DatabaseManagerInstance.AllQuests + join playerInventory in DatabaseManagerInstance.AllPlayerInventories on quest.RunID equals playerInventory.RunID + where quest.QuestID == Numbers.QuestIDBlitzkriegBogabadorumu && (playerInventory.Item1ID == 93 || playerInventory.Item2ID == 93 || playerInventory.Item3ID == 93 || @@ -1439,428 +1565,602 @@ join playerInventory in DatabaseManagerInstance.allPlayerInventories on quest.Ru playerInventory.Item20ID == 93) select quest; if (completedQuests != null && completedQuests.Any()) + { return true; + } else + { return false; + } + case 202: - completedQuests = from quest in DatabaseManagerInstance.allQuests - join styleRankSkills in DatabaseManagerInstance.allStyleRankSkills on quest.RunID equals styleRankSkills.RunID - where quest.QuestID == Numbers.QUEST_ID_ARROGANT_DUREMUDIRA && + completedQuests = from quest in DatabaseManagerInstance.AllQuests + join styleRankSkills in DatabaseManagerInstance.AllStyleRankSkills on quest.RunID equals styleRankSkills.RunID + where quest.QuestID == Numbers.QuestIDArrogantDuremudira && (styleRankSkills.StyleRankSkill1ID == 14 || styleRankSkills.StyleRankSkill2ID == 14) select quest; if (completedQuests != null && completedQuests.Any()) + { return true; + } else + { return false; + } + case 203: // Set the target date to February 14th of the current year var targetDate = new DateTime(DateTime.UtcNow.Year, 2, 14); - if (DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_VEGGIE_ELDER_LOVE && quest.CreatedAt?.Date == targetDate.Date)) + if (DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDVeggieElderLove && quest.CreatedAt?.Date == targetDate.Date)) + { return true; + } else + { return false; + } + case 204: - completedQuests = from quest in DatabaseManagerInstance.allQuests - join playerGear in DatabaseManagerInstance.allPlayerGear on quest.RunID equals playerGear.RunID - where (quest.QuestID == Numbers.QUEST_ID_PRODUCER_GOGOMOA_HR || quest.QuestID == Numbers.QUEST_ID_PRODUCER_GOGOMOA_LR) && + completedQuests = from quest in DatabaseManagerInstance.AllQuests + join playerGear in DatabaseManagerInstance.AllPlayerGear on quest.RunID equals playerGear.RunID + where (quest.QuestID == Numbers.QuestIDProducerGogomoaHR || quest.QuestID == Numbers.QuestIDProducerGogomoaLR) && playerGear.WeaponTypeID == 9 select quest; if (completedQuests != null && completedQuests.Any()) + { return true; + } else + { return false; + } + case 205: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_FOUR_HEAVENLY_KING_MALE_1 || quest.QuestID == Numbers.QUEST_ID_FOUR_HEAVENLY_KING_MALE_2 || quest.QuestID == Numbers.QUEST_ID_FOUR_HEAVENLY_KING_FEMALE_1 || quest.QuestID == Numbers.QUEST_ID_FOUR_HEAVENLY_KING_FEMALE_2); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDFourHeavenlyKingMale1 || quest.QuestID == Numbers.QuestIDFourHeavenlyKingMale2 || quest.QuestID == Numbers.QuestIDFourHeavenlyKingFemale1 || quest.QuestID == Numbers.QuestIDFourHeavenlyKingFemale2); case 206: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_HATSUNE_MIKU); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDHatsuneMiku); case 207: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_PSO2); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDPSO2); case 208: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_MEGAMAN); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDMegaman); case 209: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_HIGANJIMA); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDHiganjima); case 210: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_HUGE_PLESIOTH); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDHugePlesioth); case 211: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_SUNGLASSES_KUTKU); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDSunglassesKutKu); case 212: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_MHFQ); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDMHFQ); case 213: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_CONGALALA_CURE); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDCongalalaCure); case 214: if (dataLoader.model.GZenny() >= 9_999_999) + { return true; + } else + { return false; + } + case 215: // TODO test if (dataLoader.model.DivaBond() >= 999) + { return true; + } else + { return false; + } + case 216:// TODO Obtain S Rank in all single-player MezFes minigames - return false; + { + return false; + } + case 217: if (dataLoader.model.CaravanPoints() >= 9_999_999) + { return true; + } else + { return false; + } + case 218: if (dataLoader.model.RoadMaxStagesMultiplayer() >= 50) + { return true; + } else + { return false; + } + case 219: if (dataLoader.model.RoadMaxStagesMultiplayer() >= 100) + { return true; + } else + { return false; + } + case 220: if (dataLoader.model.PartnerLevel() >= 999) + { return true; + } else + { return false; + } + case 221: - return DatabaseManagerInstance.allQuestAttempts.Any(questAttempts => questAttempts.Attempts >= 1_000); + return DatabaseManagerInstance.AllQuestAttempts.Any(questAttempts => questAttempts.Attempts >= 1_000); case 222: - return DatabaseManagerInstance.allPersonalBestAttempts.Any(pbAttempts => pbAttempts.Attempts >= 100); + return DatabaseManagerInstance.AllPersonalBestAttempts.Any(pbAttempts => pbAttempts.Attempts >= 100); case 223: if (dataLoader.model.SecondDistrictDuremudiraSlays() >= 100) + { return true; + } else + { return false; + } + case 224: if (dataLoader.model.RoadFatalisSlain() >= 100) + { return true; + } else + { return false; + } + case 225:// fumo - return false; + { + return false; + } + case 226: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_TWINHEAD_RAJANGS_HISTORIC); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDTwinheadRajangsHistoric); case 227: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_AKURA_VASHIMU && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 10); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4AkuraVashimu && quest.FinalTimeValue < Numbers.Frames1Minute * 10); case 228: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_ANORUPATISU && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 10); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Anorupatisu && quest.FinalTimeValue < Numbers.Frames1Minute * 10); case 229: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_BLANGONGA && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 10); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Blangonga && quest.FinalTimeValue < Numbers.Frames1Minute * 10); case 230: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_DAIMYO_HERMITAUR && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 10); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4DaimyoHermitaur && quest.FinalTimeValue < Numbers.Frames1Minute * 10); case 231: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_DORAGYUROSU && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 10); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Doragyurosu && quest.FinalTimeValue < Numbers.Frames1Minute * 10); case 232: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_ESPINAS && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 10); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Espinas && quest.FinalTimeValue < Numbers.Frames1Minute * 10); case 233: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_GASURABAZURA && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 10); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Gasurabazura && quest.FinalTimeValue < Numbers.Frames1Minute * 10); case 234: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_GIAORUGU && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 10); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Giaorugu && quest.FinalTimeValue < Numbers.Frames1Minute * 10); case 235: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_HYPNOCATRICE && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 10); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Hypnocatrice && quest.FinalTimeValue < Numbers.Frames1Minute * 10); case 236: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_HYUJIKIKI && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 10); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Hyujikiki && quest.FinalTimeValue < Numbers.Frames1Minute * 10); case 237: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_INAGAMI && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 10); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Inagami && quest.FinalTimeValue < Numbers.Frames1Minute * 10); case 238: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_KHEZU && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 10); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Khezu && quest.FinalTimeValue < Numbers.Frames1Minute * 10); case 239: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_MIDOGARON && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 10); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Midogaron && quest.FinalTimeValue < Numbers.Frames1Minute * 10); case 240: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_PLESIOTH && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 10); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Plesioth && quest.FinalTimeValue < Numbers.Frames1Minute * 10); case 241: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_RATHALOS && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 10); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Rathalos && quest.FinalTimeValue < Numbers.Frames1Minute * 10); case 242: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_RUKODIORA && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 10); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Rukodiora && quest.FinalTimeValue < Numbers.Frames1Minute * 10); case 243: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_TIGREX && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 10); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Tigrex && quest.FinalTimeValue < Numbers.Frames1Minute * 10); case 244: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_TORIDCLESS && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 10); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Toridcless && quest.FinalTimeValue < Numbers.Frames1Minute * 10); case 245: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_BARURAGARU && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 10); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Baruragaru && quest.FinalTimeValue < Numbers.Frames1Minute * 10); case 246: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_BOGABADORUMU && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 10); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Bogabadorumu && quest.FinalTimeValue < Numbers.Frames1Minute * 10); case 247: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_GRAVIOS && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 10); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Gravios && quest.FinalTimeValue < Numbers.Frames1Minute * 10); case 248: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_HARUDOMERUGU && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 10); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Harudomerugu && quest.FinalTimeValue < Numbers.Frames1Minute * 10); case 249: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_TAIKUN_ZAMUZA && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 10); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4TaikunZamuza && quest.FinalTimeValue < Numbers.Frames1Minute * 10); case 250: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_LV9999_FATALIS && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 10); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDLV9999Fatalis && quest.FinalTimeValue < Numbers.Frames1Minute * 10); case 251: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_LV9999_CRIMSON_FATALIS && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 10); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDLV9999CrimsonFatalis && quest.FinalTimeValue < Numbers.Frames1Minute * 10); case 252: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_LV9999_SHANTIEN && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 10); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDLV9999Shantien && quest.FinalTimeValue < Numbers.Frames1Minute * 10); case 253: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_LV9999_DISUFIROA && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 10); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDLV9999Disufiroa && quest.FinalTimeValue < Numbers.Frames1Minute * 10); case 254: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_AKURA_VASHIMU && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 8); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4AkuraVashimu && quest.FinalTimeValue < Numbers.Frames1Minute * 8); case 255: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_ANORUPATISU && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 8); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Anorupatisu && quest.FinalTimeValue < Numbers.Frames1Minute * 8); case 256: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_BLANGONGA && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 8); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Blangonga && quest.FinalTimeValue < Numbers.Frames1Minute * 8); case 257: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_DAIMYO_HERMITAUR && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 8); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4DaimyoHermitaur && quest.FinalTimeValue < Numbers.Frames1Minute * 8); case 258: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_DORAGYUROSU && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 8); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Doragyurosu && quest.FinalTimeValue < Numbers.Frames1Minute * 8); case 259: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_ESPINAS && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 8); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Espinas && quest.FinalTimeValue < Numbers.Frames1Minute * 8); case 260: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_GASURABAZURA && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 8); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Gasurabazura && quest.FinalTimeValue < Numbers.Frames1Minute * 8); case 261: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_GIAORUGU && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 8); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Giaorugu && quest.FinalTimeValue < Numbers.Frames1Minute * 8); case 262: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_HYPNOCATRICE && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 8); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Hypnocatrice && quest.FinalTimeValue < Numbers.Frames1Minute * 8); case 263: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_HYUJIKIKI && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 8); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Hyujikiki && quest.FinalTimeValue < Numbers.Frames1Minute * 8); case 264: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_INAGAMI && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 8); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Inagami && quest.FinalTimeValue < Numbers.Frames1Minute * 8); case 265: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_KHEZU && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 8); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Khezu && quest.FinalTimeValue < Numbers.Frames1Minute * 8); case 266: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_MIDOGARON && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 8); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Midogaron && quest.FinalTimeValue < Numbers.Frames1Minute * 8); case 267: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_PLESIOTH && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 8); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Plesioth && quest.FinalTimeValue < Numbers.Frames1Minute * 8); case 268: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_RATHALOS && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 8); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Rathalos && quest.FinalTimeValue < Numbers.Frames1Minute * 8); case 269: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_RUKODIORA && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 8); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Rukodiora && quest.FinalTimeValue < Numbers.Frames1Minute * 8); case 270: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_TIGREX && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 8); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Tigrex && quest.FinalTimeValue < Numbers.Frames1Minute * 8); case 271: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_TORIDCLESS && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 8); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Toridcless && quest.FinalTimeValue < Numbers.Frames1Minute * 8); case 272: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_BARURAGARU && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 8); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Baruragaru && quest.FinalTimeValue < Numbers.Frames1Minute * 8); case 273: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_BOGABADORUMU && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 8); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Bogabadorumu && quest.FinalTimeValue < Numbers.Frames1Minute * 8); case 274: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_GRAVIOS && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 8); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Gravios && quest.FinalTimeValue < Numbers.Frames1Minute * 8); case 275: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_HARUDOMERUGU && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 8); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Harudomerugu && quest.FinalTimeValue < Numbers.Frames1Minute * 8); case 276: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_TAIKUN_ZAMUZA && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 8); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4TaikunZamuza && quest.FinalTimeValue < Numbers.Frames1Minute * 8); case 277: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_LV9999_FATALIS && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 8); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDLV9999Fatalis && quest.FinalTimeValue < Numbers.Frames1Minute * 8); case 278: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_LV9999_CRIMSON_FATALIS && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 8); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDLV9999CrimsonFatalis && quest.FinalTimeValue < Numbers.Frames1Minute * 8); case 279: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_LV9999_SHANTIEN && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 8); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDLV9999Shantien && quest.FinalTimeValue < Numbers.Frames1Minute * 8); case 280: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_LV9999_DISUFIROA && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 8); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDLV9999Disufiroa && quest.FinalTimeValue < Numbers.Frames1Minute * 8); case 281: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_AKURA_VASHIMU && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 5); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4AkuraVashimu && quest.FinalTimeValue < Numbers.Frames1Minute * 5); case 282: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_ANORUPATISU && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 5); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Anorupatisu && quest.FinalTimeValue < Numbers.Frames1Minute * 5); case 283: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_BLANGONGA && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 5); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Blangonga && quest.FinalTimeValue < Numbers.Frames1Minute * 5); case 284: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_DAIMYO_HERMITAUR && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 5); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4DaimyoHermitaur && quest.FinalTimeValue < Numbers.Frames1Minute * 5); case 285: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_DORAGYUROSU && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 5); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Doragyurosu && quest.FinalTimeValue < Numbers.Frames1Minute * 5); case 286: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_ESPINAS && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 5); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Espinas && quest.FinalTimeValue < Numbers.Frames1Minute * 5); case 287: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_GASURABAZURA && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 5); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Gasurabazura && quest.FinalTimeValue < Numbers.Frames1Minute * 5); case 288: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_GIAORUGU && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 5); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Giaorugu && quest.FinalTimeValue < Numbers.Frames1Minute * 5); case 289: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_HYPNOCATRICE && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 5); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Hypnocatrice && quest.FinalTimeValue < Numbers.Frames1Minute * 5); case 290: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_HYUJIKIKI && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 5); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Hyujikiki && quest.FinalTimeValue < Numbers.Frames1Minute * 5); case 291: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_INAGAMI && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 5); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Inagami && quest.FinalTimeValue < Numbers.Frames1Minute * 5); case 292: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_KHEZU && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 5); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Khezu && quest.FinalTimeValue < Numbers.Frames1Minute * 5); case 293: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_MIDOGARON && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 5); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Midogaron && quest.FinalTimeValue < Numbers.Frames1Minute * 5); case 294: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_PLESIOTH && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 5); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Plesioth && quest.FinalTimeValue < Numbers.Frames1Minute * 5); case 295: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_RATHALOS && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 5); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Rathalos && quest.FinalTimeValue < Numbers.Frames1Minute * 5); case 296: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_RUKODIORA && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 5); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Rukodiora && quest.FinalTimeValue < Numbers.Frames1Minute * 5); case 297: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_TIGREX && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 5); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Tigrex && quest.FinalTimeValue < Numbers.Frames1Minute * 5); case 298: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_TORIDCLESS && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 5); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Toridcless && quest.FinalTimeValue < Numbers.Frames1Minute * 5); case 299: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_BARURAGARU && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 5); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Baruragaru && quest.FinalTimeValue < Numbers.Frames1Minute * 5); case 300: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_BOGABADORUMU && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 5); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Bogabadorumu && quest.FinalTimeValue < Numbers.Frames1Minute * 5); case 301: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_GRAVIOS && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 5); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Gravios && quest.FinalTimeValue < Numbers.Frames1Minute * 5); case 302: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_HARUDOMERUGU && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 5); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4Harudomerugu && quest.FinalTimeValue < Numbers.Frames1Minute * 5); case 303: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_Z4_TAIKUN_ZAMUZA && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 5); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDZ4TaikunZamuza && quest.FinalTimeValue < Numbers.Frames1Minute * 5); case 304: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_LV9999_FATALIS && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 5); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDLV9999Fatalis && quest.FinalTimeValue < Numbers.Frames1Minute * 5); case 305: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_LV9999_CRIMSON_FATALIS && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 5); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDLV9999CrimsonFatalis && quest.FinalTimeValue < Numbers.Frames1Minute * 5); case 306: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_LV9999_SHANTIEN && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 5); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDLV9999Shantien && quest.FinalTimeValue < Numbers.Frames1Minute * 5); case 307: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_LV9999_DISUFIROA && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 5); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDLV9999Disufiroa && quest.FinalTimeValue < Numbers.Frames1Minute * 5); case 308: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_THIRSTY_PARIAPURIA && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 3); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDThirstyPariapuria && quest.FinalTimeValue < Numbers.Frames1Minute * 3); case 309: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_SHIFTING_MI_RU && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 5); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDShiftingMiRu && quest.FinalTimeValue < Numbers.Frames1Minute * 5); case 310: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_RULING_GUANZORUMU && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 5); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDRulingGuanzorumu && quest.FinalTimeValue < Numbers.Frames1Minute * 5); case 311: - return DatabaseManagerInstance.allQuests.Any(quest => (quest.QuestID == Numbers.QUEST_ID_BLINKING_NARGACUGA_FOREST || quest.QuestID == Numbers.QUEST_ID_BLINKING_NARGACUGA_HISTORIC) && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 7); + return DatabaseManagerInstance.AllQuests.Any(quest => (quest.QuestID == Numbers.QuestIDBlinkingNargacugaForest || quest.QuestID == Numbers.QuestIDBlinkingNargacugaHistoric) && quest.FinalTimeValue < Numbers.Frames1Minute * 7); case 312: - return DatabaseManagerInstance.allQuests.Any(quest => (quest.QuestID == Numbers.QUEST_ID_HOWLING_ZINOGRE_FOREST || quest.QuestID == Numbers.QUEST_ID_HOWLING_ZINOGRE_HISTORIC) && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 7); + return DatabaseManagerInstance.AllQuests.Any(quest => (quest.QuestID == Numbers.QuestIDHowlingZinogreForest || quest.QuestID == Numbers.QuestIDHowlingZinogreHistoric) && quest.FinalTimeValue < Numbers.Frames1Minute * 7); case 313: - return DatabaseManagerInstance.allQuests.Any(quest => (quest.QuestID == Numbers.QUEST_ID_SPARKLING_ZERUREUSU || quest.QuestID == Numbers.QUEST_ID_SPARKLING_ZERUREUSU_EVENT) && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 9); + return DatabaseManagerInstance.AllQuests.Any(quest => (quest.QuestID == Numbers.QuestIDSparklingZerureusu || quest.QuestID == Numbers.QuestIDSparklingZerureusuEvent) && quest.FinalTimeValue < Numbers.Frames1Minute * 9); case 314: - return DatabaseManagerInstance.allQuests.Any(quest => (quest.QuestID == Numbers.QUEST_ID_STARVING_DEVILJHO_ARENA || quest.QuestID == Numbers.QUEST_ID_STARVING_DEVILJHO_HISTORIC) && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 9); + return DatabaseManagerInstance.AllQuests.Any(quest => (quest.QuestID == Numbers.QuestIDStarvingDeviljhoArena || quest.QuestID == Numbers.QuestIDStarvingDeviljhoHistoric) && quest.FinalTimeValue < Numbers.Frames1Minute * 9); case 315: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_ARROGANT_DUREMUDIRA && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 9); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDArrogantDuremudira && quest.FinalTimeValue < Numbers.Frames1Minute * 9); case 316: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_BLITZKRIEG_BOGABADORUMU && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 9); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDBlitzkriegBogabadorumu && quest.FinalTimeValue < Numbers.Frames1Minute * 9); case 317: - return DatabaseManagerInstance.allQuests.Any(quest => (quest.QuestID == Numbers.QUEST_ID_BURNING_FREEZING_ELZELION_HISTORIC || quest.QuestID == Numbers.QUEST_ID_BURNING_FREEZING_ELZELION_TOWER) && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 9); + return DatabaseManagerInstance.AllQuests.Any(quest => (quest.QuestID == Numbers.QuestIDBurningFreezingElzelionHistoric || quest.QuestID == Numbers.QuestIDBurningFreezingElzelionTower) && quest.FinalTimeValue < Numbers.Frames1Minute * 9); case 318: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_UPPER_SHITEN_UNKNOWN && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 9); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDUpperShitenUnknown && quest.FinalTimeValue < Numbers.Frames1Minute * 9); case 319: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_UPPER_SHITEN_DISUFIROA && quest.FinalTimeValue < Numbers.FRAMES_1_MINUTE * 9); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDUpperShitenDisufiroa && quest.FinalTimeValue < Numbers.Frames1Minute * 9); case 320: - return DatabaseManagerInstance.allBingo.Any(bingo => bingo.Difficulty == Difficulty.Easy); + return DatabaseManagerInstance.AllBingo.Any(bingo => bingo.Difficulty == Difficulty.Easy); case 321: - return DatabaseManagerInstance.allBingo.Any(bingo => bingo.Difficulty == Difficulty.Medium); + return DatabaseManagerInstance.AllBingo.Any(bingo => bingo.Difficulty == Difficulty.Medium); case 322: - return DatabaseManagerInstance.allBingo.Any(bingo => bingo.Difficulty == Difficulty.Hard); + return DatabaseManagerInstance.AllBingo.Any(bingo => bingo.Difficulty == Difficulty.Hard); case 323: - return DatabaseManagerInstance.allBingo.Any(bingo => bingo.Difficulty == Difficulty.Extreme); + return DatabaseManagerInstance.AllBingo.Any(bingo => bingo.Difficulty == Difficulty.Extreme); case 324: - if (DatabaseManagerInstance.allGachaCards.Count >= 1) + if (DatabaseManagerInstance.AllGachaCards.Count >= 1) + { return true; + } else + { return false; + } + case 325: - if (DatabaseManagerInstance.allGachaCards.Count >= 100) + if (DatabaseManagerInstance.AllGachaCards.Count >= 100) + { return true; + } else + { return false; + } + case 326: - if (DatabaseManagerInstance.allGachaCards.Count >= 1000) + if (DatabaseManagerInstance.AllGachaCards.Count >= 1000) + { return true; + } else + { return false; + } + case 327: // TODO obtain all gacha cards - return false; + { + return false; + } + case 328: - if (DatabaseManagerInstance.allZenithGauntlets.Count >= 1) + if (DatabaseManagerInstance.AllZenithGauntlets.Count >= 1) + { return true; + } else + { return false; + } + case 329: - if (DatabaseManagerInstance.allZenithGauntlets.Count >= 10) + if (DatabaseManagerInstance.AllZenithGauntlets.Count >= 10) + { return true; + } else + { return false; + } + case 330: - if (DatabaseManagerInstance.allZenithGauntlets.Count >= 25) + if (DatabaseManagerInstance.AllZenithGauntlets.Count >= 25) + { return true; + } else + { return false; + } + case 331: - if (DatabaseManagerInstance.allZenithGauntlets.Count == 0) + if (DatabaseManagerInstance.AllZenithGauntlets.Count == 0) + { return false; - return DatabaseManagerInstance.allZenithGauntlets.Any(gauntlet => + } + + return DatabaseManagerInstance.AllZenithGauntlets.Any(gauntlet => { if (TimeSpan.TryParse(gauntlet.TotalTimeElapsed, out var timeElapsed)) { return timeElapsed < TimeSpan.FromHours(4); } + return false; // Handle invalid TotalTimeElapsed values }); case 332: - if (DatabaseManagerInstance.allSolsticeGauntlets.Count >= 1) + if (DatabaseManagerInstance.AllSolsticeGauntlets.Count >= 1) + { return true; + } else + { return false; + } + case 333: - if (DatabaseManagerInstance.allSolsticeGauntlets.Count >= 10) + if (DatabaseManagerInstance.AllSolsticeGauntlets.Count >= 10) + { return true; + } else + { return false; + } + case 334: - if (DatabaseManagerInstance.allSolsticeGauntlets.Count >= 25) + if (DatabaseManagerInstance.AllSolsticeGauntlets.Count >= 25) + { return true; + } else + { return false; + } + case 335: - if (DatabaseManagerInstance.allSolsticeGauntlets.Count == 0) + if (DatabaseManagerInstance.AllSolsticeGauntlets.Count == 0) + { return false; - return DatabaseManagerInstance.allSolsticeGauntlets.Any(gauntlet => + } + + return DatabaseManagerInstance.AllSolsticeGauntlets.Any(gauntlet => { if (TimeSpan.TryParse(gauntlet.TotalTimeElapsed, out var timeElapsed)) { return timeElapsed < TimeSpan.FromHours(1); } + return false; // Handle invalid TotalTimeElapsed values }); case 336: - if (DatabaseManagerInstance.allMusouGauntlets.Count >= 1) + if (DatabaseManagerInstance.AllMusouGauntlets.Count >= 1) + { return true; + } else + { return false; + } + case 337: - if (DatabaseManagerInstance.allMusouGauntlets.Count >= 10) + if (DatabaseManagerInstance.AllMusouGauntlets.Count >= 10) + { return true; + } else + { return false; + } + case 338: - if (DatabaseManagerInstance.allMusouGauntlets.Count >= 25) + if (DatabaseManagerInstance.AllMusouGauntlets.Count >= 25) + { return true; + } else + { return false; + } + case 339: - if (DatabaseManagerInstance.allMusouGauntlets.Count == 0) + if (DatabaseManagerInstance.AllMusouGauntlets.Count == 0) + { return false; - return DatabaseManagerInstance.allMusouGauntlets.Any(gauntlet => + } + + return DatabaseManagerInstance.AllMusouGauntlets.Any(gauntlet => { if (TimeSpan.TryParse(gauntlet.TotalTimeElapsed, out var timeElapsed)) { return timeElapsed < TimeSpan.FromMinutes(100); } + return false; // Handle invalid TotalTimeElapsed values }); case 340:// TODO discord rich presence return s.EnableRichPresence; case 341: if (dataLoader.model.GetOverlayMode().Contains("Zen")) + { return true; + } else + { return false; + } + case 342: if (dataLoader.model.GetOverlayMode().Contains("Freestyle")) + { return true; + } else + { return false; + } + case 343: - if (DatabaseManagerInstance.allPlayerGear.Count(playerGear => playerGear.GuildFoodID != 0) >= 50) + if (DatabaseManagerInstance.AllPlayerGear.Count(playerGear => playerGear.GuildFoodID != 0) >= 50) + { return true; + } else + { return false; + } + case 344: - if (DatabaseManagerInstance.allPlayerGear.Count(playerGear => playerGear.DivaSkillID != 0) >= 50) + if (DatabaseManagerInstance.AllPlayerGear.Count(playerGear => playerGear.DivaSkillID != 0) >= 50) + { return true; + } else + { return false; + } + case 345:// TODO gallery - return false; + { + return false; + } + case 346: if (dataLoader.model.CalculateTotalLargeMonstersHunted() >= 1000) + { return true; + } else + { return false; + } + case 347: - if (DatabaseManagerInstance.GetTotalQuestTimeElapsed() >= Numbers.FRAMES_1_HOUR * 100) + if (DatabaseManagerInstance.GetTotalQuestTimeElapsed() >= Numbers.Frames1Hour * 100) + { return true; + } else + { return false; + } + case 348: // TODO idk if i should check by name EZlion.Mapper.WeaponBlademaster.IDName.TryGetValue(dataLoader.model.BlademasterWeaponID(), out var blademasterWeaponName); EZlion.Mapper.WeaponGunner.IDName.TryGetValue(dataLoader.model.GunnerWeaponID(), out var gunnerWeaponName); @@ -1870,48 +2170,81 @@ join playerGear in DatabaseManagerInstance.allPlayerGear on quest.RunID equals p || gunnerWeaponName != null && (gunnerWeaponName.Contains("\"Shine\"") || gunnerWeaponName.Contains("\"Clear\"") || gunnerWeaponName.Contains("\"Flash\"") || gunnerWeaponName.Contains("\"Glory\"")) ) ) + { return true; + } else + { return false; + } + case 349: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_MOSSWINE_REVENGE); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDMosswineRevenge); case 350: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_JUNGLE_PUZZLE); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDJunglePuzzle); case 351: - if (DatabaseManagerInstance.allPlayerGear.Count(playerGear => playerGear.PoogieItemID != 0) >= 100) + if (DatabaseManagerInstance.AllPlayerGear.Count(playerGear => playerGear.PoogieItemID != 0) >= 100) + { return true; + } else + { return false; + } + case 352: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_NUCLEAR_GYPCEROS); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDNuclearGypceros); case 353: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_MOSSWINE_DUEL); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDMosswineDuel); case 354: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_MOSSWINE_LAST_STAND); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDMosswineLastStand); case 355: - return DatabaseManagerInstance.allQuests.Any(quest => quest.QuestID == Numbers.QUEST_ID_HALLOWEEN_SPEEDSTER); + return DatabaseManagerInstance.AllQuests.Any(quest => quest.QuestID == Numbers.QuestIDHalloweenSpeedster); case 356:// TODO 1000 bingo points in 1 go - return false; + { + return false; + } + case 357: - if (DatabaseManagerInstance.allBingo.Count >= 1) + if (DatabaseManagerInstance.AllBingo.Count >= 1) + { return true; + } else + { return false; + } + case 358: - if (DatabaseManagerInstance.allBingo.Count >= 10) + if (DatabaseManagerInstance.AllBingo.Count >= 10) + { return true; + } else + { return false; + } + case 359: - if (DatabaseManagerInstance.allBingo.Count >= 25) + if (DatabaseManagerInstance.AllBingo.Count >= 25) + { return true; + } else + { return false; + } + case 360: - if (DatabaseManagerInstance.allBingo.Count >= 50) + if (DatabaseManagerInstance.AllBingo.Count >= 50) + { return true; + } else + { return false; + } + case 361:// TODO gacha stuff case 362: case 363: @@ -1952,7 +2285,9 @@ join playerGear in DatabaseManagerInstance.allPlayerGear on quest.RunID equals p case 398: case 399: case 400: - return false; + { + return false; + } } } @@ -1964,6 +2299,7 @@ private void UpdatePlayerAchievements(List achievementsID) foreach (var achievementID in achievementsID) { obtainedAchievements.Add(achievementID); + // Store the achievement in the SQLite PlayerAchievements table DatabaseManagerInstance.StoreAchievement(achievementID); } diff --git a/MHFZ_Overlay/Services/Manager/ApplicationManager.cs b/MHFZ_Overlay/Services/Manager/ApplicationManager.cs index ceb26143..2e7472ee 100644 --- a/MHFZ_Overlay/Services/Manager/ApplicationManager.cs +++ b/MHFZ_Overlay/Services/Manager/ApplicationManager.cs @@ -18,6 +18,7 @@ namespace MHFZ_Overlay.Services.Manager; internal sealed class ApplicationManager { private static readonly DatabaseManager databaseManager = DatabaseManager.GetInstance(); + private static readonly NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger(); /// @@ -25,7 +26,7 @@ internal sealed class ApplicationManager /// public static void HandleShutdown() { - //https://stackoverflow.com/a/9050477/18859245 + // https://stackoverflow.com/a/9050477/18859245 databaseManager.StoreSessionTime(databaseManager.DatabaseStartTime); DiscordManager.DiscordRPCCleanup(); DisposeNotifyIcon(); @@ -69,7 +70,7 @@ public static void HandleGameShutdown() { logger.Info(CultureInfo.InvariantCulture, "Closing game"); KillProcess("mhf"); - MessageBox.Show("The game was closed due to a fatal overlay error, please report this to the developer", Messages.FATAL_TITLE, MessageBoxButton.OK, MessageBoxImage.Error); + MessageBox.Show("The game was closed due to a fatal overlay error, please report this to the developer", Messages.FatalTitle, MessageBoxButton.OK, MessageBoxImage.Error); } /// diff --git a/MHFZ_Overlay/Services/Manager/DiscordManager.cs b/MHFZ_Overlay/Services/Manager/DiscordManager.cs index 8e1b7b69..10da32d0 100644 --- a/MHFZ_Overlay/Services/Manager/DiscordManager.cs +++ b/MHFZ_Overlay/Services/Manager/DiscordManager.cs @@ -23,6 +23,7 @@ public static DiscordManager GetInstance() LoggerInstance.Debug("Singleton not found, creating instance."); instance = new DiscordManager(); } + LoggerInstance.Debug("Singleton found, returning instance."); LoggerInstance.Trace(new StackTrace().ToString()); return instance; @@ -38,14 +39,14 @@ public static void InitializeDiscordRPC() return; } - if (ShowDiscordRPC && GetDiscordClientID != "") + if (ShowDiscordRPC && GetDiscordClientID != string.Empty) { SetupDiscordRPC(); - //Set Presence + // Set Presence presenceTemplate.Timestamps = Timestamps.Now; - if (GetHunterName != "" && GetGuildName != "" && GetServerName != "") + if (GetHunterName != string.Empty && GetGuildName != string.Empty && GetServerName != string.Empty) { presenceTemplate.Assets = new Assets() { @@ -56,7 +57,7 @@ public static void InitializeDiscordRPC() }; } - //should work fine + // should work fine presenceTemplate.Buttons = new Button[] { }; presenceTemplate.Buttons = new Button[] { @@ -68,7 +69,7 @@ public static void InitializeDiscordRPC() Url = "https://lachee.dev/", } }; - if (GetDiscordServerInvite != "") + if (GetDiscordServerInvite != string.Empty) { presenceTemplate.Buttons = new Button[] { }; presenceTemplate.Buttons = new Button[] @@ -93,7 +94,7 @@ public static void InitializeDiscordRPC() } } - //Dispose client + // Dispose client /// /// Cleanups the Discord RPC instance. /// @@ -129,20 +130,20 @@ public void UpdateDiscordRPC(DataLoader dataLoader) } // TODO also need to handle the other fields lengths - if (string.Format(CultureInfo.InvariantCulture, "{0}{1}{2}{3}{4}{5}", GetPartySize(dataLoader), GetQuestState(dataLoader), GetCaravanScore(dataLoader), dataLoader.model.GetOverlayModeForRPC(), dataLoader.model.GetAreaName(dataLoader.model.AreaID()), GetGameMode(dataLoader.isHighGradeEdition)).Length >= 95) + if (string.Format(CultureInfo.InvariantCulture, "{0}{1}{2}{3}{4}{5}", this.GetPartySize(dataLoader), GetQuestState(dataLoader), this.GetCaravanScore(dataLoader), dataLoader.model.GetOverlayModeForRPC(), dataLoader.model.GetAreaName(dataLoader.model.AreaID()), GetGameMode(dataLoader.isHighGradeEdition)).Length >= 95) { presenceTemplate.Details = string.Format(CultureInfo.InvariantCulture, "{0}{1}{2}", GetQuestState(dataLoader), dataLoader.model.GetOverlayModeForRPC(), dataLoader.model.GetAreaName(dataLoader.model.AreaID())); } else { - presenceTemplate.Details = string.Format(CultureInfo.InvariantCulture, "{0}{1}{2}{3}{4}{5}", GetPartySize(dataLoader), GetQuestState(dataLoader), GetCaravanScore(dataLoader), dataLoader.model.GetOverlayModeForRPC(), dataLoader.model.GetAreaName(dataLoader.model.AreaID()), GetGameMode(dataLoader.isHighGradeEdition)); + presenceTemplate.Details = string.Format(CultureInfo.InvariantCulture, "{0}{1}{2}{3}{4}{5}", this.GetPartySize(dataLoader), GetQuestState(dataLoader), this.GetCaravanScore(dataLoader), dataLoader.model.GetOverlayModeForRPC(), dataLoader.model.GetAreaName(dataLoader.model.AreaID()), GetGameMode(dataLoader.isHighGradeEdition)); } var stateString = string.Empty; var largeImageTextString = string.Empty; var smallImageTextString = string.Empty; - //Info + // Info if (dataLoader.model.QuestID() != 0 && dataLoader.model.TimeDefInt() != dataLoader.model.TimeInt() && int.Parse(dataLoader.model.ATK, CultureInfo.InvariantCulture) > 0 || (dataLoader.model.QuestID() == 21731 || dataLoader.model.QuestID() == 21746 || dataLoader.model.QuestID() == 21749 || dataLoader.model.QuestID() == 21750 || dataLoader.model.QuestID() == 23648 || dataLoader.model.QuestID() == 23649 || dataLoader.model.QuestID() == 21748 || dataLoader.model.QuestID() == 21747 || dataLoader.model.QuestID() == 21734) && int.Parse(dataLoader.model.ATK, CultureInfo.InvariantCulture) > 0) { switch (dataLoader.model.QuestID()) @@ -151,21 +152,21 @@ public void UpdateDiscordRPC(DataLoader dataLoader) stateString = string.Format(CultureInfo.InvariantCulture, "Multiplayer Floor: {0} ({1}/{2} Max/Total) | RP: {3} | White Fatalis: {4}/{5} (Slain/Encounters)", dataLoader.model.RoadFloor() + 1, dataLoader.model.RoadMaxStagesMultiplayer(), dataLoader.model.RoadTotalStagesMultiplayer(), dataLoader.model.RoadPoints(), dataLoader.model.RoadFatalisSlain(), dataLoader.model.RoadFatalisEncounters()); presenceTemplate.State = stateString.Length <= MAX_DISCORD_RPC_STRING_LENGTH ? stateString : stateString.Substring(0, MAX_DISCORD_RPC_STRING_LENGTH - 3) + "..."; break; - case 23628://solo road + case 23628:// solo road stateString = string.Format(CultureInfo.InvariantCulture, "Solo Floor: {0} ({1}/{2} Max/Total) | RP: {3} | White Fatalis: {4}/{5} (Slain/Encounters)", dataLoader.model.RoadFloor() + 1, dataLoader.model.RoadMaxStagesSolo(), dataLoader.model.RoadTotalStagesSolo(), dataLoader.model.RoadPoints(), dataLoader.model.RoadFatalisSlain(), dataLoader.model.RoadFatalisEncounters()); presenceTemplate.State = stateString.Length <= MAX_DISCORD_RPC_STRING_LENGTH ? stateString : stateString.Substring(0, MAX_DISCORD_RPC_STRING_LENGTH - 3) + "..."; break; - case 21731://1st district dure - case 21749://sky corridor version - stateString = string.Format(CultureInfo.InvariantCulture, "{0}{1}{2}{3}{4}{5} | Slain: {6} | Encounters: {7}", dataLoader.model.GetQuestNameFromID(dataLoader.model.QuestID()), dataLoader.model.GetObjectiveNameFromID(dataLoader.model.ObjectiveType()), "", dataLoader.model.GetObjective1Quantity(), dataLoader.model.GetRankNameFromID(dataLoader.model.RankBand()), dataLoader.model.GetRealMonsterName(dataLoader.model.CurrentMonster1Icon), dataLoader.model.FirstDistrictDuremudiraSlays(), dataLoader.model.FirstDistrictDuremudiraEncounters()); + case 21731:// 1st district dure + case 21749:// sky corridor version + stateString = string.Format(CultureInfo.InvariantCulture, "{0}{1}{2}{3}{4}{5} | Slain: {6} | Encounters: {7}", dataLoader.model.GetQuestNameFromID(dataLoader.model.QuestID()), dataLoader.model.GetObjectiveNameFromID(dataLoader.model.ObjectiveType()), string.Empty, dataLoader.model.GetObjective1Quantity(), dataLoader.model.GetRankNameFromID(dataLoader.model.RankBand()), dataLoader.model.GetRealMonsterName(dataLoader.model.CurrentMonster1Icon), dataLoader.model.FirstDistrictDuremudiraSlays(), dataLoader.model.FirstDistrictDuremudiraEncounters()); presenceTemplate.State = stateString.Length <= MAX_DISCORD_RPC_STRING_LENGTH ? stateString : stateString.Substring(0, MAX_DISCORD_RPC_STRING_LENGTH - 3) + "..."; break; - case 21746://2nd district dure - case 21750://sky corridor version - stateString = string.Format(CultureInfo.InvariantCulture, "{0}{1}{2}{3}{4}{5} | Slain: {6} | Encounters: {7}", dataLoader.model.GetQuestNameFromID(dataLoader.model.QuestID()), dataLoader.model.GetObjectiveNameFromID(dataLoader.model.ObjectiveType()), "", dataLoader.model.GetObjective1Quantity(), dataLoader.model.GetRankNameFromID(dataLoader.model.RankBand()), dataLoader.model.GetRealMonsterName(dataLoader.model.CurrentMonster1Icon), dataLoader.model.SecondDistrictDuremudiraSlays(), dataLoader.model.SecondDistrictDuremudiraEncounters()); + case 21746:// 2nd district dure + case 21750:// sky corridor version + stateString = string.Format(CultureInfo.InvariantCulture, "{0}{1}{2}{3}{4}{5} | Slain: {6} | Encounters: {7}", dataLoader.model.GetQuestNameFromID(dataLoader.model.QuestID()), dataLoader.model.GetObjectiveNameFromID(dataLoader.model.ObjectiveType()), string.Empty, dataLoader.model.GetObjective1Quantity(), dataLoader.model.GetRankNameFromID(dataLoader.model.RankBand()), dataLoader.model.GetRealMonsterName(dataLoader.model.CurrentMonster1Icon), dataLoader.model.SecondDistrictDuremudiraSlays(), dataLoader.model.SecondDistrictDuremudiraEncounters()); presenceTemplate.State = stateString.Length <= MAX_DISCORD_RPC_STRING_LENGTH ? stateString : stateString.Substring(0, MAX_DISCORD_RPC_STRING_LENGTH - 3) + "..."; break; - case 62105://raviente quests + case 62105:// raviente quests case 62108: case 62101: case 62104: @@ -183,14 +184,14 @@ public void UpdateDiscordRPC(DataLoader dataLoader) case 54759: case 54760: case 54761: - case 55596://extreme + case 55596:// extreme case 55602: case 55603: case 55604: case 55605: case 55606: case 55607: - stateString = string.Format(CultureInfo.InvariantCulture, "{0}{1}{2}{3}{4}{5}{6} | True Raw: {7} (Max {8}) | Hits: {9}", dataLoader.model.GetQuestNameFromID(dataLoader.model.QuestID()), dataLoader.model.GetObjectiveNameFromID(dataLoader.model.ObjectiveType()), "", dataLoader.model.GetObjective1Quantity(), dataLoader.model.GetRankNameFromID(dataLoader.model.RankBand()), dataLoader.model.GetStarGrade(), dataLoader.model.GetRealMonsterName(dataLoader.model.CurrentMonster1Icon), dataLoader.model.ATK, dataLoader.model.HighestAtk, dataLoader.model.HitCountInt()); + stateString = string.Format(CultureInfo.InvariantCulture, "{0}{1}{2}{3}{4}{5}{6} | True Raw: {7} (Max {8}) | Hits: {9}", dataLoader.model.GetQuestNameFromID(dataLoader.model.QuestID()), dataLoader.model.GetObjectiveNameFromID(dataLoader.model.ObjectiveType()), string.Empty, dataLoader.model.GetObjective1Quantity(), dataLoader.model.GetRankNameFromID(dataLoader.model.RankBand()), dataLoader.model.GetStarGrade(), dataLoader.model.GetRealMonsterName(dataLoader.model.CurrentMonster1Icon), dataLoader.model.ATK, dataLoader.model.HighestAtk, dataLoader.model.HitCountInt()); presenceTemplate.State = stateString.Length <= MAX_DISCORD_RPC_STRING_LENGTH ? stateString : stateString.Substring(0, MAX_DISCORD_RPC_STRING_LENGTH - 3) + "..."; break; @@ -202,58 +203,64 @@ public void UpdateDiscordRPC(DataLoader dataLoader) } else { - stateString = string.Format(CultureInfo.InvariantCulture, "{0}{1}{2}{3}{4}{5}{6} | True Raw: {7} (Max {8}) | Hits: {9}", dataLoader.model.GetQuestNameFromID(dataLoader.model.QuestID()), dataLoader.model.GetObjectiveNameFromID(dataLoader.model.ObjectiveType()), "", dataLoader.model.GetObjective1Quantity(), dataLoader.model.GetRankNameFromID(dataLoader.model.RankBand()), dataLoader.model.GetStarGrade(), dataLoader.model.GetRealMonsterName(dataLoader.model.CurrentMonster1Icon), dataLoader.model.ATK, dataLoader.model.HighestAtk, dataLoader.model.HitCountInt()); + stateString = string.Format(CultureInfo.InvariantCulture, "{0}{1}{2}{3}{4}{5}{6} | True Raw: {7} (Max {8}) | Hits: {9}", dataLoader.model.GetQuestNameFromID(dataLoader.model.QuestID()), dataLoader.model.GetObjectiveNameFromID(dataLoader.model.ObjectiveType()), string.Empty, dataLoader.model.GetObjective1Quantity(), dataLoader.model.GetRankNameFromID(dataLoader.model.RankBand()), dataLoader.model.GetStarGrade(), dataLoader.model.GetRealMonsterName(dataLoader.model.CurrentMonster1Icon), dataLoader.model.ATK, dataLoader.model.HighestAtk, dataLoader.model.HitCountInt()); presenceTemplate.State = stateString.Length <= MAX_DISCORD_RPC_STRING_LENGTH ? stateString : stateString.Substring(0, MAX_DISCORD_RPC_STRING_LENGTH - 3) + "..."; } + break; } - //Gathering/etc + // Gathering/etc if ((dataLoader.model.ObjectiveType() == 0x0 || dataLoader.model.ObjectiveType() == 0x02 || dataLoader.model.ObjectiveType() == 0x1002) && dataLoader.model.QuestID() != 23527 && dataLoader.model.QuestID() != 23628 && dataLoader.model.QuestID() != 21731 && dataLoader.model.QuestID() != 21749 && dataLoader.model.QuestID() != 21746 && dataLoader.model.QuestID() != 21750) { - largeImageTextString = string.Format(CultureInfo.InvariantCulture, "{0}{1}", GetQuestInformation(dataLoader), dataLoader.model.GetAreaName(dataLoader.model.AreaID())); + largeImageTextString = string.Format(CultureInfo.InvariantCulture, "{0}{1}", this.GetQuestInformation(dataLoader), dataLoader.model.GetAreaName(dataLoader.model.AreaID())); presenceTemplate.Assets.LargeImageKey = dataLoader.model.GetAreaIconFromID(dataLoader.model.AreaID()); presenceTemplate.Assets.LargeImageText = largeImageTextString.Length <= MAX_DISCORD_RPC_STRING_LENGTH ? largeImageTextString : largeImageTextString.Substring(0, MAX_DISCORD_RPC_STRING_LENGTH - 3) + "..."; } - //Tenrou Sky Corridor areas + + // Tenrou Sky Corridor areas else if (dataLoader.model.AreaID() == 391 || dataLoader.model.AreaID() == 392 || dataLoader.model.AreaID() == 394 || dataLoader.model.AreaID() == 415 || dataLoader.model.AreaID() == 416) { - largeImageTextString = string.Format(CultureInfo.InvariantCulture, "{0}{1}", GetQuestInformation(dataLoader), dataLoader.model.GetAreaName(dataLoader.model.AreaID())); + largeImageTextString = string.Format(CultureInfo.InvariantCulture, "{0}{1}", this.GetQuestInformation(dataLoader), dataLoader.model.GetAreaName(dataLoader.model.AreaID())); presenceTemplate.Assets.LargeImageKey = dataLoader.model.GetAreaIconFromID(dataLoader.model.AreaID()); presenceTemplate.Assets.LargeImageText = largeImageTextString.Length <= MAX_DISCORD_RPC_STRING_LENGTH ? largeImageTextString : largeImageTextString.Substring(0, MAX_DISCORD_RPC_STRING_LENGTH - 3) + "..."; } - //Duremudira Doors + + // Duremudira Doors else if (dataLoader.model.AreaID() == 399 || dataLoader.model.AreaID() == 414) { presenceTemplate.Assets.LargeImageKey = dataLoader.model.GetAreaIconFromID(dataLoader.model.AreaID()); - largeImageTextString = string.Format(CultureInfo.InvariantCulture, "{0}{1}", GetQuestInformation(dataLoader), dataLoader.model.GetAreaName(dataLoader.model.AreaID())); + largeImageTextString = string.Format(CultureInfo.InvariantCulture, "{0}{1}", this.GetQuestInformation(dataLoader), dataLoader.model.GetAreaName(dataLoader.model.AreaID())); presenceTemplate.Assets.LargeImageText = largeImageTextString.Length <= MAX_DISCORD_RPC_STRING_LENGTH ? largeImageTextString : largeImageTextString.Substring(0, MAX_DISCORD_RPC_STRING_LENGTH - 3) + "..."; } - //Duremudira Arena + + // Duremudira Arena else if (dataLoader.model.AreaID() == 398) { presenceTemplate.Assets.LargeImageKey = dataLoader.model.getMonsterIcon(dataLoader.model.LargeMonster1ID()); - largeImageTextString = string.Format(CultureInfo.InvariantCulture, "{0}{1}/{2}{3}", GetQuestInformation(dataLoader), dataLoader.model.GetMonster1EHP(), dataLoader.model.GetMonster1MaxEHP(), dataLoader.model.GetMonster1EHPPercent()); + largeImageTextString = string.Format(CultureInfo.InvariantCulture, "{0}{1}/{2}{3}", this.GetQuestInformation(dataLoader), dataLoader.model.GetMonster1EHP(), dataLoader.model.GetMonster1MaxEHP(), dataLoader.model.GetMonster1EHPPercent()); presenceTemplate.Assets.LargeImageText = largeImageTextString.Length <= MAX_DISCORD_RPC_STRING_LENGTH ? largeImageTextString : largeImageTextString.Substring(0, MAX_DISCORD_RPC_STRING_LENGTH - 3) + "..."; } - //Hunter's Road Base Camp + + // Hunter's Road Base Camp else if (dataLoader.model.AreaID() == 459) { presenceTemplate.Assets.LargeImageKey = dataLoader.model.GetAreaIconFromID(dataLoader.model.AreaID()); - largeImageTextString = string.Format(CultureInfo.InvariantCulture, "{0}{1} | Faints: {2}/{3}", GetQuestInformation(dataLoader), dataLoader.model.GetAreaName(dataLoader.model.AreaID()), dataLoader.model.CurrentFaints(), dataLoader.model.GetMaxFaints()); + largeImageTextString = string.Format(CultureInfo.InvariantCulture, "{0}{1} | Faints: {2}/{3}", this.GetQuestInformation(dataLoader), dataLoader.model.GetAreaName(dataLoader.model.AreaID()), dataLoader.model.CurrentFaints(), dataLoader.model.GetMaxFaints()); presenceTemplate.Assets.LargeImageText = largeImageTextString.Length <= MAX_DISCORD_RPC_STRING_LENGTH ? largeImageTextString : largeImageTextString.Substring(0, MAX_DISCORD_RPC_STRING_LENGTH - 3) + "..."; } - //Raviente + + // Raviente else if (dataLoader.model.AreaID() == 309 || dataLoader.model.AreaID() >= 311 && dataLoader.model.AreaID() <= 321 || dataLoader.model.AreaID() >= 417 && dataLoader.model.AreaID() <= 422 || dataLoader.model.AreaID() == 437 || dataLoader.model.AreaID() >= 440 && dataLoader.model.AreaID() <= 444) { presenceTemplate.Assets.LargeImageKey = dataLoader.model.getMonsterIcon(dataLoader.model.LargeMonster1ID()); - largeImageTextString = string.Format(CultureInfo.InvariantCulture, "{0}{1}/{2}{3} | Faints: {4}/{5} | Points: {6} | {7}", GetQuestInformation(dataLoader), dataLoader.model.GetMonster1EHP(), dataLoader.model.GetMonster1MaxEHP(), dataLoader.model.GetMonster1EHPPercent(), dataLoader.model.CurrentFaints(), dataLoader.model.GetMaxFaints(), dataLoader.model.GreatSlayingPoints(), GetRavienteEvent(dataLoader.model.RavienteTriggeredEvent(), dataLoader)); + largeImageTextString = string.Format(CultureInfo.InvariantCulture, "{0}{1}/{2}{3} | Faints: {4}/{5} | Points: {6} | {7}", this.GetQuestInformation(dataLoader), dataLoader.model.GetMonster1EHP(), dataLoader.model.GetMonster1MaxEHP(), dataLoader.model.GetMonster1EHPPercent(), dataLoader.model.CurrentFaints(), dataLoader.model.GetMaxFaints(), dataLoader.model.GreatSlayingPoints(), GetRavienteEvent(dataLoader.model.RavienteTriggeredEvent(), dataLoader)); presenceTemplate.Assets.LargeImageText = largeImageTextString.Length <= MAX_DISCORD_RPC_STRING_LENGTH ? largeImageTextString : largeImageTextString.Substring(0, MAX_DISCORD_RPC_STRING_LENGTH - 3) + "..."; } else { presenceTemplate.Assets.LargeImageKey = dataLoader.model.getMonsterIcon(dataLoader.model.LargeMonster1ID()); - largeImageTextString = string.Format(CultureInfo.InvariantCulture, "{0}{1}/{2}{3} | Faints: {4}/{5}", GetQuestInformation(dataLoader), dataLoader.model.GetMonster1EHP(), dataLoader.model.GetMonster1MaxEHP(), dataLoader.model.GetMonster1EHPPercent(), dataLoader.model.CurrentFaints(), dataLoader.model.GetMaxFaints()); + largeImageTextString = string.Format(CultureInfo.InvariantCulture, "{0}{1}/{2}{3} | Faints: {4}/{5}", this.GetQuestInformation(dataLoader), dataLoader.model.GetMonster1EHP(), dataLoader.model.GetMonster1MaxEHP(), dataLoader.model.GetMonster1EHPPercent(), dataLoader.model.CurrentFaints(), dataLoader.model.GetMaxFaints()); presenceTemplate.Assets.LargeImageText = largeImageTextString.Length <= MAX_DISCORD_RPC_STRING_LENGTH ? largeImageTextString : largeImageTextString.Substring(0, MAX_DISCORD_RPC_STRING_LENGTH - 3) + "..."; } } @@ -262,46 +269,46 @@ public void UpdateDiscordRPC(DataLoader dataLoader) switch (dataLoader.model.AreaID()) { - case 0: //Loading + case 0: // Loading presenceTemplate.State = "Loading..."; break; - case 87: //Kokoto Village - case 131: //Dundorma areas + case 87: // Kokoto Village + case 131: // Dundorma areas case 132: case 133: case 134: case 135: case 136: - case 200: //Mezeporta - case 201://Hairdresser - case 206://Old Town Areas + case 200: // Mezeporta + case 201:// Hairdresser + case 206:// Old Town Areas case 207: - case 210://Private Bar - case 211://Rasta Bar - case 244://Code Claiming Room - case 282://Cities Map - case 340://SR Rooms + case 210:// Private Bar + case 211:// Rasta Bar + case 244:// Code Claiming Room + case 282:// Cities Map + case 340:// SR Rooms case 341: - case 397://Mezeporta Dupe(non-HD) + case 397:// Mezeporta Dupe(non-HD) stateString = string.Format(CultureInfo.InvariantCulture, "GR: {0} | GCP: {1} | Guild Food: {2} | Diva Skill: {3} ({4} Left) | Poogie Item: {5}", dataLoader.model.GRankNumber(), dataLoader.model.GCP(), dataLoader.model.GetArmorSkillWithNull(dataLoader.model.GuildFoodSkill()), dataLoader.model.GetDivaSkillNameFromID(dataLoader.model.DivaSkill()), dataLoader.model.DivaSkillUsesLeft(), dataLoader.model.GetItemName(dataLoader.model.PoogieItemUseID())); presenceTemplate.State = stateString.Length <= MAX_DISCORD_RPC_STRING_LENGTH ? stateString : stateString.Substring(0, MAX_DISCORD_RPC_STRING_LENGTH - 3) + "..."; break; case 173:// My House (original) - case 175://My House (MAX) + case 175:// My House (MAX) stateString = string.Format(CultureInfo.InvariantCulture, "GR: {0} | Partner Lv: {1} | Armor Color: {2} | GCP: {3}", dataLoader.model.GRankNumber(), dataLoader.model.PartnerLevel(), dataLoader.model.GetArmorColor(), dataLoader.model.GCP()); presenceTemplate.State = stateString.Length <= MAX_DISCORD_RPC_STRING_LENGTH ? stateString : stateString.Substring(0, MAX_DISCORD_RPC_STRING_LENGTH - 3) + "..."; break; - case 202://Guild Halls + case 202:// Guild Halls case 203: case 204: stateString = string.Format(CultureInfo.InvariantCulture, "GR: {0} | GCP: {1} | Guild Food: {2} | Poogie Item: {3}", dataLoader.model.GRankNumber(), dataLoader.model.GCP(), dataLoader.model.GetArmorSkill(dataLoader.model.GuildFoodSkill()), dataLoader.model.GetItemName(dataLoader.model.PoogieItemUseID())); presenceTemplate.State = stateString.Length <= MAX_DISCORD_RPC_STRING_LENGTH ? stateString : stateString.Substring(0, MAX_DISCORD_RPC_STRING_LENGTH - 3) + "..."; break; - case 205://Pugi Farm + case 205:// Pugi Farm stateString = string.Format(CultureInfo.InvariantCulture, "GR: {0} | Poogie Points: {1} | Poogie Clothes: {2} | Poogie Item: {3}", dataLoader.model.GRankNumber(), dataLoader.model.PoogiePoints(), dataLoader.model.GetPoogieClothes(dataLoader.model.PoogieCostume()), dataLoader.model.GetItemName(dataLoader.model.PoogieItemUseID())); presenceTemplate.State = stateString.Length <= MAX_DISCORD_RPC_STRING_LENGTH ? stateString : stateString.Substring(0, MAX_DISCORD_RPC_STRING_LENGTH - 3) + "..."; break; - case 256://Caravan Areas + case 256:// Caravan Areas case 260: case 261: case 262: @@ -309,58 +316,58 @@ public void UpdateDiscordRPC(DataLoader dataLoader) stateString = string.Format(CultureInfo.InvariantCulture, "CP: {0} | Gg: {1} | g: {2} | Gem Lv: {3} | Great Slaying Points: {4}", dataLoader.model.CaravanPoints(), dataLoader.model.RaviGg(), dataLoader.model.Ravig(), dataLoader.model.CaravenGemLevel() + 1, dataLoader.model.GreatSlayingPointsSaved()); presenceTemplate.State = stateString.Length <= MAX_DISCORD_RPC_STRING_LENGTH ? stateString : stateString.Substring(0, MAX_DISCORD_RPC_STRING_LENGTH - 3) + "..."; break; - case 257://Blacksmith + case 257:// Blacksmith stateString = string.Format(CultureInfo.InvariantCulture, "GR: {0} | GCP: {1} | Guild Food: {2} | GZenny: {3}", dataLoader.model.GRankNumber(), dataLoader.model.GCP(), dataLoader.model.GetArmorSkill(dataLoader.model.GuildFoodSkill()), dataLoader.model.GZenny()); presenceTemplate.State = stateString.Length <= MAX_DISCORD_RPC_STRING_LENGTH ? stateString : stateString.Substring(0, MAX_DISCORD_RPC_STRING_LENGTH - 3) + "..."; break; - case 264://Gallery + case 264:// Gallery stateString = string.Format(CultureInfo.InvariantCulture, "GR: {0} | GCP: {1} | Guild Food: {2} | Score: {3}", dataLoader.model.GRankNumber(), dataLoader.model.GCP(), dataLoader.model.GetArmorSkill(dataLoader.model.GuildFoodSkill()), dataLoader.model.GalleryEvaluationScore()); presenceTemplate.State = stateString.Length <= MAX_DISCORD_RPC_STRING_LENGTH ? stateString : stateString.Substring(0, MAX_DISCORD_RPC_STRING_LENGTH - 3) + "..."; break; - case 265://Guuku Farm + case 265:// Guuku Farm stateString = string.Format(CultureInfo.InvariantCulture, "GR: {0} | GCP: {1} | Guild Food: {2} | Poogie Item: {3}", dataLoader.model.GRankNumber(), dataLoader.model.GCP(), dataLoader.model.GetArmorSkill(dataLoader.model.GuildFoodSkill()), dataLoader.model.GetItemName(dataLoader.model.PoogieItemUseID())); presenceTemplate.State = stateString.Length <= MAX_DISCORD_RPC_STRING_LENGTH ? stateString : stateString.Substring(0, MAX_DISCORD_RPC_STRING_LENGTH - 3) + "..."; break; - case 283://Halk Area TODO partnya lv + case 283:// Halk Area TODO partnya lv stateString = string.Format(CultureInfo.InvariantCulture, "GR: {0} | GCP: {1} | PNRP: {2} | Halk Fullness: {3}", dataLoader.model.GRankNumber(), dataLoader.model.GCP(), dataLoader.model.PartnyaRankPoints(), dataLoader.model.HalkFullness()); presenceTemplate.State = stateString.Length <= MAX_DISCORD_RPC_STRING_LENGTH ? stateString : stateString.Substring(0, MAX_DISCORD_RPC_STRING_LENGTH - 3) + "..."; break; - case 286://PvP Room + case 286:// PvP Room stateString = string.Format(CultureInfo.InvariantCulture, "GR: {0} | GCP: {1} | Guild Food: {2} | Poogie Item: {3}", dataLoader.model.GRankNumber(), dataLoader.model.GCP(), dataLoader.model.GetArmorSkill(dataLoader.model.GuildFoodSkill()), dataLoader.model.GetItemName(dataLoader.model.PoogieItemUseID())); presenceTemplate.State = stateString.Length <= MAX_DISCORD_RPC_STRING_LENGTH ? stateString : stateString.Substring(0, MAX_DISCORD_RPC_STRING_LENGTH - 3) + "..."; break; - case 379://Diva Hall - case 445://Guild Hall (Diva Event) + case 379:// Diva Hall + case 445:// Guild Hall (Diva Event) stateString = string.Format(CultureInfo.InvariantCulture, "GR: {0} | Diva Skill: {1} ({2} Left) | Diva Bond: {3} | Items Given: {4}", dataLoader.model.GRankNumber(), dataLoader.model.GetDivaSkillNameFromID(dataLoader.model.DivaSkill()), dataLoader.model.DivaSkillUsesLeft(), dataLoader.model.DivaBond(), dataLoader.model.DivaItemsGiven()); presenceTemplate.State = stateString.Length <= MAX_DISCORD_RPC_STRING_LENGTH ? stateString : stateString.Substring(0, MAX_DISCORD_RPC_STRING_LENGTH - 3) + "..."; break; - case 462://MezFez Entrance - case 463: //Volpkun Together - case 465://MezFez Minigame + case 462:// MezFez Entrance + case 463: // Volpkun Together + case 465:// MezFez Minigame stateString = string.Format(CultureInfo.InvariantCulture, "GR: {0} | MezFes Points: {1} | Guild Food: {2} | Poogie Item: {3}", dataLoader.model.GRankNumber(), dataLoader.model.MezeportaFestivalPoints(), dataLoader.model.GetArmorSkill(dataLoader.model.GuildFoodSkill()), dataLoader.model.GetItemName(dataLoader.model.PoogieItemUseID())); presenceTemplate.State = stateString.Length <= MAX_DISCORD_RPC_STRING_LENGTH ? stateString : stateString.Substring(0, MAX_DISCORD_RPC_STRING_LENGTH - 3) + "..."; break; - case 464://Uruki Pachinko + case 464:// Uruki Pachinko stateString = string.Format(CultureInfo.InvariantCulture, "Score: {0} | Chain: {1} | Fish: {2} | Mushroom: {3} | Seed: {4} | Meat: {5}", dataLoader.model.UrukiPachinkoScore() + dataLoader.model.UrukiPachinkoBonusScore(), dataLoader.model.UrukiPachinkoChain(), dataLoader.model.UrukiPachinkoFish(), dataLoader.model.UrukiPachinkoMushroom(), dataLoader.model.UrukiPachinkoSeed(), dataLoader.model.UrukiPachinkoMeat()); presenceTemplate.State = stateString.Length <= MAX_DISCORD_RPC_STRING_LENGTH ? stateString : stateString.Substring(0, MAX_DISCORD_RPC_STRING_LENGTH - 3) + "..."; break; - case 466://Guuku Scoop + case 466:// Guuku Scoop stateString = string.Format(CultureInfo.InvariantCulture, "Score: {0} | Small Guuku: {1} | Medium Guuku: {2} | Large Guuku: {3} | Golden Guuku: {4}", dataLoader.model.GuukuScoopScore(), dataLoader.model.GuukuScoopSmall(), dataLoader.model.GuukuScoopMedium(), dataLoader.model.GuukuScoopLarge(), dataLoader.model.GuukuScoopGolden()); presenceTemplate.State = stateString.Length <= MAX_DISCORD_RPC_STRING_LENGTH ? stateString : stateString.Substring(0, MAX_DISCORD_RPC_STRING_LENGTH - 3) + "..."; break; - case 467://Nyanrendo + case 467:// Nyanrendo stateString = string.Format(CultureInfo.InvariantCulture, "Score: {0}", dataLoader.model.NyanrendoScore()); presenceTemplate.State = stateString.Length <= MAX_DISCORD_RPC_STRING_LENGTH ? stateString : stateString.Substring(0, MAX_DISCORD_RPC_STRING_LENGTH - 3) + "..."; break; - case 468://Panic Honey + case 468:// Panic Honey stateString = string.Format(CultureInfo.InvariantCulture, "Honey: {0}", dataLoader.model.PanicHoneyScore()); presenceTemplate.State = stateString.Length <= MAX_DISCORD_RPC_STRING_LENGTH ? stateString : stateString.Substring(0, MAX_DISCORD_RPC_STRING_LENGTH - 3) + "..."; break; - case 469://Dokkan Battle Cats + case 469:// Dokkan Battle Cats stateString = string.Format(CultureInfo.InvariantCulture, "Score: {0} | Scale: {1} | Shell: {2} | Camp: {3}", dataLoader.model.DokkanBattleCatsScore(), dataLoader.model.DokkanBattleCatsScale(), dataLoader.model.DokkanBattleCatsShell(), dataLoader.model.DokkanBattleCatsCamp()); presenceTemplate.State = stateString.Length <= MAX_DISCORD_RPC_STRING_LENGTH ? stateString : stateString.Substring(0, MAX_DISCORD_RPC_STRING_LENGTH - 3) + "..."; break; - default: //same as Mezeporta + default: // same as Mezeporta stateString = string.Format(CultureInfo.InvariantCulture, "GR: {0} | GCP: {1} | Guild Food: {2} | Poogie Item: {3}", dataLoader.model.GRankNumber(), dataLoader.model.GCP(), dataLoader.model.GetArmorSkill(dataLoader.model.GuildFoodSkill()), dataLoader.model.GetItemName(dataLoader.model.PoogieItemUseID())); presenceTemplate.State = stateString.Length <= MAX_DISCORD_RPC_STRING_LENGTH ? stateString : stateString.Substring(0, MAX_DISCORD_RPC_STRING_LENGTH - 3) + "..."; break; @@ -371,67 +378,65 @@ public void UpdateDiscordRPC(DataLoader dataLoader) presenceTemplate.Assets.LargeImageText = largeImageTextString.Length <= MAX_DISCORD_RPC_STRING_LENGTH ? largeImageTextString : largeImageTextString.Substring(0, MAX_DISCORD_RPC_STRING_LENGTH - 3) + "..."; } - //Timer - if (dataLoader.model.QuestID() != 0 && !inQuest && dataLoader.model.TimeDefInt() > dataLoader.model.TimeInt() && int.Parse(dataLoader.model.ATK, CultureInfo.InvariantCulture) > 0 || dataLoader.model.IsRoad() || dataLoader.model.IsDure()) + // Timer + if (dataLoader.model.QuestID() != 0 && !this.inQuest && dataLoader.model.TimeDefInt() > dataLoader.model.TimeInt() && int.Parse(dataLoader.model.ATK, CultureInfo.InvariantCulture) > 0 || dataLoader.model.IsRoad() || dataLoader.model.IsDure()) { - inQuest = true; + this.inQuest = true; if (!(dataLoader.model.IsRoad() || dataLoader.model.IsDure())) { presenceTemplate.Timestamps = GetDiscordTimerMode() switch { - "Time Left" => Timestamps.FromTimeSpan(dataLoader.model.TimeDefInt() / double.Parse(Numbers.FRAMES_PER_SECOND.ToString(CultureInfo.InvariantCulture), CultureInfo.InvariantCulture)), + "Time Left" => Timestamps.FromTimeSpan(dataLoader.model.TimeDefInt() / double.Parse(Numbers.FramesPerSecond.ToString(CultureInfo.InvariantCulture), CultureInfo.InvariantCulture)), "Time Elapsed" => Timestamps.Now, - //dure doorway too - _ => Timestamps.FromTimeSpan(dataLoader.model.TimeDefInt() / double.Parse(Numbers.FRAMES_PER_SECOND.ToString(CultureInfo.InvariantCulture), CultureInfo.InvariantCulture)), + + // dure doorway too + _ => Timestamps.FromTimeSpan(dataLoader.model.TimeDefInt() / double.Parse(Numbers.FramesPerSecond.ToString(CultureInfo.InvariantCulture), CultureInfo.InvariantCulture)), }; } if (dataLoader.model.IsRoad()) { - switch (GetRoadTimerResetMode()) + switch (this.GetRoadTimerResetMode()) { case "Always": - if (dataLoader.model.AreaID() == 458)//Hunter's Road Area 1 + if (dataLoader.model.AreaID() == 458)// Hunter's Road Area 1 { break; } - else if (dataLoader.model.AreaID() == 459)//Hunter's Road Base Camp + else if (dataLoader.model.AreaID() == 459)// Hunter's Road Base Camp { if (dataLoader.model.RoadFloor() + 1 > dataLoader.model.previousRoadFloor) { // reset values - inQuest = false; - //// dataLoader.model.currentMonster1MaxHP = 0; - // dataLoader.model.previousRoadFloor = dataLoader.model.RoadFloor() + 1; + this.inQuest = false; presenceTemplate.Timestamps = GetDiscordTimerMode() switch { - "Time Left" => Timestamps.FromTimeSpan(dataLoader.model.TimeInt() / double.Parse(Numbers.FRAMES_PER_SECOND.ToString(CultureInfo.InvariantCulture), CultureInfo.InvariantCulture)), + "Time Left" => Timestamps.FromTimeSpan(dataLoader.model.TimeInt() / double.Parse(Numbers.FramesPerSecond.ToString(CultureInfo.InvariantCulture), CultureInfo.InvariantCulture)), "Time Elapsed" => Timestamps.Now, - _ => Timestamps.FromTimeSpan(dataLoader.model.TimeInt() / double.Parse(Numbers.FRAMES_PER_SECOND.ToString(CultureInfo.InvariantCulture), CultureInfo.InvariantCulture)), + _ => Timestamps.FromTimeSpan(dataLoader.model.TimeInt() / double.Parse(Numbers.FramesPerSecond.ToString(CultureInfo.InvariantCulture), CultureInfo.InvariantCulture)), }; } + break; } else { break; } + case "Never": - if (dataLoader.model.AreaID() == 458)//Hunter's Road Area 1 + if (dataLoader.model.AreaID() == 458)// Hunter's Road Area 1 { break; } - - else if (dataLoader.model.AreaID() == 459)//Hunter's Road Base Camp + else if (dataLoader.model.AreaID() == 459)// Hunter's Road Base Camp { if (dataLoader.model.RoadFloor() + 1 > dataLoader.model.previousRoadFloor) { // reset values - inQuest = false; - // dataLoader.model.currentMonster1MaxHP = 0; - // dataLoader.model.previousRoadFloor = dataLoader.model.RoadFloor() + 1; + this.inQuest = false; if (!StartedRoadElapsedTime) { @@ -445,20 +450,19 @@ public void UpdateDiscordRPC(DataLoader dataLoader) { break; } + default: - if (dataLoader.model.AreaID() == 458)//Hunter's Road Area 1 + if (dataLoader.model.AreaID() == 458)// Hunter's Road Area 1 { break; } - else if (dataLoader.model.AreaID() == 459)//Hunter's Road Base Camp + else if (dataLoader.model.AreaID() == 459)// Hunter's Road Base Camp { if (dataLoader.model.RoadFloor() + 1 > dataLoader.model.previousRoadFloor) { // reset values - inQuest = false; - // dataLoader.model.currentMonster1MaxHP = 0; - // dataLoader.model.previousRoadFloor = dataLoader.model.RoadFloor() + 1; + this.inQuest = false; if (!StartedRoadElapsedTime) { @@ -466,6 +470,7 @@ public void UpdateDiscordRPC(DataLoader dataLoader) presenceTemplate.Timestamps = Timestamps.Now; } } + break; } else @@ -480,13 +485,13 @@ public void UpdateDiscordRPC(DataLoader dataLoader) switch (dataLoader.model.AreaID()) { - case 398://Duremudira Arena + case 398:// Duremudira Arena if (!inDuremudiraArena) { inDuremudiraArena = true; - if (dataLoader.model.QuestID() == 23649)//Arrogant Dure Slay + if (dataLoader.model.QuestID() == 23649)// Arrogant Dure Slay { presenceTemplate.Timestamps = GetDiscordTimerMode() switch { @@ -506,25 +511,24 @@ public void UpdateDiscordRPC(DataLoader dataLoader) }; } } - break; + break; default: if (!inDuremudiraDoorway) { inDuremudiraDoorway = true; presenceTemplate.Timestamps = Timestamps.Now; } + break; } } } // going back to Mezeporta or w/e - else if (dataLoader.model.QuestState() != 1 && dataLoader.model.QuestID() == 0 && inQuest && int.Parse(dataLoader.model.ATK, CultureInfo.InvariantCulture) == 0) + else if (dataLoader.model.QuestState() != 1 && dataLoader.model.QuestID() == 0 && this.inQuest && int.Parse(dataLoader.model.ATK, CultureInfo.InvariantCulture) == 0) { - //reset values - inQuest = false; - // dataLoader.model.currentMonster1MaxHP = 0; - // dataLoader.model.previousRoadFloor = 0; + // reset values + this.inQuest = false; StartedRoadElapsedTime = false; inDuremudiraArena = false; inDuremudiraDoorway = false; @@ -532,10 +536,10 @@ public void UpdateDiscordRPC(DataLoader dataLoader) presenceTemplate.Timestamps = Timestamps.Now; } - //SmallInfo - presenceTemplate.Assets.SmallImageKey = GetWeaponIconFromID(dataLoader.model.WeaponType(), dataLoader); + // SmallInfo + presenceTemplate.Assets.SmallImageKey = this.GetWeaponIconFromID(dataLoader.model.WeaponType(), dataLoader); - if (GetHunterName != "" && GetGuildName != "" && GetServerName != "") + if (GetHunterName != string.Empty && GetGuildName != string.Empty && GetServerName != string.Empty) { smallImageTextString = string.Format(CultureInfo.InvariantCulture, "{0} | {1} | {2} | GSR: {3} | {4} Style | Caravan Skills: {5}", GetHunterName, GetGuildName, GetServerName, dataLoader.model.GSR(), dataLoader.model.GetWeaponStyleFromID(dataLoader.model.WeaponStyle()), dataLoader.model.GetCaravanSkillsWithoutMarkdown(dataLoader)); presenceTemplate.Assets.SmallImageText = smallImageTextString.Length <= MAX_DISCORD_RPC_STRING_LENGTH ? smallImageTextString : smallImageTextString.Substring(0, MAX_DISCORD_RPC_STRING_LENGTH - 3) + "..."; @@ -576,8 +580,8 @@ private DiscordManager() /// private static DiscordRpcClient? discordRPCClient; - //Called when your application first starts. - //For example, just before your main loop, on OnEnable for unity. + // Called when your application first starts. + // For example, just before your main loop, on OnEnable for unity. private static void SetupDiscordRPC() { /* @@ -587,15 +591,15 @@ the pipe connection. */ discordRPCClient = new DiscordRpcClient(GetDiscordClientID); - //Set the LoggerInstance + // Set the LoggerInstance - //Subscribe to events + // Subscribe to events - //Connect to the RPC + // Connect to the RPC discordRPCClient.Initialize(); - //Set the rich presence - //Call this as many times as you want and anywhere in your code. + // Set the rich presence + // Call this as many times as you want and anywhere in your code. LoggerInstance.Info(CultureInfo.InvariantCulture, "Set up Discord RPC"); } @@ -730,7 +734,8 @@ private static string GetServerName { Details = "【MHF-Z】Overlay " + App.CurrentProgramVersion, State = "Loading...", - //check img folder + + // check img folder Assets = new Assets() { LargeImageKey = "cattleya", @@ -745,7 +750,7 @@ private static string GetServerName } }; - //dure and road + // dure and road /// /// In the arena? /// @@ -932,7 +937,9 @@ private string GetWeaponIconFromID(int id, DataLoader dataLoader) } if (weaponIconName != "https://i.imgur.com/9OkLYAz.png" && !colorName.Contains("White")) + { weaponIconName += "_"; + } if (colorName.Contains("Green")) { @@ -942,7 +949,6 @@ private string GetWeaponIconFromID(int id, DataLoader dataLoader) { weaponIconName += "red"; } - else if (colorName.Contains("Pink")) { weaponIconName += "pink"; @@ -1156,46 +1162,46 @@ private string GetWeaponIconFromID(int id, DataLoader dataLoader) private bool inQuest; - //quest ids: - //mp road: 23527 - //solo road: 23628 - //1st district dure: 21731 - //2nd district dure: 21746 - //1st district dure sky corridor: 21749 - //2nd district dure sky corridor: 21750 - //arrogant dure repel: 23648 - //arrogant dure slay: 23649 - //urgent tower: 21751 - //4th district dure: 21748 - //3rd district dure: 21747 - //3rd district dure 2: 21734 - //UNUSED sky corridor: 21730 - //sky corridor prologue: 21729 - //raviente 62105 - //raviente carve 62108 + // quest ids: + // mp road: 23527 + // solo road: 23628 + // 1st district dure: 21731 + // 2nd district dure: 21746 + // 1st district dure sky corridor: 21749 + // 2nd district dure sky corridor: 21750 + // arrogant dure repel: 23648 + // arrogant dure slay: 23649 + // urgent tower: 21751 + // 4th district dure: 21748 + // 3rd district dure: 21747 + // 3rd district dure 2: 21734 + // UNUSED sky corridor: 21730 + // sky corridor prologue: 21729 + // raviente 62105 + // raviente carve 62108 ///violent raviente 62101 ///violent carve 62104 - //berserk slay practice 55796 - //berserk support practice 1 55802 - //berserk support practice 2 55803 - //berserk support practice 3 55804 - //berserk support practice 4 55805 - //berserk support practice 5 55806 - //berserk practice carve 55807 - //berserk slay 54751 - //berserk support 1 54756 - //berserk support 2 54757 - //berserk support 3 54758 - //berserk support 4 54759 - //berserk support 5 54760 - //berserk carve 54761 - //extreme slay (musou table 54) 55596 - //extreme support 1 55602 - //extreme support 2 55603 - //extreme support 3 55604 - //extreme support 4 55605 - //extreme support 5 55606 - //extreme carve 55607 + // berserk slay practice 55796 + // berserk support practice 1 55802 + // berserk support practice 2 55803 + // berserk support practice 3 55804 + // berserk support practice 4 55805 + // berserk support practice 5 55806 + // berserk practice carve 55807 + // berserk slay 54751 + // berserk support 1 54756 + // berserk support 2 54757 + // berserk support 3 54758 + // berserk support 4 54759 + // berserk support 5 54760 + // berserk carve 54761 + // extreme slay (musou table 54) 55596 + // extreme support 1 55602 + // extreme support 2 55603 + // extreme support 3 55604 + // extreme support 4 55605 + // extreme support 5 55606 + // extreme carve 55607 const int MAX_DISCORD_RPC_STRING_LENGTH = 127; // or any other maximum length specified by Discord @@ -1230,19 +1236,19 @@ private string GetQuestInformation(DataLoader dataLoader) { switch (dataLoader.model.QuestID()) { - case 23648://arrogant repel + case 23648:// arrogant repel return "Repel Arrogant Duremudira | "; - case 23649://arrogant slay + case 23649:// arrogant slay return "Slay Arrogant Duremudira | "; case 23527:// Hunter's Road Multiplayer return string.Empty; - case 23628://solo road + case 23628:// solo road return string.Empty; - case 21731://1st district dure - case 21749://sky corridor version + case 21731:// 1st district dure + case 21749:// sky corridor version return "Slay 1st District Duremudira | "; - case 21746://2nd district dure - case 21750://sky corridor version + case 21746:// 2nd district dure + case 21750:// sky corridor version return "Slay 2nd District Duremudira | "; default: if ((dataLoader.model.ObjectiveType() == 0x0 || dataLoader.model.ObjectiveType() == 0x02 || dataLoader.model.ObjectiveType() == 0x1002 || dataLoader.model.ObjectiveType() == 0x10) && dataLoader.model.QuestID() != 23527 && dataLoader.model.QuestID() != 23628 && dataLoader.model.QuestID() != 21731 && dataLoader.model.QuestID() != 21749 && dataLoader.model.QuestID() != 21746 && dataLoader.model.QuestID() != 21750) @@ -1251,7 +1257,7 @@ private string GetQuestInformation(DataLoader dataLoader) } else { - return string.Format(CultureInfo.InvariantCulture, "{0}{1}{2}{3}{4}{5} | ", dataLoader.model.GetObjectiveNameFromID(dataLoader.model.ObjectiveType(), true), "", dataLoader.model.GetObjective1Quantity(true), dataLoader.model.GetRankNameFromID(dataLoader.model.RankBand(), true), dataLoader.model.GetStarGrade(true), dataLoader.model.GetRealMonsterName(dataLoader.model.CurrentMonster1Icon, true)); + return string.Format(CultureInfo.InvariantCulture, "{0}{1}{2}{3}{4}{5} | ", dataLoader.model.GetObjectiveNameFromID(dataLoader.model.ObjectiveType(), true), string.Empty, dataLoader.model.GetObjective1Quantity(true), dataLoader.model.GetRankNameFromID(dataLoader.model.RankBand(), true), dataLoader.model.GetStarGrade(true), dataLoader.model.GetRealMonsterName(dataLoader.model.CurrentMonster1Icon, true)); } } } @@ -1273,7 +1279,7 @@ private string GetPartySize(DataLoader dataLoader) } else { - return string.Format(CultureInfo.InvariantCulture, "Party: {0}/{1} | ", dataLoader.model.PartySize(), GetPartySizeMax(dataLoader)); + return string.Format(CultureInfo.InvariantCulture, "Party: {0}/{1} | ", dataLoader.model.PartySize(), this.GetPartySizeMax(dataLoader)); } } diff --git a/MHFZ_Overlay/Services/Manager/FileManager.cs b/MHFZ_Overlay/Services/Manager/FileManager.cs index 83fad7b1..7c07cbf6 100644 --- a/MHFZ_Overlay/Services/Manager/FileManager.cs +++ b/MHFZ_Overlay/Services/Manager/FileManager.cs @@ -52,8 +52,8 @@ public static void SaveTextFile(string textToSave, string fileName, string begin dateTime = dateTime.Replace("/", "-"); dateTime = dateTime.Replace(" ", "_"); dateTime = dateTime.Replace(":", "-"); - beginningFileName = beginningFileName != "" ? beginningFileName + "-" : string.Empty; - beginningText = beginningText != "" ? beginningText + "-" : string.Empty; + beginningFileName = beginningFileName != string.Empty ? beginningFileName + "-" : string.Empty; + beginningText = beginningText != string.Empty ? beginningText + "-" : string.Empty; saveFileDialog.FileName = string.Format(CultureInfo.InvariantCulture, "{0}{1}{2}-{3}", beginningFileName, beginningText, fileName, dateTime); if (saveFileDialog.ShowDialog() == true) { @@ -95,6 +95,7 @@ public static void SaveElementAsImageFile(Grid gridToSave, string fileName, Snac { CopyUIElementToClipboard(gridToSave, snackbar); } + gridToSave.Background = previousBackground; logger.Info(CultureInfo.InvariantCulture, "Saved image {0}", savefile.FileName); } @@ -129,9 +130,10 @@ public static void CopyUIElementToClipboard(FrameworkElement element, Snackbar s var vb = new VisualBrush(element); dc.DrawRectangle(vb, null, new Rect(new Point(), new Size(width, height))); } + bmpCopied.Render(dv); Clipboard.SetImage(bmpCopied); - snackbar.Show(Messages.INFO_TITLE, "Copied image to clipboard", new SymbolIcon(SymbolRegular.Clipboard32), ControlAppearance.Success); + snackbar.Show(Messages.InfoTitle, "Copied image to clipboard", new SymbolIcon(SymbolRegular.Clipboard32), ControlAppearance.Success); } catch (Exception ex) { @@ -215,6 +217,7 @@ public static void SaveMonsterLogRecordsAsCSVFile(MonsterLog[] Monsters) { csv.WriteRecords(Monsters); } + logger.Info(CultureInfo.InvariantCulture, "Saved csv file {0}", savefile.FileName); } } @@ -247,7 +250,7 @@ public static void SaveSettingsAsJSON() var s = (Settings)Application.Current.TryFindResource("Settings"); // Create a dictionary to store the user settings - Dictionary settings = new(); + Dictionary settings = new (); // Get a list of the user settings properties sorted alphabetically by name var sortedSettings = s.Properties.Cast().OrderBy(setting => setting.Name).ToList(); @@ -311,7 +314,7 @@ public static void CopyFileToDestination(string file, string destination, bool o File.Copy(file, destination, overwrite); logger.Info(CultureInfo.InvariantCulture, "{0}. Original file: {1}, Destination: {2}", logMessage, file, destination); if (showMessageBox) - MessageBox.Show(string.Format(CultureInfo.InvariantCulture, "{0}. Original file: {1}, Destination: {2}", logMessage, file, destination), Messages.INFO_TITLE, MessageBoxButton.OK, MessageBoxImage.Information); + MessageBox.Show(string.Format(CultureInfo.InvariantCulture, "{0}. Original file: {1}, Destination: {2}", logMessage, file, destination), Messages.InfoTitle, MessageBoxButton.OK, MessageBoxImage.Information); } /// @@ -329,6 +332,7 @@ public static void RestoreFileFromSourceToDestination(string destFile, string so logger.Info(CultureInfo.InvariantCulture, "File not found at {0}", sourceFile); return; } + // Create directory as needed try { @@ -338,6 +342,7 @@ public static void RestoreFileFromSourceToDestination(string destFile, string so { throw new ArgumentOutOfRangeException($"Did not make directory for {destFileDirectoryName}"); } + Directory.CreateDirectory(destFileDirectoryName); } @@ -389,6 +394,7 @@ public static bool CreateFileIfNotExists(string path, string logMessage) logger.Info(CultureInfo.InvariantCulture, "{0}{1}", logMessage, path); doesExist = true; } + return doesExist; } catch (Exception ex) @@ -466,7 +472,7 @@ public static bool CheckIfFileExtensionFolderExists(string[] files, string[] fol // If there are any banned files or folders, display an error message and exit the application var message = string.Format(CultureInfo.InvariantCulture, "The following files or folders are not allowed:\n{0}", string.Join("\n", illegalFiles)); logger.Fatal(message); - MessageBox.Show(message, Messages.ERROR_TITLE, MessageBoxButton.OK, MessageBoxImage.Error); + MessageBox.Show(message, Messages.ErrorTitle, MessageBoxButton.OK, MessageBoxImage.Error); ApplicationManager.HandleShutdown(); } @@ -538,7 +544,7 @@ public static void CreateDatabaseBackup(SQLiteConnection connection, string Back { // Handle the exception and show an error message to the user logger.Error(ex, "An error occurred while creating a database backup"); - MessageBox.Show("An error occurred while creating a database backup: " + ex.Message, Messages.ERROR_TITLE, MessageBoxButton.OK, MessageBoxImage.Error); + MessageBox.Show("An error occurred while creating a database backup: " + ex.Message, Messages.ErrorTitle, MessageBoxButton.OK, MessageBoxImage.Error); } } diff --git a/MHFZ_Overlay/Services/Manager/LoggingManager.cs b/MHFZ_Overlay/Services/Manager/LoggingManager.cs index 3e1a45a8..51689230 100644 --- a/MHFZ_Overlay/Services/Manager/LoggingManager.cs +++ b/MHFZ_Overlay/Services/Manager/LoggingManager.cs @@ -22,7 +22,7 @@ internal sealed class LoggingManager public static void WriteCrashLog(Exception ex, string logMessage = "Program crashed") { LoggerInstance.Fatal(ex, logMessage); - MessageBox.Show(@"Fatal error, closing overlay. See the crash log in the overlay\logs folder for more information.", Messages.FATAL_TITLE, MessageBoxButton.OK, MessageBoxImage.Error); + MessageBox.Show(@"Fatal error, closing overlay. See the crash log in the overlay\logs folder for more information.", Messages.FatalTitle, MessageBoxButton.OK, MessageBoxImage.Error); PromptForOpeningLogs(); ApplicationManager.HandleShutdown(); } @@ -37,23 +37,23 @@ private static void PromptForOpeningLogs() if (!File.Exists(logFilePath)) { LoggerInstance.Error(CultureInfo.InvariantCulture, "Could not find the log file: {0}", logFilePath); - MessageBox.Show(string.Format(CultureInfo.InvariantCulture, "Could not find the log file: {0}", logFilePath), Messages.ERROR_TITLE, MessageBoxButton.OK, MessageBoxImage.Error); + MessageBox.Show(string.Format(CultureInfo.InvariantCulture, "Could not find the log file: {0}", logFilePath), Messages.ErrorTitle, MessageBoxButton.OK, MessageBoxImage.Error); } // Show an error message to the user and ask if they want to open the log file - var result = MessageBox.Show("An error occurred. Do you want to open the log file?", Messages.ERROR_TITLE, MessageBoxButton.YesNo, MessageBoxImage.Error, MessageBoxResult.No); + var result = MessageBox.Show("An error occurred. Do you want to open the log file?", Messages.ErrorTitle, MessageBoxButton.YesNo, MessageBoxImage.Error, MessageBoxResult.No); if (result == MessageBoxResult.Yes) { // Open the log file using the default application try { - Process.Start(ApplicationPaths.NOTEPAD_PATH, logFilePath); + Process.Start(ApplicationPaths.NotepadPath, logFilePath); LoggerInstance.Info(CultureInfo.InvariantCulture, "Opened with Notepad the file {0}", logFilePath); } catch (Exception ex) { LoggerInstance.Error(ex, "Could not open the log file: {0}", logFilePath); - MessageBox.Show("Could not open the log file: " + ex.Message, Messages.ERROR_TITLE, MessageBoxButton.OK, MessageBoxImage.Error); + MessageBox.Show("Could not open the log file: " + ex.Message, Messages.ErrorTitle, MessageBoxButton.OK, MessageBoxImage.Error); } } } diff --git a/MHFZ_Overlay/Services/Manager/OverlaySettingsManager.cs b/MHFZ_Overlay/Services/Manager/OverlaySettingsManager.cs index 5f5f76f9..8c8855ec 100644 --- a/MHFZ_Overlay/Services/Manager/OverlaySettingsManager.cs +++ b/MHFZ_Overlay/Services/Manager/OverlaySettingsManager.cs @@ -9,9 +9,10 @@ namespace MHFZ_Overlay.Services.Manager; public class OverlaySettingsManager { - private static OverlaySettingsManager? instance; - - private static readonly NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger(); + private OverlaySettingsManager() + { + logger.Info($"OverlaySettingsManager initialized"); + } public enum ConfigurationPreset { @@ -19,12 +20,7 @@ public enum ConfigurationPreset Speedrun, Zen, HP_Only, - All - } - - private OverlaySettingsManager() - { - logger.Info($"OverlaySettingsManager initialized"); + All, } public static OverlaySettingsManager GetInstance() @@ -34,6 +30,7 @@ public static OverlaySettingsManager GetInstance() logger.Debug("Singleton not found, creating instance."); instance = new OverlaySettingsManager(); } + logger.Debug("Singleton found, returning instance."); logger.Trace(new StackTrace().ToString()); return instance; @@ -221,4 +218,8 @@ public void SetConfigurationPreset(Settings s, ConfigurationPreset preset) break; } } + + private static OverlaySettingsManager? instance; + + private static readonly NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger(); } diff --git a/MHFZ_Overlay/Services/Template/OptionTemplateSelector.cs b/MHFZ_Overlay/Services/Template/OptionTemplateSelector.cs index 94876f28..cfb2956d 100644 --- a/MHFZ_Overlay/Services/Template/OptionTemplateSelector.cs +++ b/MHFZ_Overlay/Services/Template/OptionTemplateSelector.cs @@ -20,6 +20,7 @@ public class OptionTemplateSelector : DataTemplateSelector return element.FindResource(selectedOption) as DataTemplate; } } + return null; } } diff --git a/MHFZ_Overlay/ViewModels/AddressModel.cs b/MHFZ_Overlay/ViewModels/AddressModel.cs index 57c69399..234ce938 100644 --- a/MHFZ_Overlay/ViewModels/AddressModel.cs +++ b/MHFZ_Overlay/ViewModels/AddressModel.cs @@ -45,11 +45,15 @@ public abstract class AddressModel : INotifyPropertyChanged public readonly Mem M; private int savedMonster1MaxHP; + private int savedMonster2MaxHP; + private int savedMonster3MaxHP; + private int savedMonster4MaxHP; private int savedMonster1ID; + private int savedMonster2ID; public AddressModel(Mem m) @@ -84,599 +88,1078 @@ public AddressModel(Mem m) public bool ShowHitCountInfo { get; set; } public bool ShowPlayerAtkInfo { get; set; } + public bool ShowPlayerHitsTakenBlockedInfo { get; set; } + public bool ShowQuestID { get; set; } + public bool ShowQuestAttemptsInfo { get; set; } + public bool ShowPersonalBestTimePercentInfo { get; set; } + public bool ShowPersonalBestAttemptsInfo { get; set; } + public bool ShowMonster1HPBar { get; set; } + public bool ShowMonster2HPBar { get; set; } + public bool ShowMonster3HPBar { get; set; } + public bool ShowMonster4HPBar { get; set; } + public bool ShowSharpness { get; set; } + public bool ShowSessionTimeInfo { get; set; } + public bool ShowMonsterPartHP { get; set; } + public bool ShowKBMLayout { get; set; } + public bool ShowAPM { get; set; } + public bool ShowGamepadLayout { get; set; } + public bool ShowMonster1Icon { get; set; } + public bool ShowFrameCounter { get; set; } + public bool ShowMap { get; set; } + public bool ShowDamagePerSecond { get; set; } - public bool ShowOverlayModeWatermark { get; set; } + public bool ShowOverlayModeWatermark { get; set; } public bool ShowSaveIcon { get; set; } = true; + public bool ShowLocationTextInfo { get; set; } = true; + public bool ShowQuestNameInfo { get; set; } = true; + public bool ShowPlayerAttackGraph { get; set; } = true; + public bool ShowPlayerDPSGraph { get; set; } = true; + public bool ShowPlayerAPMGraph { get; set; } = true; + public bool ShowPlayerHitsPerSecondGraph { get; set; } = true; abstract public bool IsNotRoad(); + abstract public int HitCountInt(); + abstract public int DamageDealt(); //New addresses abstract public int AreaID(); + abstract public int GRankNumber(); + abstract public int GSR(); + abstract public int RoadFloor(); + abstract public int WeaponStyle(); + abstract public int QuestID(); + abstract public int UrukiPachinkoFish(); + abstract public int UrukiPachinkoMushroom(); + abstract public int UrukiPachinkoSeed(); + abstract public int UrukiPachinkoMeat(); + abstract public int UrukiPachinkoChain(); + abstract public int UrukiPachinkoScore(); + abstract public int UrukiPachinkoBonusScore(); + abstract public int NyanrendoScore(); + abstract public int DokkanBattleCatsScore(); + abstract public int DokkanBattleCatsScale(); + abstract public int DokkanBattleCatsShell(); + abstract public int DokkanBattleCatsCamp(); + abstract public int GuukuScoopSmall(); + abstract public int GuukuScoopMedium(); + abstract public int GuukuScoopLarge(); + abstract public int GuukuScoopGolden(); + abstract public int GuukuScoopScore(); + abstract public int PanicHoneyScore(); + abstract public int Sharpness(); + abstract public int CaravanPoints(); + abstract public int MezeportaFestivalPoints(); + abstract public int DivaBond(); + abstract public int DivaItemsGiven(); + abstract public int GCP(); + abstract public int RoadPoints(); + abstract public int ArmorColor(); + abstract public int RaviGg(); + abstract public int Ravig(); + abstract public int GZenny(); + abstract public int GuildFoodSkill(); + abstract public int GalleryEvaluationScore(); + abstract public int PoogiePoints(); + abstract public int PoogieItemUseID(); + abstract public int PoogieCostume(); + //zero-indexed abstract public int CaravenGemLevel(); + abstract public int RoadMaxStagesMultiplayer(); + abstract public int RoadTotalStagesMultiplayer(); + abstract public int RoadTotalStagesSolo(); + abstract public int RoadMaxStagesSolo(); + abstract public int RoadFatalisSlain(); + abstract public int RoadFatalisEncounters(); + abstract public int FirstDistrictDuremudiraEncounters(); + abstract public int FirstDistrictDuremudiraSlays(); + abstract public int SecondDistrictDuremudiraEncounters(); + abstract public int SecondDistrictDuremudiraSlays(); - abstract public int DeliveryQuestPoints(); //doesn't seem to work + abstract public int DeliveryQuestPoints(); //doesn't seem to work //red is 0 abstract public int SharpnessLevel(); - abstract public int PartnerLevel(); + abstract public int ObjectiveType(); + abstract public int DivaSkillUsesLeft(); + abstract public int HalkFullness(); + abstract public int RankBand(); abstract public int PartnyaRankPoints(); + //parts abstract public int Monster1Part1(); + abstract public int Monster1Part2(); + abstract public int Monster1Part3(); + abstract public int Monster1Part4(); + abstract public int Monster1Part5(); + abstract public int Monster1Part6(); + abstract public int Monster1Part7(); + abstract public int Monster1Part8(); + abstract public int Monster1Part9(); + abstract public int Monster1Part10(); + abstract public int Monster2Part1(); + abstract public int Monster2Part2(); + abstract public int Monster2Part3(); + abstract public int Monster2Part4(); + abstract public int Monster2Part5(); + abstract public int Monster2Part6(); + abstract public int Monster2Part7(); + abstract public int Monster2Part8(); - abstract public int Monster2Part9(); - abstract public int Monster2Part10(); + abstract public int Monster2Part9(); + abstract public int Monster2Part10(); abstract public int TimeInt(); + abstract public int TimeDefInt(); abstract public int WeaponRaw(); + abstract public int WeaponType(); abstract public int LargeMonster1ID(); + abstract public int LargeMonster2ID(); + abstract public int LargeMonster3ID(); + abstract public int LargeMonster4ID(); abstract public int Monster1HPInt(); + abstract public int Monster2HPInt(); + abstract public int Monster3HPInt(); + abstract public int Monster4HPInt(); abstract public string Monster1AtkMult(); + abstract public string Monster2AtkMult(); abstract public decimal Monster1DefMult(); + abstract public decimal Monster2DefMult(); abstract public int Monster1Poison(); + abstract public int Monster1PoisonNeed(); + abstract public int Monster1Sleep(); + abstract public int Monster1SleepNeed(); + abstract public int Monster1Para(); + abstract public int Monster1ParaNeed(); + abstract public int Monster1Blast(); + abstract public int Monster1BlastNeed(); + abstract public int Monster1Stun(); + abstract public int Monster1StunNeed(); + abstract public string Monster1Size(); abstract public int Monster2Poison(); + abstract public int Monster2PoisonNeed(); + abstract public int Monster2Sleep(); + abstract public int Monster2SleepNeed(); + abstract public int Monster2Para(); + abstract public int Monster2ParaNeed(); + abstract public int Monster2Blast(); + abstract public int Monster2BlastNeed(); + abstract public int Monster2Stun(); + abstract public int Monster2StunNeed(); + abstract public string Monster2Size(); + abstract public int Objective1ID(); + abstract public int Objective1Quantity(); + abstract public int Objective1CurrentQuantityMonster(); + abstract public int Objective1CurrentQuantityItem(); //ravi abstract public int RavienteTriggeredEvent(); + abstract public int GreatSlayingPoints(); + abstract public int GreatSlayingPointsSaved(); + //normal and violent. berserk support abstract public int RavienteAreaID(); - abstract public int RoadSelectedMonster(); - // TODO Yamas and Beru abstract public int AlternativeMonster1HPInt(); + abstract public int AlternativeMonster1AtkMult(); + abstract public int AlternativeMonster1DefMult(); + abstract public int AlternativeMonster1Size(); abstract public int AlternativeMonster1Poison(); + abstract public int AlternativeMonster1PoisonNeed(); + abstract public int AlternativeMonster1Sleep(); + abstract public int AlternativeMonster1SleepNeed(); abstract public int AlternativeMonster1Para(); + abstract public int AlternativeMonster1ParaNeed(); + abstract public int AlternativeMonster1Blast(); + abstract public int AlternativeMonster1BlastNeed(); abstract public int AlternativeMonster1Stun(); + abstract public int AlternativeMonster1StunNeed(); abstract public int AlternativeMonster1Part1(); + abstract public int AlternativeMonster1Part2(); + abstract public int AlternativeMonster1Part3(); + abstract public int AlternativeMonster1Part4(); + abstract public int AlternativeMonster1Part5(); + abstract public int AlternativeMonster1Part6(); + abstract public int AlternativeMonster1Part7(); + abstract public int AlternativeMonster1Part8(); + abstract public int AlternativeMonster1Part9(); + abstract public int AlternativeMonster1Part10(); abstract public int DivaSkill(); + abstract public int StarGrades(); abstract public int CaravanSkill1(); + abstract public int CaravanSkill2(); + abstract public int CaravanSkill3(); abstract public int CurrentFaints(); + //road and normal abstract public int MaxFaints(); + //shitens, conquests, pioneer, daily, caravan, interception abstract public int AlternativeMaxFaints(); abstract public int CaravanScore(); abstract public int CaravanMonster1ID(); + //unsure abstract public int CaravanMonster2ID(); abstract public int BlademasterWeaponID(); + //same as melee afaik abstract public int GunnerWeaponID(); + abstract public int WeaponDeco1ID(); + abstract public int WeaponDeco2ID(); + abstract public int WeaponDeco3ID(); + abstract public int ArmorHeadID(); + abstract public int ArmorHeadDeco1ID(); + abstract public int ArmorHeadDeco2ID(); + abstract public int ArmorHeadDeco3ID(); + abstract public int ArmorChestID(); + abstract public int ArmorChestDeco1ID(); + abstract public int ArmorChestDeco2ID(); + abstract public int ArmorChestDeco3ID(); + abstract public int ArmorArmsID(); + abstract public int ArmorArmsDeco1ID(); + abstract public int ArmorArmsDeco2ID(); + abstract public int ArmorArmsDeco3ID(); + abstract public int ArmorWaistID(); + abstract public int ArmorWaistDeco1ID(); + abstract public int ArmorWaistDeco2ID(); + abstract public int ArmorWaistDeco3ID(); + abstract public int ArmorLegsID(); + abstract public int ArmorLegsDeco1ID(); + abstract public int ArmorLegsDeco2ID(); + abstract public int ArmorLegsDeco3ID(); + abstract public int Cuff1ID(); + abstract public int Cuff2ID(); + abstract public int TotalDefense(); + abstract public int PouchItem1ID(); + abstract public int PouchItem1Qty(); + abstract public int PouchItem2ID(); + abstract public int PouchItem2Qty(); + abstract public int PouchItem3ID(); + abstract public int PouchItem3Qty(); + abstract public int PouchItem4ID(); + abstract public int PouchItem4Qty(); + abstract public int PouchItem5ID(); + abstract public int PouchItem5Qty(); + abstract public int PouchItem6ID(); + abstract public int PouchItem6Qty(); + abstract public int PouchItem7ID(); + abstract public int PouchItem7Qty(); + abstract public int PouchItem8ID(); + abstract public int PouchItem8Qty(); + abstract public int PouchItem9ID(); + abstract public int PouchItem9Qty(); + abstract public int PouchItem10ID(); + abstract public int PouchItem10Qty(); + abstract public int PouchItem11ID(); + abstract public int PouchItem11Qty(); + abstract public int PouchItem12ID(); + abstract public int PouchItem12Qty(); + abstract public int PouchItem13ID(); + abstract public int PouchItem13Qty(); + abstract public int PouchItem14ID(); + abstract public int PouchItem14Qty(); + abstract public int PouchItem15ID(); + abstract public int PouchItem15Qty(); + abstract public int PouchItem16ID(); + abstract public int PouchItem16Qty(); + abstract public int PouchItem17ID(); + abstract public int PouchItem17Qty(); + abstract public int PouchItem18ID(); + abstract public int PouchItem18Qty(); + abstract public int PouchItem19ID(); + abstract public int PouchItem19Qty(); + abstract public int PouchItem20ID(); + abstract public int PouchItem20Qty(); + abstract public int AmmoPouchItem1ID(); + abstract public int AmmoPouchItem1Qty(); + abstract public int AmmoPouchItem2ID(); + abstract public int AmmoPouchItem2Qty(); + abstract public int AmmoPouchItem3ID(); + abstract public int AmmoPouchItem3Qty(); + abstract public int AmmoPouchItem4ID(); + abstract public int AmmoPouchItem4Qty(); + abstract public int AmmoPouchItem5ID(); + abstract public int AmmoPouchItem5Qty(); + abstract public int AmmoPouchItem6ID(); + abstract public int AmmoPouchItem6Qty(); + abstract public int AmmoPouchItem7ID(); + abstract public int AmmoPouchItem7Qty(); + abstract public int AmmoPouchItem8ID(); + abstract public int AmmoPouchItem8Qty(); + abstract public int AmmoPouchItem9ID(); + abstract public int AmmoPouchItem9Qty(); + abstract public int AmmoPouchItem10ID(); + abstract public int AmmoPouchItem10Qty(); abstract public int ArmorSkill1(); + abstract public int ArmorSkill2(); + abstract public int ArmorSkill3(); + abstract public int ArmorSkill4(); + abstract public int ArmorSkill5(); + abstract public int ArmorSkill6(); + abstract public int ArmorSkill7(); + abstract public int ArmorSkill8(); + abstract public int ArmorSkill9(); + abstract public int ArmorSkill10(); + abstract public int ArmorSkill11(); + abstract public int ArmorSkill12(); + abstract public int ArmorSkill13(); + abstract public int ArmorSkill14(); + abstract public int ArmorSkill15(); + abstract public int ArmorSkill16(); + abstract public int ArmorSkill17(); + abstract public int ArmorSkill18(); + abstract public int ArmorSkill19(); abstract public int BloatedWeaponAttack(); abstract public int ZenithSkill1(); + abstract public int ZenithSkill2(); + abstract public int ZenithSkill3(); + abstract public int ZenithSkill4(); + abstract public int ZenithSkill5(); + abstract public int ZenithSkill6(); + abstract public int ZenithSkill7(); abstract public int AutomaticSkillWeapon(); + abstract public int AutomaticSkillHead(); + abstract public int AutomaticSkillChest(); + abstract public int AutomaticSkillArms(); + abstract public int AutomaticSkillWaist(); + abstract public int AutomaticSkillLegs(); abstract public int StyleRank1(); + abstract public int StyleRank2(); abstract public int GRWeaponLv(); + abstract public int GRWeaponLvBowguns(); abstract public int Sigil1Name1(); + abstract public int Sigil1Value1(); + abstract public int Sigil1Name2(); + abstract public int Sigil1Value2(); + abstract public int Sigil1Name3(); + abstract public int Sigil1Value3(); + abstract public int Sigil2Name1(); + abstract public int Sigil2Value1(); + abstract public int Sigil2Name2(); + abstract public int Sigil2Value2(); + abstract public int Sigil2Name3(); + abstract public int Sigil2Value3(); + abstract public int Sigil3Name1(); + abstract public int Sigil3Value1(); + abstract public int Sigil3Name2(); + abstract public int Sigil3Value2(); + abstract public int Sigil3Name3(); - abstract public int Sigil3Value3(); + abstract public int Sigil3Value3(); abstract public int FelyneHunted(); + abstract public int MelynxHunted(); + abstract public int ShakalakaHunted(); + abstract public int VespoidHunted(); + abstract public int HornetaurHunted(); + abstract public int GreatThunderbugHunted(); + abstract public int KelbiHunted(); + abstract public int MosswineHunted(); + abstract public int AntekaHunted(); + abstract public int PopoHunted(); + abstract public int AptonothHunted(); + abstract public int ApcerosHunted(); + abstract public int BurukkuHunted(); + abstract public int ErupeHunted(); + abstract public int VelocipreyHunted(); + abstract public int VelocidromeHunted(); + abstract public int GenpreyHunted(); + abstract public int GendromeHunted(); + abstract public int IopreyHunted(); + abstract public int IodromeHunted(); + abstract public int GiapreyHunted(); + abstract public int YianKutKuHunted(); + abstract public int BlueYianKutKuHunted(); + abstract public int YianGarugaHunted(); + abstract public int GypcerosHunted(); + abstract public int PurpleGypcerosHunted(); + abstract public int HypnocHunted(); + abstract public int BrightHypnocHunted(); + abstract public int SilverHypnocHunted(); + abstract public int FarunokkuHunted(); + abstract public int ForokururuHunted(); + abstract public int ToridclessHunted(); + abstract public int RemobraHunted(); + abstract public int RathianHunted(); + abstract public int PinkRathianHunted(); + abstract public int GoldRathianHunted(); + abstract public int RathalosHunted(); + abstract public int AzureRathalosHunted(); + abstract public int SilverRathalosHunted(); + abstract public int KhezuHunted(); + abstract public int RedKhezuHunted(); + abstract public int BasariosHunted(); + abstract public int GraviosHunted(); + abstract public int BlackGraviosHunted(); + abstract public int MonoblosHunted(); + abstract public int WhiteMonoblosHunted(); + abstract public int DiablosHunted(); + abstract public int BlackDiablosHunted(); + abstract public int TigrexHunted(); + abstract public int EspinasHunted(); + abstract public int OrangeEspinasHunted(); + abstract public int WhiteEspinasHunted(); + abstract public int AkantorHunted(); + abstract public int BerukyurosuHunted(); + abstract public int DoragyurosuHunted(); + abstract public int PariapuriaHunted(); + abstract public int DyuragauaHunted(); + abstract public int GurenzeburuHunted(); + abstract public int OdibatorasuHunted(); + abstract public int HyujikikiHunted(); + abstract public int AnorupatisuHunted(); + abstract public int ZerureusuHunted(); + abstract public int MeraginasuHunted(); + abstract public int DiorexHunted(); + abstract public int PoborubarumuHunted(); + abstract public int VarusaburosuHunted(); + abstract public int GureadomosuHunted(); + abstract public int BariothHunted(); + abstract public int NargacugaHunted(); + abstract public int ZenaserisuHunted(); + abstract public int SeregiosHunted(); + abstract public int BogabadorumuHunted(); + abstract public int CephalosHunted(); + abstract public int CephadromeHunted(); + abstract public int PlesiothHunted(); + abstract public int GreenPlesiothHunted(); + abstract public int VolganosHunted(); + abstract public int RedVolganosHunted(); + abstract public int HermitaurHunted(); + abstract public int DaimyoHermitaurHunted(); + abstract public int CeanataurHunted(); + abstract public int ShogunCeanataurHunted(); + abstract public int ShenGaorenHunted(); + abstract public int AkuraVashimuHunted(); + abstract public int AkuraJebiaHunted(); + abstract public int TaikunZamuzaHunted(); + abstract public int KusubamiHunted(); + abstract public int BullfangoHunted(); + abstract public int BulldromeHunted(); + abstract public int CongaHunted(); + abstract public int CongalalaHunted(); + abstract public int BlangoHunted(); + abstract public int BlangongaHunted(); + abstract public int GogomoaHunted(); + abstract public int RajangHunted(); + abstract public int KamuOrugaronHunted(); + abstract public int NonoOrugaronHunted(); + abstract public int MidogaronHunted(); + abstract public int GougarfHunted(); + abstract public int VoljangHunted(); + abstract public int KirinHunted(); + abstract public int KushalaDaoraHunted(); + abstract public int RustedKushalaDaoraHunted(); + abstract public int ChameleosHunted(); + abstract public int LunastraHunted(); + abstract public int TeostraHunted(); + abstract public int LaoShanLungHunted(); + abstract public int AshenLaoShanLungHunted(); + abstract public int YamaTsukamiHunted(); + abstract public int RukodioraHunted(); + abstract public int RebidioraHunted(); + abstract public int FatalisHunted(); + abstract public int ShantienHunted(); + abstract public int DisufiroaHunted(); + abstract public int GarubaDaoraHunted(); + abstract public int InagamiHunted(); + abstract public int HarudomeruguHunted(); + abstract public int YamaKuraiHunted(); + abstract public int ToaTesukatoraHunted(); + abstract public int GuanzorumuHunted(); + abstract public int KeoaruboruHunted(); + abstract public int ShagaruMagalaHunted(); + abstract public int ElzelionHunted(); + abstract public int AmatsuHunted(); + abstract public int AbioruguHunted(); + abstract public int GiaoruguHunted(); + abstract public int GasurabazuraHunted(); + abstract public int DeviljhoHunted(); + abstract public int BrachydiosHunted(); + abstract public int UragaanHunted(); + abstract public int KuarusepusuHunted(); + abstract public int PokaraHunted(); + abstract public int PokaradonHunted(); + abstract public int BaruragaruHunted(); + abstract public int ZinogreHunted(); + abstract public int StygianZinogreHunted(); + abstract public int GoreMagalaHunted(); abstract public int BlitzkriegBogabadorumuHunted(); + abstract public int SparklingZerureusuHunted(); + abstract public int StarvingDeviljhoHunted(); abstract public int CrimsonFatalisHunted(); + abstract public int WhiteFatalisHunted(); + abstract public int CactusHunted(); - abstract public int ArrogantDuremudiraHunted();//untested + + abstract public int ArrogantDuremudiraHunted();// untested + abstract public int MiRuHunted(); + abstract public int UnknownHunted(); + abstract public int GoruganosuHunted(); + abstract public int AruganosuHunted(); + abstract public int PSO2RappyHunted(); + abstract public int RocksHunted(); + abstract public int UrukiHunted(); + abstract public int GorgeObjectsHunted(); + abstract public int BlinkingNargacugaHunted(); + abstract public int KingShakalakaHunted(); - abstract public int QuestState(); + abstract public int QuestState(); abstract public int RoadDureSkill1Name(); + abstract public int RoadDureSkill1Level(); + abstract public int RoadDureSkill2Name(); + abstract public int RoadDureSkill2Level(); + abstract public int RoadDureSkill3Name(); + abstract public int RoadDureSkill3Level(); + abstract public int RoadDureSkill4Name(); + abstract public int RoadDureSkill4Level(); + abstract public int RoadDureSkill5Name(); + abstract public int RoadDureSkill5Level(); + abstract public int RoadDureSkill6Name(); + abstract public int RoadDureSkill6Level(); + abstract public int RoadDureSkill7Name(); + abstract public int RoadDureSkill7Level(); + abstract public int RoadDureSkill8Name(); + abstract public int RoadDureSkill8Level(); + abstract public int RoadDureSkill9Name(); + abstract public int RoadDureSkill9Level(); + abstract public int RoadDureSkill10Name(); + abstract public int RoadDureSkill10Level(); + abstract public int RoadDureSkill11Name(); + abstract public int RoadDureSkill11Level(); + abstract public int RoadDureSkill12Name(); + abstract public int RoadDureSkill12Level(); + abstract public int RoadDureSkill13Name(); + abstract public int RoadDureSkill13Level(); + abstract public int RoadDureSkill14Name(); + abstract public int RoadDureSkill14Level(); + abstract public int RoadDureSkill15Name(); + abstract public int RoadDureSkill15Level(); + abstract public int RoadDureSkill16Name(); + abstract public int RoadDureSkill16Level(); abstract public int PartySize(); + abstract public int PartySizeMax(); abstract public uint GSRP(); + abstract public uint GRP(); abstract public int HunterHP(); + abstract public int HunterStamina(); abstract public int QuestItemsUsed(); + abstract public int AreaHitsTakenBlocked(); abstract public int PartnyaBagItem1ID(); + abstract public int PartnyaBagItem1Qty(); abstract public int PartnyaBagItem2ID(); @@ -716,8 +1199,11 @@ public AddressModel(Mem m) abstract public int PartnyaBagItem10Qty(); public bool HasMonster1 => CaravanOverride() ? ShowHPBar(CaravanMonster1ID(), Monster1HPInt()) : ShowHPBar(LargeMonster1ID(), Monster1HPInt()); + public bool HasMonster2 => CaravanOverride() ? CaravanMonster2ID() > 0 && Monster2HPInt() != 0 && GetNotRoad() || Configuring : LargeMonster2ID() > 0 && Monster2HPInt() != 0 && GetNotRoad() || Configuring; // road check since the 2nd choice is used as the monster #1 + public bool HasMonster3 => ShowHPBar(LargeMonster3ID(), Monster3HPInt()); + public bool HasMonster4 => ShowHPBar(LargeMonster4ID(), Monster4HPInt()); public static string FullCurrentProgramVersion @@ -744,19 +1230,13 @@ public static string SimplifiedCurrentProgramVersion public static bool ShowHitsPerSecond() { var s = (Settings)Application.Current.TryFindResource("Settings"); - if (s.HitsPerSecondShown) - return true; - else - return false; + return s.HitsPerSecondShown; } public static bool ShowTotalHitsTakenBlockedPerSecond() { var s = (Settings)Application.Current.TryFindResource("Settings"); - if (s.TotalHitsTakenBlockedPerSecondShown) - return true; - else - return false; + return s.TotalHitsTakenBlockedPerSecondShown; } public string HitCount @@ -766,20 +1246,14 @@ public string HitCount var hitsPerSecond = string.Empty; if (ShowHitsPerSecond()) + { hitsPerSecond = string.Format(CultureInfo.InvariantCulture, " ({0:0.00}/s)", HitsPerSecond); + } return string.Format(CultureInfo.InvariantCulture, "{0}{1}", HitCountInt(), hitsPerSecond); } } - public static string LoremImpsum - { - get - { - return "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Auctor neque vitae tempus quam pellentesque. Nisl pretium fusce id velit ut tortor pretium. Sit amet massa vitae tortor. Justo donec enim diam vulputate. Mauris ultrices eros in cursus turpis massa. Rhoncus aenean vel elit scelerisque mauris pellentesque pulvinar pellentesque habitant. Sed id semper risus in hendrerit gravida rutrum quisque. Vulputate enim nulla aliquet porttitor lacus luctus accumsan tortor posuere. In est ante in nibh. Fringilla est ullamcorper eget nulla facilisi etiam dignissim diam. Pulvinar mattis nunc sed blandit libero volutpat sed cras ornare. Ac auctor augue mauris augue neque gravida in fermentum et. Eget nunc scelerisque viverra mauris in.\r\n\r\nDapibus ultrices in iaculis nunc sed augue. Euismod quis viverra nibh cras pulvinar mattis nunc sed. Iaculis urna id volutpat lacus laoreet. Neque ornare aenean euismod elementum nisi quis eleifend quam adipiscing. Consequat nisl vel pretium lectus quam id. Lacinia at quis risus sed vulputate odio. Euismod nisi porta lorem mollis. Dui vivamus arcu felis bibendum ut. Gravida arcu ac tortor dignissim convallis aenean et tortor. Sed velit dignissim sodales ut eu sem. Sed sed risus pretium quam. Urna molestie at elementum eu facilisis sed odio morbi. Ac tortor vitae purus faucibus ornare suspendisse sed nisi. Est velit egestas dui id ornare arcu odio ut. Condimentum mattis pellentesque id nibh tortor. Volutpat maecenas volutpat blandit aliquam etiam erat. Nunc sed blandit libero volutpat sed cras. Donec massa sapien faucibus et molestie ac. Venenatis urna cursus eget nunc scelerisque viverra.\r\n\r\nFacilisis gravida neque convallis a cras semper auctor neque. Ullamcorper malesuada proin libero nunc consequat interdum varius. Et sollicitudin ac orci phasellus. Netus et malesuada fames ac turpis egestas maecenas pharetra. Vulputate sapien nec sagittis aliquam malesuada bibendum. Fringilla phasellus faucibus scelerisque eleifend donec pretium vulputate sapien nec. Non odio euismod lacinia at quis. Et netus et malesuada fames. Quam viverra orci sagittis eu volutpat odio. Turpis egestas maecenas pharetra convallis posuere morbi leo urna molestie. Nulla malesuada pellentesque elit eget gravida. Iaculis at erat pellentesque adipiscing commodo elit at imperdiet dui. Ipsum consequat nisl vel pretium lectus quam id leo. Quisque non tellus orci ac auctor. Aliquet bibendum enim facilisis gravida neque. Mi in nulla posuere sollicitudin aliquam ultrices sagittis. Molestie at elementum eu facilisis sed odio. A lacus vestibulum sed arcu non odio euismod lacinia. Pretium fusce id velit ut. Adipiscing commodo elit at imperdiet.\r\n\r\nPretium lectus quam id leo. Nulla pharetra diam sit amet. Elementum integer enim neque volutpat. Amet mattis vulputate enim nulla. Leo vel orci porta non. Arcu odio ut sem nulla pharetra diam sit amet nisl. Dignissim convallis aenean et tortor at risus viverra adipiscing at. Nibh venenatis cras sed felis. Integer feugiat scelerisque varius morbi. Pretium vulputate sapien nec sagittis aliquam malesuada bibendum arcu vitae. Elementum pulvinar etiam non quam lacus suspendisse faucibus. Amet nulla facilisi morbi tempus iaculis urna id volutpat. Vel fringilla est ullamcorper eget nulla. Sit amet nisl purus in mollis nunc sed id semper. Sit amet aliquam id diam. Blandit volutpat maecenas volutpat blandit. Fermentum leo vel orci porta. Imperdiet proin fermentum leo vel orci porta non pulvinar. Odio euismod lacinia at quis risus sed vulputate.\r\n\r\nDolor sed viverra ipsum nunc. In nibh mauris cursus mattis molestie. Lacus viverra vitae congue eu consequat ac felis donec. Mauris sit amet massa vitae tortor. Arcu vitae elementum curabitur vitae nunc. In hac habitasse platea dictumst. Viverra tellus in hac habitasse platea dictumst vestibulum. Vel orci porta non pulvinar. Tincidunt lobortis feugiat vivamus at. Faucibus ornare suspendisse sed nisi lacus sed. Etiam dignissim diam quis enim lobortis scelerisque. Faucibus nisl tincidunt eget nullam non nisi. Tincidunt eget nullam non nisi est sit amet facilisis. Vivamus arcu felis bibendum ut tristique et. Arcu non odio euismod lacinia. Ultrices mi tempus imperdiet nulla malesuada. Venenatis a condimentum vitae sapien pellentesque habitant. Laoreet suspendisse interdum consectetur libero id faucibus nisl.\r\n\r\nUltricies mi quis hendrerit dolor. Nisi lacus sed viverra tellus. Integer feugiat scelerisque varius morbi enim. Tristique nulla aliquet enim tortor at auctor urna nunc. Pellentesque habitant morbi tristique senectus et netus et malesuada. Id velit ut tortor pretium viverra suspendisse potenti nullam ac. Sit amet volutpat consequat mauris nunc congue nisi vitae. Pharetra diam sit amet nisl suscipit adipiscing. In hac habitasse platea dictumst vestibulum rhoncus. Gravida arcu ac tortor dignissim convallis. Vitae ultricies leo integer malesuada nunc vel. A diam sollicitudin tempor id. Eu nisl nunc mi ipsum. Facilisis volutpat est velit egestas dui id ornare.\r\n\r\nIn fermentum et sollicitudin ac orci. Non consectetur a erat nam at lectus urna duis. A diam sollicitudin tempor id eu nisl nunc. Lorem mollis aliquam ut porttitor leo a diam. Amet porttitor eget dolor morbi non arcu risus quis varius. Faucibus vitae aliquet nec ullamcorper sit. Lacinia quis vel eros donec ac odio tempor orci. Laoreet non curabitur gravida arcu. Sed euismod nisi porta lorem mollis aliquam ut porttitor leo. Amet facilisis magna etiam tempor orci eu. Eu sem integer vitae justo eget magna fermentum. Consectetur lorem donec massa sapien faucibus. Metus aliquam eleifend mi in. Tellus molestie nunc non blandit massa enim nec. Sit amet purus gravida quis blandit turpis. Odio facilisis mauris sit amet massa vitae tortor condimentum. Posuere ac ut consequat semper viverra. Ultricies tristique nulla aliquet enim tortor. Etiam tempor orci eu lobortis elementum. Maecenas accumsan lacus vel facilisis.\r\n\r\nNisl purus in mollis nunc sed id semper risus in. Sit amet est placerat in egestas erat imperdiet. Dolor magna eget est lorem. Ac felis donec et odio. Turpis egestas sed tempus urna et. Massa tempor nec feugiat nisl pretium. Magnis dis parturient montes nascetur ridiculus mus mauris vitae. In ornare quam viverra orci sagittis eu. Faucibus in ornare quam viverra orci sagittis. Porta nibh venenatis cras sed felis eget velit aliquet sagittis."; - } - } - private bool _configuring = false; /// @@ -789,10 +1263,7 @@ public static string LoremImpsum public static bool ShowMonsterEHP() { var s = (Settings)Application.Current.TryFindResource("Settings"); - if (s.EnableEHPNumbers) - return true; - else - return false; + return s.EnableEHPNumbers; } /// @@ -806,10 +1277,7 @@ public static bool ShowMonsterEHP() public static bool IsAlwaysShowingMonsterInfo() { var s = (Settings)Application.Current.TryFindResource("Settings"); - if (s.AlwaysShowMonsterInfo) - return true; - else - return false; + return s.AlwaysShowMonsterInfo; } /// @@ -829,9 +1297,13 @@ public bool ShowOverlayStatText { var s = (Settings)Application.Current.TryFindResource("Settings"); if (s.OverlayStatIconShown) + { return false; + } else + { return true; + } } } @@ -840,21 +1312,22 @@ public bool ShowOverlayStatIcon get { var s = (Settings)Application.Current.TryFindResource("Settings"); - if (s.OverlayStatIconShown) - return true; - else - return false; + return s.OverlayStatIconShown; } } - // public bool? roadOverride() { - //should work + // should work if (QuestID() != 23527 && QuestID() != 23628) + { return true; + } else if (QuestID() == 23527 || QuestID() == 23628) + { return false; + } + return null; } @@ -866,8 +1339,11 @@ public bool ShowOverlayStatIcon public string GetQuestNameFromID(int id) { if (!DiscordManager.ShowDiscordQuestNames()) + { return string.Empty; - string QuestValue1; + } + + string? QuestValue1; EZlion.Mapper.Quest.IDName.TryGetValue(id, out QuestValue1); //returns true return QuestValue1 + string.Empty; @@ -889,11 +1365,14 @@ public string QuestTimeMode } } - public int PreviousHubAreaID; // TODO need to create another variable for discordManager. Ideally discordManager state only affects it. + // TODO need to create another variable for discordManager. Ideally discordManager state only affects it. + public int PreviousHubAreaID; + public bool closedGame; + public bool isInLauncherBool; - readonly Mem m = new(); + readonly Mem m = new (); // TODO convert to bool and remove isInLauncherBool? public string isInLauncher() @@ -901,16 +1380,19 @@ public string isInLauncher() // TODO: test if (QuestID() != 0 || AreaID() != 0 && Location.IDName.ContainsKey(AreaID())) + { return "No"; + } var pidToSearch = m.GetProcIdFromName("mhf"); - //Init a condition indicating that you want to search by process id. + + // Init a condition indicating that you want to search by process id. var condition = new PropertyCondition(AutomationElementIdentifiers.ProcessIdProperty, pidToSearch); AutomationElement? element = null; - //Find the automation element matching the criteria + // Find the automation element matching the criteria // TODO: does this even fix anything? try { @@ -923,24 +1405,35 @@ public string isInLauncher() } if (element == null || pidToSearch == 0) - return "NULL"; + { + return "NULL"; // TODO this looks ugly + } - //get the classname + // get the classname var className = element.Current.ClassName; if (className == "MHFLAUNCH") + { return "Yes"; + + } else + { return "No"; + } } public string GetOverlayModeForRPC() { var s = (Settings)Application.Current.TryFindResource("Settings"); if (s.ShowDiscordRPCOverlayMode) + { return GetOverlayMode(); + } else + { return string.Empty; + } } /// @@ -952,17 +1445,29 @@ public string GetOverlayMode() var s = (Settings)Application.Current.TryFindResource("Settings"); if (Configuring) + { return "(Configuring) "; + } else if (closedGame) + { return "(Closed Game) "; + } else if (isInLauncherBool || isInLauncher() == "Yes") //works? + { return "(Launcher) "; + } else if (isInLauncher() == "NULL") + { return "(No game detected) "; + } else if (QuestID() == 0 && AreaID() == 0 && BlademasterWeaponID() == 0 && GunnerWeaponID() == 0) + { return "(Main Menu) "; + } else if (QuestID() == 0 && AreaID() == 200 && BlademasterWeaponID() == 0 && GunnerWeaponID() == 0) + { return "(World Select) "; + } else if ( !( QuestID() != 0 @@ -997,15 +1502,23 @@ public string GetOverlayMode() || s.EnableMap || s.PersonalBestTimePercentShown || s.EnablePersonalBestPaceColor) // TODO monster 1 overview? and update README + { return string.Empty; + } else if (s.TimerInfoShown && s.EnableInputLogging && s.EnableQuestLogging && PartySize() == 1 && s.OverlayModeWatermarkShown) { if (DivaSkillUsesLeft() == 0 && StyleRank1() != 15 && StyleRank2() != 15) + { return "(Time Attack) "; + } else if (StyleRank1() == 15 || StyleRank2() == 15) + { return "(Freestyle w/ Secret Tech) "; + } else + { return "(Freestyle No Secret Tech) "; + } } else { @@ -1076,17 +1589,18 @@ public bool GetNotRoad() { var b = roadOverride(); if (b != null) + { return b.Value; + } + return IsNotRoad(); } - #region monster parts - - //assumption: it follows ferias' monster part order top to bottom, presumably (e.g. head is at the top, so part 0 is head, and so on) + // assumption: it follows ferias' monster part order top to bottom, presumably (e.g. head is at the top, so part 0 is head, and so on) // grouping by skeleton too /// - ///Monster parts labels + /// Monster parts labels ///int number: The part number from 1 to 10 ///int monsterID: the monsterID /// @@ -1094,9 +1608,13 @@ public string GetPartName(int number, int monsterID) { //keep in mind this has the null if (roadOverride() == false) + { monsterID = RoadSelectedMonster() == 0 ? LargeMonster1ID() : LargeMonster2ID(); + } else if (CaravanOverride()) + { monsterID = CaravanMonster1ID(); + } if (getDureName() != "None") { @@ -1126,9 +1644,13 @@ public string GetPartName(int number, int monsterID) else { if (number <= 0 && number >= 11) + { return "None: "; + } else + { return string.Format(CultureInfo.InvariantCulture, "{0}: ", FindPartName(number, monsterID)); + } } } @@ -1165,9 +1687,13 @@ private static string DeterminePartName(List key, int slot) else { if (slot > MonsterPart.IDName[key].Count) + { return "None"; + } else + { return MonsterPart.IDName[key][slot]; + } } } @@ -1176,7 +1702,9 @@ public string Monster1Part1Number get { if (QuestID() == 0) - return Messages.MONSTER_PART_NOT_LOADED; + { + return Messages.MonsterPartNotLoaded; + } var currentPartHP = Monster1Part1(); return GetPartName(1, LargeMonster1ID()) + currentPartHP.ToString(CultureInfo.InvariantCulture); @@ -1188,7 +1716,9 @@ public string Monster1Part2Number get { if (QuestID() == 0) - return Messages.MONSTER_PART_NOT_LOADED; + { + return Messages.MonsterPartNotLoaded; + } var currentPartHP = Monster1Part2(); return GetPartName(2, LargeMonster1ID()) + currentPartHP.ToString(CultureInfo.InvariantCulture); @@ -1200,7 +1730,9 @@ public string Monster1Part3Number get { if (QuestID() == 0) - return Messages.MONSTER_PART_NOT_LOADED; + { + return Messages.MonsterPartNotLoaded; + } var currentPartHP = Monster1Part3(); return GetPartName(3, LargeMonster1ID()) + currentPartHP.ToString(CultureInfo.InvariantCulture); @@ -1212,7 +1744,9 @@ public string Monster1Part4Number get { if (QuestID() == 0) - return Messages.MONSTER_PART_NOT_LOADED; + { + return Messages.MonsterPartNotLoaded; + } var currentPartHP = Monster1Part4(); return GetPartName(4, LargeMonster1ID()) + currentPartHP.ToString(CultureInfo.InvariantCulture); @@ -1224,7 +1758,9 @@ public string Monster1Part5Number get { if (QuestID() == 0) - return Messages.MONSTER_PART_NOT_LOADED; + { + return Messages.MonsterPartNotLoaded; + } var currentPartHP = Monster1Part5(); return GetPartName(5, LargeMonster1ID()) + currentPartHP.ToString(CultureInfo.InvariantCulture); @@ -1236,7 +1772,9 @@ public string Monster1Part6Number get { if (QuestID() == 0) - return Messages.MONSTER_PART_NOT_LOADED; + { + return Messages.MonsterPartNotLoaded; + } var currentPartHP = Monster1Part6(); return GetPartName(6, LargeMonster1ID()) + currentPartHP.ToString(CultureInfo.InvariantCulture); @@ -1248,7 +1786,9 @@ public string Monster1Part7Number get { if (QuestID() == 0) - return Messages.MONSTER_PART_NOT_LOADED; + { + return Messages.MonsterPartNotLoaded; + } var currentPartHP = Monster1Part7(); return GetPartName(7, LargeMonster1ID()) + currentPartHP.ToString(CultureInfo.InvariantCulture); @@ -1260,7 +1800,9 @@ public string Monster1Part8Number get { if (QuestID() == 0) - return Messages.MONSTER_PART_NOT_LOADED; + { + return Messages.MonsterPartNotLoaded; + } var currentPartHP = Monster1Part8(); return GetPartName(8, LargeMonster1ID()) + currentPartHP.ToString(CultureInfo.InvariantCulture); @@ -1272,7 +1814,9 @@ public string Monster1Part9Number get { if (QuestID() == 0) - return Messages.MONSTER_PART_NOT_LOADED; + { + return Messages.MonsterPartNotLoaded; + } var currentPartHP = Monster1Part9(); return GetPartName(9, LargeMonster1ID()) + currentPartHP.ToString(CultureInfo.InvariantCulture); @@ -1284,7 +1828,9 @@ public string Monster1Part10Number get { if (QuestID() == 0) - return Messages.MONSTER_PART_NOT_LOADED; + { + return Messages.MonsterPartNotLoaded; + } var currentPartHP = Monster1Part10(); return GetPartName(10, LargeMonster1ID()) + currentPartHP.ToString(CultureInfo.InvariantCulture); @@ -1296,7 +1842,9 @@ public string Monster2Part1Number get { if (QuestID() == 0) - return Messages.MONSTER_PART_NOT_LOADED; + { + return Messages.MonsterPartNotLoaded; + } var currentPartHP = Monster2Part1(); return currentPartHP.ToString(CultureInfo.InvariantCulture); @@ -1308,7 +1856,9 @@ public string Monster2Part2Number get { if (QuestID() == 0) - return Messages.MONSTER_PART_NOT_LOADED; + { + return Messages.MonsterPartNotLoaded; + } var currentPartHP = Monster2Part2(); return currentPartHP.ToString(CultureInfo.InvariantCulture); @@ -1320,7 +1870,9 @@ public string Monster2Part3Number get { if (QuestID() == 0) - return Messages.MONSTER_PART_NOT_LOADED; + { + return Messages.MonsterPartNotLoaded; + } var currentPartHP = Monster2Part3(); return currentPartHP.ToString(CultureInfo.InvariantCulture); @@ -1332,7 +1884,9 @@ public string Monster2Part4Number get { if (QuestID() == 0) - return Messages.MONSTER_PART_NOT_LOADED; + { + return Messages.MonsterPartNotLoaded; + } var currentPartHP = Monster2Part4(); return currentPartHP.ToString(CultureInfo.InvariantCulture); @@ -1344,7 +1898,9 @@ public string Monster2Part5Number get { if (QuestID() == 0) - return Messages.MONSTER_PART_NOT_LOADED; + { + return Messages.MonsterPartNotLoaded; + } var currentPartHP = Monster2Part5(); return currentPartHP.ToString(CultureInfo.InvariantCulture); @@ -1356,7 +1912,9 @@ public string Monster2Part6Number get { if (QuestID() == 0) - return Messages.MONSTER_PART_NOT_LOADED; + { + return Messages.MonsterPartNotLoaded; + } var currentPartHP = Monster2Part6(); return currentPartHP.ToString(CultureInfo.InvariantCulture); @@ -1368,7 +1926,9 @@ public string Monster2Part7Number get { if (QuestID() == 0) - return Messages.MONSTER_PART_NOT_LOADED; + { + return Messages.MonsterPartNotLoaded; + } var currentPartHP = Monster2Part7(); return currentPartHP.ToString(CultureInfo.InvariantCulture); @@ -1380,7 +1940,9 @@ public string Monster2Part8Number get { if (QuestID() == 0) - return Messages.MONSTER_PART_NOT_LOADED; + { + return Messages.MonsterPartNotLoaded; + } var currentPartHP = Monster2Part8(); return currentPartHP.ToString(CultureInfo.InvariantCulture); @@ -1392,7 +1954,9 @@ public string Monster2Part9Number get { if (QuestID() == 0) - return Messages.MONSTER_PART_NOT_LOADED; + { + return Messages.MonsterPartNotLoaded; + } var currentPartHP = Monster2Part9(); return currentPartHP.ToString(CultureInfo.InvariantCulture); @@ -1404,14 +1968,16 @@ public string Monster2Part10Number get { if (QuestID() == 0) - return Messages.MONSTER_PART_NOT_LOADED; + { + return Messages.MonsterPartNotLoaded; + } var currentPartHP = Monster2Part10(); return currentPartHP.ToString(CultureInfo.InvariantCulture); } } - #endregion + /// /// Shows the sharpness percentage. @@ -1420,10 +1986,7 @@ public string Monster2Part10Number public static bool ShowSharpnessPercentage() { var s = (Settings)Application.Current.TryFindResource("Settings"); - if (s.EnableSharpnessPercentage) - return true; - else - return false; + return s.EnableSharpnessPercentage; } /// @@ -1433,10 +1996,7 @@ public static bool ShowSharpnessPercentage() public static bool ShowTimeLeftPercentage() { var s = (Settings)Application.Current.TryFindResource("Settings"); - if (s.EnableTimeLeftPercentage) - return true; - else - return false; + return s.EnableTimeLeftPercentage; } /// @@ -1447,14 +2007,20 @@ public static string GetTimerMode() { var s = (Settings)Application.Current.TryFindResource("Settings"); if (s.TimerMode == "Time Left") + { return "Time Left"; + } else if (s.TimerMode == "Time Elapsed") + { return "Time Elapsed"; + } else + { return "Time Left"; + } } - private int MaxSharpness = 0; + private int MaxSharpness; private string TimeLeftPercent = string.Empty; @@ -1534,40 +2100,40 @@ public string Time TimeLeftPercent = string.Empty; } - if (time / Numbers.FRAMES_PER_SECOND / 60 < 10) + if (time / Numbers.FramesPerSecond / 60 < 10) { - if (time / Numbers.FRAMES_PER_SECOND % 60 < 10) + if (time / Numbers.FramesPerSecond % 60 < 10) { - return string.Format(CultureInfo.InvariantCulture, "{0:00}:{1:00}.{2:000}", time / Numbers.FRAMES_PER_SECOND / 60, time / Numbers.FRAMES_PER_SECOND % 60, (int)Math.Round((float)(time % Numbers.FRAMES_PER_SECOND * 100) / 3)) + TimeLeftPercent;//should work fine + return string.Format(CultureInfo.InvariantCulture, "{0:00}:{1:00}.{2:000}", time / Numbers.FramesPerSecond / 60, time / Numbers.FramesPerSecond % 60, (int)Math.Round((float)(time % Numbers.FramesPerSecond * 100) / 3)) + TimeLeftPercent;//should work fine } else { - return string.Format(CultureInfo.InvariantCulture, "{0:00}:{1}.{2:000}", time / Numbers.FRAMES_PER_SECOND / 60, time / Numbers.FRAMES_PER_SECOND % 60, (int)Math.Round((float)(time % Numbers.FRAMES_PER_SECOND * 100) / 3)) + TimeLeftPercent; + return string.Format(CultureInfo.InvariantCulture, "{0:00}:{1}.{2:000}", time / Numbers.FramesPerSecond / 60, time / Numbers.FramesPerSecond % 60, (int)Math.Round((float)(time % Numbers.FramesPerSecond * 100) / 3)) + TimeLeftPercent; } } else { - if (time / Numbers.FRAMES_PER_SECOND % 60 < 10) + if (time / Numbers.FramesPerSecond % 60 < 10) { - return string.Format(CultureInfo.InvariantCulture, "{0}:{1:00}.{2:000}", time / Numbers.FRAMES_PER_SECOND / 60, time / Numbers.FRAMES_PER_SECOND % 60, (int)Math.Round((float)(time % Numbers.FRAMES_PER_SECOND * 100) / 3)) + TimeLeftPercent; + return string.Format(CultureInfo.InvariantCulture, "{0}:{1:00}.{2:000}", time / Numbers.FramesPerSecond / 60, time / Numbers.FramesPerSecond % 60, (int)Math.Round((float)(time % Numbers.FramesPerSecond * 100) / 3)) + TimeLeftPercent; } else { - return string.Format(CultureInfo.InvariantCulture, "{0}:{1}.{2:000}", time / Numbers.FRAMES_PER_SECOND / 60, time / Numbers.FRAMES_PER_SECOND % 60, (int)Math.Round((float)(time % Numbers.FRAMES_PER_SECOND * 100) / 3)) + TimeLeftPercent; + return string.Format(CultureInfo.InvariantCulture, "{0}:{1}.{2:000}", time / Numbers.FramesPerSecond / 60, time / Numbers.FramesPerSecond % 60, (int)Math.Round((float)(time % Numbers.FramesPerSecond * 100) / 3)) + TimeLeftPercent; } } } else { - return string.Format(CultureInfo.InvariantCulture, "{0:00}:{1:00}.{2:000}", time / Numbers.FRAMES_PER_SECOND / 60, time / Numbers.FRAMES_PER_SECOND % 60, (int)Math.Round((float)(time % Numbers.FRAMES_PER_SECOND * 100) / 3)) + TimeLeftPercent; + return string.Format(CultureInfo.InvariantCulture, "{0:00}:{1:00}.{2:000}", time / Numbers.FramesPerSecond / 60, time / Numbers.FramesPerSecond % 60, (int)Math.Round((float)(time % Numbers.FramesPerSecond * 100) / 3)) + TimeLeftPercent; } } } - //per quest - public int HighestAtk { get; set; } = 0; + // per quest + public int HighestAtk { get; set; } - public double HighestDPS { get; set; } = 0; + public double HighestDPS { get; set; } /// /// Shows the color of the highest atk. @@ -1576,82 +2142,55 @@ public string Time public static bool ShowHighestAtkColor() { var s = (Settings)Application.Current.TryFindResource("Settings"); - if (s.EnableHighestAtkColor) - return true; - else - return false; + return s.EnableHighestAtkColor; } public static bool ShowHighestDPSColor() { var s = (Settings)Application.Current.TryFindResource("Settings"); - if (s.EnableHighestDPSColor) - return true; - else - return false; + return s.EnableHighestDPSColor; } public static bool ShowAverageHitsPerSecondColor() { var s = (Settings)Application.Current.TryFindResource("Settings"); - if (s.EnableAverageHitsPerSecondColor) - return true; - else - return false; + return s.EnableAverageHitsPerSecondColor; } public static bool ShowAverageAPMColor() { var s = (Settings)Application.Current.TryFindResource("Settings"); - if (s.EnableAverageActionsPerMinuteColor) - return true; - else - return false; + return s.EnableAverageActionsPerMinuteColor; } public static bool ShowHitsTakenBlockedColor() { var s = (Settings)Application.Current.TryFindResource("Settings"); - if (s.EnableTotalHitsTakenBlockedColor) - return true; - else - return false; + return s.EnableTotalHitsTakenBlockedColor; } public static bool ShowQuestPaceColor() { var s = (Settings)Application.Current.TryFindResource("Settings"); - if (s.EnableQuestPaceColor) - return true; - else - return false; + return s.EnableQuestPaceColor; } public static bool ShowPersonalBestPaceColor() { var s = (Settings)Application.Current.TryFindResource("Settings"); - if (s.EnablePersonalBestPaceColor) - return true; - else - return false; + return s.EnablePersonalBestPaceColor; } public static bool ShowHighestMonsterAttackMultiplierColor() { var s = (Settings)Application.Current.TryFindResource("Settings"); - if (s.EnableHighestMonsterAttackMultiplierColor) - return true; - else - return false; + return s.EnableHighestMonsterAttackMultiplierColor; } public static bool ShowLowestMonsterDefrateColor() { var s = (Settings)Application.Current.TryFindResource("Settings"); - if (s.EnableLowestMonsterDefrateColor) - return true; - else - return false; + return s.EnableLowestMonsterDefrateColor; } public string isHighestAtk @@ -1729,12 +2268,16 @@ public string isPlayerHit { var weaponFound = WeaponCanUseReflect.WeaponTypeID.ContainsKey(WeaponType()); if (!weaponFound) + { return "#f5e0dc"; + } var hasReflect = false; if (WeaponCanUseReflect.WeaponTypeID[WeaponType()]) + { hasReflect = true; + } // for speedrunners to get hit by 1 small bomb at least. and 2 perfect guards to get max obscurity. if (!hasReflect && TotalHitsTakenBlocked <= 1 || hasReflect && TotalHitsTakenBlocked <= 3 && ShowHitsTakenBlockedColor()) @@ -1754,16 +2297,22 @@ public double GetAverageHitsPerSecond(int weaponTypeID) { var weaponFound = WeaponCanUseReflect.WeaponTypeID.ContainsKey(weaponTypeID); if (!weaponFound) + { return 0; + } var averageFound = WeaponAverageHitsPerSecond.WeaponAverageHitsPerSecondID.ContainsKey(weaponTypeID); if (!averageFound) + { return 0; + } var averageMultiplier = 0.5; if (!WeaponCanUseReflect.WeaponTypeID[weaponTypeID]) + { averageMultiplier = 0.4; + } return WeaponAverageHitsPerSecond.WeaponAverageHitsPerSecondID[weaponTypeID] * averageMultiplier; } @@ -1790,9 +2339,13 @@ public string isOnPace if (timePercent >= monster1HPPercent && ShowQuestPaceColor()) { if (GetTimerMode() == "Time Left") + { QuestTimeIcon = "../Assets/Icons/png/sand_clock2_red.png"; + } else + { QuestTimeIcon = "../Assets/Icons/png/clock_red.png"; + } return "#f38ba8"; @@ -1800,9 +2353,13 @@ public string isOnPace else { if (GetTimerMode() == "Time Left") + { QuestTimeIcon = "../Assets/Icons/png/sand_clock2.png"; + } else + { QuestTimeIcon = "../Assets/Icons/png/clock.png"; + } return "#f5e0dc"; } @@ -1841,21 +2398,26 @@ public string isOnBestPace } } - public string PersonalBestLoaded = Messages.TIMER_NOT_LOADED; + public string PersonalBestLoaded = Messages.TimerNotLoaded; public string PersonalBestTimePercent { get { - if (PersonalBestLoaded != Messages.TIMER_NOT_LOADED && ShowPersonalBestPaceColor()) + if (PersonalBestLoaded != Messages.TimerNotLoaded && ShowPersonalBestPaceColor()) { const int framesPerSecond = 30; var personalBestInFrames = (int)(framesPerSecond * TimeSpan.ParseExact(PersonalBestLoaded, "mm':'ss'.'fff", CultureInfo.InvariantCulture).TotalSeconds); var personalBestTimeFramesElapsed = 0; if (GetTimerMode() == "Time Left") + { personalBestTimeFramesElapsed = TimeDefInt() - personalBestInFrames; + } else + { personalBestTimeFramesElapsed = personalBestInFrames; + } + var elapsedPersonalBestTimePercent = CalculatePersonalBestInFramesPercent(personalBestTimeFramesElapsed); return string.Format(CultureInfo.InvariantCulture, "{0:0}%", elapsedPersonalBestTimePercent); @@ -1870,12 +2432,17 @@ public string PersonalBestTimePercent public double CalculatePersonalBestInFramesPercent(double personalBestInFramesElapsed) { if (personalBestInFramesElapsed <= 0) + { return 0; + } else + { return 100 - (TimeDefInt() - TimeInt()) / personalBestInFramesElapsed * 100.0; + } } - private double HighestAttackMult { get; set; } = 0; + private double HighestAttackMult { get; set; } + private decimal LowestMonsterDefrate { get; set; } = 1_000; public string isHighestMonsterAttackMultiplier @@ -1913,13 +2480,17 @@ public string isLowestMonsterDefrate } public string MonsterAttackMultiplierIcon { get; set; } = "../Assets/Icons/png/dure_attack.png"; + public string MonsterDefrateIcon { get; set; } = "../Assets/Icons/png/dure_defense.png"; public string DPSIcon { get; set; } = "../Assets/Icons/png/burst.png"; + public string QuestTimeIcon { get; set; } = "../Assets/Icons/png/clock.png"; public string PlayerAttackIcon { get; set; } = "../Assets/Icons/png/attack_up.png"; + public string PlayerHitsTakenBlockedIcon { get; set; } = "../Assets/Icons/png/defense_up.png"; + public string HitCountIcon { get; set; } = "../Assets/Icons/png/blue_soul.png"; public string APMIcon { get; set; } = "../Assets/Icons/png/flame_ul.png"; @@ -1948,16 +2519,24 @@ public string ATK } if (weaponRaw > HighestAtk) + { HighestAtk = weaponRaw; + } if (DPS > HighestDPS) + { HighestDPS = DPS; + } if (double.Parse(AtkMult, CultureInfo.InvariantCulture) > HighestAttackMult) + { HighestAttackMult = double.Parse(AtkMult, CultureInfo.InvariantCulture); + } if (decimal.Parse(DefMult) < LowestMonsterDefrate && decimal.Parse(DefMult, CultureInfo.InvariantCulture) != 0) + { LowestMonsterDefrate = decimal.Parse(DefMult, CultureInfo.InvariantCulture); + } return weaponRaw.ToString(CultureInfo.InvariantCulture); } @@ -2166,20 +2745,28 @@ public int DisplayMonsterEHP(decimal monsterDefrate, int monsterHP) previousMonsterDefrate = decimal.Zero; return 0; } + var s = (Settings)Application.Current.TryFindResource("Settings"); if (s.EnableMonsterEHPDisplayCorrector) { if (s.MonsterEHPDisplayCorrectorDefrateMinimumThreshold >= s.MonsterEHPDisplayCorrectorDefrateMaximumThreshold) + { return monsterHP; + } if (monsterDefrate > s.MonsterEHPDisplayCorrectorDefrateMinimumThreshold && monsterDefrate < s.MonsterEHPDisplayCorrectorDefrateMaximumThreshold) { previousMonsterDefrate = monsterDefrate; var result = Convert.ToDecimal(monsterHP / previousMonsterDefrate); if (result <= int.MaxValue && result >= int.MinValue) + { return Convert.ToInt32(result); + + } else + { return monsterHP; + } } else { @@ -2188,9 +2775,14 @@ public int DisplayMonsterEHP(decimal monsterDefrate, int monsterHP) var result = Convert.ToDecimal(monsterHP / previousMonsterDefrate); if (result <= int.MaxValue && result >= int.MinValue) + { return Convert.ToInt32(result); + + } else + { return monsterHP; + } } else { @@ -2211,6 +2803,7 @@ public int DisplayMonsterEHP(decimal monsterDefrate, int monsterHP) else { return 0; + // Handle the case where the result is too large or too small for an int // Return an appropriate value or throw an exception if necessary } @@ -2226,17 +2819,26 @@ public int DisplayMonsterEHP(decimal monsterDefrate, int monsterHP) public void ReloadMaxEHP() { if (savedMonster1MaxHP < Monster1HPInt()) + { savedMonster1MaxHP = (int)(Monster1HPInt() / Monster1DefMult()); + } + if (savedMonster2MaxHP < Monster2HPInt()) + { savedMonster2MaxHP = (int)(Monster2HPInt() / Monster2DefMult()); + } + if (savedMonster3MaxHP < Monster3HPInt()) + { savedMonster3MaxHP = (int)(Monster3HPInt() / float.Parse("1", CultureInfo.InvariantCulture.NumberFormat)); + } + if (savedMonster4MaxHP < Monster4HPInt()) + { savedMonster4MaxHP = (int)(Monster4HPInt() / float.Parse("1", CultureInfo.InvariantCulture.NumberFormat)); + } } - #region monster status - /// /// Gets the current poison. /// @@ -2245,7 +2847,10 @@ public int PoisonCurrent get { if (Configuring) + { return 100; + } + return SelectedMonster switch { 0 => Monster1Poison(), @@ -2266,7 +2871,10 @@ public int PoisonMax get { if (Configuring) + { return 100; + } + return SelectedMonster switch { 0 => Monster1PoisonNeed(), @@ -2284,7 +2892,10 @@ public int SleepCurrent get { if (Configuring) + { return 100; + } + return SelectedMonster switch { 0 => Monster1Sleep(), @@ -2305,7 +2916,10 @@ public int SleepMax get { if (Configuring) + { return 100; + } + return SelectedMonster switch { 0 => Monster1SleepNeed(), @@ -2323,7 +2937,10 @@ public int ParaCurrent get { if (Configuring) + { return 100; + } + return SelectedMonster switch { 0 => Monster1Para(), @@ -2344,7 +2961,10 @@ public int ParaMax get { if (Configuring) + { return 100; + } + return SelectedMonster switch { 0 => Monster1ParaNeed(), @@ -2362,7 +2982,10 @@ public int BlastCurrent get { if (Configuring) + { return 100; + } + return SelectedMonster switch { 0 => Monster1Blast(), @@ -2383,7 +3006,10 @@ public int BlastMax get { if (Configuring) + { return 100; + } + return SelectedMonster switch { 0 => Monster1BlastNeed(), @@ -2401,7 +3027,10 @@ public int StunCurrent get { if (Configuring) + { return 100; + } + return SelectedMonster switch { 0 => Monster1Stun(), @@ -2422,7 +3051,10 @@ public int StunMax get { if (Configuring) + { return 100; + } + return SelectedMonster switch { 0 => Monster1StunNeed(), @@ -2497,7 +3129,7 @@ public int Monster1StunForDictionary() }; } - #endregion + /// /// Gets the name of Duremudira. @@ -2506,91 +3138,116 @@ public int Monster1StunForDictionary() public string getDureName() { if (QuestID() == 21731 || QuestID() == 21749) + { return "1st District Duremudira"; + } else if (QuestID() == 21746 || QuestID() == 21750) + { return "2nd District Duremudira"; + } else if (QuestID() == 21747 || QuestID() == 21734) + { return "3rd District Duremudira"; + } else if (QuestID() == 21748) + { return "4th District Duremudira"; + } else if (QuestID() == 23648 || QuestID() == 23649) + { return "Arrogant Duremudira"; + } else + { return "None"; + } } - //quest ids - //ravi 62105 TODO: same ids in all phases? - //violent 62101 - //berserk - //berserk practice - // support 1 55803 - //extreme + // quest ids + // ravi 62105 TODO: same ids in all phases? + // violent 62101 + // berserk + // berserk practice + // support 1 55803 + // extreme /// /// Gets the name of the ravi. /// /// public string getRaviName() { - //quest ids: - //mp road: 23527 - //solo road: 23628 - //1st district dure: 21731 - //2nd district dure: 21746 - //1st district dure sky corridor: 21749 - //2nd district dure sky corridor: 21750 - //arrogant dure repel: 23648 - //arrogant dure slay: 23649 - //urgent tower: 21751 - //4th district dure: 21748 - //3rd district dure: 21747 - //3rd district dure 2: 21734 - //UNUSED sky corridor: 21730 - //sky corridor prologue: 21729 - //raviente 62105 - //raviente carve 62108 - ///violent raviente 62101 - ///violent carve 62104 - //berserk slay practice 55796 - //berserk support practice 1 55802 - //berserk support practice 2 55803 - //berserk support practice 3 55804 - //berserk support practice 4 55805 - //berserk support practice 5 55806 - //berserk practice carve 55807 - //berserk slay 54751 - //berserk support 1 54756 - //berserk support 2 54757 - //berserk support 3 54758 - //berserk support 4 54759 - //berserk support 5 54760 - //berserk carve 54761 - //extreme slay (musou table 54) 55596 - //extreme support 1 55602 - //extreme support 2 55603 - //extreme support 3 55604 - //extreme support 4 55605 - //extreme support 5 55606 - //extreme carve 55607 + // quest ids: + // mp road: 23527 + // solo road: 23628 + // 1st district dure: 21731 + // 2nd district dure: 21746 + // 1st district dure sky corridor: 21749 + // 2nd district dure sky corridor: 21750 + // arrogant dure repel: 23648 + // arrogant dure slay: 23649 + // urgent tower: 21751 + // 4th district dure: 21748 + // 3rd district dure: 21747 + // 3rd district dure 2: 21734 + // UNUSED sky corridor: 21730 + // sky corridor prologue: 21729 + // raviente 62105 + // raviente carve 62108 + // violent raviente 62101 + // violent carve 62104 + // berserk slay practice 55796 + // berserk support practice 1 55802 + // berserk support practice 2 55803 + // berserk support practice 3 55804 + // berserk support practice 4 55805 + // berserk support practice 5 55806 + // berserk practice carve 55807 + // berserk slay 54751 + // berserk support 1 54756 + // berserk support 2 54757 + // berserk support 3 54758 + // berserk support 4 54759 + // berserk support 5 54760 + // berserk carve 54761 + // extreme slay (musou table 54) 55596 + // extreme support 1 55602 + // extreme support 2 55603 + // extreme support 3 55604 + // extreme support 4 55605 + // extreme support 5 55606 + // extreme carve 55607 if (QuestID() == 62105 || QuestID() == 62108) + { return "Raviente"; + } else if (QuestID() == 62101 || QuestID() == 62104) + { return "Violent Raviente"; + } else if (QuestID() == 55796 || QuestID() == 55802 || QuestID() == 55803 || QuestID() == 55804 || QuestID() == 55805 || QuestID() == 55806 || QuestID() == 55807) + { return "Berserk Raviente Practice"; + } else if (QuestID() == 54751 || QuestID() == 54756 || QuestID() == 54757 || QuestID() == 54758 || QuestID() == 54759 || QuestID() == 54760 || QuestID() == 54761) + { return "Berserk Raviente"; + } else if (QuestID() == 55596 || QuestID() == 55602 || QuestID() == 55603 || QuestID() == 55604 || QuestID() == 55605 || QuestID() == 55606 || QuestID() == 55607) + { return "Extreme Raviente"; + } else { return "None"; } } - public string Monster1Name => getDureName() != "None" ? getDureName() : getRaviName() != "None" ? getRaviName() : getMonsterName(GetNotRoad() || RoadSelectedMonster() == 0 ? LargeMonster1ID() : LargeMonster2ID()); //monster 1 is used for the first display and road uses 2nd choice to store 2nd monster + public string Monster1Name => getDureName() != "None" ? getDureName() : getRaviName() != "None" ? getRaviName() : getMonsterName(GetNotRoad() || RoadSelectedMonster() == 0 ? LargeMonster1ID() : LargeMonster2ID()); // monster 1 is used for the first display and road uses 2nd choice to store 2nd monster + public string Monster2Name => CaravanOverride() ? getMonsterName(CaravanMonster2ID(), false) : getMonsterName(LargeMonster2ID(), false); + public string Monster3Name => getMonsterName(LargeMonster3ID(), false); + public string Monster4Name => getMonsterName(LargeMonster4ID(), false); /// @@ -2706,11 +3363,11 @@ public string GetRankName(int id) case 23603: return "Upper Shiten "; } - //10m upper shiten/musou true slay + // 10m upper shiten/musou true slay - case 56://twinhead rajang / voljang and rajang - case 57://twinhead mi ru / white and brown espi / unknown and zeru / rajang and dorag + case 56:// twinhead rajang / voljang and rajang + case 57:// twinhead mi ru / white and brown espi / unknown and zeru / rajang and dorag return "Twinhead "; case 64: return "Zenith★1 "; @@ -2741,8 +3398,7 @@ public string RealMonsterName { get { - - ////https://stackoverflow.com/questions/4315564/capitalizing-words-in-a-string-using-c-sharp + // https://stackoverflow.com/questions/4315564/capitalizing-words-in-a-string-using-c-sharp int id; if (roadOverride() == false) @@ -2758,7 +3414,7 @@ public string RealMonsterName id = LargeMonster1ID(); } - //dure + // dure if (QuestID() == 21731 || QuestID() == 21746 || QuestID() == 21749 || QuestID() == 21750) { return "Duremudira"; @@ -2771,22 +3427,21 @@ public string RealMonsterName return DetermineMonsterName(id); } - //quest ids: - //mp road: 23527 - //solo road: 23628 - //1st district dure: 21731 - //2nd district dure: 21746 - //1st district dure sky corridor: 21749 - //2nd district dure sky corridor: 21750 - //arrogant dure repel: 23648 - //arrogant dure slay: 23649 - //urgent tower: 21751 - //4th district dure: 21748 - //3rd district dure: 21747 - //3rd district dure 2: 21734 - //UNUSED sky corridor: 21730 - //sky corridor prologue: 21729 - + // quest ids: + // mp road: 23527 + // solo road: 23628 + // 1st district dure: 21731 + // 2nd district dure: 21746 + // 1st district dure sky corridor: 21749 + // 2nd district dure sky corridor: 21750 + // arrogant dure repel: 23648 + // arrogant dure slay: 23649 + // urgent tower: 21751 + // 4th district dure: 21748 + // 3rd district dure: 21747 + // 3rd district dure 2: 21734 + // UNUSED sky corridor: 21730 + // sky corridor prologue: 21729 } public string DetermineMonsterName(int id) @@ -2887,6 +3542,7 @@ public string getMonsterName(int id, bool isFirstMonster = true) { return "Blitzkrieg Bogabadorumu"; } + if (id == 0) { return string.Empty; @@ -2904,8 +3560,6 @@ public string getMonsterName(int id, bool isFirstMonster = true) } } - #region monster hp - public string Monster1HP { get @@ -2933,18 +3587,25 @@ public string Monster1MaxHP get { if (Configuring) + { return "1"; + } + if (TimeDefInt() == TimeInt()) + { savedMonster1MaxHP = Monster1HPInt(); + } + if (LargeMonster1ID() > 0 && savedMonster1ID == 0) { savedMonster1MaxHP = Monster1HPInt(); savedMonster1ID = LargeMonster1ID(); - } - if (savedMonster1ID > 0) + if (savedMonster1ID > 0) + { savedMonster1ID = LargeMonster1ID(); + } if (GetNotRoad() || RoadSelectedMonster() == 0) { @@ -2956,6 +3617,7 @@ public string Monster1MaxHP } } } + public string Monster2HP => Configuring ? "0" : ShowMonsterEHP() ? @@ -2967,38 +3629,54 @@ public string Monster2MaxHP get { if (Configuring) + { return "1"; + } + if (TimeDefInt() == TimeInt()) + { savedMonster2MaxHP = Monster2HPInt(); + } + if (RoadSelectedMonster() > 0 && savedMonster2ID == 0) { savedMonster2MaxHP = Monster2HPInt(); savedMonster2ID = RoadSelectedMonster(); } + if (savedMonster2ID > 0) + { savedMonster2ID = RoadSelectedMonster(); + } return savedMonster2MaxHP.ToString(CultureInfo.InvariantCulture); } } + public string Monster3HP => Configuring ? "0" : ShowMonsterEHP() ? DisplayMonsterEHP(1, Monster3HPInt()).ToString(CultureInfo.InvariantCulture) : Monster3HPInt().ToString(CultureInfo.InvariantCulture); - public string Monster3MaxHP { get { if (Configuring) + { return "1"; + } + if (TimeDefInt() == TimeInt()) + { savedMonster3MaxHP = Monster3HPInt(); + } + return savedMonster3MaxHP.ToString(CultureInfo.InvariantCulture); } } + public string Monster4HP => Configuring ? "0" : ShowMonsterEHP() ? @@ -3010,17 +3688,20 @@ public string Monster4MaxHP get { if (Configuring) + { return "1"; + } + if (TimeDefInt() == TimeInt()) + { savedMonster4MaxHP = Monster4HPInt(); + } + return savedMonster4MaxHP.ToString(CultureInfo.InvariantCulture); } } - #endregion - - /* - Multipliers + /* Multipliers Sword and Shield 單手劍 片手剣 1.4x Dual Swords 雙劍 双剣 1.4x Great Sword 大劍 大剣 4.8x @@ -3035,8 +3716,7 @@ Magnet Spike 磁斬鎚 マグネットスパイク 5.4x Heavy Bowgun 重銃 ヘビィボウガン 1.2x Light Bowgun 輕弩 ライトボウガン 1.2x Bow 弓 弓 1.2x - - IDs + IDs 0 Great Sword 1 Heavy Bowgun 2 Hammer @@ -3052,7 +3732,7 @@ 11 Tonfa 12 Switch Axe F 13 Magnet Spike 14 Group - */ + */ /// /// Gets the multiplier from weapon type. /// @@ -3102,8 +3782,6 @@ public static string GetWeaponNameFromType(int weaponType) }; } - #region monster icon - /// @@ -3119,17 +3797,27 @@ public string CurrentMonster1Icon int id; if (roadOverride() == false) + { id = RoadSelectedMonster() == 0 ? LargeMonster1ID() : LargeMonster2ID(); + } else if (CaravanOverride()) + { id = CaravanMonster1ID(); + } else + { id = LargeMonster1ID(); + } - //dure + // dure if (QuestID() == 21731 || QuestID() == 21746 || QuestID() == 21749 || QuestID() == 21750) + { id = 132; + } else if (QuestID() == 23648 || QuestID() == 23649) + { id = 167; + } return DetermineMonsterImage(id); } @@ -3146,9 +3834,13 @@ public string CurrentMonster1Image { var renderFound = MonsterRenderMapper.MonsterRender.ContainsKey(monsterIcon); if (renderFound) + { return MonsterRenderMapper.MonsterRender[monsterIcon]; + } else - return "https://i.imgur.com/3pQEtzw.png"; + { + return Messages.UnknownMonsterIcon; + } } else { @@ -3168,9 +3860,13 @@ public string CurrentMonster2Image { var renderFound = MonsterRenderMapper.MonsterRender.ContainsKey(monsterIcon); if (renderFound) + { return MonsterRenderMapper.MonsterRender[monsterIcon]; + } else - return "https://i.imgur.com/3pQEtzw.png"; + { + return Messages.UnknownMonsterIcon; + } } else { @@ -3190,9 +3886,13 @@ public string CurrentMonster3Image { var renderFound = MonsterRenderMapper.MonsterRender.ContainsKey(monsterIcon); if (renderFound) + { return MonsterRenderMapper.MonsterRender[monsterIcon]; + } else - return "https://i.imgur.com/3pQEtzw.png"; + { + return Messages.UnknownMonsterIcon; + } } else { @@ -3212,9 +3912,13 @@ public string CurrentMonster4Image { var renderFound = MonsterRenderMapper.MonsterRender.ContainsKey(monsterIcon); if (renderFound) + { return MonsterRenderMapper.MonsterRender[monsterIcon]; + } else - return "https://i.imgur.com/3pQEtzw.png"; + { + return Messages.UnknownMonsterIcon; + } } else { @@ -3230,17 +3934,27 @@ public string CurrentMonster2Icon int id; if (roadOverride() == false) + { id = RoadSelectedMonster() == 0 ? LargeMonster2ID() : LargeMonster1ID(); + } else if (CaravanOverride()) + { id = CaravanMonster2ID(); + } else + { id = LargeMonster2ID(); + } //dure if (QuestID() == 21731 || QuestID() == 21746 || QuestID() == 21749 || QuestID() == 21750) + { id = 132; + } else if (QuestID() == 23648 || QuestID() == 23649) + { id = 167; + } return DetermineMonsterImage(id); } @@ -3254,9 +3968,13 @@ public string CurrentMonster3Icon //dure if (QuestID() == 21731 || QuestID() == 21746 || QuestID() == 21749 || QuestID() == 21750) + { id = 132; + } else if (QuestID() == 23648 || QuestID() == 23649) + { id = 167; + } return DetermineMonsterImage(id); } @@ -3268,11 +3986,15 @@ public string CurrentMonster4Icon { var id = LargeMonster4ID(); - //dure + // dure if (QuestID() == 21731 || QuestID() == 21746 || QuestID() == 21749 || QuestID() == 21750) + { id = 132; + } else if (QuestID() == 23648 || QuestID() == 23649) + { id = 167; + } return DetermineMonsterImage(id); } @@ -3282,11 +4004,18 @@ public string DetermineMonsterImage(int id) { var keyFound = MonsterImageMapper.MonsterImageID.TryGetValue(id, out var link); if (link == null) - link = "https://i.imgur.com/3pQEtzw.png"; + { + link = Messages.UnknownMonsterIcon; + } + if (keyFound) + { return link; + } else + { return GetAlternateMonsterImage(id); + } } public string DetermineMonsterHPBarColor(int n) @@ -3318,11 +4047,18 @@ public string DetermineMonsterHPBarColor(int n) var keyFound = MonsterColorMapper.MonsterColorID.TryGetValue(monsterID, out var color); if (color == null) + { color = barColorSetting; + } + if (keyFound && s.EnableMonsterHPBarsAutomaticColor) + { return color; + } else + { return barColorSetting; + } } public string DetermineMonsterStrokeColor(int n) @@ -3365,9 +4101,13 @@ public string DetermineMonsterStrokeColor(int n) } if (s.EnableMonsterHPBarsAutomaticColor) + { return color; + } else + { return strokeColorSetting; + } } public string Monster1HPBarColor @@ -3446,9 +4186,13 @@ public string CurrentMap private static string GetGatheringMapFromID(int id) // TODO: are highlands, tidal island or painted falls icons correct? { if (id >= 470 && id < 0) - return "https://i.imgur.com/aAcPJGb.png"; + { + return Messages.EmptyImage; + } else + { return FindGatheringMap(id); + } } private static string FindGatheringMap(int id) @@ -3472,16 +4216,15 @@ private static string DetermineGatheringMap(List key) { var gatheringMap = GatheringMapMapper.GatheringMapID.ContainsKey(key); if (!gatheringMap) - return "https://i.imgur.com/aAcPJGb.png"; + { + return Messages.EmptyImage; + } else + { return GatheringMapMapper.GatheringMapID[key]; + } } - #endregion - - #region gear stats - - /// /// Gets the weapon class /// @@ -3490,16 +4233,24 @@ public string GetWeaponClass(int? weaponClass = null) if (weaponClass == null) { if (CurrentWeaponName == "Light Bowgun" || CurrentWeaponName == "Heavy Bowgun" || CurrentWeaponName == "Bow") + { return "Gunner"; + } else + { return "Blademaster"; + } } else { if (weaponClass == 1 || weaponClass == 5 || weaponClass == 10) + { return "Gunner"; + } else + { return "Blademaster"; + } } } @@ -3509,10 +4260,7 @@ public string GetWeaponClass(int? weaponClass = null) public static string GetTextFormat() { var s = (Settings)Application.Current.TryFindResource("Settings"); - if (s.TextFormatExport != null) - return s.TextFormatExport; - else - return "None"; + return s.TextFormatExport ?? "None"; } /// @@ -3524,10 +4272,7 @@ public static string GetTextFormat() public static string GetGender() { var s = (Settings)Application.Current.TryFindResource("Settings"); - if (s.GenderExport != null) - return s.GenderExport; - else - return "Male"; + return s.GenderExport ?? "Male"; } @@ -3546,7 +4291,9 @@ public string GetRealWeaponName var lv = GetWeaponNameFromType(WeaponType()).Contains("Bowgun") ? GetGRWeaponLevel(GRWeaponLvBowguns()) : GetGRWeaponLevel(GRWeaponLv()); if (GetTextFormat() == "Markdown" && (lv == " Lv. 50" || lv == " Lv. 100")) + { lv = string.Format(CultureInfo.InvariantCulture, "**{0}**", lv); + } var style = WeaponStyle() switch { @@ -3637,73 +4384,112 @@ public string GetAmmoPouch //. also the values have to be skipped if item slot is empty if (ItemName1 == null || ItemName1 == "None" || ItemName1 == "" || AmmoPouchItem1Qty() == 0) + { ItemName1 = "Empty, "; + } else if (ItemName2 == null || ItemName2 == "None" || ItemName2 == "" || AmmoPouchItem2Qty() == 0) + { ItemName1 += ", "; + } else + { ItemName1 += ", "; + } if (ItemName2 == null || ItemName2 == "None" || ItemName2 == "" || AmmoPouchItem2Qty() == 0) + { ItemName2 = "Empty, "; + } else if (ItemName3 == null || ItemName3 == "None" || ItemName3 == "" || AmmoPouchItem3Qty() == 0) + { ItemName2 += ", "; + } else + { ItemName2 += ", "; + } if (ItemName3 == null || ItemName3 == "None" || ItemName3 == "" || AmmoPouchItem3Qty() == 0) + { ItemName3 = "Empty, "; + } else if (ItemName4 == null || ItemName4 == "None" || ItemName4 == "" || AmmoPouchItem4Qty() == 0) + { ItemName3 += ", "; + } else + { ItemName3 += ", "; + } if (ItemName4 == null || ItemName4 == "None" || ItemName4 == "" || AmmoPouchItem4Qty() == 0) + { ItemName4 = "Empty, "; + } else if (ItemName5 == null || ItemName5 == "None" || ItemName5 == "" || AmmoPouchItem5Qty() == 0) + { ItemName4 += ", "; - else + } + else{ ItemName4 += ", "; + } - if (ItemName5 == null || ItemName5 == "None" || ItemName5 == "" || AmmoPouchItem5Qty() == 0) + if (ItemName5 == null || ItemName5 == "None" || ItemName5 == "" || AmmoPouchItem5Qty() == 0){ ItemName5 = "Empty, \n"; - else if (ItemName6 == null || ItemName6 == "None" || ItemName6 == "" || AmmoPouchItem6Qty() == 0) + } + else if (ItemName6 == null || ItemName6 == "None" || ItemName6 == "" || AmmoPouchItem6Qty() == 0){ ItemName5 += string.Empty; - else + } + else{ ItemName5 += "\n"; + } - if (ItemName6 == null || ItemName6 == "None" || ItemName6 == "" || AmmoPouchItem6Qty() == 0) + if (ItemName6 == null || ItemName6 == "None" || ItemName6 == "" || AmmoPouchItem6Qty() == 0){ ItemName6 = "Empty, "; - else if (ItemName7 == null || ItemName7 == "None" || ItemName7 == "" || AmmoPouchItem7Qty() == 0) + } + else if (ItemName7 == null || ItemName7 == "None" || ItemName7 == "" || AmmoPouchItem7Qty() == 0){ ItemName6 += ", "; - else + } + else{ ItemName6 += ", "; + } - if (ItemName7 == null || ItemName7 == "None" || ItemName7 == "" || AmmoPouchItem7Qty() == 0) + if (ItemName7 == null || ItemName7 == "None" || ItemName7 == "" || AmmoPouchItem7Qty() == 0){ ItemName7 = "Empty, "; - else if (ItemName8 == null || ItemName8 == "None" || ItemName8 == "" || AmmoPouchItem8Qty() == 0) + } + else if (ItemName8 == null || ItemName8 == "None" || ItemName8 == "" || AmmoPouchItem8Qty() == 0){ ItemName7 += ", "; - else + } + else{ ItemName7 += ", "; + } - if (ItemName8 == null || ItemName8 == "None" || ItemName8 == "" || AmmoPouchItem8Qty() == 0) + if (ItemName8 == null || ItemName8 == "None" || ItemName8 == "" || AmmoPouchItem8Qty() == 0){ ItemName8 = "Empty, "; - else if (ItemName9 == null || ItemName9 == "None" || ItemName9 == "" || AmmoPouchItem9Qty() == 0) + } + else if (ItemName9 == null || ItemName9 == "None" || ItemName9 == "" || AmmoPouchItem9Qty() == 0){ ItemName8 += ", "; - else + } + else{ ItemName8 += ", "; + } - if (ItemName9 == null || ItemName9 == "None" || ItemName9 == "" || AmmoPouchItem9Qty() == 0) + if (ItemName9 == null || ItemName9 == "None" || ItemName9 == "" || AmmoPouchItem9Qty() == 0){ ItemName9 = "Empty, "; - else if (ItemName10 == null || ItemName10 == "None" || ItemName10 == "" || AmmoPouchItem10Qty() == 0) + } + else if (ItemName10 == null || ItemName10 == "None" || ItemName10 == "" || AmmoPouchItem10Qty() == 0){ ItemName9 += ", "; - else + } + else{ ItemName9 += ", "; + } - if (ItemName10 == null || ItemName10 == "None" || ItemName10 == "" || AmmoPouchItem10Qty() == 0) + if (ItemName10 == null || ItemName10 == "None" || ItemName10 == "" || AmmoPouchItem10Qty() == 0){ ItemName10 = "Empty"; - - else + } + else{ ItemName10 += string.Empty; + } return string.Format(CultureInfo.InvariantCulture, "{0}{1}{2}{3}{4}{5}{6}{7}{8}{9}", ItemName1, ItemName2, ItemName3, ItemName4, ItemName5, ItemName6, ItemName7, ItemName8, ItemName9, ItemName10); } @@ -3751,6 +4537,7 @@ public string GetItemPouch { itemName = "None"; } + itemNames[i] = itemName == null ? "None" : itemName; } @@ -3767,6 +4554,7 @@ public string GetItemPouch itemPouch += ", "; } } + return itemPouch; } } @@ -3795,10 +4583,12 @@ public string GetItemsForRunID(int[] items) } } } + if (sb.Length == 0) { return "None"; } + return sb.ToString(); } @@ -3812,12 +4602,16 @@ public string GetRoadDureSkillsForRunID(int[] skills) if (SkillRoadTower.IDName.TryGetValue(id, out var value) && value != "None" && value != "") { name += value; - if (i != skills.Length - 1) + if (i != skills.Length - 1){ name += ", "; - if (i % 5 == 4) + } + + if (i % 5 == 4){ name += "\n"; + } } } + return string.IsNullOrEmpty(name) ? "None" : name; } @@ -3833,8 +4627,9 @@ public string GetArmorHeadName { ArmorHead.IDName.TryGetValue(ArmorHeadID(), out var piecename); - if (GetTextFormat() == "Markdown" && piecename != null && IsMetaGear(piecename)) + if (GetTextFormat() == "Markdown" && piecename != null && IsMetaGear(piecename)){ piecename = string.Format(CultureInfo.InvariantCulture, "**{0}**", piecename); + } var address = ArmorHeadID().ToString("X4", CultureInfo.InvariantCulture).ToUpperInvariant(); return string.Format(CultureInfo.InvariantCulture, "{0} ({1}) | {2} | {3} | {4}", piecename, address, GetDecoName(ArmorHeadDeco1ID()), GetDecoName(ArmorHeadDeco2ID()), GetDecoName(ArmorHeadDeco3ID())); @@ -3861,8 +4656,9 @@ public string GetArmorChestName { ArmorChest.IDName.TryGetValue(ArmorChestID(), out var piecename); - if (GetTextFormat() == "Markdown" && piecename != null && IsMetaGear(piecename)) + if (GetTextFormat() == "Markdown" && piecename != null && IsMetaGear(piecename)){ piecename = string.Format(CultureInfo.InvariantCulture, "**{0}**", piecename); + } var address = ArmorChestID().ToString("X4", CultureInfo.InvariantCulture).ToUpperInvariant(); return string.Format(CultureInfo.InvariantCulture, "{0} ({1}) | {2} | {3} | {4}", piecename, address, GetDecoName(ArmorChestDeco1ID()), GetDecoName(ArmorChestDeco2ID()), GetDecoName(ArmorChestDeco3ID())); @@ -3889,8 +4685,9 @@ public string GetArmorArmName { ArmorArms.IDName.TryGetValue(ArmorArmsID(), out var piecename); - if (GetTextFormat() == "Markdown" && piecename != null && IsMetaGear(piecename)) + if (GetTextFormat() == "Markdown" && piecename != null && IsMetaGear(piecename)){ piecename = string.Format(CultureInfo.InvariantCulture, "**{0}**", piecename); + } var address = ArmorArmsID().ToString("X4", CultureInfo.InvariantCulture).ToUpperInvariant(); return string.Format(CultureInfo.InvariantCulture, "{0} ({1}) | {2} | {3} | {4}", piecename, address, GetDecoName(ArmorArmsDeco1ID()), GetDecoName(ArmorArmsDeco2ID()), GetDecoName(ArmorArmsDeco3ID())); @@ -3917,8 +4714,9 @@ public string GetArmorWaistName { ArmorWaist.IDName.TryGetValue(ArmorWaistID(), out var piecename); - if (GetTextFormat() == "Markdown" && piecename != null && IsMetaGear(piecename)) + if (GetTextFormat() == "Markdown" && piecename != null && IsMetaGear(piecename)){ piecename = string.Format(CultureInfo.InvariantCulture, "**{0}**", piecename); + } var address = ArmorWaistID().ToString("X4", CultureInfo.InvariantCulture).ToUpperInvariant(); return string.Format(CultureInfo.InvariantCulture, "{0} ({1}) | {2} | {3} | {4}", piecename, address, GetDecoName(ArmorWaistDeco1ID()), GetDecoName(ArmorWaistDeco2ID()), GetDecoName(ArmorWaistDeco3ID())); @@ -3945,8 +4743,9 @@ public string GetArmorLegName { ArmorLegs.IDName.TryGetValue(ArmorLegsID(), out var piecename); - if (GetTextFormat() == "Markdown" && piecename != null && IsMetaGear(piecename)) + if (GetTextFormat() == "Markdown" && piecename != null && IsMetaGear(piecename)){ piecename = string.Format(CultureInfo.InvariantCulture, "**{0}**", piecename); + } var address = ArmorLegsID().ToString("X4", CultureInfo.InvariantCulture).ToUpperInvariant(); return string.Format(CultureInfo.InvariantCulture, "{0} ({1}) | {2} | {3} | {4}", piecename, address, GetDecoName(ArmorLegsDeco1ID()), GetDecoName(ArmorLegsDeco2ID()), GetDecoName(ArmorLegsDeco3ID())); @@ -3973,13 +4772,17 @@ public string GetDecoName(int id, int slot = 0, bool isForImage = false) var keyFound = Item.IDName.TryGetValue(id, out DecoName); - if (GetTextFormat() == "Markdown" && IsMetaItem(id) && DecoName != null && DecoName == "None" && DecoName != "" && keyFound) + if (GetTextFormat() == "Markdown" && IsMetaItem(id) && DecoName != null && DecoName == "None" && DecoName != "" && keyFound){ DecoName = string.Format(CultureInfo.InvariantCulture, "**{0}**", DecoName); + } - if (DecoName == null || DecoName == "None" || DecoName == "") + if (DecoName == null || DecoName == "None" || DecoName == ""){ DecoName = "Empty"; + } else + { DecoName += string.Empty; + } if (DecoName == "Empty" && slot != 0) { @@ -3988,9 +4791,13 @@ public string GetDecoName(int id, int slot = 0, bool isForImage = false) string address; if (!isForImage) + { address = " (" + id.ToString("X4", CultureInfo.InvariantCulture).ToUpperInvariant() + ")"; + } else + { address = string.Empty; + } return string.Format(CultureInfo.InvariantCulture, "{0}{1}", DecoName, address); } @@ -4015,7 +4822,9 @@ public string GetSigilName(int slot) var index = (slot - 1) * 3; if (sigilValues[index] == 0 || sigilNames[index] == 0) + { return "Empty"; + } var type1 = sigilTypes[index] + ": "; var value1 = (sigilValues[index] > 127 ? sigilValues[index] - 256 : sigilValues[index]).ToString(); @@ -4087,10 +4896,14 @@ public string GetCuffs var cuff2 = GetCuff2Name; if (IsMetaItem(Cuff1ID())) + { cuff1 = string.Format(CultureInfo.InvariantCulture, "**{0}**", cuff1); + } if (IsMetaItem(Cuff2ID())) + { cuff2 = string.Format(CultureInfo.InvariantCulture, "**{0}**", cuff2); + } return string.Format(CultureInfo.InvariantCulture, "{0} | {1}", cuff1, cuff2); } @@ -4177,23 +4990,37 @@ public string GetCaravanSkills if (GetTextFormat() == "Markdown") { if (IsMaxCaravanSkill(id1)) + { caravanSkillName1 = string.Format(CultureInfo.InvariantCulture, "**{0}**", caravanSkillName1); + } if (IsMaxCaravanSkill(id2)) + { caravanSkillName2 = string.Format(CultureInfo.InvariantCulture, "**{0}**", caravanSkillName2); + } if (IsMaxCaravanSkill(id3)) + { caravanSkillName3 = string.Format(CultureInfo.InvariantCulture, "**{0}**", caravanSkillName3); + } } if (caravanSkillName1 == "" || caravanSkillName1 == "None") + { return "None"; + } else if (caravanSkillName2 == "" || caravanSkillName2 == "None") + { return caravanSkillName1 + string.Empty; + } else if (caravanSkillName3 == "" || caravanSkillName3 == "None") + { return caravanSkillName1 + ", " + caravanSkillName2; + } else + { return caravanSkillName1 + ", " + caravanSkillName2 + ", " + caravanSkillName3; + } } } @@ -4209,11 +5036,16 @@ public string GetCaravanSkillsForRunID(int skill1, int skill2, int skill3) { SkillName += skillName; if (i != skills.Length - 1) + { SkillName += ", "; - if (i % 5 == 4) + } + + if (i % 5 == 4){ SkillName += "\n"; + } } } + return string.IsNullOrEmpty(SkillName) ? "None" : SkillName; } @@ -4302,8 +5134,9 @@ public static bool IsMaxSkillLevel(int id) case 72: case 74: case 78: - //case 81: - //case 84: + + // case 81: + // case 84: case 89: case 94: case 97: @@ -4337,10 +5170,11 @@ public static bool IsMaxSkillLevel(int id) case 194: case 199: case 201: - case 203://Gunnery? + case 203:// Gunnery? case 212: case 218: - //case 219: + + // case 219: case 222: case 223: case 228: @@ -4431,7 +5265,7 @@ public static bool IsMaxSkillLevel(int id) case 453: case 456: case 457: - case 458://Red Soul + case 458:// Red Soul case 461: case 463: case 464: @@ -4468,7 +5302,8 @@ public static bool IsMaxSkillLevel(int id) case 515: case 516: case 517: - //case 518://dupe? + + // case 518://dupe? case 519: case 520: case 521: @@ -4495,7 +5330,9 @@ public static bool IsMaxSkillLevel(int id) public static bool IsMaxRoadDureSkillLevel(int id, string level) { if (level == "0") + { return false; + } switch (id) { @@ -4505,10 +5342,7 @@ public static bool IsMaxRoadDureSkillLevel(int id, string level) case 2: case 19: case 20: - if (level == "5") - return true; - else - return false; + return level == "5" ? true : false; case 23: case 24: case 25: @@ -4521,24 +5355,15 @@ public static bool IsMaxRoadDureSkillLevel(int id, string level) case 15: case 18: case 22: - if (level == "3") - return true; - else - return false; + return level == "3" ? true : false; case 5: case 28: case 33: case 32: - if (level == "2") - return true; - else - return false; + return level == "2" ? true : false; case 35: case 30: - if (level == "1") - return true; - else - return false; + return level == "1" ? true : false; } } @@ -4563,6 +5388,7 @@ public string GetZenithSkills { skillName = "**" + skillName + "**"; } + skills[i] = skillName; } } @@ -4598,14 +5424,22 @@ public string GetZenithSkillsForRunID(int skill1, int skill2, int skill3, int sk { SkillName += skillName; if (i != skills.Length - 1) + { SkillName += ", "; + } + if (i % 5 == 4) + { SkillName += "\n"; + } } } } - if (string.IsNullOrEmpty(SkillName)) + + if (string.IsNullOrEmpty(SkillName)){ return "None"; + } + return SkillName; } @@ -4616,10 +5450,7 @@ public string GetZenithSkillsForRunID(int skill1, int skill2, int skill3, int sk public static bool GetGouBoostMode() { var s = (Settings)Application.Current.TryFindResource("Settings"); - if (s.GouBoostExport) - return true; - else - return false; + return s.GouBoostExport; } /// @@ -4654,6 +5485,7 @@ public string GetArmorSkills { skillNames[i] = string.Format(CultureInfo.InvariantCulture, "**{0}**", skillNames[i]); } + result += skillNames[i] + (i == 18 ? "" : i % 5 == 4 ? "\n" : ", "); } @@ -4675,14 +5507,23 @@ public string GetArmorSkillsForRunID(int skill1, int skill2, int skill3, int ski { SkillName += skillName; if (i != skills.Length - 1) + { SkillName += ", "; + } + if (i % 5 == 4) + { SkillName += "\n"; + } } } } + if (string.IsNullOrEmpty(SkillName)) + { return "None"; + } + return SkillName; } @@ -4720,9 +5561,13 @@ public string GetArmorSkill(int id) { SkillArmor.IDName.TryGetValue(id, out var skillname); if (skillname == "" || skillname == null) + { return "None"; + } else + { return skillname + string.Empty; + } } /// @@ -4734,9 +5579,13 @@ public string GetArmorSkillWithNull(int id) { SkillArmor.IDName.TryGetValue(id, out var skillname); if (skillname == "") + { return "None"; + } else + { return skillname + string.Empty; + } } /// @@ -4868,47 +5717,82 @@ public string GetAutomaticSkills SkillArmor.IDName.TryGetValue(AutomaticSkillLegs(), out var SkillName6); if (SkillName1 == null || SkillName1 == "None" || SkillName1 == "") + { SkillName1 = string.Empty; + } else if (SkillName2 == null || SkillName2 == "None" || SkillName2 == "") + { SkillName1 += string.Empty; + } else + { SkillName1 += ", "; + } if (SkillName2 == null || SkillName2 == "None" || SkillName2 == "") + { SkillName2 = string.Empty; + } else if (SkillName3 == null || SkillName3 == "None" || SkillName3 == "") + { SkillName2 += string.Empty; + } else + { SkillName2 += ", "; + } if (SkillName3 == null || SkillName3 == "None" || SkillName3 == "") + { SkillName3 = string.Empty; + } else if (SkillName4 == null || SkillName4 == "None" || SkillName4 == "") + { SkillName3 += string.Empty; + } else + { SkillName3 += ", "; + } if (SkillName4 == null || SkillName4 == "None" || SkillName4 == "") + { SkillName4 = string.Empty; + } else if (SkillName5 == null || SkillName5 == "None" || SkillName5 == "") + { SkillName4 += string.Empty; - else + } + else{ SkillName4 += ", "; + } if (SkillName5 == null || SkillName5 == "None" || SkillName5 == "") + { SkillName5 = string.Empty; + } else if (SkillName6 == null || SkillName6 == "None" || SkillName6 == "") + { SkillName5 += string.Empty; + } else + { SkillName5 += "\n"; + } if (SkillName6 == null || SkillName6 == "None" || SkillName6 == "") + { SkillName6 = string.Empty; + } else + { SkillName6 += string.Empty; + } if (SkillName1 == "") + { SkillName1 = "None"; + } return string.Format(CultureInfo.InvariantCulture, "{0}{1}{2}{3}{4}{5}", SkillName1, SkillName2, SkillName3, SkillName4, SkillName5, SkillName6); } @@ -4927,14 +5811,23 @@ public string GetAutomaticSkillsForRunID(int skill1, int skill2, int skill3, int { SkillName += skillName; if (i != skills.Length - 1) + { SkillName += ", "; + } + if (i % 5 == 4) + { SkillName += "\n"; + } } } } + if (string.IsNullOrEmpty(SkillName)) + { return "None"; + } + return SkillName; } @@ -4945,10 +5838,7 @@ public string GetAutomaticSkillsForRunID(int skill1, int skill2, int skill3, int public static string GetTotalGSRWeaponUnlocks() { var s = (Settings)Application.Current.TryFindResource("Settings"); - if (s.GSRUnlocksExport != null) - return s.GSRUnlocksExport; - else - return "11"; + return s.GSRUnlocksExport ?? "11"; } /// @@ -4958,10 +5848,7 @@ public static string GetTotalGSRWeaponUnlocks() public static bool Is11GSR999() { var s = (Settings)Application.Current.TryFindResource("Settings"); - if (s.Enable11GSR999) - return true; - else - return false; + return s.Enable11GSR999; } public string MarkdownSavedGearStats { get; set; } = string.Empty; @@ -5020,39 +5907,60 @@ public string GetGSRSkills SkillName2 += string.Empty; if (SkillName1 == "") + { SkillName1 = "Nothing"; + } if (SkillName2 == "") + { SkillName2 = "Nothing"; + } if (!IsFixedGSRSkillValue(SkillName1)) + { SkillName1 = GetGSRBonus(SkillName1); + } if (!IsFixedGSRSkillValue(SkillName2)) + { SkillName2 = GetGSRBonus(SkillName2); + } // pls if (GetTextFormat() == "Markdown") { if (IsMaxGSRSkillValue(SkillName1) && (SkillName1 != null || SkillName1 != "Nothing" || SkillName1 != "")) + { SkillName1 = string.Format(CultureInfo.InvariantCulture, "**{0}**", SkillName1); + } if (IsMaxGSRSkillValue(SkillName2) && (SkillName2 != null || SkillName2 != "Nothing" || SkillName2 != "")) + { SkillName2 = string.Format(CultureInfo.InvariantCulture, "**{0}**", SkillName2); + } } if (SkillName1 == null || SkillName1 == "Nothing" || SkillName1 == "") + { SkillName1 = string.Empty; + } else if (SkillName2 == null || SkillName2 == "Nothing" || SkillName2 == "") + { SkillName1 += string.Empty; + } else + { SkillName1 += ", "; + } if (SkillName2 == null || SkillName2 == "Nothing" || SkillName2 == "") + { SkillName2 = string.Empty; - + } else + { SkillName2 += string.Empty; + } return string.Format(CultureInfo.InvariantCulture, "{0}{1}", SkillName1, SkillName2); } @@ -5071,14 +5979,22 @@ public string GetGSRSkillsForRunID(int skill1, int skill2) { SkillName += skillName; if (i != skills.Length - 1) + { SkillName += ", "; - if (i % 5 == 4) + } + + if (i % 5 == 4){ SkillName += "\n"; + } } } } + if (string.IsNullOrEmpty(SkillName)) + { return "None"; + } + return SkillName; } @@ -5094,7 +6010,9 @@ public string GetGSRBonus(string skillName) //defense here (needs testing) if (IsFixedGSRSkillValue(skillName)) + { return skillName; + } var Def = 0; var FireRes = 0; @@ -5110,7 +6028,9 @@ public string GetGSRBonus(string skillName) var skillNameType = skillName.Substring(0, skillName.IndexOf("+", StringComparison.InvariantCulture)); if (GSR() >= 10) + { Def += 1; + } if (GSR() >= 20) { @@ -5118,7 +6038,9 @@ public string GetGSRBonus(string skillName) } if (GSR() >= 30) + { ConquestDef += 10; + } if (GSR() >= 40) { @@ -5126,13 +6048,19 @@ public string GetGSRBonus(string skillName) } if (GSR() >= 50) + { ConquestAtk += 2; + } if (GSR() >= 60) + { Def += 1; + } if (GSR() >= 70) + { ConquestDef += 10; + } if (GSR() >= 80) { @@ -5140,13 +6068,17 @@ public string GetGSRBonus(string skillName) } if (GSR() >= 90) + { Def += 1; + } - if (GSR() >= 100) + if (GSR() >= 100){ ConquestAtk += 2; + } - if (GSR() >= 110) + if (GSR() >= 110){ Def += 1; + } if (GSR() >= 120) { @@ -5154,7 +6086,9 @@ public string GetGSRBonus(string skillName) } if (GSR() >= 130) + { ConquestDef += 10; + } if (GSR() >= 140) { @@ -5162,25 +6096,39 @@ public string GetGSRBonus(string skillName) } if (GSR() >= 150) + { ConquestAtk += 2; + } if (GSR() >= 160) + { Def += 1; + } if (GSR() >= 170) + { ConquestDef += 10; + } if (GSR() >= 180) + { AllRes += 1; + } if (GSR() >= 190) + { Def += 1; + } if (GSR() >= 200) + { ConquestAtk += 2; + } if (GSR() >= 210) + { Def += 1; + } if (GSR() >= 220) { @@ -5188,7 +6136,9 @@ public string GetGSRBonus(string skillName) } if (GSR() >= 230) + { ConquestDef += 10; + } if (GSR() >= 240) { @@ -5196,13 +6146,19 @@ public string GetGSRBonus(string skillName) } if (GSR() >= 250) + { ConquestAtk += 2; + } if (GSR() >= 260) + { Def += 1; + } if (GSR() >= 270) + { ConquestDef += 10; + } if (GSR() >= 280) { @@ -5210,13 +6166,19 @@ public string GetGSRBonus(string skillName) } if (GSR() >= 290) + { Def += 1; + } if (GSR() >= 300) + { ConquestAtk += 2; + } if (GSR() >= 310) + { Def += 1; + } if (GSR() >= 320) { @@ -5224,7 +6186,9 @@ public string GetGSRBonus(string skillName) } if (GSR() >= 330) + { ConquestDef += 10; + } if (GSR() >= 340) { @@ -5232,25 +6196,38 @@ public string GetGSRBonus(string skillName) } if (GSR() >= 350) + { ConquestAtk += 2; + } if (GSR() >= 360) + { Def += 2; + } if (GSR() >= 370) + { ConquestDef += 10; + } if (GSR() >= 380) + { AllRes += 1; + } - if (GSR() >= 390) + if (GSR() >= 390){ Def += 2; + } if (GSR() >= 400) + { ConquestAtk += 2; + } if (GSR() >= 410) + { Def += 2; + } if (GSR() >= 420) { @@ -5258,7 +6235,9 @@ public string GetGSRBonus(string skillName) } if (GSR() >= 430) + { ConquestDef += 10; + } if (GSR() >= 440) { @@ -5266,13 +6245,18 @@ public string GetGSRBonus(string skillName) } if (GSR() >= 450) + { ConquestAtk += 2; + } if (GSR() >= 460) + { Def += 2; + } - if (GSR() >= 470) + if (GSR() >= 470){ ConquestDef += 10; + } if (GSR() >= 480) { @@ -5280,13 +6264,19 @@ public string GetGSRBonus(string skillName) } if (GSR() >= 490) + { Def += 2; + } if (GSR() >= 500) + { ConquestAtk += 2; + } if (GSR() >= 510) + { Def += 2; + } if (GSR() >= 520) { @@ -5294,7 +6284,9 @@ public string GetGSRBonus(string skillName) } if (GSR() >= 530) + { ConquestDef += 10; + } if (GSR() >= 540) { @@ -5302,47 +6294,68 @@ public string GetGSRBonus(string skillName) } if (GSR() >= 550) + { ConquestAtk += 2; + } if (GSR() >= 560) + { Def += 2; + } if (GSR() >= 570) + { ConquestDef += 10; + } if (GSR() >= 580) + { AllRes += 1; + } if (GSR() >= 590) + { Def += 2; + } if (GSR() >= 600) + { ConquestAtk += 2; + } if (GSR() >= 610) + { Def += 2; + } if (GSR() >= 620) { FireRes += 2; } - if (GSR() >= 630) + if (GSR() >= 630){ ConquestDef += 10; + } if (GSR() >= 640) { WaterRes += 2; } - if (GSR() >= 650) + if (GSR() >= 650){ + ConquestAtk += 2; + } if (GSR() >= 660) + { Def += 2; + } if (GSR() >= 670) + { ConquestDef += 10; + } if (GSR() >= 680) { @@ -5350,13 +6363,19 @@ public string GetGSRBonus(string skillName) } if (GSR() >= 690) + { Def += 2; + } if (GSR() >= 700) + { ConquestAtk += 2; + } if (GSR() >= 710) + { Def += 2; + } if (GSR() >= 720) { @@ -5364,7 +6383,9 @@ public string GetGSRBonus(string skillName) } if (GSR() >= 730) + { ConquestDef += 10; + } if (GSR() >= 740) { @@ -5372,25 +6393,39 @@ public string GetGSRBonus(string skillName) } if (GSR() >= 750) + { ConquestAtk += 2; + } if (GSR() >= 760) + { Def += 2; + } if (GSR() >= 770) + { ConquestDef += 10; + } if (GSR() >= 780) + { AllRes += 1; + } if (GSR() >= 790) + { Def += 2; + } if (GSR() >= 800) + { ConquestAtk += 4; + } if (GSR() >= 810) + { Def += 2; + } if (GSR() >= 820) { @@ -5398,7 +6433,9 @@ public string GetGSRBonus(string skillName) } if (GSR() >= 830) - ConquestDef += 10;//15? + { + ConquestDef += 10;// 15? + } if (GSR() >= 840) { @@ -5406,13 +6443,18 @@ public string GetGSRBonus(string skillName) } if (GSR() >= 850) + { ConquestAtk += 4; + } if (GSR() >= 860) + { Def += 2; + } - if (GSR() >= 870) + if (GSR() >= 870){ ConquestDef += 10;//15? + } if (GSR() >= 880) { @@ -5420,13 +6462,18 @@ public string GetGSRBonus(string skillName) } if (GSR() >= 890) + { Def += 2; + } if (GSR() >= 900) + { ConquestAtk += 4; + } - if (GSR() >= 910) + if (GSR() >= 910){ Def += 2; + } if (GSR() >= 920) { @@ -5434,7 +6481,9 @@ public string GetGSRBonus(string skillName) } if (GSR() >= 930) - ConquestDef += 10;//15? + { + ConquestDef += 10;// 15? + } if (GSR() >= 940) { @@ -5442,22 +6491,35 @@ public string GetGSRBonus(string skillName) } if (GSR() >= 950) + { ConquestAtk += 4; + } if (GSR() >= 960) + { Def += 2; + } if (GSR() >= 970) - ConquestDef += 10;//15? + { + ConquestDef += 10;// 15? + } if (GSR() >= 980) + { AllRes += 1; + } if (GSR() >= 960) + { + Def += 2; + } if (GSR() >= 999) + { ConquestAtk += 4; + } var GSRSkillMultiplier = GetTotalGSRWeaponUnlocks() switch { @@ -5474,7 +6536,7 @@ public string GetGSRBonus(string skillName) ConquestDef = 300 + 10 * GSRSkillMultiplier; } - //already tested + // already tested return skillNameType switch { "Nothing" => "Nothing", @@ -5504,7 +6566,9 @@ public static string GetMetadata var s = (Settings)Application.Current.TryFindResource("Settings"); if (!s.EnableMetadataExport) + { return string.Empty; + } string guildName; string hunterName; @@ -5512,14 +6576,22 @@ public static string GetMetadata var DateAndTime = DateTime.UtcNow.ToString(CultureInfo.InvariantCulture); if (s.GuildName.Length >= 1) + { guildName = s.GuildName; + } else + { guildName = "Guild Name"; + } if (s.HunterName.Length >= 1) + { hunterName = s.HunterName; + } else + { hunterName = "Hunter Name"; + } return string.Format(CultureInfo.InvariantCulture, "\n{0} | {1} | {2}", hunterName, guildName, DateAndTime); } @@ -5676,10 +6748,12 @@ public static string GetGearDescription { var s = (Settings)Application.Current.TryFindResource("Settings"); - if (s.GearDescriptionExport != null || s.GearDescriptionExport != "") + if (s.GearDescriptionExport != null || s.GearDescriptionExport != ""){ return string.Format(CultureInfo.InvariantCulture, "{0}\n", s.GearDescriptionExport); - else + } + else{ return string.Empty; + } } } @@ -5695,55 +6769,55 @@ public static bool IsMetaItem(int id) { default: return false; - case 14642://hunter taloncharm - case 1681://maiden items + case 14642:// hunter taloncharm + case 1681:// maiden items case 1682: case 1683: case 1684: case 1481: case 1482: case 1483: - case 4750://perfect whetstone - case 8030://shiri - case 8026://encourage - case 8037://impatience charm - case 8031://elixir of peace - case 8040://gathering charm min - case 8042://gathering charm max - case 8047://health charm - case 8052://stamina charm - case 1548://starving wolf potion - case 4943://serious drink affinity - case 9719://all element drug - case 9715://quick mega juice - case 9714://quick max potion - case 4358://potion g2 - case 78://farcaster - case 4952://halk pot - case 5771://halk call - case 1537://nearcaster - case 1888://power sword crystal - case 1553://LS spirit drink - case 14803://adrenaline charm - case 14804://starving wolf charm - case 91://small barrel bombs + case 4750:// perfect whetstone + case 8030:// shiri + case 8026:// encourage + case 8037:// impatience charm + case 8031:// elixir of peace + case 8040:// gathering charm min + case 8042:// gathering charm max + case 8047:// health charm + case 8052:// stamina charm + case 1548:// starving wolf potion + case 4943:// serious drink affinity + case 9719:// all element drug + case 9715:// quick mega juice + case 9714:// quick max potion + case 4358:// potion g2 + case 78:// farcaster + case 4952:// halk pot + case 5771:// halk call + case 1537:// nearcaster + case 1888:// power sword crystal + case 1553:// LS spirit drink + case 14803:// adrenaline charm + case 14804:// starving wolf charm + case 91:// sm all barrel bombs case 92: - case 1782://random ball - case 300://poogie crackers - case 9717://attack medicine - case 34://lifepowder - case 4723://gook amulet - case 5277://gook bomb - case 5279://gook cracker - case 5711://gook whistle - case 5712://gook fireworks - case 5714://gook pickaxe - case 5715://gook fishing net - case 5716://gook bugnet - case 5717://gook gloves - - //decos - //all ravi + case 1782:// random ball + case 300:// poogie crackers + case 9717:// attack medicine + case 34:// lifepowder + case 4723:// gook amulet + case 5277:// gook bomb + case 5279:// gook cracker + case 5711:// gook whistle + case 5712:// gook fireworks + case 5714:// gook pickaxe + case 5715:// gook fishing net + case 5716:// gook bugnet + case 5717:// gook gloves + + // decos + // all ravi case 12724: case 12725: case 12726: @@ -5785,7 +6859,7 @@ public static bool IsMetaItem(int id) case 15078: case 15079: - //all true hiden + // all true hiden case 13640: case 13641: case 13642: @@ -5854,9 +6928,13 @@ public static bool IsMetaItem(int id) public static bool IsMetaGear(string piece) { if (piece.Contains("ZP") || piece.Contains("PZ") || piece.Contains("SnS・") || piece.Contains("DS・") || piece.Contains("GS・") || piece.Contains("LS・") || piece.Contains("Hammer・") || piece.Contains("HH・") || piece.Contains("Lance・") || piece.Contains("GL・") || piece.Contains("Swaxe・") || piece.Contains("Tonfa・") || piece.Contains("Magspike・") || piece.Contains("LBG・") || piece.Contains("HBG・") || piece.Contains("Bow・")) + { return true; + } else + { return false; + } } /// @@ -5867,11 +6945,13 @@ public static bool IsMetaGear(string piece) public static string GetGRWeaponLevel(int level) { if (level == 0) + { return string.Empty; - + } else + { return " Lv. " + level; - + } } /// @@ -5935,53 +7015,76 @@ public string GetRoadDureSkills // pls if (GetTextFormat() == "Markdown") { - if (IsMaxRoadDureSkillLevel(Skill1, SkillLevel1) && (SkillName1 != null || SkillName1 != "None" || SkillName1 != "")) + if (IsMaxRoadDureSkillLevel(Skill1, SkillLevel1) && (SkillName1 != null || SkillName1 != "None" || SkillName1 != "")){ SkillName1 = string.Format(CultureInfo.InvariantCulture, "**{0}** ", SkillName1); + } - if (IsMaxRoadDureSkillLevel(Skill2, SkillLevel2) && (SkillName2 != null || SkillName2 != "None" || SkillName2 != "")) + if (IsMaxRoadDureSkillLevel(Skill2, SkillLevel2) && (SkillName2 != null || SkillName2 != "None" || SkillName2 != "")){ SkillName2 = string.Format(CultureInfo.InvariantCulture, "**{0}** ", SkillName2); + } - if (IsMaxRoadDureSkillLevel(Skill3, SkillLevel3) && (SkillName3 != null || SkillName3 != "None" || SkillName3 != "")) + if (IsMaxRoadDureSkillLevel(Skill3, SkillLevel3) && (SkillName3 != null || SkillName3 != "None" || SkillName3 != "")){ SkillName3 = string.Format(CultureInfo.InvariantCulture, "**{0}** ", SkillName3); + } - if (IsMaxRoadDureSkillLevel(Skill4, SkillLevel4) && (SkillName4 != null || SkillName4 != "None" || SkillName4 != "")) + if (IsMaxRoadDureSkillLevel(Skill4, SkillLevel4) && (SkillName4 != null || SkillName4 != "None" || SkillName4 != "")){ SkillName4 = string.Format(CultureInfo.InvariantCulture, "**{0}** ", SkillName4); + } - if (IsMaxRoadDureSkillLevel(Skill5, SkillLevel5) && (SkillName5 != null || SkillName5 != "None" || SkillName5 != "")) + if (IsMaxRoadDureSkillLevel(Skill5, SkillLevel5) && (SkillName5 != null || SkillName5 != "None" || SkillName5 != "")){ SkillName5 = string.Format(CultureInfo.InvariantCulture, "**{0}** ", SkillName5); + } - if (IsMaxRoadDureSkillLevel(Skill6, SkillLevel6) && (SkillName6 != null || SkillName6 != "None" || SkillName6 != "")) + if (IsMaxRoadDureSkillLevel(Skill6, SkillLevel6) && (SkillName6 != null || SkillName6 != "None" || SkillName6 != "")){ SkillName6 = string.Format(CultureInfo.InvariantCulture, "**{0}** ", SkillName6); + } - if (IsMaxRoadDureSkillLevel(Skill7, SkillLevel7) && (SkillName7 != null || SkillName7 != "None" || SkillName7 != "")) + if (IsMaxRoadDureSkillLevel(Skill7, SkillLevel7) && (SkillName7 != null || SkillName7 != "None" || SkillName7 != "")){ SkillName7 = string.Format(CultureInfo.InvariantCulture, "**{0}** ", SkillName7); + } - if (IsMaxRoadDureSkillLevel(Skill8, SkillLevel8) && (SkillName8 != null || SkillName8 != "None" || SkillName8 != "")) + if (IsMaxRoadDureSkillLevel(Skill8, SkillLevel8) && (SkillName8 != null || SkillName8 != "None" || SkillName8 != "")){ SkillName8 = string.Format(CultureInfo.InvariantCulture, "**{0}** ", SkillName8); + } - if (IsMaxRoadDureSkillLevel(Skill9, SkillLevel9) && (SkillName9 != null || SkillName9 != "None" || SkillName9 != "")) + if (IsMaxRoadDureSkillLevel(Skill9, SkillLevel9) && (SkillName9 != null || SkillName9 != "None" || SkillName9 != "")){ SkillName9 = string.Format(CultureInfo.InvariantCulture, "**{0}** ", SkillName9); + } if (IsMaxRoadDureSkillLevel(Skill10, SkillLevel10) && (SkillName10 != null || SkillName10 != "None" || SkillName10 != "")) + { SkillName10 = string.Format(CultureInfo.InvariantCulture, "**{0}** ", SkillName10); + } if (IsMaxRoadDureSkillLevel(Skill11, SkillLevel11) && (SkillName11 != null || SkillName11 != "None" || SkillName11 != "")) + { SkillName11 = string.Format(CultureInfo.InvariantCulture, "**{0}** ", SkillName11); + } if (IsMaxRoadDureSkillLevel(Skill12, SkillLevel12) && (SkillName12 != null || SkillName12 != "None" || SkillName12 != "")) + { SkillName12 = string.Format(CultureInfo.InvariantCulture, "**{0}** ", SkillName12); + } if (IsMaxRoadDureSkillLevel(Skill13, SkillLevel13) && (SkillName13 != null || SkillName13 != "None" || SkillName13 != "")) + { SkillName13 = string.Format(CultureInfo.InvariantCulture, "**{0}** ", SkillName13); + } if (IsMaxRoadDureSkillLevel(Skill14, SkillLevel14) && (SkillName14 != null || SkillName14 != "None" || SkillName14 != "")) + { SkillName14 = string.Format(CultureInfo.InvariantCulture, "**{0}** ", SkillName14); + } if (IsMaxRoadDureSkillLevel(Skill15, SkillLevel15) && (SkillName15 != null || SkillName15 != "None" || SkillName15 != "")) + { SkillName15 = string.Format(CultureInfo.InvariantCulture, "**{0}** ", SkillName15); + } if (IsMaxRoadDureSkillLevel(Skill16, SkillLevel16) && (SkillName16 != null || SkillName16 != "None" || SkillName16 != "")) + { SkillName16 = string.Format(CultureInfo.InvariantCulture, "**{0}** ", SkillName16); + } } if (SkillLevel1 == "0") @@ -5991,9 +7094,13 @@ public string GetRoadDureSkills else { if (GetTextFormat() == "Markdown" && IsMaxRoadDureSkillLevel(Skill1, SkillLevel1)) + { SkillLevel1 = string.Format(CultureInfo.InvariantCulture, "**LV{0}**", SkillLevel1); + } else + { SkillLevel1 = string.Format(CultureInfo.InvariantCulture, " LV{0}", SkillLevel1); + } } if (SkillLevel2 == "0") @@ -6003,9 +7110,13 @@ public string GetRoadDureSkills else { if (GetTextFormat() == "Markdown" && IsMaxRoadDureSkillLevel(Skill2, SkillLevel2)) + { SkillLevel2 = string.Format(CultureInfo.InvariantCulture, "**LV{0}**", SkillLevel2); + } else + { SkillLevel2 = string.Format(CultureInfo.InvariantCulture, " LV{0}", SkillLevel2); + } } if (SkillLevel3 == "0") @@ -6015,9 +7126,13 @@ public string GetRoadDureSkills else { if (GetTextFormat() == "Markdown" && IsMaxRoadDureSkillLevel(Skill3, SkillLevel3)) + { SkillLevel3 = string.Format(CultureInfo.InvariantCulture, "**LV{0}**", SkillLevel3); + } else + { SkillLevel3 = string.Format(CultureInfo.InvariantCulture, " LV{0}", SkillLevel3); + } } if (SkillLevel4 == "0") @@ -6026,11 +7141,12 @@ public string GetRoadDureSkills } else { - if (GetTextFormat() == "Markdown" && IsMaxRoadDureSkillLevel(Skill4, SkillLevel4)) + if (GetTextFormat() == "Markdown" && IsMaxRoadDureSkillLevel(Skill4, SkillLevel4)){ SkillLevel4 = string.Format(CultureInfo.InvariantCulture, "**LV{0}**", SkillLevel4); - else + } + else{ SkillLevel4 = string.Format(CultureInfo.InvariantCulture, " LV{0}", SkillLevel4); - + } } if (SkillLevel5 == "0") @@ -6040,9 +7156,13 @@ public string GetRoadDureSkills else { if (GetTextFormat() == "Markdown" && IsMaxRoadDureSkillLevel(Skill5, SkillLevel5)) + { SkillLevel5 = string.Format(CultureInfo.InvariantCulture, "**LV{0}**", SkillLevel5); + } else + { SkillLevel5 = string.Format(CultureInfo.InvariantCulture, " LV{0}", SkillLevel5); + } } @@ -6053,9 +7173,13 @@ public string GetRoadDureSkills else { if (GetTextFormat() == "Markdown" && IsMaxRoadDureSkillLevel(Skill6, SkillLevel6)) + { SkillLevel6 = string.Format(CultureInfo.InvariantCulture, "**LV{0}**", SkillLevel6); + } else + { SkillLevel6 = string.Format(CultureInfo.InvariantCulture, " LV{0}", SkillLevel6); + } } if (SkillLevel7 == "0") @@ -6065,9 +7189,13 @@ public string GetRoadDureSkills else { if (GetTextFormat() == "Markdown" && IsMaxRoadDureSkillLevel(Skill7, SkillLevel7)) + { SkillLevel7 = string.Format(CultureInfo.InvariantCulture, "**LV{0}**", SkillLevel7); + } else + { SkillLevel7 = string.Format(CultureInfo.InvariantCulture, " LV{0}", SkillLevel7); + } } if (SkillLevel8 == "0") @@ -6077,9 +7205,13 @@ public string GetRoadDureSkills else { if (GetTextFormat() == "Markdown" && IsMaxRoadDureSkillLevel(Skill8, SkillLevel8)) + { SkillLevel8 = string.Format(CultureInfo.InvariantCulture, "**LV{0}**", SkillLevel8); + } else + { SkillLevel8 = string.Format(CultureInfo.InvariantCulture, " LV{0}", SkillLevel8); + } } if (SkillLevel9 == "0") @@ -6089,9 +7221,13 @@ public string GetRoadDureSkills else { if (GetTextFormat() == "Markdown" && IsMaxRoadDureSkillLevel(Skill9, SkillLevel9)) + { SkillLevel9 = string.Format(CultureInfo.InvariantCulture, "**LV{0}**", SkillLevel9); + } else + { SkillLevel9 = string.Format(CultureInfo.InvariantCulture, " LV{0}", SkillLevel9); + } } if (SkillLevel10 == "0") @@ -6101,9 +7237,13 @@ public string GetRoadDureSkills else { if (GetTextFormat() == "Markdown" && IsMaxRoadDureSkillLevel(Skill10, SkillLevel10)) + { SkillLevel10 = string.Format(CultureInfo.InvariantCulture, "**LV{0}**", SkillLevel10); + } else + { SkillLevel10 = string.Format(CultureInfo.InvariantCulture, " LV{0}", SkillLevel10); + } } if (SkillLevel11 == "0") @@ -6113,9 +7253,13 @@ public string GetRoadDureSkills else { if (GetTextFormat() == "Markdown" && IsMaxRoadDureSkillLevel(Skill11, SkillLevel11)) + { SkillLevel11 = string.Format(CultureInfo.InvariantCulture, "**LV{0}**", SkillLevel11); + } else + { SkillLevel11 = string.Format(CultureInfo.InvariantCulture, " LV{0}", SkillLevel11); + } } if (SkillLevel12 == "0") @@ -6125,9 +7269,13 @@ public string GetRoadDureSkills else { if (GetTextFormat() == "Markdown" && IsMaxRoadDureSkillLevel(Skill12, SkillLevel12)) + { SkillLevel12 = string.Format(CultureInfo.InvariantCulture, "**LV{0}**", SkillLevel12); + } else + { SkillLevel12 = string.Format(CultureInfo.InvariantCulture, " LV{0}", SkillLevel12); + } } if (SkillLevel13 == "0") @@ -6137,9 +7285,13 @@ public string GetRoadDureSkills else { if (GetTextFormat() == "Markdown" && IsMaxRoadDureSkillLevel(Skill13, SkillLevel13)) + { SkillLevel13 = string.Format(CultureInfo.InvariantCulture, "**LV{0}**", SkillLevel13); + } else + { SkillLevel13 = string.Format(CultureInfo.InvariantCulture, " LV{0}", SkillLevel13); + } } if (SkillLevel14 == "0") @@ -6149,9 +7301,13 @@ public string GetRoadDureSkills else { if (GetTextFormat() == "Markdown" && IsMaxRoadDureSkillLevel(Skill14, SkillLevel14)) + { SkillLevel14 = string.Format(CultureInfo.InvariantCulture, "**LV{0}**", SkillLevel14); + } else + { SkillLevel14 = string.Format(CultureInfo.InvariantCulture, " LV{0}", SkillLevel14); + } } if (SkillLevel15 == "0") @@ -6161,9 +7317,13 @@ public string GetRoadDureSkills else { if (GetTextFormat() == "Markdown" && IsMaxRoadDureSkillLevel(Skill15, SkillLevel15)) + { SkillLevel15 = string.Format(CultureInfo.InvariantCulture, "**LV{0}**", SkillLevel15); + } else + { SkillLevel15 = string.Format(CultureInfo.InvariantCulture, " LV{0}", SkillLevel15); + } } if (SkillLevel16 == "0") @@ -6173,122 +7333,220 @@ public string GetRoadDureSkills else { if (GetTextFormat() == "Markdown" && IsMaxRoadDureSkillLevel(Skill16, SkillLevel16)) + { SkillLevel16 = string.Format(CultureInfo.InvariantCulture, "**LV{0}**", SkillLevel16); + } else + { SkillLevel16 = string.Format(CultureInfo.InvariantCulture, " LV{0}", SkillLevel16); + } } // if (SkillName1 == null || SkillName1 == "None" || SkillName1 == "") + { SkillName1 = string.Empty; + } else if (SkillName2 == null || SkillName2 == "None" || SkillName2 == "") + { SkillName1 += string.Empty; + } else + { SkillLevel1 += ", "; + } if (SkillName2 == null || SkillName2 == "None" || SkillName2 == "") + { SkillName2 = string.Empty; + } else if (SkillName3 == null || SkillName3 == "None" || SkillName3 == "") + { SkillName2 += string.Empty; + } else + { SkillLevel2 += ", "; + } if (SkillName3 == null || SkillName3 == "None" || SkillName3 == "") + { SkillName3 = string.Empty; + } else if (SkillName4 == null || SkillName4 == "None" || SkillName4 == "") + { SkillName3 += string.Empty; + } else + { SkillLevel3 += ", "; + } if (SkillName4 == null || SkillName4 == "None" || SkillName4 == "") + { SkillName4 = string.Empty; + } else if (SkillName5 == null || SkillName5 == "None" || SkillName5 == "") + { SkillName4 += string.Empty; + } else + { SkillLevel4 += ", "; + } if (SkillName5 == null || SkillName5 == "None" || SkillName5 == "") + { SkillName5 = string.Empty; + } else if (SkillName6 == null || SkillName6 == "None" || SkillName6 == "") + { SkillName5 += string.Empty; + } else + { SkillLevel5 += "\n"; + } if (SkillName6 == null || SkillName6 == "None" || SkillName6 == "") + { SkillName6 = string.Empty; + } else if (SkillName7 == null || SkillName7 == "None" || SkillName7 == "") + { SkillName6 += string.Empty; + } else + { SkillLevel6 += ", "; + } if (SkillName7 == null || SkillName7 == "None" || SkillName7 == "") + { SkillName7 = string.Empty; + } else if (SkillName8 == null || SkillName8 == "None" || SkillName8 == "") + { SkillName7 += string.Empty; + } else + { SkillLevel7 += ", "; + } if (SkillName8 == null || SkillName8 == "None" || SkillName8 == "") + { SkillName8 = string.Empty; + } else if (SkillName9 == null || SkillName9 == "None" || SkillName9 == "") + { SkillName8 += string.Empty; + } else + { SkillLevel8 += ", "; + } if (SkillName9 == null || SkillName9 == "None" || SkillName9 == "") + { SkillName9 = string.Empty; + } else if (SkillName10 == null || SkillName10 == "None" || SkillName10 == "") + { SkillName9 += string.Empty; + } else + { SkillLevel9 += ", "; + } if (SkillName10 == null || SkillName10 == "None" || SkillName10 == "") + { SkillName10 = string.Empty; + } else if (SkillName11 == null || SkillName11 == "None" || SkillName11 == "") + { SkillName10 += string.Empty; + } else + { SkillLevel10 += "\n"; + } if (SkillName11 == null || SkillName11 == "None" || SkillName11 == "") + { SkillName11 = string.Empty; + } else if (SkillName12 == null || SkillName12 == "None" || SkillName12 == "") + { SkillName11 += string.Empty; + } else + { SkillLevel11 += ", "; + } if (SkillName12 == null || SkillName12 == "None" || SkillName12 == "") + { SkillName12 = string.Empty; + } else if (SkillName13 == null || SkillName13 == "None" || SkillName13 == "") + { SkillName12 += string.Empty; + } else + { SkillLevel12 += ", "; + } if (SkillName13 == null || SkillName13 == "None" || SkillName13 == "") + { SkillName13 = string.Empty; + } else if (SkillName14 == null || SkillName14 == "None" || SkillName14 == "") + { SkillName13 += string.Empty; + } else + { SkillLevel13 += ", "; + } if (SkillName14 == null || SkillName14 == "None" || SkillName14 == "") + { SkillName14 = string.Empty; + } else if (SkillName15 == null || SkillName15 == "None" || SkillName15 == "") + { SkillName14 += string.Empty; + } else + { SkillLevel14 += ", "; + } if (SkillName15 == null || SkillName15 == "None" || SkillName15 == "") + { SkillName15 = string.Empty; + } else if (SkillName16 == null || SkillName16 == "None" || SkillName16 == "") + { SkillName15 += string.Empty; + } else + { SkillLevel15 += "\n"; + } if (SkillName16 == null || SkillName16 == "None" || SkillName16 == "") + { SkillName16 = string.Empty; + } else + { SkillLevel16 += string.Empty; + } return string.Format(CultureInfo.InvariantCulture, "{0}{1}{2}{3}{4}{5}{6}{7}{8}{9}{10}{11}{12}{13}{14}{15}{16}{17}{18}{19}{20}{21}{22}{23}{24}{25}{26}{27}{28}{29}{30}{31}", SkillName1, SkillLevel1, SkillName2, SkillLevel2, SkillName3, SkillLevel3, SkillName4, SkillLevel4, SkillName5, SkillLevel5, SkillName6, SkillLevel6, SkillName7, SkillLevel7, SkillName8, SkillLevel8, SkillName9, SkillLevel9, SkillName10, SkillLevel10, SkillName11, SkillLevel11, SkillName12, SkillLevel12, SkillName13, SkillLevel13, SkillName14, SkillLevel14, SkillName15, SkillLevel15, SkillName16, SkillLevel16); } @@ -6301,13 +7559,16 @@ public string GenerateGearStats(long? runID = null) { if (runID == null) { - //save gear to variable + // save gear to variable var showGouBoost = string.Empty; if (GetGouBoostMode()) + { showGouBoost = " (After Gou/Muscle Boost)"; - //zp in bold for markdown - //fruits and speedrunner items also in bold + } + + // zp in bold for markdown + // fruits and speedrunner items also in bold SavedGearStats = string.Format(CultureInfo.InvariantCulture, "【MHF-Z】Overlay {0} {1}({2}){3}\n\n{4}{5}: {6}\nHead: {7}\nChest: {8}\nArms: {9}\nWaist: {10}\nLegs: {11}\nCuffs: {12}\n\nWeapon Attack: {13} | Total Defense: {14}\n\nZenith Skills:\n{15}\n\nAutomatic Skills:\n{16}\n\nActive Skills{17}:\n{18}\n\nCaravan Skills:\n{19}\n\nDiva Skill:\n{20}\n\nGuild Food:\n{21}\n\nStyle Rank:\n{22}\n\nItems:\n{23}\n\nAmmo:\n{24}\n\nPoogie Item:\n{25}\n\nRoad/Duremudira Skills:\n{26}\n", App.CurrentProgramVersion, GetWeaponClass(), GetGender(), GetMetadata, GetGearDescription, CurrentWeaponName, GetRealWeaponName, GetArmorHeadName, GetArmorChestName, GetArmorArmName, GetArmorWaistName, GetArmorLegName, GetCuffs, BloatedWeaponAttack().ToString(CultureInfo.InvariantCulture), TotalDefense().ToString(CultureInfo.InvariantCulture), GetZenithSkills, GetAutomaticSkills, showGouBoost, GetArmorSkills, GetCaravanSkills, GetDivaSkillNameFromID(DivaSkill()), GetArmorSkill(GuildFoodSkill()), GetGSRSkills, GetItemPouch, GetAmmoPouch, GetItemName(PoogieItemUseID()), GetRoadDureSkills); MarkdownSavedGearStats = string.Format(CultureInfo.InvariantCulture, "__【MHF-Z】Overlay {0}__ *{1}({2})*{3}\n\n{4}**{5}**: {6}\n**Head:** {7}\n**Chest:** {8}\n**Arms:** {9}\n**Waist:** {10}\n**Legs:** {11}\n**Cuffs:** {12}\n\n**Weapon Attack:** {13} | **Total Defense:** {14}\n\n**Zenith Skills:**\n{15}\n\n**Automatic Skills:**\n{16}\n\n**Active Skills{17}:**\n{18}\n\n**Caravan Skills:**\n{19}\n\n**Diva Skill:**\n{20}\n\n**Guild Food:**\n{21}\n\n**Style Rank:**\n{22}\n\n**Items:**\n{23}\n\n**Ammo:**\n{24}\n\n**Poogie Item:**\n{25}\n\n**Road/Duremudira Skills:**\n{26}\n", App.CurrentProgramVersion, GetWeaponClass(), GetGender(), GetMetadata, GetGearDescription, CurrentWeaponName, GetRealWeaponName, GetArmorHeadName, GetArmorChestName, GetArmorArmName, GetArmorWaistName, GetArmorLegName, GetCuffs, BloatedWeaponAttack().ToString(CultureInfo.InvariantCulture), TotalDefense().ToString(CultureInfo.InvariantCulture), GetZenithSkills, GetAutomaticSkills, showGouBoost, GetArmorSkills, GetCaravanSkills, GetDivaSkillNameFromID(DivaSkill()), GetArmorSkill(GuildFoodSkill()), GetGSRSkills, GetItemPouch, GetAmmoPouch, GetItemName(PoogieItemUseID()), GetRoadDureSkills); return string.Format(CultureInfo.InvariantCulture, "【MHF-Z】Overlay {0} {1}({2}){3}\n\n{4}{5}: {6}\nHead: {7}\nChest: {8}\nArms: {9}\nWaist: {10}\nLegs: {11}\nCuffs: {12}\n\nWeapon Attack: {13} | Total Defense: {14}\n\nZenith Skills:\n{15}\n\nAutomatic Skills:\n{16}\n\nActive Skills{17}:\n{18}\n\nCaravan Skills:\n{19}\n\nDiva Skill:\n{20}\n\nGuild Food:\n{21}\n\nStyle Rank:\n{22}\n\nItems:\n{23}\n\nAmmo:\n{24}\n\nPoogie Item:\n{25}\n\nRoad/Duremudira Skills:\n{26}\n", App.CurrentProgramVersion, GetWeaponClass(), GetGender(), GetMetadata, GetGearDescription, CurrentWeaponName, GetRealWeaponName, GetArmorHeadName, GetArmorChestName, GetArmorArmName, GetArmorWaistName, GetArmorLegName, GetCuffs, BloatedWeaponAttack().ToString(CultureInfo.InvariantCulture), TotalDefense().ToString(CultureInfo.InvariantCulture), GetZenithSkills, GetAutomaticSkills, showGouBoost, GetArmorSkills, GetCaravanSkills, GetDivaSkillNameFromID(DivaSkill()), GetArmorSkill(GuildFoodSkill()), GetGSRSkills, GetItemPouch, GetAmmoPouch, GetItemName(PoogieItemUseID()), GetRoadDureSkills); @@ -6315,8 +7576,11 @@ public string GenerateGearStats(long? runID = null) else { var activeSkills = DatabaseManagerInstance.GetActiveSkills((long)runID); - if (string.IsNullOrEmpty(activeSkills.CreatedBy)) + + if (string.IsNullOrEmpty(activeSkills.CreatedBy)){ return "Run Not Found.\n\nReload the section."; + } + var ammoPouch = DatabaseManagerInstance.GetAmmoPouch((long)runID); var automaticSkills = DatabaseManagerInstance.GetAutomaticSkills((long)runID); var caravanSkills = DatabaseManagerInstance.GetCaravanSkills((long)runID); @@ -6368,7 +7632,7 @@ public string GenerateGearStats(long? runID = null) var partySize = quest.PartySize; // TODO: fix - //var partnyaBagItems = GetItemsForRunID(new int[] { (int)partnyaBag.Item1ID, (int)partnyaBag.Item2ID, (int)partnyaBag.Item3ID, (int)partnyaBag.Item4ID, (int)partnyaBag.Item5ID, (int)partnyaBag.Item6ID, (int)partnyaBag.Item7ID, (int)partnyaBag.Item8ID, (int)partnyaBag.Item9ID, (int)partnyaBag.Item10ID }); + // var partnyaBagItems = GetItemsForRunID(new int[] { (int)partnyaBag.Item1ID, (int)partnyaBag.Item2ID, (int)partnyaBag.Item3ID, (int)partnyaBag.Item4ID, (int)partnyaBag.Item5ID, (int)partnyaBag.Item6ID, (int)partnyaBag.Item7ID, (int)partnyaBag.Item8ID, (int)partnyaBag.Item9ID, (int)partnyaBag.Item10ID }); return string.Format(CultureInfo.InvariantCulture, @"{0} {1}({2}){3} @@ -6448,7 +7712,8 @@ public string GenerateGearStats(long? runID = null) ammo, poogieItem, roadDureSkillsList, - //partnyaBagItems + + // partnyaBagItems questName, questObjectiveType, questObjectiveQuantity, @@ -6513,21 +7778,16 @@ public int CalculateTotalLargeMonstersHunted() BlangongaHunted() + CongalalaHunted() + RajangHunted() + - KushalaDaoraHunted() + ShenGaorenHunted() + - YamaTsukamiHunted() + ChameleosHunted() + RustedKushalaDaoraHunted() + - - LunastraHunted() + TeostraHunted() + ShogunCeanataurHunted() + BulldromeHunted() + WhiteFatalisHunted() + - HypnocHunted() + VolganosHunted() + TigrexHunted() + @@ -6539,7 +7799,6 @@ public int CalculateTotalLargeMonstersHunted() SilverHypnocHunted() + AkuraVashimuHunted() + AkuraJebiaHunted() + - BerukyurosuHunted() + PariapuriaHunted() + WhiteEspinasHunted() + @@ -6577,7 +7836,6 @@ public int CalculateTotalLargeMonstersHunted() InagamiHunted() + VarusaburosuHunted() + PoborubarumuHunted() + - GureadomosuHunted() + HarudomeruguHunted() + ToridclessHunted() + @@ -6614,7 +7872,6 @@ public int CalculateTotalSmallMonstersHunted() return KelbiHunted() + MosswineHunted() + BullfangoHunted() + - FelyneHunted() + AptonothHunted() + GenpreyHunted() + @@ -6626,11 +7883,8 @@ public int CalculateTotalSmallMonstersHunted() RocksHunted() + IopreyHunted() + CephalosHunted() + - GiapreyHunted() + - GreatThunderbugHunted() + - ShakalakaHunted() + BlangoHunted() + CongaHunted() + @@ -6638,16 +7892,13 @@ public int CalculateTotalSmallMonstersHunted() HermitaurHunted() + AntekaHunted() + PopoHunted() + - CeanataurHunted() + - CactusHunted() + GorgeObjectsHunted() + BurukkuHunted() + ErupeHunted() + PokaraHunted() + UrukiHunted() + - KusubamiHunted() + PSO2RappyHunted(); } @@ -6660,8 +7911,11 @@ public string GenerateCompendium(DataLoader dataLoader) { var createdBy = GetFullCurrentProgramVersion(); var createdAt = DateTime.UtcNow; + if (createdBy == null) + { return "Program Version Not Found.\n\nReload the section."; + } var questCompendium = DatabaseManagerInstance.GetQuestCompendium(); var gearCompendium = DatabaseManagerInstance.GetGearCompendium(); @@ -6670,7 +7924,6 @@ public string GenerateCompendium(DataLoader dataLoader) var miscellaneousCompendium = DatabaseManagerInstance.GetMiscellaneousCompendium(); var monsterCompendium = DatabaseManagerInstance.GetMonsterCompendium(); - var mostCompletedQuest = questCompendium.MostCompletedQuestRuns; var mostCompletedQuestAttempts = questCompendium.MostCompletedQuestRunsAttempted; var mostCompletedQuestID = questCompendium.MostCompletedQuestRunsQuestID; @@ -7004,15 +8257,13 @@ Session Duration (Highest/Lowest/Average/Median): {111} / {112} / {113} / {114} totalLargeMonstersHunted, totalSmallMonstersHunted, totalOverlaySessions, - TimeSpan.FromSeconds(sessionDurationHighest).ToString(TimeFormats.HOURS_MINUTES_SECONDS_MILLISECONDS, CultureInfo.InvariantCulture), - TimeSpan.FromSeconds(sessionDurationLowest).ToString(TimeFormats.HOURS_MINUTES_SECONDS_MILLISECONDS, CultureInfo.InvariantCulture), - TimeSpan.FromSeconds(sessionDurationAverage).ToString(TimeFormats.HOURS_MINUTES_SECONDS_MILLISECONDS, CultureInfo.InvariantCulture), - TimeSpan.FromSeconds(sessionDurationMedian).ToString(TimeFormats.HOURS_MINUTES_SECONDS_MILLISECONDS, CultureInfo.InvariantCulture) + TimeSpan.FromSeconds(sessionDurationHighest).ToString(TimeFormats.HoursMinutesSecondsMilliseconds, CultureInfo.InvariantCulture), + TimeSpan.FromSeconds(sessionDurationLowest).ToString(TimeFormats.HoursMinutesSecondsMilliseconds, CultureInfo.InvariantCulture), + TimeSpan.FromSeconds(sessionDurationAverage).ToString(TimeFormats.HoursMinutesSecondsMilliseconds, CultureInfo.InvariantCulture), + TimeSpan.FromSeconds(sessionDurationMedian).ToString(TimeFormats.HoursMinutesSecondsMilliseconds, CultureInfo.InvariantCulture) ); } - #region get game info - /// /// https://dorielrivalet.github.io/mhfz-ferias-english-project/ /// @@ -7519,6 +8770,7 @@ public static string GetGameMotionValuesSnS "Reflect Up\t68\r\n" + "Perfect Guard\t72\r\n" + "Perfect Guard Up\t92\r\n" + + //"SnS Raw Sigil (Added to every hit of all motions)\r\n" + //"Sigil Additional\t0\r\n" + "Stylish Up (Cannot Crit, Impact Damage, Normal sharpness multiplier)\r\n" + @@ -8544,7 +9796,7 @@ public static string GetGameWeaponUnlocks get { return -@"Q: How do I unlock Tonfas/SA-F/Magnet spike? +@"Q: How do I unlock Tonfas/SA-F/Magnet spike? A: Tonfas and SA-F are unlocked as soon as you enter G rank, all you have to do is make one of either weapon, equip it and then speak to the Guildmaster to unlock the styles for it. @@ -8817,12 +10069,6 @@ public string GetWeaponIcon } } - #endregion - - #endregion - - #region gear image stats - public string GetMetadataForImage { get @@ -8832,7 +10078,9 @@ public string GetMetadataForImage var metadata = string.Empty; if (!s.EnableMetadataExport) + { metadata = string.Empty; + } else { string guildName; @@ -8840,14 +10088,22 @@ public string GetMetadataForImage var DateAndTime = DateTime.UtcNow.ToString(CultureInfo.InvariantCulture); if (s.GuildName.Length >= 1) + { guildName = s.GuildName; + } else + { guildName = "Guild Name"; + } if (s.HunterName.Length >= 1) + { hunterName = s.HunterName; + } else + { hunterName = "Hunter Name"; + } metadata = " | " + hunterName + " | " + guildName + " | " + DateAndTime; } @@ -9014,9 +10270,13 @@ public string GetWeaponDecosForImage var className = GetWeaponClass(); if (className == "Blademaster" || className == "Gunner") + { return string.Format(CultureInfo.InvariantCulture, "{0} | {1} | {2}", GetDecoName(WeaponDeco1ID(), 1), GetDecoName(WeaponDeco2ID(), 2), GetDecoName(WeaponDeco3ID(), 3)); + } else + { return "None"; + } } } @@ -9130,7 +10390,7 @@ public string GetDivaSkillForImage } - //GetArmorSkill(GuildFoodSkill()), GetGSRSkills, GetItemPouch, GetAmmoPouch, GetItemName(PoogieItemUseID()), GetRoadDureSkills + // GetArmorSkill(GuildFoodSkill()), GetGSRSkills, GetItemPouch, GetAmmoPouch, GetItemName(PoogieItemUseID()), GetRoadDureSkills public string GetGuildFoodForImage { get @@ -9155,219 +10415,380 @@ public string GetAlternateMonsterImage(int id) return "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/random.png"; case 2: if (RankBand() == 53) + { return "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/conquest_fatalis.png"; + } else + { return "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/fatalis.png"; + } case 11: if (RankBand() >= 64 && RankBand() <= 67) + { return "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/zenith_rathalos.gif"; + } else + { return "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/rathalos.png"; + } case 15: if (RankBand() >= 64 && RankBand() <= 67) + { return "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/zenith_khezu.gif"; - else + } + else{ return "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/khezu.png"; + } case 17: if (RankBand() >= 64 && RankBand() <= 67) + { return "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/zenith_gravios.gif"; + } else + { return "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/gravios.png"; + } case 21: if (RankBand() >= 64 && RankBand() <= 67) + { return "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/zenith_plesioth.gif"; + } else + { return "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/plesioth.png"; + } case 36: if (RankBand() == 53) + { return "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/conquest_crimson_fatalis.png"; - else + } + else{ return "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/crimson_fatalis.png"; + } case 48: if (RankBand() >= 64 && RankBand() <= 67) + { return "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/zenith_daimyo_hermitaur.gif"; + } else + { return "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/daimyo_hermitaur.png"; + } case 51: if (RankBand() >= 64 && RankBand() <= 67) + { return "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/zenith_blangonga.gif"; + } else + { return "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/blangonga.png"; + } case 53: if (RankBand() == 56 || RankBand() == 57) + { return "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/twinhead_rajang.png"; + } else + { return "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/rajang.png"; + } case 65: if (RankBand() == 32) + { return "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/supremacy_teostra.gif"; + } else + { return "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/teostra.png"; + } case 71: - if (RankBand() == 53) + if (RankBand() == 53){ return "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/road_white_fatalis.png"; + } else + { return "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/white_fatalis.png"; + } case 74: if (RankBand() >= 64 && RankBand() <= 67) + { return "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/zenith_hypnoc.gif"; + } else + { return "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/hypnoc.png"; + } case 76: if (RankBand() >= 64 && RankBand() <= 67) + { return "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/zenith_tigrex.gif"; + } else + { return "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/tigrex.png"; + } case 80: if (RankBand() >= 64 && RankBand() <= 67) + { return "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/zenith_espinas.gif"; + } else + { return "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/espinas.png"; + } case 83: if (RankBand() >= 64 && RankBand() <= 67) + { return "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/zenith_akura_vashimu.gif"; + } else + { return "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/akura_vashimu.png"; + } case 89: if (RankBand() == 54) + { return "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/thirsty_pariapuria.png"; + } else if (RankBand() == 32) + { return "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/supremacy_pariapuria.gif"; + } else + { return "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/pariapuria.png"; + } case 95: if (RankBand() >= 64 && RankBand() <= 67) + { return "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/zenith_doragyurosu.gif"; + } else if (RankBand() == 32) + { return "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/supremacy_doragyurosu.gif"; + } else + { return "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/doragyurosu.png"; + } case 99: if (RankBand() >= 64 && RankBand() <= 67) + { return "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/zenith_rukodiora.gif"; + } else + { return "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/rukodiora.png"; + } + case 100: if (RankBand() == 70 || RankBand() == 54) + { return "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/shiten_unknown.png"; + } else if (RankBand() == 46) + { return "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/supremacy_unknown.gif"; + } else + { return "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/unknown.png"; + } case 103: if (RankBand() >= 64 && RankBand() <= 67) + { return "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/zenith_taikun_zamuza.gif"; + } else + { return "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/taikun_zamuza.png"; + } + case 106: if (RankBand() == 32) + { return "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/supremacy_odibatorasu.gif"; + } else + { return "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/odibatorasu.png"; + } case 107: if (RankBand() == 54 || RankBand() == 55) + { return "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/shiten_disufiroa.png"; + } else + { return "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/disufiroa.png"; + } case 109: if (RankBand() >= 64 && RankBand() <= 67) + { return "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/zenith_anorupatisu.gif"; - else + } + else{ + return "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/anorupatisu.png"; + } + case 110: if (RankBand() >= 64 && RankBand() <= 67) + { return "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/zenith_hyujikiki.gif"; + } else + { return "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/hyujikiki.png"; + } + case 111: if (RankBand() >= 64 && RankBand() <= 67) + { return "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/zenith_midogaron.gif"; + } else + { return "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/midogaron.png"; + } + case 112: if (RankBand() >= 64 && RankBand() <= 67) + { return "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/zenith_giaorugu.gif"; + } else + { return "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/giaorugu.png"; + } + case 113: if (RankBand() == 55) + { return "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/shifting_mi_ru.png"; + } else + { return "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/mi_ru.png"; + } case 116: if (RankBand() == 53) + { return "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/conquest_shantien.png"; + } else + { return "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/shantien.png"; + } + case 121: if (RankBand() >= 64 && RankBand() <= 67) + { return "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/zenith_baruragaru.gif"; + } else + { return "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/baruragaru.png"; + } case 129: if (RankBand() >= 64 && RankBand() <= 67) + { return "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/zenith_inagami.gif"; + } else + { return "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/inagami.png"; + } case 140: if (RankBand() >= 64 && RankBand() <= 67) + { return "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/zenith_harudomerugu.gif"; + } else + { return "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/harudomerugu.png"; + } + case 141: if (RankBand() >= 64 && RankBand() <= 67) + { return "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/zenith_toridcless.gif"; + } else + { return "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/toridcless.png"; + } + case 142: if (RankBand() >= 64 && RankBand() <= 67) + { return "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/zenith_gasurabazura.gif"; + } else + { return "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/gasurabazura.png"; + } case 146: if (RankBand() >= 54 && RankBand() <= 55) + { return "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/howling_zinogre.png"; + } else + { return "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/zinogre.png"; + } case 154: if (RankBand() >= 54 && RankBand() <= 55) + { return "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/ruling_guanzorumu.png"; + } else + { return "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/guanzorumu.png"; + } + case 155: if (RankBand() == 55) + { return "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/golden_deviljho.png"; + } else + { return "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/starving_deviljho.png"; + } case 166: if (RankBand() >= 54 && RankBand() <= 55) + { return "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/burning_freezing_elzelion.png"; + } else + { return "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/elzelion.png"; + } } } - #endregion + public static string GetGuildCardBackground { @@ -9391,101 +10812,153 @@ public static string GetCurrentFeriasVersion } } - #region graphs + public ObservableCollection attackBuffCollection = new (); + + public ObservableCollection damagePerSecondCollection = new (); + + public ObservableCollection actionsPerMinuteCollection = new (); + + public ObservableCollection hitsPerSecondCollection = new (); + + private ObservableCollection weaponUsageSwordAndShieldEarthStyleCollection = new (); + + private ObservableCollection weaponUsageSwordAndShieldHeavenStyleCollection = new (); + + private ObservableCollection weaponUsageSwordAndShieldStormStyleCollection = new (); + + private ObservableCollection weaponUsageSwordAndShieldExtremeStyleCollection = new (); + + private ObservableCollection weaponUsageDualSwordsEarthStyleCollection = new (); + + private ObservableCollection weaponUsageDualSwordsHeavenStyleCollection = new (); + + private ObservableCollection weaponUsageDualSwordsStormStyleCollection = new (); + + private ObservableCollection weaponUsageDualSwordsExtremeStyleCollection = new (); + + private ObservableCollection weaponUsageGreatSwordEarthStyleCollection = new (); + + private ObservableCollection weaponUsageGreatSwordHeavenStyleCollection = new (); + + private ObservableCollection weaponUsageGreatSwordStormStyleCollection = new (); + + private ObservableCollection weaponUsageGreatSwordExtremeStyleCollection = new (); + + + private ObservableCollection weaponUsageLongSwordEarthStyleCollection = new (); + + private ObservableCollection weaponUsageLongSwordHeavenStyleCollection = new (); + + private ObservableCollection weaponUsageLongSwordStormStyleCollection = new (); + + private ObservableCollection weaponUsageLongSwordExtremeStyleCollection = new (); + + private ObservableCollection weaponUsageHammerEarthStyleCollection = new (); + + private ObservableCollection weaponUsageHammerHeavenStyleCollection = new (); + + private ObservableCollection weaponUsageHammerStormStyleCollection = new (); + + private ObservableCollection weaponUsageHammerExtremeStyleCollection = new (); + + + private ObservableCollection weaponUsageHuntingHornEarthStyleCollection = new (); + + private ObservableCollection weaponUsageHuntingHornHeavenStyleCollection = new (); + + private ObservableCollection weaponUsageHuntingHornStormStyleCollection = new (); + + private ObservableCollection weaponUsageHuntingHornExtremeStyleCollection = new (); + + private ObservableCollection weaponUsageLanceEarthStyleCollection = new (); + + private ObservableCollection weaponUsageLanceHeavenStyleCollection = new (); + + private ObservableCollection weaponUsageLanceStormStyleCollection = new (); + + private ObservableCollection weaponUsageLanceExtremeStyleCollection = new (); + + private ObservableCollection weaponUsageGunlanceEarthStyleCollection = new (); + + private ObservableCollection weaponUsageGunlanceHeavenStyleCollection = new (); + + private ObservableCollection weaponUsageGunlanceStormStyleCollection = new (); + + private ObservableCollection weaponUsageGunlanceExtremeStyleCollection = new (); + + private ObservableCollection weaponUsageTonfaEarthStyleCollection = new (); + + private ObservableCollection weaponUsageTonfaHeavenStyleCollection = new (); + + private ObservableCollection weaponUsageTonfaStormStyleCollection = new (); + + private ObservableCollection weaponUsageTonfaExtremeStyleCollection = new (); + + private ObservableCollection weaponUsageSwitchAxeFEarthStyleCollection = new (); + + private ObservableCollection weaponUsageSwitchAxeFHeavenStyleCollection = new (); + + private ObservableCollection weaponUsageSwitchAxeFStormStyleCollection = new (); + + private ObservableCollection weaponUsageSwitchAxeFExtremeStyleCollection = new (); + + private ObservableCollection weaponUsageLightBowgunEarthStyleCollection = new (); + + private ObservableCollection weaponUsageLightBowgunHeavenStyleCollection = new (); + + private ObservableCollection weaponUsageLightBowgunStormStyleCollection = new (); - public ObservableCollection attackBuffCollection = new(); - public ObservableCollection damagePerSecondCollection = new(); - public ObservableCollection actionsPerMinuteCollection = new(); - public ObservableCollection hitsPerSecondCollection = new(); + private ObservableCollection weaponUsageLightBowgunExtremeStyleCollection = new (); - private ObservableCollection weaponUsageSwordAndShieldEarthStyleCollection = new(); - private ObservableCollection weaponUsageSwordAndShieldHeavenStyleCollection = new(); - private ObservableCollection weaponUsageSwordAndShieldStormStyleCollection = new(); - private ObservableCollection weaponUsageSwordAndShieldExtremeStyleCollection = new(); + private ObservableCollection weaponUsageHeavyBowgunEarthStyleCollection = new (); - private ObservableCollection weaponUsageDualSwordsEarthStyleCollection = new(); - private ObservableCollection weaponUsageDualSwordsHeavenStyleCollection = new(); - private ObservableCollection weaponUsageDualSwordsStormStyleCollection = new(); - private ObservableCollection weaponUsageDualSwordsExtremeStyleCollection = new(); + private ObservableCollection weaponUsageHeavyBowgunHeavenStyleCollection = new (); - private ObservableCollection weaponUsageGreatSwordEarthStyleCollection = new(); - private ObservableCollection weaponUsageGreatSwordHeavenStyleCollection = new(); - private ObservableCollection weaponUsageGreatSwordStormStyleCollection = new(); - private ObservableCollection weaponUsageGreatSwordExtremeStyleCollection = new(); + private ObservableCollection weaponUsageHeavyBowgunStormStyleCollection = new (); - private ObservableCollection weaponUsageLongSwordEarthStyleCollection = new(); - private ObservableCollection weaponUsageLongSwordHeavenStyleCollection = new(); - private ObservableCollection weaponUsageLongSwordStormStyleCollection = new(); - private ObservableCollection weaponUsageLongSwordExtremeStyleCollection = new(); + private ObservableCollection weaponUsageHeavyBowgunExtremeStyleCollection = new (); - private ObservableCollection weaponUsageHammerEarthStyleCollection = new(); - private ObservableCollection weaponUsageHammerHeavenStyleCollection = new(); - private ObservableCollection weaponUsageHammerStormStyleCollection = new(); - private ObservableCollection weaponUsageHammerExtremeStyleCollection = new(); + private ObservableCollection weaponUsageBowEarthStyleCollection = new (); - private ObservableCollection weaponUsageHuntingHornEarthStyleCollection = new(); - private ObservableCollection weaponUsageHuntingHornHeavenStyleCollection = new(); - private ObservableCollection weaponUsageHuntingHornStormStyleCollection = new(); - private ObservableCollection weaponUsageHuntingHornExtremeStyleCollection = new(); + private ObservableCollection weaponUsageBowHeavenStyleCollection = new (); - private ObservableCollection weaponUsageLanceEarthStyleCollection = new(); - private ObservableCollection weaponUsageLanceHeavenStyleCollection = new(); - private ObservableCollection weaponUsageLanceStormStyleCollection = new(); - private ObservableCollection weaponUsageLanceExtremeStyleCollection = new(); + private ObservableCollection weaponUsageBowStormStyleCollection = new (); - private ObservableCollection weaponUsageGunlanceEarthStyleCollection = new(); - private ObservableCollection weaponUsageGunlanceHeavenStyleCollection = new(); - private ObservableCollection weaponUsageGunlanceStormStyleCollection = new(); - private ObservableCollection weaponUsageGunlanceExtremeStyleCollection = new(); + private ObservableCollection weaponUsageBowExtremeStyleCollection = new (); - private ObservableCollection weaponUsageTonfaEarthStyleCollection = new(); - private ObservableCollection weaponUsageTonfaHeavenStyleCollection = new(); - private ObservableCollection weaponUsageTonfaStormStyleCollection = new(); - private ObservableCollection weaponUsageTonfaExtremeStyleCollection = new(); + private ObservableCollection weaponUsageMagnetSpikeExtremeStyleCollection = new (); - private ObservableCollection weaponUsageSwitchAxeFEarthStyleCollection = new(); - private ObservableCollection weaponUsageSwitchAxeFHeavenStyleCollection = new(); - private ObservableCollection weaponUsageSwitchAxeFStormStyleCollection = new(); - private ObservableCollection weaponUsageSwitchAxeFExtremeStyleCollection = new(); + public ObservableCollection weaponUsageEarthStyle = new (); - private ObservableCollection weaponUsageLightBowgunEarthStyleCollection = new(); - private ObservableCollection weaponUsageLightBowgunHeavenStyleCollection = new(); - private ObservableCollection weaponUsageLightBowgunStormStyleCollection = new(); - private ObservableCollection weaponUsageLightBowgunExtremeStyleCollection = new(); + public ObservableCollection weaponUsageHeavenStyle = new (); - private ObservableCollection weaponUsageHeavyBowgunEarthStyleCollection = new(); - private ObservableCollection weaponUsageHeavyBowgunHeavenStyleCollection = new(); - private ObservableCollection weaponUsageHeavyBowgunStormStyleCollection = new(); - private ObservableCollection weaponUsageHeavyBowgunExtremeStyleCollection = new(); + public ObservableCollection weaponUsageStormStyle = new (); - private ObservableCollection weaponUsageBowEarthStyleCollection = new(); - private ObservableCollection weaponUsageBowHeavenStyleCollection = new(); - private ObservableCollection weaponUsageBowStormStyleCollection = new(); - private ObservableCollection weaponUsageBowExtremeStyleCollection = new(); + public ObservableCollection weaponUsageExtremeStyle = new (); - private ObservableCollection weaponUsageMagnetSpikeExtremeStyleCollection = new(); + public object attackBuffSync { get; } = new (); - public ObservableCollection weaponUsageEarthStyle = new(); - public ObservableCollection weaponUsageHeavenStyle = new(); - public ObservableCollection weaponUsageStormStyle = new(); - public ObservableCollection weaponUsageExtremeStyle = new(); + public object damagePerSecondSync { get; } = new (); - public object attackBuffSync { get; } = new(); - public object damagePerSecondSync { get; } = new(); - public object actionsPerMinuteSync { get; } = new(); - public object hitsPerSecondSync { get; } = new(); - public object weaponUsageSync { get; set; } = new(); + public object actionsPerMinuteSync { get; } = new (); - public List attackBuffSeries { get; set; } = new(); - public List damagePerSecondSeries { get; set; } = new(); - public List actionsPerMinuteSeries { get; set; } = new(); - public List hitsPerSecondSeries { get; set; } = new(); + public object hitsPerSecondSync { get; } = new (); - public List weaponUsageSeries { get; set; } = new(); + public object weaponUsageSync { get; set; } = new (); + + public List attackBuffSeries { get; set; } = new (); + + public List damagePerSecondSeries { get; set; } = new (); + + public List actionsPerMinuteSeries { get; set; } = new (); + + public List hitsPerSecondSeries { get; set; } = new (); + + public List weaponUsageSeries { get; set; } = new (); public string GetTimeElapsed(double frames) { - var elapsedTime = TimeSpan.FromSeconds(frames / Numbers.FRAMES_PER_SECOND); + var elapsedTime = TimeSpan.FromSeconds(frames / Numbers.FramesPerSecond); var elapsedTimeString = elapsedTime.ToString("mm\\:ss", CultureInfo.InvariantCulture); return elapsedTimeString; } @@ -9499,8 +10972,8 @@ public static string StaticGetTimeElapsed(double seconds) public string GetMinutesSecondsMillisecondsFromFrames(long frames) { - var elapsedTime = TimeSpan.FromSeconds((double)frames / Numbers.FRAMES_PER_SECOND); - var elapsedTimeString = elapsedTime.ToString(TimeFormats.MINUTES_SECONDS_MILLISECONDS, CultureInfo.InvariantCulture); + var elapsedTime = TimeSpan.FromSeconds((double)frames / Numbers.FramesPerSecond); + var elapsedTimeString = elapsedTime.ToString(TimeFormats.MinutesSecondsMilliseconds, CultureInfo.InvariantCulture); return elapsedTimeString; } @@ -9514,12 +10987,11 @@ public string GetMinutesSecondsMillisecondsFromFrames(long frames) // Now the Y axis we will display labels as currency // LiveCharts provides some common formatters // in this case we are using the currency formatter. - //Name= "Seconds", - //NameTextSize= 12, TextSize=12, Labeler = (value) => StaticGetTimeElapsed(value), NamePaint = new SolidColorPaint(new SKColor(StaticHexColorToDecimal("#a6adc8"))), LabelsPaint = new SolidColorPaint(new SKColor(StaticHexColorToDecimal("#a6adc8"))), + // you could also build your own currency formatter // for example: // Labeler = (value) => value.ToString("C") @@ -9581,11 +11053,6 @@ public string GetMinutesSecondsMillisecondsFromFrames(long frames) } }; - - - - #endregion - /// /// Gets the objective name from identifier. /// @@ -9594,7 +11061,10 @@ public string GetMinutesSecondsMillisecondsFromFrames(long frames) public string GetObjectiveNameFromID(int id, bool isLargeImageText = false) { if (DiscordManager.ShowDiscordQuestNames() && !isLargeImageText) + { return string.Empty; + } + // TODO dictionary return id switch { @@ -9621,16 +11091,28 @@ public string GetObjectiveNameFromID(int id, bool isLargeImageText = false) public string GetObjective1Quantity(bool isLargeImageText = false) { if (DiscordManager.ShowDiscordQuestNames() && !isLargeImageText) + { return string.Empty; + } + if (Objective1Quantity() <= 1) + { return string.Empty; + } + // hunt / capture / slay else if (ObjectiveType() == 0x1 || ObjectiveType() == 0x101 || ObjectiveType() == 0x201) + { return Objective1Quantity().ToString() + " "; + } else if (ObjectiveType() == 0x8004 || ObjectiveType() == 0x18004) + { return string.Format(CultureInfo.InvariantCulture, "({0} True HP) ", Objective1Quantity() * 100); + } else + { return Objective1Quantity().ToString() + " "; + } } /// @@ -9640,21 +11122,32 @@ public string GetObjective1Quantity(bool isLargeImageText = false) public string GetObjective1CurrentQuantity(bool isLargeImageText = false) { if (DiscordManager.ShowDiscordQuestNames() && !isLargeImageText) + { return string.Empty; + } + if (ObjectiveType() == 0x0 || ObjectiveType() == 0x02 || ObjectiveType() == 0x1002) { if (Objective1Quantity() <= 1) + { return string.Empty; + } else + { return Objective1CurrentQuantityItem().ToString() + "/"; + } } else { if (Objective1Quantity() <= 1) + { return string.Empty; + } else + { //increases when u hit a dead large monster return Objective1CurrentQuantityMonster().ToString() + "/"; + } } } @@ -9666,7 +11159,10 @@ public string GetObjective1CurrentQuantity(bool isLargeImageText = false) public string GetRankNameFromID(int id, bool isLargeImageText = false) { if (DiscordManager.ShowDiscordQuestNames() && !isLargeImageText) + { return string.Empty; + } + return GetRankName(id); } @@ -9677,30 +11173,43 @@ public string GetRankNameFromID(int id, bool isLargeImageText = false) /// public string getMonsterIcon(int id) { - //quest ids: - //mp road: 23527 - //solo road: 23628 - //1st district dure: 21731 - //2nd district dure: 21746 - //1st district dure sky corridor: 21749 - //2nd district dure sky corridor: 21750 - //arrogant dure repel: 23648 - //arrogant dure slay: 23649 - //urgent tower: 21751 - //4th district dure: 21748 - //3rd district dure: 21747 - //3rd district dure 2: 21734 - //UNUSED sky corridor: 21730 - //sky corridor prologue: 21729 + // quest ids: + // mp road: 23527 + // solo road: 23628 + // 1st district dure: 21731 + // 2nd district dure: 21746 + // 1st district dure sky corridor: 21749 + // 2nd district dure sky corridor: 21750 + // arrogant dure repel: 23648 + // arrogant dure slay: 23649 + // urgent tower: 21751 + // 4th district dure: 21748 + // 3rd district dure: 21747 + // 3rd district dure 2: 21734 + // UNUSED sky corridor: 21730 + // sky corridor prologue: 21729 if (roadOverride() == false) + { id = RoadSelectedMonster() == 0 ? LargeMonster1ID() : LargeMonster2ID(); + } else if (CaravanOverride()) + { id = CaravanMonster1ID(); - //Duremudira Arena + } + + // Duremudira Arena if (AreaID() == 398 && (QuestID() == 21731 || QuestID() == 21746 || QuestID() == 21749 || QuestID() == 21750)) - id = 132;//duremudira + { + id = 132; + } + + // duremudira else if (AreaID() == 398 && (QuestID() == 23648 || QuestID() == 23649)) - id = 167;//arrogant duremudira + { + id = 167; + } + + // arrogant duremudira return DetermineMonsterImage(id); } @@ -9713,12 +11222,18 @@ public string getMonsterIcon(int id) public string GetStarGrade(bool isLargeImageText = false) { if (DiscordManager.ShowDiscordQuestNames() && !isLargeImageText || CaravanOverride()) + { return string.Empty; + } if (IsToggeableDifficulty()) + { return string.Format(CultureInfo.InvariantCulture, "★{0} ", StarGrades().ToString()); + } else + { return string.Empty; + } } /// @@ -9730,14 +11245,21 @@ public string GetStarGrade(bool isLargeImageText = false) public bool IsRoad() { if (roadOverride() != null && roadOverride() == false) + { return true; + } else if (roadOverride() != null && roadOverride() == true) + { return false; + } else + { return false; + } } public int previousMezFesArea = -1; + public int previousMezFesScore = 0; /// @@ -9749,9 +11271,13 @@ public bool IsRoad() public bool IsDure() { if (getDureName() != "None") + { return true; + } else + { return false; + } } /// @@ -9811,9 +11337,13 @@ public bool IsToggeableDifficulty() public bool IsRavi() { if (getRaviName() != "None") + { return true; + } else + { return false; + } } /// @@ -9824,41 +11354,54 @@ public bool IsRavi() public string GetRealMonsterName(string iconName, bool isLargeImageText = false) { if (DiscordManager.ShowDiscordQuestNames() && !isLargeImageText) + { return string.Empty; - //quest ids: - //mp road: 23527 - //solo road: 23628 - //1st district dure: 21731 - //2nd district dure: 21746 - //1st district dure sky corridor: 21749 - //2nd district dure sky corridor: 21750 - //arrogant dure repel: 23648 - //arrogant dure slay: 23649 - //urgent tower: 21751 - //4th district dure: 21748 - //3rd district dure: 21747 - //3rd district dure 2: 21734 - //UNUSED sky corridor: 21730 - //sky corridor prologue: 21729 - - ////https://stackoverflow.com/questions/4315564/capitalizing-words-in-a-string-using-c-sharp + } + + // quest ids: + // mp road: 23527 + // solo road: 23628 + // 1st district dure: 21731 + // 2nd district dure: 21746 + // 1st district dure sky corridor: 21749 + // 2nd district dure sky corridor: 21750 + // arrogant dure repel: 23648 + // arrogant dure slay: 23649 + // urgent tower: 21751 + // 4th district dure: 21748 + // 3rd district dure: 21747 + // 3rd district dure 2: 21734 + // UNUSED sky corridor: 21730 + // sky corridor prologue: 21729 + + // https://stackoverflow.com/questions/4315564/capitalizing-words-in-a-string-using-c-sharp int id; if (roadOverride() == false) + { id = RoadSelectedMonster() == 0 ? LargeMonster1ID() : LargeMonster2ID(); + } else if (CaravanOverride()) + { id = CaravanMonster1ID(); + } else + { id = LargeMonster1ID(); + } - //dure + // dure if (QuestID() == 21731 || QuestID() == 21746 || QuestID() == 21749 || QuestID() == 21750) + { return "Duremudira"; + } else if (QuestID() == 23648 || QuestID() == 23649) + { return "Arrogant Duremudira"; + } - //ravi + // ravi if (getRaviName() != "None") { switch (getRaviName()) @@ -9888,8 +11431,10 @@ public string GetRealMonsterName(string iconName, bool isLargeImageText = false) /// public string GetObjective1Name(int id, bool isLargeImageText = false) { - if (DiscordManager.ShowDiscordQuestNames() && !isLargeImageText) + if (DiscordManager.ShowDiscordQuestNames() && !isLargeImageText){ return string.Empty; + } + string? objValue1; Item.IDName.TryGetValue(id, out objValue1); //returns true return objValue1 + string.Empty; @@ -9903,13 +11448,16 @@ public string GetObjective1Name(int id, bool isLargeImageText = false) public string GetAreaName(int id) { if (id == 0) + { return "Loading..."; + } + Location.IDName.TryGetValue(id, out var areaname); Location.IDName.TryGetValue(RavienteAreaID(), out var raviareaname); switch (getRaviName()) { - default://or None + default:// or None return areaname + string.Empty; case "Raviente": case "Violent Raviente": @@ -9918,103 +11466,183 @@ public string GetAreaName(int id) case "Berserk Raviente": case "Extreme Raviente": if (QuestID() != 55796 || QuestID() != 55807 || QuestID() != 54751 || QuestID() != 54761 || QuestID() != 55596 || QuestID() != 55607) + { return areaname + string.Empty; + } else + { return raviareaname + string.Empty; + } } } - public bool loadedItemsAtQuestStart = false; - - public int PouchItem1IDAtQuestStart = 0; - public int PouchItem2IDAtQuestStart = 0; - public int PouchItem3IDAtQuestStart = 0; - public int PouchItem4IDAtQuestStart = 0; - public int PouchItem5IDAtQuestStart = 0; - public int PouchItem6IDAtQuestStart = 0; - public int PouchItem7IDAtQuestStart = 0; - public int PouchItem8IDAtQuestStart = 0; - public int PouchItem9IDAtQuestStart = 0; - public int PouchItem10IDAtQuestStart = 0; - public int PouchItem11IDAtQuestStart = 0; - public int PouchItem12IDAtQuestStart = 0; - public int PouchItem13IDAtQuestStart = 0; - public int PouchItem14IDAtQuestStart = 0; - public int PouchItem15IDAtQuestStart = 0; - public int PouchItem16IDAtQuestStart = 0; - public int PouchItem17IDAtQuestStart = 0; - public int PouchItem18IDAtQuestStart = 0; - public int PouchItem19IDAtQuestStart = 0; - public int PouchItem20IDAtQuestStart = 0; - public int PouchItem1QuantityAtQuestStart = 0; - public int PouchItem2QuantityAtQuestStart = 0; - public int PouchItem3QuantityAtQuestStart = 0; - public int PouchItem4QuantityAtQuestStart = 0; - public int PouchItem5QuantityAtQuestStart = 0; - public int PouchItem6QuantityAtQuestStart = 0; - public int PouchItem7QuantityAtQuestStart = 0; - public int PouchItem8QuantityAtQuestStart = 0; - public int PouchItem9QuantityAtQuestStart = 0; - public int PouchItem10QuantityAtQuestStart = 0; - public int PouchItem11QuantityAtQuestStart = 0; - public int PouchItem12QuantityAtQuestStart = 0; - public int PouchItem13QuantityAtQuestStart = 0; - public int PouchItem14QuantityAtQuestStart = 0; - public int PouchItem15QuantityAtQuestStart = 0; - public int PouchItem16QuantityAtQuestStart = 0; - public int PouchItem17QuantityAtQuestStart = 0; - public int PouchItem18QuantityAtQuestStart = 0; - public int PouchItem19QuantityAtQuestStart = 0; - public int PouchItem20QuantityAtQuestStart = 0; - - public int AmmoPouchItem1IDAtQuestStart = 0; - public int AmmoPouchItem2IDAtQuestStart = 0; - public int AmmoPouchItem3IDAtQuestStart = 0; - public int AmmoPouchItem4IDAtQuestStart = 0; - public int AmmoPouchItem5IDAtQuestStart = 0; - public int AmmoPouchItem6IDAtQuestStart = 0; - public int AmmoPouchItem7IDAtQuestStart = 0; - public int AmmoPouchItem8IDAtQuestStart = 0; - public int AmmoPouchItem9IDAtQuestStart = 0; - public int AmmoPouchItem10IDAtQuestStart = 0; - public int AmmoPouchItem1QuantityAtQuestStart = 0; - public int AmmoPouchItem2QuantityAtQuestStart = 0; - public int AmmoPouchItem3QuantityAtQuestStart = 0; - public int AmmoPouchItem4QuantityAtQuestStart = 0; - public int AmmoPouchItem5QuantityAtQuestStart = 0; - public int AmmoPouchItem6QuantityAtQuestStart = 0; - public int AmmoPouchItem7QuantityAtQuestStart = 0; - public int AmmoPouchItem8QuantityAtQuestStart = 0; - public int AmmoPouchItem9QuantityAtQuestStart = 0; - public int AmmoPouchItem10QuantityAtQuestStart = 0; - - public int PartnyaBagItem1IDAtQuestStart = 0; - public int PartnyaBagItem2IDAtQuestStart = 0; - public int PartnyaBagItem3IDAtQuestStart = 0; - public int PartnyaBagItem4IDAtQuestStart = 0; - public int PartnyaBagItem5IDAtQuestStart = 0; - public int PartnyaBagItem6IDAtQuestStart = 0; - public int PartnyaBagItem7IDAtQuestStart = 0; - public int PartnyaBagItem8IDAtQuestStart = 0; - public int PartnyaBagItem9IDAtQuestStart = 0; - public int PartnyaBagItem10IDAtQuestStart = 0; - public int PartnyaBagItem1QuantityAtQuestStart = 0; - public int PartnyaBagItem2QuantityAtQuestStart = 0; - public int PartnyaBagItem3QuantityAtQuestStart = 0; - public int PartnyaBagItem4QuantityAtQuestStart = 0; - public int PartnyaBagItem5QuantityAtQuestStart = 0; - public int PartnyaBagItem6QuantityAtQuestStart = 0; - public int PartnyaBagItem7QuantityAtQuestStart = 0; - public int PartnyaBagItem8QuantityAtQuestStart = 0; - public int PartnyaBagItem9QuantityAtQuestStart = 0; - public int PartnyaBagItem10QuantityAtQuestStart = 0; + public bool loadedItemsAtQuestStart; + + public int PouchItem1IDAtQuestStart; + + public int PouchItem2IDAtQuestStart; + + public int PouchItem3IDAtQuestStart; + + public int PouchItem4IDAtQuestStart; + + public int PouchItem5IDAtQuestStart; + + public int PouchItem6IDAtQuestStart; + + public int PouchItem7IDAtQuestStart; + + public int PouchItem8IDAtQuestStart; + + public int PouchItem9IDAtQuestStart; + + public int PouchItem10IDAtQuestStart; + + public int PouchItem11IDAtQuestStart; + + public int PouchItem12IDAtQuestStart; + + public int PouchItem13IDAtQuestStart; + + public int PouchItem14IDAtQuestStart; + + public int PouchItem15IDAtQuestStart; + + public int PouchItem16IDAtQuestStart; + + public int PouchItem17IDAtQuestStart; + + public int PouchItem18IDAtQuestStart; + + public int PouchItem19IDAtQuestStart; + + public int PouchItem20IDAtQuestStart; + + public int PouchItem1QuantityAtQuestStart; + + public int PouchItem2QuantityAtQuestStart; + + public int PouchItem3QuantityAtQuestStart; + + public int PouchItem4QuantityAtQuestStart; + + public int PouchItem5QuantityAtQuestStart; + + public int PouchItem6QuantityAtQuestStart; + + public int PouchItem7QuantityAtQuestStart; + + public int PouchItem8QuantityAtQuestStart; + + public int PouchItem9QuantityAtQuestStart; + + public int PouchItem10QuantityAtQuestStart; + + public int PouchItem11QuantityAtQuestStart; + + public int PouchItem12QuantityAtQuestStart; + + public int PouchItem13QuantityAtQuestStart; + + public int PouchItem14QuantityAtQuestStart; + + public int PouchItem15QuantityAtQuestStart; + + public int PouchItem16QuantityAtQuestStart; + + public int PouchItem17QuantityAtQuestStart; + + public int PouchItem18QuantityAtQuestStart; + + public int PouchItem19QuantityAtQuestStart; + + public int PouchItem20QuantityAtQuestStart; + + public int AmmoPouchItem1IDAtQuestStart; + + public int AmmoPouchItem2IDAtQuestStart; + + public int AmmoPouchItem3IDAtQuestStart; + + public int AmmoPouchItem4IDAtQuestStart; + + public int AmmoPouchItem5IDAtQuestStart; + + public int AmmoPouchItem6IDAtQuestStart; + + public int AmmoPouchItem7IDAtQuestStart; + + public int AmmoPouchItem8IDAtQuestStart; + + public int AmmoPouchItem9IDAtQuestStart; + + public int AmmoPouchItem10IDAtQuestStart; + + public int AmmoPouchItem1QuantityAtQuestStart; + + public int AmmoPouchItem2QuantityAtQuestStart; + + public int AmmoPouchItem3QuantityAtQuestStart; + + public int AmmoPouchItem4QuantityAtQuestStart; + + public int AmmoPouchItem5QuantityAtQuestStart; + + public int AmmoPouchItem6QuantityAtQuestStart; + + public int AmmoPouchItem7QuantityAtQuestStart; + + public int AmmoPouchItem8QuantityAtQuestStart; + + public int AmmoPouchItem9QuantityAtQuestStart; + + public int AmmoPouchItem10QuantityAtQuestStart; + + public int PartnyaBagItem1IDAtQuestStart; + + public int PartnyaBagItem2IDAtQuestStart; + + public int PartnyaBagItem3IDAtQuestStart; + + public int PartnyaBagItem4IDAtQuestStart; + + public int PartnyaBagItem5IDAtQuestStart; + + public int PartnyaBagItem6IDAtQuestStart; + + public int PartnyaBagItem7IDAtQuestStart; + + public int PartnyaBagItem8IDAtQuestStart; + + public int PartnyaBagItem9IDAtQuestStart; + + public int PartnyaBagItem10IDAtQuestStart; + + public int PartnyaBagItem1QuantityAtQuestStart; + + public int PartnyaBagItem2QuantityAtQuestStart; + + public int PartnyaBagItem3QuantityAtQuestStart; + + public int PartnyaBagItem4QuantityAtQuestStart; + + public int PartnyaBagItem5QuantityAtQuestStart; + + public int PartnyaBagItem6QuantityAtQuestStart; + + public int PartnyaBagItem7QuantityAtQuestStart; + + public int PartnyaBagItem8QuantityAtQuestStart; + + public int PartnyaBagItem9QuantityAtQuestStart; + + public int PartnyaBagItem10QuantityAtQuestStart; public TimeSpan TotalTimeSpent { get; set; } - public bool questCleared = false; // quest state 1 - public bool questRewardsGiven = false; // quest state 129 + public bool questCleared; // quest state 1 - #region dictionaries for graphs and database + public bool questRewardsGiven; // quest state 129 public bool ValidateGameFolder() { @@ -10034,7 +11662,7 @@ public bool ValidateGameFolder() if (s.GameFolderPath == "" || s.GameFolderPath == null) { LoggerInstance.Warn(CultureInfo.InvariantCulture, "Game folder path not found"); - MessageBox.Show("Game folder path not found. If you do not want to log quests into the database or see this message, disable the Quest Logging option in Quest Logs section, and click the save button.", Messages.WARNING_TITLE, MessageBoxButton.OK, MessageBoxImage.Warning); + MessageBox.Show("Game folder path not found. If you do not want to log quests into the database or see this message, disable the Quest Logging option in Quest Logs section, and click the save button.", Messages.WarningTitle, MessageBoxButton.OK, MessageBoxImage.Warning); s.EnableQuestLogging = false; return false; } @@ -10042,7 +11670,7 @@ public bool ValidateGameFolder() if (s.DatabaseFilePath == "" || s.DatabaseFilePath == null) { LoggerInstance.Warn(CultureInfo.InvariantCulture, "Database file path not found"); - MessageBox.Show("Database file path not found. If you do not want to log quests into the database or see this message, disable the Quest Logging option in Quest Logs section, and click the save button.", Messages.WARNING_TITLE, MessageBoxButton.OK, MessageBoxImage.Warning); + MessageBox.Show("Database file path not found. If you do not want to log quests into the database or see this message, disable the Quest Logging option in Quest Logs section, and click the save button.", Messages.WarningTitle, MessageBoxButton.OK, MessageBoxImage.Warning); s.EnableQuestLogging = false; return false; } @@ -10065,7 +11693,7 @@ public bool ValidateGameFolder() MessageBox.Show("Some required files are missing from the game folder. Please make sure that the game folder contains the following files: " + string.Join(", ", findFiles) + "\n" + "gameFolderFiles: " + string.Join(", ", gameFolderFiles), - Messages.WARNING_TITLE, MessageBoxButton.OK, MessageBoxImage.Warning); + Messages.WarningTitle, MessageBoxButton.OK, MessageBoxImage.Warning); LoggerInstance.Warn(CultureInfo.InvariantCulture, "Missing game files"); s.EnableQuestLogging = false; return false; @@ -10074,28 +11702,31 @@ public bool ValidateGameFolder() // all dictionaries get a new entry every 1 second. freezes on quest state 1, resets on quest id = 0. // use modulo - //int for timeint() which is current quest time, second int for current attack buff - public Dictionary attackBuffDictionary = new(); + // int for timeint() which is current quest time, second int for current attack buff + public Dictionary attackBuffDictionary = new (); + // the deserealized are used for displays public Dictionary? attackBuffDictionaryDeserealized; // same for this but second is current hit count - public Dictionary hitCountDictionary = new(); + public Dictionary hitCountDictionary = new (); + public Dictionary? hitCountDictionaryDeserealized; // same but the second int is the damage dealt when hitting monster. - public Dictionary damageDealtDictionary = new(); + public Dictionary damageDealtDictionary = new (); + public Dictionary? damageDealtDictionaryDeserealized; // then for DPS i can calculate from the above dictionary and only update the // DPS value every time you register a new hit (new entry in damageDealtDictionary), which means its accurate but // not according to the real-time, but then again, the time that passes in-game // is not real-time. - public double DPS { get; set; } = 0; + public double DPS { get; set; } - public double HitsPerSecond { get; set; } = 0; + public double HitsPerSecond { get; set; } - public double APM { get; set; } = 0; + public double APM { get; set; } public double TotalHitsTakenBlocked { @@ -10121,13 +11752,15 @@ public string TotalHitsTakenBlockedStats var totalHitsTakenBlockedPerSecond = string.Empty; if (ShowTotalHitsTakenBlockedPerSecond()) + { totalHitsTakenBlockedPerSecond = string.Format(CultureInfo.InvariantCulture, " ({0:0.00}/s)", TotalHitsTakenBlockedPerSecond); + } return string.Format(CultureInfo.InvariantCulture, "{0}{1}", TotalHitsTakenBlocked, totalHitsTakenBlockedPerSecond); } } - public double TotalHitsTakenBlockedPerSecond { get; set; } = 0; + public double TotalHitsTakenBlockedPerSecond { get; set; } public double CalculateDPS() { @@ -10142,7 +11775,7 @@ public double CalculateDPS() double timeElapsedIn30FPS = TimeDefInt() - TimeInt(); // Calculate and return the DPS - return damageDealt / (timeElapsedIn30FPS / Numbers.FRAMES_PER_SECOND); + return damageDealt / (timeElapsedIn30FPS / Numbers.FramesPerSecond); } // TODO: gamepad @@ -10159,36 +11792,48 @@ public double CalculateTotalHitsTakenBlockedPerSecond() double timeElapsedIn30FPS = TimeDefInt() - TimeInt(); // Calculate and return the DPS - return TotalHitsTakenBlocked / (timeElapsedIn30FPS / Numbers.FRAMES_PER_SECOND); + return TotalHitsTakenBlocked / (timeElapsedIn30FPS / Numbers.FramesPerSecond); } public double CalculateHitsPerSecond() { if (!hitCountDictionary.Any()) + { return 0; + } - return HitCountInt() / ((double)(TimeDefInt() - TimeInt()) / Numbers.FRAMES_PER_SECOND); + return HitCountInt() / ((double)(TimeDefInt() - TimeInt()) / Numbers.FramesPerSecond); } // new entry every second during quest (use this for chart?) - public Dictionary damagePerSecondDictionary = new(); + public Dictionary damagePerSecondDictionary = new (); + public Dictionary? damagePerSecondDictionaryDeserealized; - public Dictionary areaChangesDictionary = new(); + public Dictionary areaChangesDictionary = new (); + public Dictionary? areaChangesDictionaryDeserealized; - public Dictionary cartsDictionary = new(); + public Dictionary cartsDictionary = new (); + public Dictionary? cartsDictionaryDeserealized; // time - public Dictionary> monster1HPDictionary = new(); - public Dictionary> monster2HPDictionary = new(); - public Dictionary> monster3HPDictionary = new(); - public Dictionary> monster4HPDictionary = new(); + public Dictionary> monster1HPDictionary = new (); + + public Dictionary> monster2HPDictionary = new (); + + public Dictionary> monster3HPDictionary = new (); + + public Dictionary> monster4HPDictionary = new (); + public Dictionary>? monster1HPDictionaryDeserealized; + public Dictionary>? monster2HPDictionaryDeserealized; + public Dictionary>? monster3HPDictionaryDeserealized; + public Dictionary>? monster4HPDictionaryDeserealized; // time, itemid, itemquantity @@ -10196,119 +11841,198 @@ public double CalculateHitsPerSecond() // this is a dicitonary where the first int is the quest time, // the second int is the item id and the third int is the item quantity of that id. // meaning that this is a dictionary of quest time and a list of item ids and quantities respectively. - public Dictionary>> playerInventoryDictionary = new(); + public Dictionary>> playerInventoryDictionary = new (); + public Dictionary>>? playerInventoryDictionaryDeserealized; - public Dictionary>> playerAmmoPouchDictionary = new(); + public Dictionary>> playerAmmoPouchDictionary = new (); + public Dictionary>>? playerAmmoPouchDictionaryDeserealized; - public Dictionary>> partnyaBagDictionary = new(); + public Dictionary>> partnyaBagDictionary = new (); + public Dictionary>>? partnyaBagDictionaryDeserealized; // time, areaid, hitstakenblocked // can calculate total hits by area by checking areaid, or in total by all sum. - public Dictionary> hitsTakenBlockedDictionary = new(); - public Dictionary>? hitsTakenBlockedDictionaryDeserealized = new(); + public Dictionary> hitsTakenBlockedDictionary = new (); + + public Dictionary>? hitsTakenBlockedDictionaryDeserealized = new (); + + public Dictionary playerHPDictionary = new (); + + public Dictionary? playerHPDictionaryDeserealized = new (); + + public Dictionary playerStaminaDictionary = new (); + + public Dictionary? playerStaminaDictionaryDeserealized = new (); + + public Dictionary hitsPerSecondDictionary = new (); + + public Dictionary? hitsPerSecondDictionaryDeserealized = new (); + + public Dictionary hitsTakenBlockedPerSecondDictionary = new (); + + public Dictionary? hitsTakenBlockedPerSecondDictionaryDeserealized = new (); + + public Dictionary keystrokesDictionary = new (); + + public Dictionary? keystrokesDictionaryDeserealized = new (); + + public Dictionary gamepadInputDictionary = new (); + + public Dictionary? gamepadInputDictionaryDeserealized = new (); + + public Dictionary mouseInputDictionary = new (); - public Dictionary playerHPDictionary = new(); - public Dictionary? playerHPDictionaryDeserealized = new(); + public Dictionary? mouseInputDictionaryDeserealized = new (); - public Dictionary playerStaminaDictionary = new(); - public Dictionary? playerStaminaDictionaryDeserealized = new(); + public Dictionary actionsPerMinuteDictionary = new (); - public Dictionary hitsPerSecondDictionary = new(); - public Dictionary? hitsPerSecondDictionaryDeserealized = new(); + public Dictionary? actionsPerMinuteDictionaryDeserealized = new (); - public Dictionary hitsTakenBlockedPerSecondDictionary = new(); - public Dictionary? hitsTakenBlockedPerSecondDictionaryDeserealized = new(); + public Dictionary overlayModeDictionary = new (); - public Dictionary keystrokesDictionary = new(); - public Dictionary? keystrokesDictionaryDeserealized = new(); + public Dictionary> monster1AttackMultiplierDictionary = new (); - public Dictionary gamepadInputDictionary = new(); - public Dictionary? gamepadInputDictionaryDeserealized = new(); + public Dictionary> monster1DefenseRateDictionary = new (); - public Dictionary mouseInputDictionary = new(); - public Dictionary? mouseInputDictionaryDeserealized = new(); + public Dictionary> monster1SizeMultiplierDictionary = new (); - public Dictionary actionsPerMinuteDictionary = new(); - public Dictionary? actionsPerMinuteDictionaryDeserealized = new(); + public Dictionary> monster1PoisonThresholdDictionary = new (); - public Dictionary overlayModeDictionary = new(); + public Dictionary> monster1SleepThresholdDictionary = new (); + + public Dictionary> monster1ParalysisThresholdDictionary = new (); + + public Dictionary> monster1BlastThresholdDictionary = new (); + + public Dictionary> monster1StunThresholdDictionary = new (); + + public Dictionary>> monster1PartThresholdDictionary = new (); + + public Dictionary>> monster2PartThresholdDictionary = new (); - public Dictionary> monster1AttackMultiplierDictionary = new(); - public Dictionary> monster1DefenseRateDictionary = new(); - public Dictionary> monster1SizeMultiplierDictionary = new(); - public Dictionary> monster1PoisonThresholdDictionary = new(); - public Dictionary> monster1SleepThresholdDictionary = new(); - public Dictionary> monster1ParalysisThresholdDictionary = new(); - public Dictionary> monster1BlastThresholdDictionary = new(); - public Dictionary> monster1StunThresholdDictionary = new(); - public Dictionary>> monster1PartThresholdDictionary = new(); - public Dictionary>> monster2PartThresholdDictionary = new(); public Dictionary>? monster1AttackMultiplierDictionaryDeserealized; + public Dictionary>? monster1DefenseRateDictionaryDeserealized; + public Dictionary>? monster1SizeMultiplierDictionaryDeserealized; + public Dictionary>? monster1PoisonThresholdDictionaryDeserealized; + public Dictionary>? monster1SleepThresholdDictionaryDeserealized; + public Dictionary>? monster1ParalysisThresholdDictionaryDeserealized; + public Dictionary>? monster1BlastThresholdDictionaryDeserealized; + public Dictionary>? monster1StunThresholdDictionaryDeserealized; + public Dictionary>>? monster1PartThresholdDictionaryDeserialized; + public Dictionary>>? monster2PartThresholdDictionaryDeserialized; - public int previousTimeInt = 0; - public int previousAttackBuffInt = 0; - public int previousHitCountInt = 0; - public double previousDPS = 0; - public int previousAreaID = 0; - public int previousGlobalAreaID = 0; - public int previousQuestID = 0; - public int previousCartsInt = 0; - public int previousMonster1HP = 0; - public int previousMonster2HP = 0; - public int previousMonster3HP = 0; - public int previousMonster4HP = 0; - public int previousTotalInventoryItems = 0; - public int previousTotalAmmo = 0; - public int previousTotalPartnyaItems = 0; - public int previousHitsTakenBlocked = 0; - public double previousTotalHitsTakenBlockedPerSecond = 0; - public int previousPlayerHP = 0; - public int previousPlayerStamina = 0; - public double previousHitsPerSecond = 0; - public double previousActionsPerMinute = 0; + public int previousTimeInt; + + public int previousAttackBuffInt; + + public int previousHitCountInt; + + public double previousDPS; + + public int previousAreaID; + + public int previousGlobalAreaID; + + public int previousQuestID; + + public int previousCartsInt; + + public int previousMonster1HP; + + public int previousMonster2HP; + + public int previousMonster3HP; + + public int previousMonster4HP; + + public int previousTotalInventoryItems; + + public int previousTotalAmmo; + + public int previousTotalPartnyaItems; + + + public int previousHitsTakenBlocked; + + public double previousTotalHitsTakenBlockedPerSecond; + + public int previousPlayerHP; + + public int previousPlayerStamina; + + public double previousHitsPerSecond; + + public double previousActionsPerMinute; + public string previousOverlayMode = "N/A"; - public double previousMonster1AttackMultiplier = 0; - public double previousMonster1DefenseRate = 0; - public double previousMonster1SizeMultiplier = 0; - public int previousMonster1PoisonThreshold = 0; - public int previousMonster1SleepThreshold = 0; - public int previousMonster1ParalysisThreshold = 0; - public int previousMonster1BlastThreshold = 0; - public int previousMonster1StunThreshold = 0; - public int previousMonster1Part1Threshold = 0; - public int previousMonster1Part2Threshold = 0; - public int previousMonster1Part3Threshold = 0; - public int previousMonster1Part4Threshold = 0; - public int previousMonster1Part5Threshold = 0; - public int previousMonster1Part6Threshold = 0; - public int previousMonster1Part7Threshold = 0; - public int previousMonster1Part8Threshold = 0; - public int previousMonster1Part9Threshold = 0; - public int previousMonster1Part10Threshold = 0; - public int previousMonster2Part1Threshold = 0; - public int previousMonster2Part2Threshold = 0; - public int previousMonster2Part3Threshold = 0; - public int previousMonster2Part4Threshold = 0; - public int previousMonster2Part5Threshold = 0; - public int previousMonster2Part6Threshold = 0; - public int previousMonster2Part7Threshold = 0; - public int previousMonster2Part8Threshold = 0; - public int previousMonster2Part9Threshold = 0; - public int previousMonster2Part10Threshold = 0; + public double previousMonster1AttackMultiplier; + + public double previousMonster1DefenseRate; + + public double previousMonster1SizeMultiplier; + + public int previousMonster1PoisonThreshold; + + public int previousMonster1SleepThreshold; + + public int previousMonster1ParalysisThreshold; + + public int previousMonster1BlastThreshold; + + public int previousMonster1StunThreshold; + + public int previousMonster1Part1Threshold; + + public int previousMonster1Part2Threshold; + + public int previousMonster1Part3Threshold; + + public int previousMonster1Part4Threshold; + + public int previousMonster1Part5Threshold; + public int previousMonster1Part6Threshold; + + public int previousMonster1Part7Threshold; + + public int previousMonster1Part8Threshold; + + public int previousMonster1Part9Threshold; + + public int previousMonster1Part10Threshold; + + public int previousMonster2Part1Threshold; + + public int previousMonster2Part2Threshold; + + public int previousMonster2Part3Threshold; + + public int previousMonster2Part4Threshold; + + public int previousMonster2Part5Threshold; + + public int previousMonster2Part6Threshold; + + public int previousMonster2Part7Threshold; + + public int previousMonster2Part8Threshold; + + public int previousMonster2Part9Threshold; + + public int previousMonster2Part10Threshold; public List> InsertInventoryDictionaryIntoList(string inventoryType) { @@ -10330,7 +12054,7 @@ public List> InsertInventoryDictionaryIntoList(string inven { var itemID = 0; var itemQty = 0; - Dictionary itemIDQuantityDictionary = new(); + Dictionary itemIDQuantityDictionary = new (); if (inventoryType == "Pouch") { @@ -10533,9 +12257,11 @@ public int CalculateTotalDictionaryValuesInList(List> list) public double GetCurrentQuestElapsedTimeInSeconds() { if (TimeDefInt() <= 0) + { return 0; + } - return (double)(TimeDefInt() - TimeInt()) / Numbers.FRAMES_PER_SECOND; + return (double)(TimeDefInt() - TimeInt()) / Numbers.FramesPerSecond; } public int previousRoadFloor = 0; @@ -10543,10 +12269,10 @@ public double GetCurrentQuestElapsedTimeInSeconds() /// /// Inserts the quest information into dictionaries. If you want to insert a new dictionary, do the following: /// 1. Create a dictionary as a property of this class. - /// 2. Follow the code structure of the current dictionary insertions, + /// 2. Follow the code structure of the current dictionary insertions, /// but for this particular dictionary structure if modifications are needed. /// 3. Go to DatabaseManager and modify the Quests table for taking into account this new property. - /// 4. Copy-paste the query into a new function for updating the database schema (PerformUpdateToVersion_x_y_z), for new_Quests table. + /// 4. Copy-paste the query into a new function for updating the database schema (PerformUpdateToVersion_x_y_z), for new_Quests table. /// See also the 12 steps from SQLite linked for helping update and port data from an old table schema to a new table schema. /// 5. Modify InsertQuestData Quests table insertion section taking into account the new property and table schema. /// 6. Don't forget to add the clear() in the cleanup functions for the dictionaries. @@ -10654,7 +12380,7 @@ public void InsertQuestInfoIntoDictionaries() try { previousMonster1HP = Monster1HPInt(); - Dictionary monster1HPDictionaryMonsterInfo = new(); + Dictionary monster1HPDictionaryMonsterInfo = new (); monster1HPDictionaryMonsterInfo.Add(LargeMonster1ID(), Monster1HPInt()); monster1HPDictionary.Add(TimeInt(), monster1HPDictionaryMonsterInfo); } @@ -10669,7 +12395,7 @@ public void InsertQuestInfoIntoDictionaries() try { previousMonster2HP = Monster2HPInt(); - Dictionary monster2HPDictionaryMonsterInfo = new(); + Dictionary monster2HPDictionaryMonsterInfo = new (); monster2HPDictionaryMonsterInfo.Add(LargeMonster2ID(), Monster2HPInt()); monster2HPDictionary.Add(TimeInt(), monster2HPDictionaryMonsterInfo); } @@ -10684,7 +12410,7 @@ public void InsertQuestInfoIntoDictionaries() try { previousMonster3HP = Monster3HPInt(); - Dictionary monster3HPDictionaryMonsterInfo = new(); + Dictionary monster3HPDictionaryMonsterInfo = new (); monster3HPDictionaryMonsterInfo.Add(LargeMonster3ID(), Monster3HPInt()); monster3HPDictionary.Add(TimeInt(), monster3HPDictionaryMonsterInfo); } @@ -10700,7 +12426,7 @@ public void InsertQuestInfoIntoDictionaries() try { previousMonster4HP = Monster4HPInt(); - Dictionary monster4HPDictionaryMonsterInfo = new(); + Dictionary monster4HPDictionaryMonsterInfo = new (); monster4HPDictionaryMonsterInfo.Add(LargeMonster4ID(), Monster4HPInt()); monster4HPDictionary.Add(TimeInt(), monster4HPDictionaryMonsterInfo); } @@ -10735,12 +12461,12 @@ public void InsertQuestInfoIntoDictionaries() } else if (loadedItemsAtQuestStart && !playerInventoryDictionary.Values.Any()) { - List> itemIDsQuantityList = new(); + List> itemIDsQuantityList = new (); for (var i = 1; i <= 20; i++) { var itemID = 0; var itemQty = 0; - Dictionary itemIDQuantityDictionary = new(); + Dictionary itemIDQuantityDictionary = new (); switch (i) { case 1: @@ -10847,6 +12573,7 @@ public void InsertQuestInfoIntoDictionaries() if (playerAmmoPouchDictionary.Values.Any()) { var lastInsertedDictionary = playerAmmoPouchDictionary.Values.Last(); + // Sum the values in the list lastAmmoSum = lastInsertedDictionary.SelectMany(x => x.Values).Sum(); } @@ -10864,12 +12591,12 @@ public void InsertQuestInfoIntoDictionaries() } else if (loadedItemsAtQuestStart && !playerAmmoPouchDictionary.Values.Any()) { - List> itemIDsQuantityList = new(); + List> itemIDsQuantityList = new (); for (var i = 1; i <= 20; i++) { var itemID = 0; var itemQty = 0; - Dictionary itemIDQuantityDictionary = new(); + Dictionary itemIDQuantityDictionary = new (); switch (i) { case 1: @@ -10935,6 +12662,7 @@ public void InsertQuestInfoIntoDictionaries() if (partnyaBagDictionary.Values.Any()) { var lastInsertedDictionary = partnyaBagDictionary.Values.Last(); + // Sum the values in the list lastPartnyaBagSum = lastInsertedDictionary.SelectMany(x => x.Values).Sum(); } @@ -10952,12 +12680,12 @@ public void InsertQuestInfoIntoDictionaries() } else if (loadedItemsAtQuestStart && !partnyaBagDictionary.Values.Any()) { - List> itemIDsQuantityList = new(); + List> itemIDsQuantityList = new (); for (var i = 1; i <= 20; i++) { var itemID = 0; var itemQty = 0; - Dictionary itemIDQuantityDictionary = new(); + Dictionary itemIDQuantityDictionary = new (); switch (i) { case 1: @@ -11021,7 +12749,7 @@ public void InsertQuestInfoIntoDictionaries() try { previousHitsTakenBlocked = AreaHitsTakenBlocked(); - Dictionary hitsAreaPairs = new(); + Dictionary hitsAreaPairs = new (); hitsAreaPairs.Add(AreaID(), AreaHitsTakenBlocked()); hitsTakenBlockedDictionary.Add(TimeInt(), hitsAreaPairs); } @@ -11127,7 +12855,7 @@ public void InsertQuestInfoIntoDictionaries() try { previousMonster1AttackMultiplier = Monster1AttackMultForDictionary(); - Dictionary monster1AttackMultiplierDictionaryMonsterInfo = new(); + Dictionary monster1AttackMultiplierDictionaryMonsterInfo = new (); monster1AttackMultiplierDictionaryMonsterInfo.Add(LargeMonster1ID(), Monster1AttackMultForDictionary()); monster1AttackMultiplierDictionary.Add(TimeInt(), monster1AttackMultiplierDictionaryMonsterInfo); } @@ -11142,7 +12870,7 @@ public void InsertQuestInfoIntoDictionaries() try { previousMonster1DefenseRate = Monster1DefMultForDictionary(); - Dictionary monster1DefenseRateDictionaryMonsterInfo = new(); + Dictionary monster1DefenseRateDictionaryMonsterInfo = new (); monster1DefenseRateDictionaryMonsterInfo.Add(LargeMonster1ID(), Monster1DefMultForDictionary()); monster1DefenseRateDictionary.Add(TimeInt(), monster1DefenseRateDictionaryMonsterInfo); } @@ -11157,7 +12885,7 @@ public void InsertQuestInfoIntoDictionaries() try { previousMonster1SizeMultiplier = Monster1SizeMultForDictionary(); - Dictionary monster1SizeMultiplierDictionaryMonsterInfo = new(); + Dictionary monster1SizeMultiplierDictionaryMonsterInfo = new (); monster1SizeMultiplierDictionaryMonsterInfo.Add(LargeMonster1ID(), Monster1SizeMultForDictionary()); monster1SizeMultiplierDictionary.Add(TimeInt(), monster1SizeMultiplierDictionaryMonsterInfo); } @@ -11172,7 +12900,7 @@ public void InsertQuestInfoIntoDictionaries() try { previousMonster1PoisonThreshold = Monster1PoisonForDictionary(); - Dictionary monster1PoisonThresholdDictionaryMonsterInfo = new(); + Dictionary monster1PoisonThresholdDictionaryMonsterInfo = new (); monster1PoisonThresholdDictionaryMonsterInfo.Add(LargeMonster1ID(), Monster1PoisonForDictionary()); monster1PoisonThresholdDictionary.Add(TimeInt(), monster1PoisonThresholdDictionaryMonsterInfo); } @@ -11187,7 +12915,7 @@ public void InsertQuestInfoIntoDictionaries() try { previousMonster1SleepThreshold = Monster1SleepForDictionary(); - Dictionary monster1SleepThresholdDictionaryMonsterInfo = new(); + Dictionary monster1SleepThresholdDictionaryMonsterInfo = new (); monster1SleepThresholdDictionaryMonsterInfo.Add(LargeMonster1ID(), Monster1SleepForDictionary()); monster1SleepThresholdDictionary.Add(TimeInt(), monster1SleepThresholdDictionaryMonsterInfo); } @@ -11202,7 +12930,7 @@ public void InsertQuestInfoIntoDictionaries() try { previousMonster1ParalysisThreshold = Monster1ParalysisForDictionary(); - Dictionary monster1ParalysisThresholdDictionaryMonsterInfo = new(); + Dictionary monster1ParalysisThresholdDictionaryMonsterInfo = new (); monster1ParalysisThresholdDictionaryMonsterInfo.Add(LargeMonster1ID(), Monster1ParalysisForDictionary()); monster1ParalysisThresholdDictionary.Add(TimeInt(), monster1ParalysisThresholdDictionaryMonsterInfo); } @@ -11217,7 +12945,7 @@ public void InsertQuestInfoIntoDictionaries() try { previousMonster1BlastThreshold = Monster1BlastForDictionary(); - Dictionary monster1BlastThresholdDictionaryMonsterInfo = new(); + Dictionary monster1BlastThresholdDictionaryMonsterInfo = new (); monster1BlastThresholdDictionaryMonsterInfo.Add(LargeMonster1ID(), Monster1BlastForDictionary()); monster1BlastThresholdDictionary.Add(TimeInt(), monster1BlastThresholdDictionaryMonsterInfo); } @@ -11232,7 +12960,7 @@ public void InsertQuestInfoIntoDictionaries() try { previousMonster1StunThreshold = Monster1StunForDictionary(); - Dictionary monster1StunThresholdDictionaryMonsterInfo = new(); + Dictionary monster1StunThresholdDictionaryMonsterInfo = new (); monster1StunThresholdDictionaryMonsterInfo.Add(LargeMonster1ID(), Monster1StunForDictionary()); monster1StunThresholdDictionary.Add(TimeInt(), monster1StunThresholdDictionaryMonsterInfo); } @@ -11268,7 +12996,7 @@ public void InsertQuestInfoIntoDictionaries() previousMonster1Part8Threshold = Monster1Part8(); previousMonster1Part9Threshold = Monster1Part9(); previousMonster1Part10Threshold = Monster1Part10(); - Dictionary> monster1PartThresholdDictionaryMonsterInfo = new(); + Dictionary> monster1PartThresholdDictionaryMonsterInfo = new (); var partsList = new List() { Monster1Part1(), Monster1Part2(), @@ -11315,7 +13043,7 @@ public void InsertQuestInfoIntoDictionaries() previousMonster2Part8Threshold = Monster2Part8(); previousMonster2Part9Threshold = Monster2Part9(); previousMonster2Part10Threshold = Monster2Part10(); - Dictionary> monster2PartThresholdDictionaryMonsterInfo = new(); + Dictionary> monster2PartThresholdDictionaryMonsterInfo = new (); var partsList = new List() { Monster2Part1(), Monster2Part2(), @@ -11520,24 +13248,23 @@ public void clearGraphCollections() // Any changes including adding, clearing, etc must be synced. attackBuffCollection.Clear(); } + lock (actionsPerMinuteSync) { actionsPerMinuteCollection.Clear(); } + lock (damagePerSecondSync) { damagePerSecondCollection.Clear(); } + lock (hitsPerSecondSync) { hitsPerSecondCollection.Clear(); } } - #endregion - - #region countries - // Get all countries public IEnumerable Countries { @@ -11547,9 +13274,6 @@ public IEnumerable Countries } } - #endregion - - #region speedrun watermark public string OverlayModeWatermarkText { get @@ -11559,12 +13283,13 @@ public string OverlayModeWatermarkText overlayMode = overlayMode.Replace(")", ""); overlayMode = overlayMode.Trim(); if (overlayMode == null || overlayMode == "") + { overlayMode = "Standard"; + } return overlayMode; } } - #endregion public string QuestIDBind { @@ -11574,10 +13299,12 @@ public string QuestIDBind } } - public ObservableCollection RecentRuns { get; set; } = new(); + public ObservableCollection RecentRuns { get; set; } = new (); + // TODO: the plural/singular is inconsistent - public List FastestRuns { get; set; } = new(); - public List CalendarRuns { get; set; } = new(); + public List FastestRuns { get; set; } = new (); + + public List CalendarRuns { get; set; } = new (); public ObservableCollection QuestLogsSearchOption { get; set; } = new ObservableCollection() { @@ -11623,9 +13350,13 @@ public uint HexColorToDecimal(string hexColor, string? alphaChannel = "ff") } if (hexColor.Length == 6) + { hexColor = hexColor.Insert(0, "ff"); + } else + { hexColor = hexColor.Remove(0, 2).Insert(0, "ff"); + } if (alphaChannel != null && alphaChannel != "ff") { @@ -11643,9 +13374,13 @@ public static uint StaticHexColorToDecimal(string hexColor, bool? toTransparent } if (hexColor.Length == 6) + { hexColor = hexColor.Insert(0, "ff"); + } else + { hexColor = hexColor.Remove(0, 2).Insert(0, "ff"); + } if (toTransparent != null && toTransparent == true) { @@ -11669,8 +13404,8 @@ public TimeSpan CurrentSessionTime } } - #region ehp public int currentMonster1MaxHP { get; set; } + /// /// Shows the current hp percentage. /// @@ -11678,10 +13413,7 @@ public TimeSpan CurrentSessionTime public static bool ShowCurrentHPPercentage() { var s = (Settings)Application.Current.TryFindResource("Settings"); - if (s.EnableCurrentHPPercentage) - return true; - else - return false; + return s.EnableCurrentHPPercentage; } /// @@ -11690,14 +13422,19 @@ public static bool ShowCurrentHPPercentage() /// public string GetMonster1EHPPercent() { - if (currentMonster1MaxHP < int.Parse(Monster1HP, CultureInfo.InvariantCulture)) + if (currentMonster1MaxHP < int.Parse(Monster1HP, CultureInfo.InvariantCulture)){ currentMonster1MaxHP = int.Parse(Monster1HP, CultureInfo.InvariantCulture); + } - if (currentMonster1MaxHP == 0 || GetMonster1EHP() == 0) //should be OK + if (currentMonster1MaxHP == 0 || GetMonster1EHP() == 0) // should be OK + { currentMonster1MaxHP = 1; + } if (!ShowCurrentHPPercentage()) + { return string.Empty; + } return string.Format(CultureInfo.InvariantCulture, " ({0:0}%)", (float)int.Parse(Monster1HP, CultureInfo.InvariantCulture) / currentMonster1MaxHP * 100.0); } @@ -11720,8 +13457,6 @@ public int GetMonster1MaxEHP() return currentMonster1MaxHP; } - #endregion - /// /// Gets the max faints /// @@ -11740,7 +13475,9 @@ public string GetMaxFaints() return AlternativeMaxFaints().ToString(CultureInfo.InvariantCulture); case "Automatic": if (roadOverride() != null && roadOverride() == false) + { return MaxFaints().ToString(CultureInfo.InvariantCulture); + } if ( @@ -11838,9 +13575,13 @@ public string GetWeaponStyleFromID(int id) public string GetAreaIconFromID(int id) // TODO: are highlands, tidal island or painted falls icons correct? { if (id >= 470 && id < 0) + { return "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/icon/cattleya.png"; + } else + { return FindAreaIcon(id); + } } public static string FindAreaIcon(int id) @@ -11864,9 +13605,13 @@ public static string DetermineAreaIcon(List key) { var areaIcon = AreaIconMapper.AreaIconID.ContainsKey(key); if (!areaIcon) + { return "https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/icon/cattleya.png"; + } else + { return AreaIconMapper.AreaIconID[key]; + } } /// @@ -11896,13 +13641,21 @@ public string GetCaravanSkillsWithoutMarkdown(DataLoader dataLoader) SkillCaravan.IDName.TryGetValue(id3, out var caravanSkillName3); if (caravanSkillName1 == "" || caravanSkillName1 == "None") + { return "None"; + } else if (caravanSkillName2 == "" || caravanSkillName2 == "None") + { return caravanSkillName1 + string.Empty; + } else if (caravanSkillName3 == "" || caravanSkillName3 == "None") + { return caravanSkillName1 + ", " + caravanSkillName2; + } else + { return caravanSkillName1 + ", " + caravanSkillName2 + ", " + caravanSkillName3; + } } public event PropertyChangedEventHandler? PropertyChanged; diff --git a/MHFZ_Overlay/Views/ConfigWindow.xaml.cs b/MHFZ_Overlay/Views/ConfigWindow.xaml.cs index e237c2d9..02f8ae36 100644 --- a/MHFZ_Overlay/Views/ConfigWindow.xaml.cs +++ b/MHFZ_Overlay/Views/ConfigWindow.xaml.cs @@ -280,7 +280,9 @@ public static string ReplaceMonsterInfoFeriasVersion(string link) // Check if no need to replace because its the same version already if (link.Contains(ReplaceSettingsLink)) + { return link; + } string separator = "mons/"; string info = link.Split(separator)[1]; @@ -663,6 +665,7 @@ public ConfigWindow(MainWindow mainWindow) { // Create a Stopwatch instance Stopwatch stopwatch = new Stopwatch(); + // Start the stopwatch stopwatch.Start(); @@ -682,8 +685,7 @@ public ConfigWindow(MainWindow mainWindow) string background8 = @"pack://application:,,,/MHFZ_Overlay;component/Assets/Background/8.png"; string background9 = @"pack://application:,,,/MHFZ_Overlay;component/Assets/Background/9.png"; - - //https://stackoverflow.com/questions/30839173/change-background-image-in-wpf-using-c-sharp + // https://stackoverflow.com/questions/30839173/change-background-image-in-wpf-using-c-sharp GeneralContent.Background = new ImageBrush(new BitmapImage(new Uri(background1))); HunterNotesContent.Background = new ImageBrush(new BitmapImage(new Uri(background2))); MonsterHPContent.Background = new ImageBrush(new BitmapImage(new Uri(background3))); @@ -707,9 +709,8 @@ public ConfigWindow(MainWindow mainWindow) FilterBox.ItemsSource = new string[] { "All", "Large Monster", "Small Monster" }; HuntLogDataGrid.Items.Filter = MonsterFilterAll; - //// See: https://stackoverflow.com/questions/22285866/why-relaycommand - //// Or use MVVM Light to obtain RelayCommand. - + // See: https://stackoverflow.com/questions/22285866/why-relaycommand + // Or use MVVM Light to obtain RelayCommand. List MonsterNameList = new List(); for (int i = 0; i < monsterInfos.Count; i++) @@ -727,11 +728,13 @@ public ConfigWindow(MainWindow mainWindow) // In your initialization or setup code ISnackbarService snackbarService = new SnackbarService(); + // Replace 'snackbarControl' with your actual snackbar control instance snackbarService.SetSnackbarControl(ConfigWindowSnackBar); // Stop the stopwatch stopwatch.Stop(); + // Get the elapsed time in milliseconds double elapsedTimeMs = stopwatch.Elapsed.TotalMilliseconds; @@ -739,7 +742,7 @@ public ConfigWindow(MainWindow mainWindow) logger.Debug($"ConfigWindow ctor Elapsed Time: {elapsedTimeMs} ms"); } - private List weaponUsageData = new(); + private List weaponUsageData = new (); private void SetWeaponUsageChart(CartesianChart weaponUsageChart) { @@ -789,10 +792,8 @@ private void SetWeaponUsageChart(CartesianChart weaponUsageChart) DataLabelsPaint = new SolidColorPaint(new SKColor(MainWindow.dataLoader.model.HexColorToDecimal(CatppuccinMochaColorsMapper.CatppuccinMochaColors["Text"]))), DataLabelsSize = 14, DataLabelsPosition = DataLabelsPosition.Middle, - //Stroke = null, Fill = new LinearGradientPaint(new SKColor(MainWindow.dataLoader.model.HexColorToDecimal(s.PlayerHitsPerSecondGraphColor, "7f")), new SKColor(MainWindow.dataLoader.model.HexColorToDecimal(s.PlayerHitsPerSecondGraphColor, "00")), new SKPoint(0.5f, 0), new SKPoint(0.5f, 1)), Stroke = new SolidColorPaint(new SKColor(MainWindow.dataLoader.model.HexColorToDecimal(s.PlayerHitsPerSecondGraphColor))) { StrokeThickness = 2 } - //DataLabels = true }); MainWindow.dataLoader.model.weaponUsageSeries.Add(new StackedColumnSeries @@ -802,10 +803,8 @@ private void SetWeaponUsageChart(CartesianChart weaponUsageChart) DataLabelsPaint = new SolidColorPaint(new SKColor(MainWindow.dataLoader.model.HexColorToDecimal(CatppuccinMochaColorsMapper.CatppuccinMochaColors["Text"]))), DataLabelsSize = 14, DataLabelsPosition = DataLabelsPosition.Middle, - //Stroke = null, Fill = new LinearGradientPaint(new SKColor(MainWindow.dataLoader.model.HexColorToDecimal(s.PlayerHitsPerSecondGraphColor, "7f")), new SKColor(MainWindow.dataLoader.model.HexColorToDecimal(s.PlayerHitsPerSecondGraphColor, "00")), new SKPoint(0.5f, 0), new SKPoint(0.5f, 1)), Stroke = new SolidColorPaint(new SKColor(MainWindow.dataLoader.model.HexColorToDecimal(s.PlayerHitsPerSecondGraphColor))) { StrokeThickness = 2 } - //DataLabels = true }); MainWindow.dataLoader.model.weaponUsageSeries.Add(new StackedColumnSeries @@ -815,10 +814,8 @@ private void SetWeaponUsageChart(CartesianChart weaponUsageChart) DataLabelsPaint = new SolidColorPaint(new SKColor(MainWindow.dataLoader.model.HexColorToDecimal(CatppuccinMochaColorsMapper.CatppuccinMochaColors["Text"]))), DataLabelsSize = 14, DataLabelsPosition = DataLabelsPosition.Middle, - //Stroke = null, Fill = new LinearGradientPaint(new SKColor(MainWindow.dataLoader.model.HexColorToDecimal(s.PlayerHitsPerSecondGraphColor, "7f")), new SKColor(MainWindow.dataLoader.model.HexColorToDecimal(s.PlayerHitsPerSecondGraphColor, "00")), new SKPoint(0.5f, 0), new SKPoint(0.5f, 1)), Stroke = new SolidColorPaint(new SKColor(MainWindow.dataLoader.model.HexColorToDecimal(s.PlayerHitsPerSecondGraphColor))) { StrokeThickness = 2 } - //DataLabels = true }); MainWindow.dataLoader.model.weaponUsageSeries.Add(new StackedColumnSeries @@ -828,10 +825,8 @@ private void SetWeaponUsageChart(CartesianChart weaponUsageChart) DataLabelsPaint = new SolidColorPaint(new SKColor(MainWindow.dataLoader.model.HexColorToDecimal(CatppuccinMochaColorsMapper.CatppuccinMochaColors["Text"]))), DataLabelsSize = 14, DataLabelsPosition = DataLabelsPosition.Middle, - //Stroke = null, Fill = new LinearGradientPaint(new SKColor(MainWindow.dataLoader.model.HexColorToDecimal(s.PlayerHitsPerSecondGraphColor, "7f")), new SKColor(MainWindow.dataLoader.model.HexColorToDecimal(s.PlayerHitsPerSecondGraphColor, "00")), new SKPoint(0.5f, 0), new SKPoint(0.5f, 1)), Stroke = new SolidColorPaint(new SKColor(MainWindow.dataLoader.model.HexColorToDecimal(s.PlayerHitsPerSecondGraphColor))) { StrokeThickness = 2 } - //DataLabels = true }); weaponUsageChart.Series = MainWindow.dataLoader.model.weaponUsageSeries; @@ -844,7 +839,6 @@ private void SetWeaponUsageChart(CartesianChart weaponUsageChart) ShowSeparatorLines=true, IsVisible=false, LabelsPaint = new SolidColorPaint(new SKColor(MainWindow.dataLoader.model.HexColorToDecimal(CatppuccinMochaColorsMapper.CatppuccinMochaColors["Text"]))), - //Labels = new string[] { "SnS", "DS", "GS", "LS", "HA", "HH", "LA", "GL", "TO", "SAF", "MS", "LBG", "HBG", "BW" } } }; weaponUsageChart.YAxes = new List @@ -885,7 +879,6 @@ private bool MonsterFilterSmall(object obj) return !FilterObj.IsLarge; } - public Predicate GetFilter() { switch (FilterBox.SelectedItem as string) @@ -910,7 +903,6 @@ private void RoadOverrideTextBox_PreviewTextInput(object sender, TextComposition { e.Handled = true; } - } /// @@ -998,7 +990,7 @@ public void DefaultKey_Press() /// The instance containing the event data. private void DefaultButton_Click(object sender, RoutedEventArgs e) { - var result = MessageBox.Show("Resetting settings, are you sure?", Messages.INFO_TITLE, MessageBoxButton.YesNo, MessageBoxImage.Question, MessageBoxResult.No); + var result = MessageBox.Show("Resetting settings, are you sure?", Messages.InfoTitle, MessageBoxButton.YesNo, MessageBoxImage.Question, MessageBoxResult.No); if (result == MessageBoxResult.Yes) { Settings s = (Settings)Application.Current.TryFindResource("Settings"); @@ -1032,8 +1024,11 @@ private void ValidateNumber(object sender, TextCompositionEventArgs e) return; } } + if (e.Text.Length > 1 && e.Text[0] == '0') + { e.Handled = true; + } } private void ValidateDecimalNumber(object sender, TextCompositionEventArgs e) @@ -1061,10 +1056,10 @@ private void ValidateDecimalNumber(object sender, TextCompositionEventArgs e) } } - //https://stackoverflow.com/questions/1051989/regex-for-alphanumeric-but-at-least-one-letter - //^(?=.*[a-zA-Z].*)([a-zA-Z0-9]{6,12})$ - //([a-zA-Z0-9_\s]+) - //[^a-zA-Z_0-9] + // https://stackoverflow.com/questions/1051989/regex-for-alphanumeric-but-at-least-one-letter + // ^(?=.*[a-zA-Z].*)([a-zA-Z0-9]{6,12})$ + // ([a-zA-Z0-9_\s]+) + // [^a-zA-Z_0-9] /// /// Validates the name. @@ -1076,10 +1071,10 @@ private void ValidateName(object sender, TextCompositionEventArgs e) // Create a Regex // Get all matches - //https://stackoverflow.com/questions/1046740/how-can-i-validate-a-string-to-only-allow-alphanumeric-characters-in-it + // https://stackoverflow.com/questions/1046740/how-can-i-validate-a-string-to-only-allow-alphanumeric-characters-in-it if (!(e.Text.All(char.IsLetterOrDigit))) { - //just letters and digits. + // just letters and digits. e.Handled = true; } } @@ -1091,7 +1086,6 @@ private void ValidateName(object sender, TextCompositionEventArgs e) /// The instance containing the event data. private void lnkImg_RequestNavigate(object sender, System.Windows.Navigation.RequestNavigateEventArgs e) { - Process.Start(new ProcessStartInfo(e.Uri.AbsoluteUri) { UseShellExecute = true }); e.Handled = true; } @@ -1103,10 +1097,7 @@ private void lnkImg_RequestNavigate(object sender, System.Windows.Navigation.Req public static string GetTextFormatMode() { Settings s = (Settings)Application.Current.TryFindResource("Settings"); - if (s.TextFormatExport != null) - return s.TextFormatExport; - else - return "None"; + return s.TextFormatExport ?? "None"; } /// @@ -1119,9 +1110,13 @@ private void BtnSaveFile_Click(object sender, RoutedEventArgs e) string textToSave = GearStats.Text; if (GetTextFormatMode() == "Code Block") + { textToSave = string.Format(CultureInfo.InvariantCulture, "```text\n{0}\n```", textToSave); + } else if (GetTextFormatMode() == "Markdown") + { textToSave = MainWindow.dataLoader.model.MarkdownSavedGearStats; + } FileManager.SaveTextFile(textToSave, "GearStats"); } @@ -1136,9 +1131,13 @@ private void BtnCopyFile_Click(object sender, RoutedEventArgs e) string textToSave = GearStats.Text; if (GetTextFormatMode() == "Code Block") + { textToSave = string.Format(CultureInfo.InvariantCulture, "```text\n{0}\n```", textToSave); + } else if (GetTextFormatMode() == "Markdown") + { textToSave = MainWindow.dataLoader.model.MarkdownSavedGearStats; + } else if (GetTextFormatMode() == "Image") { var previousBackground = GearTextGrid.Background; @@ -1148,9 +1147,9 @@ private void BtnCopyFile_Click(object sender, RoutedEventArgs e) return; } - //https://stackoverflow.com/questions/3546016/how-to-copy-data-to-clipboard-in-c-sharp + // https://stackoverflow.com/questions/3546016/how-to-copy-data-to-clipboard-in-c-sharp Clipboard.SetText(textToSave); - ConfigWindowSnackBar.Show(Messages.INFO_TITLE, "Copied text to clipboard", new SymbolIcon(SymbolRegular.Clipboard32), ControlAppearance.Success); + ConfigWindowSnackBar.Show(Messages.InfoTitle, "Copied text to clipboard", new SymbolIcon(SymbolRegular.Clipboard32), ControlAppearance.Success); } private void BtnImageFile_Click(object sender, RoutedEventArgs e) @@ -1159,8 +1158,6 @@ private void BtnImageFile_Click(object sender, RoutedEventArgs e) FileManager.SaveElementAsImageFile(GearImageGrid, fileName, ConfigWindowSnackBar); } - - private void FilterBox_SelectionChanged(object sender, SelectionChangedEventArgs e) { HuntLogDataGrid.Items.Filter = GetFilter(); @@ -1172,7 +1169,6 @@ protected void BtnLogFile_Click(object sender, EventArgs e) FileManager.SaveMonsterLogRecordsAsCSVFile(Monsters); } - private void Config_Closed(object sender, EventArgs e) { Settings s = (Settings)Application.Current.TryFindResource("Settings"); @@ -1191,11 +1187,13 @@ private void BtnGuildCardFile_Click(object sender, RoutedEventArgs e) private void ChangeMonsterInfo() { if (webViewMonsterInfo == null) + { return; + } - Dictionary MonsterFeriasOptionDictionary = new(); - Dictionary MonsterWikiOptionDictionary = new(); - Dictionary MonsterVideoLinkOptionDictionary = new(); + Dictionary MonsterFeriasOptionDictionary = new (); + Dictionary MonsterWikiOptionDictionary = new (); + Dictionary MonsterVideoLinkOptionDictionary = new (); for (int i = 0; i < monsterInfos.Count; i++) { @@ -1208,35 +1206,42 @@ private void ChangeMonsterInfo() MonsterFeriasOptionDictionary.Add(monsterInfos[i].Name, monsterInfos[i].FeriasLink); } - //see this - //string selectedOverlayMode = ((ComboBoxItem)configWindow.OverlayModeComboBox.SelectedItem).Content.ToString(); + // see this + // string selectedOverlayMode = ((ComboBoxItem)configWindow.OverlayModeComboBox.SelectedItem).Content.ToString(); string? selectedName = MonsterNameComboBox.SelectedItem.ToString(); if (string.IsNullOrEmpty(selectedName)) + { selectedName = string.Empty; + } + string selectedMatchup = $"{((ComboBoxItem)WeaponMatchupComboBox.SelectedItem).Content} {selectedName}"; if (!MonsterFeriasOptionDictionary.TryGetValue(selectedName, out string? val1) || !MonsterWikiOptionDictionary.TryGetValue(selectedName, out string? val2)) + { return; + } if (webViewMonsterInfo.CoreWebView2 == null) + { return; + } switch (MonsterInfoViewOptionComboBox.SelectedIndex) { default: return; - case 0://ferias - //https://stackoverflow.com/questions/1265812/howto-define-the-auto-width-of-the-wpf-gridview-column-in-code - DockPanelMonsterInfo.Width = Double.NaN;//Auto - DockPanelMonsterInfo.Height = Double.NaN;//Auto + case 0:// ferias + // https://stackoverflow.com/questions/1265812/howto-define-the-auto-width-of-the-wpf-gridview-column-in-code + DockPanelMonsterInfo.Width = Double.NaN;// Auto + DockPanelMonsterInfo.Height = Double.NaN;// Auto webViewMonsterInfo.CoreWebView2.Navigate(MonsterFeriasOptionDictionary[MonsterNameComboBox.SelectedItem.ToString() + ""]); return; - case 1://wiki - DockPanelMonsterInfo.Width = Double.NaN;//Auto - DockPanelMonsterInfo.Height = Double.NaN;//Auto + case 1:// wiki + DockPanelMonsterInfo.Width = Double.NaN;// Auto + DockPanelMonsterInfo.Height = Double.NaN;// Auto webViewMonsterInfo.CoreWebView2.Navigate(MonsterWikiOptionDictionary[MonsterNameComboBox.SelectedItem.ToString() + ""]); return; - case 2://youtube + case 2:// youtube if (MonsterVideoLinkOptionDictionary.TryGetValue(selectedMatchup, out string? videoval) && MonsterVideoLinkOptionDictionary[selectedMatchup] != "") { DockPanelMonsterInfo.Width = 854; @@ -1256,6 +1261,7 @@ private void ChangeMonsterInfo() System.Diagnostics.Process.Start(sInfo); } } + return; } } @@ -1280,16 +1286,17 @@ private void MonsterViewInfoOption_SelectionChanged(object sender, SelectionChan ChangeMonsterInfo(); } - #region repository stats - GitHubClient client = new GitHubClient(new ProductHeaderValue("MHFZ_Overlay")); + // TODO optimize private async Task GetRepoStats() { var info = client.GetLastApiInfo(); if (info != null) + { OctokitInfo.Text = string.Format(CultureInfo.InvariantCulture, "Server Time Difference: {0}, Max Requests/hr: {1}, Requests remaining: {2}, Current Rate Limit Window Reset: {3}", info.ServerTimeDifference, info.RateLimit.Limit, info.RateLimit.Remaining, info.RateLimit.Reset); + } var issuesForOctokit = await client.Issue.GetAllForRepository("DorielRivalet", "MHFZ_Overlay"); @@ -1302,21 +1309,25 @@ private async Task GetRepoStats() info = client.GetLastApiInfo(); if (info != null) + { OctokitInfo.Text = string.Format(CultureInfo.InvariantCulture, "Server Time Difference: {0}, Max Requests/hr: {1}, Requests remaining: {2}, Current Rate Limit Window Reset: {3}", info.ServerTimeDifference, info.RateLimit.Limit, info.RateLimit.Remaining, info.RateLimit.Reset); + } info = client.GetLastApiInfo(); if (info != null) + { OctokitInfo.Text = string.Format(CultureInfo.InvariantCulture, "Server Time Difference: {0}, Max Requests/hr: {1}, Requests remaining: {2}, Reset Time: {3}", info.ServerTimeDifference, info.RateLimit.Limit, info.RateLimit.Remaining, info.RateLimit.Reset); - + } } - #endregion - private void Fumo_MediaEnded(object sender, RoutedEventArgs e) { if (myFumo == null) + { return; + } + myFumo.Position = new TimeSpan(0, 0, 1); myFumo.Play(); } @@ -1324,7 +1335,10 @@ private void Fumo_MediaEnded(object sender, RoutedEventArgs e) private void Krill_MediaEnded(object sender, RoutedEventArgs e) { if (myKrill == null) + { return; + } + myKrill.Position = new TimeSpan(0, 0, 1); myKrill.Play(); } @@ -1332,7 +1346,10 @@ private void Krill_MediaEnded(object sender, RoutedEventArgs e) private void Stars_MediaEnded(object sender, RoutedEventArgs e) { if (myAnime == null) + { return; + } + myAnime.Position = new TimeSpan(0, 0, 1); myAnime.Play(); } @@ -1340,7 +1357,10 @@ private void Stars_MediaEnded(object sender, RoutedEventArgs e) private void Watcher_MediaEnded(object sender, RoutedEventArgs e) { if (myWatcher == null) + { return; + } + myWatcher.Position = new TimeSpan(0, 0, 1); myWatcher.Play(); } @@ -1366,17 +1386,19 @@ private void OpenSettingsFolder_Click(object sender, RoutedEventArgs e) if (!Directory.Exists(settingsFileDirectoryName)) { logger.Error(CultureInfo.InvariantCulture, "Could not open settings folder"); - ConfigWindowSnackBar.ShowAsync(Messages.ERROR_TITLE, "Could not open settings folder", new SymbolIcon(SymbolRegular.ErrorCircle24), ControlAppearance.Danger); + ConfigWindowSnackBar.ShowAsync(Messages.ErrorTitle, "Could not open settings folder", new SymbolIcon(SymbolRegular.ErrorCircle24), ControlAppearance.Danger); return; } + string settingsFolder = settingsFileDirectoryName; + // Open file manager at the specified folder - Process.Start(ApplicationPaths.EXPLORER_PATH, settingsFolder); + Process.Start(ApplicationPaths.ExplorerPath, settingsFolder); } catch (Exception ex) { logger.Error(ex); - ConfigWindowSnackBar.ShowAsync(Messages.ERROR_TITLE, "Could not open settings folder", new SymbolIcon(SymbolRegular.ErrorCircle24), ControlAppearance.Danger); + ConfigWindowSnackBar.ShowAsync(Messages.ErrorTitle, "Could not open settings folder", new SymbolIcon(SymbolRegular.ErrorCircle24), ControlAppearance.Danger); } } @@ -1386,13 +1408,16 @@ private void OpenLogsFolder_Click(object sender, RoutedEventArgs e) { var directoryName = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); if (directoryName == null) + { return; + } + var logFilePath = Path.Combine(directoryName, "logs", "logs.log"); if (!File.Exists(logFilePath)) { logger.Error(CultureInfo.InvariantCulture, "Could not find the log file: {0}", logFilePath); - System.Windows.MessageBox.Show(string.Format(CultureInfo.InvariantCulture, "Could not find the log file: {0}", logFilePath), Messages.ERROR_TITLE, MessageBoxButton.OK, MessageBoxImage.Error); + System.Windows.MessageBox.Show(string.Format(CultureInfo.InvariantCulture, "Could not find the log file: {0}", logFilePath), Messages.ErrorTitle, MessageBoxButton.OK, MessageBoxImage.Error); } // Open the log file using the default application @@ -1400,8 +1425,11 @@ private void OpenLogsFolder_Click(object sender, RoutedEventArgs e) { var logFilePathDirectory = Path.GetDirectoryName(logFilePath); if (logFilePathDirectory == null) + { return; - Process.Start(ApplicationPaths.EXPLORER_PATH, logFilePathDirectory); + } + + Process.Start(ApplicationPaths.ExplorerPath, logFilePathDirectory); } catch (Exception ex) { @@ -1421,18 +1449,20 @@ private void OpenDatabaseFolder_Click(object sender, RoutedEventArgs e) Settings s = (Settings)Application.Current.TryFindResource("Settings"); var directoryName = Path.GetDirectoryName(s.DatabaseFilePath); if (directoryName == null) + { return; + } if (!File.Exists(s.DatabaseFilePath)) { logger.Error(CultureInfo.InvariantCulture, "Could not find the database file: {0}", s.DatabaseFilePath); - System.Windows.MessageBox.Show(string.Format(CultureInfo.InvariantCulture, "Could not find the database file: {0}", s.DatabaseFilePath), Messages.ERROR_TITLE, MessageBoxButton.OK, MessageBoxImage.Error); + System.Windows.MessageBox.Show(string.Format(CultureInfo.InvariantCulture, "Could not find the database file: {0}", s.DatabaseFilePath), Messages.ErrorTitle, MessageBoxButton.OK, MessageBoxImage.Error); } // Open the log file using the default application try { - Process.Start(ApplicationPaths.EXPLORER_PATH, directoryName); + Process.Start(ApplicationPaths.ExplorerPath, directoryName); } catch (Exception ex) { @@ -1448,7 +1478,9 @@ private void OpenDatabaseFolder_Click(object sender, RoutedEventArgs e) private void questLoggingToggle_Check(object sender, RoutedEventArgs e) { if (MainWindow == null) + { return; + } MainWindow.dataLoader.model.ValidateGameFolder(); @@ -1472,54 +1504,52 @@ private void QuestIDButton_Click(object sender, RoutedEventArgs e) private void SetDefaultInfoInQuestIDWeaponSection() { + SwordAndShieldBestTimeTextBlock.Text = Messages.TimerNotLoaded; + SwordAndShieldRunIDTextBlock.Text = Messages.RunNotFound; - SwordAndShieldBestTimeTextBlock.Text = Messages.TIMER_NOT_LOADED; - SwordAndShieldRunIDTextBlock.Text = Messages.RUN_NOT_FOUND; + GreatSwordBestTimeTextBlock.Text = Messages.TimerNotLoaded; + GreatSwordRunIDTextBlock.Text = Messages.RunNotFound; - GreatSwordBestTimeTextBlock.Text = Messages.TIMER_NOT_LOADED; - GreatSwordRunIDTextBlock.Text = Messages.RUN_NOT_FOUND; + DualSwordsBestTimeTextBlock.Text = Messages.TimerNotLoaded; + DualSwordsRunIDTextBlock.Text = Messages.RunNotFound; - DualSwordsBestTimeTextBlock.Text = Messages.TIMER_NOT_LOADED; - DualSwordsRunIDTextBlock.Text = Messages.RUN_NOT_FOUND; + LongSwordBestTimeTextBlock.Text = Messages.TimerNotLoaded; + LongSwordRunIDTextBlock.Text = Messages.RunNotFound; - LongSwordBestTimeTextBlock.Text = Messages.TIMER_NOT_LOADED; - LongSwordRunIDTextBlock.Text = Messages.RUN_NOT_FOUND; + LanceBestTimeTextBlock.Text = Messages.TimerNotLoaded; + LanceRunIDTextBlock.Text = Messages.RunNotFound; - LanceBestTimeTextBlock.Text = Messages.TIMER_NOT_LOADED; - LanceRunIDTextBlock.Text = Messages.RUN_NOT_FOUND; + GunlanceBestTimeTextBlock.Text = Messages.TimerNotLoaded; + GunlanceRunIDTextBlock.Text = Messages.RunNotFound; - GunlanceBestTimeTextBlock.Text = Messages.TIMER_NOT_LOADED; - GunlanceRunIDTextBlock.Text = Messages.RUN_NOT_FOUND; + HammerBestTimeTextBlock.Text = Messages.TimerNotLoaded; + HammerRunIDTextBlock.Text = Messages.RunNotFound; - HammerBestTimeTextBlock.Text = Messages.TIMER_NOT_LOADED; - HammerRunIDTextBlock.Text = Messages.RUN_NOT_FOUND; + HuntingHornBestTimeTextBlock.Text = Messages.TimerNotLoaded; + HuntingHornRunIDTextBlock.Text = Messages.RunNotFound; - HuntingHornBestTimeTextBlock.Text = Messages.TIMER_NOT_LOADED; - HuntingHornRunIDTextBlock.Text = Messages.RUN_NOT_FOUND; + TonfaBestTimeTextBlock.Text = Messages.TimerNotLoaded; + TonfaRunIDTextBlock.Text = Messages.RunNotFound; - TonfaBestTimeTextBlock.Text = Messages.TIMER_NOT_LOADED; - TonfaRunIDTextBlock.Text = Messages.RUN_NOT_FOUND; + SwitchAxeFBestTimeTextBlock.Text = Messages.TimerNotLoaded; + SwitchAxeFRunIDTextBlock.Text = Messages.RunNotFound; - SwitchAxeFBestTimeTextBlock.Text = Messages.TIMER_NOT_LOADED; - SwitchAxeFRunIDTextBlock.Text = Messages.RUN_NOT_FOUND; + MagnetSpikeBestTimeTextBlock.Text = Messages.TimerNotLoaded; + MagnetSpikeRunIDTextBlock.Text = Messages.RunNotFound; - MagnetSpikeBestTimeTextBlock.Text = Messages.TIMER_NOT_LOADED; - MagnetSpikeRunIDTextBlock.Text = Messages.RUN_NOT_FOUND; + LightBowgunBestTimeTextBlock.Text = Messages.TimerNotLoaded; + LightBowgunRunIDTextBlock.Text = Messages.RunNotFound; - LightBowgunBestTimeTextBlock.Text = Messages.TIMER_NOT_LOADED; - LightBowgunRunIDTextBlock.Text = Messages.RUN_NOT_FOUND; + HeavyBowgunBestTimeTextBlock.Text = Messages.TimerNotLoaded; + HeavyBowgunRunIDTextBlock.Text = Messages.RunNotFound; - HeavyBowgunBestTimeTextBlock.Text = Messages.TIMER_NOT_LOADED; - HeavyBowgunRunIDTextBlock.Text = Messages.RUN_NOT_FOUND; - - BowBestTimeTextBlock.Text = Messages.TIMER_NOT_LOADED; - BowRunIDTextBlock.Text = Messages.RUN_NOT_FOUND; + BowBestTimeTextBlock.Text = Messages.TimerNotLoaded; + BowRunIDTextBlock.Text = Messages.RunNotFound; SelectedQuestObjectiveImage.Source = new BitmapImage(new Uri("https://raw.githubusercontent.com/DorielRivalet/mhfz-overlay/main/img/monster/random.png")); - SelectedQuestNameTextBlock.Text = Messages.QUEST_NOT_FOUND; - SelectedQuestObjectiveTextBlock.Text = Messages.INVALID_QUEST; - CurrentTimeTextBlock.Text = Messages.NOT_A_NUMBER; - + SelectedQuestNameTextBlock.Text = Messages.QuestNotFound; + SelectedQuestObjectiveTextBlock.Text = Messages.InvalidQuest; + CurrentTimeTextBlock.Text = Messages.NotANumber; } private void TabControl_SelectionChanged(object sender, SelectionChangedEventArgs e) @@ -1536,7 +1566,9 @@ private void QuestLogsSectionComboBox_SelectionChanged(object sender, SelectionC { // Confirm parent and childName are valid. if (parent == null) + { return null; + } T? foundChild = null; @@ -1544,6 +1576,7 @@ private void QuestLogsSectionComboBox_SelectionChanged(object sender, SelectionC for (int i = 0; i < childrenCount; i++) { var child = VisualTreeHelper.GetChild(parent, i); + // If the child is not of the request child type child T? childType = child as T; if (childType == null) @@ -1553,11 +1586,14 @@ private void QuestLogsSectionComboBox_SelectionChanged(object sender, SelectionC // If the child is found, break so we do not overwrite the found child. if (foundChild != null) + { break; + } } else if (!string.IsNullOrEmpty(childName)) { var frameworkElement = child as FrameworkElement; + // If the child's name is set for search if (frameworkElement != null && frameworkElement.Name == childName) { @@ -1573,6 +1609,7 @@ private void QuestLogsSectionComboBox_SelectionChanged(object sender, SelectionC break; } } + return foundChild; } @@ -1580,7 +1617,9 @@ private void WeaponUsageGraphComboBox_SelectionChanged(object sender, SelectionC { ComboBox comboBox = (ComboBox)sender; if (weaponUsageChart == null) + { return; + } MainWindow.dataLoader.model.weaponUsageEarthStyle.Clear(); MainWindow.dataLoader.model.weaponUsageHeavenStyle.Clear(); @@ -1673,7 +1712,6 @@ private void weaponUsageChart_Loaded(object sender, RoutedEventArgs e) private DataGrid? calendarDataGrid; private Grid? personalBestChartGrid; private Grid? weaponUsageChartGrid; - private ComboBox? statsGraphsComboBox; private Grid? statsGraphsGrid; private TextBlock? personalBestDescriptionTextBlock; private TextBlock? top20RunsDescriptionTextblock; @@ -1683,77 +1721,23 @@ private void weaponUsageChart_Loaded(object sender, RoutedEventArgs e) private Grid? statsGraphsMainGrid; private Grid? statsTextMainGrid; - - - // TODO: it works. i need to put this somewhere else - private async Task ShowSequentialSnackbars() - { - // TODO: test the colors for achievements - - //var symbolIcon = new SymbolIcon(SymbolRegular.ErrorCircle24); - //BrushConverter brushConverter = new BrushConverter(); - //symbolIcon.Foreground = (Brush)brushConverter.ConvertFromString(CatppuccinMochaColorsDictionary.CatppuccinMochaColors["Green"]); - - // Show the first snackbar - await MainWindow.MainWindowSnackBar.ShowAsync("Important message 1", "Message 1", new SymbolIcon(SymbolRegular.Accessibility24), ControlAppearance.Dark); - - // Handle completion of the first snackbar - await Task.Delay(TimeSpan.FromSeconds(2)); // Delay for a certain duration - MainWindow.MainWindowSnackBar.Hide(); // Hide the first snackbar - - // Show the second snackbar - await MainWindow.MainWindowSnackBar.ShowAsync("Important message 2", "Message 2", new SymbolIcon(SymbolRegular.Accessibility24), ControlAppearance.Light); - - // Handle completion of the second snackbar - await Task.Delay(TimeSpan.FromSeconds(2)); // Delay for a certain duration - MainWindow.MainWindowSnackBar.Hide(); // Hide the second snackbar - - // Show the third snackbar - await MainWindow.MainWindowSnackBar.ShowAsync("Important message 3", "Message 3", new SymbolIcon(SymbolRegular.Accessibility24), ControlAppearance.Primary); - - // Handle completion of the third snackbar - await Task.Delay(TimeSpan.FromSeconds(2)); // Delay for a certain duration - MainWindow.MainWindowSnackBar.Hide(); // Hide the third snackbar - - await MainWindow.MainWindowSnackBar.ShowAsync("Important message 4", "Message 3", new SymbolIcon(SymbolRegular.Accessibility24), ControlAppearance.Secondary); - await Task.Delay(TimeSpan.FromSeconds(2)); - MainWindow.MainWindowSnackBar.Hide(); - - await MainWindow.MainWindowSnackBar.ShowAsync("Important message 5", "Message 3", new SymbolIcon(SymbolRegular.Accessibility24), ControlAppearance.Success); - await Task.Delay(TimeSpan.FromSeconds(2)); - MainWindow.MainWindowSnackBar.Hide(); - - await MainWindow.MainWindowSnackBar.ShowAsync("Important message 6", "Message 3", new SymbolIcon(SymbolRegular.Accessibility24), ControlAppearance.Caution); - await Task.Delay(TimeSpan.FromSeconds(2)); - MainWindow.MainWindowSnackBar.Hide(); - - await MainWindow.MainWindowSnackBar.ShowAsync("Important message 7", "Message 3", new SymbolIcon(SymbolRegular.Accessibility24), ControlAppearance.Danger); - await Task.Delay(TimeSpan.FromSeconds(2)); - MainWindow.MainWindowSnackBar.Hide(); - - await MainWindow.MainWindowSnackBar.ShowAsync("Important message 8", "Message 3", new SymbolIcon(SymbolRegular.Accessibility24), ControlAppearance.Transparent); - await Task.Delay(TimeSpan.FromSeconds(2)); - MainWindow.MainWindowSnackBar.Hide(); - - await MainWindow.MainWindowSnackBar.ShowAsync("Important message 9", "Message 3", new SymbolIcon(SymbolRegular.Accessibility24), ControlAppearance.Info); - await Task.Delay(TimeSpan.FromSeconds(2)); - MainWindow.MainWindowSnackBar.Hide(); - } - private void UpdateYoutubeLink_ButtonClick(object sender, RoutedEventArgs e) { // Get the quest ID and new YouTube link from the textboxes long runID = long.Parse(RunIDTextBox.Text.Trim(), CultureInfo.InvariantCulture); if (youtubeLinkTextBox == null) + { return; + } + string youtubeLink = youtubeLinkTextBox.Text.Trim(); if (databaseManager.UpdateYoutubeLink(sender, e, runID, youtubeLink)) { - ConfigWindowSnackBar.ShowAsync(Messages.INFO_TITLE, string.Format(CultureInfo.InvariantCulture, "Updated run {0} with link https://youtube.com/watch?v={1}", runID, youtubeLink), new SymbolIcon(SymbolRegular.Video32), ControlAppearance.Success); + ConfigWindowSnackBar.ShowAsync(Messages.InfoTitle, string.Format(CultureInfo.InvariantCulture, "Updated run {0} with link https://youtube.com/watch?v={1}", runID, youtubeLink), new SymbolIcon(SymbolRegular.Video32), ControlAppearance.Success); } else { - ConfigWindowSnackBar.ShowAsync(Messages.ERROR_TITLE, string.Format(CultureInfo.InvariantCulture, "Could not update run {0} with link https://youtube.com/watch?v={1}. The link may have already been set to the same value, or the run ID and link input are invalid.", runID, youtubeLink), new SymbolIcon(SymbolRegular.Video32), ControlAppearance.Danger); + ConfigWindowSnackBar.ShowAsync(Messages.ErrorTitle, string.Format(CultureInfo.InvariantCulture, "Could not update run {0} with link https://youtube.com/watch?v={1}. The link may have already been set to the same value, or the run ID and link input are invalid.", runID, youtubeLink), new SymbolIcon(SymbolRegular.Video32), ControlAppearance.Danger); } } @@ -1771,7 +1755,7 @@ private void YoutubeIconButton_Click(object sender, RoutedEventArgs e) } else { - MessageBox.Show("Run not found", Messages.ERROR_TITLE, MessageBoxButton.OK, MessageBoxImage.Error); + MessageBox.Show("Run not found", Messages.ErrorTitle, MessageBoxButton.OK, MessageBoxImage.Error); } } @@ -1782,11 +1766,6 @@ private void YoutubeLinkTextBox_Loaded(object sender, RoutedEventArgs e) private void MostRecentRuns_ListViewLoaded(object sender, RoutedEventArgs e) { - //mostRecentRunsListView = (ListView)sender; - //MainWindow.dataLoader.model.RecentRuns = databaseManager.GetRecentRuns(); - //mostRecentRunsListView.ItemsSource = MainWindow.dataLoader.model.RecentRuns; - //mostRecentRunsListView.DataContext = MainWindow.dataLoader.model.RecentRuns; - //mostRecentRunsListView.Items.Refresh(); mostRecentRunsListView = (ListView)sender; MainWindow.dataLoader.model.RecentRuns = databaseManager.GetRecentRuns(); mostRecentRunsListView.ItemsSource = MainWindow.dataLoader.model.RecentRuns; @@ -1811,28 +1790,43 @@ private void Top20Runs_DataGridLoaded(object sender, RoutedEventArgs e) } private string top20RunsSelectedWeapon = string.Empty; + private string statsGraphsSelectedOption = string.Empty; + private string statsTextSelectedOption = string.Empty; private void weaponListTop20RunsComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e) { - //top20RunsListView = (ListView)sender; + // top20RunsListView = (ListView)sender; if (top20RunsDataGrid == null) + { return; + } + var comboBox = sender as ComboBox; if (comboBox == null) + { return; + } + var selectedItem = comboBox.SelectedItem; if (selectedItem == null) + { return; + } + // You can now use the selectedItem variable to get the data or value of the selected option string? selectedWeapon = selectedItem.ToString()?.Replace("System.Windows.Controls.ComboBoxItem: ", ""); if (string.IsNullOrEmpty(selectedWeapon)) + { return; + } + top20RunsSelectedWeapon = selectedWeapon; MainWindow.dataLoader.model.FastestRuns = databaseManager.GetFastestRuns(this, selectedWeapon); top20RunsDataGrid.ItemsSource = MainWindow.dataLoader.model.FastestRuns; top20RunsDataGrid.Items.Refresh(); + if (top20RunsDescriptionTextblock != null) { top20RunsDescriptionTextblock.Text = $"Top 20 fastest solo runs of quest ID {QuestIDTextBox.Text} by category {OverlayModeComboBox.Text}"; @@ -1843,7 +1837,9 @@ private void QuestLogGearStats_Loaded(object sender, RoutedEventArgs e) { var textBlock = sender as TextBlock; if (textBlock == null) + { return; + } long runID = long.Parse(RunIDTextBox.Text.Trim(), CultureInfo.InvariantCulture); textBlock.Text = MainWindow.dataLoader.model.GenerateGearStats(runID); @@ -1853,7 +1849,10 @@ private void QuestLogGearStats_Loaded(object sender, RoutedEventArgs e) private void QuestLogGearBtnSaveFile_Click(object sender, RoutedEventArgs e) { if (questLogGearStatsTextBlock == null) + { return; + } + string textToSave = questLogGearStatsTextBlock.Text; textToSave = string.Format(CultureInfo.InvariantCulture, "```text\n{0}\n```", textToSave); var fileName = "Set"; @@ -1865,7 +1864,10 @@ private void QuestLogGearBtnSaveFile_Click(object sender, RoutedEventArgs e) private void QuestLogGearBtnCopyFile_Click(object sender, RoutedEventArgs e) { if (questLogGearStatsTextBlock == null) + { return; + } + var previousBackground = questLogGearStatsTextBlock.Background; questLogGearStatsTextBlock.Background = new SolidColorBrush(Color.FromArgb(0xFF, 0x1E, 0x1E, 0x2E)); FileManager.CopyUIElementToClipboard(questLogGearStatsTextBlock, ConfigWindowSnackBar); @@ -1876,7 +1878,10 @@ private void Compendium_Loaded(object sender, RoutedEventArgs e) { var textBlock = sender as TextBlock; if (textBlock == null) + { return; + } + textBlock.Text = MainWindow.dataLoader.model.GenerateCompendium(MainWindow.dataLoader); compendiumTextBlock = textBlock; } @@ -1884,7 +1889,10 @@ private void Compendium_Loaded(object sender, RoutedEventArgs e) private void CompendiumBtnSaveFile_Click(object sender, RoutedEventArgs e) { if (compendiumTextBlock == null) + { return; + } + string textToSave = compendiumTextBlock.Text; textToSave = string.Format(CultureInfo.InvariantCulture, "```text\n{0}\n```", textToSave); @@ -1894,7 +1902,10 @@ private void CompendiumBtnSaveFile_Click(object sender, RoutedEventArgs e) private void CompendiumBtnCopyFile_Click(object sender, RoutedEventArgs e) { if (compendiumInformationStackPanel == null) + { return; + } + var previousBackground = compendiumInformationStackPanel.Background; compendiumInformationStackPanel.Background = new SolidColorBrush(Color.FromArgb(0xFF, 0x1E, 0x1E, 0x2E)); FileManager.CopyUIElementToClipboard(compendiumInformationStackPanel, ConfigWindowSnackBar); @@ -1908,7 +1919,10 @@ private void CalendarButtonSaveFile_Click(object sender, RoutedEventArgs e) { var data = MainWindow.dataLoader.model.CalendarRuns; if (data == null) + { return; + } + SaveFileDialog saveFileDialog = new SaveFileDialog(); saveFileDialog.Filter = "CSV files (*.csv)|*.csv"; saveFileDialog.Title = "Save Calendar Runs as CSV"; @@ -2013,7 +2027,10 @@ public void SaveCSVFromListOfFastestRuns(List fastestRuns, string fi private void CalendarButtonCopyFile_Click(object sender, RoutedEventArgs e) { if (calendarDataGrid == null) + { return; + } + var previousBackground = calendarDataGrid.Background; calendarDataGrid.Background = new SolidColorBrush(Color.FromArgb(0xFF, 0x1E, 0x1E, 0x2E)); FileManager.CopyUIElementToClipboard(calendarDataGrid, ConfigWindowSnackBar); @@ -2023,7 +2040,10 @@ private void CalendarButtonCopyFile_Click(object sender, RoutedEventArgs e) private void PersonalBestButtonSaveFile_Click(object sender, RoutedEventArgs e) { if (personalBestChart == null || personalBestChartGrid == null || personalBestMainGrid == null) + { return; + } + var fileName = $"PersonalBest-Quest_{QuestIDTextBox.Text}-{OverlayModeComboBox.Text}-{personalBestSelectedType}-{personalBestSelectedWeapon}".Trim().Replace(" ", "_"); FileManager.SaveElementAsImageFile(personalBestMainGrid, fileName, ConfigWindowSnackBar, false); } @@ -2031,7 +2051,10 @@ private void PersonalBestButtonSaveFile_Click(object sender, RoutedEventArgs e) private void PersonalBestButtonCopyFile_Click(object sender, RoutedEventArgs e) { if (personalBestChartGrid == null || personalBestMainGrid == null) + { return; + } + var previousBackground = personalBestMainGrid.Background; personalBestMainGrid.Background = new SolidColorBrush(Color.FromArgb(0xFF, 0x1E, 0x1E, 0x2E)); FileManager.CopyUIElementToClipboard(personalBestMainGrid, ConfigWindowSnackBar); @@ -2044,7 +2067,10 @@ private void Top20ButtonSaveFile_Click(object sender, RoutedEventArgs e) { var data = MainWindow.dataLoader.model.FastestRuns; if (data == null) + { return; + } + SaveFileDialog saveFileDialog = new SaveFileDialog(); saveFileDialog.Filter = "CSV files (*.csv)|*.csv"; saveFileDialog.Title = "Save Fastest Runs as CSV"; @@ -2066,13 +2092,15 @@ private void Top20ButtonSaveFile_Click(object sender, RoutedEventArgs e) { logger.Error(ex, "Could not save text file"); } - } private void Top20ButtonCopyFile_Click(object sender, RoutedEventArgs e) { if (top20RunsDataGrid == null || top20MainGrid == null) + { return; + } + var previousBackground = top20MainGrid.Background; top20MainGrid.Background = new SolidColorBrush(Color.FromArgb(0xFF, 0x1E, 0x1E, 0x2E)); FileManager.CopyUIElementToClipboard(top20MainGrid, ConfigWindowSnackBar); @@ -2082,12 +2110,18 @@ private void Top20ButtonCopyFile_Click(object sender, RoutedEventArgs e) private void WeaponStatsButtonSaveFile_Click(object sender, RoutedEventArgs e) { if (weaponUsageChartGrid == null || weaponUsageChart == null || weaponUsageData == null || weaponStatsMainGrid == null) + { return; + } + try { var data = MainWindow.dataLoader.model.CalendarRuns; if (data == null) + { return; + } + SaveFileDialog saveFileDialog = new SaveFileDialog(); saveFileDialog.Filter = "CSV files (*.csv)|*.csv"; saveFileDialog.Title = "Save Weapon Stats as CSV"; @@ -2114,7 +2148,10 @@ private void WeaponStatsButtonSaveFile_Click(object sender, RoutedEventArgs e) private void WeaponStatsButtonCopyFile_Click(object sender, RoutedEventArgs e) { if (weaponUsageChartGrid == null || weaponStatsMainGrid == null) + { return; + } + var previousBackground = weaponStatsMainGrid.Background; weaponStatsMainGrid.Background = new SolidColorBrush(Color.FromArgb(0xFF, 0x1E, 0x1E, 0x2E)); FileManager.CopyUIElementToClipboard(weaponStatsMainGrid, ConfigWindowSnackBar); @@ -2127,7 +2164,10 @@ private void MostRecentButtonSaveFile_Click(object sender, RoutedEventArgs e) { var data = MainWindow.dataLoader.model.RecentRuns; if (data == null) + { return; + } + SaveFileDialog saveFileDialog = new SaveFileDialog(); saveFileDialog.Filter = "CSV files (*.csv)|*.csv"; saveFileDialog.Title = "Save Recent Runs as CSV"; @@ -2154,7 +2194,10 @@ private void MostRecentButtonSaveFile_Click(object sender, RoutedEventArgs e) private void MostRecentButtonCopyFile_Click(object sender, RoutedEventArgs e) { if (mostRecentRunsDataGrid == null) + { return; + } + var previousBackground = mostRecentRunsDataGrid.Background; mostRecentRunsDataGrid.Background = new SolidColorBrush(Color.FromArgb(0xFF, 0x1E, 0x1E, 0x2E)); FileManager.CopyUIElementToClipboard(mostRecentRunsDataGrid, ConfigWindowSnackBar); @@ -2164,7 +2207,10 @@ private void MostRecentButtonCopyFile_Click(object sender, RoutedEventArgs e) private void StatsGraphsButtonSaveFile_Click(object sender, RoutedEventArgs e) { if (statsGraphsGrid == null || statsGraphsMainGrid == null) + { return; + } + var fileName = $"StatsGraphs-{statsGraphsSelectedOption}"; FileManager.SaveElementAsImageFile(statsGraphsMainGrid, fileName, ConfigWindowSnackBar, false); } @@ -2172,7 +2218,10 @@ private void StatsGraphsButtonSaveFile_Click(object sender, RoutedEventArgs e) private void StatsGraphsButtonCopyFile_Click(object sender, RoutedEventArgs e) { if (statsGraphsGrid == null || statsGraphsMainGrid == null) + { return; + } + var previousBackground = statsGraphsMainGrid.Background; statsGraphsMainGrid.Background = new SolidColorBrush(Color.FromArgb(0xFF, 0x1E, 0x1E, 0x2E)); FileManager.CopyUIElementToClipboard(statsGraphsMainGrid, ConfigWindowSnackBar); @@ -2182,7 +2231,10 @@ private void StatsGraphsButtonCopyFile_Click(object sender, RoutedEventArgs e) private void StatsTextButtonSaveFile_Click(object sender, RoutedEventArgs e) { if (statsTextTextBlock == null || statsTextMainGrid == null) + { return; + } + string textToSave = statsTextTextBlock.Text; textToSave = string.Format(CultureInfo.InvariantCulture, "```text\n{0}\n```", textToSave); FileManager.SaveTextFile(textToSave, $"StatsText-Run_{RunIDTextBox.Text}-{statsTextSelectedOption}"); @@ -2191,7 +2243,10 @@ private void StatsTextButtonSaveFile_Click(object sender, RoutedEventArgs e) private void StatsTextButtonCopyFile_Click(object sender, RoutedEventArgs e) { if (statsTextTextBlock == null || statsTextMainGrid == null) + { return; + } + var previousBackground = statsTextTextBlock.Background; statsTextTextBlock.Background = new SolidColorBrush(Color.FromArgb(0xFF, 0x1E, 0x1E, 0x2E)); FileManager.CopyUIElementToClipboard(statsTextTextBlock, ConfigWindowSnackBar); @@ -2201,7 +2256,10 @@ private void StatsTextButtonCopyFile_Click(object sender, RoutedEventArgs e) private void PersonalBestsOverviewButtonSaveFile_Click(object sender, RoutedEventArgs e) { if (DiscordEmbedWeaponPersonalBest == null || QuestIDTextBox == null) + { return; + } + var fileName = $"PersonalBestsOverview-Quest_{QuestIDTextBox.Text}-{DateTime.UtcNow.ToString("yy/MM/dd", CultureInfo.InvariantCulture).Replace("/", "-")}"; FileManager.SaveElementAsImageFile(DiscordEmbedWeaponPersonalBest, fileName, ConfigWindowSnackBar, false); } @@ -2209,7 +2267,10 @@ private void PersonalBestsOverviewButtonSaveFile_Click(object sender, RoutedEven private void PersonalBestsOverviewButtonCopyFile_Click(object sender, RoutedEventArgs e) { if (DiscordEmbedWeaponPersonalBest == null) + { return; + } + var previousBackground = DiscordEmbedWeaponPersonalBest.Background; DiscordEmbedWeaponPersonalBest.Background = new SolidColorBrush(Color.FromArgb(0xFF, 0x1E, 0x1E, 0x2E)); FileManager.CopyUIElementToClipboard(DiscordEmbedWeaponPersonalBest, ConfigWindowSnackBar); @@ -2217,11 +2278,15 @@ private void PersonalBestsOverviewButtonCopyFile_Click(object sender, RoutedEven } private ISeries[]? Series { get; set; } + private Axis[]? XAxes { get; set; } + private Axis[]? YAxes { get; set; } private ISeries[]? PersonalBestSeries { get; set; } + private Axis[]? PersonalBestXAxes { get; set; } + private Axis[]? PersonalBestYAxes { get; set; } private void SetColumnSeriesForDictionaryIntInt(Dictionary data) @@ -2235,6 +2300,7 @@ private void SetColumnSeriesForDictionaryIntInt(Dictionary data) Name = entry.Key.ToString(CultureInfo.InvariantCulture), Values = new double[] { entry.Value } }; + i++; } XAxes = new Axis[] @@ -2262,6 +2328,7 @@ private void SetColumnSeriesForDictionaryStringInt(Dictionary data) Name = entry.Key.ToString(), Values = new double[] { entry.Value } }; + i++; } XAxes = new Axis[] @@ -2289,6 +2356,7 @@ private void SetColumnSeriesForDictionaryDateInt(Dictionary data) Name = entry.Key.ToString("yyyy-MM-dd", CultureInfo.InvariantCulture), Values = new double[] { entry.Value } }; + i++; } XAxes = new Axis[] @@ -2307,39 +2375,47 @@ private void SetColumnSeriesForDictionaryDateInt(Dictionary data) private Dictionary GetElapsedTime(Dictionary timeAttackDict) { - Dictionary elapsedTimeDict = new(); + Dictionary elapsedTimeDict = new (); if (timeAttackDict == null || !timeAttackDict.Any()) + { return elapsedTimeDict; + } int initialTime = timeAttackDict.First().Key; foreach (var entry in timeAttackDict) { elapsedTimeDict[initialTime - entry.Key] = entry.Value; } + return elapsedTimeDict; } private Dictionary GetElapsedTimeForDictionaryIntDouble(Dictionary timeAttackDict) { - Dictionary elapsedTimeDict = new(); + Dictionary elapsedTimeDict = new (); if (timeAttackDict == null || !timeAttackDict.Any()) + { return elapsedTimeDict; + } int initialTime = timeAttackDict.First().Key; foreach (var entry in timeAttackDict) { elapsedTimeDict[initialTime - entry.Key] = entry.Value; } + return elapsedTimeDict; } private void SetLineSeriesForDictionaryIntInt(Dictionary data) { if (graphChart == null) + { return; + } - List series = new(); - ObservableCollection collection = new(); + List series = new (); + ObservableCollection collection = new (); Dictionary newData = GetElapsedTime(data); @@ -2388,10 +2464,12 @@ private void SetLineSeriesForDictionaryIntInt(Dictionary data) private void SetLineSeriesForDictionaryIntDouble(Dictionary data) { if (graphChart == null) + { return; + } - List series = new(); - ObservableCollection collection = new(); + List series = new (); + ObservableCollection collection = new (); Dictionary newData = GetElapsedTimeForDictionaryIntDouble(data); @@ -2440,10 +2518,12 @@ private void SetLineSeriesForDictionaryIntDouble(Dictionary data) private void SetStepLineSeriesForPersonalBestByAttempts(Dictionary data) { if (personalBestChart == null) + { return; + } - List series = new(); - ObservableCollection collection = new(); + List series = new (); + ObservableCollection collection = new (); foreach (var entry in data) { @@ -2466,7 +2546,6 @@ private void SetStepLineSeriesForPersonalBestByAttempts(Dictionary d { MinStep = 1, TextSize = 12, - //Labeler = (value) => MainWindow.dataLoader.model.GetTimeElapsed(value), NamePaint = new SolidColorPaint(new SKColor(MainWindow.dataLoader.model.HexColorToDecimal("#a6adc8"))), LabelsPaint = new SolidColorPaint(new SKColor(MainWindow.dataLoader.model.HexColorToDecimal("#a6adc8"))), } @@ -2494,11 +2573,13 @@ private void SetStepLineSeriesForPersonalBestByAttempts(Dictionary d private void SetStepLineSeriesForPersonalBestByDate(Dictionary data) { if (personalBestChart == null) + { return; + } - List series = new(); + List series = new (); - ObservableCollection collection = new(); + ObservableCollection collection = new (); DateTime? prevDate = null; long? prevTime = null; @@ -2577,10 +2658,12 @@ private void SetStepLineSeriesForPersonalBestByDate(Dictionary d private void SetHitsTakenBlocked(Dictionary> data) { if (graphChart == null) + { return; + } - List series = new(); - ObservableCollection collection = new(); + List series = new (); + ObservableCollection collection = new (); Dictionary hitsTakenBlocked = CalculateHitsTakenBlocked(data); @@ -2631,11 +2714,13 @@ private void SetHitsTakenBlocked(Dictionary> data) public void SetPlayerHealthStamina(Dictionary hp, Dictionary stamina) { if (graphChart == null) + { return; + } - List series = new(); - ObservableCollection healthCollection = new(); - ObservableCollection staminaCollection = new(); + List series = new (); + ObservableCollection healthCollection = new (); + ObservableCollection staminaCollection = new (); Dictionary newHP = GetElapsedTime(hp); Dictionary newStamina = GetElapsedTime(stamina); @@ -2703,9 +2788,12 @@ public void SetPlayerHealthStamina(Dictionary hp, Dictionary public void SetMonsterAttackMultiplier(Dictionary attack) { if (graphChart == null) + { return; - List series = new(); - ObservableCollection attackCollection = new(); + } + + List series = new (); + ObservableCollection attackCollection = new (); Dictionary newAttack = GetElapsedTimeForDictionaryIntDouble(attack); @@ -2753,10 +2841,12 @@ public void SetMonsterAttackMultiplier(Dictionary attack) public void SetMonsterDefenseRate(Dictionary defense) { if (graphChart == null) + { return; + } - List series = new(); - ObservableCollection defenseCollection = new(); + List series = new (); + ObservableCollection defenseCollection = new (); Dictionary newDefense = GetElapsedTimeForDictionaryIntDouble(defense); @@ -2804,14 +2894,16 @@ public void SetMonsterDefenseRate(Dictionary defense) private void SetMonsterStatusAilmentsThresholds(Dictionary poison, Dictionary sleep, Dictionary para, Dictionary blast, Dictionary stun) { if (graphChart == null) + { return; + } - List series = new(); - ObservableCollection poisonCollection = new(); - ObservableCollection sleepCollection = new(); - ObservableCollection paraCollection = new(); - ObservableCollection blastCollection = new(); - ObservableCollection stunCollection = new(); + List series = new (); + ObservableCollection poisonCollection = new (); + ObservableCollection sleepCollection = new (); + ObservableCollection paraCollection = new (); + ObservableCollection blastCollection = new (); + ObservableCollection stunCollection = new (); Dictionary newPoison = GetElapsedTime(poison); Dictionary newSleep = GetElapsedTime(sleep); @@ -2935,9 +3027,8 @@ private void CreateQuestDurationStackedChart(Dictionary questDurations Name = questDuration.Key.ToString(CultureInfo.InvariantCulture), DataLabelsPosition = DataLabelsPosition.Middle, DataLabelsSize = 6, - //DataLabelsPadding = 2, - TooltipLabelFormatter = value => questDuration.Key.ToString(CultureInfo.InvariantCulture) + " " + TimeSpan.FromSeconds(value.PrimaryValue / Double.Parse(Numbers.FRAMES_PER_SECOND.ToString(CultureInfo.InvariantCulture), CultureInfo.InvariantCulture)).ToString(@"hh\:mm\:ss", CultureInfo.InvariantCulture), - DataLabelsFormatter = value => TimeSpan.FromSeconds(value.PrimaryValue / Double.Parse(Numbers.FRAMES_PER_SECOND.ToString(CultureInfo.InvariantCulture), CultureInfo.InvariantCulture)).ToString(@"hh\:mm\:ss", CultureInfo.InvariantCulture) + TooltipLabelFormatter = value => questDuration.Key.ToString(CultureInfo.InvariantCulture) + " " + TimeSpan.FromSeconds(value.PrimaryValue / Double.Parse(Numbers.FramesPerSecond.ToString(CultureInfo.InvariantCulture), CultureInfo.InvariantCulture)).ToString(@"hh\:mm\:ss", CultureInfo.InvariantCulture), + DataLabelsFormatter = value => TimeSpan.FromSeconds(value.PrimaryValue / Double.Parse(Numbers.FramesPerSecond.ToString(CultureInfo.InvariantCulture), CultureInfo.InvariantCulture)).ToString(@"hh\:mm\:ss", CultureInfo.InvariantCulture) }); } @@ -2946,7 +3037,7 @@ private void CreateQuestDurationStackedChart(Dictionary questDurations { new Axis { - Labeler = (value) => TimeSpan.FromSeconds(value / Double.Parse(Numbers.FRAMES_PER_SECOND.ToString(CultureInfo.InvariantCulture), CultureInfo.InvariantCulture)).ToString(@"hh\:mm\:ss", CultureInfo.InvariantCulture), + Labeler = (value) => TimeSpan.FromSeconds(value / Double.Parse(Numbers.FramesPerSecond.ToString(CultureInfo.InvariantCulture), CultureInfo.InvariantCulture)).ToString(@"hh\:mm\:ss", CultureInfo.InvariantCulture), LabelsRotation = 0, NamePaint = new SolidColorPaint(new SKColor(MainWindow.dataLoader.model.HexColorToDecimal("#a6adc8"))), LabelsPaint = new SolidColorPaint(new SKColor(MainWindow.dataLoader.model.HexColorToDecimal("#a6adc8"))), @@ -2975,7 +3066,7 @@ private Dictionary GetMostCommonInputs(long runID) private Dictionary CalculateHitsTakenBlocked(Dictionary> hitsTakenBlocked) { - Dictionary dictionary = new(); + Dictionary dictionary = new (); int i = 1; foreach (var entry in hitsTakenBlocked) @@ -2991,12 +3082,13 @@ private Dictionary CalculateHitsTakenBlocked(Dictionary CalculateMonsterHP(Dictionary> monsterHP) { - Dictionary dictionary = new(); + Dictionary dictionary = new (); int i = 1; foreach (var entry in monsterHP) { int time = int.Parse(entry.Key.ToString(CultureInfo.InvariantCulture), CultureInfo.InvariantCulture); + // get the value of the inner dictionary int hp = entry.Value.Values.First(); dictionary.Add(time, hp); @@ -3008,12 +3100,13 @@ private Dictionary CalculateMonsterHP(Dictionary CalculateMonsterMultiplier(Dictionary> monsterDictionary) { - Dictionary dictionary = new(); + Dictionary dictionary = new (); int i = 1; foreach (var entry in monsterDictionary) { int time = int.Parse(entry.Key.ToString(CultureInfo.InvariantCulture), CultureInfo.InvariantCulture); + // get the value of the inner dictionary double mult = entry.Value.Values.First(); dictionary.Add(time, mult); @@ -3025,12 +3118,13 @@ private Dictionary CalculateMonsterMultiplier(Dictionary CalculateMonsterStatusAilmentThresholds(Dictionary> monsterDictionary) { - Dictionary dictionary = new(); + Dictionary dictionary = new (); int i = 1; foreach (var entry in monsterDictionary) { int time = int.Parse(entry.Key.ToString(CultureInfo.InvariantCulture), CultureInfo.InvariantCulture); + // get the value of the inner dictionary int threshold = entry.Value.Values.First(); dictionary.Add(time, threshold); @@ -3043,13 +3137,15 @@ private Dictionary CalculateMonsterStatusAilmentThresholds(Dictionary< private void SetMonsterHP(Dictionary monster1, Dictionary monster2, Dictionary monster3, Dictionary monster4) { if (graphChart == null) + { return; + } - List series = new(); - ObservableCollection monster1Collection = new(); - ObservableCollection monster2Collection = new(); - ObservableCollection monster3Collection = new(); - ObservableCollection monster4Collection = new(); + List series = new (); + ObservableCollection monster1Collection = new (); + ObservableCollection monster2Collection = new (); + ObservableCollection monster3Collection = new (); + ObservableCollection monster4Collection = new (); Dictionary newMonster1 = GetElapsedTime(monster1); Dictionary newMonster2 = GetElapsedTime(monster2); @@ -3164,10 +3260,12 @@ private string GetHunterPerformanceValueType(double value) private void SetPolarLineSeriesForHunterPerformance(PerformanceCompendium performanceCompendium) { if (hunterPerformanceChart == null) + { return; + } - List series = new(); - ObservableCollection performanceCollection = new(); + List series = new (); + ObservableCollection performanceCollection = new (); performanceCollection.Add(performanceCompendium.TrueRawMedian / performanceCompendium.HighestTrueRaw); performanceCollection.Add(performanceCompendium.SingleHitDamageMedian / performanceCompendium.HighestSingleHitDamage); @@ -3185,34 +3283,10 @@ private void SetPolarLineSeriesForHunterPerformance(PerformanceCompendium perfor GeometryFill = null, GeometryStroke = null, TooltipLabelFormatter = value => string.Format(CultureInfo.InvariantCulture, "{0}: {1:0.##}%", GetHunterPerformanceValueType(value.SecondaryValue), value.PrimaryValue * 100), - //DataLabelsFormatter = value => TimeSpan.FromSeconds(value.PrimaryValue / 30.0).ToString(@"hh\:mm\:ss"), Stroke = new SolidColorPaint(new SKColor(MainWindow.dataLoader.model.HexColorToDecimal("#fff38ba8"))) { StrokeThickness = 2 }, Fill = new LinearGradientPaint(new SKColor(MainWindow.dataLoader.model.HexColorToDecimal("#fff38ba8", "7f")), new SKColor(MainWindow.dataLoader.model.HexColorToDecimal("#fff38ba8", "00")), new SKPoint(0.5f, 0), new SKPoint(0.5f, 1)) }); - //XAxes = new Axis[] - //{ - // new Axis - // { - // TextSize=12, - // Labeler = (value) => MainWindow.dataLoader.model.GetTimeElapsed(value), - // NamePaint = new SolidColorPaint(new SKColor(MainWindow.dataLoader.model.HexColorToDecimal("#a6adc8"))), - // LabelsPaint = new SolidColorPaint(new SKColor(MainWindow.dataLoader.model.HexColorToDecimal("#a6adc8"))), - // } - //}; - - //YAxes = new Axis[] - //{ - // new Axis - // { - // NameTextSize= 12, - // TextSize=12, - // NamePadding= new LiveChartsCore.Drawing.Padding(0), - // NamePaint = new SolidColorPaint(new SKColor(MainWindow.dataLoader.model.HexColorToDecimal("#a6adc8"))), - // LabelsPaint = new SolidColorPaint(new SKColor(MainWindow.dataLoader.model.HexColorToDecimal("#a6adc8"))), - // } - //}; - PolarAxis[] RadiusAxes = new PolarAxis[] { new PolarAxis @@ -3248,12 +3322,16 @@ private void GraphsComboBox_SelectionChanged(object sender, SelectionChangedEven var selectedItem = (ComboBoxItem)comboBox.SelectedItem; if (selectedItem == null) + { return; + } string? selectedOption = selectedItem.Content.ToString(); if (graphChart == null || selectedOption == null || string.IsNullOrEmpty(selectedOption)) + { return; + } Series = null; XAxes = new Axis[] @@ -3401,7 +3479,9 @@ private void GraphsComboBox_SelectionChanged(object sender, SelectionChangedEven statsGraphsSelectedOption = selectedOption.Trim().Replace(" ", "_"); if (Series == null) + { return; + } graphChart.Series = Series; graphChart.XAxes = XAxes; @@ -3420,30 +3500,36 @@ private void StatsTextTextBlock_Loaded(object sender, RoutedEventArgs e) private Dictionary>> GetElapsedTimeForInventories(Dictionary>> dictionary) { - Dictionary>> elapsedTimeDict = new(); + Dictionary>> elapsedTimeDict = new (); if (dictionary == null || !dictionary.Any()) + { return elapsedTimeDict; + } int initialTime = dictionary.First().Key; foreach (var entry in dictionary) { elapsedTimeDict[initialTime - entry.Key] = entry.Value; } + return elapsedTimeDict; } private Dictionary GetElapsedTimeForDictionaryIntInt(Dictionary dictionary) { - Dictionary elapsedTimeDict = new(); + Dictionary elapsedTimeDict = new (); if (dictionary == null || !dictionary.Any()) + { return elapsedTimeDict; + } int initialTime = dictionary.First().Key; foreach (var entry in dictionary) { elapsedTimeDict[initialTime - entry.Key] = entry.Value; } + return elapsedTimeDict; } @@ -3456,7 +3542,7 @@ private string FormatInventory(Dictionary>> inven foreach (var entry in inventory) { int time = entry.Key; - string timeString = TimeSpan.FromSeconds((double)time / Numbers.FRAMES_PER_SECOND).ToString(TimeFormats.MINUTES_SECONDS_MILLISECONDS, CultureInfo.InvariantCulture); + string timeString = TimeSpan.FromSeconds((double)time / Numbers.FramesPerSecond).ToString(TimeFormats.MinutesSecondsMilliseconds, CultureInfo.InvariantCulture); var items = entry.Value; int count = 0; sb.AppendLine(timeString + " "); @@ -3470,6 +3556,7 @@ private string FormatInventory(Dictionary>> inven sb.Append(itemName + " x" + itemData.Value + ", "); count++; } + if (count == 5) { sb.AppendLine(); @@ -3492,7 +3579,7 @@ private string DisplayAreaChanges(Dictionary areas) foreach (var entry in areas) { int time = entry.Key; - string timeString = TimeSpan.FromSeconds((double)time / Numbers.FRAMES_PER_SECOND).ToString(TimeFormats.MINUTES_SECONDS_MILLISECONDS, CultureInfo.InvariantCulture); + string timeString = TimeSpan.FromSeconds((double)time / Numbers.FramesPerSecond).ToString(TimeFormats.MinutesSecondsMilliseconds, CultureInfo.InvariantCulture); var area = entry.Value; sb.AppendLine(timeString + " "); @@ -3509,7 +3596,10 @@ private string GetItemName(int itemID) // implement code to get item name based on itemID Item.IDName.TryGetValue(itemID, out string? value); if (value == null) + { return string.Empty; + } + return value; } @@ -3520,12 +3610,16 @@ private void StatsTextComboBox_SelectionChanged(object sender, SelectionChangedE var selectedItem = (ComboBoxItem)comboBox.SelectedItem; if (selectedItem == null || statsTextTextBlock == null) + { return; + } string? selectedOption = selectedItem.Content.ToString(); if (statsTextTextBlock == null || selectedOption == null || string.IsNullOrEmpty(selectedOption)) + { return; + } statsTextTextBlock.Text = string.Empty; @@ -3561,15 +3655,21 @@ private void settingsPresetComboBox_SelectionChanged(object sender, SelectionCha var selectedItem = (ComboBoxItem)comboBox.SelectedItem; if (selectedItem == null) + { return; + } string? selectedOption = selectedItem.Content.ToString(); if (string.IsNullOrEmpty(selectedOption)) + { return; + } if (s != null) + { overlaySettingsManager.SetConfigurationPreset(s, ConfigurationPresetConverter.Convert(selectedOption)); + } } private void personalBest_Loaded(object sender, RoutedEventArgs e) @@ -3580,46 +3680,67 @@ private void personalBest_Loaded(object sender, RoutedEventArgs e) private void PersonalBestTypeComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (personalBestChart == null) + { return; + } var comboBox = sender as ComboBox; if (comboBox == null) + { return; + } var selectedItem = comboBox.SelectedItem; if (selectedItem == null) + { return; + } string? selectedType = selectedItem.ToString(); if (string.IsNullOrEmpty(selectedType)) + { return; + } + personalBestSelectedType = selectedType.Replace("System.Windows.Controls.ComboBoxItem: ", ""); } private void PersonalBestWeaponComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (personalBestChart == null) + { return; + } var comboBox = sender as ComboBox; if (comboBox == null) + { return; + } + var selectedItem = comboBox.SelectedItem; if (selectedItem == null) + { return; + } string? selectedWeapon = selectedItem.ToString(); if (string.IsNullOrEmpty(selectedWeapon)) + { return; + } + personalBestSelectedWeapon = selectedWeapon.Replace("System.Windows.Controls.ComboBoxItem: ", ""); } private void PersonalBestRefreshButton_Click(object sender, RoutedEventArgs e) { if (personalBestChart == null || personalBestSelectedWeapon == "" || personalBestSelectedType == "") + { return; + } PersonalBestSeries = null; PersonalBestXAxes = new Axis[] @@ -3683,17 +3804,24 @@ private void CompendiumInformationStackPanel_Loaded(object sender, RoutedEventAr private void CalendarDatePicker_SelectedDateChanged(object sender, SelectionChangedEventArgs e) { if (calendarDataGrid == null || sender == null) + { return; + } DatePicker? datePicker = sender as DatePicker; if (datePicker == null) + { return; + } var selectedDate = datePicker.SelectedDate; if (selectedDate == null) + { return; + } + datePickerDate = (DateTime)selectedDate; MainWindow.dataLoader.model.CalendarRuns = databaseManager.GetCalendarRuns(selectedDate); calendarDataGrid.ItemsSource = MainWindow.dataLoader.model.CalendarRuns; @@ -3772,28 +3900,41 @@ private void personalBestChartGrid_Loaded(object sender, RoutedEventArgs e) { var obj = (Grid)sender; if (obj != null) + { personalBestChartGrid = obj; + } } private void WeaponUsageChartGrid_Loaded(object sender, RoutedEventArgs e) { var obj = (Grid)sender; if (obj != null) + { weaponUsageChartGrid = obj; + } } private void StatsGraphsComboBox_Loaded(object sender, RoutedEventArgs e) { var comboBox = (ComboBox)sender; if (comboBox == null) + { return; + } + var selectedItem = comboBox.SelectedItem; if (selectedItem == null) + { return; + } + // You can now use the selectedItem variable to get the data or value of the selected option string? selectedOption = selectedItem.ToString()?.Replace("System.Windows.Controls.ComboBoxItem: ", "").Trim().Replace(" ", "_"); if (string.IsNullOrEmpty(selectedOption)) + { return; + } + statsGraphsSelectedOption = selectedOption; } @@ -3801,14 +3942,23 @@ private void StatsTextComboBox_Loaded(object sender, RoutedEventArgs e) { var comboBox = (ComboBox)sender; if (comboBox == null) + { return; + } + var selectedItem = comboBox.SelectedItem; if (selectedItem == null) + { return; + } + // You can now use the selectedItem variable to get the data or value of the selected option string? selectedOption = selectedItem.ToString()?.Replace("System.Windows.Controls.ComboBoxItem: ", "").Trim().Replace(" ", "_"); if (string.IsNullOrEmpty(selectedOption)) + { return; + } + statsTextSelectedOption = selectedOption; } @@ -3816,56 +3966,72 @@ private void GraphsChartGrid_Loaded(object sender, RoutedEventArgs e) { var obj = (Grid)sender; if (obj != null) + { statsGraphsGrid = obj; + } } private void PersonalBestDescriptionTextBlock_Loaded(object sender, RoutedEventArgs e) { var obj = (TextBlock)sender; if (obj != null) + { personalBestDescriptionTextBlock = obj; + } } private void Top20RunsDescriptionTextBlock_Loaded(object sender, RoutedEventArgs e) { var obj = (TextBlock)sender; if (obj != null) + { top20RunsDescriptionTextblock = obj; + } } private void PersonalBestMainGridLoaded(object sender, RoutedEventArgs e) { var obj = (Grid)sender; if (obj != null) + { personalBestMainGrid = obj; + } } private void Top20MainGridLoaded(object sender, RoutedEventArgs e) { var obj = (Grid)sender; if (obj != null) + { top20MainGrid = obj; + } } private void WeaponStatsMainGrid_Loaded(object sender, RoutedEventArgs e) { var obj = (Grid)sender; if (obj != null) + { weaponStatsMainGrid = obj; + } } private void StatsGraphsMainGrid_Loaded(object sender, RoutedEventArgs e) { var obj = (Grid)sender; if (obj != null) + { statsGraphsMainGrid = obj; + } } private void StatsTextMainGrid_Loaded(object sender, RoutedEventArgs e) { var obj = (Grid)sender; if (obj != null) + { statsTextMainGrid = obj; + } } private async void FumoImage_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) diff --git a/MHFZ_Overlay/Views/CustomControls/CustomProgressBar.xaml.cs b/MHFZ_Overlay/Views/CustomControls/CustomProgressBar.xaml.cs index 880a7145..8e14ca68 100644 --- a/MHFZ_Overlay/Views/CustomControls/CustomProgressBar.xaml.cs +++ b/MHFZ_Overlay/Views/CustomControls/CustomProgressBar.xaml.cs @@ -18,10 +18,9 @@ public partial class CustomProgressBar : UserControl, INotifyPropertyChanged { public CustomProgressBar() { - InitializeComponent(); - DataContext = this; + this.InitializeComponent(); + this.DataContext = this; } - #region UserInput /// /// Gets or sets the width of the row1. @@ -31,8 +30,8 @@ public CustomProgressBar() /// public int Row1Width { - get { return (int)GetValue(Row1WidthProperty); } - set { SetValue(Row1WidthProperty, value); } + get { return (int)this.GetValue(Row1WidthProperty); } + set { this.SetValue(Row1WidthProperty, value); } } /// @@ -43,8 +42,8 @@ public int Row1Width /// public int Row2Width { - get { return (int)GetValue(Row2WidthProperty); } - set { SetValue(Row2WidthProperty, value); } + get { return (int)this.GetValue(Row2WidthProperty); } + set { this.SetValue(Row2WidthProperty, value); } } /// @@ -55,14 +54,14 @@ public int Row2Width /// public string Description { - get { return (string)GetValue(DescriptionProperty); } - set { SetValue(DescriptionProperty, value); } + get { return (string)this.GetValue(DescriptionProperty); } + set { this.SetValue(DescriptionProperty, value); } } public string BarType { - get { return (string)GetValue(BarTypeProperty); } - set { SetValue(BarTypeProperty, value); } + get { return (string)this.GetValue(BarTypeProperty); } + set { this.SetValue(BarTypeProperty, value); } } /// @@ -73,8 +72,8 @@ public string BarType /// public int NumCurr { - get { return (int)GetValue(NumCurrProperty); } - set { SetValue(NumCurrProperty, value); } + get { return (int)this.GetValue(NumCurrProperty); } + set { this.SetValue(NumCurrProperty, value); } } /// @@ -85,8 +84,8 @@ public int NumCurr /// public int NumMax { - get { return (int)GetValue(NumMaxProperty); } - set { SetValue(NumMaxProperty, value); } + get { return (int)this.GetValue(NumMaxProperty); } + set { this.SetValue(NumMaxProperty, value); } } /// @@ -97,43 +96,48 @@ public int NumMax /// public Brush BarColor { - get { return (Brush)GetValue(BarColorProperty); } - set { SetValue(BarColorProperty, value); } + get { return (Brush)this.GetValue(BarColorProperty); } + set { this.SetValue(BarColorProperty, value); } } public Brush StrokeColor { - get { return (Brush)GetValue(StrokeColorProperty); } - set { SetValue(StrokeColorProperty, value); } + get { return (Brush)this.GetValue(StrokeColorProperty); } + set { this.SetValue(StrokeColorProperty, value); } } public string IconSource { - get { return (string)GetValue(IconSourceProperty); } - set { SetValue(IconSourceProperty, value); } + get { return (string)this.GetValue(IconSourceProperty); } + set { this.SetValue(IconSourceProperty, value); } } - #endregion - - #region BindingRegisters public static readonly DependencyProperty Row1WidthProperty = DependencyProperty.Register("Row1Width", typeof(int), typeof(CustomProgressBar), new PropertyMetadata(1)); + public static readonly DependencyProperty Row2WidthProperty = DependencyProperty.Register("Row2Width", typeof(int), typeof(CustomProgressBar), new PropertyMetadata(1)); + public static readonly DependencyProperty DescriptionProperty = - DependencyProperty.Register("Description", typeof(string), typeof(CustomProgressBar), new PropertyMetadata("")); + DependencyProperty.Register("Description", typeof(string), typeof(CustomProgressBar), new PropertyMetadata(string.Empty)); + public static readonly DependencyProperty NumCurrProperty = DependencyProperty.Register("NumCurr", typeof(int), typeof(CustomProgressBar), new PropertyMetadata(0)); + public static readonly DependencyProperty NumMaxProperty = DependencyProperty.Register("NumMax", typeof(int), typeof(CustomProgressBar), new PropertyMetadata(0)); + public static readonly DependencyProperty BarColorProperty = DependencyProperty.Register("BarColor", typeof(Brush), typeof(CustomProgressBar), new PropertyMetadata(null)); + public static readonly DependencyProperty IconSourceProperty = - DependencyProperty.Register("IconSource", typeof(string), typeof(CustomProgressBar), new PropertyMetadata("")); + DependencyProperty.Register("IconSource", typeof(string), typeof(CustomProgressBar), new PropertyMetadata(string.Empty)); + public static readonly DependencyProperty StrokeColorProperty = DependencyProperty.Register("StrokeColor", typeof(Brush), typeof(CustomProgressBar), new PropertyMetadata(null)); + public static readonly DependencyProperty BarTypeProperty = - DependencyProperty.Register("BarType", typeof(string), typeof(CustomProgressBar), new PropertyMetadata("")); + DependencyProperty.Register("BarType", typeof(string), typeof(CustomProgressBar), new PropertyMetadata(string.Empty)); public event PropertyChangedEventHandler? PropertyChanged; @@ -142,13 +146,12 @@ public string IconSource /// public void ReloadData() { - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(null)); + this.PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(null)); } - #endregion + + public string Width1 { get => this.Row1Width.ToString(CultureInfo.InvariantCulture) + "*"; } - #region UsedBindings - public string Width1 { get => Row1Width.ToString(CultureInfo.InvariantCulture) + "*"; } - public string Width2 { get => Row2Width.ToString(CultureInfo.InvariantCulture) + "*"; } + public string Width2 { get => this.Row2Width.ToString(CultureInfo.InvariantCulture) + "*"; } /// /// Shows the current hp percentage? @@ -158,9 +161,13 @@ public static bool ShowCurrentHPPercentage() { Settings s = (Settings)Application.Current.TryFindResource("Settings"); if (s.EnableCurrentHPPercentage) + { return true; + } else + { return false; + } } /// @@ -173,13 +180,13 @@ public string CurrentHPPercentNumber { get { - if (NumMax < NumCurr) + if (this.NumMax < this.NumCurr) { return "0"; } else { - return string.Format(CultureInfo.InvariantCulture, " ({0:0}%)", (float)NumCurr / NumMax * 100.0); + return string.Format(CultureInfo.InvariantCulture, " ({0:0}%)", (float)this.NumCurr / this.NumMax * 100.0); } } } @@ -199,10 +206,14 @@ public string DescriptorHorizontalAlignment { get { - if (Desc == "Poison" || Desc == "Sleep" || Desc == "Para." || Desc == "Blast" || Desc == "Stun") + if (this.Desc == "Poison" || this.Desc == "Sleep" || this.Desc == "Para." || this.Desc == "Blast" || this.Desc == "Stun") + { return "Left"; + } else + { return "Right"; + } } } @@ -216,37 +227,42 @@ public string ValueText { get { - if (NumMax == 0) - return NumCurr.ToString(CultureInfo.InvariantCulture); + if (this.NumMax == 0) + { + return this.NumCurr.ToString(CultureInfo.InvariantCulture); + } - if (NumMax < NumCurr && Description != "Poison" && Description != "Sleep" && Description != "Para." && Description != "Blast" && Description != "Stun") + if (this.NumMax < this.NumCurr && this.Description != "Poison" && this.Description != "Sleep" && this.Description != "Para." && this.Description != "Blast" && this.Description != "Stun") { - NumMax = 0; - NumMax += NumCurr; + this.NumMax = 0; + this.NumMax += this.NumCurr; if (ShowCurrentHPPercentage()) { - CurrentHPPercent = CurrentHPPercentNumber; + this.CurrentHPPercent = this.CurrentHPPercentNumber; } else { - CurrentHPPercent = string.Empty; + this.CurrentHPPercent = string.Empty; } - return string.Format(CultureInfo.InvariantCulture, "{0}/{1}", NumCurr, NumMax) + CurrentHPPercent; + + return string.Format(CultureInfo.InvariantCulture, "{0}/{1}", this.NumCurr, this.NumMax) + this.CurrentHPPercent; } - if (NumCurr == 0 && Description != "Poison" && Description != "Sleep" && Description != "Para." && Description != "Blast" && Description != "Stun") + if (this.NumCurr == 0 && this.Description != "Poison" && this.Description != "Sleep" && this.Description != "Para." && this.Description != "Blast" && this.Description != "Stun") { - NumMax = 1; + this.NumMax = 1; } + if (ShowCurrentHPPercentage()) { - CurrentHPPercent = CurrentHPPercentNumber; + this.CurrentHPPercent = this.CurrentHPPercentNumber; } else { - CurrentHPPercent = string.Empty; + this.CurrentHPPercent = string.Empty; } - return string.Format(CultureInfo.InvariantCulture, "{0}/{1}", NumCurr, NumMax) + CurrentHPPercent; + + return string.Format(CultureInfo.InvariantCulture, "{0}/{1}", this.NumCurr, this.NumMax) + this.CurrentHPPercent; } } @@ -260,9 +276,12 @@ public float Value { get { - if (NumMax == 0 || NumCurr == 0) + if (this.NumMax == 0 || this.NumCurr == 0) + { return 0f; - return ((float)NumCurr / (float)NumMax) * 100f; + } + + return ((float)this.NumCurr / (float)this.NumMax) * 100f; } set { @@ -278,14 +297,14 @@ public float Value /// public string Desc { - get { return Description; } - set { Description = value; } + get { return this.Description; } + set { this.Description = value; } } public string Icon { - get { return IconSource; } - set { IconSource = value; } + get { return this.IconSource; } + set { this.IconSource = value; } } public string IconShown @@ -295,9 +314,13 @@ public string IconShown Settings s = (Settings)Application.Current.TryFindResource("Settings"); if (s.ProgressBarIconsShown) + { return "Visible"; + } else + { return "Hidden"; + } } } @@ -308,13 +331,13 @@ public string DescriptionShown Settings s = (Settings)Application.Current.TryFindResource("Settings"); if (s.ProgressBarIconsShown) + { return "Hidden"; + } else + { return "Visible"; + } } } - - - - #endregion } diff --git a/MHFZ_Overlay/Views/CustomControls/MainConfigurationActions.xaml.cs b/MHFZ_Overlay/Views/CustomControls/MainConfigurationActions.xaml.cs index 4d92e3a5..c2562233 100644 --- a/MHFZ_Overlay/Views/CustomControls/MainConfigurationActions.xaml.cs +++ b/MHFZ_Overlay/Views/CustomControls/MainConfigurationActions.xaml.cs @@ -13,40 +13,44 @@ namespace MHFZ_Overlay.Views.CustomControls; /// public partial class MainConfigurationActions : UserControl { - public event RoutedEventHandler? ConfigureButtonClicked; - public event RoutedEventHandler? DefaultButtonClicked; - public event RoutedEventHandler? SaveButtonClicked; - public MainConfigurationActions() { - InitializeComponent(); + this.InitializeComponent(); } + public event RoutedEventHandler? ConfigureButtonClicked; + + public event RoutedEventHandler? DefaultButtonClicked; + + public event RoutedEventHandler? SaveButtonClicked; + protected virtual void OnConfigureButtonClicked(RoutedEventArgs e) { - ConfigureButtonClicked?.Invoke(this, e); + this.ConfigureButtonClicked?.Invoke(this, e); } + private void ConfigureButton_Click(object sender, RoutedEventArgs e) { - OnConfigureButtonClicked(e); + this.OnConfigureButtonClicked(e); } protected virtual void OnDefaultButtonClicked(RoutedEventArgs e) { - DefaultButtonClicked?.Invoke(this, e); + this.DefaultButtonClicked?.Invoke(this, e); } + private void DefaultButton_Click(object sender, RoutedEventArgs e) { - OnDefaultButtonClicked(e); + this.OnDefaultButtonClicked(e); } protected virtual void OnSaveButtonClicked(RoutedEventArgs e) { - SaveButtonClicked?.Invoke(this, e); + this.SaveButtonClicked?.Invoke(this, e); } + private void SaveButton_Click(object sender, RoutedEventArgs e) { - OnSaveButtonClicked(e); + this.OnSaveButtonClicked(e); } - } diff --git a/MHFZ_Overlay/Views/CustomControls/OutlinedTextBlock.cs b/MHFZ_Overlay/Views/CustomControls/OutlinedTextBlock.cs index 28651e21..b1554f1b 100644 --- a/MHFZ_Overlay/Views/CustomControls/OutlinedTextBlock.cs +++ b/MHFZ_Overlay/Views/CustomControls/OutlinedTextBlock.cs @@ -409,7 +409,7 @@ private void EnsureFormattedText() } _FormattedText = new FormattedText( - Text ?? "", + Text ?? string.Empty, CultureInfo.CurrentUICulture, FlowDirection, new Typeface(FontFamily, FontStyle, FontWeight, FontStretch), diff --git a/MHFZ_Overlay/Views/MainWindow.xaml.cs b/MHFZ_Overlay/Views/MainWindow.xaml.cs index 14048ce5..a2cd07a0 100644 --- a/MHFZ_Overlay/Views/MainWindow.xaml.cs +++ b/MHFZ_Overlay/Views/MainWindow.xaml.cs @@ -86,48 +86,48 @@ public partial class MainWindow : Window private static readonly DiscordManager DiscordManagerInstance = DiscordManager.GetInstance(); - private readonly Mem m = new(); + private readonly Mem m = new (); public static NotifyIcon? _mainWindowNotifyIcon { get; set; } private void CreateSystemTrayIcon() { - _mainWindowNotifyIcon = MainWindowNotifyIcon; + _mainWindowNotifyIcon = this.MainWindowNotifyIcon; } private void _notifyIcon_Click(object sender, RoutedEventArgs e) { - OpenConfigButton_Key(); + this.OpenConfigButton_Key(); } private void OptionSettings_Click(object sender, RoutedEventArgs e) { - OpenConfigButton_Key(); + this.OpenConfigButton_Key(); } private void OptionHelp_Click(object sender, RoutedEventArgs e) { - OpenLink("https://github.com/DorielRivalet/mhfz-overlay/blob/main/FAQ.md"); + OpenLink("https:// github.com/DorielRivalet/mhfz-overlay/blob/main/FAQ.md"); } private void OptionDocumentation_Click(object sender, RoutedEventArgs e) { - OpenLink("https://github.com/DorielRivalet/mhfz-overlay/tree/main/docs"); + OpenLink("https:// github.com/DorielRivalet/mhfz-overlay/tree/main/docs"); } private void OptionReportBug_Click(object sender, RoutedEventArgs e) { - OpenLink("https://github.com/DorielRivalet/mhfz-overlay/issues/new?assignees=DorielRivalet&labels=bug&projects=&template=BUG-REPORT.yml&title=%5BBUG%5D+-+title"); + OpenLink("https:// github.com/DorielRivalet/mhfz-overlay/issues/new?assignees=DorielRivalet&labels=bug&projects=&template=BUG-REPORT.yml&title=%5BBUG%5D+-+title"); } private void OptionRequestFeature_Click(object sender, RoutedEventArgs e) { - OpenLink("https://github.com/DorielRivalet/mhfz-overlay/issues/new?assignees=DorielRivalet&labels=question%2Cenhancement&projects=&template=FEATURE-REQUEST.yml&title=%5BREQUEST%5D+-+title"); + OpenLink("https:// github.com/DorielRivalet/mhfz-overlay/issues/new?assignees=DorielRivalet&labels=question%2Cenhancement&projects=&template=FEATURE-REQUEST.yml&title=%5BREQUEST%5D+-+title"); } private void OptionSendFeedback_Click(object sender, RoutedEventArgs e) { - OpenLink("https://forms.gle/hrAVWMcYS5HEo1v7A"); + OpenLink("https:// forms.gle/hrAVWMcYS5HEo1v7A"); } private void OptionSettingsFolder_Click(object sender, RoutedEventArgs e) @@ -139,17 +139,19 @@ private void OptionSettingsFolder_Click(object sender, RoutedEventArgs e) if (!Directory.Exists(settingsFileDirectoryName)) { LoggerInstance.Error(CultureInfo.InvariantCulture, "Could not open settings folder"); - MainWindowSnackBar.ShowAsync(Messages.ERROR_TITLE, "Could not open settings folder", new SymbolIcon(SymbolRegular.ErrorCircle24), ControlAppearance.Danger); + this.MainWindowSnackBar.ShowAsync(Messages.ErrorTitle, "Could not open settings folder", new SymbolIcon(SymbolRegular.ErrorCircle24), ControlAppearance.Danger); return; } + string settingsFolder = settingsFileDirectoryName; + // Open file manager at the specified folder - Process.Start(ApplicationPaths.EXPLORER_PATH, settingsFolder); + Process.Start(ApplicationPaths.ExplorerPath, settingsFolder); } catch (Exception ex) { LoggerInstance.Error(ex); - MainWindowSnackBar.ShowAsync(Messages.ERROR_TITLE, "Could not open settings folder", new SymbolIcon(SymbolRegular.ErrorCircle24), ControlAppearance.Danger); + this.MainWindowSnackBar.ShowAsync(Messages.ErrorTitle, "Could not open settings folder", new SymbolIcon(SymbolRegular.ErrorCircle24), ControlAppearance.Danger); } } @@ -157,13 +159,16 @@ private void OptionLogsFolder_Click(object sender, RoutedEventArgs e) { var directoryName = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); if (directoryName == null) + { return; + } + var logFilePath = Path.Combine(directoryName, "logs", "logs.log"); if (!File.Exists(logFilePath)) { LoggerInstance.Error(CultureInfo.InvariantCulture, "Could not find the log file: {0}", logFilePath); - System.Windows.MessageBox.Show(string.Format(CultureInfo.InvariantCulture, "Could not find the log file: {0}", logFilePath), Messages.ERROR_TITLE, MessageBoxButton.OK, MessageBoxImage.Error); + System.Windows.MessageBox.Show(string.Format(CultureInfo.InvariantCulture, "Could not find the log file: {0}", logFilePath), Messages.ErrorTitle, MessageBoxButton.OK, MessageBoxImage.Error); } // Open the log file using the default application @@ -171,8 +176,11 @@ private void OptionLogsFolder_Click(object sender, RoutedEventArgs e) { var logFilePathDirectory = Path.GetDirectoryName(logFilePath); if (logFilePathDirectory == null) + { return; - Process.Start(ApplicationPaths.EXPLORER_PATH, logFilePathDirectory); + } + + Process.Start(ApplicationPaths.ExplorerPath, logFilePathDirectory); } catch (Exception ex) { @@ -185,18 +193,20 @@ private void OptionDatabaseFolder_Click(object sender, RoutedEventArgs e) Settings s = (Settings)Application.Current.TryFindResource("Settings"); var directoryName = Path.GetDirectoryName(s.DatabaseFilePath); if (directoryName == null) + { return; + } if (!File.Exists(s.DatabaseFilePath)) { LoggerInstance.Error(CultureInfo.InvariantCulture, "Could not find the database file: {0}", s.DatabaseFilePath); - System.Windows.MessageBox.Show(string.Format(CultureInfo.InvariantCulture, "Could not find the database file: {0}", s.DatabaseFilePath), Messages.ERROR_TITLE, MessageBoxButton.OK, MessageBoxImage.Error); + System.Windows.MessageBox.Show(string.Format(CultureInfo.InvariantCulture, "Could not find the database file: {0}", s.DatabaseFilePath), Messages.ErrorTitle, MessageBoxButton.OK, MessageBoxImage.Error); } // Open the log file using the default application try { - Process.Start(ApplicationPaths.EXPLORER_PATH, directoryName); + Process.Start(ApplicationPaths.ExplorerPath, directoryName); } catch (Exception ex) { @@ -206,24 +216,24 @@ private void OptionDatabaseFolder_Click(object sender, RoutedEventArgs e) private void OptionRestart_Click(object sender, RoutedEventArgs e) { - ReloadButton_Key(); + this.ReloadButton_Key(); } private void OptionExit_Click(object sender, RoutedEventArgs e) { - CloseButton_Key(); + this.CloseButton_Key(); } private void OptionAbout_Click(object sender, RoutedEventArgs e) { - OpenLink("https://github.com/DorielRivalet/mhfz-overlay"); + OpenLink("https:// github.com/DorielRivalet/mhfz-overlay"); } private int originalStyle; - //https://stackoverflow.com/questions/2798245/click-through-in-c-sharp-form - //https://stackoverflow.com/questions/686132/opening-a-form-in-c-sharp-without-focus/10727337#10727337 - //https://social.msdn.microsoft.com/Forums/en-us/a5e3cbbb-fd07-4343-9b60-6903cdfeca76/click-through-window-with-image-wpf-issues-httransparent-isnt-working?forum=csharplanguage + // https:// stackoverflow.com/questions/2798245/click-through-in-c-sharp-form + // https:// stackoverflow.com/questions/686132/opening-a-form-in-c-sharp-without-focus/10727337#10727337 + // https:// social.msdn.microsoft.com/Forums/en-us/a5e3cbbb-fd07-4343-9b60-6903cdfeca76/click-through-window-with-image-wpf-issues-httransparent-isnt-working?forum=csharplanguage /// /// Raises the event. /// @@ -232,18 +242,21 @@ protected override void OnSourceInitialized(EventArgs e) { // Get this window's handle IntPtr hwnd = new WindowInteropHelper(this).Handle; + // Change the extended window style to include WS_EX_TRANSPARENT int extendedStyle = GetWindowLong(hwnd, GWL_EXSTYLE); - if (originalStyle == 0) + + if (this.originalStyle == 0) { - originalStyle = extendedStyle; + this.originalStyle = extendedStyle; } + SetWindowLong(hwnd, GWL_EXSTYLE, extendedStyle | WS_EX_TRANSPARENT); base.OnSourceInitialized(e); } - public const int WS_EX_TRANSPARENT = 0x00000020; + public const int GWL_EXSTYLE = (-20); [DllImport("user32.dll")] @@ -257,17 +270,19 @@ protected override void OnSourceInitialized(EventArgs e) public DateTime ProgramEnd; // Declare a dictionary to map keys to images - private readonly Dictionary _keyImages = new(); + private readonly Dictionary _keyImages = new (); - private readonly Dictionary _mouseImages = new(); + private readonly Dictionary _mouseImages = new (); // TODO private readonly XGamepad gamepad; - private readonly Dictionary _gamepadImages = new(); - private readonly Dictionary _gamepadTriggersImages = new(); - private readonly Dictionary _gamepadJoystickImages = new(); - //Main entry point? + private readonly Dictionary _gamepadImages = new (); + + private readonly Dictionary _gamepadTriggersImages = new (); + + private readonly Dictionary _gamepadJoystickImages = new (); + /// /// Initializes a new instance of the class. /// @@ -275,35 +290,37 @@ public MainWindow() { // Create a Stopwatch instance Stopwatch stopwatch = new Stopwatch(); + // Start the stopwatch stopwatch.Start(); var splashScreen = new SplashScreen("Assets/Icons/png/loading.png"); splashScreen.Show(false); - dataLoader = new DataLoader(); - InitializeComponent(); + this.dataLoader = new DataLoader(); + this.InitializeComponent(); LoggerInstance.Info(CultureInfo.InvariantCulture, $"MainWindow initialized"); LoggerInstance.Trace(new StackTrace().ToString()); - Left = 0; - Top = 0; - Topmost = true; - DispatcherTimer timer = new(); + this.Left = 0; + this.Top = 0; + this.Topmost = true; + DispatcherTimer timer = new (); Settings s = (Settings)Application.Current.TryFindResource("Settings"); timer.Interval = new TimeSpan(0, 0, 0, 0, 1_000 / s.RefreshRate); - //memory leak? - timer.Tick += Timer_Tick; + + // memory leak? + timer.Tick += this.Timer_Tick; timer.Start(); - DataContext = dataLoader.model; - GlobalHotKey.RegisterHotKey("Shift + F1", () => OpenConfigButton_Key()); - GlobalHotKey.RegisterHotKey("Shift + F5", () => ReloadButton_Key()); - GlobalHotKey.RegisterHotKey("Shift + F6", () => CloseButton_Key()); + DataContext = this.dataLoader.model; + GlobalHotKey.RegisterHotKey("Shift + F1", () => this.OpenConfigButton_Key()); + GlobalHotKey.RegisterHotKey("Shift + F5", () => this.ReloadButton_Key()); + GlobalHotKey.RegisterHotKey("Shift + F6", () => this.CloseButton_Key()); DiscordManager.InitializeDiscordRPC(); - CheckGameState(); - _ = LoadOctoKit(); + this.CheckGameState(); + _ = this.LoadOctoKit(); LiveCharts.Configure(config => config @@ -319,53 +336,52 @@ public MainWindow() // OPTIONAL .AddLightTheme()); - // When the program starts - ProgramStart = DateTime.UtcNow; + this.ProgramStart = DateTime.UtcNow; // Calculate the total time spent and update the TotalTimeSpent property - dataLoader.model.TotalTimeSpent = DatabaseManagerInstance.CalculateTotalTimeSpent(); + this.dataLoader.model.TotalTimeSpent = DatabaseManagerInstance.CalculateTotalTimeSpent(); - MapPlayerInputImages(); - Subscribe(); - // TODO unsubscribe + this.MapPlayerInputImages(); + this.Subscribe(); + // TODO unsubscribe // TODO gamepad - gamepad = new(); - gamepad.ButtonPressed += Gamepad_ButtonPressed; - gamepad.LeftJoystickMove += Gamepad_LeftJoystickMove; - gamepad.RightJoystickMove += Gamepad_RightJoystickMove; - gamepad.LeftTrigger.ToDigitalButton(triggerActivationThreshold).Pressed += Gamepad_LeftTriggerPressed; - gamepad.RightTrigger.ToDigitalButton(triggerActivationThreshold).Pressed += Gamepad_RightTriggerPressed; - gamepad.ButtonReleased += Gamepad_ButtonReleased; - gamepad.LeftTrigger.ToDigitalButton(triggerActivationThreshold).Released += Gamepad_LeftTriggerReleased; - gamepad.RightTrigger.ToDigitalButton(triggerActivationThreshold).Released += Gamepad_RightTriggerReleased; - - DispatcherTimer timer1Frame = new(); - timer1Frame.Interval = new TimeSpan(0, 0, 0, 0, 1_000 / Numbers.FRAMES_PER_SECOND); - timer1Frame.Tick += Timer1Frame_Tick; + this.gamepad = new (); + this.gamepad.ButtonPressed += this.Gamepad_ButtonPressed; + this.gamepad.LeftJoystickMove += this.Gamepad_LeftJoystickMove; + this.gamepad.RightJoystickMove += this.Gamepad_RightJoystickMove; + this.gamepad.LeftTrigger.ToDigitalButton(this.triggerActivationThreshold).Pressed += this.Gamepad_LeftTriggerPressed; + this.gamepad.RightTrigger.ToDigitalButton(this.triggerActivationThreshold).Pressed += this.Gamepad_RightTriggerPressed; + this.gamepad.ButtonReleased += this.Gamepad_ButtonReleased; + this.gamepad.LeftTrigger.ToDigitalButton(this.triggerActivationThreshold).Released += this.Gamepad_LeftTriggerReleased; + this.gamepad.RightTrigger.ToDigitalButton(this.triggerActivationThreshold).Released += this.Gamepad_RightTriggerReleased; + + DispatcherTimer timer1Frame = new (); + timer1Frame.Interval = new TimeSpan(0, 0, 0, 0, 1_000 / Numbers.FramesPerSecond); + timer1Frame.Tick += this.Timer1Frame_Tick; timer1Frame.Start(); - SetGraphSeries(); - GetDependencies(); + this.SetGraphSeries(); + this.GetDependencies(); // The rendering tier corresponds to the high-order word of the Tier property. int renderingTier = (RenderCapability.Tier >> 16); LoggerInstance.Info(CultureInfo.InvariantCulture, "Found rendering tier {0}", renderingTier); - CreateSystemTrayIcon(); + this.CreateSystemTrayIcon(); - DispatcherTimer timer1Second = new(); + DispatcherTimer timer1Second = new (); timer1Second.Interval = new TimeSpan(0, 0, 1); - timer1Second.Tick += Timer1Second_Tick; + timer1Second.Tick += this.Timer1Second_Tick; // we run the 1 second timer tick once in the constructor try { - HideMonsterInfoWhenNotInQuest(); - HidePlayerInfoWhenNotInQuest(); - dataLoader.CheckForExternalProcesses(); - dataLoader.CheckForIllegalModifications(); + this.HideMonsterInfoWhenNotInQuest(); + this.HidePlayerInfoWhenNotInQuest(); + this.dataLoader.CheckForExternalProcesses(); + this.dataLoader.CheckForIllegalModifications(); } catch (Exception ex) { @@ -373,23 +389,26 @@ public MainWindow() } timer1Second.Start(); - DispatcherTimer timer10Seconds = new(); + DispatcherTimer timer10Seconds = new (); timer10Seconds.Interval = new TimeSpan(0, 0, 10); - timer10Seconds.Tick += Timer10Seconds_Tick; + timer10Seconds.Tick += this.Timer10Seconds_Tick; timer10Seconds.Start(); - dataLoader.model.ShowSaveIcon = false; + this.dataLoader.model.ShowSaveIcon = false; LoggerInstance.Info(CultureInfo.InvariantCulture, "Loaded MHF-Z Overlay {0}", App.CurrentProgramVersion); // In your initialization or setup code ISnackbarService snackbarService = new SnackbarService(); + // Replace 'snackbarControl' with your actual snackbar control instance - snackbarService.SetSnackbarControl(MainWindowSnackBar); + snackbarService.SetSnackbarControl(this.MainWindowSnackBar); splashScreen.Close(TimeSpan.FromSeconds(0.1)); + // Stop the stopwatch stopwatch.Stop(); + // Get the elapsed time in milliseconds double elapsedTimeMs = stopwatch.Elapsed.TotalMilliseconds; @@ -402,7 +421,10 @@ private void GetDependencies() // Get the dependency context for the current application var context = DependencyContext.Default; if (context == null) + { return; + } + // Build a string with information about all the dependencies var sb = new StringBuilder(); var runtimeTarget = RuntimeInformation.FrameworkDescription; @@ -430,44 +452,44 @@ private void GetDependencies() private void SetGraphSeries() { // TODO graphs - //https://stackoverflow.com/questions/74719777/livecharts2-binding-continuously-changing-data-to-graph - //inspired by HunterPie + // https:// stackoverflow.com/questions/74719777/livecharts2-binding-continuously-changing-data-to-graph + // inspired by HunterPie Settings s = (Settings)Application.Current.TryFindResource("Settings"); - dataLoader.model.attackBuffSeries.Add(new LineSeries + this.dataLoader.model.attackBuffSeries.Add(new LineSeries { - Values = dataLoader.model.attackBuffCollection, + Values = this.dataLoader.model.attackBuffCollection, LineSmoothness = .5, GeometrySize = 0, - Stroke = new SolidColorPaint(new SKColor(dataLoader.model.HexColorToDecimal(s.PlayerAttackGraphColor))) { StrokeThickness = 2 }, - Fill = new LinearGradientPaint(new SKColor(dataLoader.model.HexColorToDecimal(s.PlayerAttackGraphColor, "7f")), new SKColor(dataLoader.model.HexColorToDecimal(s.PlayerAttackGraphColor, "00")), new SKPoint(0.5f, 0), new SKPoint(0.5f, 1)) + Stroke = new SolidColorPaint(new SKColor(this.dataLoader.model.HexColorToDecimal(s.PlayerAttackGraphColor))) { StrokeThickness = 2 }, + Fill = new LinearGradientPaint(new SKColor(this.dataLoader.model.HexColorToDecimal(s.PlayerAttackGraphColor, "7f")), new SKColor(this.dataLoader.model.HexColorToDecimal(s.PlayerAttackGraphColor, "00")), new SKPoint(0.5f, 0), new SKPoint(0.5f, 1)) }); - dataLoader.model.damagePerSecondSeries.Add(new LineSeries + this.dataLoader.model.damagePerSecondSeries.Add(new LineSeries { - Values = dataLoader.model.damagePerSecondCollection, + Values = this.dataLoader.model.damagePerSecondCollection, LineSmoothness = .5, GeometrySize = 0, - Stroke = new SolidColorPaint(new SKColor(dataLoader.model.HexColorToDecimal(s.PlayerDPSGraphColor))) { StrokeThickness = 2 }, - Fill = new LinearGradientPaint(new SKColor(dataLoader.model.HexColorToDecimal(s.PlayerDPSGraphColor, "7f")), new SKColor(dataLoader.model.HexColorToDecimal(s.PlayerDPSGraphColor, "00")), new SKPoint(0.5f, 0), new SKPoint(0.5f, 1)) + Stroke = new SolidColorPaint(new SKColor(this.dataLoader.model.HexColorToDecimal(s.PlayerDPSGraphColor))) { StrokeThickness = 2 }, + Fill = new LinearGradientPaint(new SKColor(this.dataLoader.model.HexColorToDecimal(s.PlayerDPSGraphColor, "7f")), new SKColor(this.dataLoader.model.HexColorToDecimal(s.PlayerDPSGraphColor, "00")), new SKPoint(0.5f, 0), new SKPoint(0.5f, 1)) }); - dataLoader.model.actionsPerMinuteSeries.Add(new LineSeries + this.dataLoader.model.actionsPerMinuteSeries.Add(new LineSeries { - Values = dataLoader.model.actionsPerMinuteCollection, + Values = this.dataLoader.model.actionsPerMinuteCollection, LineSmoothness = .5, GeometrySize = 0, - Stroke = new SolidColorPaint(new SKColor(dataLoader.model.HexColorToDecimal(s.PlayerAPMGraphColor))) { StrokeThickness = 2 }, - Fill = new LinearGradientPaint(new SKColor(dataLoader.model.HexColorToDecimal(s.PlayerAPMGraphColor, "7f")), new SKColor(dataLoader.model.HexColorToDecimal(s.PlayerAPMGraphColor, "00")), new SKPoint(0.5f, 0), new SKPoint(0.5f, 1)) + Stroke = new SolidColorPaint(new SKColor(this.dataLoader.model.HexColorToDecimal(s.PlayerAPMGraphColor))) { StrokeThickness = 2 }, + Fill = new LinearGradientPaint(new SKColor(this.dataLoader.model.HexColorToDecimal(s.PlayerAPMGraphColor, "7f")), new SKColor(this.dataLoader.model.HexColorToDecimal(s.PlayerAPMGraphColor, "00")), new SKPoint(0.5f, 0), new SKPoint(0.5f, 1)) }); - dataLoader.model.hitsPerSecondSeries.Add(new LineSeries + this.dataLoader.model.hitsPerSecondSeries.Add(new LineSeries { - Values = dataLoader.model.hitsPerSecondCollection, + Values = this.dataLoader.model.hitsPerSecondCollection, LineSmoothness = .5, GeometrySize = 0, - Stroke = new SolidColorPaint(new SKColor(dataLoader.model.HexColorToDecimal(s.PlayerHitsPerSecondGraphColor))) { StrokeThickness = 2 }, - Fill = new LinearGradientPaint(new SKColor(dataLoader.model.HexColorToDecimal(s.PlayerHitsPerSecondGraphColor, "7f")), new SKColor(dataLoader.model.HexColorToDecimal(s.PlayerHitsPerSecondGraphColor, "00")), new SKPoint(0.5f, 0), new SKPoint(0.5f, 1)) + Stroke = new SolidColorPaint(new SKColor(this.dataLoader.model.HexColorToDecimal(s.PlayerHitsPerSecondGraphColor))) { StrokeThickness = 2 }, + Fill = new LinearGradientPaint(new SKColor(this.dataLoader.model.HexColorToDecimal(s.PlayerHitsPerSecondGraphColor, "7f")), new SKColor(this.dataLoader.model.HexColorToDecimal(s.PlayerHitsPerSecondGraphColor, "00")), new SKPoint(0.5f, 0), new SKPoint(0.5f, 1)) }); } @@ -502,7 +524,7 @@ private async Task LoadOctoKit() // TODO: refactor to somewhere else /// - /// Opens the link. https://stackoverflow.com/a/60221582/18859245 + /// Opens the link. https:// stackoverflow.com/a/60221582/18859245 /// /// The destinationurl. private static void OpenLink(string destinationurl) @@ -521,17 +543,17 @@ public void CheckGameState() { int PID = m.GetProcIdFromName("mhf"); - //https://stackoverflow.com/questions/12372534/how-to-get-a-process-window-class-name-from-c + // https:// stackoverflow.com/questions/12372534/how-to-get-a-process-window-class-name-from-c int pidToSearch = PID; - //Init a condition indicating that you want to search by process id. + // Init a condition indicating that you want to search by process id. var condition = new PropertyCondition(AutomationElementIdentifiers.ProcessIdProperty, pidToSearch); - //Find the automation element matching the criteria + // Find the automation element matching the criteria // TODO what is this? AutomationElement element = AutomationElement.RootElement.FindFirst( TreeScope.Children, condition); - //get the classname + // get the classname if (element != null) { var className = element.Current.ClassName; @@ -539,34 +561,35 @@ public void CheckGameState() if (className == "MHFLAUNCH") { LoggerInstance.Error(CultureInfo.InvariantCulture, "Detected game launcher"); - System.Windows.MessageBox.Show("Detected launcher, please start the overlay when fully loading into Mezeporta. Closing overlay.", Messages.ERROR_TITLE, System.Windows.MessageBoxButton.OK, System.Windows.MessageBoxImage.Error); - dataLoader.model.isInLauncherBool = true; + System.Windows.MessageBox.Show("Detected launcher, please start the overlay when fully loading into Mezeporta. Closing overlay.", Messages.ErrorTitle, System.Windows.MessageBoxButton.OK, System.Windows.MessageBoxImage.Error); + this.dataLoader.model.isInLauncherBool = true; ApplicationManager.HandleShutdown(); } else { - dataLoader.model.isInLauncherBool = false; + this.dataLoader.model.isInLauncherBool = false; } - //https://stackoverflow.com/questions/51148/how-do-i-find-out-if-a-process-is-already-running-using-c - //https://stackoverflow.com/questions/12273825/c-sharp-process-start-how-do-i-know-if-the-process-ended + // https:// stackoverflow.com/questions/51148/how-do-i-find-out-if-a-process-is-already-running-using-c + // https:// stackoverflow.com/questions/12273825/c-sharp-process-start-how-do-i-know-if-the-process-ended Process mhfProcess = Process.GetProcessById(pidToSearch); mhfProcess.EnableRaisingEvents = true; mhfProcess.Exited += (sender, e) => { - dataLoader.model.closedGame = true; + this.dataLoader.model.closedGame = true; Settings s = (Settings)Application.Current.TryFindResource("Settings"); LoggerInstance.Info(CultureInfo.InvariantCulture, "Detected closed game"); - System.Windows.MessageBox.Show("Detected closed game, closing overlay. Please start the overlay when fully loading into Mezeporta.", Messages.INFO_TITLE, System.Windows.MessageBoxButton.OK, System.Windows.MessageBoxImage.Information); - //https://stackoverflow.com/a/9050477/18859245 + System.Windows.MessageBox.Show("Detected closed game, closing overlay. Please start the overlay when fully loading into Mezeporta.", Messages.InfoTitle, System.Windows.MessageBoxButton.OK, System.Windows.MessageBoxImage.Information); + // https:// stackoverflow.com/a/9050477/18859245 ApplicationManager.HandleShutdown(); }; } } private bool showedNullError = false; + private bool showedGameFolderWarning = false; // TODO: optimization @@ -574,7 +597,7 @@ private async void Timer_Tick(object? obj, EventArgs e) { try { - dataLoader.model.ReloadData(); + this.dataLoader.model.ReloadData(); Monster1HPBar.ReloadData(); Monster2HPBar.ReloadData(); Monster3HPBar.ReloadData(); @@ -592,14 +615,14 @@ private async void Timer_Tick(object? obj, EventArgs e) // this is also for database logging CheckMezFesScore(); - if (dataLoader.model.isInLauncher() == "NULL" && !showedNullError) + if (this.dataLoader.model.isInLauncher() == "NULL" && !showedNullError) { showedNullError = true; } if (!showedGameFolderWarning) { - dataLoader.model.ValidateGameFolder(); + this.dataLoader.model.ValidateGameFolder(); showedGameFolderWarning = true; } @@ -654,11 +677,17 @@ private void Timer1Frame_Tick(object? obj, EventArgs e) { gamepad.Device = XInputDevice.GetFirstConnectedDevice(); if (_gamepadImages.Count > 0) + { _gamepadImages.Clear(); + } if (_gamepadTriggersImages.Count > 0) + { _gamepadTriggersImages.Clear(); + } if (_gamepadJoystickImages.Count > 0) + { _gamepadJoystickImages.Clear(); + } if (gamepad.IsConnected) { LoggerInstance.Debug("Gamepad reconnected"); @@ -674,14 +703,14 @@ private void Timer1Frame_Tick(object? obj, EventArgs e) private void CheckIfQuestChanged() { - if (dataLoader.model.previousQuestID != dataLoader.model.QuestID() && dataLoader.model.QuestID() != 0) + if (this.dataLoader.model.previousQuestID != this.dataLoader.model.QuestID() && this.dataLoader.model.QuestID() != 0) { - dataLoader.model.previousQuestID = dataLoader.model.QuestID(); + this.dataLoader.model.previousQuestID = this.dataLoader.model.QuestID(); ShowQuestName(); } - else if (dataLoader.model.QuestID() == 0 && dataLoader.model.previousQuestID != 0) + else if (this.dataLoader.model.QuestID() == 0 && this.dataLoader.model.previousQuestID != 0) { - dataLoader.model.previousQuestID = dataLoader.model.QuestID(); + this.dataLoader.model.previousQuestID = this.dataLoader.model.QuestID(); } } @@ -690,11 +719,15 @@ private void ShowQuestName() Settings s = (Settings)Application.Current.TryFindResource("Settings"); if (s == null || !s.QuestNameShown) + { return; + } - EZlion.Mapper.Quest.IDName.TryGetValue(dataLoader.model.previousQuestID, out string? previousQuestID); + EZlion.Mapper.Quest.IDName.TryGetValue(this.dataLoader.model.previousQuestID, out string? previousQuestID); if (previousQuestID == null) + { return; + } questNameTextBlock.Text = previousQuestID; Brush blackBrush = new SolidColorBrush(Color.FromArgb(0xFF, 0x1E, 0x1E, 0x2E)); Brush peachBrush = new SolidColorBrush(Color.FromArgb(0xFF, 0xFA, 0xB3, 0x87)); @@ -755,15 +788,15 @@ private void AnimateOutlinedTextBlock(OutlinedTextBlock outlinedTextBlock, Brush private bool IsInHubAreaID(DataLoader dataLoader) { - switch (dataLoader.model.AreaID()) + switch (this.dataLoader.model.AreaID()) { default: return false; - case 200://Mezeporta - case 210://Private Bar - case 260://Pallone Caravan - case 282://Cities Map - case 202://Guild Halls + case 200:// Mezeporta + case 210:// Private Bar + case 260:// Pallone Caravan + case 282:// Cities Map + case 202:// Guild Halls case 203: case 204: return true; @@ -772,14 +805,14 @@ private bool IsInHubAreaID(DataLoader dataLoader) private void CheckIfLocationChanged() { - if (IsInHubAreaID(dataLoader) && dataLoader.model.QuestID() == 0) + if (IsInHubAreaID(dataLoader) && this.dataLoader.model.QuestID() == 0) { - dataLoader.model.PreviousHubAreaID = dataLoader.model.AreaID(); + this.dataLoader.model.PreviousHubAreaID = this.dataLoader.model.AreaID(); } - if (dataLoader.model.previousGlobalAreaID != dataLoader.model.AreaID() && dataLoader.model.AreaID() != 0) + if (this.dataLoader.model.previousGlobalAreaID != this.dataLoader.model.AreaID() && this.dataLoader.model.AreaID() != 0) { - dataLoader.model.previousGlobalAreaID = dataLoader.model.AreaID(); + this.dataLoader.model.previousGlobalAreaID = this.dataLoader.model.AreaID(); ShowLocationName(); } } @@ -793,7 +826,7 @@ private void ShowLocationName() return; } - Location.IDName.TryGetValue(dataLoader.model.previousGlobalAreaID, out string? previousGlobalAreaID); + Location.IDName.TryGetValue(this.dataLoader.model.previousGlobalAreaID, out string? previousGlobalAreaID); if (previousGlobalAreaID == null) { return; @@ -806,8 +839,11 @@ private void ShowLocationName() } int curNum; + int prevNum; + bool isFirstAttack; + public bool IsDragConfigure { get; set; } /// @@ -815,11 +851,13 @@ private void ShowLocationName() /// private void CreateDamageNumber() { - if (dataLoader.model.QuestID() == 0) + if (this.dataLoader.model.QuestID() == 0) + { return; + } int damage = 0; - if (dataLoader.model.HitCountInt() == 0) + if (this.dataLoader.model.HitCountInt() == 0) { curNum = 0; prevNum = 0; @@ -827,7 +865,7 @@ private void CreateDamageNumber() } else { - damage = dataLoader.model.DamageDealt(); + damage = this.dataLoader.model.DamageDealt(); } if (prevNum != damage) @@ -837,11 +875,11 @@ private void CreateDamageNumber() { isFirstAttack = false; CreateDamageNumberLabel(damage); - if (!dataLoader.model.damageDealtDictionary.ContainsKey(dataLoader.model.TimeInt())) + if (!this.dataLoader.model.damageDealtDictionary.ContainsKey(this.dataLoader.model.TimeInt())) { try { - dataLoader.model.damageDealtDictionary.Add(dataLoader.model.TimeInt(), damage); + this.dataLoader.model.damageDealtDictionary.Add(this.dataLoader.model.TimeInt(), damage); } catch (Exception ex) { @@ -854,11 +892,11 @@ private void CreateDamageNumber() // TODO curNum += 1_000; CreateDamageNumberLabel(curNum); - if (!dataLoader.model.damageDealtDictionary.ContainsKey(dataLoader.model.TimeInt())) + if (!this.dataLoader.model.damageDealtDictionary.ContainsKey(this.dataLoader.model.TimeInt())) { try { - dataLoader.model.damageDealtDictionary.Add(dataLoader.model.TimeInt(), curNum); + this.dataLoader.model.damageDealtDictionary.Add(this.dataLoader.model.TimeInt(), curNum); } catch (Exception ex) @@ -872,11 +910,11 @@ private void CreateDamageNumber() if (curNum != damage) { CreateDamageNumberLabel(curNum); - if (!dataLoader.model.damageDealtDictionary.ContainsKey(dataLoader.model.TimeInt())) + if (!this.dataLoader.model.damageDealtDictionary.ContainsKey(this.dataLoader.model.TimeInt())) { try { - dataLoader.model.damageDealtDictionary.Add(dataLoader.model.TimeInt(), curNum); + this.dataLoader.model.damageDealtDictionary.Add(this.dataLoader.model.TimeInt(), curNum); } catch (Exception ex) @@ -898,7 +936,9 @@ public static bool ShowDamageNumbersMulticolor() { Settings s = (Settings)Application.Current.TryFindResource("Settings"); if (s.EnableDamageNumbersMulticolor) + { return true; + } else return false; } @@ -911,7 +951,7 @@ private void CreateDamageNumberLabel(int damage) { Settings s = (Settings)Application.Current.TryFindResource("Settings"); - Random random = new(); + Random random = new (); double x = random.Next(450); double y = random.Next(254); Point newPoint = DamageNumbers.TranslatePoint(new Point(x, y), DamageNumbers); @@ -926,8 +966,8 @@ private void CreateDamageNumberLabel(int damage) damageOutlinedTextBlock.StrokeThickness = 4; damageOutlinedTextBlock.Stroke = new SolidColorBrush(Color.FromArgb(0xFF, 0x1E, 0x1E, 0x2E)); - //does not alter actual number displayed, only the text style - double damageModifier = damage / (dataLoader.model.CurrentWeaponMultiplier / 2); + // does not alter actual number displayed, only the text style + double damageModifier = damage / (this.dataLoader.model.CurrentWeaponMultiplier / 2); string exclamations = string.Empty; switch (damageModifier) @@ -973,13 +1013,18 @@ private void CreateDamageNumberLabel(int damage) break; } - var defenseMultiplier = Double.Parse(dataLoader.model.DefMult, CultureInfo.InvariantCulture); + var defenseMultiplier = Double.Parse(this.dataLoader.model.DefMult, CultureInfo.InvariantCulture); if (defenseMultiplier <= 0) + { defenseMultiplier = 1; + } + var effectiveDamage = damage / defenseMultiplier; // If the defense rate is so high that the effective damage is essentially 0, show the true damage instead. if (effectiveDamage == 0) + { effectiveDamage = damage; + } switch (s.DamageNumbersMode) { @@ -1006,7 +1051,7 @@ private void CreateDamageNumberLabel(int damage) // TODO add check for effects if (!ShowDamageNumbersMulticolor()) { - //https://stackoverflow.com/questions/14601759/convert-color-to-byte-value + // https:// stackoverflow.com/questions/14601759/convert-color-to-byte-value System.Drawing.Color color = ColorTranslator.FromHtml(s.DamageNumbersColor); damageOutlinedTextBlock.Fill = new SolidColorBrush(Color.FromArgb(color.A, color.R, color.G, color.B)); } @@ -1014,7 +1059,7 @@ private void CreateDamageNumberLabel(int damage) damageOutlinedTextBlock.SetValue(Canvas.TopProperty, newPoint.Y); damageOutlinedTextBlock.SetValue(Canvas.LeftProperty, newPoint.X); - DamageNumbers.Children.Add(damageOutlinedTextBlock); + this.DamageNumbers.Children.Add(damageOutlinedTextBlock); if (!s.EnableDamageNumbersFlash && !s.EnableDamageNumbersSize) { @@ -1057,8 +1102,6 @@ private void CreateDamageNumberLabel(int damage) From = whiteBrush, To = redBrush, Duration = TimeSpan.FromSeconds(0.05), - //AutoReverse = true, - //RepeatBehavior = new RepeatBehavior(2), }; Storyboard.SetTarget(flashWhiteStrokeAnimation, damageOutlinedTextBlock); Storyboard.SetTargetProperty(flashWhiteStrokeAnimation, new PropertyPath(OutlinedTextBlock.StrokeProperty)); @@ -1068,8 +1111,6 @@ private void CreateDamageNumberLabel(int damage) From = whiteBrush, To = redBrush, Duration = TimeSpan.FromSeconds(0.05), - //AutoReverse = true, - //RepeatBehavior = new RepeatBehavior(2), }; Storyboard.SetTarget(flashWhiteFillAnimation, damageOutlinedTextBlock); Storyboard.SetTargetProperty(flashWhiteFillAnimation, new PropertyPath(OutlinedTextBlock.FillProperty)); @@ -1077,7 +1118,9 @@ private void CreateDamageNumberLabel(int damage) fadeInIncreaseSizeFlashColorStoryboard.Children.Add(fadeInAnimation); if (s.EnableDamageNumbersSize) + { fadeInIncreaseSizeFlashColorStoryboard.Children.Add(sizeIncreaseAnimation); + } if (s.EnableDamageNumbersFlash) { @@ -1101,11 +1144,8 @@ private void CreateDamageNumberLabel(int damage) BrushAnimation showColorStrokeAnimation = new BrushAnimation { From = redBrush, - //To = (Color)converter.ConvertFromString(damageOutlinedTextBlock.Stroke.ToString()), To = blackBrush, Duration = TimeSpan.FromSeconds(0.05), - //AutoReverse = true, - //RepeatBehavior = new RepeatBehavior(2), }; Storyboard.SetTarget(showColorStrokeAnimation, damageOutlinedTextBlock); Storyboard.SetTargetProperty(showColorStrokeAnimation, new PropertyPath(OutlinedTextBlock.StrokeProperty)); @@ -1115,14 +1155,14 @@ private void CreateDamageNumberLabel(int damage) From = redBrush, To = originalFillBrush, Duration = TimeSpan.FromSeconds(0.05), - //AutoReverse = true, - //RepeatBehavior = new RepeatBehavior(2), }; Storyboard.SetTarget(showColorFillAnimation, damageOutlinedTextBlock); Storyboard.SetTargetProperty(showColorFillAnimation, new PropertyPath(OutlinedTextBlock.FillProperty)); if (s.EnableDamageNumbersSize) + { decreaseSizeShowColorStoryboard.Children.Add(sizeDecreaseAnimation); + } if (s.EnableDamageNumbersFlash) { @@ -1130,7 +1170,6 @@ private void CreateDamageNumberLabel(int damage) decreaseSizeShowColorStoryboard.Children.Add(showColorFillAnimation); } - Storyboard fadeOutStoryboard = new Storyboard(); DoubleAnimation fadeOutAnimation = new DoubleAnimation @@ -1176,15 +1215,16 @@ private void CreateDamageNumberLabel(int damage) /// The tb. private void RemoveDamageNumberLabel(OutlinedTextBlock tb) { - DispatcherTimer timer = new(); + DispatcherTimer timer = new (); timer.Interval = new TimeSpan(0, 0, 0, 0, 1_000); - //memory leak? + + // memory leak? timer.Tick += (o, e) => { DamageNumbers.Children.Remove(tb); }; timer.Start(); } - //does this sometimes bug? - //the UI flashes at least once when loading into quest + // does this sometimes bug? + // the UI flashes at least once when loading into quest /// /// Hides the monster information when not in quest. /// @@ -1192,7 +1232,7 @@ private void HideMonsterInfoWhenNotInQuest() { Settings s = (Settings)Application.Current.FindResource("Settings"); bool v = IsGameFocused(s) && - (s.AlwaysShowMonsterInfo || dataLoader.model.Configuring || dataLoader.model.QuestID() != 0); + (s.AlwaysShowMonsterInfo || this.dataLoader.model.Configuring || this.dataLoader.model.QuestID() != 0); SetMonsterStatsVisibility(v, s); } @@ -1202,7 +1242,6 @@ private void HideMonsterInfoWhenNotInQuest() private static Process currentProcess = Process.GetCurrentProcess(); - /// /// Checks if the game or overlay is focused. /// @@ -1211,8 +1250,10 @@ private void HideMonsterInfoWhenNotInQuest() /// private bool IsGameFocused(Settings s) { - if (!s.HideOverlayWhenUnfocusedGame || dataLoader.model.Configuring) + if (!s.HideOverlayWhenUnfocusedGame || this.dataLoader.model.Configuring) + { return true; + } // Get the active window handle IntPtr activeWindowHandle = GetForegroundWindow(); @@ -1228,7 +1269,9 @@ private bool IsGameFocused(Settings s) bool isGameProcessActive = (mhfProcess != null && activeWindowHandle == mhfProcess.MainWindowHandle); if (isGameProcessActive) + { return true; + } else return false; } @@ -1236,22 +1279,22 @@ private bool IsGameFocused(Settings s) private void SetMonsterStatsVisibility(bool v, Settings s) { - dataLoader.model.ShowMonsterAtkMult = v && s.MonsterAtkMultShown; - dataLoader.model.ShowMonsterDefrate = v && s.MonsterDefrateShown; - dataLoader.model.ShowMonsterSize = v && s.MonsterSizeShown; - dataLoader.model.ShowMonsterPoison = v && s.MonsterPoisonShown; - dataLoader.model.ShowMonsterSleep = v && s.MonsterSleepShown; - dataLoader.model.ShowMonsterPara = v && s.MonsterParaShown; - dataLoader.model.ShowMonsterBlast = v && s.MonsterBlastShown; - dataLoader.model.ShowMonsterStun = v && s.MonsterStunShown; + this.dataLoader.model.ShowMonsterAtkMult = v && s.MonsterAtkMultShown; + this.dataLoader.model.ShowMonsterDefrate = v && s.MonsterDefrateShown; + this.dataLoader.model.ShowMonsterSize = v && s.MonsterSizeShown; + this.dataLoader.model.ShowMonsterPoison = v && s.MonsterPoisonShown; + this.dataLoader.model.ShowMonsterSleep = v && s.MonsterSleepShown; + this.dataLoader.model.ShowMonsterPara = v && s.MonsterParaShown; + this.dataLoader.model.ShowMonsterBlast = v && s.MonsterBlastShown; + this.dataLoader.model.ShowMonsterStun = v && s.MonsterStunShown; - dataLoader.model.ShowMonster1HPBar = v && s.Monster1HealthBarShown; - dataLoader.model.ShowMonster2HPBar = v && s.Monster2HealthBarShown; - dataLoader.model.ShowMonster3HPBar = v && s.Monster3HealthBarShown; - dataLoader.model.ShowMonster4HPBar = v && s.Monster4HealthBarShown; + this.dataLoader.model.ShowMonster1HPBar = v && s.Monster1HealthBarShown; + this.dataLoader.model.ShowMonster2HPBar = v && s.Monster2HealthBarShown; + this.dataLoader.model.ShowMonster3HPBar = v && s.Monster3HealthBarShown; + this.dataLoader.model.ShowMonster4HPBar = v && s.Monster4HealthBarShown; - dataLoader.model.ShowMonsterPartHP = v && s.PartThresholdShown; - dataLoader.model.ShowMonster1Icon = v && s.Monster1IconShown; + this.dataLoader.model.ShowMonsterPartHP = v && s.PartThresholdShown; + this.dataLoader.model.ShowMonster1Icon = v && s.Monster1IconShown; } /// @@ -1261,39 +1304,39 @@ private void HidePlayerInfoWhenNotInQuest() { Settings s = (Settings)Application.Current.FindResource("Settings"); bool v = IsGameFocused(s) && - (s.AlwaysShowPlayerInfo || dataLoader.model.Configuring || dataLoader.model.QuestID() != 0); + (s.AlwaysShowPlayerInfo || this.dataLoader.model.Configuring || this.dataLoader.model.QuestID() != 0); SetPlayerStatsVisibility(v, s); } private void SetPlayerStatsVisibility(bool v, Settings s) { - //DL.m.?.Visibility = v && s.?.IsChecked - dataLoader.model.ShowTimerInfo = v && s.TimerInfoShown; - dataLoader.model.ShowHitCountInfo = v && s.HitCountShown; - dataLoader.model.ShowPlayerAtkInfo = v && s.PlayerAtkShown; - dataLoader.model.ShowPlayerHitsTakenBlockedInfo = v && s.TotalHitsTakenBlockedShown; - dataLoader.model.ShowSharpness = v && s.EnableSharpness; - dataLoader.model.ShowSessionTimeInfo = v && s.SessionTimeShown; + // DL.m.?.Visibility = v && s.?.IsChecked + this.dataLoader.model.ShowTimerInfo = v && s.TimerInfoShown; + this.dataLoader.model.ShowHitCountInfo = v && s.HitCountShown; + this.dataLoader.model.ShowPlayerAtkInfo = v && s.PlayerAtkShown; + this.dataLoader.model.ShowPlayerHitsTakenBlockedInfo = v && s.TotalHitsTakenBlockedShown; + this.dataLoader.model.ShowSharpness = v && s.EnableSharpness; + this.dataLoader.model.ShowSessionTimeInfo = v && s.SessionTimeShown; - dataLoader.model.ShowMap = v && s.EnableMap; - dataLoader.model.ShowFrameCounter = v && s.FrameCounterShown; - dataLoader.model.ShowPlayerAttackGraph = v && s.PlayerAttackGraphShown; - dataLoader.model.ShowPlayerDPSGraph = v && s.PlayerDPSGraphShown; - dataLoader.model.ShowPlayerAPMGraph = v && s.PlayerAPMGraphShown; - dataLoader.model.ShowPlayerHitsPerSecondGraph = v && s.PlayerHitsPerSecondGraphShown; + this.dataLoader.model.ShowMap = v && s.EnableMap; + this.dataLoader.model.ShowFrameCounter = v && s.FrameCounterShown; + this.dataLoader.model.ShowPlayerAttackGraph = v && s.PlayerAttackGraphShown; + this.dataLoader.model.ShowPlayerDPSGraph = v && s.PlayerDPSGraphShown; + this.dataLoader.model.ShowPlayerAPMGraph = v && s.PlayerAPMGraphShown; + this.dataLoader.model.ShowPlayerHitsPerSecondGraph = v && s.PlayerHitsPerSecondGraphShown; - dataLoader.model.ShowDamagePerSecond = v && s.DamagePerSecondShown; + this.dataLoader.model.ShowDamagePerSecond = v && s.DamagePerSecondShown; - dataLoader.model.ShowKBMLayout = v && s.KBMLayoutShown; - dataLoader.model.ShowGamepadLayout = v && s.GamepadShown; - dataLoader.model.ShowAPM = v && s.ActionsPerMinuteShown; - dataLoader.model.ShowOverlayModeWatermark = v && s.OverlayModeWatermarkShown; - dataLoader.model.ShowQuestID = v && s.QuestIDShown; + this.dataLoader.model.ShowKBMLayout = v && s.KBMLayoutShown; + this.dataLoader.model.ShowGamepadLayout = v && s.GamepadShown; + this.dataLoader.model.ShowAPM = v && s.ActionsPerMinuteShown; + this.dataLoader.model.ShowOverlayModeWatermark = v && s.OverlayModeWatermarkShown; + this.dataLoader.model.ShowQuestID = v && s.QuestIDShown; - dataLoader.model.ShowPersonalBestInfo = v && s.PersonalBestShown; - dataLoader.model.ShowQuestAttemptsInfo = v && s.QuestAttemptsShown; - dataLoader.model.ShowPersonalBestTimePercentInfo = v && s.PersonalBestTimePercentShown; - dataLoader.model.ShowPersonalBestAttemptsInfo = v && s.PersonalBestAttemptsShown; + this.dataLoader.model.ShowPersonalBestInfo = v && s.PersonalBestShown; + this.dataLoader.model.ShowQuestAttemptsInfo = v && s.QuestAttemptsShown; + this.dataLoader.model.ShowPersonalBestTimePercentInfo = v && s.PersonalBestTimePercentShown; + this.dataLoader.model.ShowPersonalBestAttemptsInfo = v && s.PersonalBestAttemptsShown; } private double? XOffset; @@ -1305,10 +1348,16 @@ private void SetPlayerStatsVisibility(bool v, Settings s) private void MainGrid_DragOver(object sender, DragEventArgs e) { if (MovingObject == null) + { return; + } + Point pos = e.GetPosition(this); if (XOffset == null || YOffset == null) + { return; + } + Settings s = (Settings)Application.Current.TryFindResource("Settings"); switch (MovingObject.Name) { @@ -1375,7 +1424,7 @@ private void MainGrid_DragOver(object sender, DragEventArgs e) s.MapX = (double)(pos.X - XOffset); s.MapY = (double)(pos.Y - YOffset); break; - //case "OverlayModeWatermark": + // case "OverlayModeWatermark": // s.OverlayModeWatermarkX = (double)(pos.X - XOffset); // s.OverlayModeWatermarkY = (double)(pos.Y - YOffset); // break; @@ -1477,7 +1526,10 @@ private void MainGrid_DragOver(object sender, DragEventArgs e) private static void DoDragDrop(FrameworkElement? item) { if (item == null) + { return; + } + DragDrop.DoDragDrop(item, new DataObject(DataFormats.Xaml, item), DragDropEffects.Move); } @@ -1489,7 +1541,10 @@ private static void DoDragDrop(FrameworkElement? item) private void MainGrid_Drop(object sender, DragEventArgs e) { if (MovingObject != null) + { MovingObject.IsHitTestVisible = true; + } + MovingObject = null; } @@ -1501,7 +1556,10 @@ private void MainGrid_Drop(object sender, DragEventArgs e) private void ElementMouseLeftButtonDown(object sender, MouseButtonEventArgs e) { if (!IsDragConfigure) + { return; + } + MovingObject = (FrameworkElement)sender; Point pos = e.GetPosition(this); XOffset = pos.X - Canvas.GetLeft(MovingObject); @@ -1519,9 +1577,12 @@ private void ReloadButton_Click(object sender, RoutedEventArgs e) private void OpenConfigButton_Click(object sender, RoutedEventArgs e) { if (configWindow == null || !configWindow.IsLoaded) + { configWindow = new(this); + } + configWindow.Show(); - dataLoader.model.Configuring = true; + this.dataLoader.model.Configuring = true; } private void CloseButton_Click(object sender, RoutedEventArgs e) @@ -1529,7 +1590,7 @@ private void CloseButton_Click(object sender, RoutedEventArgs e) ApplicationManager.HandleShutdown(); } - //https://stackoverflow.com/questions/4773632/how-do-i-restart-a-wpf-application + // https:// stackoverflow.com/questions/4773632/how-do-i-restart-a-wpf-application private void ReloadButton_Key() { ApplicationManager.HandleRestart(); @@ -1538,20 +1599,25 @@ private void ReloadButton_Key() private void OpenConfigButton_Key() { if (IsDragConfigure) + { return; + } - if (dataLoader.model.isInLauncherBool) + if (this.dataLoader.model.isInLauncherBool) { - System.Windows.MessageBox.Show("Using the configuration menu outside of the game might cause slow performance", Messages.WARNING_TITLE, System.Windows.MessageBoxButton.OK, System.Windows.MessageBoxImage.Warning); + System.Windows.MessageBox.Show("Using the configuration menu outside of the game might cause slow performance", Messages.WarningTitle, System.Windows.MessageBoxButton.OK, System.Windows.MessageBoxImage.Warning); LoggerInstance.Info(CultureInfo.InvariantCulture, "Detected game launcher while using configuration menu"); } if (configWindow == null || !configWindow.IsLoaded) + { configWindow = new(this); + } + try { configWindow.Show();// TODO: memory error? - dataLoader.model.Configuring = true; + this.dataLoader.model.Configuring = true; } catch (Exception ex) { @@ -1586,7 +1652,10 @@ public void EnableDragAndDrop() ExitDragAndDrop.Visibility = Visibility.Visible; MainGrid.Background = (Brush?)new BrushConverter().ConvertFrom("#01000000"); if (configWindow != null) + { configWindow.Visibility = Visibility.Hidden; + } + ToggleClickThrough(); ToggleOverlayBorders(); } @@ -1597,7 +1666,9 @@ private void ToggleOverlayBorders() var thickness = new System.Windows.Thickness(0); if (IsDragConfigure) + { thickness = new System.Windows.Thickness(2); + } ActionsPerMinuteInfoBorder.BorderThickness = thickness; DamagePerSecondInfoBorder.BorderThickness = thickness; @@ -1663,6 +1734,7 @@ private void ToggleClickThrough() SetWindowLong(hwnd, GWL_EXSTYLE, originalStyle); } + ClickThrough = !ClickThrough; } @@ -1672,7 +1744,10 @@ public void DisableDragAndDrop() ExitDragAndDrop.Visibility = Visibility.Hidden; MainGrid.Background = (Brush?)new BrushConverter().ConvertFrom("#00FFFFFF"); if (configWindow != null) + { configWindow.Visibility = Visibility.Visible; + } + ToggleClickThrough(); ToggleOverlayBorders(); } @@ -1681,6 +1756,7 @@ private void ExitDragAndDrop_Click(object sender, RoutedEventArgs e) { DisableDragAndDrop(); } + private void CommandBinding_Executed(object sender, ExecutedRoutedEventArgs e) { DisableDragAndDrop(); @@ -1693,14 +1769,16 @@ private void CommandBinding_Executed(object sender, ExecutedRoutedEventArgs e) private async Task UpdateQuestAttempts() { string category = OverlayModeWatermarkTextBlock.Text; - int weaponType = dataLoader.model.WeaponType(); - long questID = dataLoader.model.QuestID(); + int weaponType = this.dataLoader.model.WeaponType(); + long questID = this.dataLoader.model.QuestID(); int attempts = await DatabaseManagerInstance.UpsertQuestAttemptsAsync(questID, weaponType, category); Settings s = (Settings)Application.Current.TryFindResource("Settings"); string completions = string.Empty; if (s.EnableQuestCompletionsCounter) + { completions = await DatabaseManagerInstance.GetQuestCompletionsAsync(questID, category, weaponType) + "/"; + } questAttemptsTextBlock.Text = $"{completions}{attempts}"; } @@ -1708,8 +1786,8 @@ private async Task UpdateQuestAttempts() private async Task UpdatePersonalBestAttempts() { string category = OverlayModeWatermarkTextBlock.Text; - int weaponType = dataLoader.model.WeaponType(); - long questID = dataLoader.model.QuestID(); + int weaponType = this.dataLoader.model.WeaponType(); + long questID = this.dataLoader.model.QuestID(); int attempts = await DatabaseManagerInstance.UpsertPersonalBestAttemptsAsync(questID, weaponType, category); personalBestAttemptsTextBlock.Text = attempts.ToString(CultureInfo.InvariantCulture); @@ -1727,19 +1805,19 @@ private int GetMezFesMinigameScore(int areaID) switch (areaID) { case 464: // Uruki Pachinko - score = dataLoader.model.UrukiPachinkoScore() + dataLoader.model.UrukiPachinkoBonusScore(); + score = this.dataLoader.model.UrukiPachinkoScore() + this.dataLoader.model.UrukiPachinkoBonusScore(); break; case 467: // Nyanrendo - score = dataLoader.model.NyanrendoScore(); + score = this.dataLoader.model.NyanrendoScore(); break; case 469: // Dokkan Battle Cats - score = dataLoader.model.DokkanBattleCatsScore(); + score = this.dataLoader.model.DokkanBattleCatsScore(); break; case 466: // Guuku Scoop - score = dataLoader.model.GuukuScoopScore(); + score = this.dataLoader.model.GuukuScoopScore(); break; case 468: // Panic Honey - score = dataLoader.model.PanicHoneyScore(); + score = this.dataLoader.model.PanicHoneyScore(); break; } return score; @@ -1753,39 +1831,41 @@ private int GetMezFesMinigameScore(int areaID) /// private void CheckMezFesScore() { - if (dataLoader.model.QuestID() != 0 || !(dataLoader.model.AreaID() == 462 || MezFesMinigameMapper.ID.ContainsKey(dataLoader.model.AreaID()))) + if (this.dataLoader.model.QuestID() != 0 || !(this.dataLoader.model.AreaID() == 462 || MezFesMinigameMapper.ID.ContainsKey(this.dataLoader.model.AreaID()))) + { return; + } - int areaID = dataLoader.model.AreaID(); + int areaID = this.dataLoader.model.AreaID(); // Check if player is in a minigame area if (MezFesMinigameMapper.ID.ContainsKey(areaID)) { // Check if the player has entered a new minigame area - if (areaID != dataLoader.model.previousMezFesArea) + if (areaID != this.dataLoader.model.previousMezFesArea) { - dataLoader.model.previousMezFesArea = areaID; - dataLoader.model.previousMezFesScore = 0; + this.dataLoader.model.previousMezFesArea = areaID; + this.dataLoader.model.previousMezFesScore = 0; } // Read player score from corresponding memory address based on current area ID int score = GetMezFesMinigameScore(areaID); // Update current score with new score if it's greater and doesn't surpass the UI limit - if (score > dataLoader.model.previousMezFesScore && score <= 999999) + if (score > this.dataLoader.model.previousMezFesScore && score <= 999999) { - dataLoader.model.previousMezFesScore = score; + this.dataLoader.model.previousMezFesScore = score; } } // Check if the player has exited a minigame area and the score is 0 - else if (dataLoader.model.previousMezFesArea != -1 && areaID == 462) + else if (this.dataLoader.model.previousMezFesArea != -1 && areaID == 462) { // Save current score and minigame area ID to database - DatabaseManagerInstance.InsertMezFesMinigameScore(dataLoader, dataLoader.model.previousMezFesArea, dataLoader.model.previousMezFesScore); + DatabaseManagerInstance.InsertMezFesMinigameScore(dataLoader, this.dataLoader.model.previousMezFesArea, this.dataLoader.model.previousMezFesScore); // Reset previousMezFesArea and previousMezFesScore - dataLoader.model.previousMezFesArea = -1; - dataLoader.model.previousMezFesScore = 0; + this.dataLoader.model.previousMezFesArea = -1; + this.dataLoader.model.previousMezFesScore = 0; } } @@ -1795,27 +1875,27 @@ private async Task CheckQuestStateForDatabaseLogging() Settings s = (Settings)System.Windows.Application.Current.TryFindResource("Settings"); // Check if in quest and timer is NOT frozen - if (dataLoader.model.QuestID() != 0 && dataLoader.model.TimeInt() != dataLoader.model.TimeDefInt() && dataLoader.model.QuestState() == 0 && dataLoader.model.previousTimeInt != dataLoader.model.TimeInt()) + if (this.dataLoader.model.QuestID() != 0 && this.dataLoader.model.TimeInt() != this.dataLoader.model.TimeDefInt() && this.dataLoader.model.QuestState() == 0 && this.dataLoader.model.previousTimeInt != this.dataLoader.model.TimeInt()) { - dataLoader.model.previousTimeInt = dataLoader.model.TimeInt(); - dataLoader.model.TotalHitsTakenBlockedPerSecond = dataLoader.model.CalculateTotalHitsTakenBlockedPerSecond(); - dataLoader.model.HitsPerSecond = dataLoader.model.CalculateHitsPerSecond(); - dataLoader.model.DPS = dataLoader.model.CalculateDPS(); - dataLoader.model.APM = dataLoader.model.CalculateAPM(); - dataLoader.model.InsertQuestInfoIntoDictionaries(); + this.dataLoader.model.previousTimeInt = this.dataLoader.model.TimeInt(); + this.dataLoader.model.TotalHitsTakenBlockedPerSecond = this.dataLoader.model.CalculateTotalHitsTakenBlockedPerSecond(); + this.dataLoader.model.HitsPerSecond = this.dataLoader.model.CalculateHitsPerSecond(); + this.dataLoader.model.DPS = this.dataLoader.model.CalculateDPS(); + this.dataLoader.model.APM = this.dataLoader.model.CalculateAPM(); + this.dataLoader.model.InsertQuestInfoIntoDictionaries(); // TODO: test on dure/etc - if (!calculatedPersonalBest && dataLoader.model.TimeDefInt() > dataLoader.model.TimeInt() && int.Parse(dataLoader.model.ATK, CultureInfo.InvariantCulture) > 0) + if (!calculatedPersonalBest && this.dataLoader.model.TimeDefInt() > this.dataLoader.model.TimeInt() && int.Parse(this.dataLoader.model.ATK, CultureInfo.InvariantCulture) > 0) { calculatedPersonalBest = true; - personalBestTextBlock.Text = await DatabaseManagerInstance.GetPersonalBestAsync(dataLoader.model.QuestID(), dataLoader.model.WeaponType(), OverlayModeWatermarkTextBlock.Text, dataLoader.model.QuestTimeMode, dataLoader); - dataLoader.model.PersonalBestLoaded = personalBestTextBlock.Text; + personalBestTextBlock.Text = await DatabaseManagerInstance.GetPersonalBestAsync(this.dataLoader.model.QuestID(), this.dataLoader.model.WeaponType(), OverlayModeWatermarkTextBlock.Text, this.dataLoader.model.QuestTimeMode, dataLoader); + this.dataLoader.model.PersonalBestLoaded = personalBestTextBlock.Text; } if (!calculatedQuestAttempts - && dataLoader.model.TimeDefInt() > dataLoader.model.TimeInt() - && int.Parse(dataLoader.model.ATK, CultureInfo.InvariantCulture) > 0 - && dataLoader.model.TimeDefInt() - dataLoader.model.TimeInt() >= 30) + && this.dataLoader.model.TimeDefInt() > this.dataLoader.model.TimeInt() + && int.Parse(this.dataLoader.model.ATK, CultureInfo.InvariantCulture) > 0 + && this.dataLoader.model.TimeDefInt() - this.dataLoader.model.TimeInt() >= 30) { calculatedQuestAttempts = true; await UpdateQuestAttempts(); @@ -1823,134 +1903,138 @@ private async Task CheckQuestStateForDatabaseLogging() } } - if ((dataLoader.model.QuestState() == 0 && dataLoader.model.QuestID() == 0)) + if ((this.dataLoader.model.QuestState() == 0 && this.dataLoader.model.QuestID() == 0)) { - dataLoader.model.questCleared = false; - dataLoader.model.questRewardsGiven = false; - dataLoader.model.clearQuestInfoDictionaries(); - dataLoader.model.clearGraphCollections(); - dataLoader.model.resetQuestInfoVariables(); - dataLoader.model.previousRoadFloor = 0; - personalBestTextBlock.Text = Messages.TIMER_NOT_LOADED; + this.dataLoader.model.questCleared = false; + this.dataLoader.model.questRewardsGiven = false; + this.dataLoader.model.clearQuestInfoDictionaries(); + this.dataLoader.model.clearGraphCollections(); + this.dataLoader.model.resetQuestInfoVariables(); + this.dataLoader.model.previousRoadFloor = 0; + personalBestTextBlock.Text = Messages.TimerNotLoaded; calculatedPersonalBest = false; calculatedQuestAttempts = false; return; } - else if (!dataLoader.model.loadedItemsAtQuestStart && dataLoader.model.QuestState() == 0 && dataLoader.model.QuestID() != 0) - { - dataLoader.model.loadedItemsAtQuestStart = true; - dataLoader.model.PouchItem1IDAtQuestStart = dataLoader.model.PouchItem1ID(); - dataLoader.model.PouchItem2IDAtQuestStart = dataLoader.model.PouchItem2ID(); - dataLoader.model.PouchItem3IDAtQuestStart = dataLoader.model.PouchItem3ID(); - dataLoader.model.PouchItem4IDAtQuestStart = dataLoader.model.PouchItem4ID(); - dataLoader.model.PouchItem5IDAtQuestStart = dataLoader.model.PouchItem5ID(); - dataLoader.model.PouchItem6IDAtQuestStart = dataLoader.model.PouchItem6ID(); - dataLoader.model.PouchItem7IDAtQuestStart = dataLoader.model.PouchItem7ID(); - dataLoader.model.PouchItem8IDAtQuestStart = dataLoader.model.PouchItem8ID(); - dataLoader.model.PouchItem9IDAtQuestStart = dataLoader.model.PouchItem9ID(); - dataLoader.model.PouchItem10IDAtQuestStart = dataLoader.model.PouchItem10ID(); - dataLoader.model.PouchItem11IDAtQuestStart = dataLoader.model.PouchItem11ID(); - dataLoader.model.PouchItem12IDAtQuestStart = dataLoader.model.PouchItem12ID(); - dataLoader.model.PouchItem13IDAtQuestStart = dataLoader.model.PouchItem13ID(); - dataLoader.model.PouchItem14IDAtQuestStart = dataLoader.model.PouchItem14ID(); - dataLoader.model.PouchItem15IDAtQuestStart = dataLoader.model.PouchItem15ID(); - dataLoader.model.PouchItem16IDAtQuestStart = dataLoader.model.PouchItem16ID(); - dataLoader.model.PouchItem17IDAtQuestStart = dataLoader.model.PouchItem17ID(); - dataLoader.model.PouchItem18IDAtQuestStart = dataLoader.model.PouchItem18ID(); - dataLoader.model.PouchItem19IDAtQuestStart = dataLoader.model.PouchItem19ID(); - dataLoader.model.PouchItem20IDAtQuestStart = dataLoader.model.PouchItem20ID(); - dataLoader.model.PouchItem1QuantityAtQuestStart = dataLoader.model.PouchItem1Qty(); - dataLoader.model.PouchItem2QuantityAtQuestStart = dataLoader.model.PouchItem2Qty(); - dataLoader.model.PouchItem3QuantityAtQuestStart = dataLoader.model.PouchItem3Qty(); - dataLoader.model.PouchItem4QuantityAtQuestStart = dataLoader.model.PouchItem4Qty(); - dataLoader.model.PouchItem5QuantityAtQuestStart = dataLoader.model.PouchItem5Qty(); - dataLoader.model.PouchItem6QuantityAtQuestStart = dataLoader.model.PouchItem6Qty(); - dataLoader.model.PouchItem7QuantityAtQuestStart = dataLoader.model.PouchItem7Qty(); - dataLoader.model.PouchItem8QuantityAtQuestStart = dataLoader.model.PouchItem8Qty(); - dataLoader.model.PouchItem9QuantityAtQuestStart = dataLoader.model.PouchItem9Qty(); - dataLoader.model.PouchItem10QuantityAtQuestStart = dataLoader.model.PouchItem10Qty(); - dataLoader.model.PouchItem11QuantityAtQuestStart = dataLoader.model.PouchItem11Qty(); - dataLoader.model.PouchItem12QuantityAtQuestStart = dataLoader.model.PouchItem12Qty(); - dataLoader.model.PouchItem13QuantityAtQuestStart = dataLoader.model.PouchItem13Qty(); - dataLoader.model.PouchItem14QuantityAtQuestStart = dataLoader.model.PouchItem14Qty(); - dataLoader.model.PouchItem15QuantityAtQuestStart = dataLoader.model.PouchItem15Qty(); - dataLoader.model.PouchItem16QuantityAtQuestStart = dataLoader.model.PouchItem16Qty(); - dataLoader.model.PouchItem17QuantityAtQuestStart = dataLoader.model.PouchItem17Qty(); - dataLoader.model.PouchItem18QuantityAtQuestStart = dataLoader.model.PouchItem18Qty(); - dataLoader.model.PouchItem19QuantityAtQuestStart = dataLoader.model.PouchItem19Qty(); - dataLoader.model.PouchItem20QuantityAtQuestStart = dataLoader.model.PouchItem20Qty(); - - dataLoader.model.AmmoPouchItem1IDAtQuestStart = dataLoader.model.AmmoPouchItem1ID(); - dataLoader.model.AmmoPouchItem2IDAtQuestStart = dataLoader.model.AmmoPouchItem1ID(); - dataLoader.model.AmmoPouchItem3IDAtQuestStart = dataLoader.model.AmmoPouchItem1ID(); - dataLoader.model.AmmoPouchItem4IDAtQuestStart = dataLoader.model.AmmoPouchItem1ID(); - dataLoader.model.AmmoPouchItem5IDAtQuestStart = dataLoader.model.AmmoPouchItem1ID(); - dataLoader.model.AmmoPouchItem6IDAtQuestStart = dataLoader.model.AmmoPouchItem1ID(); - dataLoader.model.AmmoPouchItem7IDAtQuestStart = dataLoader.model.AmmoPouchItem1ID(); - dataLoader.model.AmmoPouchItem8IDAtQuestStart = dataLoader.model.AmmoPouchItem1ID(); - dataLoader.model.AmmoPouchItem9IDAtQuestStart = dataLoader.model.AmmoPouchItem1ID(); - dataLoader.model.AmmoPouchItem10IDAtQuestStart = dataLoader.model.AmmoPouchItem1ID(); - dataLoader.model.AmmoPouchItem1QuantityAtQuestStart = dataLoader.model.AmmoPouchItem1Qty(); - dataLoader.model.AmmoPouchItem2QuantityAtQuestStart = dataLoader.model.AmmoPouchItem1Qty(); - dataLoader.model.AmmoPouchItem3QuantityAtQuestStart = dataLoader.model.AmmoPouchItem1Qty(); - dataLoader.model.AmmoPouchItem4QuantityAtQuestStart = dataLoader.model.AmmoPouchItem1Qty(); - dataLoader.model.AmmoPouchItem5QuantityAtQuestStart = dataLoader.model.AmmoPouchItem1Qty(); - dataLoader.model.AmmoPouchItem6QuantityAtQuestStart = dataLoader.model.AmmoPouchItem1Qty(); - dataLoader.model.AmmoPouchItem7QuantityAtQuestStart = dataLoader.model.AmmoPouchItem1Qty(); - dataLoader.model.AmmoPouchItem8QuantityAtQuestStart = dataLoader.model.AmmoPouchItem1Qty(); - dataLoader.model.AmmoPouchItem9QuantityAtQuestStart = dataLoader.model.AmmoPouchItem1Qty(); - dataLoader.model.AmmoPouchItem10QuantityAtQuestStart = dataLoader.model.AmmoPouchItem1Qty(); - - dataLoader.model.PartnyaBagItem1IDAtQuestStart = dataLoader.model.PartnyaBagItem1ID(); - dataLoader.model.PartnyaBagItem2IDAtQuestStart = dataLoader.model.PartnyaBagItem1ID(); - dataLoader.model.PartnyaBagItem3IDAtQuestStart = dataLoader.model.PartnyaBagItem1ID(); - dataLoader.model.PartnyaBagItem4IDAtQuestStart = dataLoader.model.PartnyaBagItem1ID(); - dataLoader.model.PartnyaBagItem5IDAtQuestStart = dataLoader.model.PartnyaBagItem1ID(); - dataLoader.model.PartnyaBagItem6IDAtQuestStart = dataLoader.model.PartnyaBagItem1ID(); - dataLoader.model.PartnyaBagItem7IDAtQuestStart = dataLoader.model.PartnyaBagItem1ID(); - dataLoader.model.PartnyaBagItem8IDAtQuestStart = dataLoader.model.PartnyaBagItem1ID(); - dataLoader.model.PartnyaBagItem9IDAtQuestStart = dataLoader.model.PartnyaBagItem1ID(); - dataLoader.model.PartnyaBagItem10IDAtQuestStart = dataLoader.model.PartnyaBagItem1ID(); - dataLoader.model.PartnyaBagItem1QuantityAtQuestStart = dataLoader.model.PartnyaBagItem1Qty(); - dataLoader.model.PartnyaBagItem2QuantityAtQuestStart = dataLoader.model.PartnyaBagItem1Qty(); - dataLoader.model.PartnyaBagItem3QuantityAtQuestStart = dataLoader.model.PartnyaBagItem1Qty(); - dataLoader.model.PartnyaBagItem4QuantityAtQuestStart = dataLoader.model.PartnyaBagItem1Qty(); - dataLoader.model.PartnyaBagItem5QuantityAtQuestStart = dataLoader.model.PartnyaBagItem1Qty(); - dataLoader.model.PartnyaBagItem6QuantityAtQuestStart = dataLoader.model.PartnyaBagItem1Qty(); - dataLoader.model.PartnyaBagItem7QuantityAtQuestStart = dataLoader.model.PartnyaBagItem1Qty(); - dataLoader.model.PartnyaBagItem8QuantityAtQuestStart = dataLoader.model.PartnyaBagItem1Qty(); - dataLoader.model.PartnyaBagItem9QuantityAtQuestStart = dataLoader.model.PartnyaBagItem1Qty(); - dataLoader.model.PartnyaBagItem10QuantityAtQuestStart = dataLoader.model.PartnyaBagItem1Qty(); - - } - - if (dataLoader.model.QuestState() == 0) + else if (!this.dataLoader.model.loadedItemsAtQuestStart && this.dataLoader.model.QuestState() == 0 && this.dataLoader.model.QuestID() != 0) + { + this.dataLoader.model.loadedItemsAtQuestStart = true; + this.dataLoader.model.PouchItem1IDAtQuestStart = this.dataLoader.model.PouchItem1ID(); + this.dataLoader.model.PouchItem2IDAtQuestStart = this.dataLoader.model.PouchItem2ID(); + this.dataLoader.model.PouchItem3IDAtQuestStart = this.dataLoader.model.PouchItem3ID(); + this.dataLoader.model.PouchItem4IDAtQuestStart = this.dataLoader.model.PouchItem4ID(); + this.dataLoader.model.PouchItem5IDAtQuestStart = this.dataLoader.model.PouchItem5ID(); + this.dataLoader.model.PouchItem6IDAtQuestStart = this.dataLoader.model.PouchItem6ID(); + this.dataLoader.model.PouchItem7IDAtQuestStart = this.dataLoader.model.PouchItem7ID(); + this.dataLoader.model.PouchItem8IDAtQuestStart = this.dataLoader.model.PouchItem8ID(); + this.dataLoader.model.PouchItem9IDAtQuestStart = this.dataLoader.model.PouchItem9ID(); + this.dataLoader.model.PouchItem10IDAtQuestStart = this.dataLoader.model.PouchItem10ID(); + this.dataLoader.model.PouchItem11IDAtQuestStart = this.dataLoader.model.PouchItem11ID(); + this.dataLoader.model.PouchItem12IDAtQuestStart = this.dataLoader.model.PouchItem12ID(); + this.dataLoader.model.PouchItem13IDAtQuestStart = this.dataLoader.model.PouchItem13ID(); + this.dataLoader.model.PouchItem14IDAtQuestStart = this.dataLoader.model.PouchItem14ID(); + this.dataLoader.model.PouchItem15IDAtQuestStart = this.dataLoader.model.PouchItem15ID(); + this.dataLoader.model.PouchItem16IDAtQuestStart = this.dataLoader.model.PouchItem16ID(); + this.dataLoader.model.PouchItem17IDAtQuestStart = this.dataLoader.model.PouchItem17ID(); + this.dataLoader.model.PouchItem18IDAtQuestStart = this.dataLoader.model.PouchItem18ID(); + this.dataLoader.model.PouchItem19IDAtQuestStart = this.dataLoader.model.PouchItem19ID(); + this.dataLoader.model.PouchItem20IDAtQuestStart = this.dataLoader.model.PouchItem20ID(); + this.dataLoader.model.PouchItem1QuantityAtQuestStart = this.dataLoader.model.PouchItem1Qty(); + this.dataLoader.model.PouchItem2QuantityAtQuestStart = this.dataLoader.model.PouchItem2Qty(); + this.dataLoader.model.PouchItem3QuantityAtQuestStart = this.dataLoader.model.PouchItem3Qty(); + this.dataLoader.model.PouchItem4QuantityAtQuestStart = this.dataLoader.model.PouchItem4Qty(); + this.dataLoader.model.PouchItem5QuantityAtQuestStart = this.dataLoader.model.PouchItem5Qty(); + this.dataLoader.model.PouchItem6QuantityAtQuestStart = this.dataLoader.model.PouchItem6Qty(); + this.dataLoader.model.PouchItem7QuantityAtQuestStart = this.dataLoader.model.PouchItem7Qty(); + this.dataLoader.model.PouchItem8QuantityAtQuestStart = this.dataLoader.model.PouchItem8Qty(); + this.dataLoader.model.PouchItem9QuantityAtQuestStart = this.dataLoader.model.PouchItem9Qty(); + this.dataLoader.model.PouchItem10QuantityAtQuestStart = this.dataLoader.model.PouchItem10Qty(); + this.dataLoader.model.PouchItem11QuantityAtQuestStart = this.dataLoader.model.PouchItem11Qty(); + this.dataLoader.model.PouchItem12QuantityAtQuestStart = this.dataLoader.model.PouchItem12Qty(); + this.dataLoader.model.PouchItem13QuantityAtQuestStart = this.dataLoader.model.PouchItem13Qty(); + this.dataLoader.model.PouchItem14QuantityAtQuestStart = this.dataLoader.model.PouchItem14Qty(); + this.dataLoader.model.PouchItem15QuantityAtQuestStart = this.dataLoader.model.PouchItem15Qty(); + this.dataLoader.model.PouchItem16QuantityAtQuestStart = this.dataLoader.model.PouchItem16Qty(); + this.dataLoader.model.PouchItem17QuantityAtQuestStart = this.dataLoader.model.PouchItem17Qty(); + this.dataLoader.model.PouchItem18QuantityAtQuestStart = this.dataLoader.model.PouchItem18Qty(); + this.dataLoader.model.PouchItem19QuantityAtQuestStart = this.dataLoader.model.PouchItem19Qty(); + this.dataLoader.model.PouchItem20QuantityAtQuestStart = this.dataLoader.model.PouchItem20Qty(); + + this.dataLoader.model.AmmoPouchItem1IDAtQuestStart = this.dataLoader.model.AmmoPouchItem1ID(); + this.dataLoader.model.AmmoPouchItem2IDAtQuestStart = this.dataLoader.model.AmmoPouchItem1ID(); + this.dataLoader.model.AmmoPouchItem3IDAtQuestStart = this.dataLoader.model.AmmoPouchItem1ID(); + this.dataLoader.model.AmmoPouchItem4IDAtQuestStart = this.dataLoader.model.AmmoPouchItem1ID(); + this.dataLoader.model.AmmoPouchItem5IDAtQuestStart = this.dataLoader.model.AmmoPouchItem1ID(); + this.dataLoader.model.AmmoPouchItem6IDAtQuestStart = this.dataLoader.model.AmmoPouchItem1ID(); + this.dataLoader.model.AmmoPouchItem7IDAtQuestStart = this.dataLoader.model.AmmoPouchItem1ID(); + this.dataLoader.model.AmmoPouchItem8IDAtQuestStart = this.dataLoader.model.AmmoPouchItem1ID(); + this.dataLoader.model.AmmoPouchItem9IDAtQuestStart = this.dataLoader.model.AmmoPouchItem1ID(); + this.dataLoader.model.AmmoPouchItem10IDAtQuestStart = this.dataLoader.model.AmmoPouchItem1ID(); + this.dataLoader.model.AmmoPouchItem1QuantityAtQuestStart = this.dataLoader.model.AmmoPouchItem1Qty(); + this.dataLoader.model.AmmoPouchItem2QuantityAtQuestStart = this.dataLoader.model.AmmoPouchItem1Qty(); + this.dataLoader.model.AmmoPouchItem3QuantityAtQuestStart = this.dataLoader.model.AmmoPouchItem1Qty(); + this.dataLoader.model.AmmoPouchItem4QuantityAtQuestStart = this.dataLoader.model.AmmoPouchItem1Qty(); + this.dataLoader.model.AmmoPouchItem5QuantityAtQuestStart = this.dataLoader.model.AmmoPouchItem1Qty(); + this.dataLoader.model.AmmoPouchItem6QuantityAtQuestStart = this.dataLoader.model.AmmoPouchItem1Qty(); + this.dataLoader.model.AmmoPouchItem7QuantityAtQuestStart = this.dataLoader.model.AmmoPouchItem1Qty(); + this.dataLoader.model.AmmoPouchItem8QuantityAtQuestStart = this.dataLoader.model.AmmoPouchItem1Qty(); + this.dataLoader.model.AmmoPouchItem9QuantityAtQuestStart = this.dataLoader.model.AmmoPouchItem1Qty(); + this.dataLoader.model.AmmoPouchItem10QuantityAtQuestStart = this.dataLoader.model.AmmoPouchItem1Qty(); + + this.dataLoader.model.PartnyaBagItem1IDAtQuestStart = this.dataLoader.model.PartnyaBagItem1ID(); + this.dataLoader.model.PartnyaBagItem2IDAtQuestStart = this.dataLoader.model.PartnyaBagItem1ID(); + this.dataLoader.model.PartnyaBagItem3IDAtQuestStart = this.dataLoader.model.PartnyaBagItem1ID(); + this.dataLoader.model.PartnyaBagItem4IDAtQuestStart = this.dataLoader.model.PartnyaBagItem1ID(); + this.dataLoader.model.PartnyaBagItem5IDAtQuestStart = this.dataLoader.model.PartnyaBagItem1ID(); + this.dataLoader.model.PartnyaBagItem6IDAtQuestStart = this.dataLoader.model.PartnyaBagItem1ID(); + this.dataLoader.model.PartnyaBagItem7IDAtQuestStart = this.dataLoader.model.PartnyaBagItem1ID(); + this.dataLoader.model.PartnyaBagItem8IDAtQuestStart = this.dataLoader.model.PartnyaBagItem1ID(); + this.dataLoader.model.PartnyaBagItem9IDAtQuestStart = this.dataLoader.model.PartnyaBagItem1ID(); + this.dataLoader.model.PartnyaBagItem10IDAtQuestStart = this.dataLoader.model.PartnyaBagItem1ID(); + this.dataLoader.model.PartnyaBagItem1QuantityAtQuestStart = this.dataLoader.model.PartnyaBagItem1Qty(); + this.dataLoader.model.PartnyaBagItem2QuantityAtQuestStart = this.dataLoader.model.PartnyaBagItem1Qty(); + this.dataLoader.model.PartnyaBagItem3QuantityAtQuestStart = this.dataLoader.model.PartnyaBagItem1Qty(); + this.dataLoader.model.PartnyaBagItem4QuantityAtQuestStart = this.dataLoader.model.PartnyaBagItem1Qty(); + this.dataLoader.model.PartnyaBagItem5QuantityAtQuestStart = this.dataLoader.model.PartnyaBagItem1Qty(); + this.dataLoader.model.PartnyaBagItem6QuantityAtQuestStart = this.dataLoader.model.PartnyaBagItem1Qty(); + this.dataLoader.model.PartnyaBagItem7QuantityAtQuestStart = this.dataLoader.model.PartnyaBagItem1Qty(); + this.dataLoader.model.PartnyaBagItem8QuantityAtQuestStart = this.dataLoader.model.PartnyaBagItem1Qty(); + this.dataLoader.model.PartnyaBagItem9QuantityAtQuestStart = this.dataLoader.model.PartnyaBagItem1Qty(); + this.dataLoader.model.PartnyaBagItem10QuantityAtQuestStart = this.dataLoader.model.PartnyaBagItem1Qty(); + + } + + if (this.dataLoader.model.QuestState() == 0) + { return; + } // check if quest clear - if (dataLoader.model.QuestState() == 1 && !dataLoader.model.questCleared) + if (this.dataLoader.model.QuestState() == 1 && !this.dataLoader.model.questCleared) { // TODO test on dure/road/etc // If this code is ever reached, it is not known if the cause is from the overlay interacting with the server, // the server itself, or just the overlay itself. // The overlay does NOT write to memory addresses. - if (dataLoader.model.TimeDefInt() - dataLoader.model.TimeInt() == 0) + if (this.dataLoader.model.TimeDefInt() - this.dataLoader.model.TimeInt() == 0) { - LoggerInstance.Fatal(CultureInfo.InvariantCulture, "Illegal quest completion time [ID {0}]", dataLoader.model.QuestID()); + LoggerInstance.Fatal(CultureInfo.InvariantCulture, "Illegal quest completion time [ID {0}]", this.dataLoader.model.QuestID()); ApplicationManager.HandleGameShutdown(); - LoggingManager.WriteCrashLog(new ArgumentOutOfRangeException($"Illegal quest completion time [ID {dataLoader.model.QuestID()}]")); + LoggingManager.WriteCrashLog(new ArgumentOutOfRangeException($"Illegal quest completion time [ID {this.dataLoader.model.QuestID()}]")); } - dataLoader.model.questCleared = true; - dataLoader.model.loadedItemsAtQuestStart = false; + this.dataLoader.model.questCleared = true; + this.dataLoader.model.loadedItemsAtQuestStart = false; if (s.EnableQuestLogging) - DatabaseManagerInstance.InsertQuestData(dataLoader, (int)DatabaseManagerInstance.GetQuestAttempts((long)dataLoader.model.QuestID(), dataLoader.model.WeaponType(), OverlayModeWatermarkTextBlock.Text)); + { + DatabaseManagerInstance.InsertQuestData(dataLoader, (int)DatabaseManagerInstance.GetQuestAttempts((long)this.dataLoader.model.QuestID(), this.dataLoader.model.WeaponType(), OverlayModeWatermarkTextBlock.Text)); + } } // check if rewards given - if (dataLoader.model.QuestState() == 129 && !dataLoader.model.questRewardsGiven) + if (this.dataLoader.model.QuestState() == 129 && !this.dataLoader.model.questRewardsGiven) { - dataLoader.model.questRewardsGiven = true; + this.dataLoader.model.questRewardsGiven = true; // TODO: add logging check requirement in case the user needs the hash sets. // We await since we are dealing with database await AchievementManagerInstance.CheckForAchievementsAsync(MainWindowSnackBar, dataLoader, DatabaseManagerInstance, s); @@ -1968,15 +2052,15 @@ public void Subscribe() // Note: for the application hook, use the Hook.AppEvents() instead m_GlobalHook = Hook.GlobalEvents(); - m_GlobalHook.MouseDownExt += GlobalHookMouseDownExt; - m_GlobalHook.MouseUpExt += GlobalHookMouseUpExt; - m_GlobalHook.KeyPress += GlobalHookKeyPress; - m_GlobalHook.KeyDown += GlobalHookKeyDown; - m_GlobalHook.KeyUp += GlobalHookKeyUp; + m_GlobalHook.MouseDownExt += this.GlobalHookMouseDownExt; + m_GlobalHook.MouseUpExt += this.GlobalHookMouseUpExt; + m_GlobalHook.KeyPress += this.GlobalHookKeyPress; + m_GlobalHook.KeyDown += this.GlobalHookKeyDown; + m_GlobalHook.KeyUp += this.GlobalHookKeyUp; // Register the event handler for button presses // TODO: do i really need this kind of interface? - //m_GlobalHook.KeyDown += HandleHorizontalInput; + // m_GlobalHook.KeyDown += HandleHorizontalInput; } @@ -1991,11 +2075,11 @@ private void GlobalHookMouseDownExt(object sender, MouseEventExtArgs e) { Settings s = (Settings)System.Windows.Application.Current.TryFindResource("Settings"); - if (s.EnableInputLogging && !dataLoader.model.mouseInputDictionary.ContainsKey(dataLoader.model.TimeInt()) && dataLoader.model.QuestID() != 0 && dataLoader.model.TimeInt() != dataLoader.model.TimeDefInt() && dataLoader.model.QuestState() == 0 && dataLoader.model.previousTimeInt != dataLoader.model.TimeInt() && image.Opacity == unpressedInputOpacity) + if (s.EnableInputLogging && !this.dataLoader.model.mouseInputDictionary.ContainsKey(this.dataLoader.model.TimeInt()) && this.dataLoader.model.QuestID() != 0 && this.dataLoader.model.TimeInt() != this.dataLoader.model.TimeDefInt() && this.dataLoader.model.QuestState() == 0 && this.dataLoader.model.previousTimeInt != this.dataLoader.model.TimeInt() && image.Opacity == unpressedInputOpacity) { try { - dataLoader.model.mouseInputDictionary.Add(dataLoader.model.TimeInt(), e.Button.ToString()); + this.dataLoader.model.mouseInputDictionary.Add(this.dataLoader.model.TimeInt(), e.Button.ToString()); } catch (Exception ex) { @@ -2032,9 +2116,9 @@ public void Unsubscribe() m_GlobalHook.KeyDown -= GlobalHookKeyDown; m_GlobalHook.KeyUp -= GlobalHookKeyUp; - //m_GlobalHook.KeyDown -= HandleHorizontalInput; + // m_GlobalHook.KeyDown -= HandleHorizontalInput; - //It is recommened to dispose it + // It is recommened to dispose it m_GlobalHook.Dispose(); } @@ -2044,11 +2128,11 @@ private void GlobalHookKeyDown(object sender, System.Windows.Forms.KeyEventArgs { Settings s = (Settings)System.Windows.Application.Current.TryFindResource("Settings"); - if (s.EnableInputLogging && !dataLoader.model.keystrokesDictionary.ContainsKey(dataLoader.model.TimeInt()) && dataLoader.model.QuestID() != 0 && dataLoader.model.TimeInt() != dataLoader.model.TimeDefInt() && dataLoader.model.QuestState() == 0 && dataLoader.model.previousTimeInt != dataLoader.model.TimeInt() && image.Opacity == unpressedInputOpacity) + if (s.EnableInputLogging && !this.dataLoader.model.keystrokesDictionary.ContainsKey(this.dataLoader.model.TimeInt()) && this.dataLoader.model.QuestID() != 0 && this.dataLoader.model.TimeInt() != this.dataLoader.model.TimeDefInt() && this.dataLoader.model.QuestState() == 0 && this.dataLoader.model.previousTimeInt != this.dataLoader.model.TimeInt() && image.Opacity == unpressedInputOpacity) { try { - dataLoader.model.keystrokesDictionary.Add(dataLoader.model.TimeInt(), e.KeyCode.ToString()); + this.dataLoader.model.keystrokesDictionary.Add(this.dataLoader.model.TimeInt(), e.KeyCode.ToString()); } catch (Exception ex) { @@ -2136,8 +2220,11 @@ private void AddGamepadImages() } double pressedInputOpacity = 0.5; + double unpressedInputOpacity = 0.2; + float triggerActivationThreshold = 0.5f; + float joystickThreshold = 0.5f; private void Gamepad_RightTriggerReleased(object? sender, EventArgs e) @@ -2200,11 +2287,11 @@ private void Gamepad_RightTriggerPressed(object? sender, EventArgs e) { Settings s = (Settings)System.Windows.Application.Current.TryFindResource("Settings"); - if (s.EnableInputLogging && !dataLoader.model.gamepadInputDictionary.ContainsKey(dataLoader.model.TimeInt()) && dataLoader.model.QuestID() != 0 && dataLoader.model.TimeInt() != dataLoader.model.TimeDefInt() && dataLoader.model.QuestState() == 0 && dataLoader.model.previousTimeInt != dataLoader.model.TimeInt() && image.Opacity == unpressedInputOpacity) + if (s.EnableInputLogging && !this.dataLoader.model.gamepadInputDictionary.ContainsKey(this.dataLoader.model.TimeInt()) && this.dataLoader.model.QuestID() != 0 && this.dataLoader.model.TimeInt() != this.dataLoader.model.TimeDefInt() && this.dataLoader.model.QuestState() == 0 && this.dataLoader.model.previousTimeInt != this.dataLoader.model.TimeInt() && image.Opacity == unpressedInputOpacity) { try { - dataLoader.model.gamepadInputDictionary.Add(dataLoader.model.TimeInt(), gamepad.RightTrigger.ToString()); + this.dataLoader.model.gamepadInputDictionary.Add(this.dataLoader.model.TimeInt(), gamepad.RightTrigger.ToString()); } catch (Exception ex) { @@ -2225,11 +2312,11 @@ private void Gamepad_LeftTriggerPressed(object? sender, EventArgs e) { Settings s = (Settings)System.Windows.Application.Current.TryFindResource("Settings"); - if (s.EnableInputLogging && !dataLoader.model.gamepadInputDictionary.ContainsKey(dataLoader.model.TimeInt()) && dataLoader.model.QuestID() != 0 && dataLoader.model.TimeInt() != dataLoader.model.TimeDefInt() && dataLoader.model.QuestState() == 0 && dataLoader.model.previousTimeInt != dataLoader.model.TimeInt() && image.Opacity == unpressedInputOpacity) + if (s.EnableInputLogging && !this.dataLoader.model.gamepadInputDictionary.ContainsKey(this.dataLoader.model.TimeInt()) && this.dataLoader.model.QuestID() != 0 && this.dataLoader.model.TimeInt() != this.dataLoader.model.TimeDefInt() && this.dataLoader.model.QuestState() == 0 && this.dataLoader.model.previousTimeInt != this.dataLoader.model.TimeInt() && image.Opacity == unpressedInputOpacity) { try { - dataLoader.model.gamepadInputDictionary.Add(dataLoader.model.TimeInt(), gamepad.LeftTrigger.ToString()); + this.dataLoader.model.gamepadInputDictionary.Add(this.dataLoader.model.TimeInt(), gamepad.LeftTrigger.ToString()); } catch (Exception ex) { @@ -2392,11 +2479,11 @@ private void Gamepad_DPadPressed(XInputButton button) { Settings s = (Settings)System.Windows.Application.Current.TryFindResource("Settings"); - if (s.EnableInputLogging && !dataLoader.model.gamepadInputDictionary.ContainsKey(dataLoader.model.TimeInt()) && dataLoader.model.QuestID() != 0 && dataLoader.model.TimeInt() != dataLoader.model.TimeDefInt() && dataLoader.model.QuestState() == 0 && dataLoader.model.previousTimeInt != dataLoader.model.TimeInt() && DPad.Opacity == unpressedInputOpacity) + if (s.EnableInputLogging && !this.dataLoader.model.gamepadInputDictionary.ContainsKey(this.dataLoader.model.TimeInt()) && this.dataLoader.model.QuestID() != 0 && this.dataLoader.model.TimeInt() != this.dataLoader.model.TimeDefInt() && this.dataLoader.model.QuestState() == 0 && this.dataLoader.model.previousTimeInt != this.dataLoader.model.TimeInt() && DPad.Opacity == unpressedInputOpacity) { try { - dataLoader.model.gamepadInputDictionary.Add(dataLoader.model.TimeInt(), button.ToString()); + this.dataLoader.model.gamepadInputDictionary.Add(this.dataLoader.model.TimeInt(), button.ToString()); } catch (Exception ex) { @@ -2422,11 +2509,11 @@ private void Gamepad_ButtonPressed(object? sender, DigitalButtonEventArgs diff --git a/MHFZ_Overlay/Views/SettingsForm.xaml.cs b/MHFZ_Overlay/Views/SettingsForm.xaml.cs index 09963133..d230a56e 100644 --- a/MHFZ_Overlay/Views/SettingsForm.xaml.cs +++ b/MHFZ_Overlay/Views/SettingsForm.xaml.cs @@ -15,7 +15,7 @@ public partial class SettingsForm : FluentWindow { public SettingsForm() { - InitializeComponent(); + this.InitializeComponent(); } public bool IsDefaultSettingsSelected { get; private set; } @@ -30,41 +30,36 @@ public SettingsForm() private void ApplyButton_Click(object sender, RoutedEventArgs e) { - // Get the selected radio button and handle the user's selection - if (DefaultSettingsRadioButton.IsChecked == true) + if (this.DefaultSettingsRadioButton.IsChecked == true) { - // Handle default settings selection - IsDefaultSettingsSelected = true; + this.IsDefaultSettingsSelected = true; } - else if (MonsterHPRadioButton.IsChecked == true) + else if (this.MonsterHPRadioButton.IsChecked == true) { - // Handle monster HP only selection - IsMonsterHpOnlySelected = true; + this.IsMonsterHpOnlySelected = true; // Get the selected ComboBox option - var selectedComboBoxItem = MonsterHPComboBox.SelectedItem as ComboBoxItem; + var selectedComboBoxItem = this.MonsterHPComboBox.SelectedItem as ComboBoxItem; if (selectedComboBoxItem != null) { var selectedOption = selectedComboBoxItem.Content.ToString(); // Handle the selected ComboBox option - MonsterHPModeSelected = selectedOption; + this.MonsterHPModeSelected = selectedOption; } } - else if (SpeedrunModeRadioButton.IsChecked == true) + else if (this.SpeedrunModeRadioButton.IsChecked == true) { - // Handle speedrun mode selection - IsSpeedrunSelected = true; + this.IsSpeedrunSelected = true; } - else if (EnableAllFeaturesRadioButton.IsChecked == true) + else if (this.EnableAllFeaturesRadioButton.IsChecked == true) { - // Handle enabling all features selection - IsEverythingSelected = true; + this.IsEverythingSelected = true; } else { @@ -73,6 +68,6 @@ private void ApplyButton_Click(object sender, RoutedEventArgs e) // Close the settings form this.DialogResult = true; - Close(); + this.Close(); } }