using rjw; using rjwquirks.Data; using System.Collections.Generic; using Verse; namespace rjwquirks.Modules.Shared.PawnSelectors { public class HasRaceTag : PawnSelector { /// /// For def load only. Use RaceTag property /// public string raceTag; public RaceTags RaceTag { get { if (RaceTags.TryParse(raceTag, out RaceTags tag)) return tag; return null; } } public override bool PawnSatisfies(Pawn pawn) => pawn.HasRaceTag(RaceTag); public override IEnumerable ConfigErrors() { foreach (string error in base.ConfigErrors()) { yield return error; } if (raceTag.NullOrEmpty()) { yield return " is empty"; } else if (!RaceTags.TryParse(raceTag, out _)) { yield return $"\"{raceTag}\" is not a valid RaceTag"; } } } }