Added MutagenLevelBoost and MutagenLevelBoostBred settings

This commit is contained in:
Brett Hewitson 2021-12-09 11:35:05 +10:00
parent 942db9bb53
commit 7f6fec6aca
11 changed files with 269 additions and 47 deletions

View file

@ -192,6 +192,7 @@
<Compile Include="Lib\Model\EngramAutoUnlock.cs" />
<Compile Include="Lib\Model\PreventTransferOverride.cs" />
<Compile Include="Lib\Model\StackSizeOverride.cs" />
<Compile Include="Lib\Model\StatsMultiplierIntegerArray.cs" />
<Compile Include="Lib\Serialization\IniFileEntryAttribute.cs" />
<Compile Include="Lib\Serialization\IniFiles.cs" />
<Compile Include="Lib\Serialization\IniSections.cs" />
@ -210,7 +211,7 @@
<Compile Include="Windows\AddUserWindow.xaml.cs">
<DependentUpon>AddUserWindow.xaml</DependentUpon>
</Compile>
<Compile Include="Lib\Model\StatsMultiplierArray.cs" />
<Compile Include="Lib\Model\StatsMultiplierFloatArray.cs" />
<Compile Include="Windows\DataDirectoryWindow.xaml.cs">
<DependentUpon>DataDirectoryWindow.xaml</DependentUpon>
</Compile>
@ -274,7 +275,7 @@
<DependentUpon>CommandLineWindow.xaml</DependentUpon>
</Compile>
<Compile Include="ErrorHandling.cs" />
<Compile Include="Windows\GlobalSettingsControl.xaml.cs">
<Compile Include="UserControls\GlobalSettingsControl.xaml.cs">
<DependentUpon>GlobalSettingsControl.xaml</DependentUpon>
</Compile>
<Compile Include="Lib\Model\NPCReplacement.cs" />
@ -307,7 +308,7 @@
<Compile Include="Windows\RCONWindow.xaml.cs">
<DependentUpon>RCONWindow.xaml</DependentUpon>
</Compile>
<Compile Include="Windows\ServerSettingsControl.xaml.cs">
<Compile Include="UserControls\ServerSettingsControl.xaml.cs">
<DependentUpon>ServerSettingsControl.xaml</DependentUpon>
</Compile>
<Compile Include="Lib\ServerStatusWatcher.cs" />
@ -491,7 +492,7 @@
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="Windows\GlobalSettingsControl.xaml">
<Page Include="UserControls\GlobalSettingsControl.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
@ -520,7 +521,7 @@
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="Windows\ServerSettingsControl.xaml">
<Page Include="UserControls\ServerSettingsControl.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>

View file

@ -1638,14 +1638,18 @@
<sys:String x:Key="ServerSettings_TamedDinoPerLevelStatAddMultipliersLabel">Per-Level Stat Multipliers (Tamed) - Add</sys:String>
<sys:String x:Key="ServerSettings_TamedDinoPerLevelStatAffinityMultipliersLabel">Per-Level Stat Multipliers (Tamed) - Affinity</sys:String>
<sys:String x:Key="ServerSettings_WildDinoPerLevelStatMultipliersLabel">Per-Level Stat Multipliers (Wild)</sys:String>
<sys:String x:Key="ServerSettings_DinoWildMutagenLevelBoostLabel">Mutagen Level Boost (Wild)</sys:String>
<sys:String x:Key="ServerSettings_DinoBredMutagenLevelBoostLabel">Mutagen Level Boost (Bred)</sys:String>
<sys:String x:Key="ServerSettings_DinoBreedingMultipliersLabel">Dino Breeding Multipliers</sys:String>
<sys:String x:Key="ServerSettings_BaseStatMultipliersTooltip">If enabled, allows scale factors to be applied to each base stat.</sys:String>
<sys:String x:Key="ServerSettings_PerLevelStatMultipliersTooltip">If enabled, allows scale factors to be applied to each stat.</sys:String>
<sys:String x:Key="ServerSettings_PerLevelStatTamedAddMultipliersTooltip">If enabled, allows scale factors to be applied to the Taming Addition for each stat.</sys:String>
<sys:String x:Key="ServerSettings_PerLevelStatTamedAffinityMultipliersTooltip">If enabled, allows scale factors to be applied to the Taming Multiplier for each stat.</sys:String>
<sys:String x:Key="ServerSettings_PerLevelStatTamedMultipliersTooltip">If enabled, allows scale factors to be applied to the Tamed Stat Increase for each stat.</sys:String>
<sys:String x:Key="ServerSettings_ResetPerLevelStatMultipliersTooltip">Reset all multipliers back to defaults.</sys:String>
<sys:String x:Key="ServerSettings_ResetBaseStatMultipliersTooltip">Reset all multipliers back to defaults.</sys:String>
<sys:String x:Key="ServerSettings_DinoWildMutagenLevelBoostTooltip">If enabled, allows scale factors to be applied to the Number of levels Mutagen adds to tames with wild ancestry.</sys:String>
<sys:String x:Key="ServerSettings_DinoBredMutagenLevelBoostTooltip">If enabled, allows scale factors to be applied to the Number of levels Mutagen adds to tames with bred ancestry.</sys:String>
<sys:String x:Key="ServerSettings_ResetPerLevelStatMultipliersTooltip">Reset all values back to defaults.</sys:String>
<sys:String x:Key="ServerSettings_ResetBaseStatMultipliersTooltip">Reset all values back to defaults.</sys:String>
<sys:String x:Key="ServerSettings_MatingIntervalLabel">Mating Interval:</sys:String>
<sys:String x:Key="ServerSettings_MatingIntervalTooltip">Specifies the multiplier for time between tamed dino mating. Lower values decrease the time between mating.</sys:String>

View file

@ -322,6 +322,16 @@ namespace ServerManagerTool.Lib
return new float[] { 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f };
}
internal static IEnumerable<int> GetPerLevelMutagenLevelBoost_DinoWild()
{
return new int[] { 5, 5, 0, 0, 0, 0, 0, 5, 5, 0, 0, 0 };
}
internal static IEnumerable<int> GetPerLevelMutagenLevelBoost_DinoTamed()
{
return new int[] { 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 };
}
internal static bool[] GetStatMultiplierInclusions_DinoWildPerLevel()
{
return new bool[] { true, true, false, true, true, false, true, true, true, true, false, true };
@ -351,6 +361,16 @@ namespace ServerManagerTool.Lib
{
return new bool[] { true, true, false, true, true, true, true, true, true, true, true, true };
}
internal static bool[] GetMutagenLevelBoostInclusions_DinoWild()
{
return new bool[] { true, true, true, true, true, true, true, true, true, true, true, true };
}
internal static bool[] GetMutagenLevelBoostInclusions_DinoTamed()
{
return new bool[] { true, true, true, true, true, true, true, true, true, true, true, true };
}
#endregion
#region Levels

View file

@ -5,29 +5,29 @@ using System.Linq;
namespace ServerManagerTool.Lib.Model
{
public class StatsMultiplierArray : FloatIniValueArray
public class StatsMultiplierFloatArray : FloatIniValueArray
{
protected StatsMultiplierArray(string iniKeyName, Func<IEnumerable<float>> resetFunc, bool[] inclusions)
protected StatsMultiplierFloatArray(string iniKeyName, Func<IEnumerable<float>> resetFunc, bool[] inclusions)
: base(iniKeyName, resetFunc)
{
Inclusions = inclusions;
}
public StatsMultiplierArray(string iniKeyName, Func<IEnumerable<float>> resetFunc, bool[] inclusions, bool onlyWriteNonDefaults)
public StatsMultiplierFloatArray(string iniKeyName, Func<IEnumerable<float>> resetFunc, bool[] inclusions, bool onlyWriteNonDefaults)
: base(iniKeyName, resetFunc)
{
Inclusions = inclusions;
if (onlyWriteNonDefaults && resetFunc != null)
{
DefaultValues = new StatsMultiplierArray(iniKeyName, null, inclusions);
DefaultValues = new StatsMultiplierFloatArray(iniKeyName, null, inclusions);
DefaultValues.AddRange(resetFunc());
}
}
public bool[] Inclusions { get; private set; } = null;
private StatsMultiplierArray DefaultValues { get; set; } = null;
private StatsMultiplierFloatArray DefaultValues { get; set; } = null;
public override void FromIniValues(IEnumerable<string> values)
{

View file

@ -0,0 +1,88 @@
using ServerManagerTool.Common.Model;
using System;
using System.Collections.Generic;
using System.Linq;
namespace ServerManagerTool.Lib.Model
{
public class StatsMultiplierIntegerArray : IntegerIniValueArray
{
protected StatsMultiplierIntegerArray(string iniKeyName, Func<IEnumerable<int>> resetFunc, bool[] inclusions)
: base(iniKeyName, resetFunc)
{
Inclusions = inclusions;
}
public StatsMultiplierIntegerArray(string iniKeyName, Func<IEnumerable<int>> resetFunc, bool[] inclusions, bool onlyWriteNonDefaults)
: base(iniKeyName, resetFunc)
{
Inclusions = inclusions;
if (onlyWriteNonDefaults && resetFunc != null)
{
DefaultValues = new StatsMultiplierIntegerArray(iniKeyName, null, inclusions);
DefaultValues.AddRange(resetFunc());
}
}
public bool[] Inclusions { get; private set; } = null;
private StatsMultiplierIntegerArray DefaultValues { get; set; } = null;
public override void FromIniValues(IEnumerable<string> values)
{
this.Clear();
var list = new List<int>();
if (this.ResetFunc != null)
list.AddRange(this.ResetFunc());
foreach (var v in values)
{
var indexStart = v.IndexOf('[');
var indexEnd = v.IndexOf(']');
if (indexStart >= indexEnd)
{
// Invalid format
continue;
}
if (!int.TryParse(v.Substring(indexStart + 1, indexEnd - indexStart - 1), out int index))
{
// Invalid index
continue;
}
if (index >= list.Count)
{
// Unexpected size
continue;
}
list[index] = this.FromIniValue(v.Substring(v.IndexOf('=') + 1).Trim());
this.IsEnabled = true;
}
this.AddRange(list);
}
public override IEnumerable<string> ToIniValues()
{
var values = new List<string>();
for (var i = 0; i < this.Count; i++)
{
if (!(Inclusions?.ElementAtOrDefault(i) ?? true))
continue;
if (DefaultValues != null && Equals(DefaultValues[i], this[i]))
continue;
if (string.IsNullOrWhiteSpace(IniCollectionKey))
values.Add(this.ToIniValue(this[i]));
else
values.Add($"{this.IniCollectionKey}[{i}]={this.ToIniValue(this[i])}");
}
return values;
}
}
}

View file

@ -78,12 +78,14 @@ namespace ServerManagerTool.Lib
this.DinoLevels = new LevelList();
this.PlayerLevels = new LevelList();
this.PlayerBaseStatMultipliers = new StatsMultiplierArray(nameof(PlayerBaseStatMultipliers), GameData.GetBaseStatMultipliers_Player, GameData.GetStatMultiplierInclusions_PlayerBase(), true);
this.PerLevelStatsMultiplier_Player = new StatsMultiplierArray(nameof(PerLevelStatsMultiplier_Player), GameData.GetPerLevelStatsMultipliers_Player, GameData.GetStatMultiplierInclusions_PlayerPerLevel(), true);
this.PerLevelStatsMultiplier_DinoWild = new StatsMultiplierArray(nameof(PerLevelStatsMultiplier_DinoWild), GameData.GetPerLevelStatsMultipliers_DinoWild, GameData.GetStatMultiplierInclusions_DinoWildPerLevel(), true);
this.PerLevelStatsMultiplier_DinoTamed = new StatsMultiplierArray(nameof(PerLevelStatsMultiplier_DinoTamed), GameData.GetPerLevelStatsMultipliers_DinoTamed, GameData.GetStatMultiplierInclusions_DinoTamedPerLevel(), true);
this.PerLevelStatsMultiplier_DinoTamed_Add = new StatsMultiplierArray(nameof(PerLevelStatsMultiplier_DinoTamed_Add), GameData.GetPerLevelStatsMultipliers_DinoTamedAdd, GameData.GetStatMultiplierInclusions_DinoTamedAdd(), true);
this.PerLevelStatsMultiplier_DinoTamed_Affinity = new StatsMultiplierArray(nameof(PerLevelStatsMultiplier_DinoTamed_Affinity), GameData.GetPerLevelStatsMultipliers_DinoTamedAffinity, GameData.GetStatMultiplierInclusions_DinoTamedAffinity(), true);
this.PlayerBaseStatMultipliers = new StatsMultiplierFloatArray(nameof(PlayerBaseStatMultipliers), GameData.GetBaseStatMultipliers_Player, GameData.GetStatMultiplierInclusions_PlayerBase(), true);
this.PerLevelStatsMultiplier_Player = new StatsMultiplierFloatArray(nameof(PerLevelStatsMultiplier_Player), GameData.GetPerLevelStatsMultipliers_Player, GameData.GetStatMultiplierInclusions_PlayerPerLevel(), true);
this.PerLevelStatsMultiplier_DinoWild = new StatsMultiplierFloatArray(nameof(PerLevelStatsMultiplier_DinoWild), GameData.GetPerLevelStatsMultipliers_DinoWild, GameData.GetStatMultiplierInclusions_DinoWildPerLevel(), true);
this.PerLevelStatsMultiplier_DinoTamed = new StatsMultiplierFloatArray(nameof(PerLevelStatsMultiplier_DinoTamed), GameData.GetPerLevelStatsMultipliers_DinoTamed, GameData.GetStatMultiplierInclusions_DinoTamedPerLevel(), true);
this.PerLevelStatsMultiplier_DinoTamed_Add = new StatsMultiplierFloatArray(nameof(PerLevelStatsMultiplier_DinoTamed_Add), GameData.GetPerLevelStatsMultipliers_DinoTamedAdd, GameData.GetStatMultiplierInclusions_DinoTamedAdd(), true);
this.PerLevelStatsMultiplier_DinoTamed_Affinity = new StatsMultiplierFloatArray(nameof(PerLevelStatsMultiplier_DinoTamed_Affinity), GameData.GetPerLevelStatsMultipliers_DinoTamedAffinity, GameData.GetStatMultiplierInclusions_DinoTamedAffinity(), true);
this.MutagenLevelBoost = new StatsMultiplierIntegerArray(nameof(MutagenLevelBoost), GameData.GetPerLevelMutagenLevelBoost_DinoWild, GameData.GetMutagenLevelBoostInclusions_DinoWild(), true);
this.MutagenLevelBoostBred = new StatsMultiplierIntegerArray(nameof(MutagenLevelBoostBred), GameData.GetPerLevelMutagenLevelBoost_DinoTamed, GameData.GetMutagenLevelBoostInclusions_DinoTamed(), true);
this.HarvestResourceItemAmountClassMultipliers = new ResourceClassMultiplierList(nameof(HarvestResourceItemAmountClassMultipliers), GameData.GetResourceMultipliers);
@ -2046,19 +2048,19 @@ namespace ServerManagerTool.Lib
public static readonly DependencyProperty PlayerBaseStatMultipliersProperty = DependencyProperty.Register(nameof(PlayerBaseStatMultipliers), typeof(StatsMultiplierArray), typeof(ServerProfile), new PropertyMetadata(null));
public static readonly DependencyProperty PlayerBaseStatMultipliersProperty = DependencyProperty.Register(nameof(PlayerBaseStatMultipliers), typeof(StatsMultiplierFloatArray), typeof(ServerProfile), new PropertyMetadata(null));
[IniFileEntry(IniFiles.Game, IniSections.Game_ShooterGameMode, ServerProfileCategory.Players)]
public StatsMultiplierArray PlayerBaseStatMultipliers
public StatsMultiplierFloatArray PlayerBaseStatMultipliers
{
get { return (StatsMultiplierArray)GetValue(PlayerBaseStatMultipliersProperty); }
get { return (StatsMultiplierFloatArray)GetValue(PlayerBaseStatMultipliersProperty); }
set { SetValue(PlayerBaseStatMultipliersProperty, value); }
}
public static readonly DependencyProperty PerLevelStatsMultiplier_PlayerProperty = DependencyProperty.Register(nameof(PerLevelStatsMultiplier_Player), typeof(StatsMultiplierArray), typeof(ServerProfile), new PropertyMetadata(null));
public static readonly DependencyProperty PerLevelStatsMultiplier_PlayerProperty = DependencyProperty.Register(nameof(PerLevelStatsMultiplier_Player), typeof(StatsMultiplierFloatArray), typeof(ServerProfile), new PropertyMetadata(null));
[IniFileEntry(IniFiles.Game, IniSections.Game_ShooterGameMode, ServerProfileCategory.Players)]
public StatsMultiplierArray PerLevelStatsMultiplier_Player
public StatsMultiplierFloatArray PerLevelStatsMultiplier_Player
{
get { return (StatsMultiplierArray)GetValue(PerLevelStatsMultiplier_PlayerProperty); }
get { return (StatsMultiplierFloatArray)GetValue(PerLevelStatsMultiplier_PlayerProperty); }
set { SetValue(PerLevelStatsMultiplier_PlayerProperty, value); }
}
#endregion
@ -2431,38 +2433,54 @@ namespace ServerManagerTool.Lib
set { SetValue(PassiveTameIntervalMultiplierProperty, value); }
}
public static readonly DependencyProperty PerLevelStatsMultiplier_DinoWildProperty = DependencyProperty.Register(nameof(PerLevelStatsMultiplier_DinoWild), typeof(StatsMultiplierArray), typeof(ServerProfile), new PropertyMetadata(null));
public static readonly DependencyProperty PerLevelStatsMultiplier_DinoWildProperty = DependencyProperty.Register(nameof(PerLevelStatsMultiplier_DinoWild), typeof(StatsMultiplierFloatArray), typeof(ServerProfile), new PropertyMetadata(null));
[IniFileEntry(IniFiles.Game, IniSections.Game_ShooterGameMode, ServerProfileCategory.Dinos)]
public StatsMultiplierArray PerLevelStatsMultiplier_DinoWild
public StatsMultiplierFloatArray PerLevelStatsMultiplier_DinoWild
{
get { return (StatsMultiplierArray)GetValue(PerLevelStatsMultiplier_DinoWildProperty); }
get { return (StatsMultiplierFloatArray)GetValue(PerLevelStatsMultiplier_DinoWildProperty); }
set { SetValue(PerLevelStatsMultiplier_DinoWildProperty, value); }
}
public static readonly DependencyProperty PerLevelStatsMultiplier_DinoTamedProperty = DependencyProperty.Register(nameof(PerLevelStatsMultiplier_DinoTamed), typeof(StatsMultiplierArray), typeof(ServerProfile), new PropertyMetadata(null));
public static readonly DependencyProperty PerLevelStatsMultiplier_DinoTamedProperty = DependencyProperty.Register(nameof(PerLevelStatsMultiplier_DinoTamed), typeof(StatsMultiplierFloatArray), typeof(ServerProfile), new PropertyMetadata(null));
[IniFileEntry(IniFiles.Game, IniSections.Game_ShooterGameMode, ServerProfileCategory.Dinos)]
public StatsMultiplierArray PerLevelStatsMultiplier_DinoTamed
public StatsMultiplierFloatArray PerLevelStatsMultiplier_DinoTamed
{
get { return (StatsMultiplierArray)GetValue(PerLevelStatsMultiplier_DinoTamedProperty); }
get { return (StatsMultiplierFloatArray)GetValue(PerLevelStatsMultiplier_DinoTamedProperty); }
set { SetValue(PerLevelStatsMultiplier_DinoTamedProperty, value); }
}
public static readonly DependencyProperty PerLevelStatsMultiplier_DinoTamed_AddProperty = DependencyProperty.Register(nameof(PerLevelStatsMultiplier_DinoTamed_Add), typeof(StatsMultiplierArray), typeof(ServerProfile), new PropertyMetadata(null));
public static readonly DependencyProperty PerLevelStatsMultiplier_DinoTamed_AddProperty = DependencyProperty.Register(nameof(PerLevelStatsMultiplier_DinoTamed_Add), typeof(StatsMultiplierFloatArray), typeof(ServerProfile), new PropertyMetadata(null));
[IniFileEntry(IniFiles.Game, IniSections.Game_ShooterGameMode, ServerProfileCategory.Dinos)]
public StatsMultiplierArray PerLevelStatsMultiplier_DinoTamed_Add
public StatsMultiplierFloatArray PerLevelStatsMultiplier_DinoTamed_Add
{
get { return (StatsMultiplierArray)GetValue(PerLevelStatsMultiplier_DinoTamed_AddProperty); }
get { return (StatsMultiplierFloatArray)GetValue(PerLevelStatsMultiplier_DinoTamed_AddProperty); }
set { SetValue(PerLevelStatsMultiplier_DinoTamed_AddProperty, value); }
}
public static readonly DependencyProperty PerLevelStatsMultiplier_DinoTamed_AffinityProperty = DependencyProperty.Register(nameof(PerLevelStatsMultiplier_DinoTamed_Affinity), typeof(StatsMultiplierArray), typeof(ServerProfile), new PropertyMetadata(null));
public static readonly DependencyProperty PerLevelStatsMultiplier_DinoTamed_AffinityProperty = DependencyProperty.Register(nameof(PerLevelStatsMultiplier_DinoTamed_Affinity), typeof(StatsMultiplierFloatArray), typeof(ServerProfile), new PropertyMetadata(null));
[IniFileEntry(IniFiles.Game, IniSections.Game_ShooterGameMode, ServerProfileCategory.Dinos)]
public StatsMultiplierArray PerLevelStatsMultiplier_DinoTamed_Affinity
public StatsMultiplierFloatArray PerLevelStatsMultiplier_DinoTamed_Affinity
{
get { return (StatsMultiplierArray)GetValue(PerLevelStatsMultiplier_DinoTamed_AffinityProperty); }
get { return (StatsMultiplierFloatArray)GetValue(PerLevelStatsMultiplier_DinoTamed_AffinityProperty); }
set { SetValue(PerLevelStatsMultiplier_DinoTamed_AffinityProperty, value); }
}
public static readonly DependencyProperty MutagenLevelBoostProperty = DependencyProperty.Register(nameof(MutagenLevelBoost), typeof(StatsMultiplierIntegerArray), typeof(ServerProfile), new PropertyMetadata(null));
[IniFileEntry(IniFiles.Game, IniSections.Game_ShooterGameMode, ServerProfileCategory.Dinos)]
public StatsMultiplierIntegerArray MutagenLevelBoost
{
get { return (StatsMultiplierIntegerArray)GetValue(MutagenLevelBoostProperty); }
set { SetValue(MutagenLevelBoostProperty, value); }
}
public static readonly DependencyProperty MutagenLevelBoostBredProperty = DependencyProperty.Register(nameof(MutagenLevelBoostBred), typeof(StatsMultiplierIntegerArray), typeof(ServerProfile), new PropertyMetadata(null));
[IniFileEntry(IniFiles.Game, IniSections.Game_ShooterGameMode, ServerProfileCategory.Dinos)]
public StatsMultiplierIntegerArray MutagenLevelBoostBred
{
get { return (StatsMultiplierIntegerArray)GetValue(MutagenLevelBoostBredProperty); }
set { SetValue(MutagenLevelBoostBredProperty, value); }
}
public static readonly DependencyProperty DinoSpawnsProperty = DependencyProperty.Register(nameof(DinoSpawnWeightMultipliers), typeof(AggregateIniValueList<DinoSpawn>), typeof(ServerProfile), new PropertyMetadata(null));
[IniFileEntry(IniFiles.Game, IniSections.Game_ShooterGameMode, ServerProfileCategory.Dinos)]
public AggregateIniValueList<DinoSpawn> DinoSpawnWeightMultipliers
@ -3539,6 +3557,8 @@ namespace ServerManagerTool.Lib
settings.PerLevelStatsMultiplier_DinoTamed_Add.Reset();
settings.PerLevelStatsMultiplier_DinoTamed_Affinity.Reset();
settings.PerLevelStatsMultiplier_DinoWild.Reset();
settings.MutagenLevelBoost.Reset();
settings.MutagenLevelBoostBred.Reset();
settings.PerLevelStatsMultiplier_Player.Reset();
settings.PlayerBaseStatMultipliers.Reset();
settings.LoadServerFileAdministrators();
@ -5308,10 +5328,12 @@ namespace ServerManagerTool.Lib
this.ClearValue(TamedDinoTorporDrainMultiplierProperty);
this.ClearValue(PassiveTameIntervalMultiplierProperty);
this.PerLevelStatsMultiplier_DinoWild = new StatsMultiplierArray(nameof(PerLevelStatsMultiplier_DinoWild), GameData.GetPerLevelStatsMultipliers_DinoWild, GameData.GetStatMultiplierInclusions_DinoWildPerLevel(), true);
this.PerLevelStatsMultiplier_DinoTamed = new StatsMultiplierArray(nameof(PerLevelStatsMultiplier_DinoTamed), GameData.GetPerLevelStatsMultipliers_DinoTamed, GameData.GetStatMultiplierInclusions_DinoTamedPerLevel(), true);
this.PerLevelStatsMultiplier_DinoTamed_Add = new StatsMultiplierArray(nameof(PerLevelStatsMultiplier_DinoTamed_Add), GameData.GetPerLevelStatsMultipliers_DinoTamedAdd, GameData.GetStatMultiplierInclusions_DinoTamedAdd(), true);
this.PerLevelStatsMultiplier_DinoTamed_Affinity = new StatsMultiplierArray(nameof(PerLevelStatsMultiplier_DinoTamed_Affinity), GameData.GetPerLevelStatsMultipliers_DinoTamedAffinity, GameData.GetStatMultiplierInclusions_DinoTamedAffinity(), true);
this.PerLevelStatsMultiplier_DinoWild = new StatsMultiplierFloatArray(nameof(PerLevelStatsMultiplier_DinoWild), GameData.GetPerLevelStatsMultipliers_DinoWild, GameData.GetStatMultiplierInclusions_DinoWildPerLevel(), true);
this.PerLevelStatsMultiplier_DinoTamed = new StatsMultiplierFloatArray(nameof(PerLevelStatsMultiplier_DinoTamed), GameData.GetPerLevelStatsMultipliers_DinoTamed, GameData.GetStatMultiplierInclusions_DinoTamedPerLevel(), true);
this.PerLevelStatsMultiplier_DinoTamed_Add = new StatsMultiplierFloatArray(nameof(PerLevelStatsMultiplier_DinoTamed_Add), GameData.GetPerLevelStatsMultipliers_DinoTamedAdd, GameData.GetStatMultiplierInclusions_DinoTamedAdd(), true);
this.PerLevelStatsMultiplier_DinoTamed_Affinity = new StatsMultiplierFloatArray(nameof(PerLevelStatsMultiplier_DinoTamed_Affinity), GameData.GetPerLevelStatsMultipliers_DinoTamedAffinity, GameData.GetStatMultiplierInclusions_DinoTamedAffinity(), true);
this.MutagenLevelBoost = new StatsMultiplierIntegerArray(nameof(MutagenLevelBoost), GameData.GetPerLevelMutagenLevelBoost_DinoWild, GameData.GetMutagenLevelBoostInclusions_DinoWild(), true);
this.MutagenLevelBoostBred = new StatsMultiplierIntegerArray(nameof(MutagenLevelBoostBred), GameData.GetPerLevelMutagenLevelBoost_DinoTamed, GameData.GetMutagenLevelBoostInclusions_DinoTamed(), true);
this.DinoSpawnWeightMultipliers = new AggregateIniValueList<DinoSpawn>(nameof(DinoSpawnWeightMultipliers), GameData.GetDinoSpawns);
this.PreventDinoTameClassNames = new StringIniValueList(nameof(PreventDinoTameClassNames), () => new string[0]);
@ -5424,8 +5446,8 @@ namespace ServerManagerTool.Lib
this.ClearValue(CraftingSkillBonusMultiplierProperty);
this.ClearValue(MaxFallSpeedMultiplierProperty);
this.PlayerBaseStatMultipliers = new StatsMultiplierArray(nameof(PlayerBaseStatMultipliers), GameData.GetBaseStatMultipliers_Player, GameData.GetStatMultiplierInclusions_PlayerBase(), true);
this.PerLevelStatsMultiplier_Player = new StatsMultiplierArray(nameof(PerLevelStatsMultiplier_Player), GameData.GetPerLevelStatsMultipliers_Player, GameData.GetStatMultiplierInclusions_PlayerPerLevel(), true);
this.PlayerBaseStatMultipliers = new StatsMultiplierFloatArray(nameof(PlayerBaseStatMultipliers), GameData.GetBaseStatMultipliers_Player, GameData.GetStatMultiplierInclusions_PlayerBase(), true);
this.PerLevelStatsMultiplier_Player = new StatsMultiplierFloatArray(nameof(PerLevelStatsMultiplier_Player), GameData.GetPerLevelStatsMultipliers_Player, GameData.GetStatMultiplierInclusions_PlayerPerLevel(), true);
}
public void ResetPreventTransferOverridesSection()
@ -5934,22 +5956,30 @@ namespace ServerManagerTool.Lib
this.SetValue(TamedDinoTorporDrainMultiplierProperty, sourceProfile.TamedDinoTorporDrainMultiplier);
this.SetValue(PassiveTameIntervalMultiplierProperty, sourceProfile.PassiveTameIntervalMultiplier);
this.PerLevelStatsMultiplier_DinoWild = new StatsMultiplierArray(nameof(PerLevelStatsMultiplier_DinoWild), GameData.GetPerLevelStatsMultipliers_DinoWild, GameData.GetStatMultiplierInclusions_DinoWildPerLevel(), true);
this.PerLevelStatsMultiplier_DinoWild = new StatsMultiplierFloatArray(nameof(PerLevelStatsMultiplier_DinoWild), GameData.GetPerLevelStatsMultipliers_DinoWild, GameData.GetStatMultiplierInclusions_DinoWildPerLevel(), true);
this.PerLevelStatsMultiplier_DinoWild.FromIniValues(sourceProfile.PerLevelStatsMultiplier_DinoWild.ToIniValues());
this.PerLevelStatsMultiplier_DinoWild.IsEnabled = sourceProfile.PerLevelStatsMultiplier_DinoWild.IsEnabled;
this.PerLevelStatsMultiplier_DinoTamed = new StatsMultiplierArray(nameof(PerLevelStatsMultiplier_DinoTamed), GameData.GetPerLevelStatsMultipliers_DinoTamed, GameData.GetStatMultiplierInclusions_DinoTamedPerLevel(), true);
this.PerLevelStatsMultiplier_DinoTamed = new StatsMultiplierFloatArray(nameof(PerLevelStatsMultiplier_DinoTamed), GameData.GetPerLevelStatsMultipliers_DinoTamed, GameData.GetStatMultiplierInclusions_DinoTamedPerLevel(), true);
this.PerLevelStatsMultiplier_DinoTamed.FromIniValues(sourceProfile.PerLevelStatsMultiplier_DinoTamed.ToIniValues());
this.PerLevelStatsMultiplier_DinoTamed.IsEnabled = sourceProfile.PerLevelStatsMultiplier_DinoTamed.IsEnabled;
this.PerLevelStatsMultiplier_DinoTamed_Add = new StatsMultiplierArray(nameof(PerLevelStatsMultiplier_DinoTamed_Add), GameData.GetPerLevelStatsMultipliers_DinoTamedAdd, GameData.GetStatMultiplierInclusions_DinoTamedAdd(), true);
this.PerLevelStatsMultiplier_DinoTamed_Add = new StatsMultiplierFloatArray(nameof(PerLevelStatsMultiplier_DinoTamed_Add), GameData.GetPerLevelStatsMultipliers_DinoTamedAdd, GameData.GetStatMultiplierInclusions_DinoTamedAdd(), true);
this.PerLevelStatsMultiplier_DinoTamed_Add.FromIniValues(sourceProfile.PerLevelStatsMultiplier_DinoTamed_Add.ToIniValues());
this.PerLevelStatsMultiplier_DinoTamed_Add.IsEnabled = sourceProfile.PerLevelStatsMultiplier_DinoTamed_Add.IsEnabled;
this.PerLevelStatsMultiplier_DinoTamed_Affinity = new StatsMultiplierArray(nameof(PerLevelStatsMultiplier_DinoTamed_Affinity), GameData.GetPerLevelStatsMultipliers_DinoTamedAffinity, GameData.GetStatMultiplierInclusions_DinoTamedAffinity(), true);
this.PerLevelStatsMultiplier_DinoTamed_Affinity = new StatsMultiplierFloatArray(nameof(PerLevelStatsMultiplier_DinoTamed_Affinity), GameData.GetPerLevelStatsMultipliers_DinoTamedAffinity, GameData.GetStatMultiplierInclusions_DinoTamedAffinity(), true);
this.PerLevelStatsMultiplier_DinoTamed_Affinity.FromIniValues(sourceProfile.PerLevelStatsMultiplier_DinoTamed_Affinity.ToIniValues());
this.PerLevelStatsMultiplier_DinoTamed_Affinity.IsEnabled = sourceProfile.PerLevelStatsMultiplier_DinoTamed_Affinity.IsEnabled;
this.MutagenLevelBoost = new StatsMultiplierIntegerArray(nameof(MutagenLevelBoost), GameData.GetPerLevelMutagenLevelBoost_DinoWild, GameData.GetMutagenLevelBoostInclusions_DinoWild(), true);
this.MutagenLevelBoost.FromIniValues(sourceProfile.MutagenLevelBoost.ToIniValues());
this.MutagenLevelBoost.IsEnabled = sourceProfile.MutagenLevelBoost.IsEnabled;
this.MutagenLevelBoostBred = new StatsMultiplierIntegerArray(nameof(MutagenLevelBoostBred), GameData.GetPerLevelMutagenLevelBoost_DinoTamed, GameData.GetMutagenLevelBoostInclusions_DinoTamed(), true);
this.MutagenLevelBoostBred.FromIniValues(sourceProfile.MutagenLevelBoostBred.ToIniValues());
this.MutagenLevelBoostBred.IsEnabled = sourceProfile.MutagenLevelBoostBred.IsEnabled;
sourceProfile.DinoSettings.RenderToModel();
this.DinoSpawnWeightMultipliers.Clear();

View file

@ -2874,6 +2874,75 @@
</Grid>
</GroupBox>
<GroupBox Style="{StaticResource GroupBoxStyle}">
<GroupBox.Header>
<StackPanel Orientation="Horizontal">
<CheckBox x:Name="EnableWildDinoMutagenLevelBoostCheckbox" Content="{DynamicResource ServerSettings_DinoWildMutagenLevelBoostLabel}" IsChecked="{Binding MutagenLevelBoost.IsEnabled}" Margin="0,5,5,5" ToolTip="{DynamicResource ServerSettings_DinoWildMutagenLevelBoostTooltip}"/>
<Button Width="22" Height="22" Margin="20,0,0,0" IsEnabled="{Binding ElementName=EnableWildDinoMutagenLevelBoostCheckbox, Path=IsChecked}" Command="{Binding ResetActionCommand, ElementName=SettingsControl}" CommandParameter="{x:Static local:ServerSettingsResetAction.DinoWildMutagenLevelBoost}" ToolTip="{DynamicResource ServerSettings_ResetPerLevelStatMultipliersTooltip}" Style="{StaticResource ButtonStyle1}">
<Image Source="{com:Icon Path=/Ark Server Manager;component/Art/Refresh.ico,Size=32}"/>
</Button>
</StackPanel>
</GroupBox.Header>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<StackPanel Grid.Column="0">
<cctl:AnnotatedSlider Margin="1" Label="{DynamicResource ServerSettings_StatHealthLabel}" Value="{Binding MutagenLevelBoost[0]}" Suffix="{DynamicResource SliderUnits_Levels}" SuffixRelativeWidth="Auto" Minimum="0" Maximum="100" SmallChange="1" LargeChange="1" TickFrequency="1" IsEnabled="{Binding ElementName=EnableWildDinoMutagenLevelBoostCheckbox, Path=IsChecked}" ToolTip="{DynamicResource ServerSettings_StatHealthTooltip}" Visibility="{Binding MutagenLevelBoost.Inclusions[0], Converter={StaticResource BooleanToVisibilityConverter}}"/>
<cctl:AnnotatedSlider Margin="1" Label="{DynamicResource ServerSettings_StatStaminaLabel}" Value="{Binding MutagenLevelBoost[1]}" Suffix="{DynamicResource SliderUnits_Levels}" SuffixRelativeWidth="Auto" Minimum="0" Maximum="100" SmallChange="1" LargeChange="1" TickFrequency="1" IsEnabled="{Binding ElementName=EnableWildDinoMutagenLevelBoostCheckbox, Path=IsChecked}" ToolTip="{DynamicResource ServerSettings_StatStaminaTooltip}" Visibility="{Binding MutagenLevelBoost.Inclusions[1], Converter={StaticResource BooleanToVisibilityConverter}}"/>
<cctl:AnnotatedSlider Margin="1" Label="{DynamicResource ServerSettings_StatTorpidityLabel}" Value="{Binding MutagenLevelBoost[2]}" Suffix="{DynamicResource SliderUnits_Levels}" SuffixRelativeWidth="Auto" Minimum="0" Maximum="100" SmallChange="1" LargeChange="1" TickFrequency="1" IsEnabled="{Binding ElementName=EnableWildDinoMutagenLevelBoostCheckbox, Path=IsChecked}" ToolTip="{DynamicResource ServerSettings_StatTorpidityTooltip}" Visibility="{Binding MutagenLevelBoost.Inclusions[2], Converter={StaticResource BooleanToVisibilityConverter}}"/>
<cctl:AnnotatedSlider Margin="1" Label="{DynamicResource ServerSettings_StatOxygenLabel}" Value="{Binding MutagenLevelBoost[3]}" Suffix="{DynamicResource SliderUnits_Levels}" SuffixRelativeWidth="Auto" Minimum="0" Maximum="100" SmallChange="1" LargeChange="1" TickFrequency="1" IsEnabled="{Binding ElementName=EnableWildDinoMutagenLevelBoostCheckbox, Path=IsChecked}" ToolTip="{DynamicResource ServerSettings_StatOxygenTooltip}" Visibility="{Binding MutagenLevelBoost.Inclusions[3], Converter={StaticResource BooleanToVisibilityConverter}}"/>
<cctl:AnnotatedSlider Margin="1" Label="{DynamicResource ServerSettings_StatFoodLabel}" Value="{Binding MutagenLevelBoost[4]}" Suffix="{DynamicResource SliderUnits_Levels}" SuffixRelativeWidth="Auto" Minimum="0" Maximum="100" SmallChange="1" LargeChange="1" TickFrequency="1" IsEnabled="{Binding ElementName=EnableWildDinoMutagenLevelBoostCheckbox, Path=IsChecked}" ToolTip="{DynamicResource ServerSettings_StatFoodTooltip}" Visibility="{Binding MutagenLevelBoost.Inclusions[4], Converter={StaticResource BooleanToVisibilityConverter}}"/>
<cctl:AnnotatedSlider Margin="1" Label="{DynamicResource ServerSettings_StatWaterLabel}" Value="{Binding MutagenLevelBoost[5]}" Suffix="{DynamicResource SliderUnits_Levels}" SuffixRelativeWidth="Auto" Minimum="0" Maximum="100" SmallChange="1" LargeChange="1" TickFrequency="1" IsEnabled="{Binding ElementName=EnableWildDinoMutagenLevelBoostCheckbox, Path=IsChecked}" ToolTip="{DynamicResource ServerSettings_StatWaterTooltip}" Visibility="{Binding MutagenLevelBoost.Inclusions[5], Converter={StaticResource BooleanToVisibilityConverter}}"/>
</StackPanel>
<StackPanel Grid.Column="1">
<cctl:AnnotatedSlider Margin="1" Label="{DynamicResource ServerSettings_StatTempLabel}" Value="{Binding MutagenLevelBoost[6]}" Suffix="{DynamicResource SliderUnits_Levels}" SuffixRelativeWidth="Auto" Minimum="0" Maximum="100" SmallChange="1" LargeChange="1" TickFrequency="1" IsEnabled="{Binding ElementName=EnableWildDinoMutagenLevelBoostCheckbox, Path=IsChecked}" ToolTip="{DynamicResource ServerSettings_StatTempTooltip}" Visibility="{Binding MutagenLevelBoost.Inclusions[6], Converter={StaticResource BooleanToVisibilityConverter}}"/>
<cctl:AnnotatedSlider Margin="1" Label="{DynamicResource ServerSettings_StatWeightLabel}" Value="{Binding MutagenLevelBoost[7]}" Suffix="{DynamicResource SliderUnits_Levels}" SuffixRelativeWidth="Auto" Minimum="0" Maximum="100" SmallChange="1" LargeChange="1" TickFrequency="1" IsEnabled="{Binding ElementName=EnableWildDinoMutagenLevelBoostCheckbox, Path=IsChecked}" ToolTip="{DynamicResource ServerSettings_StatWeightTooltip}" Visibility="{Binding MutagenLevelBoost.Inclusions[7], Converter={StaticResource BooleanToVisibilityConverter}}"/>
<cctl:AnnotatedSlider Margin="1" Label="{DynamicResource ServerSettings_StatDamageLabel}" Value="{Binding MutagenLevelBoost[8]}" Suffix="{DynamicResource SliderUnits_Levels}" SuffixRelativeWidth="Auto" Minimum="0" Maximum="100" SmallChange="1" LargeChange="1" TickFrequency="1" IsEnabled="{Binding ElementName=EnableWildDinoMutagenLevelBoostCheckbox, Path=IsChecked}" ToolTip="{DynamicResource ServerSettings_StatDamageTooltip}" Visibility="{Binding MutagenLevelBoost.Inclusions[8], Converter={StaticResource BooleanToVisibilityConverter}}"/>
<cctl:AnnotatedSlider Margin="1" Label="{DynamicResource ServerSettings_StatSpeedLabel}" Value="{Binding MutagenLevelBoost[9]}" Suffix="{DynamicResource SliderUnits_Levels}" SuffixRelativeWidth="Auto" Minimum="0" Maximum="100" SmallChange="1" LargeChange="1" TickFrequency="1" IsEnabled="{Binding ElementName=EnableWildDinoMutagenLevelBoostCheckbox, Path=IsChecked}" ToolTip="{DynamicResource ServerSettings_StatSpeedTooltip}" Visibility="{Binding MutagenLevelBoost.Inclusions[9], Converter={StaticResource BooleanToVisibilityConverter}}"/>
<cctl:AnnotatedSlider Margin="1" Label="{DynamicResource ServerSettings_StatFortitudeLabel}" Value="{Binding MutagenLevelBoost[10]}" Suffix="{DynamicResource SliderUnits_Levels}" SuffixRelativeWidth="Auto" Minimum="0" Maximum="100" SmallChange="1" LargeChange="1" TickFrequency="1" IsEnabled="{Binding ElementName=EnableWildDinoMutagenLevelBoostCheckbox, Path=IsChecked}" ToolTip="{DynamicResource ServerSettings_StatFortitudeTooltip}" Visibility="{Binding MutagenLevelBoost.Inclusions[10], Converter={StaticResource BooleanToVisibilityConverter}}"/>
<cctl:AnnotatedSlider Margin="1" Label="{DynamicResource ServerSettings_StatCraftingLabel}" Value="{Binding MutagenLevelBoost[11]}" Suffix="{DynamicResource SliderUnits_Levels}" SuffixRelativeWidth="Auto" Minimum="0" Maximum="100" SmallChange="1" LargeChange="1" TickFrequency="1" IsEnabled="{Binding ElementName=EnableWildDinoMutagenLevelBoostCheckbox, Path=IsChecked}" ToolTip="{DynamicResource ServerSettings_StatCraftingTooltip}" Visibility="{Binding MutagenLevelBoost.Inclusions[11], Converter={StaticResource BooleanToVisibilityConverter}}"/>
</StackPanel>
</Grid>
</GroupBox>
<GroupBox Style="{StaticResource GroupBoxStyle}">
<GroupBox.Header>
<StackPanel Orientation="Horizontal">
<CheckBox x:Name="EnableBredDinoMutagenLevelBoostCheckbox" Content="{DynamicResource ServerSettings_DinoBredMutagenLevelBoostLabel}" IsChecked="{Binding MutagenLevelBoostBred.IsEnabled}" Margin="0,5,5,5" ToolTip="{DynamicResource ServerSettings_DinoBredMutagenLevelBoostTooltip}"/>
<Button Width="22" Height="22" Margin="20,0,0,0" IsEnabled="{Binding ElementName=EnableBredDinoMutagenLevelBoostCheckbox, Path=IsChecked}" Command="{Binding ResetActionCommand, ElementName=SettingsControl}" CommandParameter="{x:Static local:ServerSettingsResetAction.DinoBredMutagenLevelBoost}" ToolTip="{DynamicResource ServerSettings_ResetPerLevelStatMultipliersTooltip}" Style="{StaticResource ButtonStyle1}">
<Image Source="{com:Icon Path=/Ark Server Manager;component/Art/Refresh.ico,Size=32}"/>
</Button>
</StackPanel>
</GroupBox.Header>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<StackPanel Grid.Column="0">
<cctl:AnnotatedSlider Margin="1" Label="{DynamicResource ServerSettings_StatHealthLabel}" Value="{Binding MutagenLevelBoostBred[0]}" Suffix="{DynamicResource SliderUnits_Levels}" SuffixRelativeWidth="Auto" Minimum="0" Maximum="100" SmallChange="1" LargeChange="1" TickFrequency="1" IsEnabled="{Binding ElementName=EnableBredDinoMutagenLevelBoostCheckbox, Path=IsChecked}" ToolTip="{DynamicResource ServerSettings_StatHealthTooltip}" Visibility="{Binding MutagenLevelBoostBred.Inclusions[0], Converter={StaticResource BooleanToVisibilityConverter}}"/>
<cctl:AnnotatedSlider Margin="1" Label="{DynamicResource ServerSettings_StatStaminaLabel}" Value="{Binding MutagenLevelBoostBred[1]}" Suffix="{DynamicResource SliderUnits_Levels}" SuffixRelativeWidth="Auto" Minimum="0" Maximum="100" SmallChange="1" LargeChange="1" TickFrequency="1" IsEnabled="{Binding ElementName=EnableBredDinoMutagenLevelBoostCheckbox, Path=IsChecked}" ToolTip="{DynamicResource ServerSettings_StatStaminaTooltip}" Visibility="{Binding MutagenLevelBoostBred.Inclusions[1], Converter={StaticResource BooleanToVisibilityConverter}}"/>
<cctl:AnnotatedSlider Margin="1" Label="{DynamicResource ServerSettings_StatTorpidityLabel}" Value="{Binding MutagenLevelBoostBred[2]}" Suffix="{DynamicResource SliderUnits_Levels}" SuffixRelativeWidth="Auto" Minimum="0" Maximum="100" SmallChange="1" LargeChange="1" TickFrequency="1" IsEnabled="{Binding ElementName=EnableBredDinoMutagenLevelBoostCheckbox, Path=IsChecked}" ToolTip="{DynamicResource ServerSettings_StatTorpidityTooltip}" Visibility="{Binding MutagenLevelBoostBred.Inclusions[2], Converter={StaticResource BooleanToVisibilityConverter}}"/>
<cctl:AnnotatedSlider Margin="1" Label="{DynamicResource ServerSettings_StatOxygenLabel}" Value="{Binding MutagenLevelBoostBred[3]}" Suffix="{DynamicResource SliderUnits_Levels}" SuffixRelativeWidth="Auto" Minimum="0" Maximum="100" SmallChange="1" LargeChange="1" TickFrequency="1" IsEnabled="{Binding ElementName=EnableBredDinoMutagenLevelBoostCheckbox, Path=IsChecked}" ToolTip="{DynamicResource ServerSettings_StatOxygenTooltip}" Visibility="{Binding MutagenLevelBoostBred.Inclusions[3], Converter={StaticResource BooleanToVisibilityConverter}}"/>
<cctl:AnnotatedSlider Margin="1" Label="{DynamicResource ServerSettings_StatFoodLabel}" Value="{Binding MutagenLevelBoostBred[4]}" Suffix="{DynamicResource SliderUnits_Levels}" SuffixRelativeWidth="Auto" Minimum="0" Maximum="100" SmallChange="1" LargeChange="1" TickFrequency="1" IsEnabled="{Binding ElementName=EnableBredDinoMutagenLevelBoostCheckbox, Path=IsChecked}" ToolTip="{DynamicResource ServerSettings_StatFoodTooltip}" Visibility="{Binding MutagenLevelBoostBred.Inclusions[4], Converter={StaticResource BooleanToVisibilityConverter}}"/>
<cctl:AnnotatedSlider Margin="1" Label="{DynamicResource ServerSettings_StatWaterLabel}" Value="{Binding MutagenLevelBoostBred[5]}" Suffix="{DynamicResource SliderUnits_Levels}" SuffixRelativeWidth="Auto" Minimum="0" Maximum="100" SmallChange="1" LargeChange="1" TickFrequency="1" IsEnabled="{Binding ElementName=EnableBredDinoMutagenLevelBoostCheckbox, Path=IsChecked}" ToolTip="{DynamicResource ServerSettings_StatWaterTooltip}" Visibility="{Binding MutagenLevelBoostBred.Inclusions[5], Converter={StaticResource BooleanToVisibilityConverter}}"/>
</StackPanel>
<StackPanel Grid.Column="1">
<cctl:AnnotatedSlider Margin="1" Label="{DynamicResource ServerSettings_StatTempLabel}" Value="{Binding MutagenLevelBoostBred[6]}" Suffix="{DynamicResource SliderUnits_Levels}" SuffixRelativeWidth="Auto" Minimum="0" Maximum="100" SmallChange="1" LargeChange="1" TickFrequency="1" IsEnabled="{Binding ElementName=EnableBredDinoMutagenLevelBoostCheckbox, Path=IsChecked}" ToolTip="{DynamicResource ServerSettings_StatTempTooltip}" Visibility="{Binding MutagenLevelBoostBred.Inclusions[6], Converter={StaticResource BooleanToVisibilityConverter}}"/>
<cctl:AnnotatedSlider Margin="1" Label="{DynamicResource ServerSettings_StatWeightLabel}" Value="{Binding MutagenLevelBoostBred[7]}" Suffix="{DynamicResource SliderUnits_Levels}" SuffixRelativeWidth="Auto" Minimum="0" Maximum="100" SmallChange="1" LargeChange="1" TickFrequency="1" IsEnabled="{Binding ElementName=EnableBredDinoMutagenLevelBoostCheckbox, Path=IsChecked}" ToolTip="{DynamicResource ServerSettings_StatWeightTooltip}" Visibility="{Binding MutagenLevelBoostBred.Inclusions[7], Converter={StaticResource BooleanToVisibilityConverter}}"/>
<cctl:AnnotatedSlider Margin="1" Label="{DynamicResource ServerSettings_StatDamageLabel}" Value="{Binding MutagenLevelBoostBred[8]}" Suffix="{DynamicResource SliderUnits_Levels}" SuffixRelativeWidth="Auto" Minimum="0" Maximum="100" SmallChange="1" LargeChange="1" TickFrequency="1" IsEnabled="{Binding ElementName=EnableBredDinoMutagenLevelBoostCheckbox, Path=IsChecked}" ToolTip="{DynamicResource ServerSettings_StatDamageTooltip}" Visibility="{Binding MutagenLevelBoostBred.Inclusions[8], Converter={StaticResource BooleanToVisibilityConverter}}"/>
<cctl:AnnotatedSlider Margin="1" Label="{DynamicResource ServerSettings_StatSpeedLabel}" Value="{Binding MutagenLevelBoostBred[9]}" Suffix="{DynamicResource SliderUnits_Levels}" SuffixRelativeWidth="Auto" Minimum="0" Maximum="100" SmallChange="1" LargeChange="1" TickFrequency="1" IsEnabled="{Binding ElementName=EnableBredDinoMutagenLevelBoostCheckbox, Path=IsChecked}" ToolTip="{DynamicResource ServerSettings_StatSpeedTooltip}" Visibility="{Binding MutagenLevelBoostBred.Inclusions[9], Converter={StaticResource BooleanToVisibilityConverter}}"/>
<cctl:AnnotatedSlider Margin="1" Label="{DynamicResource ServerSettings_StatFortitudeLabel}" Value="{Binding MutagenLevelBoostBred[10]}" Suffix="{DynamicResource SliderUnits_Levels}" SuffixRelativeWidth="Auto" Minimum="0" Maximum="100" SmallChange="1" LargeChange="1" TickFrequency="1" IsEnabled="{Binding ElementName=EnableBredDinoMutagenLevelBoostCheckbox, Path=IsChecked}" ToolTip="{DynamicResource ServerSettings_StatFortitudeTooltip}" Visibility="{Binding MutagenLevelBoostBred.Inclusions[10], Converter={StaticResource BooleanToVisibilityConverter}}"/>
<cctl:AnnotatedSlider Margin="1" Label="{DynamicResource ServerSettings_StatCraftingLabel}" Value="{Binding MutagenLevelBoostBred[11]}" Suffix="{DynamicResource SliderUnits_Levels}" SuffixRelativeWidth="Auto" Minimum="0" Maximum="100" SmallChange="1" LargeChange="1" TickFrequency="1" IsEnabled="{Binding ElementName=EnableBredDinoMutagenLevelBoostCheckbox, Path=IsChecked}" ToolTip="{DynamicResource ServerSettings_StatCraftingTooltip}" Visibility="{Binding MutagenLevelBoostBred.Inclusions[11], Converter={StaticResource BooleanToVisibilityConverter}}"/>
</StackPanel>
</Grid>
</GroupBox>
<GroupBox Style="{StaticResource GroupBoxStyle}">
<GroupBox.Header>
<Label Content="{DynamicResource ServerSettings_DinoBreedingMultipliersLabel}"/>

View file

@ -71,6 +71,8 @@ namespace ServerManagerTool
DinoTamedPerLevelStatMultipliers,
DinoTamedAddPerLevelStatMultipliers,
DinoTamedAffinityPerLevelStatMultipliers,
DinoWildMutagenLevelBoost,
DinoBredMutagenLevelBoost,
ItemStatClamps,
RCONWindowExtents,
ServerOptions,
@ -4127,6 +4129,14 @@ namespace ServerManagerTool
this.Settings.PerLevelStatsMultiplier_DinoTamed_Affinity.Reset();
break;
case ServerSettingsResetAction.DinoWildMutagenLevelBoost:
this.Settings.MutagenLevelBoost.Reset();
break;
case ServerSettingsResetAction.DinoBredMutagenLevelBoost:
this.Settings.MutagenLevelBoostBred.Reset();
break;
case ServerSettingsResetAction.ItemStatClamps:
break;

View file

@ -13,7 +13,7 @@ namespace ServerManagerTool.Common.Model
{
}
public override bool IsArray => false;
public override bool IsArray => true;
private static string ToIniValueInternal(int val)
{