diff --git a/src/DiIiS-NA/Core/MPQ/FileFormats/AnimSet.cs b/src/DiIiS-NA/Core/MPQ/FileFormats/AnimSet.cs index d819f0a..a068ef4 100644 --- a/src/DiIiS-NA/Core/MPQ/FileFormats/AnimSet.cs +++ b/src/DiIiS-NA/Core/MPQ/FileFormats/AnimSet.cs @@ -102,7 +102,9 @@ namespace DiIiS_NA.Core.MPQ.FileFormats { return AnimationSno._NONE; } - return deathTags.Select(x => GetAniSNO(x)).Where(x => x != AnimationSno._NONE).OrderBy(x => RandomHelper.Next()).First(); + + var possibleDeaths = deathTags.Select(GetAniSNO).Where(x => x != AnimationSno._NONE); + return RandomHelper.RandomItem(possibleDeaths); } } public enum AnimationTags diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/GeneratorsSystem/MonsterAffixGenerator.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/GeneratorsSystem/MonsterAffixGenerator.cs index 17e29bc..cc56144 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/GeneratorsSystem/MonsterAffixGenerator.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/GeneratorsSystem/MonsterAffixGenerator.cs @@ -250,14 +250,18 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem public static int GeneratePrefixName() { - var randomPrefix = NamesList.Where(n => n.AffixType == AffixType.Prefix).OrderBy(x => RandomHelper.Next()).ToList().First(); + var prefixes = NamesList.Where(n => n.AffixType == AffixType.Prefix); + var randomPrefix = RandomHelper.RandomItem(prefixes); + return randomPrefix.Hash; } public static int GenerateSuffixName() { - var randomSuffix = NamesList.Where(n => n.AffixType == AffixType.Suffix).OrderBy(x => RandomHelper.Next()).ToList().First(); - return randomSuffix.Hash; + var prefixes = NamesList.Where(n => n.AffixType == AffixType.Suffix); + var randomPrefix = RandomHelper.RandomItem(prefixes); + + return randomPrefix.Hash; } } } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Implementations/HeroSkills/Necromancer.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Implementations/HeroSkills/Necromancer.cs index e892214..2a79360 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Implementations/HeroSkills/Necromancer.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Implementations/HeroSkills/Necromancer.cs @@ -4493,8 +4493,9 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (projectile.GetMonstersInRange(15f).Count > 0) { Founded = true; - var Target = projectile.GetMonstersInRange(25f).OrderBy(x => Guid.NewGuid()).Take(1).Single(); - projectile.Launch(Target.Position, 1f); + var possibleTargets = projectile.GetMonstersInRange(25f); + var target = RandomHelper.RandomItem(possibleTargets); + projectile.Launch(target.Position, 1f); } }; yield break;