Ejemplo n.º 1
0
        public void Test_ThrowGrenade()
        {
            RoyalGameModel model       = new RoyalGameModel();
            var            grenade     = BuilderGameObject.CreateGrenade(model, new PointF(50, 50), new Vec2(0, 10), new GrenadeBullet());
            SolidBody      bodyGrenade = grenade.Components.GetComponent <SolidBody>();
            PointF         start       = bodyGrenade.Shape.Location;

            //прошла 1 секунда
            model.Field.Step(1f, 6, 3);
            grenade.Update(new TimeQuantPassed(1000));
            PointF step1 = bodyGrenade.Shape.Location;

            Assert.AreNotEqual(start, step1);
            //прошла 2 секунда
            model.Field.Step(1f, 6, 3);
            grenade.Update(new TimeQuantPassed(1000));
            PointF step2 = bodyGrenade.Shape.Location;

            Assert.AreNotEqual(step1, step2);
            //прошла 3 секунда
            model.Field.Step(1f, 6, 3);
            grenade.Update(new TimeQuantPassed(1000));
            PointF step3 = bodyGrenade.Shape.Location;

            Assert.AreNotEqual(step2, step3);
            //прошла 4 секунда
            model.Field.Step(1f, 6, 3);
            grenade.Update(new TimeQuantPassed(1000));
            PointF step4 = bodyGrenade.Shape.Location;

            Assert.AreNotEqual(step3, step4);
        }
Ejemplo n.º 2
0
        public void Test_ThrowGrenadeAndDamage()
        {
            RoyalGameModel model   = new RoyalGameModel();
            Gamer          player  = BuilderGameObject.CreateGamer(model, new PointF(70, 100));
            Healthy        healthy = player.Components.GetComponent <Healthy>();
            float          startHp = healthy.HP;
            //player.Setup();

            var       grenade     = BuilderGameObject.CreateGrenade(model, new PointF(50, 50), new Vec2(20, 50), new GrenadeBullet());
            SolidBody bodyGrenade = grenade.Components.GetComponent <SolidBody>();
            PointF    startStep   = bodyGrenade.Shape.Location;

            //смотрим как движется граната
            for (int i = 0; i < 44; i++)
            {
                model.Field.Step(0.1f, 6, 3);
                grenade.Update(new TimeQuantPassed(100));
                player.Update(new TimeQuantPassed(100));
                PointF endStep = bodyGrenade.Shape.Location;
                Debug.WriteLine($"{endStep.X}:{endStep.Y}");
                Assert.AreEqual(startHp, healthy.HP);
            }

            model.Field.Step(0.1f, 6, 3);
            grenade.Update(new TimeQuantPassed(100));
            player.Update(new TimeQuantPassed(100));
            Assert.AreEqual(startHp - 50, healthy.HP);
        }
Ejemplo n.º 3
0
        public void CreateGrenadeTest()
        {
            var x        = 10;
            var y        = 10;
            var location = new PointF(x, y);
            var model    = new RoyalGameModel();
            var obj      = BuilderGameObject.CreateGrenade(model, location, new Box2DX.Common.Vec2(x, y), new GrenadeBullet());

            var body      = obj.Components.GetComponent <SolidBody>();
            var explosion = obj.Components.GetComponent <Explosion>();

            Assert.IsNotNull(body);
            Assert.IsNotNull(explosion);

            Assert.AreEqual(location, body.Shape.Location);
            Assert.AreEqual(obj, model.gameObjects[obj.ID]);
            Assert.AreEqual(TypesGameObject.Grenade, obj.Type);
            Assert.AreEqual(TypesBehaveObjects.Active, obj.TypeBehave);

            for (int i = 0; i < 10; i++)
            {
                model.MakeStep(i);
            }
            Assert.IsTrue((body.Shape.Location.X - x) > 0);
            Assert.IsTrue((body.Shape.Location.Y - y) > 0);
        }