Exemple #1
0
 def setUp(self):
     tool_prof = [
         feature.ToolProficiency(name='Tool Proficiency',
                                 proficiencies=['brewers_kit'])
     ]
     self.dwarf = race.Dwarf(asi={},
                             traits=tool_prof)
Exemple #2
0
 def __init__(self, skill_proficiencies, expertise):
     super(Rogue, self).__init__(
         name='Rogue',
         level=1,
         hit_die=8,
         proficiencies={
             base.ARMOR_PROFICIENCY:
             feature.ArmorProficiency(name='Armor Proficiency',
                                      proficiencies=['light']),
             base.WEAPON_PROFICIENCY:
             feature.WeaponProficiency(name='Weapon Proficiency',
                                       proficiencies=[
                                           'simple', 'hand crossbow',
                                           'longsword', 'rapier',
                                           'shortsword'
                                       ]),
             base.TOOL_PROFICIENCY:
             feature.ToolProficiency(proficiencies=['thieves_tools'])
         },
         saving_throws=[AbilityScore.DEX, AbilityScore.INT],
         skill_proficiencies=skill_proficiencies,
         features=None,
         spellcasting=None,
         asi=None)
     self._add_level_1_features(expertise=expertise)
def create_fethri(level=1):
    """
    Creates Fethri, a tiefling rogue.
    The tiefling race is straightforward, providing a suite of features
    without user input.
    The rogue class, especially the mastermind, is perfect to test out
    aggregations of skills and attack features without needing to focus
    on spellcasting at all.
    :param level: the character level
    :return: Fethri the tiefling rogue
    """
    base_ = base.EntityBase("Fethri Winterwhisper", 10, 14, 12, 15, 11, 12, level=level)
    race_ = race.Tiefling()
    vocation = rogue.Rogue(skill_proficiencies=[Skills.INVESTIGATION,
                                                Skills.DECEPTION,
                                                Skills.STEALTH],
                           expertise=feature.Expertise(skills=[Skills.INVESTIGATION,
                                                               Skills.DECEPTION],
                                                       proficiencies=None)
                           )
    if level > 1:
        vocation.level_to(level=level,
                          roguish_archetype='mastermind',
                          gaming_set='bone_dice',
                          languages=feature.LanguagesKnown(languages=[base.Languages.UNDERCOMMON,
                                                                      base.Languages.ELVISH]),
                          ability_score_increase_4={
                              base.AbilityScore.DEX: base.AbilityScoreIncrease(base.AbilityScore.DEX, 2),
                          },
                          expertise_6=feature.Expertise(skills=[Skills.STEALTH],
                                                        proficiencies=['thieves_tools']),
                          ability_score_increase_8={
                              base.AbilityScore.DEX: base.AbilityScoreIncrease(base.AbilityScore.DEX, 2),
                          },
                          ability_score_increase_10={
                              base.AbilityScore.INT: base.AbilityScoreIncrease(base.AbilityScore.INT, 2),
                          },
                          ability_score_increase_12={
                              base.AbilityScore.DEX: base.AbilityScoreIncrease(base.AbilityScore.DEX, 2),
                          },
                          ability_score_increase_16={
                              base.AbilityScore.CHA: base.AbilityScoreIncrease(base.AbilityScore.CHA, 2),
                          },
                          ability_score_increase_19={
                              base.AbilityScore.INT: base.AbilityScoreIncrease(base.AbilityScore.INT, 2),
                          }
        )

    background_ = background.Noble(tool_proficiency=feature.ToolProficiency(proficiencies=['chess_set']),
                                   languages=feature.LanguagesKnown(languages=[base.Languages.DRACONIC]))

    worn_items = items.WornItems()
    worn_items.don_armor(armor.LEATHER_ARMOR)
    worn_items.equip_weapon(weapons.RAPIER)
    worn_items.equip_weapon(weapons.SHORTBOW)

    backpack = items.generate_burglars_pack()
    fethri = pc.PlayerCharacter(base_, race_, vocation, background_, worn_items, backpack)
    return fethri
Exemple #4
0
 def setUp(self):
     traits = [
         feature.Darkvision(range=60),
         feature.ToolProficiency(name='Tool Proficiency',
                                 proficiencies=['brewers_kit'])
     ]
     self.race = race.Race(name='race',
                           asi={},
                           size='medium',
                           speed=25,
                           languages=None,
                           traits=traits)
Exemple #5
0
 def __init__(self):
     f = feature.Feature(name='Criminal Contact',
                         description='You have a reliable and trustworthy contact who acts as \
                         your liaison to a network of other criminals. ...')
     proficiencies = {
         base.SKILLS: [Skills.DECEPTION, Skills.STEALTH],
         base.TOOL_PROFICIENCY: feature.ToolProficiency(name='Tool Proficiency',
                                                        proficiencies=['thieves_tools', 'bone_dice']),
     }
     super(Criminal, self).__init__(name='Criminal',
                                    feature=f,
                                    proficiencies=proficiencies,
                                    languages=None)
def create_dorian(level=5):
    """
    Creates Dorian, a dwarf ranger.
    The dwarf race provides a suite of features while also giving choices
    to proficiencies and stat-altering features.
    The ranger class provides a good mix of features that a PC can have,
    as a martial class with basic spellcasting abilities.
    :param level: the character level
    :return: Dorian the dwarf ranger
    """
    base_ = base.EntityBase("Dorian Sapbleden", 16, 10, 14, 12, 14, 8, level=level)
    tool_prof = [
        feature.ToolProficiency(name='Tool Proficiency',
                                proficiencies=['brewers_kit'])
    ]
    race_ = race.HillDwarf(traits=tool_prof)
    vocation = ranger.Ranger(skill_proficiencies=[Skills.ATHLETICS, Skills.ANIMAL_HANDLING, Skills.SURVIVAL],
                             favored_enemy='plants',
                             languages='elvish',
                             favored_terrain='forest')
    if level > 1:
        vocation.level_to(level=level,
                          fighting_style='two_weapon_fighting',
                          ranger_archetype='hunter',
                          ability_score_increase_4={
                              base.AbilityScore.STR: base.AbilityScoreIncrease(base.AbilityScore.STR, 2),
                          })
    bg = background.Criminal()

    worn_items = items.WornItems()
    worn_items.don_armor(armor.CHAIN_MAIL)
    worn_items.equip_weapon(weapons.HANDAXE)
    worn_items.equip_weapon(weapons.HANDAXE)
    worn_items.equip_weapon(weapons.LONGBOW)

    backpack = items.generate_burglars_pack()
    backpack.add_item(armor.CHAIN_SHIRT)
    backpack.add_item(armor.LEATHER_ARMOR)

    dorian = pc.PlayerCharacter(base_, race_, vocation, bg, worn_items, backpack)
    return dorian
Exemple #7
0
 def __init__(self):
     asi = {
         base.AbilityScore.CON:
         base.AbilityScoreIncrease(base.AbilityScore.CON, 1)
     }
     traits = [
         feature.Feature(
             name="Artificer's Lore",
             description=
             'Whenever you make an Intelligence (History) check related to Magic Items, \
                     alchemical Objects, or technological devices, you can add twice your Proficiency Bonus, \
                     instead of any Proficiency Bonus you normally apply.'),
         feature.ToolProficiency(
             name='Tinker',
             description=
             'Using those tools, you can spend 1 hour and 10 gp worth of materials \
                               to construct a Tiny clockwork device (AC 5, 1 hp).',
             proficiencies=['tinkers_tools']),
     ]
     super(RockGnome, self).__init__(asi=asi, traits=traits)
     self.name = 'Rock Gnome'
Exemple #8
0
 def setUp(self):
     tool_prof = [
         feature.ToolProficiency(name='Tool Proficiency',
                                 proficiencies=['brewers_kit'])
     ]
     self.hill_dwarf = race.HillDwarf(traits=tool_prof)