using System.Diagnostics.CodeAnalysis; using Content.Shared.Players.PlayTimeTracking; using Content.Shared.Roles; using Robust.Shared.Player; using Robust.Shared.Prototypes; using Robust.Shared.Utility; namespace Content.Shared.Preferences.Loadouts.Effects; /// /// Checks for a job requirement to be met such as playtime. /// public sealed partial class JobRequirementLoadoutEffect : LoadoutEffect { [DataField(required: true)] public JobRequirement Requirement = default!; public override bool Validate(RoleLoadout loadout, ICommonSession session, IDependencyCollection collection, [NotNullWhen(false)] out FormattedMessage? reason) { var manager = collection.Resolve(); var playtimes = manager.GetPlayTimes(session); return JobRequirements.TryRequirementMet(Requirement, playtimes, out reason, collection.Resolve(), collection.Resolve()); } }