public override void Arrived(Caravan caravan)
        {
            var          comp      = ((DoomsdaySite)mapParent).GetComponent <DoomsdayUltimatumComp>();
            int          remaining = 50000 - comp.FactionSilver;
            List <Thing> list      = CaravanInventoryUtility.TakeThings(caravan, (Thing thing) =>
            {
                if (thing.def == ThingDefOf.Silver)
                {
                    int num    = Mathf.Min(remaining, thing.stackCount);
                    remaining -= num;
                    return(num);
                }

                return(0);
            });

            for (int i = 0; i < list.Count; i++)
            {
                list[i].Destroy();
            }

            Find.LetterStack.ReceiveLetter("RansomCompleteTitle".Translate(), "RansomComplete".Translate(), LetterDefOf.PositiveEvent);

            Find.WorldObjects.Remove(mapParent);
        }
        public override void Arrived(Caravan caravan)
        {
            List <Thing> list = CaravanInventoryUtility.TakeThings(caravan, (Thing thing) =>
            {
                if (quest.RequestItems.ContainsKey(thing.def))
                {
                    int remaining = quest.RequestItems[thing.def];

                    int num    = Mathf.Min(remaining, thing.stackCount);
                    remaining -= num;
                    quest.RequestItems[thing.def] = remaining;

                    return(num);
                }

                return(0);
            });

            for (int i = 0; i < list.Count; i++)
            {
                list[i].Destroy();
            }

            QuestSite site = (QuestSite)mapParent;

            site.EndQuest(caravan, EndCondition.Success);
        }