How to use the dungeonsheets.classes.classes.SubClass 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 / classes / bard.py View on Github external
complacency. The same magic that allows them to quell beasts can also bend
    minds. Villainous bards Of this college can leech Off a community for
    weeks, misusing their magic to turn their hosts into thralls. Heroic bards
    of this college instead use this power to gladden the downtrodden and
    undermine oppressors.

    """
    name = "College of Glamour"
    features_by_level = defaultdict(list)
    features_by_level[3] = [features.MantleOfInspiration,
                            features.EnthrallingPerformance]
    features_by_level[6] = [features.MantleOfMajesty]
    features_by_level[14] = [features.UnbreakableMajesty]


class CollegeOfSwords(SubClass):
    """Bards of the College of Swords are called blades, and they entertain
    through daring feats of weapon prowess. Blades perform stunts such as sword
    swallowing, knife throwing and juggling, and mock combats. Though they use
    their weapons to entertain, they are also highly trained and skilled
    warriors in their own right.

    Their talent with weapons inspires many blades to lead double lives. One
    blade might use a circus troupe as cover for nefarious deeds such as
    assassination, robbery, and blackmail. Other blades strike at the wicked,
    bringingjustice to bear against the cruel and powerful. Most troupes are
    happy to accept a blade's talent for the excitement it adds to a
    performance, but few entertainers fully trust a blade in their ranks.

    Blades who abandon their lives as entertainers have often run into trouble
    that makes maintaining their secret activities impossible. A blade caught
    stealing or engaging in vigilante justice is too great a liability for most
github canismarko / dungeon-sheets / dungeonsheets / classes / fighter.py View on Github external
from collections import defaultdict

from dungeonsheets import features, weapons
from dungeonsheets.classes.classes import CharClass, SubClass


# PHB
class Champion(SubClass):
    """The archetypal Champion focuses on the development of raw physical power
    honed to deadly perfection. Those who model themselves on this archetype
    combine rigorous training with physical excellence to deal devastating
    blows.

    """
    name = "Champion"
    features_by_level = defaultdict(list)
    features_by_level[3] = [features.ImprovedCritical]
    features_by_level[7] = [features.RemarkableAthelete]
    features_by_level[10] = [features.AdditionalFightingStyle]
    features_by_level[15] = [features.SuperiorCritical]
    features_by_level[18] = [features.Survivor]


class BattleMaster(SubClass):
github canismarko / dungeon-sheets / dungeonsheets / classes / rogue.py View on Github external
and other criminals typically follow this archetype, but so do rogues who
    prefer to think of themselves as professional treasure seekers, explorers,
    delvers, and investigators. In addition to improving your agility and
    stealth, you learn skills useful for delving into ancient ruins, reading
    unfamiliar languages, and using magic items you normally couldn't employ

    """
    name = "Thief"
    features_by_level = defaultdict(list)
    features_by_level[3] = [features.FastHands, features.SecondStoryWork]
    features_by_level[9] = [features.SupremeSneak]
    features_by_level[13] = [features.UseMagicDevice]
    features_by_level[17] = [features.ThiefsReflexes]


class Assassin(SubClass):
    """You focus your training on the grim art of death. Those who adhere to this
    archetype are diverse: hired killers, spies, bounty hunters, and even
    specially anointed priests trained to exterminate the enemies of their
    deity. Stealth, poison, and disguise help you eliminate your foes with
    deadly efficiency

    """
    name = "Assassin"
    _proficiencies_text = ('disguise kit', "poisoner's kit")
    features_by_level = defaultdict(list)
    features_by_level[3] = [features.Assassinate]
    features_by_level[9] = [features.InfiltrationExpertise]
    features_by_level[13] = [features.Imposter]
    features_by_level[17] = [features.DeathStrike]
github canismarko / dungeon-sheets / dungeonsheets / classes / fighter.py View on Github external
A knight prefers to lead through deeds, not words. As a knight spearheads
    an attack, the knight's actions can awaken reserves of courage and
    conviction in allies that they never suspected they had.

    """
    name = "Purple Dragon Knight"
    features_by_level = defaultdict(list)
    features_by_level[3] = [features.RallyingCry]
    features_by_level[7] = [features.RoyalEnvoy]
    features_by_level[10] = [features.InspiringSurge]
    features_by_level[15] = [features.Bulwark]


# XGTE
class ArcaneArcher(SubClass):
    """An Arcane Archer studies a unique elven method of archery that weaves magic
    into attacks to produce supernatural effects. Arcane Archers are some of
    the most elite warriors among the elves. They stand watch over the fringes
    of elven domains, keeping a keen eye out for trespassers and using
    magic-infused arrows to defeat monsters and invaders before they can reach
    elven set- tlements. Over the centuries, the methods of these elf archers
    have been learned by members of other races who can also balance arcane
    aptitude with archery.

    """
    name = "Arcane Archer"
    features_by_level = defaultdict(list)
    features_by_level[3] = [features.ArcaneArcherLore, features.ArcaneShot]
    features_by_level[7] = [features.MagicArrow, features.CurvingShot]
    features_by_level[15] = [features.EverReadyShot]
github canismarko / dungeon-sheets / dungeonsheets / classes / wizard.py View on Github external
"""As a conjurer, you favor spells that produce objects and creatures out o f
    thin air. You can conjure billowing clouds of killing fog or summon
    creatures from elsewhere to fight on your behalf. As your mastery grows,
    you learn spells of transportation and can teleport yourself across vast
    distances, even to other planes of existence, in an instant

    """
    name = "School of Conjuration"
    features_by_level = defaultdict(list)
    features_by_level[2] = [features.ConjurationSavant, features.MinorIllusion]
    features_by_level[6] = [features.BenignTransposition]
    features_by_level[10] = [features.FocusedConjuration]
    features_by_level[14] = [features.DurableSummons]


class Divination(SubClass):
    """The counsel of a diviner is sought by royalty and commoners alike, for all
    seek a clearer understanding of the past, present, and future. As a
    diviner, you strive to part the veils of space, time, and consciousness so
    that you can see clearly. You work to master spells of discernment, remote
    viewing, supernatural knowledge, and foresight.

    """
    name = "School of Divination"
    features_by_level = defaultdict(list)
    features_by_level[2] = [features.DivinationSavant, features.Portent]
    features_by_level[6] = [features.ExpertDivination]
    features_by_level[10] = [features.TheThirdEye]
    features_by_level[14] = [features.GreaterPortent]


class Enchantment(SubClass):
github canismarko / dungeon-sheets / dungeonsheets / classes / ranger.py View on Github external
"""Many rangers are more at home in the wilds than in civilization, to the
    point where animals consider them kin. Rangers of the Beast Conclave
    develop a close bond with a beast, then further strengthen that bond
    through the use of magic.

    """
    name = "Beast Conclave"
    features_by_level = defaultdict(list)
    features_by_level[3] = [features.AnimalCompanion, features.CompanionsBond]
    features_by_level[5] = [features.CoordinatedAttack]
    features_by_level[7] = [features.BeastsDefense]
    features_by_level[11] = [features.StormOfClawsAndFangs]
    features_by_level[15] = [features.SuperiorBeastsDefense]


class HunterConclave(SubClass):
    """Some rangers seek to master weapons to better protect civilization from the
    terrors of the wilderness. Members of the Hunter Conclave learn specialized
    fighting techniques for use against the most dire threats, from rampaging
    ogres and hordes of orcs to towering giants and terrifying dragons

    """
    name = "Hunter Conclave"
    features_by_level = defaultdict(list)
    features_by_level = defaultdict(list)
    features_by_level[3] = [features.HuntersPrey]
    features_by_level[5] = [features.ExtraAttackRanger]
    features_by_level[7] = [features.DefensiveTactics]
    features_by_level[11] = [features.MultiattackRanger]
    features_by_level[15] = [features.SuperiorHuntersDefense]
github canismarko / dungeon-sheets / dungeonsheets / classes / monk.py View on Github external
__all__ = ('Monk')

from collections import defaultdict

from dungeonsheets import features, weapons
from dungeonsheets.classes.classes import CharClass, SubClass


# PHB
class OpenHandWay(SubClass):
    """Monks of the Way of the Open Hand are the ultimate masters of martial arts
    combat, whether armed or unarmed. They learn techniques to push and trip
    their opponents, manipulate ki to heal damage to their bodies, and practice
    advanced meditation that can protect them from harm.

    """
    name = "Way of the Open Hand"
    features_by_level = defaultdict(list)
    features_by_level[3] = [features.OpenHandTechnique]
    features_by_level[6] = [features.WholenessOfBody]
    features_by_level[11] = [features.Tranquility]
    features_by_level[17] = [features.QuiveringPalm]


class ShadowWay(SubClass):
    """Monks of the Way of Shadow follow a tradition that values stealth and
github canismarko / dungeon-sheets / dungeonsheets / classes / sorceror.py View on Github external
struggles to remain viable against the dark energy that imbues your
    soul. At your option, you can pick from or roll on the Shadow Sorcerer
    Quirks table to create a quirk for your character

    """
    name = "Shadow Magic"
    features_by_level = defaultdict(list)
    features_by_level[1] = [features.EyesOfTheDark,
                            features.SuperiorDarkvision,
                            features.StrengthOfTheGrave]
    features_by_level[6] = [features.HoundOfIllOmen]
    features_by_level[14] = [features.ShadowWalk]
    features_by_level[18] = [features.UmbralForm]


class StormSorcery(SubClass):
    """Your innate magic comes from the power of elemental air. Many with this
    power can trace their magic back to a near-death experience caused by the
    Great Rain, but perhaps you were born during a howling gale so powerful
    that folk still tell stories of it, or your lineage might include the
    influence of potent air creatures such as djinn. Whatever the case, the
    magic of the storm permeates your being.

    Storm sorcerers are invaluable members of a ship's crew. Their magic allows
    them to exert control over wind and weather in their immediate area. Their
    abilities also prove useful in repelling attacks by sahuagin, pirates,
    and other waterborne threats.

    """
    name = "Storm Sorcery"
    languages = ("primordial",)
    features_by_level = defaultdict(list)
github canismarko / dungeon-sheets / dungeonsheets / classes / artificer.py View on Github external
from collections import defaultdict

from dungeonsheets import features, weapons
from dungeonsheets.classes.classes import CharClass, SubClass


# Eberron Rising from the Last War
class Alchemist(SubClass):
    """An Alchemist is an expert at combining reagents to produce mystical
    effects. Alchemists use their creations to give life and to leech it away.
    Alchemy is the oldest of artificer traditions, and its versatility has
    long been valued during times of war and peace.
    """

    name = "Alchemist"
    features_by_level = defaultdict(list)
    features_by_level[3] = [features.AlchemistToolProficiency,
                            features.AlchemistSpells,
                            features.ExperimentalElixir]
    features_by_level[5] = [features.AlchemicalSavant]
    features_by_level[9] = [features.RestorativeReagents]
    features_by_level[15] = [features.ChemicalMastery]
github canismarko / dungeon-sheets / dungeonsheets / classes / fighter.py View on Github external
the most elite warriors among the elves. They stand watch over the fringes
    of elven domains, keeping a keen eye out for trespassers and using
    magic-infused arrows to defeat monsters and invaders before they can reach
    elven set- tlements. Over the centuries, the methods of these elf archers
    have been learned by members of other races who can also balance arcane
    aptitude with archery.

    """
    name = "Arcane Archer"
    features_by_level = defaultdict(list)
    features_by_level[3] = [features.ArcaneArcherLore, features.ArcaneShot]
    features_by_level[7] = [features.MagicArrow, features.CurvingShot]
    features_by_level[15] = [features.EverReadyShot]


class Cavalier(SubClass):
    """The archetypal Cavalier excels at mounted combat. Usually born among the
    nobility and raised at court, a Cavalier is equally at home leading a
    cavalry charge or exchanging repartee at a state dinner. Cavaliers also
    learn how to guard those in their charge from harm, often serving as the
    protectors of their superiors and of the weak. Compelled to right wrongs or
    earn prestige, many of these fighters leave their lives of comfort to
    embark on glorious adventure

    """
    name = "Cavalier"
    features_by_level = defaultdict(list)
    features_by_level[3] = [features.BonusProficiencyCavalier,
                            features.BornToTheSaddle, features.UnwaveringMark]
    features_by_level[7] = [features.WardingManeuver]
    features_by_level[10] = [features.HoldTheLine]
    features_by_level[15] = [features.FerociousCharger]