public void InjectDependencies(
     List <CivilizationDisplayBase> civilizationDisplays, CoreSignals coreSignals,
     IGameCore gameCore, UIStateMachineBrain brain, CitySummaryManager citySummaryManager,
     IPossessionRelationship <IHexCell, ICity> cityLocationCanon, ITechCanon techCanon,
     IExplorationCanon explorationCanon, VisibilitySignals visibilitySignals,
     IFreeGreatPeopleCanon freeGreatPeopleCanon, ICameraFocuser cameraFocuser,
     [Inject(Id = "Free Techs Display")] RectTransform freeTechsDisplay,
     [Inject(Id = "Play Mode Default Panels")] List <RectTransform> defaultPanels,
     [Inject(Id = "Free Great People Notification")] RectTransform freeGreatPeopleNotification
     )
 {
     CivilizationDisplays = civilizationDisplays;
     CoreSignals          = coreSignals;
     GameCore             = gameCore;
     Brain = brain;
     CitySummaryManager          = citySummaryManager;
     CityLocationCanon           = cityLocationCanon;
     TechCanon                   = techCanon;
     ExplorationCanon            = explorationCanon;
     VisibilitySignals           = visibilitySignals;
     FreeGreatPeopleCanon        = freeGreatPeopleCanon;
     CameraFocuser               = cameraFocuser;
     FreeTechsDisplay            = freeTechsDisplay;
     DefaultPanels               = defaultPanels;
     FreeGreatPeopleNotification = freeGreatPeopleNotification;
 }
        public VisibilityResponder(
            IPossessionRelationship <ICivilization, IUnit> unitPossessionCanon,
            IPossessionRelationship <ICivilization, ICity> cityPossessionCanon,
            IVisibilityCanon visibilityCanon, IExplorationCanon explorationCanon,
            ICityLineOfSightLogic cityLineOfSightLogic,
            IUnitVisibilityLogic unitLineOfSightLogic,
            IUnitFactory unitFactory,
            ICityFactory cityFactory,
            IHexGrid grid,
            [Inject(Id = "Coroutine Invoker")] MonoBehaviour coroutineInvoker,
            IHexCellShaderData hexCellShaderData,
            UnitSignals unitSignals,
            CitySignals citySignals,
            HexCellSignals cellSignals,
            CivilizationSignals civSignals,
            VisibilitySignals visibilitySignals,
            CoreSignals coreSignals,
            MapRenderingSignals mapRenderingSignals
            )
        {
            UnitPossessionCanon  = unitPossessionCanon;
            CityPossessionCanon  = cityPossessionCanon;
            VisibilityCanon      = visibilityCanon;
            ExplorationCanon     = explorationCanon;
            CityLineOfSightLogic = cityLineOfSightLogic;
            UnitLineOfSightLogic = unitLineOfSightLogic;
            UnitFactory          = unitFactory;
            CityFactory          = cityFactory;
            Grid              = grid;
            CoroutineInvoker  = coroutineInvoker;
            HexCellShaderData = hexCellShaderData;

            unitSignals.LeftLocation.Subscribe(OnUnitLeftLocation);
            unitSignals.EnteredLocation.Subscribe(OnUnitEnteredLocation);

            citySignals.LostCellFromBoundaries.Subscribe(OnCityLostCell);
            citySignals.GainedCellToBoundaries.Subscribe(OnCityGainedCell);

            cellSignals.TerrainChanged.Subscribe(data => TryResetCellVisibility());
            cellSignals.ShapeChanged.Subscribe(data => TryResetCellVisibility());
            cellSignals.VegetationChanged.Subscribe(data => TryResetCellVisibility());

            civSignals.CivLosingCity.Subscribe(OnCivLosingCity);
            civSignals.CivGainedCity.Subscribe(OnCivGainedCity);
            civSignals.CivDiscoveredTech.Subscribe(data => TryResetResourceVisibility());
            civSignals.CivUndiscoveredTech.Subscribe(data => TryResetResourceVisibility());

            visibilitySignals.CellVisibilityModeChanged.Subscribe(unit => TryResetCellVisibility());
            visibilitySignals.CellExplorationModeChanged.Subscribe(unit => TryResetCellVisibility());
            visibilitySignals.ResourceVisibilityModeChanged.Subscribe(unit => TryResetResourceVisibility());

            coreSignals.ActivePlayerChanged.Subscribe(OnActivePlayerChanged);

            mapRenderingSignals.MapFinishedLoading.Subscribe(Unit => TryResetCellVisibility());
            mapRenderingSignals.MapFinishedLoading.Subscribe(Unit => TryResetResourceVisibility());
        }
 public void InjectDependencies(
     IVisibilityCanon visibilityCanon, IExplorationCanon explorationCanon,
     IPlayerFactory playerFactory, IGameCore gameCore
     )
 {
     VisibilityCanon  = visibilityCanon;
     ExplorationCanon = explorationCanon;
     PlayerFactory    = playerFactory;
     GameCore         = gameCore;
 }
 public HexCellShaderData(
     IVisibilityCanon visibilityCanon, IExplorationCanon explorationCanon, IMapRenderConfig renderConfig,
     [Inject(Id = "Coroutine Invoker")] MonoBehaviour coroutineInvoker
     )
 {
     VisibilityCanon  = visibilityCanon;
     ExplorationCanon = explorationCanon;
     RenderConfig     = renderConfig;
     CoroutineInvoker = coroutineInvoker;
 }
示例#5
0
 public void InjectDependencies(
     UIStateMachineBrain brain, IMapComposer mapComposer, IVisibilityResponder visibilityResponder,
     IVisibilityCanon visibilityCanon, IExplorationCanon explorationCanon, IGameCore gameCore,
     IUnitMapIconManager unitMapIconManager, List <IPlayModeSensitiveElement> playModeSensitiveElements
     )
 {
     Brain                     = brain;
     MapComposer               = mapComposer;
     VisibilityResponder       = visibilityResponder;
     VisibilityCanon           = visibilityCanon;
     ExplorationCanon          = explorationCanon;
     GameCore                  = gameCore;
     UnitMapIconManager        = unitMapIconManager;
     PlayModeSensitiveElements = playModeSensitiveElements;
 }
示例#6
0
        public CitySummaryManager(
            CitySummaryDisplay summaryPrefab, ICityFactory cityFactory,
            DiContainer container, ICityUIConfig cityUIConfig, IGameCamera gameCamera,
            [Inject(Id = "City Summary Container")] RectTransform citySummaryContainer,
            CitySignals citySignals, IExplorationCanon explorationCanon,
            IPossessionRelationship <IHexCell, ICity> cityLocationCanon
            )
        {
            SummaryPrefab        = summaryPrefab;
            CityFactory          = cityFactory;
            Container            = container;
            CityUIConfig         = cityUIConfig;
            GameCamera           = gameCamera;
            CitySummaryContainer = citySummaryContainer;
            ExplorationCanon     = explorationCanon;
            CityLocationCanon    = cityLocationCanon;

            citySignals.BeingDestroyed.Subscribe(OnCityBeingDestroyed);
        }
 public CivilizationComposer(
     ICivilizationFactory civilizationFactory, ITechCanon techCanon,
     ISocialPolicyComposer policyComposer, IExplorationCanon explorationCanon, IHexGrid grid,
     IFreeBuildingsCanon freeBuildingsCanon, List <IBuildingTemplate> availableBuildings,
     [Inject(Id = "Available Techs")] List <ITechDefinition> availableTechs,
     ReadOnlyCollection <ICivilizationTemplate> availableCivTemplates,
     IGoldenAgeCanon goldenAgeCanon, ICivDiscoveryCanon civDiscoveryCanon
     )
 {
     CivilizationFactory = civilizationFactory;
     TechCanon           = techCanon;
     PolicyComposer      = policyComposer;
     ExplorationCanon    = explorationCanon;
     Grid = grid;
     FreeBuildingsCanon    = freeBuildingsCanon;
     BuildingTemplates     = availableBuildings;
     AvailableTechs        = availableTechs;
     AvailableCivTemplates = availableCivTemplates;
     GoldenAgeCanon        = goldenAgeCanon;
     CivDiscoveryCanon     = civDiscoveryCanon;
 }
示例#8
0
        public void InjectDependencies(
            UIStateMachineBrain brain, IHexGrid grid, IMapComposer mapComposer,
            ICivilizationFactory civFactory, IPlayerFactory playerFactory,
            IVisibilityResponder visibilityResponder, IVisibilityCanon visibilityCanon,
            IExplorationCanon explorationCanon, List <IPlayModeSensitiveElement> playModeSensitiveElements,
            ICivilizationConfig civConfig, IBrainPile brainPile, IUnitMapIconManager unitMapIconManager

            )
        {
            Brain                     = brain;
            Grid                      = grid;
            MapComposer               = mapComposer;
            CivFactory                = civFactory;
            PlayerFactory             = playerFactory;
            VisibilityResponder       = visibilityResponder;
            VisibilityCanon           = visibilityCanon;
            ExplorationCanon          = explorationCanon;
            PlayModeSensitiveElements = playModeSensitiveElements;
            CivConfig                 = civConfig;
            BrainPile                 = brainPile;
            UnitMapIconManager        = unitMapIconManager;
        }
示例#9
0
 public void InjectDependencies(
     IHexCellSignalLogic signalLogic,
     IYieldGenerationLogic generationLogic,
     IPossessionRelationship <ICity, IHexCell> cellPossessionCanon,
     IPossessionRelationship <IHexCell, IResourceNode> resourceNodePositionCanon,
     IImprovementLocationCanon improvementLocationCanon,
     ICellYieldLogic cellResourceLogic,
     IGameCore gameCore,
     IVisibilityCanon visibilityCanon,
     IExplorationCanon explorationCanon,
     IEncampmentLocationCanon encampmentLocationCanon
     )
 {
     SignalLogic               = signalLogic;
     GenerationLogic           = generationLogic;
     CellPossessionCanon       = cellPossessionCanon;
     ResourceNodePositionCanon = resourceNodePositionCanon;
     ImprovementLocationCanon  = improvementLocationCanon;
     CellYieldLogic            = cellResourceLogic;
     GameCore                = gameCore;
     VisibilityCanon         = visibilityCanon;
     ExplorationCanon        = explorationCanon;
     EncampmentLocationCanon = encampmentLocationCanon;
 }