public ResourceBuildingRestriction(
     IFreeResourcesLogic freeResourcesLogic,
     IPossessionRelationship <ICity, IHexCell> cellPossessionCanon,
     IPossessionRelationship <IHexCell, IResourceNode> nodeLocationCanon
     )
 {
     FreeResourcesLogic  = freeResourcesLogic;
     CellPossessionCanon = cellPossessionCanon;
     NodeLocationCanon   = nodeLocationCanon;
 }
 public void InjectDependencies(
     IGameCore gameCore, IFreeResourcesLogic freeResourcesLogic,
     IResourceExtractionLogic extractionLogic, IResourceTransferCanon resourceTransferCanon,
     [Inject(Id = "Available Resources")] IEnumerable <IResourceDefinition> availableResources
     )
 {
     GameCore              = gameCore;
     FreeResourcesLogic    = freeResourcesLogic;
     ExtractionLogic       = extractionLogic;
     ResourceTransferCanon = resourceTransferCanon;
     AvailableResources    = availableResources;
 }
 public ResourceExchangeBuilder(
     ICivilizationConnectionLogic civilizationConnectionLogic, DiContainer container,
     IResourceTransferCanon resourceTransferCanon, IFreeResourcesLogic freeResourcesLogic,
     [Inject(Id = "Available Resources")] IEnumerable <IResourceDefinition> availableResources
     )
 {
     CivilizationConnectionLogic = civilizationConnectionLogic;
     Container             = container;
     ResourceTransferCanon = resourceTransferCanon;
     FreeResourcesLogic    = freeResourcesLogic;
     AvailableResources    = availableResources;
 }
 public UnitProductionValidityLogic(IUnitPositionCanon unitPositionCanon,
                                    IFreeResourcesLogic freeResourcesLogic,
                                    IPossessionRelationship <ICivilization, ICity> cityPossessionCanon,
                                    IPossessionRelationship <IHexCell, ICity> cityLocationCanon,
                                    [Inject(Id = "Available Unit Templates")] IEnumerable <IUnitTemplate> availableUnitTemplates
                                    )
 {
     UnitPositionCanon      = unitPositionCanon;
     FreeResourcesLogic     = freeResourcesLogic;
     CityPossessionCanon    = cityPossessionCanon;
     CityLocationCanon      = cityLocationCanon;
     AvailableUnitTemplates = availableUnitTemplates;
 }
        public CivilizationHappinessLogic(
            ICivilizationConfig config, IFreeResourcesLogic freeResourcesLogic,
            IPossessionRelationship <ICivilization, ICity> cityPossessionCanon,
            ICityHappinessLogic cityHappinessLogic,
            [Inject(Id = "Available Resources")] IEnumerable <IResourceDefinition> availableResources
            )
        {
            Config              = config;
            FreeResourcesLogic  = freeResourcesLogic;
            CityPossessionCanon = cityPossessionCanon;
            CityHappinessLogic  = cityHappinessLogic;

            AvailableLuxuries = availableResources.Where(resource => resource.Type == ResourceType.Luxury).ToList();
        }