rjw-quirks/RJW-Quirks/Modules/Shared/Selectors/Pawn/HasRaceTag.cs

45 lines
862 B
C#

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