static void Postfix(ref bool __result, IntVec3 c, IntVec3 root, Pawn pawn)
        {
            if (!__result)
            {
                return;
            }
            //
            if (pawn.Faction == Faction.OfPlayer &&
                (pawn.Position.Roofed(pawn.Map) || root.Roofed(pawn.Map)) &&
                !c.Roofed(pawn.Map) &&
                !JoyUtility.EnjoyableOutsideNow(pawn.Map))
            {
                __result = false;
                return;
            }
            //
            if (!pawn.RaceProps.Humanlike)
            {
                return;
            }
            //
            RoomRoleDef def = c.GetRoom(pawn.Map)?.Role;

            if (def == RoomRoleDefOf.Bedroom && !pawn.GetRoom().Owners.Contains(pawn) ||
                def == RoomRoleDefOf.Hospital ||
                def == RoomRoleDefOf.PrisonCell ||
                def == RoomRoleDefOf.PrisonBarracks)
            {
                __result = false;
                return;
            }
        }
Ejemplo n.º 2
0
        static void Postfix(ref bool __result, IntVec3 c, IntVec3 root, Pawn pawn)
        {
            if (!__result)
            {
                return;
            }
            //
            //if (pawn.ShouldHideFromWeather()
            //    && (pawn.Position.Roofed(pawn.Map) || root.Roofed(pawn.Map))
            //    && !c.Roofed(pawn.Map))
            //{
            //    __result = false;
            //    return;
            //}
            //
            if (!Settings.polite_wander || pawn.Faction.HostileTo(Faction.OfPlayer) /* || !pawn.RaceProps.Humanlike*/)
            {
                return;
            }
            //
            RoomRoleDef def = c.GetRoom(pawn.Map)?.Role;

            if (def == RoomRoleDefOf.Bedroom && !pawn.GetRoom().Owners.Contains(pawn) ||
                def == RoomRoleDefOf.Hospital ||
                def == RoomRoleDefOf.PrisonCell ||
                def == RoomRoleDefOf.PrisonBarracks)
            {
                __result = false;
                return;
            }
        }
Ejemplo n.º 3
0
        public bool IsImportantRoom(Room room)
        {
            if (room.Role == RoomRoleDefOf.None)
            {
                return(false);
            }

            if (_customRoomLabelManager.IsRoomCustomised(room))
            {
                return(true);
            }

            if (_emptyRooomRole != null)
            {
                return(room.Role != _emptyRooomRole);
            }

            if (room.Role.defName == "Room")
            {
                _emptyRooomRole = room.Role;
                return(false);
            }

            return(true);
        }
        public override void ResolveReferences()
        {
            kitchen = DefDatabase <RoomRoleDef> .GetNamed("Kitchen");

            guestroom = DefDatabase <RoomRoleDef> .GetNamed("GuestRoom");

            room = DefDatabase <RoomRoleDef> .GetNamed("Room");

            base.ResolveReferences();
        }
Ejemplo n.º 5
0
        public bool IsImportantRoom(Room room)
        {
            if (room.Role == RoomRoleDefOf.None)
            {
                return(false);
            }

            if (_emptyRooomRole != null)
            {
                return(room.Role != _emptyRooomRole);
            }

            if (room.Role.defName == "Room")
            {
                _emptyRooomRole = room.Role;
                return(false);
            }

            return(true);
        }
Ejemplo n.º 6
0
        static void Postfix(ref bool __result, IntVec3 c, IntVec3 root, Pawn pawn)
        {
            if (!__result)
            {
                return;
            }
            if (!Settings.polite_wander || pawn.Faction.HostileTo(Faction.OfPlayer))
            {
                return;
            }
            //
            RoomRoleDef def = c.GetRoom(pawn.Map)?.Role;

            if (def == RoomRoleDefOf.Bedroom && !pawn.GetRoom().Owners.Contains(pawn) ||
                def == RoomRoleDefOf.Hospital ||
                def == RoomRoleDefOf.PrisonCell ||
                def == RoomRoleDefOf.PrisonBarracks)
            {
                __result = false;
                return;
            }
        }