Files
wwdpublic/Content.Shared/Customization/Systems/CharacterRequirements.cs
DEATHB4DEFEAT 54c119ecfd Make Jobs & Antags Use CharacterRequirements (#596)
# Description

- Makes jobs use CharacterRequirements
- Makes antags use CharReqs
- Splits CharReqs into multiple files
- Adds a Whitelist CharReq
- Prays the tests pass

---

---------

Signed-off-by: DEATHB4DEFEAT <77995199+DEATHB4DEFEAT@users.noreply.github.com>
Co-authored-by: VMSolidus <evilexecutive@gmail.com>
2024-07-29 18:17:34 -04:00

40 lines
1.3 KiB
C#

using Content.Shared.Preferences;
using Content.Shared.Roles;
using JetBrains.Annotations;
using Robust.Shared.Configuration;
using Robust.Shared.Prototypes;
using Robust.Shared.Serialization;
using Robust.Shared.Utility;
namespace Content.Shared.Customization.Systems;
[ImplicitDataDefinitionForInheritors, MeansImplicitUse]
[Serializable, NetSerializable]
public abstract partial class CharacterRequirement
{
/// <summary>
/// If true valid requirements will be treated as invalid and vice versa
/// This inversion is done by other systems like <see cref="CharacterRequirementsSystem"/>, not this one
/// </summary>
[DataField]
public bool Inverted;
/// <summary>
/// Checks if this character requirement is valid for the given parameters
/// <br />
/// You should probably not be calling this directly, use <see cref="CharacterRequirementsSystem"/>
/// </summary>
/// <param name="reason">Description for the requirement, shown when not null</param>
public abstract bool IsValid(
JobPrototype job,
HumanoidCharacterProfile profile,
Dictionary<string, TimeSpan> playTimes,
bool whitelisted,
IEntityManager entityManager,
IPrototypeManager prototypeManager,
IConfigurationManager configManager,
out FormattedMessage? reason
);
}