예제 #1
0
        public YieldSummary GetYieldEstimateForCell(
            IHexCell cell, IEnumerable <ITechDefinition> availableTechs
            )
        {
            var improvementModifications = new HashSet <IImprovementModificationData>(availableTechs.SelectMany(tech => tech.ImprovementYieldModifications));
            var visibleResources         = new HashSet <IResourceDefinition>         (TechCanon.GetDiscoveredResourcesFromTechs(availableTechs));
            var availableImprovements    = new HashSet <IImprovementTemplate>        (TechCanon.GetAvailableImprovementsFromTechs(availableTechs));
            var availableBuildings       = new HashSet <IBuildingTemplate>           (TechCanon.GetAvailableBuildingsFromTechs(availableTechs));

            return(GetYieldEstimateForCell(
                       cell,
                       new CachedTechData()
            {
                ImprovementModifications = improvementModifications,
                VisibleResources = visibleResources,
                AvailableImprovements = availableImprovements,
                AvailableBuildings = availableBuildings
            }
                       ));
        }