public void UpdateElevationWithTerrain() { TerrainReader.LoadMemoryMap(); var landPos = new Position(60, 9, 100, 90); var seaPos = new Position(60, 3, 100, 90); var heightLandM = TerrainReader.GetHeightM(landPos.Coordinate); var heightSeaM = TerrainReader.GetHeightM(seaPos.Coordinate); Assert.IsTrue(heightLandM > 0, "Land coord height should be over 0"); Assert.IsTrue(heightSeaM < 0, "Sea coord height should be under 0"); Player player1 = new Player(); player1.Name = "Player1"; Player player2 = new Player(); player2.Name = "Player2"; Group group1 = new Group(); Group group2 = new Group(); GameManager.Instance.GameData.InitAllData(); Game game = GameManager.Instance.CreateGame(player1, "test game"); GameManager.Instance.Game.UpperLeftCorner = new Coordinate(70, -10); GameManager.Instance.Game.LowerRightCorner = new Coordinate(40, 10); game.AddPlayer(player2); var unitF22 = GameManager.Instance.GameData.CreateUnit(player1, group1, "f22", "", landPos, true); unitF22.UserDefinedElevation = GameConstants.HeightDepthPoints.Low; unitF22.MovementOrder = new MovementOrder(new Waypoint(new Position(new Coordinate(60, 0)))); unitF22.MoveToNewCoordinate(10); Assert.IsTrue(unitF22.Position.HeightOverSeaLevelM > heightLandM, "F22 should be above land terrain at position."); unitF22.Position = seaPos.Clone(); unitF22.Position.HeightOverSeaLevelM = 161; unitF22.TerrainHeight10SecForwardM = -500; unitF22.TerrainHeight30SecForwardM = -500; unitF22.TerrainHeightAtPosM = -500; unitF22.MoveToNewCoordinate(10); Assert.IsTrue(unitF22.DesiredHeightOverSeaLevelM == 100, "The unit's desired height should be 100."); TerrainReader.CloseMemoryMap(); }
public void DetectionOverTerrainTest() { Player player = new Player(); player.Name = "GoodGuy"; player.IsComputerPlayer = true; Player playerEnemy = new Player(); playerEnemy.Name = "BadGuy"; playerEnemy.IsComputerPlayer = true; Group group = new Group(); GameManager.Instance.GameData.InitAllData(); Game game = GameManager.Instance.CreateGame(player, "test game"); game.Players.Add(player); game.Players.Add(playerEnemy); GameManager.Instance.Game.SetAllPlayersEnemies(); TerrainReader.LoadMemoryMap(); Position posLand1 = new Position(61.16825, 5.21027, 20, 120); var posLand1heightM = TerrainReader.GetHeightM(posLand1.Coordinate); Assert.IsTrue(posLand1heightM > 0, "Terrain at pos1land should be land."); var unitF22 = GameManager.Instance.GameData.CreateUnit(player, group, "f22", "f22", posLand1, true); unitF22.SetSensorsActivePassive(TTG.NavalWar.NWComms.GameConstants.SensorType.Radar, true); var unitEnemyBurke = GameManager.Instance.GameData.CreateUnit(playerEnemy, group, "arleighburke", "Enemy Burke", posLand1, true); unitF22.SensorSweep(); var detBurke = player.DetectedUnits.FirstOrDefault <DetectedUnit>(); Assert.IsTrue(detBurke != null, "Enemy burke should have been detected."); //61.16825 , 5.21027 land //61.18935 , 5.21027 vann //61.19935, , 5.21027 land igjen? TerrainReader.CloseMemoryMap(); }
public void TerrainLineTest() { var startCoord = new Coordinate(60, 4); var endCoord = new Coordinate(62, 6); var noOfPoints = 10; double bearingDeg; double distanceM; var distM = MapHelper.CalculateDistanceApproxM(startCoord, endCoord); var coordList = TerrainReader.GetCoordinateLine(startCoord, endCoord, noOfPoints, out bearingDeg, out distanceM); //TerrainReader.CloseMemoryMap(); TerrainReader.LoadMemoryMap(); var testHeightM = TerrainReader.GetHeightM(new Coordinate(60, 5)); Assert.IsTrue(testHeightM != 0, "Test height should not be 0. Memory map not loaded."); var sw = Stopwatch.StartNew(); var heights = TerrainReader.GetHeightArrayM(coordList); sw.Stop(); var time10coordsMs = sw.ElapsedMilliseconds; GameManager.Instance.Log.LogDebug("TerrainLineTest: Get 10 coords: " + time10coordsMs + " ms"); sw.Start(); endCoord = new Coordinate(55, 13); var summary10 = TerrainReader.GetTerrainHeightSummary(startCoord, endCoord, 10); sw.Stop(); var time10coordsSummaryMs = sw.ElapsedMilliseconds; GameManager.Instance.Log.LogDebug("TerrainLineTest: Get 10 coords summary: " + time10coordsSummaryMs + " ms"); sw.Start(); var terrainSummary = TerrainReader.GetTerrainHeightSummary(startCoord, endCoord, 1000); sw.Stop(); var time1000coordsSummaryMs = sw.ElapsedMilliseconds; GameManager.Instance.Log.LogDebug("TerrainLineTest: Get 1000 coords summary: " + time1000coordsSummaryMs + " ms"); TerrainReader.CloseMemoryMap(); }