public void CharactersCanDamangeOtherCharacters() { var attacker = new MeleeFighter(); var target = new MeleeFighter(); attacker.CanDealDamageTo(target).Should().BeSuccessful(); }
public void CharactersDieWhenDamageTakenExceedsHealth() { var attacker = new MeleeFighter(); var target = new MeleeFighter(); attacker.DealDamageTo(target, 1001); target.IsAlive.Should().BeFalse(); }
public void DeadCharactersCannotBeHealed() { var attacker = new MeleeFighter(); var target = new MeleeFighter(); attacker.DealDamageTo(target, 1001); target.CanHealSelf().Should().BeFailure(); attacker.CanHeal(target).Should().BeFailure(); }
public void PlayersBelongingToTheSameFactionAreConsideredAllies() { var player1 = new MeleeFighter(); var player2 = new MeleeFighter(); player1.JoinFaction("a"); player2.JoinFaction("a"); player1.IsAlliesWith(player2).Should().BeTrue(); }
public void CharactersMustBeInRangeToDealDamageToATarget() { var attacker = new RangedFighter(); var target = new MeleeFighter(); attacker.MoveStepsLeft(5); target.MoveStepsRight(5); attacker.IsInRangeToDealDamageTo(target).Should().BeTrue(); }
public void WhenDealingDamageToTarget5LevelsBelowDamageIsIncreasedBy50Pct() { var attacker = new MeleeFighter(); var target = new MeleeFighter(); attacker.RaiseLevelTo(6); attacker.DealDamageTo(target, 100); target.Health.Should().Be(850); }
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" }); }
public void CannotDealDamageToCharacterOutOfRange() { var attacker = new RangedFighter(); var target = new MeleeFighter(); attacker.MoveStepsLeft(5); target.MoveStepsRight(16); attacker.IsInRangeToDealDamageTo(target).Should().BeFalse(); }
public void WhenDealingDamageToTarget5LevelsAboveDamageIsReducedBy50Pct() { var attacker = new MeleeFighter(); var target = new MeleeFighter(); target.RaiseLevelTo(6); attacker.DealDamageTo(target, 100); target.Health.Should().Be(950); }
public void HealingCannotRaiseHealthAbove1000() { var first = new MeleeFighter(); var second = new MeleeFighter(); first.DealDamageTo(second, 100); second.HealSelf(200); second.Health.Should().Be(1000); }
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(); }
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(); }
public void CharactersStartAlive() { var character = new MeleeFighter(); character.IsAlive.Should().BeTrue(); }
public void CharactersStartAtLevelOne() { var character = new MeleeFighter(); character.Level.Should().Be(1); }
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(); }
public void NewCharactersBelongToNoFaction() { var character = new MeleeFighter(); character.Factions.Should().BeEmpty(); }
public void ACharacterCannotDealDamageToItself() { var character = new MeleeFighter(); character.CanDealDamageTo(character).Should().BeFailure(); }
public void CharactersWhenCreatedStartWithHealth1000() { var character = new MeleeFighter(); character.Health.Should().Be(1000); }
public void Setup() { meleeFighter = MeleeFighter.Create(); }
public void MeleeFightersHaveARangeOf2Meters() { var character = new MeleeFighter(); character.AttackMaxRange.Should().Be(2); }