How to use the dungeonsheets.race.Race function in dungeonsheets

To help you get started, we’ve selected a few dungeonsheets examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github canismarko / dungeon-sheets / dungeonsheets / race.py View on Github external
name = "Rock Gnome"
    constitution_bonus = 1
    features = _Gnome.features + (feats.ArtificersLore,
                                  feats.Tinker)


class DeepGnome(_Gnome):
    name = "Deep Gnome"
    dexterity_bonus = 1
    languages = ("Common", "Gnomish", "Undercommon")
    features = (feats.SuperiorDarkvision, feats.GnomeCunning,
                feats.StoneCamouflage)


# Half-elves
class HalfElf(Race):
    name = "Half-Elf"
    size = "medium"
    speed = 30
    charisma_bonus = 2
    skill_choices = ('acrobatics', 'animal handling', 'arcana',
                     'athletics', 'deception', 'history', 'insight',
                     'intimidation', 'investigation', 'medicine', 'nature',
                     'perception', 'performance', 'persuasion', 'religion',
                     'sleight of hand', 'stealth', 'survival')
    num_skill_choices = 2
    languages = ("Common", "Elvish", "[choose one]")
    features = (feats.Darkvision, feats.FeyAncestry)


# Half-Orcs
class HalfOrc(Race):
github canismarko / dungeon-sheets / dungeonsheets / race.py View on Github external
# Triton
class Triton(Race):
    name = "Triton"
    size = "medium"
    strength_bonus = 1
    constitution_bonus = 1
    charisma_bonus = 1
    speed = "30 (30 swim)"
    features = (feats.Amphibious, feats.ControlAirAndWater,
                feats.EmissaryOfTheSea, feats.GuardiansOfTheDepths)
    languages = ("Common", "Primordial")
    spells_known = (spells.FogCloud,)


# Aarakocra
class Aarakocra(Race):
    name = 'Aarakocra'
    size = 'medium'
    speed = "25 (50 fly)"
    dexterity_bonus = 2
    wisdom_bonus = 1
    languages = ('Common', 'Aarakocra', 'Auran')
    weapon_proficiencies = (weapons.Talons,)
    proficiences_text = ('Talons',)

    def __init__(self, owner=None):
        super().__init__(owner=owner)
        self.owner.wield_weapon("talons")


# Genasi
class _Genasi(Race):
github canismarko / dungeon-sheets / dungeonsheets / character.py View on Github external
def race(self, newrace):
        if isinstance(newrace, race.Race):
            self._race = newrace
            self._race.owner = self
        elif isinstance(newrace, type) and issubclass(newrace, race.Race):
            self._race = newrace(owner=self)
        elif isinstance(newrace, str):
            try:
                self._race = findattr(race, newrace)(owner=self)
            except AttributeError:
                msg = (f'Race "{newrace}" not defined. '
                       f'Please add it to ``race.py``')
                self._race = race.Race(owner=self)
                warnings.warn(msg)
        elif newrace is None:
            self._race = race.Race(owner=self)
github canismarko / dungeon-sheets / dungeonsheets / race.py View on Github external
# Kenku
class Kenku(Race):
    name = 'Kenku'
    size = 'medium'
    speed = 30
    dexterity_bonus = 2
    wisdom_bonus = 1
    languages = ('Common', 'Auran')
    skill_choices = ('acrobatics', 'deception', 'stealth',
                     'sleight of hand')
    num_skill_choices = 2
    features = (feats.ExpertForgery, feats.Mimicry,)


# Tabaxi
class Tabaxi(Race):
    name = 'Tabaxi'
    size = 'medium'
    dexterity_bonus = 2
    charisma_bonus = 1
    speed = "30 (20 climb)"
    languages = ("Common", "[Choose One]")
    weapon_proficiencies = (weapons.Claws,)
    proficiences_text = ('Claws',)
    skill_proficiencies = ('perception', 'stealth')
    features = (feats.Darkvision, feats.FelineAgility,)

    def __init__(self, owner=None):
        super().__init__(owner=owner)
        self.owner.wield_weapon("claws")
github canismarko / dungeon-sheets / dungeonsheets / race.py View on Github external
class LightfootHalfling(_Halfling):
    name = "Lightfoot Halfling"
    charisma_bonus = 1
    features = _Halfling.features + (feats.NaturallyStealthy,)


class StoutHalfling(_Halfling):
    name = "Stout Halfling"
    constitution_bonus = 1
    features = _Halfling.features + (feats.StoutResilience,)


# Humans
class Human(Race):
    name = "Human"
    size = "medium"
    speed = 30
    strength_bonus = 1
    dexterity_bonus = 1
    constitution_bonus = 1
    intelligence_bonus = 1
    wisdom_bonus = 1
    charisma_bonus = 1
    languages = ("Common", '[choose one]')


class Rashemi(Human):
    name = 'Rashemi'
github canismarko / dungeon-sheets / dungeonsheets / race.py View on Github external
languages = ("Common", "Elvish", "Giant")


# Goliath
class Goliath(Race):
    name = "Goliath"
    size = "Medium"
    speed = 30
    skill_proficiencies = ("athletics",)
    languages = ("Common", "Giant")
    features = (feats.StonesEndurance, feats.PowerfulBuild,
                feats.MountainBorn)


# Lizardfolk
class Lizardfolk(Race):
    name = 'Lizardfolk'
    size = 'medium'
    speed = """30 (30 swim)"""
    constitution_bonus = 2
    wisdom_bonus = 1
    languages = ('Common', 'Draconic')
    weapon_proficiencies = (weapons.Bite,)
    proficiencies_text = ('bite',)
    features = (feats.CunningArtisan, feats.HoldBreath,
                feats.NaturalArmor, feats.HungryJaws)
    skill_choices = ('animal handling', 'nature', 'perception',
                     'stealth', 'survival')

    def __init__(self, owner=None):
        super().__init__(owner=owner)
        self.owner.wield_weapon("bite")
github canismarko / dungeon-sheets / dungeonsheets / character.py View on Github external
def race(self, newrace):
        if isinstance(newrace, race.Race):
            self._race = newrace
            self._race.owner = self
        elif isinstance(newrace, type) and issubclass(newrace, race.Race):
            self._race = newrace(owner=self)
        elif isinstance(newrace, str):
            try:
                self._race = findattr(race, newrace)(owner=self)
            except AttributeError:
                msg = (f'Race "{newrace}" not defined. '
                       f'Please add it to ``race.py``')
                self._race = race.Race(owner=self)
                warnings.warn(msg)
        elif newrace is None:
            self._race = race.Race(owner=self)
github canismarko / dungeon-sheets / dungeonsheets / race.py View on Github external
wisdom_bonus = 1
    languages = ('Common', 'Draconic')
    weapon_proficiencies = (weapons.Bite,)
    proficiencies_text = ('bite',)
    features = (feats.CunningArtisan, feats.HoldBreath,
                feats.NaturalArmor, feats.HungryJaws)
    skill_choices = ('animal handling', 'nature', 'perception',
                     'stealth', 'survival')

    def __init__(self, owner=None):
        super().__init__(owner=owner)
        self.owner.wield_weapon("bite")


# Kenku
class Kenku(Race):
    name = 'Kenku'
    size = 'medium'
    speed = 30
    dexterity_bonus = 2
    wisdom_bonus = 1
    languages = ('Common', 'Auran')
    skill_choices = ('acrobatics', 'deception', 'stealth',
                     'sleight of hand')
    num_skill_choices = 2
    features = (feats.ExpertForgery, feats.Mimicry,)


# Tabaxi
class Tabaxi(Race):
    name = 'Tabaxi'
    size = 'medium'
github canismarko / dungeon-sheets / dungeonsheets / race.py View on Github external
features = (feats.Darkvision, feats.LongLimbed,
                feats.PowerfulBuild, feats.SupriseAttack)
    skill_proficiencies = ("stealth", )
    languages = ("Common", "Goblin")

class Goblin(Race):
    name = "Goblin"
    dexterity_bonus = 2
    constitution_bonus = 1
    size = 'small'
    speed = 30
    features = (feats.Darkvision, feats.FuryOfTheSmall,
                feats.NimbleEscape)
    languages = ("Common", "Goblin")

class HobGoblin(Race):
    name = "HobGoblin"
    constitution_bonus = 2
    intelligence_bonus = 1
    size = 'medium'
    speed = 30
    features = (feats.Darkvision, feats.SavingFace)
    proficiencies_text = ('light armor', '[Chose two martial melee weapons]')
    languages = ("Common", "Goblin")

class Kobold(Race):
    name = "Kobold"
    dexterity_bonus = 2
    strength_bonus = -2
    size = 'small'
    speed = 30
    features = (feats.Darkvision, feats.PackTactics,
github canismarko / dungeon-sheets / dungeonsheets / race.py View on Github external
speed = 30
    features = (feats.Darkvision, feats.FuryOfTheSmall,
                feats.NimbleEscape)
    languages = ("Common", "Goblin")

class HobGoblin(Race):
    name = "HobGoblin"
    constitution_bonus = 2
    intelligence_bonus = 1
    size = 'medium'
    speed = 30
    features = (feats.Darkvision, feats.SavingFace)
    proficiencies_text = ('light armor', '[Chose two martial melee weapons]')
    languages = ("Common", "Goblin")

class Kobold(Race):
    name = "Kobold"
    dexterity_bonus = 2
    strength_bonus = -2
    size = 'small'
    speed = 30
    features = (feats.Darkvision, feats.PackTactics,
                feats.GrovelCowerAndBeg, feats.SunlightSensitivity)
    languages = ("Common", "Draconic")

class Orc(Race):
    name = "Orc"
    strength_bonus = 2
    constitution_bonus = 1
    intelligence_bonus = -2
    size = 'medium'
    speed = 30