private void PatherArrived() { CaravanArrivalAction caravanArrivalAction = arrivalAction; StopDead(); if (caravanArrivalAction != null && (bool)caravanArrivalAction.StillValid(caravan, caravan.Tile)) { caravanArrivalAction.Arrived(caravan); } else if (caravan.IsPlayerControlled && !caravan.VisibleToCameraNow()) { Messages.Message("MessageCaravanArrivedAtDestination".Translate(caravan.Label), caravan, MessageTypeDefOf.TaskCompletion); } }