public override bool Valid(LocalTargetInfo target, bool throwMessages = false)
        {
            Pawn    pawn = parent?.verb?.CasterPawn;
            Map     map  = parent?.verb?.CasterPawn?.Map;
            IntVec3 cell = target.Cell;

            if (map == null || pawn == null || cell == null)
            {
                return(false);
            }
            if (cell.GetRoofHolderOrImpassable(map) != null)
            {
                throwMessages = true;
                return(false);
            }
            if (cell.Roofed(map))
            {
                if (cell.GetRoof(map) == RoofDefOf.RoofRockThick)
                {
                    throwMessages = true;
                    return(false);
                }
            }
            return(base.Valid(target, throwMessages));
        }