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); }
public void Test_UpdateComponent_GoTo() { var model = new RoyalGameModel(); //var model = new MockRoyalGameModel(); //model.Field = new Box2DX.Dynamics.World() var player = BuilderGameObject.CreateGamer(model, new System.Drawing.PointF()); var body = new SolidBody(player); player.Components.Add(body); player.Setup(); float speed = 8; Movement movement = new Movement(player, speed); movement.Setup(); player.Update(new GoTo(player.ID, new Direction(DirectionHorisontal.Left, DirectionVertical.Down))); var vector = body.Body.GetLinearVelocity(); if (vector.X != -speed || vector.Y != -speed) { Assert.Fail(); } }
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); }
public void CreateGamerTest() { var location = new PointF(10, 10); var model = new RoyalGameModel(); var obj = BuilderGameObject.CreateGamer(model, location); var solidBody = obj.Components.GetComponent <SolidBody>(); var healthy = obj.Components.GetComponent <Healthy>(); var collector = obj.Components.GetComponent <Collector>(); var currentWeapon = obj.Components.GetComponent <CurrentWeapon>(); var statistics = obj.Components.GetComponent <Statistics>(); Assert.IsNotNull(solidBody); Assert.IsNotNull(healthy); Assert.IsNotNull(collector); Assert.IsNotNull(currentWeapon); Assert.IsNotNull(statistics); Assert.AreEqual(obj, model.Players.First()); Assert.AreEqual(obj, model.gameObjects[obj.ID]); Assert.AreEqual(location, solidBody.Shape.Location); Assert.AreEqual(location, (obj as Gamer).Location); Assert.AreEqual(TypesGameObject.Player, obj.Type); Assert.AreEqual(false, (obj as Gamer).Destroyed); Assert.AreEqual(TypesBehaveObjects.Active, obj.TypeBehave); }
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); }
public void Test_AddOutgoingMessage() { var model = new RoyalGameModel(); int count = model.outgoingMessages.Count; model.AddOutgoingMessage(new ObjectMoved(10, new PointF(10, 50))); Assert.AreEqual(count + 1, model.outgoingMessages.Count); }
public void TestRoomContactListener_Add() { var Room = new RoyalGameModel(); var box = BuilderGameObject.CreateBox(Room, new PointF(55, 70)); var player1 = BuilderGameObject.CreateGamer(Room, new PointF(50, 70)); SolidBody solid = (SolidBody)player1.Components.GetComponent <SolidBody>(); Room.Field.Step(1 / 60, 6, 3); Assert.AreEqual(1, solid.CoveredObjects.Count); }
public void Test_AddGameObject() { var model = new RoyalGameModel(); int count = model.gameObjects.Count; var stone = BuilderGameObject.CreateStone(model, new PointF(30, 20)); stone.Setup(); model.AddOrUpdateGameObject(stone); Assert.AreEqual(count + 1, model.gameObjects.Count); }
public void CreateStoneTest() { var location = new PointF(10, 10); var model = new RoyalGameModel(); var obj = BuilderGameObject.CreateStone(model, location); var solidBody = obj.Components.GetComponent <SolidBody>(); Assert.IsNotNull(solidBody); Assert.AreEqual(location, solidBody.Shape.Location); Assert.AreEqual(obj, model.gameObjects[obj.ID]); Assert.AreEqual(TypesGameObject.Stone, obj.Type); Assert.AreEqual(TypesBehaveObjects.Passive, obj.TypeBehave); }
public void CreateBushTest() { var location = new PointF(10, 10); var model = new RoyalGameModel(); var obj = BuilderGameObject.CreateBush(model, location); var body = obj.Components.GetComponent <TransparentBody>(); Assert.IsNotNull(body); Assert.AreEqual(location, body.Shape.Location); Assert.AreEqual(obj, model.gameObjects[obj.ID]); Assert.AreEqual(TypesGameObject.Bush, obj.Type); Assert.AreEqual(TypesBehaveObjects.Passive, obj.TypeBehave); }
public void CreateDeathZoneTest() { var diameter = 15F; var model = new RoyalGameModel(); var obj = BuilderGameObject.CreateDeathZone(model, diameter); var body = obj.Components.GetComponent <BodyZone>(); var damageZone = obj.Components.GetComponent <DamageZone>(); Assert.IsNotNull(body); Assert.IsNotNull(damageZone); Assert.AreEqual(obj, model.gameObjects[obj.ID]); Assert.AreEqual(TypesGameObject.DeathZone, obj.Type); Assert.AreEqual(TypesBehaveObjects.Active, obj.TypeBehave); }
public void TestRoomContactListener_RemoveObject() { var Room = new RoyalGameModel(); var box = BuilderGameObject.CreateBox(Room, new PointF(55, 70)); box.Setup(); Room.AddOrUpdateGameObject(box); var player1 = BuilderGameObject.CreateGamer(Room, new PointF(50, 70)); SolidBody solid = player1.Components.GetComponent <SolidBody>(); Room.Field.Step(1f / 60f, 6, 3); solid.Parent.Model.Field.DestroyBody(solid.Body); Assert.AreEqual(solid.CoveredObjects.Count, 0); }
public void SetupTest() { var model = new RoyalGameModel(); var obj = new GameObject(model, TypesGameObject.Grenade, TypesBehaveObjects.Active); var body = new SolidBody(obj); obj.Components.Add(body); var explosion = new Explosion(obj, new GrenadeBullet()); obj.Components.Add(explosion); Assert.IsFalse(explosion.Parent.Destroyed); obj.Setup(); obj.Update(new TimeQuantPassed(10000)); Assert.IsTrue(explosion.Parent.Destroyed); }
public void TestRoomContactListener_Remove() { var Room = new RoyalGameModel(); var box = BuilderGameObject.CreateBox(Room, new PointF(55, 70)); box.Setup(); Room.AddOrUpdateGameObject(box); var player1 = BuilderGameObject.CreateGamer(Room, new PointF(50, 70)); SolidBody solid = player1.Components.GetComponent <SolidBody>(); solid.Body.SetLinearVelocity(new Vec2(0, 40f)); Room.Field.Step(2, 6, 3); //только после 2 перемещения срабатывает потеря наслоения Room.Field.Step(1f / 60f, 6, 3); Assert.AreEqual(solid.CoveredObjects.Count, 0); }
public void CreateGrenadeCollectionTest() { var location = new PointF(10, 10); var model = new RoyalGameModel(); var obj = BuilderGameObject.CreateGrenadeCollection(model, location); var solidBody = obj.Components.GetComponent <SolidBody>(); var throw_ = obj.Components.GetComponent <Throw>(); var magazin = obj.Components.GetComponent <Magazin>(); Assert.IsNotNull(solidBody); Assert.IsNotNull(throw_); Assert.IsNotNull(magazin); Assert.AreEqual(location, solidBody.Shape.Location); Assert.AreEqual(obj, model.gameObjects[obj.ID]); Assert.AreEqual(TypesGameObject.Weapon, obj.Type); Assert.AreEqual(TypesWeapon.GrenadeCollection, (obj as IWeapon).TypeWeapon); Assert.AreEqual(TypesBehaveObjects.Active, obj.TypeBehave); }
public void CreateAssaultRiffleTest() { var location = new PointF(10, 10); var model = new RoyalGameModel(); var obj = BuilderGameObject.CreateAssaultRiffle(model, location); var solidBody = obj.Components.GetComponent <SolidBody>(); var shot = obj.Components.GetComponent <Shot>(); var magazin = obj.Components.GetComponent <Magazin>(); Assert.IsNotNull(solidBody); Assert.IsNotNull(shot); Assert.IsNotNull(magazin); Assert.AreEqual(location, solidBody.Shape.Location); Assert.AreEqual(obj, model.gameObjects[obj.ID]); Assert.AreEqual(TypesGameObject.Weapon, obj.Type); Assert.AreEqual(TypesWeapon.AssaultRifle, (obj as IWeapon).TypeWeapon); Assert.AreEqual(TypesBehaveObjects.Active, obj.TypeBehave); }
public void Test_PickUpWeapon() { var Room = new RoyalGameModel(); var gun = BuilderGameObject.CreateGun(Room, new PointF(50, 70)); var player1 = BuilderGameObject.CreateGamer(Room, new PointF(50, 70)); Room.Players.Add(player1); Room.Field.Step(1f / 60f, 6, 3); //поднимаем оружие player1.Update(new TryPickUp(player1.ID)); player1.Update(new TimeQuantPassed(1)); var collector = player1.Components.GetComponent <Collector>(); var received_gun = collector.GetWeapon(TypesWeapon.Gun); Assert.AreEqual(gun, received_gun); }
public void Test_Dispose() { var Room = new RoyalGameModel(); var gun = BuilderGameObject.CreateGun(Room, new PointF(50, 70)); var player1 = BuilderGameObject.CreateGamer(Room, new PointF(50, 70)); Room.Field.Step(1f / 60f, 6, 3); //поднимаем оружие player1.Update(new TryPickUp(player1.ID)); player1.Update(new TimeQuantPassed(1)); var collector = player1.Components.GetComponent <Collector>(); Assert.IsNotNull(collector.GetWeapon(TypesWeapon.Gun)); Assert.IsNull(gun.Components.GetComponent <SolidBody>()); int objectsInMap = Room.Field.GetBodyCount(); //уничтожаем игрока player1.Update(new GotDamage(player1.ID, 100)); player1.Dispose(); Assert.AreEqual(objectsInMap, Room.Field.GetBodyCount()); Assert.IsNotNull(gun.Components.GetComponent <SolidBody>()); //отслеживаем движение var bodyGun = gun.Components.GetComponent <SolidBody>(); PointF startStep = bodyGun.Shape.Location; for (int i = 0; i < 45; i++) { Room.Field.Step(0.1f, 6, 3); gun.Update(new TimeQuantPassed(100)); PointF endStep = bodyGun.Shape.Location; Debug.WriteLine($"{endStep.X}:{endStep.Y}"); Assert.AreNotEqual(startStep, endStep); startStep = endStep; } }
public void Test_UpdateComponent_MakeShot() { //создаем коллекцию объектов для теста var Room = new RoyalGameModel(); var gun = BuilderGameObject.CreateGun(Room, new PointF(50, 70)); var player1 = BuilderGameObject.CreateGamer(Room, new PointF(50, 70)); var player2 = BuilderGameObject.CreateGamer(Room, new PointF(35, 75)); Room.Field.Step(1f / 60f, 6, 3); //поднимаем оружие player1.Update(new TryPickUp(player1.ID)); player1.Update(new TimeQuantPassed(1)); CurrentWeapon currentWeapon = player1.Components.GetComponent <CurrentWeapon>(); Assert.IsNotNull(currentWeapon.GetCurrentWeapon); //делаем выстрел player1.Update(new MakeShot(player1.ID, new PointF(35, 75))); player1.Update(new TimeQuantPassed(100)); //проверяем player2.Update(new TimeQuantPassed(100)); Healthy healtySecondGamer = player2.Components.GetComponent <Healthy>(); Assert.AreEqual(92, healtySecondGamer.HP); //делаем 2 выстрел player1.Update(new MakeShot(player1.ID, new PointF(35, 75))); player1.Update(new TimeQuantPassed(401)); //выстрел не должен произойти player2.Update(new TimeQuantPassed(401)); Assert.AreEqual(92, healtySecondGamer.HP); Thread.Sleep(550); //делаем 3 выстрел player1.Update(new MakeShot(player1.ID, new PointF(35, 75))); player1.Update(new TimeQuantPassed(100)); //выстрел должен произойти player2.Update(new TimeQuantPassed(100)); Assert.AreEqual(healtySecondGamer.HP, 84); }
public void Test_UpdateComponent_TimeQuantPassed() { var Room = new RoyalGameModel(); var player1 = BuilderGameObject.CreateGamer(Room, new PointF(50, 70)); SolidBody solid = player1.Components.GetComponent <SolidBody>(); RectangleF compareShape = solid.Shape; Assert.AreEqual(solid.Shape, compareShape); Vec2 compareVec = solid.Body.GetPosition(); solid.Body.SetLinearVelocity(new Vec2(40f, 0)); int quantTime = 60; Room.Field.Step((float)quantTime / 1000f, 8, 3); var A = solid.Body.GetPosition(); Assert.AreNotEqual(A, compareVec); player1.Update(new TimeQuantPassed(quantTime)); Assert.AreNotEqual(solid.Shape, compareVec); }
public void Test_CreateModel() { IGameModel model = new RoyalGameModel(2); }