コード例 #1
0
        public void Reloading_MicroWarpDrive_Test()
        {
            var server = EnvironmentGlobal.CreateGameServer("Reloading");

            var gameSession = EnvironmentGlobal.GetSession(server);

            var spaceship = gameSession.GetPlayerSpaceShip();

            var module = spaceship.GetPropulsionModules().First();

            Assert.AreEqual(2.0f, module.Reloading);

            server.Command(server.SessionId, ModuleCommand.ToJson(gameSession, module.Braking));

            Assert.AreEqual(1, server.Commands.Count);

            Assert.AreEqual(7, gameSession.GetCelestialObject(spaceship.Id).Speed);

            server.TurnCalculation(1);

            gameSession = EnvironmentGlobal.GetSession(server);

            spaceship = gameSession.GetPlayerSpaceShip();

            module = spaceship.GetPropulsionModules().First();

            Assert.AreEqual(0.05, module.Reloading);

            server.TurnCalculation(5);

            module = EnvironmentGlobal.GetSessionServerSide(server).GetPlayerSpaceShip().GetPropulsionModules().First();

            Assert.AreEqual(0.3, module.Reloading);
        }
コード例 #2
0
ファイル: CommandsTests.cs プロジェクト: dunvit/Outland-Area
        public void AddCommandsGeneral_Test()
        {
            var server = EnvironmentGlobal.CreateGameServer("CommandsTests");

            var gameSession = EnvironmentGlobal.GetSession(server);

            var spaceship = gameSession.GetPlayerSpaceShip();

            var module = spaceship.GetPropulsionModules().First();

            server.Command(server.SessionId, ModuleCommand.ToJson(gameSession, module.Braking));

            Assert.AreEqual(1, server.Commands.Count);

            server.TurnCalculation(1);

            server.Command(server.SessionId, ModuleCommand.ToJson(gameSession, module.Braking));

            Assert.AreEqual(0, server.Commands.Count);

            server.TurnCalculation(5);

            Assert.AreEqual(0, server.Commands.Count);

            server.TurnCalculation(1);
            server.Wait(5);

            server.Command(server.SessionId, ModuleCommand.ToJson(gameSession, module.Braking));

            Assert.AreEqual(1, server.Commands.Count);

            server.TurnCalculation(1);
        }
コード例 #3
0
        public void LinearMovementCalculationTest()
        {
            var server = EnvironmentGlobal.CreateGameServer("Map_OneShip");

            var gameSession = EnvironmentGlobal.GetSession(server);

            var spaceShip = gameSession.GetCelestialObject(gameSession.GetCelestialObjects()[0].Id);

            var position = spaceShip.GetLocation();

            Assert.AreEqual(1, gameSession.GetCelestialObjects().Count);
            Assert.AreEqual(new PointF(10000, 10000), position);

            server.TurnCalculation();

            gameSession = EnvironmentGlobal.GetSession(server);

            position = gameSession.GetCelestialObject(gameSession.GetCelestialObjects()[0].Id).GetLocation();

            Assert.AreEqual(new PointF((float)10000.35, 10000), position);

            for (var i = 0; i < 19; i++)
            {
                server.TurnCalculation();
            }

            gameSession = EnvironmentGlobal.GetSession(server);

            position = gameSession.GetCelestialObject(gameSession.GetCelestialObjects()[0].Id).GetLocation();

            Assert.AreEqual(new PointF((float)10006.9922, 10000), position);
        }
コード例 #4
0
        public void Missile_Test()
        {
            var settings = new EngineSettings {
                DebugProperties = new DebugProperties(true, true)
            };

            var server = EnvironmentGlobal.CreateGameServer("CommandsTests_Weapon", settings);

            var gameSession = EnvironmentGlobal.GetSession(server);

            var spaceship = gameSession.GetPlayerSpaceShip();

            Assert.AreEqual(2, spaceship.Modules[1].Skills.Count);
        }
コード例 #5
0
ファイル: CommandsTests.cs プロジェクト: dunvit/Outland-Area
        public void PropulsionModule_Braking_Test()
        {
            var server = EnvironmentGlobal.CreateGameServer("CommandsTests");

            var gameSession = EnvironmentGlobal.GetSession(server);

            var spaceship = gameSession.GetPlayerSpaceShip();

            var module = spaceship.GetPropulsionModules().First();

            server.Command(server.SessionId, ModuleCommand.ToJson(gameSession, module.Braking));

            Assert.AreEqual(1, server.Commands.Count);

            Assert.AreEqual(7, gameSession.GetCelestialObject(spaceship.Id).Speed);

            server.TurnCalculation(1);

            gameSession = EnvironmentGlobal.GetSession(server);

            Assert.AreEqual(6.975, Math.Round(gameSession.GetCelestialObject(spaceship.Id).Speed, 3));

            Assert.AreEqual(0, server.Commands.Count);

            Assert.AreEqual(1, server.GetHistoryCommands(server.SessionId, spaceship.Id).Count);

            server.TurnCalculation(1);

            // Add command for not reloaded module
            server.Command(server.SessionId, ModuleCommand.ToJson(gameSession, module.Braking));

            server.TurnCalculation(1);

            Assert.AreEqual(0, server.Commands.Count);

            server.Wait(5);

            server.Command(server.SessionId, ModuleCommand.ToJson(gameSession, module.Braking));

            Assert.AreEqual(1, server.Commands.Count);

            server.Wait(5);

            Assert.AreEqual(0, server.Commands.Count);

            Assert.AreEqual(2, server.GetHistoryCommands(server.SessionId, spaceship.Id).Count);

            Assert.AreEqual(CommandTypes.StopShip, server.GetHistoryCommands(server.SessionId, spaceship.Id)[0].Type);
        }
コード例 #6
0
        public void TurnRecalculation_Test()
        {
            var server = EnvironmentGlobal.CreateGameServer("General");

            server.TurnCalculation(1);

            var gameSession = EnvironmentGlobal.GetSession(server);

            Assert.AreEqual(1, gameSession.Turn);

            server.TurnCalculation(5);

            gameSession = EnvironmentGlobal.GetSession(server);

            Assert.AreEqual(6, gameSession.Turn);
        }
コード例 #7
0
        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);
        }
コード例 #8
0
        public void ToClientTest()
        {
            var server = EnvironmentGlobal.CreateGameServer("ConvertTests");

            Assert.AreEqual(2, EnvironmentGlobal.GetSession(server).GetCelestialObjects().Count);

            var gameSession = EnvironmentGlobal.GetSession(server);

            Assert.AreEqual(2, gameSession.GetCelestialObjects().Count);

            server.TurnCalculation(2);

            Assert.AreEqual(1, EnvironmentGlobal.GetSessionServerSide(server).ScenarioEvents.Count);

            server.TurnCalculation(10);

            Assert.AreEqual(0, EnvironmentGlobal.GetSession(server).ScenarioEvents.Count);
        }
コード例 #9
0
        public void Explosive_Integration_Test()
        {
            var settings = new EngineSettings {
                DebugProperties = new DebugProperties(true, true)
            };

            var server = EnvironmentGlobal.CreateGameServer("CommandsTests_Weapon", settings);

            server.EnableDebugMode();

            var gameSession = EnvironmentGlobal.GetSession(server);

            var spaceship = gameSession.GetPlayerSpaceShip();

            var targetSpacecraft = gameSession.GetCelestialObject(1000348945).ToSpaceship();

            var module = spaceship.GetWeaponModules().First();

            server.Command(server.SessionId, ModuleCommand.ToJson(gameSession, module.Shot, 1000348945, ((IModule)module).Id, 1));

            Assert.AreEqual(1, server.Commands.Count);
            Assert.AreEqual(200, targetSpacecraft.Shields);
            Assert.AreEqual(false, targetSpacecraft.IsDestroyed);

            server.TurnCalculation(1);

            gameSession = EnvironmentGlobal.GetSession(server);

            var explosives = gameSession.CelestialObjects.Where(obj => obj.OwnerId == 5005 && obj is Explosion).ToList();

            Assert.AreEqual(1, explosives.Count);

            server.TurnCalculation(1);

            explosives = gameSession.CelestialObjects.Where(obj => obj.OwnerId == 5005 && obj is Explosion).ToList();

            Assert.AreEqual(1, explosives.Count);

            gameSession = EnvironmentGlobal.Turn(20);

            explosives = gameSession.CelestialObjects.Where(obj => obj.OwnerId == 5005 && obj is Explosion).ToList();

            Assert.AreEqual(0, explosives.Count);
        }
コード例 #10
0
        public void MouseClickOnObjectAndChangeSelectedObject_Test()
        {
            var server = EnvironmentGlobal.CreateGameServer("OuterSpace");

            var gameSession = EnvironmentGlobal.GetSession(server);

            var outerSpace = new OuterSpace();

            var isChangeSelectedObject = false;

            outerSpace.OnChangeSelectedObject += (e) =>
            {
                Assert.AreEqual(e, 5006);
                isChangeSelectedObject = true;
            };

            outerSpace.Refresh(gameSession, new System.Drawing.PointF(10101, 10201), MouseArguments.LeftClick);

            Assert.IsTrue(isChangeSelectedObject);
        }
コード例 #11
0
ファイル: CommandsTests.cs プロジェクト: dunvit/Outland-Area
        public void PropulsionModule_TurnLeft_Test()
        {
            var server = EnvironmentGlobal.CreateGameServer("CommandsTests");

            var gameSession = EnvironmentGlobal.GetSession(server);

            var spaceship = gameSession.GetPlayerSpaceShip();

            var module = spaceship.GetPropulsionModules().First();

            double turnRotationSpeed = MobilityInDegrees / (new EngineSettings().UnitsPerSecond *module.ReloadTime);

            server.Command(server.SessionId, ModuleCommand.ToJson(gameSession, module.TurnLeft));

            Assert.AreEqual(1, server.Commands.Count);

            server.TurnCalculation(1);

            gameSession = EnvironmentGlobal.GetSession(server);

            spaceship = gameSession.GetPlayerSpaceShip();

            Assert.AreEqual(90 - turnRotationSpeed, spaceship.Direction);

            // Reloading time
            server.Wait(3);

            server.Command(server.SessionId, ModuleCommand.ToJson(gameSession, module.TurnLeft));

            server.TurnCalculation(1);

            spaceship = EnvironmentGlobal.GetSession(server).GetPlayerSpaceShip();

            Assert.AreEqual(80 - 1 * turnRotationSpeed, spaceship.Direction);

            server.TurnCalculation(1);

            spaceship = EnvironmentGlobal.GetSession(server).GetPlayerSpaceShip();

            Assert.AreEqual(80 - 2 * turnRotationSpeed, spaceship.Direction);
        }
コード例 #12
0
        public void LightMissileLauncherTest()
        {
            var settings = new EngineSettings {
                DebugProperties = new DebugProperties(true, true)
            };

            var server = EnvironmentGlobal.CreateGameServer("CommandsTests_Weapon", settings);

            server.EnableDebugMode();

            var gameSession = EnvironmentGlobal.GetSession(server);

            var spaceship = gameSession.GetPlayerSpaceShip();

            var lightMissile = spaceship.Modules[1] as LightMissileLauncher;

            Assert.IsFalse(lightMissile is null);

            Assert.AreEqual(500, lightMissile.Range);
            Assert.AreEqual(0.7, lightMissile.Efficiency);
        }
コード例 #13
0
        public void MouseClickOnObjectAndChangeActiveObject_Negative_Test()
        {
            var server = EnvironmentGlobal.CreateGameServer("OuterSpace");

            var gameSession = EnvironmentGlobal.GetSession(server);

            var outerSpace = new OuterSpace();

            var isChangeActiveObject = false;

            outerSpace.OnChangeActiveObject += (e) =>
            {
                if (e > 0)
                {
                    isChangeActiveObject = true;
                }
            };

            outerSpace.Refresh(gameSession, new System.Drawing.PointF(9101, 9201), MouseArguments.Move);

            Assert.IsFalse(isChangeActiveObject);
        }
コード例 #14
0
        public void GameSession_GetCelestialObjectsByDistance_Test()
        {
            var server = EnvironmentGlobal.CreateGameServer("OuterSpace");

            var gameSession = EnvironmentGlobal.GetSession(server);

            var result = gameSession.GetCelestialObjectsByDistance(new System.Drawing.PointF(10030, 10030), 20);

            Assert.AreEqual(0, result.Count);

            result = gameSession.GetCelestialObjectsByDistance(new System.Drawing.PointF(10000, 10000), 20);

            Assert.AreEqual(1, result.Count);

            result = gameSession.GetCelestialObjectsByDistance(new System.Drawing.PointF(10030, 10030), 100);

            Assert.AreEqual(1, result.Count);

            result = gameSession.GetCelestialObjectsByDistance(new System.Drawing.PointF(10030, 10030), 800);

            Assert.AreEqual(2, result.Count);
        }
コード例 #15
0
        public void RequestGameSessionTest()
        {
            var server = EnvironmentGlobal.CreateGameServer("General");

            Assert.AreEqual(1, EnvironmentGlobal.GetSession(server).GetCelestialObjects().Count);
        }
コード例 #16
0
        public void WeaponModule_Shot_Test()
        {
            var settings = new EngineSettings {
                DebugProperties = new DebugProperties(true, true)
            };

            var server = EnvironmentGlobal.CreateGameServer("CommandsTests_Weapon", settings);

            server.EnableDebugMode();

            var gameSession = EnvironmentGlobal.GetSession(server);

            var spaceship = gameSession.GetPlayerSpaceShip();

            var targetSpacecraft = gameSession.GetCelestialObject(1000348945).ToSpaceship();

            var module = spaceship.GetWeaponModules().First();

            IDebugProperties debug = new DebugProperties(true, true);

            server.Command(server.SessionId, ModuleCommand.ToJson(gameSession, module.Shot, 1000348945, ((IModule)module).Id, 1));

            Assert.AreEqual(1, server.Commands.Count);
            Assert.AreEqual(200, targetSpacecraft.Shields);
            Assert.AreEqual(false, targetSpacecraft.IsDestroyed);

            server.TurnCalculation(10);

            gameSession = EnvironmentGlobal.GetSession(server);

            spaceship = gameSession.GetPlayerSpaceShip();

            targetSpacecraft = gameSession.GetCelestialObject(1000348945, false).ToSpaceship();

            Assert.AreEqual(0, server.Commands.Count);
            Assert.AreEqual(170, targetSpacecraft.Shields);
            Assert.AreEqual(false, targetSpacecraft.IsDestroyed);

            server.Wait(5);

            server.Command(server.SessionId, ModuleCommand.ToJson(gameSession, module.Shot, 1000348945, ((IModule)module).Id, 1));
            server.TurnCalculation(10);
            gameSession      = EnvironmentGlobal.GetSession(server);
            targetSpacecraft = gameSession.GetCelestialObject(1000348945, false).ToSpaceship();

            Assert.AreEqual(140, targetSpacecraft.Shields);
            Assert.AreEqual(false, targetSpacecraft.IsDestroyed);

            server.Command(server.SessionId, ModuleCommand.ToJson(gameSession, module.Shot, 1000348945, ((IModule)module).Id, 1));
            server.TurnCalculation(10);

            gameSession      = EnvironmentGlobal.GetSession(server);
            targetSpacecraft = gameSession.GetCelestialObject(1000348945, false).ToSpaceship();

            Assert.AreEqual(110, targetSpacecraft.Shields);
            Assert.AreEqual(false, targetSpacecraft.IsDestroyed);

            server.Command(server.SessionId, ModuleCommand.ToJson(gameSession, module.Shot, 1000348945, ((IModule)module).Id, 1));
            server.TurnCalculation(10);

            gameSession      = EnvironmentGlobal.GetSession(server);
            targetSpacecraft = gameSession.GetCelestialObject(1000348945, false).ToSpaceship();

            Assert.AreEqual(80, targetSpacecraft.Shields);
            Assert.AreEqual(false, targetSpacecraft.IsDestroyed);

            server.Command(server.SessionId, ModuleCommand.ToJson(gameSession, module.Shot, 1000348945, ((IModule)module).Id, 1));
            server.TurnCalculation(10);

            gameSession      = EnvironmentGlobal.GetSession(server);
            targetSpacecraft = gameSession.GetCelestialObject(1000348945, false).ToSpaceship();

            Assert.AreEqual(50, targetSpacecraft.Shields);
            Assert.AreEqual(false, targetSpacecraft.IsDestroyed);

            server.Command(server.SessionId, ModuleCommand.ToJson(gameSession, module.Shot, 1000348945, ((IModule)module).Id, 1));
            server.TurnCalculation(10);

            gameSession      = EnvironmentGlobal.GetSession(server);
            targetSpacecraft = gameSession.GetCelestialObject(1000348945, false).ToSpaceship();

            Assert.AreEqual(20, targetSpacecraft.Shields);
            Assert.AreEqual(false, targetSpacecraft.IsDestroyed);

            server.Command(server.SessionId, ModuleCommand.ToJson(gameSession, module.Shot, 1000348945, ((IModule)module).Id, 1));
            server.TurnCalculation(10);

            gameSession      = EnvironmentGlobal.GetSession(server);
            targetSpacecraft = gameSession.GetCelestialObject(1000348945, false).ToSpaceship();

            Assert.AreEqual(true, targetSpacecraft.IsDestroyed);
        }