Beispiel #1
0
        // Token: 0x0600000B RID: 11 RVA: 0x0000278C File Offset: 0x0000098C
        internal static bool NearThingEffects(Thing thing, Pawn pawn)
        {
            var def = thing.def;

            if (ProximityGet.GetProxRoomOnly(def))
            {
                // Func def changed, this used to be GetRoom
                var room  = thing.Position.GetRoomOrAdjacent(thing.Map);
                var room2 = pawn?.Position.GetRoomOrAdjacent(thing.Map);
                if (room != null && room2 != null && room != room2)
                {
                    return(false);
                }
            }

            if (pawn != null && pawn.IsColonist && !ProximityGet.GetProxColonist(def))
            {
                return(false);
            }

            if (pawn != null && pawn.Drafted && !ProximityGet.GetProxDrafted(def))
            {
                return(false);
            }

            if (!ProximityGet.GetProxComposMentis(def))
            {
                return(pawn != null && (!pawn.RaceProps.IsMechanoid || ProximityGet.GetProxMechanoid(def)) &&
                       (pawn.RaceProps.FleshType.defName != "Insectoid" || ProximityGet.GetProxInsectoid(def)) &&
                       (!pawn.AnimalOrWildMan() || ProximityGet.GetProxAnimal(def)) &&
                       (!pawn.IsPrisoner || ProximityGet.GetProxPrisoner(def)) &&
                       (pawn.Faction == thing.Faction || GetEffectsOutsider(thing, pawn)) &&
                       (ProximityGet.GetProxEquipped(def) == null || GetPawnHasEquipment(thing, pawn)));
            }

            if (pawn != null && (pawn.Downed || pawn.InMentalState || pawn.IsBurning() ||
                                 HealthAIUtility.ShouldSeekMedicalRest(pawn)))
            {
                return(false);
            }

            if (!pawn.Awake())
            {
                return(false);
            }

            return(pawn != null && (!pawn.RaceProps.IsMechanoid || ProximityGet.GetProxMechanoid(def)) &&
                   (pawn.RaceProps.FleshType.defName != "Insectoid" || ProximityGet.GetProxInsectoid(def)) &&
                   (!pawn.AnimalOrWildMan() || ProximityGet.GetProxAnimal(def)) &&
                   (!pawn.IsPrisoner || ProximityGet.GetProxPrisoner(def)) &&
                   (pawn.Faction == thing.Faction || GetEffectsOutsider(thing, pawn)) &&
                   (ProximityGet.GetProxEquipped(def) == null || GetPawnHasEquipment(thing, pawn)));
        }