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());
        }
Esempio n. 2
0
 public void InjectDependencies(
     IRiverCanon riverCanon, IHexGrid grid, HexCellSignals cellSignals,
     IMapRenderConfig renderConfig
     )
 {
     RiverCanon   = riverCanon;
     Grid         = grid;
     CellSignals  = cellSignals;
     RenderConfig = renderConfig;
 }
Esempio n. 3
0
        public ExplorationCanon(
            IGameCore gameCore, VisibilitySignals visibilitySignals, HexCellSignals cellSignals
            )
        {
            GameCore          = gameCore;
            VisibilitySignals = visibilitySignals;
            CellSignals       = cellSignals;

            CellSignals.MapBeingClearedSignal.Subscribe(unit => Clear());
        }
Esempio n. 4
0
 public void InjectDependencies(
     IResourceNodeFactory resourceNodeFactory, IPossessionRelationship <IHexCell, IResourceNode> nodePositionCanon,
     [Inject(Id = "Available Resources")] IEnumerable <IResourceDefinition> availableResources, HexCellSignals cellSignals
     )
 {
     ResourceNodeFactory = resourceNodeFactory;
     NodePositionCanon   = nodePositionCanon;
     AvailableResources  = new List <IResourceDefinition>(availableResources);
     CellSignals         = cellSignals;
 }
Esempio n. 5
0
        public void CommonInstall()
        {
            MockImprovementLocationCanon = new Mock <IImprovementLocationCanon>();
            CellSignals = new HexCellSignals();

            Container.Bind <IImprovementLocationCanon>().FromInstance(MockImprovementLocationCanon.Object);
            Container.Bind <HexCellSignals>           ().FromInstance(CellSignals);

            Container.Bind <EncampmentLocationCanon>().AsSingle();
        }
 public void InjectDependencies(
     HexCellSignals cellSignals, CitySignals citySignals,
     IPossessionRelationship <IHexCell, ICity> cityLocationCanon,
     IPointOrientationLogic pointOrientationLogic
     )
 {
     CellSignals           = cellSignals;
     CitySignals           = citySignals;
     CityLocationCanon     = cityLocationCanon;
     PointOrientationLogic = pointOrientationLogic;
 }
        public VisibilityCanon(
            IGameCore gameCore, ITechCanon techCanon, VisibilitySignals visibilitySignals,
            HexCellSignals cellSignals
            )
        {
            GameCore          = gameCore;
            TechCanon         = techCanon;
            VisibilitySignals = visibilitySignals;

            cellSignals.MapBeingClearedSignal.Subscribe(unit => ClearCellVisibility());
        }
 public void InjectDependencies(
     UnitEditingPanel unitEditingPanel, UIStateMachineBrain brain,
     IUnitPositionCanon unitPositionCanon, UnitSignals unitSignals,
     HexCellSignals cellSignals
     )
 {
     UnitEditingPanel  = unitEditingPanel;
     Brain             = brain;
     UnitPositionCanon = unitPositionCanon;
     UnitSignals       = unitSignals;
     CellSignals       = cellSignals;
 }
Esempio n. 9
0
        public CellPossessionCanon(
            CitySignals citySignals, HexCellSignals cellSignals,
            IPossessionRelationship <IHexCell, ICity> cityLocationCanon
            )
        {
            CitySignals       = citySignals;
            CityLocationCanon = cityLocationCanon;

            citySignals.BeingDestroyed.Subscribe(OnCityBeingDestroyed);

            cellSignals.MapBeingClearedSignal.Subscribe(unit => Clear(false));
        }
Esempio n. 10
0
        public void CommonInstall()
        {
            MockCityLocationCanon = new Mock <IPossessionRelationship <IHexCell, ICity> >();

            CellSignals = new HexCellSignals();

            Container.Bind <CitySignals>().AsSingle();
            Container.Bind <HexCellSignals>().FromInstance(CellSignals);

            Container.Bind <CellPossessionCanon>().AsSingle();

            Container.Bind <IPossessionRelationship <IHexCell, ICity> >().FromInstance(MockCityLocationCanon.Object);
        }
 public void InjectDependencies(
     IImprovementValidityLogic improvementValidityLogic,
     IImprovementLocationCanon improvementLocationCanon,
     IImprovementFactory improvementFactory, HexCellSignals cellSignals,
     [Inject(Id = "Available Improvement Templates")] IEnumerable <IImprovementTemplate> availableImprovementTemplates
     )
 {
     ImprovementValidityLogic = improvementValidityLogic;
     ImprovementLocationCanon = improvementLocationCanon;
     ImprovementFactory       = improvementFactory;
     CellSignals = cellSignals;
     AvailableImprovementTemplates = availableImprovementTemplates;
 }
        public CityPossessionCanon(
            CitySignals citySignals, CivilizationSignals civSignals,
            IPossessionRelationship <ICity, IHexCell> cellPossessionCanon,
            HexCellSignals cellSignals
            )
        {
            CivSignals = civSignals;

            citySignals.BeingDestroyed.Subscribe(OnCityBeingDestroyed);
            civSignals.CivBeingDestroyed.Subscribe(OnCivilizationBeingDestroyed);

            cellSignals.MapBeingClearedSignal.Subscribe(unit => Clear(false));
        }
        public void CommonInstall()
        {
            MockGrid = new Mock <IHexGrid>();
            MockRiverCornerValidityLogic = new Mock <IRiverCornerValidityLogic>();

            CellSignals = new HexCellSignals();

            Container.Bind <IHexGrid>                 ().FromInstance(MockGrid.Object);
            Container.Bind <IRiverCornerValidityLogic>().FromInstance(MockRiverCornerValidityLogic.Object);
            Container.Bind <HexCellSignals>           ().FromInstance(CellSignals);

            Container.Bind <RiverCanon>().AsSingle();
        }
 public void InjectDependencies(
     ICivilizationFactory civilizationFactory, IUnitFactory unitFactory, HexCellSignals cellSignals,
     [Inject(Id = "Available Unit Templates")] IEnumerable <IUnitTemplate> availableTemplates,
     IUnitPositionCanon unitPositionCanon, UnitSignals unitSignals
     )
 {
     CivilizationFactory = civilizationFactory;
     UnitFactory         = unitFactory;
     CellSignals         = cellSignals;
     AvailableTemplates  = availableTemplates.ToList();
     UnitPositionCanon   = unitPositionCanon;
     UnitSignals         = unitSignals;
 }
 public void InjectDependencies(
     IPossessionRelationship <ICity, IHexCell> possessionCanon, CitySignals citySignals,
     HexCellSignals hexCellSignals, DiContainer container, IBorderExpansionLogic borderExpansionLogic,
     IPossessionRelationship <ICity, IHexCell> cellPossessionCanon
     )
 {
     PossessionCanon      = possessionCanon;
     CitySignals          = citySignals;
     HexCellSignals       = hexCellSignals;
     Container            = container;
     BorderExpansionLogic = borderExpansionLogic;
     CellPossessionCanon  = cellPossessionCanon;
 }
        public HexCellSignalLogic(HexCellSignals cellSignals,
                                  [Inject(Id = "Coroutine Invoker")] MonoBehaviour coroutineInvoker,
                                  [Inject(Id = "Map Tile Hover Delay")] float hoverDelay
                                  )
        {
            BeginHoverSubject = new Subject <IHexCell>();
            EndHoverSubject   = new Subject <IHexCell>();

            cellSignals.PointerEnter.Subscribe(OnEnterSignal);
            cellSignals.PointerExit.Subscribe(OnExitSignal);

            CoroutineInvoker = coroutineInvoker;
            HoverDelay       = hoverDelay;
        }
        public void CommonInstall()
        {
            MockGameCore = new Mock <IGameCore>();

            VisibilitySignals = new VisibilitySignals();
            CellSignals       = new HexCellSignals();

            Container.Bind <IGameCore>        ().FromInstance(MockGameCore.Object);

            Container.Bind <VisibilitySignals>().FromInstance(VisibilitySignals);
            Container.Bind <HexCellSignals>   ().FromInstance(CellSignals);

            Container.Bind <ExplorationCanon>().AsSingle();
        }
 public void InjectDependencies(
     ICivilizationFactory civilizationFactory, ICityValidityLogic cityValidityLogic,
     HexCellSignals cellSignals, CitySignals citySignals, ICityFactory cityFactory,
     IPossessionRelationship <IHexCell, ICity> cityLocationCanon,
     IPossessionRelationship <ICivilization, ICity> cityPossessionCanon
     )
 {
     CivilizationFactory = civilizationFactory;
     CityValidityLogic   = cityValidityLogic;
     CellSignals         = cellSignals;
     CitySignals         = citySignals;
     CityFactory         = cityFactory;
     CityLocationCanon   = cityLocationCanon;
     CityPossessionCanon = cityPossessionCanon;
 }
Esempio n. 19
0
        public UnitPositionCanon(
            UnitSignals signals, IHexMapSimulationConfig hexSimulationConfig,
            IPossessionRelationship <ICivilization, IUnit> unitPossessionCanon,
            IPossessionRelationship <IHexCell, ICity> cityLocationCanon,
            IPossessionRelationship <ICivilization, ICity> cityPossessionCanon,
            HexCellSignals cellSignals
            )
        {
            Signals             = signals;
            HexSimulationConfig = hexSimulationConfig;
            UnitPossessionCanon = unitPossessionCanon;
            CityLocationCanon   = cityLocationCanon;
            CityPossessionCanon = cityPossessionCanon;

            cellSignals.MapBeingClearedSignal.Subscribe(unit => Clear(false));
        }
Esempio n. 20
0
 public void InjectDependencies(
     UnitSignals unitSignals, HexCellSignals cellSignals, CitySignals citySignals,
     IUnitPositionCanon unitPositionCanon, ICombatExecuter combatExecuter,
     UIStateMachineBrain brain, IPossessionRelationship <IHexCell, ICity> cityLocationCanon,
     [Inject(Id = "Ranged Attack State Displays")] List <UnitDisplayBase> displaysToManage,
     [Inject(Id = "Combat Summary Display")] CombatSummaryDisplay combatSummaryDisplay,
     IHexCellOverlayManager overlayManager
     )
 {
     UnitSignals          = unitSignals;
     CellSignals          = cellSignals;
     CitySignals          = citySignals;
     UnitPositionCanon    = unitPositionCanon;
     CombatExecuter       = combatExecuter;
     Brain                = brain;
     CityLocationCanon    = cityLocationCanon;
     DisplaysToManage     = displaysToManage;
     CombatSummaryDisplay = combatSummaryDisplay;
     OverlayManager       = overlayManager;
 }
Esempio n. 21
0
        public void CommonInstall()
        {
            AllCities.Clear();

            MockHexSimulationConfig = new Mock <IHexMapSimulationConfig>();
            MockUnitPossessionCanon = new Mock <IPossessionRelationship <ICivilization, IUnit> >();
            MockCityLocationCanon   = new Mock <IPossessionRelationship <IHexCell, ICity> >();
            MockCityPossessionCanon = new Mock <IPossessionRelationship <ICivilization, ICity> >();

            CellSignals = new HexCellSignals();

            Container.Bind <IHexMapSimulationConfig>                      ().FromInstance(MockHexSimulationConfig.Object);
            Container.Bind <IPossessionRelationship <ICivilization, IUnit> >().FromInstance(MockUnitPossessionCanon.Object);
            Container.Bind <IPossessionRelationship <IHexCell, ICity> >     ().FromInstance(MockCityLocationCanon.Object);
            Container.Bind <IPossessionRelationship <ICivilization, ICity> >().FromInstance(MockCityPossessionCanon.Object);

            Container.Bind <HexCellSignals>().FromInstance(CellSignals);

            Container.Bind <UnitPositionCanon>().AsSingle();

            Container.Bind <UnitSignals>().AsSingle();
        }
Esempio n. 22
0
 public void InjectDependencies(IHexGrid grid, HexCellSignals cellSignals)
 {
     Grid        = grid;
     CellSignals = cellSignals;
 }