public void IfNotProficientIssueAMinusFourPenalty() { var bad = CharacterTestTemplates.StrongBad(); var melee = new MeleeAttack( bad.Offense, bad.AbilityScores.GetAbility(AbilityScoreTypes.Strength), CharacterSize.Medium, sword ); Assert.Equal(-1, melee.AttackBonus.TotalValue); }
public void CustomAttackBonusModifiersAdjustAttackBonusForWeapon() { var bad = CharacterTestTemplates.StrongBad(); bad.Offense.AddWeaponProficiency(sword.ProficiencyName); bad.Offense.AddWeaponModifier(new WeaponAttackModifier(1, (IWeaponAttackStatistics wpn) => { return(wpn == sword); })); var melee = new MeleeAttack( bad.Offense, bad.AbilityScores.GetAbility(AbilityScoreTypes.Strength), CharacterSize.Medium, sword ); Assert.Equal(4, melee.AttackBonus.TotalValue); }
public void MagicWeaponsAdjustDamageAndAttackBonusInPredictableWays() { var bad = CharacterTestTemplates.StrongBad(); bad.Offense.AddWeaponProficiency(magicHammer.ProficiencyName); var melee = new MeleeAttack( bad.Offense, bad.AbilityScores.GetAbility(AbilityScoreTypes.Strength), CharacterSize.Medium, magicHammer ); Assert.Equal("1d8+4", melee.Damage.ToString()); Assert.Equal(4, melee.AttackBonus.TotalValue); }