39 lines
1.4 KiB
C#
39 lines
1.4 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|