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(); }
public StructureManager(IStructureDefinitionManager structureDefinitionManager, IStructureFactory structureFactory, IFactionManager factionManager, IMapManager mapManager) { _structures = new List <IStructure>(); _structureFactory = structureFactory; _factionManager = factionManager; _mapManager = mapManager; _structureDefinitionManager = structureDefinitionManager; }
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); }
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>(); }
private void GenerateMap(IMapManager mapManager, int size, IStructureFactory structureFactory, IFactionManager factionManger) { _mapGen = new MapGenerator(mapManager, size); _mapGen.GenerateMap(); //_mapGen.PopulateMap(mapManager, structureFactory, factionManger); }
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)); }