コード例 #1
0
 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);
     }
 }
コード例 #2
0
 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}");
     }
 }
コード例 #3
0
        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);
                }
            }
        }
コード例 #4
0
 public void ConvertPrisoner(Pawn pawn)
 {
     CleanPrisonersStatus.Clean(pawn);
     pawn.guest.SetGuestStatus(null);
     pawn.SetFaction(Faction.OfPlayer);
 }