/** * Makes sure that there are no disallowed locations in the given NewWarpLocations. **/ private void ValidateWarpLocations(NewWarpLocations locations) { var defaults = new NewWarpLocations(); if (!AllowedWarpLocations.Contains(locations.FarmWarpLocation_Scepter.locationName)) { locations.FarmWarpLocation_Scepter = defaults.FarmWarpLocation_Scepter; } if (!AllowedWarpLocations.Contains(locations.FarmWarpLocation_Totem.locationName)) { locations.FarmWarpLocation_Scepter = defaults.FarmWarpLocation_Totem; } if (!AllowedWarpLocations.Contains(locations.MountainWarpLocation_Obelisk.locationName)) { locations.FarmWarpLocation_Scepter = defaults.MountainWarpLocation_Obelisk; } if (!AllowedWarpLocations.Contains(locations.MountainWarpLocation_Totem.locationName)) { locations.FarmWarpLocation_Scepter = defaults.MountainWarpLocation_Totem; } if (!AllowedWarpLocations.Contains(locations.BeachWarpLocation_Obelisk.locationName)) { locations.FarmWarpLocation_Scepter = defaults.BeachWarpLocation_Obelisk; } if (!AllowedWarpLocations.Contains(locations.BeachWarpLocation_Totem.locationName)) { locations.FarmWarpLocation_Scepter = defaults.BeachWarpLocation_Totem; } }
/// <summary>Raised after the player loads a save slot.</summary> /// <param name="sender">The event sender.</param> /// <param name="e">The event arguments.</param> private void OnSaveLoaded(object sender, EventArgs e) { // reads/Create a warp location save data file after the game loads LocationSaveFileName = Path.Combine("Data", $"{Constants.SaveFolderName}.json"); if (File.Exists(Path.Combine(this.Helper.DirectoryPath, LocationSaveFileName))) { WarpLocations = this.Helper.Data.ReadJsonFile <NewWarpLocations>(LocationSaveFileName); this.ValidateWarpLocations(WarpLocations); } else { WarpLocations = new NewWarpLocations(); } this.Helper.Data.WriteJsonFile(LocationSaveFileName, WarpLocations); }
/** * Reads/Creates a warp location save data file after the game loads. **/ private void AfterLoad(object sender, EventArgs e) { LocationSaveFileName = $"{this.Helper.DirectoryPath}{Path.DirectorySeparatorChar}Data{Path.DirectorySeparatorChar}{Constants.SaveFolderName}.json"; if (File.Exists(LocationSaveFileName)) { WarpLocations = this.Helper.ReadJsonFile <NewWarpLocations>(LocationSaveFileName); this.ValidateWarpLocations(WarpLocations); } else { WarpLocations = new NewWarpLocations(); } this.Helper.WriteJsonFile(LocationSaveFileName, WarpLocations); }