Example #1
0
        private void MakeFactionCores(IMapManager mapManager, IFactionManager factionManager)
        {
            var faction = factionManager.GetPlayerFaction();

            faction.ModifyResource(new Dictionary <ResourceType, int>()
            {
                { ResourceType.Gold, 10 },
                { ResourceType.Food, 10 },
                { ResourceType.Stone, 10 },
                { ResourceType.Wood, 10 },
            });

            var coreCell = mapManager.GetRandomCell((cell) => cell.Terrain.Type == TerrainType.Grass);

            faction.StructureManager.AddStructure(StructureDefinition.StructureType.Core, coreCell.Coord);

            var roadRect = coreCell.NonNullNeighbors;

            foreach (var cell in roadRect)
            {
                faction.StructureManager.AddStructure(StructureDefinition.StructureType.Road, cell.Coord);
            }

            foreach (var roadStub in CellExtensions.GetCardinalsOutsideRectangle(roadRect))
            {
                faction.StructureManager.AddStructure(StructureDefinition.StructureType.Road, roadStub.Coord);
            }

            factionManager.MoveToNextTurn();
        }
Example #2
0
 public StructureManager(IStructureDefinitionManager structureDefinitionManager, IStructureFactory structureFactory, IFactionManager factionManager, IMapManager mapManager)
 {
     _structures                 = new List <IStructure>();
     _structureFactory           = structureFactory;
     _factionManager             = factionManager;
     _mapManager                 = mapManager;
     _structureDefinitionManager = structureDefinitionManager;
 }
Example #3
0
        private void RegisterFactions(IFactionManager factionManager)
        {
            var locator = GetLocator();

            var player = new PlayerFaction("Player", locator);
            var nature = new NatureFaction("Nature", locator);
            var enemy  = new AIFaction("Enemy", locator);

            factionManager.AddFaction(nature);
            factionManager.AddFaction(enemy);
            factionManager.AddFaction(player);
        }
        public override void Initialize()
        {
            _factionManager = Locate <IFactionManager>();
            _playerFaction  = _factionManager.GetPlayerFaction();
            _factionManager.OnTurnStarted += FactionManager_OnTurnStarted;
            _spawnManager = Locate <ISpawnManager>();

            _currentPlayerLabel = GetComponentInChildren <CurrentPlayerLabel>();
            _currentPlayerLabel.Hide();

            _drawView = GetComponentInChildren <DrawView>();
            HideDrawView();
            _endTurnButton = GetComponentInChildren <EndTurnButton>();

            RadialMenuManager = new RadialMenuManager(_spawnManager, transform);
            MessageManager    = new MessageManager(_spawnManager, transform);
        }
Example #5
0
        internal void PopulateMap(IMapManager mapManager, IStructureFactory structureFactory, IFactionManager factionManager)
        {
            var natureFaction = factionManager.GetNatureFaction();

            for (int x = 0; x < mapManager.Width; x++)
            {
                for (int z = 0; z < mapManager.Height; z++)
                {
                    if (mapManager.TryGetCellAtCoord(new Coord(x, 0, z), out Cell cell))
                    {
                        if (cell.Terrain.Type == TerrainType.Forrest)
                        {
                            if (UnityEngine.Random.value > 0.75f)
                            {
                                natureFaction.StructureManager.AddStructure(StructureDefinition.StructureType.Tree, cell.Coord);
                            }
                        }
                        if (cell.Terrain.Type == TerrainType.Stone)
                        {
                            if (UnityEngine.Random.value > 0.75f)
                            {
                                natureFaction.StructureManager.AddStructure(StructureDefinition.StructureType.Rock, cell.Coord);
                            }
                        }
                        if (cell.Terrain.Type == TerrainType.Grass)
                        {
                            if (UnityEngine.Random.value > 0.99f)
                            {
                                natureFaction.StructureManager.AddStructure(StructureDefinition.StructureType.Tree, cell.Coord);
                            }
                        }
                    }
                    else
                    {
                        Debug.LogError("Unable to find cell");
                        throw new IndexOutOfRangeException();
                    }
                }
            }
        }
 public RemoveAction()
 {
     _factionManager = Locator.Instance.Find <IFactionManager>();
     _spawnManager   = Locator.Instance.Find <ISpawnManager>();
 }
Example #7
0
 private void GenerateMap(IMapManager mapManager, int size, IStructureFactory structureFactory, IFactionManager factionManger)
 {
     _mapGen = new MapGenerator(mapManager, size);
     _mapGen.GenerateMap();
     //_mapGen.PopulateMap(mapManager, structureFactory, factionManger);
 }
Example #8
0
 private static void ConfigureCameraDefaults(IMapManager mapManager, IFactionManager factionManger, ICameraController cameraController)
 {
     cameraController.ConfigureBounds(0, mapManager.Width, 0, mapManager.Height);
     cameraController.MoveToPosition(new Vector3(mapManager.Width / 2, 0, mapManager.Height / 2));
 }