SpeciesLoadoutEffect.cs 853 B

1234567891011121314151617181920212223242526
  1. using System.Diagnostics.CodeAnalysis;
  2. using Content.Shared.Humanoid.Prototypes;
  3. using Robust.Shared.Player;
  4. using Robust.Shared.Prototypes;
  5. using Robust.Shared.Utility;
  6. namespace Content.Shared.Preferences.Loadouts.Effects;
  7. public sealed partial class SpeciesLoadoutEffect : LoadoutEffect
  8. {
  9. [DataField(required: true)]
  10. public List<ProtoId<SpeciesPrototype>> Species = new();
  11. public override bool Validate(HumanoidCharacterProfile profile, RoleLoadout loadout, ICommonSession? session, IDependencyCollection collection,
  12. [NotNullWhen(false)] out FormattedMessage? reason)
  13. {
  14. if (Species.Contains(profile.Species))
  15. {
  16. reason = null;
  17. return true;
  18. }
  19. reason = FormattedMessage.FromUnformatted(Loc.GetString("loadout-group-species-restriction"));
  20. return false;
  21. }
  22. }