private void PostGeneration(World world) { var scanner = new MapScanner(world.Map); var landmasses = scanner.FindLandmasses(); foreach (var mass in landmasses) { mass.Name = this.LocationNameGenerator.Next(); world.Landmasses.Add(mass.Id, mass); } // Todo: Can we remove cast to list? var pcg = new PopulationCenterGenerator(world.Landmasses.Values.ToList(), this.LocationNameGenerator); foreach (var pc in pcg.Next()) { world.PopulationCenters.Add(pc.Id, pc); } var tg = new TerritoryGenerator(world, this.LocationNameGenerator); foreach (var t in tg.Next()) { world.Territories.Add(t.Id, t); } }
public void Setup() { _console = new ConsoleMock(); _gameProps = new GameProps { Width = 15, Height = 15, MyId = 0 }; _console.Record(".............xx"); _console.Record(".............xx"); _console.Record("......xx......."); _console.Record("......xx......."); _console.Record("..............."); _console.Record("..............."); _console.Record("..............."); _console.Record("..............."); _console.Record("..............."); _console.Record("..............."); _console.Record("..............."); _console.Record("..............."); _console.Record("..............."); _console.Record("..............."); _console.Record("..............."); _mapScanner = new MapScanner(_gameProps, _console); _sut = new HeadPositionReducer(_gameProps, _mapScanner); }
public void MustReturnCorrectOrderOfPositions_ReversedMode() { var gameProps = new GameProps { Width = 4, Height = 4, MyId = 0 }; _console.Record("...."); _console.Record("...."); _console.Record("...."); _console.Record("...."); var mapScanner = new MapScanner(gameProps, _console); PreComputedSpiralNavigator sut = new PreComputedSpiralNavigator(mapScanner, _console, true, gameProps); var firstPosition = sut.First(); Assert.AreEqual((1, 2), firstPosition); Assert.AreEqual('E', sut.Next((1, 2)).Direction); Assert.AreEqual('N', sut.Next((2, 2)).Direction); Assert.AreEqual('W', sut.Next((2, 1)).Direction); Assert.AreEqual('W', sut.Next((1, 1)).Direction); Assert.AreEqual('S', sut.Next((0, 1)).Direction); Assert.AreEqual('N', sut.Next((3, 3)).Direction); Assert.AreEqual('W', sut.Next((3, 0)).Direction); Assert.AreEqual('W', sut.Next((2, 0)).Direction); Assert.AreEqual('W', sut.Next((1, 0)).Direction); Assert.IsNull(sut.Next((0, 0))); }
public void MustReversePathAfterReset() { var gameProps = new GameProps { Width = 4, Height = 4, MyId = 0 }; _console.Record("...."); _console.Record(".xx."); _console.Record(".xx."); _console.Record("...."); var mapScanner = new MapScanner(gameProps, _console); PreComputedSpiralNavigator sut = new PreComputedSpiralNavigator(mapScanner, _console, false, gameProps); Assert.IsNull(sut.Next((0, 1))); sut.Reset(); Assert.AreEqual('S', sut.Next((0, 1)).Direction); Assert.AreEqual('S', sut.Next((0, 2)).Direction); Assert.AreEqual('E', sut.Next((0, 3)).Direction); Assert.AreEqual('E', sut.Next((1, 3)).Direction); Assert.AreEqual('E', sut.Next((2, 3)).Direction); Assert.AreEqual('N', sut.Next((3, 3)).Direction); Assert.AreEqual('N', sut.Next((3, 2)).Direction); Assert.AreEqual('N', sut.Next((3, 1)).Direction); Assert.AreEqual('W', sut.Next((3, 0)).Direction); Assert.AreEqual('W', sut.Next((2, 0)).Direction); Assert.AreEqual('W', sut.Next((1, 0)).Direction); Assert.IsNull(sut.Next((0, 0))); sut.Reset(); Assert.AreEqual('E', sut.Next((0, 0)).Direction); }
void Awake() { if (instance == null) { instance = this; } else { Destroy(this); } ScanMap(); }
public void ProcessMouseRightClick() { var mousePosition = GetMousePosition(); var goalPoint = GetWorldCoords(mousePosition); Debug.Log($"Hit in {gameObject} at {goalPoint}..."); MapScanner scanner = new MapScanner(Map); goalPoint = scanner.GetNearestEmptyPoint(goalPoint); Debug.Log($"Nearest empty point is {goalPoint}"); OrderMaking.MakeRightClickOrder(goalPoint); }
public void Setup() { _console = new ConsoleMock(); _gameProps = new GameProps { Width = 15, Height = 4, MyId = 0 }; _console.Record(".............xx"); _console.Record(".............xx"); _console.Record("......xx......."); _console.Record("......xx......."); var mapScanner = new MapScanner(_gameProps, _console); _headPositionReducer = new HeadPositionReducer(_gameProps, mapScanner); _sut = new EnemyTracker(_gameProps, mapScanner.GetMapOrScan(), _console, _headPositionReducer); _defaultEnemyLife = 6; }
public void MustAvoidDeadEnd_MovingNorth() { var gameProps = new GameProps { Width = 4, Height = 4, MyId = 0 }; _console.Record("...."); _console.Record(".x.."); _console.Record("...."); _console.Record("...."); var mapScanner = new MapScanner(gameProps, _console); PreComputedSpiralNavigator sut = new PreComputedSpiralNavigator(mapScanner, _console, false, gameProps); Assert.AreEqual('E', sut.Next((0, 2)).Direction); Assert.AreEqual((1, 2), sut.Next((0, 2)).Position); }
private void CreateApplicationEntities() { IAssetProvider assetProvider = new AssetProvider(new JsonParser()); IEntitiesCreator creator = new EntitiesCreator(gameObject, assetProvider); ICoordinatesConverter coordsConverter = new CoordinatesConverter(); IGeoJsonParser geoParser = new GeoJsonParser(); IMeshGenerator meshGenerator = new MeshGenerator(); IOutlineDrawer outlineDrawer = new OutlineDrawer(); var mapModel = creator.CreateMapModel(mapNormal, mapForwardDirection, coordsConverter, geoParser); creator.CreateMapView(mapModel, meshGenerator, outlineDrawer); IMapScanner mapScanner = new MapScanner(mapModel.MapInfo); var container = creator.CreateProjectModelContainer(mapModel, coordsConverter); var controllerFactory = creator.CreateProjectControllerFactory(mapScanner, container); _manager = controllerFactory.ProjectsManager; _uiController = creator.CreateUiController(); }
public void MustAvoidIslandsInMiddle() { var gameProps = new GameProps { Width = 4, Height = 4, MyId = 0 }; _console.Record("...."); _console.Record(".xx."); _console.Record(".xx."); _console.Record("...."); var mapScanner = new MapScanner(gameProps, _console); PreComputedSpiralNavigator sut = new PreComputedSpiralNavigator(mapScanner, _console, false, gameProps); var firstPosition = sut.First(); Assert.AreEqual((0, 0), firstPosition); Assert.AreEqual('E', sut.Next((0, 0)).Direction); Assert.AreEqual('S', sut.Next((3, 0)).Direction); Assert.AreEqual('S', sut.Next((3, 2)).Direction); Assert.AreEqual('N', sut.Next((0, 3)).Direction); Assert.IsNull(sut.Next((0, 1))); }
void OnMouseOver() { if (Input.GetKeyUp(KeyCode.Q)) { var mousePosition = GetMousePosition(); var goalPoint = GetWorldCoords(mousePosition); Debug.Log($"Mouse at: {goalPoint}"); } if (Input.GetMouseButtonDown(1) && selectionManager.SelectedUnits.Count > 0) { var mousePosition = GetMousePosition(); var goalPoint = GetWorldCoords(mousePosition); if (IsObstacleMap) { Debug.Log($"Hit in obstacle tile at {goalPoint}..."); MapScanner scanner = new MapScanner(Map); goalPoint = scanner.GetNearestEmptyPoint(goalPoint); Debug.Log($"Nearest empty point is {goalPoint}"); } orderManager.MakeRightClickOrder(goalPoint); } }
public PreComputedSpiralNavigator(MapScanner mapScanner, IConsole console, bool reversedModeOn, GameProps gameProps) { _path = new ComputedPath(mapScanner.GetMapOrScan(), console, reversedModeOn, gameProps); }