// Token: 0x0600000C RID: 12 RVA: 0x000028CC File Offset: 0x00000ACC internal static bool TerrainEffects(TerrainDef terrain, IntVec3 terrainPosition, Pawn pawn) { if (ProximityGet.GetTProxRoomOnly(terrain)) { var room = terrainPosition.GetRoomOrAdjacent(pawn.Map); var room2 = pawn.Position.GetRoomOrAdjacent(pawn.Map); if (room != null && room2 != null && room != room2) { return(false); } } if (pawn.IsColonist && !ProximityGet.GetTProxColonist(terrain)) { return(false); } if (pawn.Drafted && !ProximityGet.GetTProxDrafted(terrain)) { return(false); } if (ProximityGet.GetTProxComposMentis(terrain)) { if (pawn.Downed || pawn.InMentalState || pawn.IsBurning() || HealthAIUtility.ShouldSeekMedicalRest(pawn)) { return(false); } if (!pawn.Awake()) { return(false); } } if (pawn.RaceProps.IsMechanoid && !ProximityGet.GetTProxMechanoid(terrain)) { return(false); } if (pawn.RaceProps.FleshType.defName == "Insectoid" && !ProximityGet.GetTProxInsectoid(terrain)) { return(false); } if (pawn.AnimalOrWildMan() && !ProximityGet.GetTProxAnimal(terrain)) { return(false); } if (pawn.IsPrisoner && !ProximityGet.GetTProxPrisoner(terrain)) { return(false); } var faction = pawn.Faction; var map = pawn.Map; return((faction == map?.ParentFaction || GetTerrainEffectsOutsider(terrain, pawn)) && (ProximityGet.GetTProxEquipped(terrain) == null || GetTerrainPawnHasEquipment(terrain, pawn))); }