protected override bool CanFireNowSub(IIncidentTarget target)
        {
            Map map = (Map)target;

            if (!this.AtLeast2HealthyColonists(map))
            {
                return(false);
            }
            if (IncidentWorker_CaravanRequest.RandomNearbyTradeableSettlement(map.Tile) == null)
            {
                return(false);
            }
            return(base.CanFireNowSub(target));
        }
        protected override bool TryExecuteWorker(IncidentParms parms)
        {
            Settlement settlement = IncidentWorker_CaravanRequest.RandomNearbyTradeableSettlement(parms.target.Tile);

            if (settlement == null)
            {
                return(false);
            }
            CaravanRequestComp component = ((WorldObject)settlement).GetComponent <CaravanRequestComp>();

            if (!this.TryGenerateCaravanRequest(component, (Map)parms.target))
            {
                return(false);
            }
            Find.LetterStack.ReceiveLetter("LetterLabelCaravanRequest".Translate(), "LetterCaravanRequest".Translate(settlement.Label, GenLabel.ThingLabel(component.requestThingDef, null, component.requestCount).CapitalizeFirst(), component.rewards[0].LabelCap, (component.expiration - Find.TickManager.TicksGame).ToStringTicksToDays("F0")), LetterDefOf.PositiveEvent, settlement, null);
            return(true);
        }
        protected override bool CanFireNowSub(IIncidentTarget target)
        {
            Map map = (Map)target;

            return(this.AtLeast2HealthyColonists(map) && IncidentWorker_CaravanRequest.RandomNearbyTradeableSettlement(map.Tile) != null && base.CanFireNowSub(target));
        }