using System; using RimWorld; using Verse; using rjw; namespace Privacy_Please { public class ThoughtWorker_ExposedUnderwear : ThoughtWorker { public static ThoughtState CurrentThoughtState(Pawn pawn) { if (xxx.has_quirk(pawn, "Exhibitionist") || pawn?.ideo?.Ideo.HasPrecept(ModPreceptDefOf.Exhibitionism_Approved) == true) { return ThoughtState.ActiveAtStage(2); } if (pawn?.ideo?.Ideo.HasPrecept(ModPreceptDefOf.Exhibitionism_Acceptable) == true) { return ThoughtState.ActiveAtStage(1); } return ThoughtState.ActiveAtStage(0); } protected override ThoughtState CurrentStateInternal(Pawn pawn) { if (BasicSettings.exposedUnderwearMood == false) return false; if (pawn?.apparel?.WornApparel == null || pawn.apparel.WornApparel.NullOrEmpty()) return false; if (pawn.apparel.WornApparel.Any(x => x.def.apparel.bodyPartGroups.Contains(ModBodyPartGroupDefOf.GenitalsBPG)) && pawn.apparel.WornApparel.Any(x => x.def.apparel.bodyPartGroups.Contains(BodyPartGroupDefOf.Legs)) == false) { return CurrentThoughtState(pawn); } if (pawn.apparel.WornApparel.Any(x => x.def.apparel.bodyPartGroups.Contains(ModBodyPartGroupDefOf.ChestBPG)) && pawn.apparel.WornApparel.Any(x => x.def.apparel.bodyPartGroups.Contains(BodyPartGroupDefOf.Torso)) == false) { return CurrentThoughtState(pawn); } return ThoughtState.Inactive; } } }