Exemplo n.º 1
0
        public void CharactersCanDamangeOtherCharacters()
        {
            var attacker = new MeleeFighter();
            var target   = new MeleeFighter();

            attacker.CanDealDamageTo(target).Should().BeSuccessful();
        }
Exemplo n.º 2
0
        public void CharactersDieWhenDamageTakenExceedsHealth()
        {
            var attacker = new MeleeFighter();
            var target   = new MeleeFighter();

            attacker.DealDamageTo(target, 1001);

            target.IsAlive.Should().BeFalse();
        }
Exemplo n.º 3
0
        public void DeadCharactersCannotBeHealed()
        {
            var attacker = new MeleeFighter();
            var target   = new MeleeFighter();

            attacker.DealDamageTo(target, 1001);

            target.CanHealSelf().Should().BeFailure();
            attacker.CanHeal(target).Should().BeFailure();
        }
Exemplo n.º 4
0
        public void PlayersBelongingToTheSameFactionAreConsideredAllies()
        {
            var player1 = new MeleeFighter();
            var player2 = new MeleeFighter();

            player1.JoinFaction("a");
            player2.JoinFaction("a");

            player1.IsAlliesWith(player2).Should().BeTrue();
        }
Exemplo n.º 5
0
        public void CharactersMustBeInRangeToDealDamageToATarget()
        {
            var attacker = new RangedFighter();
            var target   = new MeleeFighter();

            attacker.MoveStepsLeft(5);
            target.MoveStepsRight(5);

            attacker.IsInRangeToDealDamageTo(target).Should().BeTrue();
        }
Exemplo n.º 6
0
        public void WhenDealingDamageToTarget5LevelsBelowDamageIsIncreasedBy50Pct()
        {
            var attacker = new MeleeFighter();
            var target   = new MeleeFighter();

            attacker.RaiseLevelTo(6);
            attacker.DealDamageTo(target, 100);

            target.Health.Should().Be(850);
        }
Exemplo n.º 7
0
        public void ACharacterMayJoinOneOrMoreFactions()
        {
            var character = new MeleeFighter();

            character.JoinFaction("a");
            character.JoinFaction("b");

            character.Factions.Should().HaveCount(2);
            character.Factions.Should().Contain(new[] { "a", "b" });
        }
Exemplo n.º 8
0
        public void CannotDealDamageToCharacterOutOfRange()
        {
            var attacker = new RangedFighter();
            var target   = new MeleeFighter();

            attacker.MoveStepsLeft(5);
            target.MoveStepsRight(16);

            attacker.IsInRangeToDealDamageTo(target).Should().BeFalse();
        }
Exemplo n.º 9
0
        public void WhenDealingDamageToTarget5LevelsAboveDamageIsReducedBy50Pct()
        {
            var attacker = new MeleeFighter();
            var target   = new MeleeFighter();

            target.RaiseLevelTo(6);
            attacker.DealDamageTo(target, 100);

            target.Health.Should().Be(950);
        }
Exemplo n.º 10
0
        public void HealingCannotRaiseHealthAbove1000()
        {
            var first  = new MeleeFighter();
            var second = new MeleeFighter();

            first.DealDamageTo(second, 100);
            second.HealSelf(200);

            second.Health.Should().Be(1000);
        }
Exemplo n.º 11
0
        public void AlliesCanHealOneAnother()
        {
            var player1 = new MeleeFighter();
            var player2 = new MeleeFighter();

            player1.JoinFaction("a");
            player2.JoinFaction("a");

            player1.CanHeal(player2).Should().BeSuccessful();
            player2.CanHeal(player1).Should().BeSuccessful();
        }
Exemplo n.º 12
0
        public void AlliesCannotDealDamageToOneAnother()
        {
            var player1 = new MeleeFighter();
            var player2 = new MeleeFighter();

            player1.JoinFaction("a");
            player2.JoinFaction("a");

            player1.CanDealDamageTo(player2).Should().BeFailure();
            player2.CanDealDamageTo(player1).Should().BeFailure();
        }
Exemplo n.º 13
0
        public void CharactersStartAlive()
        {
            var character = new MeleeFighter();

            character.IsAlive.Should().BeTrue();
        }
Exemplo n.º 14
0
        public void CharactersStartAtLevelOne()
        {
            var character = new MeleeFighter();

            character.Level.Should().Be(1);
        }
Exemplo n.º 15
0
        static void Main(string[] args)
        {
            CombatManager combatManager = new CombatManager();

            Console.SetWindowSize(150, 40);
            Console.WriteLine("RPG Initialized!");
            System.Threading.Thread.Sleep(1000);

            var spearman = new MeleeFighter(0, 0)
            {
                Level = 6
            };

            Console.WriteLine("\n A level " + spearman.Level + " spearman joined the field! He is at X:" + spearman.PositionX + " Y:" + spearman.PositionY);
            System.Threading.Thread.Sleep(2000);

            var archer = new RangedFighter(6, 6);

            Console.WriteLine("A level " + archer.Level + " archer joined the field! He is at X:" + archer.PositionX + " Y:" + archer.PositionY);
            System.Threading.Thread.Sleep(2000);

            Console.WriteLine("\n The spearman tries to attack the archer...");
            System.Threading.Thread.Sleep(2000);
            combatManager.AttackHandler.AttackCharacter(spearman, archer, 490);
            System.Threading.Thread.Sleep(2000);

            Console.WriteLine("\n The archer notices and decides to attack the spearman...");
            System.Threading.Thread.Sleep(2000);
            combatManager.AttackHandler.AttackCharacter(archer, spearman, 260);
            System.Threading.Thread.Sleep(2000);

            Console.WriteLine("\n The spearman is wounded in the right leg and falls on the ground, on top of his own spear!");
            System.Threading.Thread.Sleep(2000);
            combatManager.AttackHandler.AttackCharacter(spearman, spearman, 120);
            System.Threading.Thread.Sleep(2000);

            Console.WriteLine("\n The archer laughs and fires another arrow!");
            System.Threading.Thread.Sleep(2000);
            combatManager.AttackHandler.AttackCharacter(archer, spearman, 260);
            System.Threading.Thread.Sleep(2000);

            Console.WriteLine("\n The spearman gets up through sheer willpower and rushes towards the archer!");
            System.Threading.Thread.Sleep(2000);
            combatManager.MoveHandler.MoveCharacter(spearman, 4, 4);
            System.Threading.Thread.Sleep(2000);

            Console.WriteLine("\n The archer is confident and shoots yet another arrow!");
            System.Threading.Thread.Sleep(2000);
            combatManager.AttackHandler.AttackCharacter(archer, spearman, 260);
            System.Threading.Thread.Sleep(2000);

            Console.WriteLine("\n The spearman remembers he is trying to get a job and that gives him a rush of adrenaline! He attacks the archer with all his might!");
            System.Threading.Thread.Sleep(3000);
            combatManager.AttackHandler.AttackCharacter(spearman, archer, 900);
            System.Threading.Thread.Sleep(2000);

            Console.WriteLine("\n The spearman sighs with relief for a brief moment, when...");
            System.Threading.Thread.Sleep(2000);

            var knight = new MeleeFighter(0, 0)
            {
                Level = 14
            };

            Console.WriteLine("\n A level " + knight.Level + " knight joined the field! He is at X:" + knight.PositionX + " Y:" + knight.PositionY);
            System.Threading.Thread.Sleep(2000);

            Console.WriteLine("\n ...");
            System.Threading.Thread.Sleep(2000);
            Console.WriteLine("\n Uh-oh... The spearman is in trouble.");
            System.Threading.Thread.Sleep(2000);
            Console.WriteLine("\n Or is he...?");
            System.Threading.Thread.Sleep(2000);
            Console.WriteLine("\n Okay. I am the spearman. Would you like to hire me so I can level up and win this fight? :)");
            Console.ReadLine();
        }
Exemplo n.º 16
0
        public void NewCharactersBelongToNoFaction()
        {
            var character = new MeleeFighter();

            character.Factions.Should().BeEmpty();
        }
Exemplo n.º 17
0
        public void ACharacterCannotDealDamageToItself()
        {
            var character = new MeleeFighter();

            character.CanDealDamageTo(character).Should().BeFailure();
        }
Exemplo n.º 18
0
        public void CharactersWhenCreatedStartWithHealth1000()
        {
            var character = new MeleeFighter();

            character.Health.Should().Be(1000);
        }
Exemplo n.º 19
0
 public void Setup()
 {
     meleeFighter = MeleeFighter.Create();
 }
Exemplo n.º 20
0
        public void MeleeFightersHaveARangeOf2Meters()
        {
            var character = new MeleeFighter();

            character.AttackMaxRange.Should().Be(2);
        }