37 lines
988 B
C#
37 lines
988 B
C#
|
using RimWorld;
|
|||
|
using System.Collections.Generic;
|
|||
|
using Verse;
|
|||
|
|
|||
|
namespace rjwquirks.Modules.Shared.PawnSelectors
|
|||
|
{
|
|||
|
public class HasStatValue : PawnSelector
|
|||
|
{
|
|||
|
public StatDef stat;
|
|||
|
public float minValue = float.MinValue;
|
|||
|
public float maxValue = float.MaxValue;
|
|||
|
|
|||
|
public override bool PawnSatisfies(Pawn pawn)
|
|||
|
{
|
|||
|
float statValue = pawn.GetStatValue(stat);
|
|||
|
return minValue <= statValue && statValue <= maxValue;
|
|||
|
}
|
|||
|
|
|||
|
public override IEnumerable<string> ConfigErrors()
|
|||
|
{
|
|||
|
foreach (string error in base.ConfigErrors())
|
|||
|
{
|
|||
|
yield return error;
|
|||
|
}
|
|||
|
|
|||
|
if (stat == null)
|
|||
|
{
|
|||
|
yield return "<stat> is empty";
|
|||
|
}
|
|||
|
if (minValue == float.MinValue && maxValue == float.MaxValue)
|
|||
|
{
|
|||
|
yield return "<minValue> and/or <maxValue> should be filled";
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|