Пример #1
0
        public TerrainRefreshResponder(
            IHexGrid grid, IPossessionRelationship <ICity, IHexCell> cellPossessionCanon,
            CitySignals citySignals, CivilizationSignals civSignals, HexCellSignals cellSignals,
            ImprovementSignals improvementSignals, ResourceSignals resourceSignals
            )
        {
            Grid = grid;
            CellPossessionCanon = cellPossessionCanon;

            citySignals.LostCellFromBoundaries.Subscribe(OnCellPossessionChanged);
            citySignals.GainedCellToBoundaries.Subscribe(OnCellPossessionChanged);
            citySignals.CityAddedToLocation.Subscribe(OnCityChangedLocation);
            citySignals.CityRemovedFromLocation.Subscribe(OnCityChangedLocation);

            civSignals.CivGainedCity.Subscribe(OnCityPossessionChanged);
            civSignals.CivLostCity.Subscribe(OnCityPossessionChanged);

            cellSignals.TerrainChanged.Subscribe(OnCellTerrainChanged);
            cellSignals.ShapeChanged.Subscribe(OnCellShapeChanged);
            cellSignals.VegetationChanged.Subscribe(OnCellVegetationChanged);
            cellSignals.FeatureChanged.Subscribe(OnCellFeatureChanged);
            cellSignals.RoadStatusChanged.Subscribe(OnCellRoadStatusChanged);
            cellSignals.GainedRiveredEdge.Subscribe(OnCellRiverChanged);
            cellSignals.LostRiveredEdge.Subscribe(OnCellRiverChanged);
            cellSignals.GainedEncampment.Subscribe(OnCellEncampmentChanged);
            cellSignals.LostEncampment.Subscribe(OnCellEncampmentChanged);

            improvementSignals.AddedToLocation.Subscribe(OnCellImprovementsChanged);
            improvementSignals.RemovedFromLocation.Subscribe(OnCellImprovementsChanged);

            resourceSignals.NodeAddedToLocation.Subscribe(OnCellNodesChanged);
            resourceSignals.NodeRemovedFromLocation.Subscribe(OnCellNodesChanged);
        }
        public void CommonInstall()
        {
            MockResourceTransferCanon     = new Mock <IResourceTransferCanon>();
            MockImprovementLocationCanon  = new Mock <IImprovementLocationCanon>();
            MockResourceNodeLocationCanon = new Mock <IPossessionRelationship <IHexCell, IResourceNode> >();
            MockCivTerritoryLogic         = new Mock <ICivilizationTerritoryLogic>();
            MockCityTerritoryCanon        = new Mock <IPossessionRelationship <ICity, IHexCell> >();
            MockCityPossessionCanon       = new Mock <IPossessionRelationship <ICivilization, ICity> >();

            ImprovementSignals = new ImprovementSignals();
            ResourceSignals    = new ResourceSignals();
            CivSignals         = new CivilizationSignals();

            Container.Bind <IResourceTransferCanon>                          ().FromInstance(MockResourceTransferCanon.Object);
            Container.Bind <IImprovementLocationCanon>                       ().FromInstance(MockImprovementLocationCanon.Object);
            Container.Bind <IPossessionRelationship <IHexCell, IResourceNode> >().FromInstance(MockResourceNodeLocationCanon.Object);
            Container.Bind <ICivilizationTerritoryLogic>                     ().FromInstance(MockCivTerritoryLogic.Object);
            Container.Bind <IPossessionRelationship <ICity, IHexCell> >        ().FromInstance(MockCityTerritoryCanon.Object);
            Container.Bind <IPossessionRelationship <ICivilization, ICity> >   ().FromInstance(MockCityPossessionCanon.Object);

            Container.Bind <ImprovementSignals> ().FromInstance(ImprovementSignals);
            Container.Bind <ResourceSignals>    ().FromInstance(ResourceSignals);
            Container.Bind <CivilizationSignals>().FromInstance(CivSignals);

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

            Container.Bind <ResourceTransferCanonSynchronizer>().AsSingle().NonLazy();
        }
Пример #3
0
        public void CommonInstall()
        {
            AllCities.Clear();
            AllUnits.Clear();

            MockCivConfig           = new Mock <ICivilizationConfig>();
            MockCanBuildCityLogic   = new Mock <ICanBuildCityLogic>();
            MockCityPossessionCanon = new Mock <IPossessionRelationship <ICivilization, ICity> >();
            MockUnitPossessionCanon = new Mock <IPossessionRelationship <ICivilization, IUnit> >();

            CivSignals = new CivilizationSignals();

            MockCityPossessionCanon.Setup(canon => canon.GetPossessionsOfOwner(It.IsAny <ICivilization>()))
            .Returns(AllCities);

            MockUnitPossessionCanon.Setup(canon => canon.GetPossessionsOfOwner(It.IsAny <ICivilization>()))
            .Returns(AllUnits);

            Container.Bind <ICivilizationConfig>                          ().FromInstance(MockCivConfig.Object);
            Container.Bind <ICanBuildCityLogic>                           ().FromInstance(MockCanBuildCityLogic.Object);
            Container.Bind <IPossessionRelationship <ICivilization, ICity> >().FromInstance(MockCityPossessionCanon.Object);
            Container.Bind <IPossessionRelationship <ICivilization, IUnit> >().FromInstance(MockUnitPossessionCanon.Object);

            Container.Bind <CivilizationSignals>                          ().FromInstance(CivSignals);

            Container.Bind <CivDefeatExecutor>().AsSingle();
        }
Пример #4
0
 public ResourceOngoingDiplomaticExchange(
     IResourceTransferCanon resourceTransferCanon, CivilizationSignals civSignals
     )
 {
     ResourceTransferCanon = resourceTransferCanon;
     CivSignals            = civSignals;
 }
        public void CommonInstall()
        {
            CivSignals = new CivilizationSignals();

            Container.Bind <CivilizationSignals>().FromInstance(CivSignals);

            Container.Bind <CivDiscoveryCanon>().AsSingle();
        }
 public FreeGreatPeopleCanon(
     CivilizationSignals civSignals, CitySignals citySignals,
     IPossessionRelationship <ICivilization, ICity> cityPossessionCanon
     )
 {
     CivSignals          = civSignals;
     CitySignals         = citySignals;
     CityPossessionCanon = cityPossessionCanon;
 }
Пример #7
0
 public SocialPolicyCanon(
     ITechCanon techCanon, CivilizationSignals civSignals,
     [Inject(Id = "Available Policy Trees")] IEnumerable <IPolicyTreeDefinition> availablePolicyTrees
     )
 {
     TechCanon            = techCanon;
     CivSignals           = civSignals;
     AvailablePolicyTrees = availablePolicyTrees;
 }
        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());
        }
Пример #9
0
        public void CommonInstall()
        {
            CivSignals              = new CivilizationSignals();
            CitySignals             = new CitySignals();
            MockCityPossessionCanon = new Mock <IPossessionRelationship <ICivilization, ICity> >();

            Container.Bind <CivilizationSignals>                          ().FromInstance(CivSignals);
            Container.Bind <CitySignals>                                  ().FromInstance(CitySignals);
            Container.Bind <IPossessionRelationship <ICivilization, ICity> >().FromInstance(MockCityPossessionCanon.Object);

            Container.Bind <FreeGreatPeopleCanon>().AsSingle();
        }
Пример #10
0
 public GreatPersonFactory(
     ICapitalCityCanon capitalCityCanon, IPossessionRelationship <IHexCell, ICity> cityLocationCanon,
     IUnitFactory unitFactory, IUnitConfig unitConfig, IHexGrid grid, CivilizationSignals civSignals
     )
 {
     CapitalCityCanon  = capitalCityCanon;
     CityLocationCanon = cityLocationCanon;
     UnitFactory       = unitFactory;
     UnitConfig        = unitConfig;
     Grid       = grid;
     CivSignals = civSignals;
 }
Пример #11
0
        public void CommonInstall()
        {
            MockCivConfig  = new Mock <ICivilizationConfig>();
            MockUnitConfig = new Mock <IUnitConfig>();
            CivSignals     = new CivilizationSignals();

            Container.Bind <ICivilizationConfig>().FromInstance(MockCivConfig.Object);
            Container.Bind <IUnitConfig>        ().FromInstance(MockUnitConfig.Object);
            Container.Bind <CivilizationSignals>().FromInstance(CivSignals);

            Container.Bind <GreatPersonCanon>().AsSingle();
        }
        public void CommonInstall()
        {
            MockCapitalCityCanon    = new Mock <ICapitalCityCanon>();
            MockCityPossessionCanon = new Mock <IPossessionRelationship <ICivilization, ICity> >();
            CivSignals = new CivilizationSignals();

            Container.Bind <ICapitalCityCanon>                            ().FromInstance(MockCapitalCityCanon.Object);
            Container.Bind <IPossessionRelationship <ICivilization, ICity> >().FromInstance(MockCityPossessionCanon.Object);
            Container.Bind <CivilizationSignals>                          ().FromInstance(CivSignals);

            Container.Bind <CapitalCitySynchronizer>().AsSingle();
        }
Пример #13
0
 public void InjectDependencies(
     ICivilizationFactory civilizationFactory, IPlayerFactory playerFactory,
     CivilizationSignals civSignals, ReadOnlyCollection <ICivilizationTemplate> civTemplates,
     IBrainPile brainPile
     )
 {
     CivilizationFactory = civilizationFactory;
     PlayerFactory       = playerFactory;
     CivSignals          = civSignals;
     CivTemplates        = civTemplates;
     BrainPile           = brainPile;
 }
Пример #14
0
        public void CommonInstall()
        {
            MockFreeBuildingApplier = new Mock <IFreeBuildingApplier>();
            MockCityPossessionCanon = new Mock <IPossessionRelationship <ICivilization, ICity> >();
            CivSignals = new CivilizationSignals();

            Container.Bind <IFreeBuildingApplier>                         ().FromInstance(MockFreeBuildingApplier.Object);
            Container.Bind <IPossessionRelationship <ICivilization, ICity> >().FromInstance(MockCityPossessionCanon.Object);
            Container.Bind <CivilizationSignals>                          ().FromInstance(CivSignals);

            Container.Bind <FreeBuildingsCanon>().AsSingle();
        }
        public void CommonInstall()
        {
            MockResourceLockingCanon = new Mock <IResourceLockingCanon>();
            CivSignals  = new CivilizationSignals();
            UnitSignals = new UnitSignals();

            Container.Bind <IResourceLockingCanon>().FromInstance(MockResourceLockingCanon.Object);
            Container.Bind <CivilizationSignals>  ().FromInstance(CivSignals);
            Container.Bind <UnitSignals>          ().FromInstance(UnitSignals);

            Container.Bind <UnitPossessionCanon>().AsSingle();
        }
Пример #16
0
 public void InjectDependencies(
     ISocialPolicyCostLogic policyCostLogic, ICivilizationYieldLogic yieldLogic,
     [Inject(Id = "Available Policy Trees")] IEnumerable <IPolicyTreeDefinition> availablePolicyTrees,
     CivilizationSignals civSignals, DiContainer container
     )
 {
     PolicyCostLogic      = policyCostLogic;
     YieldLogic           = yieldLogic;
     AvailablePolicyTrees = availablePolicyTrees;
     CivSignals           = civSignals;
     Container            = container;
 }
        public void CommonInstall()
        {
            MockExtractionLogic = new Mock <IResourceExtractionLogic>();
            MockLockingCanon    = new Mock <IResourceLockingCanon>();

            CivSignals = new CivilizationSignals();

            Container.Bind <IResourceExtractionLogic>().FromInstance(MockExtractionLogic.Object);
            Container.Bind <IResourceLockingCanon>   ().FromInstance(MockLockingCanon.Object);

            Container.Bind <CivilizationSignals>().FromInstance(CivSignals);

            Container.Bind <ResourceTransferCanon>().AsSingle();
        }
        public FreeBuildingsPolicyResponder(
            IFreeBuildingsCanon freeBuildingsCanon, CivilizationSignals civSignals
            )
        {
            FreeBuildingsCanon = freeBuildingsCanon;

            civSignals.CivUnlockedPolicy.Subscribe(OnCivUnlockedPolicy);
            civSignals.CivLockedPolicy.Subscribe(OnCivLockedPolicy);

            civSignals.CivUnlockedPolicyTree.Subscribe(OnCivUnlockedPolicyTree);
            civSignals.CivLockedPolicyTree.Subscribe(OnCivLockedPolicyTree);

            civSignals.CivFinishedPolicyTree.Subscribe(OnCivFinishedPolicyTree);
            civSignals.CivUnfinishedPolicyTree.Subscribe(OnCivUnfinishedPolicyTree);
        }
 public FreeUnitsResponder(
     CivilizationSignals civSignals, CitySignals citySignals, IUnitFactory unitFactory,
     IHexGrid grid, IPossessionRelationship <IHexCell, ICity> cityLocationCanon,
     IPossessionRelationship <ICivilization, ICity> cityPossessionCanon,
     ICapitalCityCanon capitalCityCanon
     )
 {
     CivSignals          = civSignals;
     CitySignals         = citySignals;
     UnitFactory         = unitFactory;
     Grid                = grid;
     CityLocationCanon   = cityLocationCanon;
     CityPossessionCanon = cityPossessionCanon;
     CapitalCityCanon    = capitalCityCanon;
 }
Пример #20
0
        public TechCanon(
            [Inject(Id = "Available Techs")] List <ITechDefinition> availableTechs,
            [Inject(Id = "Available Abilities")] IEnumerable <IAbilityDefinition> availableAbilities,
            [Inject(Id = "Available Resources")] IEnumerable <IResourceDefinition> availableResources,
            [Inject(Id = "Available Improvement Templates")] IEnumerable <IImprovementTemplate> availableImprovements,
            CivilizationSignals civSignals
            )
        {
            _availableTechs       = availableTechs;
            AvailableAbilities    = availableAbilities;
            AvailableResources    = availableResources;
            AvailableImprovements = availableImprovements;
            CivSignals            = civSignals;

            civSignals.CivBeingDestroyed.Subscribe(OnCivilizationBeingDestroyed);
        }
Пример #21
0
        public void CommonInstall()
        {
            AvailablePolicies.Clear();
            AvailableTrees.Clear();

            MockTechCanon = new Mock <ITechCanon>();

            CivSignals = new CivilizationSignals();

            Container.Bind <ITechCanon>         ().FromInstance(MockTechCanon.Object);
            Container.Bind <CivilizationSignals>().FromInstance(CivSignals);

            Container.Bind <IEnumerable <IPolicyTreeDefinition> >().WithId("Available Policy Trees").FromInstance(AvailableTrees);

            Container.Bind <SocialPolicyCanon>().AsSingle();
        }
Пример #22
0
        public void CommonInstall()
        {
            MockCityPossessionCanon = new Mock <IPossessionRelationship <ICivilization, ICity> >();
            MockCivConfig           = new Mock <ICivilizationConfig>();
            CivSignals       = new CivilizationSignals();
            MockCivModifiers = new Mock <ICivModifiers>();

            MockGoldenAgeLengthModifier = new Mock <ICivModifier <float> >();

            MockCivModifiers.Setup(modifiers => modifiers.GoldenAgeLength).Returns(MockGoldenAgeLengthModifier.Object);

            Container.Bind <IPossessionRelationship <ICivilization, ICity> >().FromInstance(MockCityPossessionCanon.Object);
            Container.Bind <ICivilizationConfig>                          ().FromInstance(MockCivConfig.Object);
            Container.Bind <CivilizationSignals>                          ().FromInstance(CivSignals);
            Container.Bind <ICivModifiers>                                ().FromInstance(MockCivModifiers.Object);

            Container.Bind <GoldenAgeCanon>().AsSingle();
        }
Пример #23
0
        public void CommonInstall()
        {
            AvailableTechs.Clear();
            AvailableResources.Clear();
            AvailableAbilities.Clear();
            AvailableImprovements.Clear();

            CivSignals = new CivilizationSignals();

            Container.Bind <List <ITechDefinition> >            ().WithId("Available Techs").FromInstance(AvailableTechs);
            Container.Bind <IEnumerable <IResourceDefinition> > ().WithId("Available Resources").FromInstance(AvailableResources);
            Container.Bind <IEnumerable <IAbilityDefinition> >  ().WithId("Available Abilities").FromInstance(AvailableAbilities);
            Container.Bind <IEnumerable <IImprovementTemplate> >().WithId("Available Improvement Templates").FromInstance(AvailableImprovements);

            Container.Bind <CivilizationSignals>().FromInstance(CivSignals);

            Container.Bind <TechCanon>().AsSingle();
        }
        public void CommonInstall()
        {
            MockYieldLogic         = new Mock <ICivilizationYieldLogic>();
            MockTechCanon          = new Mock <ITechCanon>();
            CivSignals             = new CivilizationSignals();
            MockGreatPersonCanon   = new Mock <IGreatPersonCanon>();
            MockGreatPersonFactory = new Mock <IGreatPersonFactory>();
            MockGoldenAgeCanon     = new Mock <IGoldenAgeCanon>();
            MockCivHappinessLogic  = new Mock <ICivilizationHappinessLogic>();

            Container.Bind <ICivilizationYieldLogic>    ().FromInstance(MockYieldLogic.Object);
            Container.Bind <ITechCanon>                 ().FromInstance(MockTechCanon.Object);
            Container.Bind <CivilizationSignals>        ().FromInstance(CivSignals);
            Container.Bind <IGreatPersonCanon>          ().FromInstance(MockGreatPersonCanon.Object);
            Container.Bind <IGreatPersonFactory>        ().FromInstance(MockGreatPersonFactory.Object);
            Container.Bind <IGoldenAgeCanon>            ().FromInstance(MockGoldenAgeCanon.Object);
            Container.Bind <ICivilizationHappinessLogic>().FromInstance(MockCivHappinessLogic.Object);
        }
Пример #25
0
        public UIStateMachineBrain(
            [Inject(Id = "UI Animator")] Animator animator, CompositeCitySignals compositeCitySignals,
            CompositeUnitSignals compositeUnitSignals, PlayerSignals playerSignals, IGameCamera gameCamera,
            DescriptionTooltip descriptionTooltip, CellHoverDisplay cellHoverDisplay,
            CivilizationSignals civSignals, CoreSignals coreSignals, UnitSignals unitSignals
            )
        {
            Animator             = animator;
            CompositeCitySignals = compositeCitySignals;
            CompositeUnitSignals = compositeUnitSignals;
            PlayerSignals        = playerSignals;
            GameCamera           = gameCamera;
            DescriptionTooltip   = descriptionTooltip;
            CellHoverDisplay     = cellHoverDisplay;
            CivSignals           = civSignals;
            UnitSignals          = unitSignals;

            coreSignals.TurnBegan.Subscribe(OnTurnBegan);
        }
Пример #26
0
        public void CommonInstall()
        {
            MockCapitalCityCanon  = new Mock <ICapitalCityCanon>();
            MockCityLocationCanon = new Mock <IPossessionRelationship <IHexCell, ICity> >();
            MockUnitFactory       = new Mock <IUnitFactory>();
            MockUnitConfig        = new Mock <IUnitConfig>();
            MockGrid = new Mock <IHexGrid>();

            CivSignals = new CivilizationSignals();

            Container.Bind <ICapitalCityCanon>                       ().FromInstance(MockCapitalCityCanon.Object);
            Container.Bind <IPossessionRelationship <IHexCell, ICity> >().FromInstance(MockCityLocationCanon.Object);
            Container.Bind <IUnitFactory>                            ().FromInstance(MockUnitFactory.Object);
            Container.Bind <IUnitConfig>                             ().FromInstance(MockUnitConfig.Object);
            Container.Bind <IHexGrid>                                ().FromInstance(MockGrid.Object);
            Container.Bind <CivilizationSignals>                     ().FromInstance(CivSignals);

            Container.Bind <GreatPersonFactory>().AsSingle();
        }