diff --git a/ARKBreedingStats/Form1.cs b/ARKBreedingStats/Form1.cs index 709c1022..48d3b712 100644 --- a/ARKBreedingStats/Form1.cs +++ b/ARKBreedingStats/Form1.cs @@ -3261,8 +3261,6 @@ private void LoadMultipliersFromTestCase(testCases.ExtractionTestCase etc) { // set all stat-multipliers from testCase _creatureCollection.serverMultipliers = etc.serverMultipliers.Copy(true); - _creatureCollection.singlePlayerSettings = etc.singleplayerSettings; - _creatureCollection.AtlasSettings = etc.AtlasSettings; _creatureCollection.allowMoreThanHundredImprinting = etc.allowMoreThanHundredPercentImprinting; _creatureCollection.maxWildLevel = etc.maxWildLevel; @@ -3293,10 +3291,8 @@ private void tsBtAddAsExtractionTest_Click(object sender, EventArgs e) etc.levelsDom = GetCurrentDomLevels(false); etc.levelsWild = GetCurrentWildLevels(false); etc.ModIDs = _creatureCollection.modIDs?.ToList(); - etc.serverMultipliers = _creatureCollection.serverMultipliers; + etc.serverMultipliers = _creatureCollection.serverMultipliers.Copy(true); etc.Species = speciesSelector1.SelectedSpecies; - etc.singleplayerSettings = _creatureCollection.singlePlayerSettings; - etc.AtlasSettings = _creatureCollection.AtlasSettings; etc.allowMoreThanHundredPercentImprinting = _creatureCollection.allowMoreThanHundredImprinting; etc.maxWildLevel = _creatureCollection.maxWildLevel; diff --git a/ARKBreedingStats/importExportGun/ImportExportGun.cs b/ARKBreedingStats/importExportGun/ImportExportGun.cs index faf3979a..d32a2d6b 100644 --- a/ARKBreedingStats/importExportGun/ImportExportGun.cs +++ b/ARKBreedingStats/importExportGun/ImportExportGun.cs @@ -332,7 +332,7 @@ internal static bool SetServerMultipliers(CreatureCollection cc, ExportGunServer cc.serverMultipliers.BabyFoodConsumptionSpeedMultiplier = Math.Round(esm.BabyFoodConsumptionSpeedMultiplier, roundToDigits); cc.serverMultipliers.AllowSpeedLeveling = esm.AllowSpeedLeveling; cc.serverMultipliers.AllowFlyerSpeedLeveling = esm.AllowFlyerSpeedLeveling; - cc.singlePlayerSettings = esm.UseSingleplayerSettings; + cc.serverMultipliers.SinglePlayerSettings = esm.UseSingleplayerSettings; cc.Game = esm.Game; cc.ServerMultipliersHash = newServerMultipliersHash; diff --git a/ARKBreedingStats/library/CreatureCollection.cs b/ARKBreedingStats/library/CreatureCollection.cs index f7ef4908..3c3187c6 100644 --- a/ARKBreedingStats/library/CreatureCollection.cs +++ b/ARKBreedingStats/library/CreatureCollection.cs @@ -67,11 +67,14 @@ public CreatureCollection() [JsonProperty] public ServerMultipliers serverMultipliersEvents; // this object's statMultipliers are not used + /// + /// Deprecated setting, remove on 2025-01-01 + /// [JsonProperty] public bool singlePlayerSettings; /// - /// If true, apply extra multipliers for the game ATLAS. + /// Deprecated setting, remove on 2025-01-01 /// [JsonProperty(DefaultValueHandling = DefaultValueHandling.Ignore)] public bool AtlasSettings; @@ -481,6 +484,18 @@ private void InitializeProperties(StreamingContext ct) { if (tags == null) tags = new List(); + // backwards compatibility, remove 10 lines below in 2025-01-01 + if (singlePlayerSettings && serverMultipliers != null) + { + serverMultipliers.SinglePlayerSettings = singlePlayerSettings; + singlePlayerSettings = false; + } + if (AtlasSettings && serverMultipliers != null) + { + serverMultipliers.AtlasSettings = AtlasSettings; + AtlasSettings = false; + } + // convert DateTimes to local times foreach (var tle in timerListEntries) tle.time = tle.time.ToLocalTime(); diff --git a/ARKBreedingStats/multiplierTesting/StatsMultiplierTesting.cs b/ARKBreedingStats/multiplierTesting/StatsMultiplierTesting.cs index 6247babb..5d020b9d 100644 --- a/ARKBreedingStats/multiplierTesting/StatsMultiplierTesting.cs +++ b/ARKBreedingStats/multiplierTesting/StatsMultiplierTesting.cs @@ -221,8 +221,8 @@ private void SetStatMultipliersFromCC() } SetIBM(_cc.serverMultipliers.BabyImprintingStatScaleMultiplier); - cbSingleplayerSettings.Checked = _cc.singlePlayerSettings; - CbAtlas.Checked = _cc.AtlasSettings; + cbSingleplayerSettings.Checked = _cc.serverMultipliers.SinglePlayerSettings; + CbAtlas.Checked = _cc.serverMultipliers.AtlasSettings; CbAllowSpeedLeveling.Checked = _cc.serverMultipliers.AllowSpeedLeveling; CbAllowFlyerSpeedLeveling.Checked = _cc.serverMultipliers.AllowFlyerSpeedLeveling; @@ -325,8 +325,8 @@ internal void CheckIfMultipliersAreEqualToSettings() if (_cc?.serverMultipliers?.statMultipliers != null) { showWarning = _cc.serverMultipliers.BabyImprintingStatScaleMultiplier != (double)nudIBM.Value - || _cc.singlePlayerSettings != cbSingleplayerSettings.Checked - || _cc.AtlasSettings != CbAtlas.Checked + || _cc.serverMultipliers.SinglePlayerSettings != cbSingleplayerSettings.Checked + || _cc.serverMultipliers.AtlasSettings != CbAtlas.Checked || _cc.serverMultipliers.AllowSpeedLeveling != CbAllowSpeedLeveling.Checked || _cc.serverMultipliers.AllowFlyerSpeedLeveling != CbAllowFlyerSpeedLeveling.Checked; if (!showWarning) @@ -426,8 +426,8 @@ private void copyStatMultipliersToSettingsToolStripMenuItem_Click(object sender, _statControls[s].SetStatMultiplierWithoutChangingInputs(_statControls[s].StatMultipliers); } _cc.serverMultipliers.BabyImprintingStatScaleMultiplier = (double)nudIBM.Value; - _cc.singlePlayerSettings = cbSingleplayerSettings.Checked; - _cc.AtlasSettings = CbAtlas.Checked; + _cc.serverMultipliers.SinglePlayerSettings = cbSingleplayerSettings.Checked; + _cc.serverMultipliers.AtlasSettings = CbAtlas.Checked; _cc.serverMultipliers.AllowSpeedLeveling = CbAllowSpeedLeveling.Checked; _cc.serverMultipliers.AllowFlyerSpeedLeveling = CbAllowFlyerSpeedLeveling.Checked; OnApplyMultipliers?.Invoke(); diff --git a/ARKBreedingStats/oldLibraryFormat/FormatConverter.cs b/ARKBreedingStats/oldLibraryFormat/FormatConverter.cs index dec7b410..2b2846b2 100644 --- a/ARKBreedingStats/oldLibraryFormat/FormatConverter.cs +++ b/ARKBreedingStats/oldLibraryFormat/FormatConverter.cs @@ -243,7 +243,6 @@ public static void TransferParameters(CreatureCollectionOld ccOld, CreatureColle ccNew.ownerList = ccOld.ownerList; ccNew.players = ccOld.players; ccNew.serverList = ccOld.serverList; - ccNew.singlePlayerSettings = ccOld.singlePlayerSettings; ccNew.tags = ccOld.tags; ccNew.tagsExclude = ccOld.tagsExclude; ccNew.tagsInclude = ccOld.tagsInclude; @@ -271,7 +270,8 @@ public static void TransferParameters(CreatureCollectionOld ccOld, CreatureColle EggHatchSpeedMultiplier = ccOld.EggHatchSpeedMultiplier, BabyMatureSpeedMultiplier = ccOld.BabyMatureSpeedMultiplier, BabyFoodConsumptionSpeedMultiplier = ccOld.BabyFoodConsumptionSpeedMultiplier, - statMultipliers = ccOld.multipliers // was converted to 12-stats before + statMultipliers = ccOld.multipliers, // was converted to 12-stats before + SinglePlayerSettings = ccOld.singlePlayerSettings }; ccNew.serverMultipliersEvents = new ServerMultipliers diff --git a/ARKBreedingStats/settings/Settings.cs b/ARKBreedingStats/settings/Settings.cs index 87314ca9..9c12c6f0 100644 --- a/ARKBreedingStats/settings/Settings.cs +++ b/ARKBreedingStats/settings/Settings.cs @@ -212,8 +212,8 @@ private void LoadSettings(CreatureCollection cc) else _multSetter[s].Multipliers = null; } } - cbSingleplayerSettings.Checked = cc.singlePlayerSettings; - CbAtlasSettings.Checked = _cc.AtlasSettings; + cbSingleplayerSettings.Checked = cc.serverMultipliers?.SinglePlayerSettings == true; + CbAtlasSettings.Checked = _cc.serverMultipliers?.AtlasSettings == true; if (_cc.Game == Ark.Asa) { RbGameAsa.Checked = true; @@ -501,8 +501,8 @@ private void SaveSettings() _cc.serverMultipliers.statMultipliers[Stats.Torpidity][Stats.IndexLevelWild] = 1; } - _cc.singlePlayerSettings = cbSingleplayerSettings.Checked; - _cc.AtlasSettings = CbAtlasSettings.Checked; + _cc.serverMultipliers.SinglePlayerSettings = cbSingleplayerSettings.Checked; + _cc.serverMultipliers.AtlasSettings = CbAtlasSettings.Checked; _cc.Game = RbGameAsa.Checked ? Ark.Asa : Ark.Ase; Properties.Settings.Default.NewLibraryGame = RbNewLibraryGameAse.Checked ? Ark.Game.Ase : RbNewLibraryGameAsa.Checked ? Ark.Game.Asa diff --git a/ARKBreedingStats/testCases/ExtractionTestCase.cs b/ARKBreedingStats/testCases/ExtractionTestCase.cs index a2917334..4a175dcd 100644 --- a/ARKBreedingStats/testCases/ExtractionTestCase.cs +++ b/ARKBreedingStats/testCases/ExtractionTestCase.cs @@ -22,7 +22,6 @@ public class ExtractionTestCase public double tamingEff; public double imprintingBonus; public ServerMultipliers serverMultipliers; - public bool singleplayerSettings; public bool AtlasSettings; public int maxWildLevel; public bool allowMoreThanHundredPercentImprinting; diff --git a/ARKBreedingStats/values/ServerMultipliers.cs b/ARKBreedingStats/values/ServerMultipliers.cs index 21467845..01cf7372 100644 --- a/ARKBreedingStats/values/ServerMultipliers.cs +++ b/ARKBreedingStats/values/ServerMultipliers.cs @@ -52,6 +52,15 @@ public class ServerMultipliers [JsonProperty] public bool AllowFlyerSpeedLeveling { get; set; } + [JsonProperty(DefaultValueHandling = DefaultValueHandling.Ignore)] + public bool SinglePlayerSettings { get; set; } + + /// + /// If true, apply extra multipliers for the game ATLAS. + /// + [JsonProperty(DefaultValueHandling = DefaultValueHandling.Ignore)] + public bool AtlasSettings { get; set; } + /// /// Fix any null values /// @@ -88,7 +97,9 @@ public ServerMultipliers Copy(bool withStatMultipliers) BabyCuddleIntervalMultiplier = BabyCuddleIntervalMultiplier, BabyImprintingStatScaleMultiplier = BabyImprintingStatScaleMultiplier, BabyImprintAmountMultiplier = BabyImprintAmountMultiplier, - AllowFlyerSpeedLeveling = AllowFlyerSpeedLeveling + AllowFlyerSpeedLeveling = AllowFlyerSpeedLeveling, + SinglePlayerSettings = SinglePlayerSettings, + AtlasSettings = AtlasSettings }; if (withStatMultipliers && statMultipliers != null) diff --git a/ARKBreedingStats/values/Values.cs b/ARKBreedingStats/values/Values.cs index 36c27346..ef8b58ca 100644 --- a/ARKBreedingStats/values/Values.cs +++ b/ARKBreedingStats/values/Values.cs @@ -477,9 +477,9 @@ public void ApplyMultipliers(CreatureCollection cc, bool eventMultipliers = fals ServerMultipliers singlePlayerServerMultipliers = null; - if (cc.singlePlayerSettings) + if (currentServerMultipliers.SinglePlayerSettings) { - // The singleplayer multipliers are saved as a regular multiplierpreset, but they work differently + // The singleplayer multipliers are saved as a regular multiplier preset, but they work differently // in the way they are multiplied on existing multipliers and won't work on their own. // The preset name "singleplayer" should only be used for this purpose. singlePlayerServerMultipliers = serverMultipliersPresets.GetPreset(ServerMultipliersPresets.Singleplayer); @@ -592,8 +592,7 @@ double GetRawStatValue(int statIndex, int statValueTypeIndex, bool customOverrid sp.SetCustomImprintingMultipliers(imprintingMultiplierOverrides); // ATLAS multipliers - - if (cc.AtlasSettings) + if (cc.serverMultipliers.AtlasSettings) { sp.stats[Stats.Health].BaseValue *= 1.25; sp.stats[Stats.Health].IncPerTamedLevel *= 1.5;