public void ApproachMeleeRange() { Board board = new Board( new int[,] { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0 }, { 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0 }, { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0 }, { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0 }, { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0 }, { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0 }, { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }); Combatant attacker = new Combatant("Attacker", board, new Point(1, 7)); Combatant defender = new Combatant("Defender", board, new Point(10, 1)); board.AddPawn(attacker); board.AddPawn(defender); attacker.Health = 10; defender.Health = 10; attacker.BaseStats = new Stats() { Attack = 10, Stamina = 25 }; attacker.AddPawnToView(defender); MeleeAttackSkill attack = new MeleeAttackSkill(attacker, new Point[] { Point.Right, 2 * Point.Right }) { ActionPoints = 3 }; attacker.AddSkill(attack); WalkSkill walk = new WalkSkill(attacker); attacker.AddSkill(walk); LostGen.Decision.ApproachMeleeRange approach = new LostGen.Decision.ApproachMeleeRange(attacker); approach.Target = defender; approach.Setup(); approach.Run(); board.BeginTurn(); Assert.AreEqual(25, attacker.ActionPoints); board.Turn(); Assert.AreEqual(new Point(10, 3), attacker.Position); }
public ISkill GetSkill(int skillID, Combatant owner) { ISkill skill = null; switch (skillID) { case 0: skill = new WalkSkill(owner); break; case 1: skill = new MeleeAttackSkill(owner, new Point[] { Point.Right, Point.Right * 2 }); break; } return skill; }
private void ArrangeBoard(int[,] grid, Point start, Point end, out Board board, out Combatant pawn) { board = new Board(grid); pawn = new Combatant("Walker", board, Point.One); Stats stats = new Stats() { Stamina = 100 }; pawn.BaseStats = stats; board.AddPawn(pawn); WalkSkill walk = new WalkSkill(pawn); pawn.AddSkill(walk); walk.SetTarget(end); board.BeginTurn(); }