Пример #1
0
        static bool Prefix(ref bool __result, CompAssignableToPawn_Bed __instance, Pawn pawn)
        {
            if (!Helpers.ShouldRunForPawn(pawn))
            {
                return(true);
            }
            // This is only used to display pawn list, so use the pawn ownership on the current map instead of their current bed
            var pawnBeds = Helpers.PawnBedsOnMap(pawn, Find.CurrentMap);

            __result = pawnBeds.Any();
            return(false);
        }
Пример #2
0
        static bool Prefix(CompAssignableToPawn_Bed __instance, ref List <Pawn> ___assignedPawns, ThingWithComps ___parent)
        {
            if (Scribe.mode != LoadSaveMode.PostLoadInit)
            {
                return(true);
            }

            var unreciprocatedOwners = ___assignedPawns
                                       .Where(p => p?.ownership?.OwnedBed != ___parent)
                                       .ToList();

            if (unreciprocatedOwners.Count > 0)
            {
                if (unreciprocatedOwners.Any(p => p.IsFreeColonist))
                {
                    return(false);
                }
                ___assignedPawns.RemoveAll(p => p?.IsFreeColonist == false && unreciprocatedOwners.Contains(p));
            }
            return(true);
        }