def test_get_full_attack_adds_requested_attributes(self): fighter = Fighter(5) rogue = Rogue(16) strength = Attribute(Attribute.STRENGTH, 16) dexterity = Attribute(Attribute.DEXTERITY, 14) actor = Actor('Rogue Fighter', [strength, dexterity], [rogue, fighter]) full_attack = actor.get_full_attack() self.assertEqual(len(full_attack), 4) self.assertEqual(full_attack[0].value, 20) self.assertEqual( '+12 from level 16 Rogue. +5 from level 5 Fighter. +3, Strength ability score of 16. ', full_attack[0].audit_explanation ) self.assertEqual(full_attack[1].value, 15) self.assertEqual( 'Additional attack split from base BAB at a +5 breakpoint. See first attack for full audit trail.', full_attack[1].audit_explanation ) self.assertEqual(full_attack[2].value, 10) self.assertEqual( 'Additional attack split from base BAB at a +5 breakpoint. See first attack for full audit trail.', full_attack[2].audit_explanation ) self.assertEqual(full_attack[3].value, 5) self.assertEqual( 'Additional attack split from base BAB at a +5 breakpoint. See first attack for full audit trail.', full_attack[3].audit_explanation )
def test_get_full_attack_returns_list_of_modifiers(self): fighter = Fighter(2) rogue = Rogue(19) actor = Actor('Rogue Fighter', [], [rogue, fighter]) full_attack = actor.get_full_attack() self.assertEqual(4, len(full_attack)) self.assertEqual(16, full_attack[0].value) self.assertEqual( '+14 from level 19 Rogue. +2 from level 2 Fighter. +0, Strength ability score of 10. ', full_attack[0].audit_explanation ) self.assertEqual(full_attack[1].value, 11) self.assertEqual( 'Additional attack split from base BAB at a +5 breakpoint. See first attack for full audit trail.', full_attack[1].audit_explanation ) self.assertEqual(full_attack[2].value, 6) self.assertEqual( 'Additional attack split from base BAB at a +5 breakpoint. See first attack for full audit trail.', full_attack[2].audit_explanation ) self.assertEqual(full_attack[3].value, 1) self.assertEqual( 'Additional attack split from base BAB at a +5 breakpoint. See first attack for full audit trail.', full_attack[3].audit_explanation )