From 384e43bca4a265897edb2b86329c2d81af97d15b Mon Sep 17 00:00:00 2001 From: Tayrtahn Date: Fri, 21 Jun 2024 02:15:37 +0200 Subject: [PATCH] Make Loadout MinLimit not count failed attempts (#29264) Loadout MinLimit doesn't count failed attempts --- Content.Shared/Preferences/Loadouts/RoleLoadout.cs | 10 ++++++++-- Resources/Prototypes/Loadouts/loadout_groups.yml | 10 ++++++++++ 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/Content.Shared/Preferences/Loadouts/RoleLoadout.cs b/Content.Shared/Preferences/Loadouts/RoleLoadout.cs index d02929cd96..ca6d841616 100644 --- a/Content.Shared/Preferences/Loadouts/RoleLoadout.cs +++ b/Content.Shared/Preferences/Loadouts/RoleLoadout.cs @@ -193,9 +193,14 @@ public sealed partial class RoleLoadout : IEquatable if (groupProto.MinLimit > 0) { // Apply any loadouts we can. - for (var j = 0; j < Math.Min(groupProto.MinLimit, groupProto.Loadouts.Count); j++) + var addedCount = 0; + foreach (var protoId in groupProto.Loadouts) { - if (!protoManager.TryIndex(groupProto.Loadouts[j], out var loadoutProto)) + // Reached the limit, time to stop + if (addedCount >= groupProto.MinLimit) + break; + + if (!protoManager.TryIndex(protoId, out var loadoutProto)) continue; var defaultLoadout = new Loadout() @@ -209,6 +214,7 @@ public sealed partial class RoleLoadout : IEquatable loadouts.Add(defaultLoadout); Apply(loadoutProto); + addedCount++; } } } diff --git a/Resources/Prototypes/Loadouts/loadout_groups.yml b/Resources/Prototypes/Loadouts/loadout_groups.yml index bdb46418b2..780f62f1be 100644 --- a/Resources/Prototypes/Loadouts/loadout_groups.yml +++ b/Resources/Prototypes/Loadouts/loadout_groups.yml @@ -36,6 +36,16 @@ - GlassesJamjar - GlassesJensen +#- type: loadoutGroup +# id: Survival +# name: loadout-group-survival-basic +# minLimit: 1 +# maxLimit: 1 +# hidden: true +# loadouts: +# - EmergencyNitrogen +# - EmergencyOxygen + # Command - type: loadoutGroup id: CaptainHead