45 lines
1.0 KiB
C#
45 lines
1.0 KiB
C#
using rjw;
|
|
using rjwquirks.Data;
|
|
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 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<string> ConfigErrors()
|
|
{
|
|
foreach (string error in base.ConfigErrors())
|
|
{
|
|
yield return error;
|
|
}
|
|
|
|
if (raceTag.NullOrEmpty())
|
|
{
|
|
yield return "<raceTag> is empty";
|
|
}
|
|
else if (!RaceTags.TryParse(raceTag, out _))
|
|
{
|
|
yield return $"\"{raceTag}\" is not a valid RaceTag";
|
|
}
|
|
}
|
|
}
|
|
}
|