Пример #1
0
        public void Test_GetBullet()
        {
            var model  = new MockRoyalGameModel();
            var player = new MockPlayer()
            {
                Model = model
            };
            var weapon = new Weapon(model, TypesGameObject.Weapon, TypesBehaveObjects.Active, TypesWeapon.Gun);

            (weapon as Weapon).Owner = player;
            Magazin magazin = new Magazin(weapon, TypesWeapon.Gun, 50, 300, 8);

            magazin.Setup();

            //делаем 8 выстрелов
            for (int i = 0; i < 8; i++)
            {
                Assert.IsNotNull(magazin.GetBullet());
                Assert.IsNull(magazin.GetBullet());
                magazin.Parent.Update(new TimeQuantPassed(51));
            }
            //перезаряжаем
            Assert.IsNull(magazin.GetBullet());
            magazin.Parent.Update(new TimeQuantPassed(301));
            Assert.IsNotNull(magazin.GetBullet());
        }
Пример #2
0
        public void Test_ChangeLocation()
        {
            var        model    = new MockRoyalGameModel();
            GameObject zone     = new GameObject(model, TypesGameObject.DeathZone, TypesBehaveObjects.Passive);
            BodyZone   bodyZone = new BodyZone(zone, 500);

            zone.Components.Add(bodyZone);
            zone.Setup();

            PointF startLocation = bodyZone.Location;
            float  radius        = bodyZone.Radius;

            zone.Update(new TimeQuantPassed(30001));

            Assert.AreEqual(model.outgoingMessages.Count, 2);
            Assert.AreNotEqual(startLocation, bodyZone.Location);
            Assert.AreEqual(250, bodyZone.Radius);


            startLocation = bodyZone.Location;
            radius        = bodyZone.Radius;
            zone.Update(new TimeQuantPassed(30001));
            Assert.AreEqual(model.outgoingMessages.Count, 4);
            Assert.AreNotEqual(startLocation, bodyZone.Location);
            Assert.AreEqual(radius * 0.6f, bodyZone.Radius);
        }
Пример #3
0
        public void Test_Handler_GotDamage_100HP()
        {
            //Arrange (подготовка)
            int expectedHP = 0;
            int DamageHP   = 100;

            MockRoyalGameModel model = new MockRoyalGameModel();
            var player = new MockPlayer()
            {
                Model = model
            };

            Healthy healthy = new Healthy(player);

            healthy.Setup();

            //Act (выполнение)
            player.Update_GotDamage(new GotDamage(player.ID, DamageHP));
            IMessage msg = model.outgoingMessages.Dequeue();

            //Assert (проверка)
            Assert.IsTrue(player.Destroyed);
            Assert.IsTrue((msg as ChangedValueHP).HP == expectedHP);
            Assert.AreEqual(expectedHP, healthy.HP);
            Assert.AreEqual(0, model.outgoingMessages.Count);
        }
Пример #4
0
        public void ExplosionTest()
        {
            var model     = new MockRoyalGameModel();
            var obj       = new GameObject(model, TypesGameObject.Grenade, TypesBehaveObjects.Active);
            var explosion = new Explosion(obj, new GrenadeBullet());

            explosion.Setup();
        }
Пример #5
0
        public void Test_UpdateComponent_MakeReload()
        {
            TypesWeapon typesWeapon           = TypesWeapon.Gun;
            int         bullet_In_Magazine    = 8;
            int         duration_Magazine     = 300;
            int         duration_betweenShots = 50;

            var model  = new MockRoyalGameModel();
            var player = new MockPlayer()
            {
                Model = model
            };
            var weapon = new Weapon(model, TypesGameObject.Weapon, TypesBehaveObjects.Active, TypesWeapon.Gun);

            weapon.Owner = player;

            Magazin magazin = new Magazin(weapon, typesWeapon, duration_betweenShots, duration_Magazine, bullet_In_Magazine);

            weapon.Components.Add(magazin);
            weapon.Setup();

            Assert.IsNotNull(magazin.GetBullet());
            player.Update_MakeReloadWeapon(new MakeReloadWeapon(weapon.ID));                    // игров собирается выполнить перезарядку
            Assert.IsNull(magazin.GetBullet());

            weapon.Update(new TimeQuantPassed(duration_Magazine - 1));
            Assert.IsNull(magazin.GetBullet());

            weapon.Update(new TimeQuantPassed(1));
            Assert.IsNotNull(magazin.GetBullet());

            var outMgs = model.outgoingMessages;

            Assert.IsTrue(outMgs.Dequeue().Count == 7);

            var msg_startReload    = outMgs.Dequeue();
            var msg_ChangeBullet_1 = outMgs.Dequeue();
            var mgs_endReload      = outMgs.Dequeue();
            var msg_ChangeBullet_2 = outMgs.Dequeue();

            Assert.IsTrue(msg_startReload.StartOrEnd == true);
            Assert.IsTrue(msg_ChangeBullet_1.Count == 8);
            Assert.IsTrue(mgs_endReload.StartOrEnd == false);
            Assert.IsTrue(msg_ChangeBullet_2.Count == 7);
        }
Пример #6
0
        public void Test_SendMessage()
        {
            var        model    = new MockRoyalGameModel();
            GameObject zone     = new GameObject(model, TypesGameObject.DeathZone, TypesBehaveObjects.Passive);
            BodyZone   bodyZone = new BodyZone(zone, 400);

            zone.Components.Add(bodyZone);
            zone.Setup();
            //model.AddOrUpdateGameObject(zone);

            PointF startLocation = bodyZone.Location;
            float  radius        = bodyZone.Radius;

            zone.Update(new TimeQuantPassed(100));

            Assert.AreEqual(1, model.outgoingMessages.Count);
            Assert.AreEqual(startLocation, bodyZone.Location);
            Assert.AreEqual(radius, bodyZone.Radius);
        }