예제 #1
0
        public SimpleFixedCityLayer(ISet<ICity> cities, ICityFactory<City> cityFactory)
        {
            Cities = cities;

            Cities.Add(cityFactory.Create(RedCityTile, Red));
            Cities.Add(cityFactory.Create(BlueCityTile, Blue));
        }
예제 #2
0
 public CityRepository(
     IDatabaseContextFactory databaseContextFactory,
     ICityFactory cityFactory)
 {
     _databaseContextFactory = databaseContextFactory;
     _cityFactory            = cityFactory;
 }
예제 #3
0
 public LoginCommandsModule(IActionFactory actionFactory,
                            ITribeManager tribeManager,
                            IDbManager dbManager,
                            ILocker locker,
                            IWorld world,
                            Procedure procedure,
                            ICityFactory cityFactory,
                            ILocationStrategyFactory locationStrategyFactory,
                            IBarbarianTribeManager barbarianTribeManager,
                            CallbackProcedure callbackProcedure,
                            IChannel channel,
                            IThemeManager themeManager,
                            IPlayerFactory playerFactory,
                            ILoginHandler loginHandler)
 {
     this.actionFactory           = actionFactory;
     this.tribeManager            = tribeManager;
     this.dbManager               = dbManager;
     this.locker                  = locker;
     this.world                   = world;
     this.procedure               = procedure;
     this.callbackProcedure       = callbackProcedure;
     this.channel                 = channel;
     this.themeManager            = themeManager;
     this.playerFactory           = playerFactory;
     this.loginHandler            = loginHandler;
     this.cityFactory             = cityFactory;
     this.locationStrategyFactory = locationStrategyFactory;
     this.barbarianTribeManager   = barbarianTribeManager;
 }
예제 #4
0
 public AddressService(IUnitOfWork unitOfWork,
                       ICityFactory cityFactory,
                       IProvinceFactory provinceFactory)
 {
     this.unitOfWork      = unitOfWork;
     this.provinceFactory = provinceFactory;
     this.cityFactory     = cityFactory;
 }
예제 #5
0
        public void Create_ReturnsAUnitWithALocationAndAnOwner(ITile location, Player owner, ICityFactory<City> factory)
        {
            // :::: ACT ::::
            var city = factory.Create(location, owner);

            // :::: ASSERT ::::
            city.Location.Should().Be(location);
            city.Owner.Should().Be(owner);
        }
 public CitySackResponder(
     IPossessionRelationship <ICivilization, IUnit> unitPossessionCanon, ICityFactory cityFactory,
     IPossessionRelationship <ICivilization, ICity> cityPossessionCanon
     )
 {
     UnitPossessionCanon = unitPossessionCanon;
     CityFactory         = cityFactory;
     CityPossessionCanon = cityPossessionCanon;
 }
        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 WonderBuildingRestriction(
     IPossessionRelationship <ICivilization, ICity> cityPossessionCanon,
     IPossessionRelationship <ICity, IBuilding> buildingPossessionCanon,
     ICityFactory cityFactory
     )
 {
     CityPossessionCanon     = cityPossessionCanon;
     BuildingPossessionCanon = buildingPossessionCanon;
     CityFactory             = cityFactory;
 }
예제 #9
0
        public CityService()
        {
            _cityFactory = CityFactorySelector.GetCityFactory();
            _carFactory = CarFactorySelector.GetCarFactory();

            Mapper.CreateMap<City, CityDto>();
            Mapper.CreateMap<Passenger, PassengerDto>();
            Mapper.CreateMap<Car, CarDto>();
            Mapper.CreateMap<CityPosition, CityPositionDto>();
        }
예제 #10
0
 public CityValidityLogic(
     IPossessionRelationship <ICity, IHexCell> tilePossessionCanon,
     IHexGrid hexGrid, ICityFactory cityFactory, ICityConfig config,
     IPossessionRelationship <IHexCell, ICity> cityLocationCanon
     )
 {
     CellPossessionCanon = tilePossessionCanon;
     HexGrid             = hexGrid;
     CityFactory         = cityFactory;
     Config            = config;
     CityLocationCanon = cityLocationCanon;
 }
예제 #11
0
 public FoundCityAbilityHandler(ICityValidityLogic cityValidityLogic,
                                IUnitPositionCanon unitPositionCanon, ICityFactory cityFactory,
                                IPossessionRelationship <ICivilization, IUnit> unitOwnershipCanon,
                                IPossessionRelationship <ICivilization, ICity> cityPossessionCanon
                                )
 {
     CityValidityLogic   = cityValidityLogic;
     UnitPositionCanon   = unitPositionCanon;
     CityFactory         = cityFactory;
     UnitOwnershipCanon  = unitOwnershipCanon;
     CityPossessionCanon = cityPossessionCanon;
 }
        public CityProductionResolver(
            CitySignals citySignals, IPossessionRelationship <ICivilization, ICity> cityPossessionCanon,
            ICityFactory cityFactory, IBuildingProductionValidityLogic buildingValidityLogic,
            CoreSignals coreSignals
            )
        {
            CitySignals           = citySignals;
            CityPossessionCanon   = cityPossessionCanon;
            CityFactory           = cityFactory;
            BuildingValidityLogic = buildingValidityLogic;

            CitySignals.GainedBuilding.Subscribe(OnCityGainedBuilding);
            coreSignals.RoundBegan.Subscribe(OnRoundBegan);
        }
 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;
 }
예제 #14
0
        /// <summary>
        ///     Creates a city under the specified player with initial troop and main building
        /// </summary>
        public virtual void CreateCity(ICityFactory cityFactory, IPlayer player, string cityName, byte level, Position cityPosition, IBarbarianTribeManager barbarianTribeManager, out ICity city)
        {
            city = cityFactory.CreateCity(world.Cities.GetNextCityId(),
                                          player,
                                          cityName,
                                          cityPosition,
                                          formula.GetInitialCityResources(),
                                          formula.GetInitialCityRadius(),
                                          formula.GetInitialAp(),
                                          Theme.DEFAULT_THEME_ID,
                                          Theme.DEFAULT_THEME_ID,
                                          Theme.DEFAULT_THEME_ID,
                                          Theme.DEFAULT_THEME_ID);

            var        mainBuildingPosition = cityPosition.Left();
            IStructure mainBuilding         = city.CreateStructure(2000, level, mainBuildingPosition.X, mainBuildingPosition.Y);

            player.Add(city);

            world.Cities.Add(city);

            city.BeginUpdate();

            mainBuilding.BeginUpdate();
            world.Regions.Add(mainBuilding);
            mainBuilding.EndUpdate();

            var defaultTroop = city.CreateTroopStub();

            defaultTroop.BeginUpdate();
            defaultTroop.AddFormation(FormationType.Normal);
            defaultTroop.AddFormation(FormationType.Garrison);
            defaultTroop.AddFormation(FormationType.InBattle);
            defaultTroop.EndUpdate();

            RecalculateCityResourceRates(city);
            SetResourceCap(city);

            city.EndUpdate();

            if (player.GetCityCount() == 1)
            {
                barbarianTribeManager.CreateBarbarianTribeNear(1, 10, city.PrimaryPosition.X, city.PrimaryPosition.Y, 10);
            }
        }
예제 #15
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);
        }
예제 #16
0
 public CityComposer(
     IHexGrid grid,
     ICityFactory cityFactory,
     IPossessionRelationship <ICivilization, ICity> cityPossessionCanon,
     IPossessionRelationship <IHexCell, ICity> cityLocationCanon,
     ICivilizationFactory civilizationFactory,
     List <IBuildingTemplate> availableBuildingTemplates,
     [Inject(Id = "Available Unit Templates")] IEnumerable <IUnitTemplate> availableUnitTemplates,
     IProductionProjectFactory projectFactory,
     IFreeBuildingApplier freeBuildingApplier
     )
 {
     Grid                       = grid;
     CityFactory                = cityFactory;
     CityPossessionCanon        = cityPossessionCanon;
     CityLocationCanon          = cityLocationCanon;
     CivilizationFactory        = civilizationFactory;
     AvailableBuildingTemplates = availableBuildingTemplates;
     AvailableUnitTemplates     = availableUnitTemplates;
     ProjectFactory             = projectFactory;
     FreeBuildingApplier        = freeBuildingApplier;
 }
예제 #17
0
 public CityCreatePassiveAction(uint cityId,
                                uint x,
                                uint y,
                                string cityName,
                                IActionFactory actionFactory,
                                ICityRemoverFactory cityRemoverFactory,
                                Formula formula,
                                IWorld world,
                                ILocker locker,
                                IObjectTypeFactory objectTypeFactory,
                                IStructureCsvFactory structureCsvFactory,
                                ICityFactory cityFactory,
                                Procedure procedure,
                                IBarbarianTribeManager barbarianTribeManager,
                                CallbackProcedure callbackProcedure)
     : this(actionFactory, cityRemoverFactory, formula, world, locker, objectTypeFactory, structureCsvFactory, cityFactory, procedure, barbarianTribeManager, callbackProcedure)
 {
     this.cityId   = cityId;
     this.x        = x;
     this.y        = y;
     this.cityName = cityName;
 }
예제 #18
0
        public Generator(int population, int cityCount, int generations, double mutationRate, int seed)
        {
            this.logger = new GeneratorLogger();

            this.population   = population;
            this.cityCount    = cityCount;
            this.generations  = generations;
            this.mutationRate = mutationRate;
            this.seed         = seed;

            this.abstractFactory = new AbstractFactory();
            this.cityFactory     = abstractFactory.CreateCityFactory(this.seed);
            this.breedingFactory = abstractFactory.CreateBreedingFactory();
            ISolutionFactory solutionFactory = abstractFactory.CreateSolutionFactory();

            IMutater mutater = breedingFactory.CreateMutater(mutationRate);

            this.solutionFactory = solutionFactory;
            this.bestFit         = new BestFit();

            this.breeder = breedingFactory.CreateBreeder(mutater, solutionFactory);
        }
예제 #19
0
 public CityCreatePassiveAction(IActionFactory actionFactory,
                                ICityRemoverFactory cityRemoverFactory,
                                Formula formula,
                                IWorld world,
                                ILocker locker,
                                IObjectTypeFactory objectTypeFactory,
                                IStructureCsvFactory structureCsvFactory,
                                ICityFactory cityFactory,
                                Procedure procedure,
                                IBarbarianTribeManager barbarianTribeManager,
                                CallbackProcedure callbackProcedure)
 {
     this.actionFactory      = actionFactory;
     this.cityRemoverFactory = cityRemoverFactory;
     this.formula            = formula;
     this.world                 = world;
     this.locker                = locker;
     this.objectTypeFactory     = objectTypeFactory;
     this.structureCsvFactory   = structureCsvFactory;
     this.cityFactory           = cityFactory;
     this.procedure             = procedure;
     this.barbarianTribeManager = barbarianTribeManager;
     this.callbackProcedure     = callbackProcedure;
 }
예제 #20
0
 public CityRoundExecuter(ICityFactory cityFactory)
 {
     CityFactory = cityFactory;
 }
 public WeatherForecastToCityTranslator(ICityFactory cityFactory)
 {
     _cityFactory = cityFactory;
 }
 public CityServices(CocktailMagicianDb context, ICityFactory cityFactory)
 {
     this.context     = context;
     this.cityFactory = cityFactory;
 }
예제 #23
0
 public ProvinceFactory(ICityFactory cityFactory)
 {
     this.cityFactory = cityFactory;
 }