mirror of
https://github.com/tribufu/ServerManagers
synced 2026-05-18 09:35:48 +00:00
Dino Settings code optimisations
This commit is contained in:
parent
cd9d36a51d
commit
9eb22da9e7
1 changed files with 98 additions and 85 deletions
|
|
@ -87,20 +87,24 @@ namespace ServerManagerTool.Lib.ViewModel
|
||||||
{
|
{
|
||||||
Reset();
|
Reset();
|
||||||
|
|
||||||
foreach(var entry in this.DinoSpawnWeightMultipliers)
|
foreach(var entry in this.DinoSpawnWeightMultipliers.Where(e => !string.IsNullOrWhiteSpace(e.DinoNameTag)))
|
||||||
{
|
{
|
||||||
if (string.IsNullOrWhiteSpace(entry.DinoNameTag))
|
if (this.Any(d => d.NameTag == entry.DinoNameTag))
|
||||||
continue;
|
|
||||||
|
|
||||||
var dinoSettings = this.Where(vi => vi.NameTag == entry.DinoNameTag).ToArray();
|
|
||||||
if (dinoSettings == null || dinoSettings.Length == 0)
|
|
||||||
{
|
{
|
||||||
this.Add(CreateDinoSetting(entry.DinoNameTag, entry.Mod, entry.KnownDino, true, false));
|
foreach (var dinoSetting in this.Where(d => d.NameTag == entry.DinoNameTag))
|
||||||
|
{
|
||||||
|
dinoSetting.SpawnWeightMultiplier = entry.SpawnWeightMultiplier;
|
||||||
|
dinoSetting.OverrideSpawnLimitPercentage = entry.OverrideSpawnLimitPercentage;
|
||||||
|
dinoSetting.SpawnLimitPercentage = entry.SpawnLimitPercentage;
|
||||||
|
|
||||||
|
dinoSetting.OriginalSpawnWeightMultiplier = entry.SpawnWeightMultiplier;
|
||||||
|
dinoSetting.OriginalOverrideSpawnLimitPercentage = entry.OverrideSpawnLimitPercentage;
|
||||||
|
dinoSetting.OriginalSpawnLimitPercentage = entry.SpawnLimitPercentage;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
dinoSettings = this.Where(vi => vi.NameTag == entry.DinoNameTag).ToArray();
|
|
||||||
foreach (var dinoSetting in dinoSettings)
|
|
||||||
{
|
{
|
||||||
|
var dinoSetting = CreateDinoSetting(entry.DinoNameTag, entry.Mod, entry.KnownDino, true, false);
|
||||||
dinoSetting.SpawnWeightMultiplier = entry.SpawnWeightMultiplier;
|
dinoSetting.SpawnWeightMultiplier = entry.SpawnWeightMultiplier;
|
||||||
dinoSetting.OverrideSpawnLimitPercentage = entry.OverrideSpawnLimitPercentage;
|
dinoSetting.OverrideSpawnLimitPercentage = entry.OverrideSpawnLimitPercentage;
|
||||||
dinoSetting.SpawnLimitPercentage = entry.SpawnLimitPercentage;
|
dinoSetting.SpawnLimitPercentage = entry.SpawnLimitPercentage;
|
||||||
|
|
@ -108,115 +112,118 @@ namespace ServerManagerTool.Lib.ViewModel
|
||||||
dinoSetting.OriginalSpawnWeightMultiplier = entry.SpawnWeightMultiplier;
|
dinoSetting.OriginalSpawnWeightMultiplier = entry.SpawnWeightMultiplier;
|
||||||
dinoSetting.OriginalOverrideSpawnLimitPercentage = entry.OverrideSpawnLimitPercentage;
|
dinoSetting.OriginalOverrideSpawnLimitPercentage = entry.OverrideSpawnLimitPercentage;
|
||||||
dinoSetting.OriginalSpawnLimitPercentage = entry.SpawnLimitPercentage;
|
dinoSetting.OriginalSpawnLimitPercentage = entry.SpawnLimitPercentage;
|
||||||
|
|
||||||
|
this.Add(dinoSetting);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach(var entry in this.PreventDinoTameClassNames)
|
foreach(var entry in this.PreventDinoTameClassNames.Where(e => !string.IsNullOrWhiteSpace(e)))
|
||||||
{
|
{
|
||||||
if (string.IsNullOrWhiteSpace(entry))
|
if (this.Any(d => d.ClassName == entry))
|
||||||
continue;
|
|
||||||
|
|
||||||
var dinoSettings = this.Where(vi => vi.ClassName == entry).ToArray();
|
|
||||||
if (dinoSettings == null || dinoSettings.Length == 0)
|
|
||||||
{
|
{
|
||||||
this.Add(CreateDinoSetting(entry, GameData.MOD_UNKNOWN, false, false, true));
|
foreach (var dinoSetting in this.Where(d => d.ClassName == entry && !d.CanTame))
|
||||||
|
{
|
||||||
|
dinoSetting.CanTame = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
dinoSettings = this.Where(vi => vi.ClassName == entry).ToArray();
|
|
||||||
foreach (var dinoSetting in dinoSettings)
|
|
||||||
{
|
{
|
||||||
|
var dinoSetting = CreateDinoSetting(entry, GameData.MOD_UNKNOWN, false, false, true);
|
||||||
dinoSetting.CanTame = false;
|
dinoSetting.CanTame = false;
|
||||||
|
|
||||||
|
this.Add(dinoSetting);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach(var entry in this.NpcReplacements)
|
foreach(var entry in this.NpcReplacements.Where(e => !string.IsNullOrWhiteSpace(e.FromClassName)))
|
||||||
{
|
{
|
||||||
if (string.IsNullOrWhiteSpace(entry.FromClassName))
|
if (this.Any(d => d.ClassName == entry.FromClassName))
|
||||||
continue;
|
|
||||||
|
|
||||||
var dinoSettings = this.Where(vi => vi.ClassName == entry.FromClassName).ToArray();
|
|
||||||
if (dinoSettings == null || dinoSettings.Length == 0)
|
|
||||||
{
|
{
|
||||||
this.Add(CreateDinoSetting(entry.FromClassName, GameData.MOD_UNKNOWN, false, false, true));
|
foreach (var dinoSetting in this.Where(d => d.ClassName == entry.FromClassName))
|
||||||
|
{
|
||||||
|
dinoSetting.CanSpawn = !string.IsNullOrWhiteSpace(entry.ToClassName);
|
||||||
|
dinoSetting.ReplacementClass = dinoSetting.CanSpawn ? entry.ToClassName : dinoSetting.ClassName;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
dinoSettings = this.Where(vi => vi.ClassName == entry.FromClassName).ToArray();
|
|
||||||
foreach (var dinoSetting in dinoSettings)
|
|
||||||
{
|
{
|
||||||
|
var dinoSetting = CreateDinoSetting(entry.FromClassName, GameData.MOD_UNKNOWN, false, false, true);
|
||||||
dinoSetting.CanSpawn = !string.IsNullOrWhiteSpace(entry.ToClassName);
|
dinoSetting.CanSpawn = !string.IsNullOrWhiteSpace(entry.ToClassName);
|
||||||
dinoSetting.ReplacementClass = dinoSetting.CanSpawn ? entry.ToClassName : dinoSetting.ClassName;
|
dinoSetting.ReplacementClass = dinoSetting.CanSpawn ? entry.ToClassName : dinoSetting.ClassName;
|
||||||
|
|
||||||
|
this.Add(dinoSetting);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach (var entry in this.TamedDinoClassDamageMultipliers)
|
foreach (var entry in this.TamedDinoClassDamageMultipliers.Where(e => !string.IsNullOrWhiteSpace(e.ClassName)))
|
||||||
{
|
{
|
||||||
if (string.IsNullOrWhiteSpace(entry.ClassName))
|
if (this.Any(d => d.ClassName == entry.ClassName))
|
||||||
continue;
|
|
||||||
|
|
||||||
var dinoSettings = this.Where(vi => vi.ClassName == entry.ClassName).ToArray();
|
|
||||||
if (dinoSettings == null || dinoSettings.Length == 0)
|
|
||||||
{
|
{
|
||||||
this.Add(CreateDinoSetting(entry.ClassName, GameData.MOD_UNKNOWN, false, false, true));
|
foreach (var dinoSetting in this.Where(d => d.ClassName == entry.ClassName && d.TamedDamageMultiplier != entry.Multiplier))
|
||||||
|
{
|
||||||
|
dinoSetting.TamedDamageMultiplier = entry.Multiplier;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
dinoSettings = this.Where(vi => vi.ClassName == entry.ClassName).ToArray();
|
|
||||||
foreach (var dinoSetting in dinoSettings)
|
|
||||||
{
|
{
|
||||||
|
var dinoSetting = CreateDinoSetting(entry.ClassName, GameData.MOD_UNKNOWN, false, false, true);
|
||||||
dinoSetting.TamedDamageMultiplier = entry.Multiplier;
|
dinoSetting.TamedDamageMultiplier = entry.Multiplier;
|
||||||
|
|
||||||
|
this.Add(dinoSetting);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach(var entry in this.TamedDinoClassResistanceMultipliers)
|
foreach(var entry in this.TamedDinoClassResistanceMultipliers.Where(e => !string.IsNullOrWhiteSpace(e.ClassName)))
|
||||||
{
|
{
|
||||||
if (string.IsNullOrWhiteSpace(entry.ClassName))
|
if (this.Any(d => d.ClassName == entry.ClassName))
|
||||||
continue;
|
|
||||||
|
|
||||||
var dinoSettings = this.Where(vi => vi.ClassName == entry.ClassName).ToArray();
|
|
||||||
if (dinoSettings == null || dinoSettings.Length == 0)
|
|
||||||
{
|
{
|
||||||
this.Add(CreateDinoSetting(entry.ClassName, GameData.MOD_UNKNOWN, false, false, true));
|
foreach (var dinoSetting in this.Where(d => d.ClassName == entry.ClassName && d.TamedResistanceMultiplier != entry.Multiplier))
|
||||||
|
{
|
||||||
|
dinoSetting.TamedResistanceMultiplier = entry.Multiplier;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
dinoSettings = this.Where(vi => vi.ClassName == entry.ClassName).ToArray();
|
|
||||||
foreach (var dinoSetting in dinoSettings)
|
|
||||||
{
|
{
|
||||||
|
var dinoSetting = CreateDinoSetting(entry.ClassName, GameData.MOD_UNKNOWN, false, false, true);
|
||||||
dinoSetting.TamedResistanceMultiplier = entry.Multiplier;
|
dinoSetting.TamedResistanceMultiplier = entry.Multiplier;
|
||||||
|
|
||||||
|
this.Add(dinoSetting);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach (var entry in this.DinoClassDamageMultipliers)
|
foreach (var entry in this.DinoClassDamageMultipliers.Where(e => !string.IsNullOrWhiteSpace(e.ClassName)))
|
||||||
{
|
{
|
||||||
if (string.IsNullOrWhiteSpace(entry.ClassName))
|
if (this.Any(d => d.ClassName == entry.ClassName))
|
||||||
continue;
|
|
||||||
|
|
||||||
var dinoSettings = this.Where(vi => vi.ClassName == entry.ClassName).ToArray();
|
|
||||||
if (dinoSettings == null || dinoSettings.Length == 0)
|
|
||||||
{
|
{
|
||||||
this.Add(CreateDinoSetting(entry.ClassName, GameData.MOD_UNKNOWN, false, false, true));
|
foreach (var dinoSetting in this.Where(d => d.ClassName == entry.ClassName && d.WildDamageMultiplier != entry.Multiplier))
|
||||||
|
{
|
||||||
|
dinoSetting.WildDamageMultiplier = entry.Multiplier;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
dinoSettings = this.Where(vi => vi.ClassName == entry.ClassName).ToArray();
|
|
||||||
foreach (var dinoSetting in dinoSettings)
|
|
||||||
{
|
{
|
||||||
|
var dinoSetting = CreateDinoSetting(entry.ClassName, GameData.MOD_UNKNOWN, false, false, true);
|
||||||
dinoSetting.WildDamageMultiplier = entry.Multiplier;
|
dinoSetting.WildDamageMultiplier = entry.Multiplier;
|
||||||
|
|
||||||
|
this.Add(dinoSetting);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach (var entry in this.DinoClassResistanceMultipliers)
|
foreach (var entry in this.DinoClassResistanceMultipliers.Where(e => !string.IsNullOrWhiteSpace(e.ClassName)))
|
||||||
{
|
{
|
||||||
if (string.IsNullOrWhiteSpace(entry.ClassName))
|
if (this.Any(d => d.ClassName == entry.ClassName))
|
||||||
continue;
|
|
||||||
|
|
||||||
var dinoSettings = this.Where(vi => vi.ClassName == entry.ClassName).ToArray();
|
|
||||||
if (dinoSettings == null || dinoSettings.Length == 0)
|
|
||||||
{
|
{
|
||||||
this.Add(CreateDinoSetting(entry.ClassName, GameData.MOD_UNKNOWN, false, false, true));
|
foreach (var dinoSetting in this.Where(d => d.ClassName == entry.ClassName && d.WildResistanceMultiplier != entry.Multiplier))
|
||||||
|
{
|
||||||
|
dinoSetting.WildResistanceMultiplier = entry.Multiplier;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
dinoSettings = this.Where(vi => vi.ClassName == entry.ClassName).ToArray();
|
|
||||||
foreach (var dinoSetting in dinoSettings)
|
|
||||||
{
|
{
|
||||||
|
var dinoSetting = CreateDinoSetting(entry.ClassName, GameData.MOD_UNKNOWN, false, false, true);
|
||||||
dinoSetting.WildResistanceMultiplier = entry.Multiplier;
|
dinoSetting.WildResistanceMultiplier = entry.Multiplier;
|
||||||
|
|
||||||
|
this.Add(dinoSetting);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -244,22 +251,9 @@ namespace ServerManagerTool.Lib.ViewModel
|
||||||
!entry.SpawnLimitPercentage.Equals(DinoSpawn.DEFAULT_SPAWN_LIMIT_PERCENTAGE) ||
|
!entry.SpawnLimitPercentage.Equals(DinoSpawn.DEFAULT_SPAWN_LIMIT_PERCENTAGE) ||
|
||||||
!entry.SpawnWeightMultiplier.Equals(DinoSpawn.DEFAULT_SPAWN_WEIGHT_MULTIPLIER))
|
!entry.SpawnWeightMultiplier.Equals(DinoSpawn.DEFAULT_SPAWN_WEIGHT_MULTIPLIER))
|
||||||
{
|
{
|
||||||
|
if (this.DinoSpawnWeightMultipliers.Any(d => d.DinoNameTag.Equals(entry.NameTag, StringComparison.OrdinalIgnoreCase)))
|
||||||
var dinoSpawns = this.DinoSpawnWeightMultipliers.Where(d => d.DinoNameTag.Equals(entry.NameTag, StringComparison.OrdinalIgnoreCase)).ToArray();
|
|
||||||
if (dinoSpawns == null || dinoSpawns.Length == 0)
|
|
||||||
{
|
{
|
||||||
this.DinoSpawnWeightMultipliers.Add(new DinoSpawn()
|
foreach (var dinoSpawn in this.DinoSpawnWeightMultipliers.Where(d => d.DinoNameTag.Equals(entry.NameTag, StringComparison.OrdinalIgnoreCase)))
|
||||||
{
|
|
||||||
ClassName = entry.ClassName,
|
|
||||||
DinoNameTag = entry.NameTag,
|
|
||||||
OverrideSpawnLimitPercentage = entry.OverrideSpawnLimitPercentage,
|
|
||||||
SpawnLimitPercentage = entry.SpawnLimitPercentage,
|
|
||||||
SpawnWeightMultiplier = entry.SpawnWeightMultiplier
|
|
||||||
});
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
foreach (var dinoSpawn in dinoSpawns)
|
|
||||||
{
|
{
|
||||||
if (entry.SpawnWeightMultiplier != entry.OriginalSpawnWeightMultiplier ||
|
if (entry.SpawnWeightMultiplier != entry.OriginalSpawnWeightMultiplier ||
|
||||||
entry.OverrideSpawnLimitPercentage != entry.OriginalOverrideSpawnLimitPercentage ||
|
entry.OverrideSpawnLimitPercentage != entry.OriginalOverrideSpawnLimitPercentage ||
|
||||||
|
|
@ -271,6 +265,17 @@ namespace ServerManagerTool.Lib.ViewModel
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
this.DinoSpawnWeightMultipliers.Add(new DinoSpawn()
|
||||||
|
{
|
||||||
|
ClassName = entry.ClassName,
|
||||||
|
DinoNameTag = entry.NameTag,
|
||||||
|
OverrideSpawnLimitPercentage = entry.OverrideSpawnLimitPercentage,
|
||||||
|
SpawnLimitPercentage = entry.SpawnLimitPercentage,
|
||||||
|
SpawnWeightMultiplier = entry.SpawnWeightMultiplier
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -287,20 +292,28 @@ namespace ServerManagerTool.Lib.ViewModel
|
||||||
{
|
{
|
||||||
// check if the value has changed.
|
// check if the value has changed.
|
||||||
if (!entry.TamedDamageMultiplier.Equals(ClassMultiplier.DEFAULT_MULTIPLIER))
|
if (!entry.TamedDamageMultiplier.Equals(ClassMultiplier.DEFAULT_MULTIPLIER))
|
||||||
|
{
|
||||||
this.TamedDinoClassDamageMultipliers.Add(new ClassMultiplier() { ClassName = entry.ClassName, Multiplier = entry.TamedDamageMultiplier });
|
this.TamedDinoClassDamageMultipliers.Add(new ClassMultiplier() { ClassName = entry.ClassName, Multiplier = entry.TamedDamageMultiplier });
|
||||||
|
}
|
||||||
|
|
||||||
// check if the value has changed.
|
// check if the value has changed.
|
||||||
if (!entry.TamedResistanceMultiplier.Equals(ClassMultiplier.DEFAULT_MULTIPLIER))
|
if (!entry.TamedResistanceMultiplier.Equals(ClassMultiplier.DEFAULT_MULTIPLIER))
|
||||||
|
{
|
||||||
this.TamedDinoClassResistanceMultipliers.Add(new ClassMultiplier() { ClassName = entry.ClassName, Multiplier = entry.TamedResistanceMultiplier });
|
this.TamedDinoClassResistanceMultipliers.Add(new ClassMultiplier() { ClassName = entry.ClassName, Multiplier = entry.TamedResistanceMultiplier });
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// check if the value has changed.
|
// check if the value has changed.
|
||||||
if (!entry.WildDamageMultiplier.Equals(ClassMultiplier.DEFAULT_MULTIPLIER))
|
if (!entry.WildDamageMultiplier.Equals(ClassMultiplier.DEFAULT_MULTIPLIER))
|
||||||
|
{
|
||||||
this.DinoClassDamageMultipliers.Add(new ClassMultiplier() { ClassName = entry.ClassName, Multiplier = entry.WildDamageMultiplier });
|
this.DinoClassDamageMultipliers.Add(new ClassMultiplier() { ClassName = entry.ClassName, Multiplier = entry.WildDamageMultiplier });
|
||||||
|
}
|
||||||
|
|
||||||
// check if the value has changed.
|
// check if the value has changed.
|
||||||
if (!entry.WildResistanceMultiplier.Equals(ClassMultiplier.DEFAULT_MULTIPLIER))
|
if (!entry.WildResistanceMultiplier.Equals(ClassMultiplier.DEFAULT_MULTIPLIER))
|
||||||
|
{
|
||||||
this.DinoClassResistanceMultipliers.Add(new ClassMultiplier() { ClassName = entry.ClassName, Multiplier = entry.WildResistanceMultiplier });
|
this.DinoClassResistanceMultipliers.Add(new ClassMultiplier() { ClassName = entry.ClassName, Multiplier = entry.WildResistanceMultiplier });
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue