def test_psychic_blades(self):
     for lvl in range(1, 5):
         char = character.Character(classes=["bard"], levels=[lvl])
         pb = bard.PsychicBlades(owner=char)
         self.assertEqual(pb.name, "Psychic Blades (2d6)")
     for lvl in range(5, 10):
         char = character.Character(classes=["bard"], levels=[lvl])
         pb = bard.PsychicBlades(owner=char)
         self.assertEqual(pb.name, "Psychic Blades (3d6)")
     for lvl in range(10, 15):
         char = character.Character(classes=["bard"], levels=[lvl])
         pb = bard.PsychicBlades(owner=char)
         self.assertEqual(pb.name, "Psychic Blades (5d6)")
     for lvl in range(15, 20):
         char = character.Character(classes=["bard"], levels=[lvl])
         pb = bard.PsychicBlades(owner=char)
         self.assertEqual(pb.name, "Psychic Blades (8d6)")
Beispiel #2
0
 def test_file_created(self):
     # Check that a file is created once the function is run
     pdf_name = f'{self.basename}.pdf'
     # self.assertFalse(os.path.exists(pdf_name), f'{pdf_name} already exists.')
     char = character.Character(name='Clara')
     char.saving_throw_proficiencies = ['strength']
     make_sheets.create_character_pdf(character=char, basename=self.basename)
     self.assertTrue(os.path.exists(pdf_name), f'{pdf_name} not created.')
 def test_mantle_of_inspiration(self):
     for lvl in range(1, 5):
         char = character.Character(classes=["bard"], levels=[lvl])
         moi = bard.MantleOfInspiration(owner=char)
         self.assertEqual(moi.name, "Mantle of Inspiration (5HP)")
     for lvl in range(5, 10):
         char = character.Character(classes=["bard"], levels=[lvl])
         moi = bard.MantleOfInspiration(owner=char)
         self.assertEqual(moi.name, "Mantle of Inspiration (8HP)")
     for lvl in range(10, 15):
         char = character.Character(classes=["bard"], levels=[lvl])
         moi = bard.MantleOfInspiration(owner=char)
         self.assertEqual(moi.name, "Mantle of Inspiration (11HP)")
     for lvl in range(15, 20):
         char = character.Character(classes=["bard"], levels=[lvl])
         moi = bard.MantleOfInspiration(owner=char)
         self.assertEqual(moi.name, "Mantle of Inspiration (14HP)")
 def test_song_of_rest(self):
     # Level 1-8 Bard
     char = character.Character(classes=["bard"], levels=[2])
     sor = bard.SongOfRest(owner=char)
     self.assertEqual(sor.name, "Song of Rest (1d6)")
     # Level 9-12 Bard
     char = character.Character(classes=["bard"], levels=[9])
     sor = bard.SongOfRest(owner=char)
     self.assertEqual(sor.name, "Song of Rest (1d8)")
     # Level 13-16 Bard
     char = character.Character(classes=["bard"], levels=[13])
     sor = bard.SongOfRest(owner=char)
     self.assertEqual(sor.name, "Song of Rest (1d10)")
     # Level 17+ Bard
     char = character.Character(classes=["bard"], levels=[17])
     sor = bard.SongOfRest(owner=char)
     self.assertEqual(sor.name, "Song of Rest (1d12)")
 def test_bardic_inspiration(self):
     # Level 1-4 Bard
     char = character.Character(classes=["bard"], levels=[2])
     bi = bard.BardicInspiration(owner=char)
     self.assertEqual(bi.name, "Bardic Inspiration (1d6/LR)")
     # Level 5-9 Bard
     char = character.Character(classes=["bard"], levels=[5])
     bi = bard.BardicInspiration(owner=char)
     self.assertEqual(bi.name, "Bardic Inspiration (1d8/SR)")
     # Level 10-14 Bard
     char = character.Character(classes=["bard"], levels=[10])
     bi = bard.BardicInspiration(owner=char)
     self.assertEqual(bi.name, "Bardic Inspiration (1d10/SR)")
     # Level 15+ Bard
     char = character.Character(classes=["bard"], levels=[15])
     bi = bard.BardicInspiration(owner=char)
     self.assertEqual(bi.name, "Bardic Inspiration (1d12/SR)")
Beispiel #6
0
 def onStart(self):
     self.character = character.Character()
     self.addForm("MAIN", BasicInfoForm, name="Basic Info:")
     self.addForm("CLASS", CharacterClassForm, name="Select your character's class:")
     self.addForm("RACE", RaceForm, name="Select your character's race:")
     self.addForm("ALIGNMENT", AlignmentForm, name="Select your character's alignment:")
     self.addForm("ABILITIES", AbilityScoreForm, name="Choose ability scores:")
     self.addForm("BACKGROUND", BackgroundForm, name="Choose background:")
     self.addForm("SKILLS", SkillForm, name="Choose skill proficiencies")
     self.addForm("SAVE", SaveForm, name="Save character:")
Beispiel #7
0
 def new_character(self):
     char = character.Character(
         classes=["Monk", "Druid", "Artificer"],
         levels=[1, 1, 1],
         subclasses=["way of the open hand", None, None],
         magic_items=["cloak of protection"],
         spells=["invisibility"],
         wild_shapes=["crocodile"],
         infusions=["boots of the winding path"])
     return char
Beispiel #8
0
 def test_str_to_list(self):
     char = character.Character(equipment="a, b, c")
     # Regular string
     self.assertEqual(stats.str_to_list(char, "equipment"), ["a", "b", "c"])
     # Alternate separator
     char.equipment = "a; b; c"
     self.assertEqual(stats.str_to_list(char, "equipment", sep=";"), ["a", "b", "c"])
     # No attribute
     self.assertEqual(stats.str_to_list(char, "inventory"), [])
     # Not a string
     self.assertEqual(stats.str_to_list(char, "hp_max"), char.hp_max)
    def onStart(self):
        self.character = character.Character()
        self.character.class_list = []
        self.addForm("MAIN", BasicInfoForm, name="Basic Info:", formid='MAIN')
        self.addForm("RACE",
                     RaceForm,
                     name="Select your character's race:",
                     formid='RACE')
        self.addForm("CLASS1",
                     CharacterClassForm,
                     name="Select your character's primary class:",
                     formid='CLASS1')
        self.addForm("BACKGROUND",
                     BackgroundForm,
                     name="Choose background:",
                     formid='BACKGROUND')
        self.addForm("ALIGNMENT",
                     AlignmentForm,
                     name="Select your character's alignment:",
                     formid='ALIGNMENT')
        self.addForm("ABILITIES",
                     AbilityScoreForm,
                     name="Choose ability scores:",
                     formid='ABILITIES')
        self.addForm("SKILLS",
                     SkillForm,
                     name="Choose skill proficiencies",
                     formid='SKILLS')
        self.addForm("WEAPONS",
                     WeaponForm,
                     name="Choose weapons",
                     formid='WEAPONS')
        self.addForm("ARMOR", ArmorForm, name="Choose armor", formid='ARMOR')
        self.addForm("PERSONALITY",
                     PersonalityForm,
                     name="Describe your character",
                     formid='PERSONALITY')
        self.addForm("SAVE", SaveForm, name="Save character:", formid='SAVE')

        # Initialized the DoublyLinkedList
        forms = [
            'MAIN', 'RACE', 'CLASS1', 'BACKGROUND', 'ALIGNMENT', 'ABILITIES',
            'SKILLS', 'WEAPONS', 'ARMOR', 'PERSONALITY', 'SAVE'
        ]
        for i in range(len(forms) - 1):
            form = self.getForm(forms[i])
            form.add_next(forms[i + 1])
 def new_character(self, level=1):
     return character.Character(classes=['cleric'], levels=[level])