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); }
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); }