Example #1
0
        public void Combat_Nav10()
        {
            setupEnvironment0();
            Console.WriteLine("Nav test 0");

            battle.Start();

            Compass        startHeading    = new Compass(0, false);
            Compass        angletoWaypoint = new Compass(0, false);
            PointXd        waypntloc       = new PointXd(0, 1000, 0);
            PointXd        waypndVel       = new PointXd(0, 1000, 0);
            CombatWaypoint waypoint        = new CombatWaypoint(waypntloc, waypndVel);

            bool    expectedToWaypoint        = true;
            Compass expectedHeading           = new Compass(0);
            Tuple <Compass, bool> expectednav = new Tuple <Compass, bool>(expectedHeading, expectedToWaypoint);
            CombatVehicle         testComObj  = battle.CombatVehicles.ToArray()[0];

            testComObj.cmbt_loc       = new PointXd(0, 0, 0);
            testComObj.cmbt_vel       = new PointXd(0, 0, 0);
            testComObj.cmbt_head      = new Compass(startHeading.Degrees, false);
            testComObj.waypointTarget = waypoint;

            Tuple <Compass, bool?> nav = testComObj.testNav(angletoWaypoint);

            battle.End(battle.CurrentTick);
            Assert.AreEqual(expectednav.Item1.Degrees, nav.Item1.Degrees);
            Assert.AreEqual(expectednav.Item2, nav.Item2);
        }
Example #2
0
        public void Combat_Nav12()
        {
            setupEnvironment0();

            battle.Start();

            Compass        startHeading    = new Compass(0, false);
            Compass        angletoWaypoint = new Compass(0, false);
            PointXd        waypntloc       = new PointXd(0, 10, 0);
            PointXd        waypndVel       = new PointXd(0, 0, 0);
            CombatWaypoint waypoint        = new CombatWaypoint(waypntloc, waypndVel);

            bool    expectedThrustToWaypoint  = false;
            Compass expectedHeading           = new Compass(180, false);
            Tuple <Compass, bool> expectednav = new Tuple <Compass, bool>(expectedHeading, expectedThrustToWaypoint);
            CombatVehicle         testComObj  = battle.CombatVehicles.ToArray()[0];

            testComObj.cmbt_loc        = new PointXd(0, 0, 0);
            testComObj.cmbt_vel        = new PointXd(0, 5, 0);
            testComObj.maxfowardThrust = 150;
            testComObj.maxStrafeThrust = 37.5;
            testComObj.maxRotate       = new Compass(45, false);
            testComObj.cmbt_head       = new Compass(startHeading.Degrees, false);
            testComObj.waypointTarget  = waypoint;

            Tuple <Compass, bool?> nav = testComObj.testNav(angletoWaypoint);

            battle.End(battle.CurrentTick);
            Assert.AreEqual(expectednav.Item1.Degrees, nav.Item1.Degrees);
            Assert.AreEqual(expectednav.Item2, nav.Item2);
        }
Example #3
0
        public void Combat_Helm0()
        {
            Combat_setupbattle();

            Console.WriteLine("Helm test 0");

            battle.Start();

            Compass startHeading = new Compass(0, false);

            PointXd        waypntloc = new PointXd(0, 1000, 0);
            PointXd        waypndVel = new PointXd(0, 1000, 0);
            CombatWaypoint waypoint  = new CombatWaypoint(waypntloc, waypndVel);

            PointXd expectedThrustResult = new PointXd(0, 100, 0);
            Compass expectedHeading      = new Compass(startHeading.Degrees);// + (spinrate.Degrees / Battle_Space.TicksPerSecond), false);

            // Ship heading 0 Angle to turn 0
            // ship should thrust 100%
            testComObj.cmbt_loc       = new PointXd(0, 0, 0);
            testComObj.cmbt_vel       = new PointXd(0, 0, 0);
            testComObj.cmbt_head      = new Compass(startHeading.Degrees, false);
            testComObj.waypointTarget = waypoint;
            //battle.ProcessTick(ref tick, ref cmdFreqCounter);

            testComObj.helm();
            battle.End(battle.CurrentTick);
            AssertPointWithinTolerance(expectedThrustResult, testComObj.cmbt_thrust, 1);
            AssertAngleWithinTolerance(expectedHeading, testComObj.cmbt_head, 0.01);
        }
Example #4
0
        public void Combat_Missle()
        {
            setupEnvironment1();

            battle.Start();

            Compass        startHeading    = new Compass(0, false);
            Compass        angletoWaypoint = new Compass(0, false);
            PointXd        waypntloc       = new PointXd(0, 0, 0);
            PointXd        waypndVel       = new PointXd(0, 0, 0);
            CombatWaypoint waypoint        = new CombatWaypoint(waypntloc, waypndVel);

            bool    expectedThrustToWaypoint  = true;
            Compass expectedHeading           = new Compass(0, false);
            Tuple <Compass, bool> expectednav = new Tuple <Compass, bool>(expectedHeading, expectedThrustToWaypoint);


            CombatVehicle attacker = battle.CombatVehicles.ToArray()[0];

            attacker.cmbt_loc       = new PointXd(0, -100, 0);
            attacker.cmbt_vel       = new PointXd(0, 0, 0);
            attacker.cmbt_head      = new Compass(startHeading.Degrees, false);
            attacker.waypointTarget = waypoint;
            CombatWeapon wpn = attacker.Weapons.ToArray()[0];

            CombatVehicle target = battle.CombatVehicles.ToArray()[1];

            target.cmbt_loc       = new PointXd(0, 100, 0);
            target.cmbt_vel       = new PointXd(0, 0, 0);
            target.cmbt_head      = new Compass(180, false);
            target.waypointTarget = waypoint;

            attacker.weaponTarget[0] = target;

            CombatSeeker testSeeker = new CombatSeeker(attacker, wpn, -1);

            battle.CombatNodes.Add(testSeeker);

            Tuple <Compass, bool?> nav = testSeeker.testNav(angletoWaypoint);

            battle.End(battle.CurrentTick);
            Assert.AreEqual(expectednav.Item1.Degrees, nav.Item1.Degrees);
            Assert.AreEqual(expectednav.Item2, nav.Item2);
        }