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;