/// <summary> /// Return safe for pawn if... /// .1. Area has a roof AND... /// .a. it's nighttime OR /// .b. C can arrive before sunlight OR /// .c. C can arrive before sunlight damage. /// /// </summary> /// <param name="curJob"></param> /// <returns></returns> public static bool IsSunlightSafeFor(this IntVec3 targ, Pawn pawn) { if (targ.Roofed(pawn.MapHeld) && (TargetIsInTheSameRoom(targ, pawn) || CanSurviveTimeInSunlight(targ, pawn) || targ.CanArriveBeforeSunlight(pawn))) { return(true); } if (!targ.Roofed(pawn.MapHeld) && targ.CanArriveBeforeSunlight(pawn)) { return(true); } return(false); }