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

45 lines
862 B
C#
Raw Normal View History

2022-11-01 16:15:06 +00:00
using rjw;
using rjwquirks.Modules.Shared.PawnSelectors;
2022-11-01 16:15:06 +00:00
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;
2022-11-01 16:15:06 +00:00
public RaceTag RaceTag
{
get
{
if (RaceTag.TryParse(raceTag, out RaceTag tag))
return tag;
return null;
}
}
2022-11-01 16:15:06 +00:00
public override bool PawnSatisfies(Pawn pawn) => pawn.Has(RaceTag);
2022-11-01 16:15:06 +00:00
public override IEnumerable<string> ConfigErrors()
{
foreach (string error in base.ConfigErrors())
{
yield return error;
}
2022-11-01 16:15:06 +00:00
if (raceTag.NullOrEmpty())
{
yield return "<raceTag> is empty";
}
else if (!RaceTag.TryParse(raceTag, out _))
2022-11-01 16:15:06 +00:00
{
yield return $"\"{raceTag}\" is not a valid RaceTag";
}
}
2022-11-01 16:15:06 +00:00
}
}