public void ShouldNotBeAbleToTakeMultipleTopLevelPaths()
 {
     var p = new Player();
     p.SetLevel(2);
     p.ChooseSkill(new PathOfTheFighter());
     p.ChooseSkill(new PathOfTheWizard());
 }
 public void ShouldAddModifiersToCharacterWhenSkillChosen()
 {
     var p = new Player();
     Assert.IsTrue(p.CharacterModifiers.Count == 0);
     p.LevelUp();
     p.ChooseSkill(new PathOfTheFighter());
     Assert.IsTrue(p.CharacterModifiers.Count > 0);
 }
 public void ShouldAddActionsToCharacterWhenSkillChosen()
 {
     var p = new Player();
     p.LevelUp();
     Assert.IsFalse(p.GetActions(false).Exists(i => i is SpellSpear));
     p.ChooseSkill(new PathOfTheWizard());
     Assert.IsTrue(p.GetActions(false).Exists(i => i is SpellSpear));
 }
 public void ShouldApplyPercentageMana()
 {
     var p = new Player();
     p.LevelUp();
     p.ChooseSkill(new PathOfTheWizard());
     p.GainMana(50);
     p.AddModifier(new ManaBonusPercentage(50));
     Assert.IsTrue(p.BonusMana == 100);
 }
 public void ShouldApplyEquipmentModifiersToCharacter()
 {
     var c = new Player();
     c.LevelUp();
     c.ChooseSkill(new PathOfTheWizard());
     var e = new CastersShield();
     EquipmentHelper.EquipEquipment(c, e);
     Assert.IsTrue(c.CharacterModifiers.Exists(i => i is MagicDamagePercentage));
 }
 public void ShouldTakeSecondSkillIfParentTaken()
 {
     var p = new Player();
     p.SetLevel(2);
     p.ChooseSkill(new PathOfTheFighter());
     p.ChooseSkill(new PathOfTheKnight());
     Assert.IsTrue(p.CurrentClass == SkillBranches.Knight);
 }
 public void ShouldNotTakeSkillIfCharacterCannotAfford()
 {
     var p = new Player();
     p.ChooseSkill(new PathOfTheDarkKnight());
 }
 public void ShouldNotBeAbleToTakeSkillWithoutParent()
 {
     var p = new Player();
     p.SetLevel(2);
     p.ChooseSkill(new PathOfTheBarbarian());
 }
 public void ShouldNotBeAbleToTakeSkillAtLevelAbove()
 {
     var p = new Player();
     p.ChooseSkill(new PathOfTheKnight());
 }
 public void ShouldNotBeAbleToTakeSkillAlreadyTaken()
 {
     var p = new Player();
     p.ChooseSkill(new PathOfTheFighter());
     p.ChooseSkill(new PathOfTheFighter());
 }