How to use the dungeonsheets.features.features.Feature 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 / features / paladin.py View on Github external
"""
    name = "Aura of Devotion"
    source = "Paladin (Oath of Devotion)"


class PurityOfSpirit(Feature):
    """Beginning at 15th level, you are always under the effects of a protection
    from evil and good spell.

    """
    name = "Purity of Spirit"
    source = "Paladin (Oath of Devotion)"


class HolyNimbus(Feature):
    """At 20th level, as an action, you can emanate an aura of sunlight. For 1
    minute, bright light shines from you in a 30-foot radius, and dim light
    shines 30 feet beyond that.

    Whenever an enemy creature starts its turn in the bright light, the
    creature takes 10 radiant damage.

    In addition, for the duration, you have advantage on saving throws against
    spells cast by fiends or undead. Once you use this feature, you can't use
    it again until you finish a long rest.

    """
    name = "Holy Nimbus"
    source = "Paladin (Oath of Devotion)"
github canismarko / dungeon-sheets / dungeonsheets / features / artificer.py View on Github external
If the *mending* spell is cast on it, it regains 2d6 hit points. If it has
    died within the last hour, you can use your smith's tools as an action to
    revive it, provided you are within 5 feet of it and you expend a spell slot
    of 1st level or higher. The steel defender returns to life after 1 minute
    with all its hit points restored.

    At the end of a long rest, you can create a new steel defender if you have
    your smith's tools with you. If you already have a steel defender from this
    feature, the first one immediately perishes.
    """

    name = "Steel Defender"
    source = "Artificer (Battle Smith)"


class ExtraAttackBattleSmith(Feature):
    """Starting at 5th level, you can attack twice, rather than once, whenever
    you take the Attack action on your turn.
    """

    name = "Extra Attack"
    source = "Artificer (Battle Smith)"


class ArcaneJolt(Feature):
    """At 9th level, you learn new ways to channel arcane energy to harm or
    heal. When either you hit a target with a magic weapon attack or your steel
    defender hits a target, you can channel magical energy through the strike
    to create one of the following effects:

    - The target takes an extra 2d6 force damage.
github canismarko / dungeon-sheets / dungeonsheets / features / barbarian.py View on Github external
elk aspect

    tiger aspect

    """
    options = {'bear aspect': BearAspect,
               'eagle aspect': EagleAspect,
               'wolf aspect': WolfAspect,
               'elk aspect': ElkAspect,
               'tiger aspect': TigerAspect}
    name = "Aspect of the Beast (Select One)"
    source = "Barbarian (Totem Warrior)"


class SpiritWalker(Feature):
    """At 10th level, you can cast the commune with nature spell, but only as a
    ritual. When you do so, a spiritual version of one of the animals you chose
    for Totem Spirit or Aspect of the Beast appears to you to convey the
    information you seek.

    """
    name = "Spirit Walker"
    source = "Barbarian (Totem Warrior)"


class BearAttunement(Feature):
    """While you're raging, any creature within 5 feet o f you that's hostile to
    you has disadvantage on attack rolls against targets other than you or
    another character with this feature. An enemy is immune to this effect if
    it can't see or hear you or if it can't be frightened.
github canismarko / dungeon-sheets / dungeonsheets / features / fighter.py View on Github external
class ShadowArrow(Feature):
    """You weave illusion magic into your arrow, causing it to occlude your fees
    vision with shadows. The creature hit by the arrow takes an extra 2d6
    psychic damage, and it must succeed on a Wisdom saving throw or be unable
    to see anything farther than 5 feet away until the start ofyour next
    turn. The psychic damage increases to 4d6 when you reach 18th level in this
    class

    """
    name = "Shadow Arrow"
    source = "Fighter (Arcane Archer)"


# Cavalier
class BonusProficiencyCavalier(Feature):
    """When you choose this archetype at 3rd level, you gain proficiency in one of
    the following skills of your choice: Animal Handling, History, Insight,
    Performance, or Persuasion. Alternatively, you learn one language of your
    choice.

    """
    name = "Bonus Proficiency"
    source = "Fighter (Cavalier)"


class BornToTheSaddle(Feature):
    """Starting at 3rd level, your mastery as a rider becomes apparent. You have
    advantage on saving throws made to avoid falling off your mount. Ifyou fall
    off your mount and descend no more than 10 feet, you can land on your feet
    if you're not incapacitated. Finally, mounting or dismounting a creature
    costs you only 5 feet of movement, rather than half your speed.
github canismarko / dungeon-sheets / dungeonsheets / features / barbarian.py View on Github external
"""
    name = "Totemic Attunement (Bear)"
    source = "Barbarian (Totem Warrior)"


class EagleAttunement(Feature):
    """While raging, you have a flying speed equal to your current walking
    speed. This benefit works only in short bursts; you fall if you end your
    turn in the air and nothing else is holding you aloft.

    """
    name = "Totemic Attunement (Eagle)"
    source = "Barbarian (Totem Warrior)"


class WolfAttunement(Feature):
    """Wolf. While you're raging, you can use a bonus action on your turn to knock
    a Large or smaller creature prone when you hit it with melee weapon attack.

    """
    name = "Totemic Attunement (Wolf)"
    source = "Barbarian (Totem Warrior)"


class ElkAttunement(Feature):
    """While raging, you can use a bonus action during your move to pass through
    the space of a Large or smaller creature. That creature must succeed on a
    Strength saving throw (DC 8 + your Strength bonus + your proficiency
    bonus) or be knocked prone and take bludgeoning damage equal to 1d12 + your
    Strength modifier

    """
github canismarko / dungeon-sheets / dungeonsheets / features / ranger.py View on Github external
gain a +2 bonus to damage rolls with that weapon.

    """
    name = "Fighting Style (Dueling)"
    source = "Ranger"

    def weapon_func(self, weapon: weapons.Weapon, **kwargs):
        """
        +2 attack roll bonus if melee weapon is not two handed
        """
        if (isinstance(weapon, weapons.MeleeWeapon)
                and "two-handed" not in weapon.properties.lower()):
            weapon.damage_bonus += 2


class TwoWeaponFighting(Feature):
    """When you engage in two-weapon fighting, you can add your ability modifier
    to the damage of the second attack.

    """
    name = "Fighting Style (Two-Weapon Fighting)"
    source = "Ranger"


class RangerFightingStyle(FeatureSelector):
    """
    Select a Fighting Style by choosing in feature_choices:

    archery

    defense
github canismarko / dungeon-sheets / dungeonsheets / features / druid.py View on Github external
time it collapses and dies.

    In combat, the zombie's turn comes immediately after yours. It obeys your
    mental commands, and the only action it can take is the Attack action,
    making one melee attack.

    You can use this feature a number of times equal to your Wisdom modifier
    (minimum of once), and you regain all expended uses of it when you finish a
    long rest.

    """
    name = "Fungal Infestation"
    source = "Druid (Circle of Spores)"


class SpreadingSpores(Feature):
    """At 10th level, you gain the ability to seed an area with deadly spores.
    As a bonus action while your Symbiotic Entity feature is active, you can
    hurl spores up to 30 feet away, where they swirl in a 10-foot cube for 1
    minute. The spores disappear early if you use this feature again, if you
    dismiss them as a bonus action, or if your Symbiotic Entity feature is no
    longer active.

    Whenever a creature moves into the cube or starts its turn there, that
    creature takes your Halo of Spores damage, unless the creature succeeds on
    a Constitution saving throw against your spell save DC. A creature can take
    this damage nbo mre than once per turn.

    While the cube of spores persists, you can't use your Halo of Spores
    reaction.

    """
github canismarko / dungeon-sheets / dungeonsheets / features / bard.py View on Github external
"""
    name = "Blade Flourish"
    source = "Bard (College of Swords)"


class MastersFlourish(Feature):
    """Starting at 14th level, whenever you use a Blade Flourish option, you can
    roll a d6 and use it instead of expend- ing a Bardic Inspiration die.
    """
    name = "Master's Flourish"
    source = "Bard (College of Swords)"


# College of Whispers
class PsychicBlades(Feature):
    """When you join the College of Whispers at 3rd level, you gain the ability to
    make your weapon attacks magically toxic to a creature's mind. When you hit
    a creature with a weapon attack, you can expend one use ofyour Bardic
    Inspiration to deal an extra 2d6 psychic damage to that target. You can do
    so only once per round on your turn. The psychic damage increases when you
    reach certain levels in this class, increasing to 3d6 at 5th level, 5d6
    at 10th level, and 8d6 at 15th level.

    """
    _name = "Psychic Blades"
    source = "Bard (College of Whispers)"

    @property
    def name(self):
        level = self.owner.Bard.level
        dice = ' (2d6)'
github canismarko / dungeon-sheets / dungeonsheets / features / cleric.py View on Github external
source = "Cleric (Arcana Domain)"


class ArcaneMastery(Feature):
    """At 17th level, you choose four spells from the wizard spell list, one from
    each of the following levels: 6th, 7th, 8th, and 9th. You add them to your
    list of domain spells. Like your other domain spells, they are always
    prepared and count as cleric spells for you.

    """
    name = "Arcane Mastery"
    source = "Cleric (Arcana Domain)"


# Forge Domain
class BlessingOfTheForge(Feature):
    """At 1st level, you gain the ability to imbue magic into a weapon or
    armor. At the end of a long rest, you can touch one nonmagical object that
    is a suit of armor or a simple or martial weapon. Until the end of your
    next long rest or until you die, the object becomes a magic item, granting
    a +1 bonus to AC if it's armor or a +1 bo- nus to attack and damage rolls
    if it's a weapon. Once you use this feature, you can't use it again until
    you finish a long rest

    """
    name = "Blessing of the Forge"
    source = "Cleric (Forge Domain)"


class ArtisansBlessing(Feature):
    """Starting at 2nd level, you can use your Channel Divinity to create simple
    items. You conduct an hour-long ritual that crafts a nonmagi- cal item that
github canismarko / dungeon-sheets / dungeonsheets / features / cleric.py View on Github external
"""
    _name = "Channel Divinity"
    source = "Cleric"

    @property
    def name(self):
        level = self.owner.Cleric.level
        if level < 6:
            return "Channel Divinity (1x/SR)"
        elif level < 18:
            return "Channel Divinity (2x/SR)"
        else:
            return "Channel Divinity (3x/SR)"


class TurnUndead(Feature):
    """As an action, you present your holy symbol and speak a prayer censuring the
    undead. Each undead that can see or hear you within 30 feet of you must
    make a Wisdom saving throw. If the creature fails its saving throw, it is
    turned for 1 minute or until it takes any damage.

    A turned creature must spend its turns trying to move as far away from you
    as it can, and it can't willingly move to a space within 30 feet of you. It
    also can't take reactions. For its action, it can use only the Dash action
    or try to escape from an effect that prevents it from moving. If there's
    nowhere to move, the creature can use the Dodge action.

    """
    name = "Channel Divinity: Turn Undead"
    source = "Cleric"