示例#1
0
 def test_wield_weapon(self):
     char = Character()
     char.strength = 14
     char.weapon_proficiencies = [Shortsword]
     # Add a weapon
     char.wield_weapon('shortsword')
     self.assertEqual(len(char.weapons), 1)
     sword = char.weapons[0]
     self.assertTrue(isinstance(sword, Weapon))
     self.assertTrue(isinstance(sword, Shortsword))
     self.assertEqual(sword.attack_modifier, 4) # str + prof
     self.assertEqual(sword.damage, '1d6+2') # str
     # Check if dexterity is used if it's higher (Finesse weapon)
     char.weapons = []
     char.dexterity = 16
     char.wield_weapon('shortsword')
     sword = char.weapons[0]
     self.assertEqual(sword.attack_modifier, 5) # dex + prof
     # Check if race weapon proficiencies are considered
     char.weapons = []
     char.weapon_proficiencies = []
     char.race = race.HighElf()
     char.wield_weapon('shortsword')
     sword = char.weapons[0]
     self.assertEqual(sword.attack_modifier, 5)
示例#2
0
 def test_is_proficient(self):
     char = Character(classes=['Wizard'])
     char.weapon_proficiencies
     sword = Shortsword()
     # Check for not-proficient weapon
     self.assertFalse(char.is_proficient(sword))
     # Check if we're proficient in the weapon
     char.weapon_proficiencies = [Shortsword]
     self.assertTrue(char.is_proficient(sword))
     # Now try it with a racial proficiency
     char.weapon_proficiencies = tuple()
     char.race = race.HighElf()
     self.assertTrue(char.is_proficient(sword))