public void ShouldProperlyRecognizeProficiencyWithMasterworkWeapons() { var prof = new WeaponProficiency("Shortbow"); var wpn = new Weapon(); wpn.Name = "Shortbow"; var mwkWpn = new MasterworkWeapon(wpn); Assert.True(prof.IsProficient(mwkWpn)); }
public void MasterworkDoubleWeaponsCostSixHundredMore() { var doubleAxe = new Weapon("Double Axe", 10, "1d8", DamageTypes.Slashing, 20, 2, 0, WeaponType.TwoHanded, WeaponGroup.Double, WeaponTrainingLevel.Martial); var mwkDoubleAxe = new MasterworkWeapon(doubleAxe); Assert.Equal(mwkDoubleAxe.AttackModifier, 1); Assert.Equal(mwkDoubleAxe.Value, 60000); //Value is copper based }
public void MasterworkWeaponsProvideAnAttackBonusOfOne() { var longsword = new Weapon("Longsword", 10, "1d8", DamageTypes.Slashing, 20, 2, 0, WeaponType.OneHanded, WeaponGroup.HeavyBlades, WeaponTrainingLevel.Martial); var mwkLongsword = new MasterworkWeapon(longsword); Assert.Equal(mwkLongsword.Name, "Masterwork Longsword"); Assert.Equal(mwkLongsword.AttackModifier, 1); Assert.Equal(mwkLongsword.Value, 30000); // Value is copper Based }
public void MasterworkWeaponsProvideImprovedAttackBonus() { var mwkLongsword = new MasterworkWeapon(Longsword()); inventory.AddGear(mwkLongsword); smallStats.AddWeaponProficiency("martial"); var atk = smallStats.GetAttack(mwkLongsword); // Small Size (1) + Str16 (3) + Mwk (1) Assert.Equal(atk.AttackBonus.TotalValue, 5); }
public void WorksWithMasterworkVersionsOfWeapons() { var character = CharacterTestTemplates.AverageBob(); var offStats = character.Get <OffenseStats>(); var master = new WeaponMastery(); character.Add(master); var weapon = master.Weapon; var masterworkWeapon = new MasterworkWeapon(weapon); Assert.Contains(master.WeaponCriticalDamageBonus, offStats.WeaponModifiers); Assert.True(master.WeaponCriticalDamageBonus.WeaponQualifies(masterworkWeapon)); }