private static void Postfix(Pawn_GuestTracker __instance, Faction newHost, GuestStatus guestStatus) { if (guestStatus != GuestStatus.Prisoner) { Pawn pawn = Traverse.Create(__instance).Field("pawn").GetValue <Pawn>(); CleanPrisonersStatus.CleanHediffs(pawn); } }
static void Prefix(Pawn recruiter, Pawn recruitee) { if (recruitee != null && recruitee.IsPrisonerOfColony && recruiter != null && recruiter.Faction == Faction.OfPlayer) { CleanPrisonersStatus.Clean(recruitee); Log.Message($"[PrisonLabor] Removed prisoners effects from {recruitee.LabelShort}"); } }
public override void DoCell(Rect rect, Pawn pawn, PawnTable table) { var need = pawn.needs.TryGetNeed <Need_Treatment>(); if (need != null && need.ResocializationReady) { if (Widgets.ButtonText(rect, "PrisonLabor_RecruitButtonLabel".Translate())) { CleanPrisonersStatus.Clean(pawn); pawn.guest.SetGuestStatus(null); pawn.SetFaction(Faction.OfPlayer); } } }
public void ConvertPrisoner(Pawn pawn) { CleanPrisonersStatus.Clean(pawn); pawn.guest.SetGuestStatus(null); pawn.SetFaction(Faction.OfPlayer); }