diff --git a/Content.Server/_DV/Traits/TraitSystem.cs b/Content.Server/_DV/Traits/TraitSystem.cs index 80764eb86d..e2f0c8824a 100644 --- a/Content.Server/_DV/Traits/TraitSystem.cs +++ b/Content.Server/_DV/Traits/TraitSystem.cs @@ -1,4 +1,4 @@ -using System.Linq; // Floofstation +using System.Linq; using Content.Shared._DV.CCVars; using Content.Shared._DV.Traits; using Content.Shared._DV.Traits.Conditions; @@ -60,20 +60,15 @@ public sealed class TraitSystem : EntitySystem var validTraits = ValidateTraits(args.Mob, args.Profile.TraitPreferences, args.Player, args.JobId, speciesId, args.Profile, disabledTraits); // Apply valid traits - // Floofstation edit: first, sort valid traits by cost - var sortedPrototypes = new List(); + var validPrototypes = new List(); foreach (var traitId in validTraits) { if (!_prototype.TryIndex(traitId, out var trait)) continue; - - sortedPrototypes.Add(trait); + validPrototypes.Add(trait); } - - sortedPrototypes = sortedPrototypes.OrderBy(a => -a.Priority).ThenBy(a => a.Cost).ToList(); //Floof - get all traits from negative cost to positive cost - foreach (var trait in sortedPrototypes) + foreach (var trait in validPrototypes.OrderByDescending(a => a.Priority).ThenBy(a => a.Cost)) ApplyTrait(args.Mob, trait); - // Floofstation edit end // Send disabled traits notification to client if any were rejected if (disabledTraits.Count > 0) diff --git a/Content.Shared/_DV/Traits/TraitPrototype.cs b/Content.Shared/_DV/Traits/TraitPrototype.cs index 9651246efa..9541f60fd7 100644 --- a/Content.Shared/_DV/Traits/TraitPrototype.cs +++ b/Content.Shared/_DV/Traits/TraitPrototype.cs @@ -58,11 +58,9 @@ public sealed partial class TraitPrototype : IPrototype [DataField] public List> Conflicts = new(); - // Floofstation section /// /// The priority of this trait. Higher priority traits are applied first. /// [DataField] public int Priority = 0; - // Floofstation section end }