public FlurryOfBlowsTests() { monk = CharacterTestTemplates.MarkyMonk(); var strike = new MonkUnarmedStrike(); monk.Add(strike); }
public void ProvidesImmunityToPoison() { var monk = CharacterTestTemplates.MarkyMonk(); monk.Add(new DiamondBody()); AssertCharacter.IsImmuneTo("poison", monk); }
public void AdjustDamageToMeetCharacterSize() { var monk = CharacterTestTemplates.MarkyMonk(); monk.Size.SetSize(CharacterSize.Small, 0, 0); monk.Add(unarmedStrike); Assert.Equal("1d4", unarmedStrike.Attack.Damage.ToString()); }
public void AddsUnarmedMeleeAttackToOffenseStats() { var monk = CharacterTestTemplates.MarkyMonk(); monk.Add(unarmedStrike); Assert.Contains(unarmedStrike.Attack, monk.Offense.Attacks()); Assert.Equal("1d6", unarmedStrike.Attack.Damage.ToString()); }
public void DamageIncreasesWithCharacterLevel() { var monk = CharacterTestTemplates.MarkyMonk(); monk.Add(unarmedStrike); monk.SetLevel(2); Assert.Contains(unarmedStrike.Attack, monk.Offense.Attacks()); Assert.Equal("1d8", unarmedStrike.Attack.Damage.ToString()); }
public void AddsDamageResistance() { var monk = CharacterTestTemplates.MarkyMonk(); monk.Add(new PerfectSelf()); var defense = monk.Get <DefenseStats>(); var dr = defense.EnergyResistance.First(); Assert.Equal(10, dr.Amount); Assert.Equal("chaotic", dr.DamageType); }
public void SaveDCIsBasedOnLevelAndWisdom() { var monk = CharacterTestTemplates.MarkyMonk(); var quiver = new QuiveringPalm(); monk.Add(quiver); monk.AbilityScores.SetScore(AbilityScoreTypes.Wisdom, 16); Assert.Equal(13, quiver.SaveDC); monk.SetLevel(10); Assert.Equal(18, quiver.SaveDC); }
public void SlowFallCanBeSetToUnlimited() { var dataTable = new DataTable("monk abilities"); dataTable.SetColumns(new string[] { "slow-fall" }); dataTable.AddRow("1", new string[] { "Unlimited" }); var slowFall = new SlowFall(dataTable); var monk = CharacterTestTemplates.MarkyMonk(); monk.Add(slowFall); Assert.Equal("Slow Fall (Unlimited ft)", slowFall.DisplayString()); }
public void ImprovesArmorClassWithLevelUps() { var monk = CharacterTestTemplates.MarkyMonk(); var oldAC = monk.Defense.ArmorClass.TotalValue; var dataTable = new DataTable("monk abilities"); dataTable.SetColumns(new string[] { "ac-bonus" }); dataTable.AddRow("1", new string[] { "0" }); dataTable.AddRow("2", new string[] { "1" }); monk.Add(new MonkArmorClassBonus(dataTable)); monk.SetLevel(2); Assert.Equal(oldAC + 1, monk.Defense.ArmorClass.TotalValue); }
public void AddsWisdomModifierIfPositiveToArmorClassIfNotWearingArmor() { var monk = CharacterTestTemplates.MarkyMonk(); monk.AbilityScores.SetScore(AbilityScoreTypes.Wisdom, 18); //+4 modifier var oldAC = monk.Defense.ArmorClass.TotalValue; monk.Add(new MonkArmorClassBonus()); Assert.Equal(oldAC + 4, monk.Defense.ArmorClass.TotalValue); var anyArmor = new Armor(); monk.Inventory.EquipItem(anyArmor); Assert.Equal(oldAC, monk.Defense.ArmorClass.TotalValue); }
public void MonksMoveFasterAsLevelsIncrease() { var monk = CharacterTestTemplates.MarkyMonk(); var dataTable = new DataTable("monk abilities"); dataTable.SetColumns(new string[] { "fast-movement" }); dataTable.AddRow("1", new string[] { "10" }); dataTable.AddRow("2", new string[] { "20" }); var fastMove = new MonkFastMovement(dataTable); var oldSpeed = monk.Movement.MovementSpeed; monk.Add(fastMove); Assert.Equal(oldSpeed + 10, monk.Movement.MovementSpeed); monk.SetLevel(2); Assert.Equal(oldSpeed + 20, monk.Movement.MovementSpeed); }
public void SlowFallImprovesWithLevels() { var dataTable = new DataTable("monk abilities"); dataTable.SetColumns(new string[] { "slow-fall" }); dataTable.AddRow("1", new string[] { "10" }); dataTable.AddRow("2", new string[] { "25" }); var slowFall = new SlowFall(dataTable); var monk = CharacterTestTemplates.MarkyMonk(); monk.Add(slowFall); Assert.Equal("Slow Fall (10 ft)", slowFall.DisplayString()); monk.SetLevel(2); Assert.Equal("Slow Fall (25 ft)", slowFall.DisplayString()); }