public void GenerateAsteroidTest() { var localServer = EnvironmentGlobal.CreateGameServer("CelestialObjectsFactoryTests"); var gameSession = localServer.RefreshGameSession(); var asteroid = CelestialObjectsFactory.GenerateAsteroid(gameSession); Assert.IsNotNull(asteroid); Assert.IsTrue(asteroid.Direction > 0 && asteroid.Direction <= 360); Assert.IsTrue(asteroid.Speed > 0 && asteroid.Speed <= 30); }
public CommandExecuteResult Execute(GameSession gameSession, Command command) { Logger.Debug(TraceMessage.Execute(this, "Execute command scanning is started.")); gameSession.AddHistoryMessage("started.", GetType().Name, true); if (RandomGenerator.DiceRoller() < gameSession.Rules.Spawn.AsteroidSmallSize) { Logger.Debug(TraceMessage.Execute(this, "Add new asteroid.")); gameSession.AddCelestialObject(CelestialObjectsFactory.GenerateAsteroid(gameSession)); } return(new CommandExecuteResult { Command = command, IsResume = false }); }
public List <GameEventParameter> Execute(GameSession session) { var result = new List <GameEventParameter>(); foreach (var spaceShip in _spaceShips) { var generatedSpaceShip = CelestialObjectsFactory.GenerateNpcShip(session, spaceShip.SpaceShipClass, spaceShip.SpaceShipType, spaceShip.Standing); spaceShip.Message = $"Found spaceship. Engine signature is '{generatedSpaceShip.Id}'"; result.Add(new GameEventParameter(GameEventParameterTypes.CelestialObjectId, generatedSpaceShip.Id.ToString())); session.GetCelestialObjects().Add(generatedSpaceShip); } return(result); }
public void GenerateNpcShip_Test() { var settings = new EngineSettings { DebugProperties = new DebugProperties(true, true) }; var server = EnvironmentGlobal.CreateGameServer("General", settings); server.EnableDebugMode(); var gameSession = EnvironmentGlobal.GetSession(server); var result = CelestialObjectsFactory.GenerateNpcShip(gameSession, 12, 12, 1).ToSpaceship(); Assert.IsTrue(result.Id > 0); Assert.AreEqual(4, result.Modules.Count); Assert.AreEqual(6, result.MaxSpeed); }