public void ArmoredSwordsmanVsHighlander() { Highlander highlander = new Highlander(); Swordsman swordsman = new Swordsman() .Equip("buckler") .Equip("armor"); swordsman.Engage(highlander); Assert.AreEqual(0, swordsman.HitPoints()); Assert.AreEqual(10, highlander.HitPoints()); }
public void SwordsmanWithBucklerVsVikingWithBuckler() { Swordsman swordsman = new Swordsman() .Equip("buckler"); Viking viking = new Viking() .Equip("buckler"); swordsman.Engage(viking); Assert.AreEqual(0, swordsman.HitPoints()); Assert.AreEqual(70, viking.HitPoints()); }
public void CellChange() { var map = new Map("P "); var level = new Level("test", map); var swordsman = new Swordsman(true); map.AddCharacter(swordsman); var messagesCount = 0; level.CellChange += (x, y, creature) => messagesCount++; swordsman.Doing = new Movement(swordsman, 1, 0); swordsman.DoAction(level); Assert.AreEqual(2, messagesCount); }
public void CanAttackUnit_Swordsman(int x, int y, bool canAttack) { const int startPositionX = 10; const int startPositionY = 10; Player Player1 = new Player(1, "Игрок №1", null); Player Player2 = new Player(2, "Игрок №2", null); Swordsman Swordsman = new Swordsman(Player1, startPositionX, startPositionY); Archer Target = new Archer(Player2, x, y); Map Map = CreateMap(units: new object[] { Swordsman, Target }); GameController GameController = new GameController(Map); Assert.AreEqual(canAttack, GameController.CanAttackUnit(Swordsman, Target)); }
public void ViciousSwordsmanVsVeteranHighlander() { Swordsman swordsman = new Swordsman("Vicious") .Equip("axe") .Equip("buckler") .Equip("armor"); Highlander highlander = new Highlander("Veteran"); swordsman.Engage(highlander); Assert.AreEqual(1, swordsman.HitPoints()); Assert.AreEqual(0, highlander.HitPoints()); }
public void CanAttackUnit_Swordsman(int x, int y, bool canAttack) { const int startPositionX = 10; const int startPositionY = 10; var player1 = new Player(1, "Игрок №1", null); var player2 = new Player(2, "Игрок №2", null); var swordsman = new Swordsman(player1, startPositionX, startPositionY); var target = new Archer(player2, x, y); var map = CreateMap(units: new Unit[] { swordsman, target }); var gameController = new GameController(map); Assert.AreEqual(canAttack, gameController.CanAttackUnit(swordsman, target)); }
public void CanMoveUnit_SwordsmanOnEmptyMap(int x, int y, bool canMove) { const int startPositionX = 10; const int startPositionY = 10; var player = new Player(1, "Игрок №1", null); var swordsman = new Swordsman(player) { X = startPositionX, Y = startPositionY }; var map = CreateMap(units: new[] { swordsman }); var gameController = new GameController(map); Assert.AreEqual(canMove, gameController.CanMoveUnit(swordsman, x, y)); }
public IUnit CreateUnit(string sourceBuilding) { switch (sourceBuilding) { case "archery": var archer = new Archer(); return(archer); case "barracks": var swordsman = new Swordsman(); return(swordsman); default: throw new ArgumentException("Unkonwn type buildin"); } }
public void MoveUnit_AllTypes() { const int movePositionX = 15; const int movePositionY = 15; var player = new Player(1, "Игрок №1", null); var map = CreateMap(); var gameController = new GameController(map); var archer = new Archer(player) { X = 14, Y = 14 }; gameController.MoveUnit(archer, movePositionX, movePositionY); Assert.AreEqual(movePositionX, archer.X); Assert.AreEqual(movePositionY, archer.Y); var catapult = new Catapult(player) { X = 14, Y = 14 }; gameController.MoveUnit(catapult, movePositionX, movePositionY); Assert.AreEqual(movePositionX, catapult.X); Assert.AreEqual(movePositionY, catapult.Y); var horseman = new Horseman(player) { X = 14, Y = 14 }; gameController.MoveUnit(horseman, movePositionX, movePositionY); Assert.AreEqual(movePositionX, horseman.X); Assert.AreEqual(movePositionY, horseman.Y); var swordsman = new Swordsman(player) { X = 14, Y = 14 }; gameController.MoveUnit(swordsman, movePositionX, movePositionY); Assert.AreEqual(movePositionX, swordsman.X); Assert.AreEqual(movePositionY, swordsman.Y); }
public override void Update() { base.Update(); if (this.CycleCounter % 3 == 0 && this.CycleCounter != 0) { var steel = new Steel(); this.AddResource(steel); this.ResourceCycle = 0; } if (this.CycleCounter % 4 == 0 && this.CycleCounter != 0) { var swordsman = new Swordsman(); this.AddUnit(swordsman); this.Engine.DB.AddUnit(swordsman); this.UnitCycle = 0; } }
public void GetObjectCoordinates_AllTypes() { Player Player = new Player(1, "Игрок №1", null); Map Map = new Map(null, null); GameController GameController = new GameController(Map); Archer Archer = new Archer(Player, 1, 2); Coordinates ArcherCoordinates = GameController.GetObjectCoordinates(Archer); Assert.AreEqual(1, ArcherCoordinates.X); Assert.AreEqual(2, ArcherCoordinates.Y); Catapult Catapult = new Catapult(Player, 3, 4); Coordinates CatapultCoordinates = GameController.GetObjectCoordinates(Catapult); Assert.AreEqual(3, CatapultCoordinates.X); Assert.AreEqual(4, CatapultCoordinates.Y); Horseman Horseman = new Horseman(Player, 5, 6); Coordinates HorsemanCoordinates = GameController.GetObjectCoordinates(Horseman); Assert.AreEqual(5, HorsemanCoordinates.X); Assert.AreEqual(6, HorsemanCoordinates.Y); Swordsman Swordsman = new Swordsman(Player, 7, 8); Coordinates SwordsmanCoordinates = GameController.GetObjectCoordinates(Swordsman); Assert.AreEqual(7, SwordsmanCoordinates.X); Assert.AreEqual(8, SwordsmanCoordinates.Y); Grass Grass = new Grass(9, 10); Coordinates GrassCoordinates = GameController.GetObjectCoordinates(Grass); Assert.AreEqual(9, GrassCoordinates.X); Assert.AreEqual(10, GrassCoordinates.Y); Water Water = new Water(11, 12); Coordinates WaterCoordinates = GameController.GetObjectCoordinates(Water); Assert.AreEqual(11, WaterCoordinates.X); Assert.AreEqual(12, WaterCoordinates.Y); }
public void GetObjectCoordinates_AllTypes() { var player = new Player(1, "Игрок №1", null); var map = new Map(null, null); var gameController = new GameController(map); var archer = new Archer(player, 1, 2); var archerCoordinates = gameController.GetObjectCoordinates(archer); Assert.AreEqual(1, archerCoordinates.X); Assert.AreEqual(2, archerCoordinates.Y); var catapult = new Catapult(player, 3, 4); var catapultCoordinates = gameController.GetObjectCoordinates(catapult); Assert.AreEqual(3, catapultCoordinates.X); Assert.AreEqual(4, catapultCoordinates.Y); var horseman = new Horseman(player, 5, 6); var horsemanCoordinates = gameController.GetObjectCoordinates(horseman); Assert.AreEqual(5, horsemanCoordinates.X); Assert.AreEqual(6, horsemanCoordinates.Y); var swordsman = new Swordsman(player, 7, 8); var swordsmanCoordinates = gameController.GetObjectCoordinates(swordsman); Assert.AreEqual(7, swordsmanCoordinates.X); Assert.AreEqual(8, swordsmanCoordinates.Y); var grass = new Grass(9, 10); var grassCoordinates = gameController.GetObjectCoordinates(grass); Assert.AreEqual(9, grassCoordinates.X); Assert.AreEqual(10, grassCoordinates.Y); var water = new Water(11, 12); var waterCoordinates = gameController.GetObjectCoordinates(water); Assert.AreEqual(11, waterCoordinates.X); Assert.AreEqual(12, waterCoordinates.Y); }
public void AttackUnit_CatapultAttackCloseCombatAllTypes() { var player1 = new Player(1, "Игрок №1", null); var player2 = new Player(2, "Игрок №2", null); var catapult = new Catapult(player1) { X = 9, Y = 9 }; var map = CreateMap(); var gameController = new GameController(map); // Лучник имеет 50 жизней. Погибнет за один удар. var archerTarget = new Archer(player2) { X = 10, Y = 10 }; Assert.AreEqual(1, GetAttacksCount(gameController, catapult, archerTarget)); // Катапульта имеет 75 жизней. Погибнет за два удара. var catapultTarget = new Catapult(player2) { X = 10, Y = 10 }; Assert.AreEqual(2, GetAttacksCount(gameController, catapult, catapultTarget)); // Всадник имеет 200 жизней. Необходимо 4 удара. var horsemanTarget = new Horseman(player2) { X = 10, Y = 10 }; Assert.AreEqual(4, GetAttacksCount(gameController, catapult, horsemanTarget)); // Мечник имеет 100 жизней. Погибнет за два удара. var swordsmanTarget = new Swordsman(player2) { X = 10, Y = 10 }; Assert.AreEqual(2, GetAttacksCount(gameController, catapult, swordsmanTarget)); }
public void CanMoveUnit_SwordsmanOnWater_False() { const int waterPositionX = 15; const int waterPositionY = 15; var player = new Player(1, "Игрок №1", null); var swordsman = new Swordsman(player) { X = 10, Y = 10 }; var water = new Water() { X = waterPositionX, Y = waterPositionY }; var map = CreateMap(new [] { water }, new [] { swordsman }); var gameController = new GameController(map); Assert.False(gameController.CanMoveUnit(swordsman, waterPositionX, waterPositionY)); }
public void CanMoveUnit_SwordsmanOnGrass_True() { const int grassPositionX = 15; const int grassPositionY = 15; var player = new Player(1, "Игрок №1", null); var swordsman = new Swordsman(player) { X = 10, Y = 10 }; var grass = new Grass() { X = grassPositionX, Y = grassPositionY }; var map = CreateMap(new[] { grass }, new[] { swordsman }); var gameController = new GameController(map); Assert.True(gameController.CanMoveUnit(swordsman, grassPositionX, grassPositionY)); }
static void Main(string[] args) { //Console.WriteLine("Give me equipment data file"); //var equipmentfile = Console.ReadLine(); var equipmentfile = "Equipment.cfg"; ReadData.ReadFile(equipmentfile); Warrior w1 = new Swordsman(); Warrior w2 = new Viking(); w1.AddModifier(new DamageModifier(10, 3), "sword"); w1.SetModifierTotal(new DamageModifier(0, 2)); w2.Equip("buckler"); Console.WriteLine(w1.HitPoints().ToString() + " x " + w2.HitPoints().ToString()); w1.Engage(w2); Console.WriteLine(w1.HitPoints().ToString() + " x " + w2.HitPoints().ToString()); Console.ReadLine(); }
public void TestMethod1() { // 實現角色(client) & 角色附有招式(Command) Knight knight = new Knight(); Swordsman swordsman = new Swordsman(); // 實現招式插槽(Invoker) ISlot moveSlot = new MoveSlot(); // 實現怪物(Receiver) IMonster monster = new Slime(); // 注入招式(Command)至招式插槽(Invoker) moveSlot.SetMovesSlot(1, knight.MoveList[2]); moveSlot.SetMovesSlot(3, swordsman.MoveList[1]); // 透過招式插槽(Invoker)打擊怪物(Receiver) moveSlot.Moves[0].Cast(monster); moveSlot.Moves[1].Cast(monster); }
public void CreatureTakeDamage() { var health = 100; var attacked = new Swordsman(true) { Health = health }; var messagesCount = 0; var _damage = 20; attacked.Damaged += (x, y, creature, damage) => { Assert.AreEqual(_damage, damage); messagesCount++; }; for (var i = 0; i < health / _damage; i++) { attacked.Health -= _damage; } Assert.AreEqual(health / _damage - 1, messagesCount); }
public NonPlayablePlayer(int supplies, int strength) : base() { this.supplies = supplies; while (this.computeStrength() < strength) { Follower f; // randomize selection of f f = new Swordsman(); if (this.computeStrength() + f.getStrength() <= strength) { this.addFollower(f); } else { break; } } }
public void DieCreature() { var map = new Map("P"); var level = new Level("test", map); var attacked = new Swordsman(true) { Health = 10 }; level.PlayerCoins = attacked.Cost; level.BuyCharacter(attacked); var messagesCount = 0; level.Die += (x, y, creature) => messagesCount++; attacked.Health -= 10; var lostCreatures = level.Map.FirstOrDefault(); Assert.IsNull(lostCreatures); attacked.Health = -10; Assert.AreEqual(1, messagesCount); }
private void scriptMyselfFightToolStripMenuItem_Click(object sender, EventArgs e) { string totalText = "Hoplites: " + Hoplite.ToString() + "\n"; totalText += "Steam giants: " + SteamGiant.ToString() + "\n"; totalText += "Spearmen: " + Spearman.ToString() + "\n"; totalText += "Slingers: " + Slinger.ToString() + "\n"; totalText += "Swordsmen: " + Swordsman.ToString() + "\n"; totalText += "Archers: " + Archer.ToString() + "\n"; totalText += "Sulphur carabineers: " + SulphurCarabineer.ToString() + "\n"; totalText += "Rams: " + Ram.ToString() + "\n"; totalText += "Catapults: " + Catapult.ToString() + "\n"; totalText += "Mortars: " + Mortar.ToString() + "\n"; totalText += "Gyrocopters: " + Gyrocopter.ToString() + "\n"; totalText += "Balloon bombardiers: " + BalloonBombardier.ToString() + "\n"; totalText += "Cooks: " + Cook.ToString() + "\n"; totalText += "Doctors: " + Doctor.ToString() + "\n"; totalText += "Transporter ships: " + TransporterShips.ToString() + "\n"; totalText += "\nWhen finished, go to the city and press \"Raid\""; MessageBox.Show(totalText, "Auto fight"); }
public Order(Village village, string name, int quantity = 1) { id = GetId(); headquarters = new Headquarters(); timberCamp = new TimberCamp(); clayPit = new ClayPit(); ironMine = new IronMine(); farm = new Farm(); warehouse = new Warehouse(); rallyPoint = new RallyPoint(); barracks = new Barracks(); statue = new Statue(); wall = new Wall(); hospital = new Hospital(); market = new Market(); tavern = new Tavern(); academy = new Academy(); hallOfOrders = new HallOfOrders(); spearman = new Spearman(); swordsman = new Swordsman(); archer = new Archer(); heavyCavalry = new HeavyCavalry(); axeFighter = new AxeFighter(); lightCavalry = new LightCavalry(); mountedArcher = new MountedArcher(); ram = new Ram(); catapult = new Catapult(); barracksInfos = new List <PartialBarracksInfo>(); farmInfos = new List <PartialFarmInfo>(); waitInfos = new List <PartialWaitInfo>(); barracksToDateTime = new Dictionary <int, DateTime>(); stringToEntity = new Dictionary <string, Entity>() { { "Headquarters", headquarters }, { "TimberCamp", timberCamp }, { "ClayPit", clayPit }, { "IronMine", ironMine }, { "Farm", farm }, { "Warehouse", warehouse }, { "RallyPoint", rallyPoint }, { "Barracks", barracks }, { "Statue", statue }, { "Wall", wall }, { "Hospital", hospital }, { "Market", market }, { "Tavern", tavern }, { "Academy", academy }, { "HallOfOrders", hallOfOrders }, { "Spearman", spearman }, { "Swordsman", swordsman }, { "Archer", archer }, { "HeavyCavalry", heavyCavalry }, { "AxeFighter", axeFighter }, { "LightCavalry", lightCavalry }, { "MountedArcher", mountedArcher }, { "Ram", ram }, { "Catapult", catapult }, { "init", null } }; barracksToLimit = new Dictionary <int, int>() { { 1, 5 }, { 2, 10 }, { 3, 15 } }; for (int i = 4; i <= 25; i++) { barracksToLimit.Add(i, int.MaxValue); } this.name = name; this.quantity = quantity; entity = stringToEntity[name]; bar = new OrderBar(this.village = village); }
public PursueAnswer(Swordsman _swordsman) { swordsman = _swordsman; }
public PathfindAnswer(Swordsman _swordsman) { swordsman = _swordsman; }
private void Awake() { s_player = this; _jumps = _jumpConsecutive; useGUILayout = false; _screenPos = Camera.main.WorldToScreenPoint(transform.position); _rectCircle.x = _screenPos.x - _moveGestureRadius; _rectCircle.y = Screen.height - _screenPos.y - _moveGestureRadius; _rectCircle.width = 2*_moveGestureRadius; _rectCircle.height = 2*_moveGestureRadius; _circle = Resources.Load(CIRCLE_TEXT) as Texture2D; _arm = GameObject.Find(ARM); _sword = GameObject.Find(SWORD); _sword.active = false; health = 100; score = 0; _normalMaterial = _arm.renderer.material; _invincibleMaterial = (Material) GameObject.Instantiate(Resources.Load(INVINCIBLE_MAT)); }
public AttackAnswer(Swordsman _swordsman) { swordsman = _swordsman; }
public override void Update(GameTime gameTime) { this.CleanDead(); var allEntities = UsersManager.CurrentPlayer.AllEntities; foreach (var entity in allEntities) { entity.GravityAffect(gameTime, this.terrain); } foreach (var unit in UsersManager.CurrentPlayer.Units) { unit.Update(gameTime, this.terrain, allEntities); } this.details?.Update(gameTime); if (Input.KeyPressed(Keys.D1)) { if (EntitySelector.HasPicked()) { EntitySelector.PlaceEntity(); } else { var unit = new Swordsman(Guid.NewGuid(), UsersManager.CurrentPlayer.Id, Vector3.Zero, Quaternion.Identity); Client.Socket.Writer.Send(Message.Create(Service.AddUnit, UnitFactory.ToDto(unit))); UsersManager.CurrentPlayer.Units.Add(unit); UsersManager.CurrentPlayer.AllEntities.Add(unit); EntitySelector.EntityPicked = unit; } } if (Input.LeftMouseClick()) { if (EntitySelector.HasPicked()) { EntitySelector.PlaceEntity(); } else { EntitySelector.SelectEntity( DisplayManager.Instance.GraphicsDevice, this.camera.ProjectionMatrix, this.camera.ViewMatrix, allEntities); if (EntitySelector.HasSelected()) { var projectedPosition = DisplayManager.Instance.GraphicsDevice.Viewport.Project( EntitySelector.EntitySelected.Position, this.camera.ProjectionMatrix, this.camera.ViewMatrix, Matrix.Identity); this.details = new EntityDetailsLayout(EntitySelector.EntitySelected, PointTextures.TransparentBlackPoint, projectedPosition); } } } if (EntitySelector.HasSelected()) { if (Input.RightMouseDoubleClick) { IEntity selected = EntitySelector.EntitySelected; this.CommandSelectedEntity(selected, allEntities.Where(e => e != selected)); } } if (this.details != null) { this.ProjectClickedEntity(); this.ReadDetailsCommand(); } EntitySelector.DragEntity( DisplayManager.Instance.GraphicsDevice, this.camera.ProjectionMatrix, this.camera.ViewMatrix, this.terrain); this.skybox.Update(gameTime); this.camera.Update(gameTime, this.terrain); }
private void SetSwordsmanTask(SpaceObject o, Swordsman unitSwordsman, Ray ray, RaycastHit hit, int unitsCount, int i) { RaycastHit checkObjectHit; if (Physics.Raycast(ray, out checkObjectHit)) { SpaceObject so = checkObjectHit.transform.GetComponent<SpaceObject>(); if (so != null) { if (so.Transponder == TransponderType.Enemy) { unitSwordsman.SetTask(so.gameObject); } } else { unitSwordsman.SetTask(ray.GetPoint(hit.distance), unitsCount, i); } } }
public override void Init() { base.Init(); swordsman = transform.parent.GetComponent <Swordsman>(); }
public override IUnit CreateUnit() { Swordsman swordsman = new Swordsman(); return(swordsman); }
private void Update() { if (health > 0) { pathTimer -= Time.deltaTime; if (!pathfindReady && pathFollower.pathFinished) { pathfindReady = true; } if (pathTimer <= 0) { pathfindReady = true; } if (!inMaze && transform.position.x < -200) { inMaze = true; } aISteering.fleeTargets.Clear(); swordsmen.Clear(); Collider[] colls = Physics.OverlapSphere(transform.position, 20); for (int i = 0; i < colls.Length; i++) { Swordsman man = colls[i].GetComponent <Swordsman>(); if (man != null) { if (!seeEnemy) { seeEnemy = true; pathfindReady = true; } swordsmen.Add(man); } } bool temp = atHome; if (Vector3.Distance(transform.position, home.transform.position) < 3) { atHome = true; } if (temp != atHome) { for (int i = 0; i < spawnWhenAtHome.Count; i++) { spawnWhenAtHome[i].SetActive(true); } } healthBar.transform.localScale = new Vector3(healthBar.transform.localScale.x, healthBar.transform.localScale.y, health / 5f); if (!atHome) { Decide(); } } else { aISteering.agent.alive = false; aISteering.rb.freezeRotation = false; healthBar.transform.localScale = new Vector3(healthBar.transform.localScale.x, healthBar.transform.localScale.y, 0); } }
static void Main(string[] args) { /*Strategy Pattern*/ Console.WriteLine("Output for strategy pattern: \n"); Person swordsman = new Swordsman(new SwordBehaviour()); Console.WriteLine("The swordsman is:"); swordsman.Fight(); Console.WriteLine(); Person bowman = new Bowman(new BowBehaviour()); Console.WriteLine("The bowman is:"); bowman.Fight(); Console.WriteLine(); bowman.SetWeapon(new KnifeBehaviour()); Console.WriteLine("The bowman is:"); bowman.Fight(); Console.WriteLine(); Console.WriteLine("______________________________________________________________________________"); /*Observer Pattern*/ Console.WriteLine("Output for observer pattern: \n"); Newsticker newsticker = new Newsticker(); //Instance of subject SmartwatchDisplay smartwatchDisplay = new SmartwatchDisplay(newsticker); //instance of observer newsticker.RegisterObserver(smartwatchDisplay); //register observer to subject newsticker.SetNews("Breaking News! Hamburger Software does not sell burgers!"); //update news and notify observers Console.WriteLine("______________________________________________________________________________"); /*Decorator Pattern*/ Console.WriteLine("Output for decorator pattern: \n"); DungieGame dungieGame = new Worstiny(); Console.WriteLine(dungieGame.Description + "\nPrice: " + dungieGame.Price + "Euro"); Console.WriteLine(); dungieGame = new GoodDLC(dungieGame); Console.WriteLine(dungieGame.Description + "\nPrice: " + dungieGame.Price + "Euro"); Console.WriteLine(); dungieGame = new EvenBetterDLC(dungieGame); Console.WriteLine(dungieGame.Description + "\nPrice: " + dungieGame.Price + "Euro"); Console.WriteLine("______________________________________________________________________________"); /*Factory Method Pattern*/ Console.WriteLine("Output for factory method pattern: \n"); DeviceFactory factory = new DeviceFactory(); Factory_Method_Pattern.IDevice device = factory.MakeDevice(Factory_Method_Pattern.DeviceType.PC); Console.WriteLine("Factory created device:"); Console.WriteLine(device.Name); Console.WriteLine(); Console.WriteLine("______________________________________________________________________________"); /*Abstract Factory Pattern*/ Console.WriteLine("Output for abstract factory pattern: \n"); AbstractStore yStore = new YStore(); Device pineappleSmartphone = yStore.OrderDevice(Abstract_Factory_Pattern.DeviceType.Smartphone); Console.WriteLine("Peter received his " + pineappleSmartphone.Name + "!"); Console.WriteLine(); AbstractStore jupiterStore = new JupiterStore(); Device macroComputer = jupiterStore.OrderDevice(Abstract_Factory_Pattern.DeviceType.Computer); Console.WriteLine("Chris received his " + macroComputer.Name + "!"); Console.WriteLine("______________________________________________________________________________"); /*Singleton Pattern*/ Console.WriteLine("Output for singleton pattern: \n"); BasicSingleton basicSingleton = BasicSingleton.CreateInstance; Console.WriteLine(basicSingleton.Text); Console.ReadLine(); }