Exemple #1
0
        public static CraftItem GetRandomApplicableCraftItem(Faction faction, WorldManager World)
        {
            InitializeCraftLibrary();

            const int maxIters = 100;

            for (int i = 0; i < maxIters; i++)
            {
                var item = Datastructures.SelectRandom(CraftItems.Where(k => k.Value.Type == CraftItem.CraftType.Resource));
                if (!World.HasResources(item.Value.RequiredResources))
                {
                    continue;
                }
                if (!faction.OwnedObjects.Any(o => o.Tags.Contains(item.Value.CraftLocation)))
                {
                    continue;
                }
                return(item.Value);
            }

            return(null);
        }