protected override bool TryExecuteWorker(IncidentParms parms)
        {
            var map = (Map)parms.target;

            if (!TryResolveParms(parms))
            {
                return(false);
            }

            if (parms.faction.HostileTo(Faction.OfPlayer))
            {
                return(false);
            }

            var list = SpawnPawns(parms);

            if (list.Count == 0)
            {
                return(false);
            }

            foreach (var pawn in list)
            {
                if (pawn.needs?.food != null)
                {
                    pawn.needs.food.CurLevel = pawn.needs.food.MaxLevel;
                }
            }

            var arrival = ItemRequestsDefOf.RequestCaravanArrival;

            Find.LetterStack.ReceiveLetter(arrival.letterLabel, arrival.letterText, arrival.letterDef, list[0],
                                           parms.faction);
            RCellFinder.TryFindRandomSpotJustOutsideColony(list[0], out var chillSpot);

            var lordJob = new LordJob_FulfillItemRequest(parms.faction, chillSpot);

            LordMaker.MakeNewLord(parms.faction, lordJob, map, list);
            return(true);
        }
Beispiel #2
0
        protected override bool TryExecuteWorker(IncidentParms parms)
        {
            Map map = (Map)parms.target;

            if (!TryResolveParms(parms))
            {
                return(false);
            }

            if (parms.faction.HostileTo(Faction.OfPlayer))
            {
                return(false);
            }

            List <Pawn> list = SpawnPawns(parms);

            if (list.Count == 0)
            {
                return(false);
            }
            for (int i = 0; i < list.Count; i++)
            {
                if (list[i].needs != null && list[i].needs.food != null)
                {
                    list[i].needs.food.CurLevel = list[i].needs.food.MaxLevel;
                }
            }

            IntVec3     chillSpot;
            IncidentDef arrival = ItemRequestsDefOf.RequestCaravanArrival;

            Find.LetterStack.ReceiveLetter(arrival.letterLabel, arrival.letterText, arrival.letterDef, list[0], parms.faction);
            RCellFinder.TryFindRandomSpotJustOutsideColony(list[0], out chillSpot);

            LordJob_FulfillItemRequest lordJob = new LordJob_FulfillItemRequest(parms.faction, chillSpot);

            LordMaker.MakeNewLord(parms.faction, lordJob, map, list);
            return(true);
        }