Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
"""
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)"
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.
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.
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.
"""
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
"""
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
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.
"""
"""
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)'
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
"""
_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"