using RimWorld;
using rjw;
using System.Linq;
using Verse;
namespace RJWSexperience.Ideology.PreceptWorkers
{
///
/// thought worker for a thought that is active when a certain hediff is present, and who's stage depends on the ether state of the pawn
/// Shamelessly taken from: https://github.com/Tachyonite/Pawnmorpher/blob/master/Source/Pawnmorphs/Esoteria/Thoughts/ThoughtWorker_EtherHediff.cs
///
public class ThoughtWorker_Precept_BestialBreeding_Social : ThoughtWorker_Precept_Social
{
/// Gets the current thought state of the given pawn.
/// The pawn for whom the thoughts are generated.
/// The pawn about whom the thoughts are generated.
///
protected override ThoughtState ShouldHaveThought(Pawn mainPawn, Pawn referencedPawn)
{
if (referencedPawn?.DevelopmentalStage == DevelopmentalStage.Adult && mainPawn?.DevelopmentalStage == DevelopmentalStage.Adult)
{
Map map = referencedPawn.Map;
if (map != null)
{
foreach (var pawnOnMap in map.mapPawns.AllPawns.Where(x => xxx.is_animal(x) && PawnExtensions.IsVisiblyPregnant(x)))
{
if (pawnOnMap != referencedPawn && IdeoUtility.IsFatherOfPregnancy(pawnOnMap, referencedPawn)) // Check if this pawn is the father of p
{
return ThoughtState.ActiveDefault; // Active thought if the pawn is the father
}
}
}
}
// Return default (inactive) if no valid conditions were met
return ThoughtState.Inactive;
}
}
}