mirror of
https://github.com/Threnklyn/dungeon-sheets.git
synced 2026-05-28 00:28:27 +02:00
868 lines
29 KiB
Python
868 lines
29 KiB
Python
from .features import Feature, FeatureSelector
|
||
from .. import (weapons, armor)
|
||
|
||
|
||
# PHB
|
||
class Rage(Feature):
|
||
"""In battle, you fight with primal ferocity. On your turn, you can enter a
|
||
rage as a bonus action. While raging, you gain the following benefits if
|
||
you aren’t wearing heavy armor:
|
||
|
||
--You have advantage on Strength checks and
|
||
Strength saving throws.
|
||
|
||
--When you make a melee weapon attack using
|
||
Strength, you gain a bonus to the damage roll that increases as you gain
|
||
levels as a barbarian, as shown in the Rage Damage column of the Barbarian
|
||
table.
|
||
|
||
--You have resistance to bludgeoning, piercing, and slashing
|
||
damage.
|
||
|
||
If you are able to cast spells, you can’t cast them or concentrate on them
|
||
while raging. Your rage lasts for 1 minute. It ends early if you are
|
||
knocked unconscious or if your turn ends and you haven’t attacked a hostile
|
||
creature since your last turn or taken damage since then. You can also end
|
||
your rage on your turn as a bonus action. Once you have raged the number of
|
||
times shown for your barbarian level in the Rages column of the Barbarian
|
||
table, you must finish a long rest before you can rage again
|
||
|
||
"""
|
||
_name = "Rage"
|
||
source = "Barbarian"
|
||
|
||
@property
|
||
def name(self):
|
||
level = self.owner.Barbarian.level
|
||
num = 2
|
||
if level >= 3:
|
||
num = 3
|
||
if level >= 6:
|
||
num = 4
|
||
if level >= 12:
|
||
num = 5
|
||
if level >= 17:
|
||
num = 6
|
||
if level >= 20:
|
||
num = 100
|
||
damage = '+2'
|
||
if level >= 9:
|
||
damage = "+3"
|
||
if level >= 16:
|
||
damage = "+4"
|
||
return self._name + " ({:s}, {:d}x/LR)".format(damage, num)
|
||
|
||
|
||
class UnarmoredDefenseBarbarian(Feature):
|
||
"""While you are not wearing any armor, your Armor Class equals 10 + your
|
||
Dexterity modifier + your Constitution modifier. You can use a shield and
|
||
still gain this benefit.
|
||
|
||
This bonus is computed in the AC given on the Character Sheet above.
|
||
|
||
"""
|
||
name = "Unarmored Defense"
|
||
source = 'Barbarian'
|
||
|
||
|
||
class RecklessAttack(Feature):
|
||
"""Starting at 2nd level, you can throw aside all concern for defense to
|
||
attack with fierce desperation. When you make your first attack on your
|
||
turn, you can decide to attack recklessly. Doing so gives you advantage on
|
||
melee weapon attack rolls using Strength during this turn, but attack rolls
|
||
against you have advantage until your next turn
|
||
|
||
"""
|
||
name = "Reckless Attack"
|
||
source = "Barbarian"
|
||
|
||
|
||
class DangerSense(Feature):
|
||
"""At 2nd level, you gain an uncanny sense of when things nearby aren’t as
|
||
they should be, giving you an edge when you dodge away from danger. You
|
||
have advantage on Dexterity saving throws against effects that you can see,
|
||
such as traps and spells. To gain this benefit, you can’t be blinded,
|
||
deafened, or incapacitated.
|
||
|
||
"""
|
||
name = "Danger Sense"
|
||
source = "Barbarian"
|
||
|
||
|
||
class ExtraAttackBarbarian(Feature):
|
||
"""Beginning at 5th level, you can attack twice, instead of once, whenever you
|
||
take the Attack action on your turn.
|
||
|
||
"""
|
||
name = "Extra Attack (2x)"
|
||
source = "Barbarian"
|
||
|
||
|
||
class FastMovement(Feature):
|
||
"""Starting at 5th level, your speed increases by 10 feet while you aren’t
|
||
wearing heavy armor.
|
||
|
||
"""
|
||
name = "Fast Movement"
|
||
source = "Barbarian"
|
||
|
||
|
||
class FeralInstinct(Feature):
|
||
"""By 7th level, your instincts are so honed that you have advantage on
|
||
initiative rolls. Additionally, if you are surprised at the beginning of
|
||
combat and aren’t incapacitated, you can act normally on your first turn,
|
||
but only if you enter your rage before doing anything else on that turn.
|
||
|
||
"""
|
||
name = "Feral Instinct"
|
||
source = "Barbarian"
|
||
|
||
|
||
class BrutalCritical(Feature):
|
||
"""Beginning at 9th level, you can roll one additional weapon damage die when
|
||
determining the extra damage for a critical hit with a melee attack. This
|
||
increases to two additional dice at 13th level and three additional dice at
|
||
17th level.
|
||
|
||
"""
|
||
name = "Brutal Critical"
|
||
source = "Barbarian"
|
||
|
||
|
||
class RelentlessRage(Feature):
|
||
"""Starting at 11th level, your rage can keep you fighting despite grievous
|
||
wounds. If you drop to 0 hit points while you’re raging and don’t die
|
||
outright, you can make a DC 10 Constitution saving throw. If you succeed,
|
||
you drop to 1 hit point instead. Each time you use this feature after the
|
||
first, the DC increases by 5. When you finish a short or long rest, the DC
|
||
resets to 10.
|
||
|
||
"""
|
||
name = "Relentless Rage"
|
||
source = "Barbarian"
|
||
|
||
|
||
class PersistentRage(Feature):
|
||
"""Beginning at 15th level, your rage is so fierce that it ends early only if
|
||
you fall unconscious or if you choose to end it.
|
||
|
||
"""
|
||
name = "Persistent Rage"
|
||
source = "Barbarian"
|
||
|
||
|
||
class IndomitableMight(Feature):
|
||
"""Beginning at 18th level, if your total for a Strength check is less than
|
||
your Strength score, you can use that score in place of the total.
|
||
|
||
"""
|
||
name = "Indomitable Might"
|
||
source = "Barbarian"
|
||
|
||
|
||
class PrimalChampion(Feature):
|
||
"""At 20th level, you embody the power of the wilds. Your Strength and
|
||
Constitution scores increase by 4. Your maximum for those scores is now 24.
|
||
|
||
"""
|
||
name = "Primal Champion"
|
||
source = "Barbarian"
|
||
|
||
|
||
# Berserker
|
||
class Frenzy(Feature):
|
||
"""Starting when you choose this path at 3rd level, you can go into a frenzy
|
||
when you rage. If you do so, for the duration of your rage you can make a
|
||
single melee weapon attack as a bonus action on each of your turns after
|
||
this one. When your rage ends, you suffer one level o f exhaustion (as
|
||
described in appendix A)
|
||
|
||
"""
|
||
name = "Frenzy"
|
||
source = "Barbarian (Berserker)"
|
||
|
||
|
||
class MindlessRage(Feature):
|
||
"""Beginning at 6th level, you can’t be charmed or frightened while raging. If
|
||
you are charmed or frightened when you enter your rage, the effect is
|
||
suspended for the duration of the rage.
|
||
|
||
"""
|
||
name = "Mindless Rage"
|
||
source = "Barbarian (Berserker)"
|
||
|
||
|
||
class IntimidatingPresence(Feature):
|
||
"""Beginning at 10th level, you can use your action to frighten someone with
|
||
your menacing presence. When you do so, choose one creature that you can
|
||
see within 30 feet of you. If the creature can see or hear you, it must
|
||
succeed on a Wisdom saving throw (DC equal to 8 + your proficiency bonus +
|
||
your Charisma modifier) or be frightened of you until the end of your next
|
||
turn. On subsequent turns, you can use your action to extend the duration
|
||
of this effect on the frightened creature until the end of your next
|
||
turn. This effect ends if the creature ends its turn out of line of sight
|
||
or more than 60 feet away from you. If the creature succeeds on its saving
|
||
throw, you can't use this feature on that creature again for 24 hours.
|
||
|
||
"""
|
||
name = "Intimidating Presence"
|
||
source = "Barbarian (Berserker)"
|
||
|
||
|
||
class Retaliation(Feature):
|
||
"""Starting at 14th level, when you take damage from a creature that is within
|
||
5 feet of you. you can use your reaction to make a melee weapon attack
|
||
against that creature.
|
||
|
||
"""
|
||
name = "Retaliation"
|
||
source = "Barbarian (Berserker)"
|
||
|
||
|
||
# Totem Warrior
|
||
class SpiritSeeker(Feature):
|
||
"""Yours is a path that seeks attunement with the natural world, giving you a
|
||
kinship with beasts. At 3rd level when you adopt this path, you gain the
|
||
ability to cast the beast sense and speak with animals spells, but only as
|
||
rituals, as described in chapter 10 of PHB.
|
||
|
||
"""
|
||
name = "Spirit Seeker"
|
||
source = "Barbarian (Totem Warrior)"
|
||
|
||
|
||
class BearSpirit(Feature):
|
||
"""While raging, you have resistance to all damage except psychic damage. The
|
||
spirit of the bear makes you tough enough to stand up to any punishment.
|
||
|
||
"""
|
||
name = "Totem Spirit (Bear)"
|
||
source = "Barbarian (Totem Warrior)"
|
||
|
||
|
||
class EagleSpirit(Feature):
|
||
"""While you're raging and aren’t wearing heavy armor, other creatures have
|
||
disadvantage on opportunity attack rolls against you, and you can use the
|
||
Dash action as a bonus action on your turn. The spirit of the eagle makes
|
||
you into a predator who can weave through the fray with ease.
|
||
|
||
"""
|
||
name = "Totem Spirit (Eagle)"
|
||
source = "Barbarian (Totem Warrior)"
|
||
|
||
|
||
class WolfSpirit(Feature):
|
||
"""While you're raging, your friends have advantage on melee attack rolls
|
||
against any creature within 5 feet of you that is hostile to you. The
|
||
spirit of the wolf makes you a leader of hunters
|
||
|
||
"""
|
||
name = "Totem Spirit (Wolf)"
|
||
source = "Barbarian (Totem Warrior)"
|
||
|
||
|
||
class ElkSpirit(Feature):
|
||
"""While you're raging and aren't wearing heavy armor, your walking speed
|
||
increases by 15 feet. The spirit of the elk makes you extraordinarily swift
|
||
|
||
"""
|
||
name = "Totem Spirit (Elk)"
|
||
source = "Barbarian (Totem Warrior)"
|
||
|
||
|
||
class TigerSpirit(Feature):
|
||
"""While raging, you can add 10 feet to your long jump distance and 3 feet to
|
||
your high jump distance. The spirit of the tiger empowers your leaps
|
||
|
||
"""
|
||
name = "Totem Spirit (Tiger)"
|
||
source = "Barbarian (Totem Warrior)"
|
||
|
||
|
||
class TotemSpirit(FeatureSelector):
|
||
"""
|
||
Select a Totem Spirit from one of the following under feature_choices in
|
||
your .py file:
|
||
|
||
bear spirit
|
||
|
||
eagle spirit
|
||
|
||
wolf spirit
|
||
|
||
elk spirit
|
||
|
||
tiger spirit
|
||
|
||
"""
|
||
options = {'bear spirit': BearSpirit,
|
||
'eagle spirit': EagleSpirit,
|
||
'wolf spirit': WolfSpirit,
|
||
'elk spirit': ElkSpirit,
|
||
'tiger spirit': TigerSpirit}
|
||
name = "Totem Spirit (Select One)"
|
||
source = "Barbarian (Totem Warrior)"
|
||
|
||
|
||
class BearAspect(FeatureSelector):
|
||
"""You gain the might of a bear. Your carrying capacity (including maximum
|
||
load and maximum lift) is doubled, and you have advantage on Strength
|
||
checks made to push, pull, lift, or break objects.
|
||
|
||
"""
|
||
name = "Aspect of the Beast (Bear)"
|
||
source = "Barbarian (Totem Warrior)"
|
||
|
||
|
||
class EagleAspect(FeatureSelector):
|
||
"""You gain the eyesight of an eagle. You can see up to 1 mile away with no
|
||
difficulty, able to discern even fine details as though looking at
|
||
something no more than 100 feet away from you. Additionally, dim light
|
||
doesn't impose disadvantage on your Wisdom (Perception) checks.
|
||
|
||
"""
|
||
name = "Aspect of the Beast (Eagle)"
|
||
source = "Barbarian (Totem Warrior)"
|
||
|
||
|
||
class WolfAspect(FeatureSelector):
|
||
"""You gain the hunting sensibilities of a wolf. You can track other creatures
|
||
while traveling at a fast pace, and you can move stealthily while traveling
|
||
at a normal pace (see chapter 8 for rules on travel pace).
|
||
|
||
"""
|
||
name = "Aspect of the Beast (Wolf)"
|
||
source = "Barbarian (Totem Warrior)"
|
||
|
||
|
||
class ElkAspect(FeatureSelector):
|
||
"""Whether mounted or on foot , your travel pace is doubled, as is the travel
|
||
pace of up to ten companions while they're within 60 feet of you and you're
|
||
not incapacitated (see chapter 8 in the Player's Handbook for more
|
||
information about travel pace). The elk spirit helps you roam far and fast
|
||
|
||
"""
|
||
name = "Aspect of the Beast (Elk)"
|
||
source = "Barbarian (Totem Warrior)"
|
||
|
||
|
||
class TigerAspect(FeatureSelector):
|
||
"""You gain proficiency in two skills from the following list: Athletics,
|
||
Acrobatics, Stealth, and Survival. The cat spirit hones your survival
|
||
instincts
|
||
|
||
"""
|
||
name = "Aspect of the Beast (Tiger)"
|
||
source = "Barbarian (Totem Warrior)"
|
||
|
||
|
||
class BeastAspect(FeatureSelector):
|
||
"""Select an Aspect of the Beast from one of the following under
|
||
feature_choices in your .py file:
|
||
|
||
bear aspect
|
||
|
||
eagle aspect
|
||
|
||
wolf aspect
|
||
|
||
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.
|
||
|
||
"""
|
||
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
|
||
|
||
"""
|
||
name = "Totemic Attunement (Elk)"
|
||
source = "Barbarian (Totem Warrior)"
|
||
|
||
|
||
class TigerAttunement(Feature):
|
||
"""While you're raging, if you move at least 20 feet in a straight line toward
|
||
a Large or smaller target right before making a melee weapon attack against
|
||
it, you can use a bonus action to make an additional melee weapon attack
|
||
against it
|
||
|
||
"""
|
||
name = "Totemic Attunement (Tiger)"
|
||
source = "Barbarian (Totem Warrior)"
|
||
|
||
|
||
class TotemicAttunement(FeatureSelector):
|
||
"""Select a Totemic Attunement from one of the following under feature_choices
|
||
in your .py file:
|
||
|
||
bear attunement
|
||
|
||
eagle attunement
|
||
|
||
wolf attunement
|
||
|
||
elk attunement
|
||
|
||
tiger attunement
|
||
|
||
"""
|
||
options = {'bear attunement': BearAttunement,
|
||
'eagle attunement': EagleAttunement,
|
||
'wolf attunement': WolfAttunement,
|
||
'elk attunement': ElkAttunement,
|
||
'tiger attunement': TigerAttunement}
|
||
name = "Totemic Attunement (Select One)"
|
||
source = "Barbarian (Totem Warrior)"
|
||
|
||
|
||
# Battlerager
|
||
class BattleragerArmor(Feature):
|
||
"""When you choose this path at 3rd level, you gain the ability to use spiked
|
||
armor (see the "Spiked Armor" sidebar in SCAG) as a weapon. While you are
|
||
wearing spiked armor and are raging, you can use a bonus action to make one
|
||
melee weapon attack with your armor spikes against a target within 5 feet
|
||
of you. If the attack hits , the spikes deal ld4 piercing damage. You use
|
||
your Strength modifier for the attack and damage rolls. Additionally, when
|
||
you use the Attack action to grapple a creature, the target takes 3
|
||
piercing damage if your grapple check succeeds.
|
||
|
||
"""
|
||
name = 'Battlerager Armor'
|
||
source = "Barbarian (Battlerager)"
|
||
|
||
|
||
class RecklessAbandon(Feature):
|
||
"""Beginning at 6th level, when you use Reckless Attack while raging, you also
|
||
gain temporary hit points equal to your Constitution modifier (minimum of
|
||
1). They vanish if any of them are left when your rage ends .
|
||
|
||
"""
|
||
name = "Reckless Abandon"
|
||
source = "Barbarian (Battlerager)"
|
||
|
||
|
||
class BattleragerCharge(Feature):
|
||
"""Beginning at 10th level, you can take the Dash action as a bonus action
|
||
while you are raging.
|
||
|
||
"""
|
||
name = "Battlerager Charge"
|
||
source = "Barbarian (Battlerager)"
|
||
|
||
|
||
class SpikedRetribution(Feature):
|
||
"""Starting at 14th level, when a creature within 5 feet of you hits you with
|
||
a melee attack, the attacker takes 3 piercing damage if you are raging,
|
||
aren't incapacitated, and are wearing spiked armor.
|
||
|
||
"""
|
||
name = "Spiked Retribution"
|
||
source = "Barbarian (Battlerager)"
|
||
|
||
|
||
# Ancestral Guardian
|
||
class AncestralProtectors(Feature):
|
||
"""Starting when you choose this path at 3rd level, spectral warriors appear
|
||
when you enter your rage. While you’re raging, the first creature you hit
|
||
with an attack on your turn becomes the target of the warriors, which
|
||
hinder its attacks. Until the start ofyour next turn, that target has
|
||
disadvantage on any attack roll that isn’t against you, and when the target
|
||
hits a creature other than you with an attack, that creature has resistance
|
||
to the damage dealt by the attack. The effect on the target ends early
|
||
ifyour rage ends
|
||
|
||
"""
|
||
name = "Ancestral Protectors"
|
||
source = "Barbarian (Ancestral Guardian)"
|
||
|
||
|
||
class SpiritShield(Feature):
|
||
"""Beginning at 6th level, the guardian spirits that aid you can provide
|
||
supernatural protection to those you defend. If you are raging and another
|
||
creature you can see within 30 feet of you takes damage, you can use your
|
||
reaction to reduce that damage by 2d6.
|
||
|
||
When you reach certain levels in this class. you can reduce the damage by
|
||
more: by 3d6 at 10th level and by 4d6 at 14th level.
|
||
|
||
"""
|
||
_name = "Spirit Shield"
|
||
source = "Barbarian (Ancestral Guardian)"
|
||
|
||
@property
|
||
def name(self):
|
||
level = self.owner.Barbarian.level
|
||
damage = " (2d6)"
|
||
if level >= 10:
|
||
damage = " (3d6)"
|
||
if level >= 14:
|
||
damage = " (4d6)"
|
||
return self._name + damage
|
||
|
||
|
||
class ConsultTheSpirits(Feature):
|
||
"""At 10th level, you gain the ability to consult with your ancestral
|
||
spirits. When you do so, you cast the augury or clairvoyance spell, without
|
||
using a spell slot or material components. Rather than creating a spherical
|
||
sensor, this use of clairvoyance invisibly summons one Of your ancestral
|
||
spirits to the chosen location. Wisdom is your spellcasting ability for
|
||
these spells. After you cast either spell in this way, you can’t use this
|
||
feature again until you finish a short or long rest
|
||
|
||
"""
|
||
name = "Consult the Spirits"
|
||
source = "Barbarian (Ancestral Guardian)"
|
||
|
||
|
||
class VengefulAncestors(Feature):
|
||
"""At 14th level, your ancestral spirits grow powerful enough to
|
||
retaliate. When you use your Spirit Shield to reduce the damage of an
|
||
attack, the attacker takes an amount of force damage equal to the damage
|
||
that your Spirit Shield prevents.
|
||
|
||
"""
|
||
name = "Vengeful Ancestors"
|
||
source = "Barbarian (Ancestral Guardian)"
|
||
|
||
|
||
# Storm Herald
|
||
class DesertAura(Feature):
|
||
"""Starting at 3rd level, you emanate a stormy, magical aura while you
|
||
rage. The aura extends 10 feet from you in every direction, but not through
|
||
total cover. Your aura has an effect that activates when you enter your
|
||
rage, and you can activate the effect again on each of your turns as a
|
||
bonus action.
|
||
|
||
Choose desert, sea, or tundra. Your aura’s effect depends on that chosen
|
||
environment, as detailed below. You can change your environment choice
|
||
whenever you gain a level in this class. If your aura's effects require a
|
||
saving throw, the DC equals 8 + your proficiency bonus + your Constitu-
|
||
tion modifier.
|
||
|
||
**Desert**: When this effect is activated, all other creatures in your
|
||
aura take 2 fire damage each. The damage increases when you reach certain
|
||
levels in this class, increasing to 3 at 5th level, 4 at 10th level, 5 at
|
||
15th level, and 6 at 20th level.
|
||
|
||
"""
|
||
name = "Storm Aura (Desert)"
|
||
source = "Barbarian (Storm Herald)"
|
||
|
||
|
||
class SeaAura(Feature):
|
||
"""Starting at 3rd level, you emanate a stormy, magical aura while you
|
||
rage. The aura extends 10 feet from you in every direction, but not through
|
||
total cover. Your aura has an effect that activates when you enter your
|
||
rage, and you can activate the effect again on each of your turns as a
|
||
bonus action.
|
||
|
||
Choose desert, sea, or tundra. Your aura’s effect depends on that chosen
|
||
environment, as detailed below. You can change your environment choice
|
||
whenever you gain a level in this class. If your aura's effects require a
|
||
saving throw, the DC equals 8 + your proficiency bonus + your Constitu-
|
||
tion modifier.
|
||
|
||
**Sea**: When this effect is activated, you can choose one other creature
|
||
you can see in your aura. The target must make a Dexterity saving
|
||
throw. The target takes 1d6 lightning damage on a failed save, or half as
|
||
much damage on a successful one. The damage increases when you reach
|
||
certain levels in this class, increasing to 2d6 at 10th level, 3d6 at 15th
|
||
level, and 4d6 at 20th level.
|
||
|
||
"""
|
||
name = "Storm Aura (Sea)"
|
||
source = "Barbarian (Storm Herald)"
|
||
|
||
|
||
class TundraAura(Feature):
|
||
"""Starting at 3rd level, you emanate a stormy, magical aura while you
|
||
rage. The aura extends 10 feet from you in every direction, but not through
|
||
total cover. Your aura has an effect that activates when you enter your
|
||
rage, and you can activate the effect again on each of your turns as a
|
||
bonus action.
|
||
|
||
Choose desert, sea, or tundra. Your aura’s effect depends on that chosen
|
||
environment, as detailed below. You can change your environment choice
|
||
whenever you gain a level in this class. If your aura's effects require a
|
||
saving throw, the DC equals 8 + your proficiency bonus + your Constitu-
|
||
tion modifier.
|
||
|
||
**Tundra**: When this effect is activated, each creature of your choice in
|
||
your aura gains 2 temporary hit points, as icy spirits inure it to
|
||
suffering. The temporary hit points increase when you reach certain levels
|
||
in this class, increasing to 3 at 5th level, 4 at 10th level, 5 at 15th
|
||
level, and 6 at 20th level.
|
||
|
||
"""
|
||
name = "Storm Aura (Tundra)"
|
||
source = "Barbarian (Storm Herald)"
|
||
|
||
|
||
class StormAura(FeatureSelector):
|
||
"""
|
||
Select a Storm Aura from one of the following under feature_choices in
|
||
your .py file:
|
||
|
||
desert
|
||
|
||
sea
|
||
|
||
tundra
|
||
"""
|
||
options = {'desert': DesertAura,
|
||
'sea': SeaAura,
|
||
'tundra': TundraAura}
|
||
name = "Storm Aura (Select One)"
|
||
source = "Barbarian (Storm Herald)"
|
||
|
||
|
||
class DesertSoul(Feature):
|
||
"""At 6th level, the storm grants you benefits even when your aura isn’t
|
||
active. The benefits are based on the environment you chose for your
|
||
Storm Aura.
|
||
|
||
**Desert**: You gain resistance to fire damage, and you don’t suffer the
|
||
effects of extreme heat, as described in the Dungeon Master’s
|
||
Guide. Moreover, as an action, you can touch a flammable object that isn’t
|
||
being worn or carried by anyone else and set it on fire
|
||
|
||
"""
|
||
name = "Storm Soul (Desert)"
|
||
source = "Barbarian (Storm Herald)"
|
||
|
||
|
||
class SeaSoul(Feature):
|
||
"""At 6th level, the storm grants you benefits even when your aura isn’t
|
||
active. The benefits are based on the environment you chose for your
|
||
Storm Aura.
|
||
|
||
**Sea**: You gain resistance to lightning damage, and
|
||
you can breathe underwater. You also gain a swimming speed of 30 feet.
|
||
"""
|
||
name = "Storm Soul (Sea)"
|
||
source = "Barbarian (Storm Herald)"
|
||
|
||
|
||
class TundraSoul(Feature):
|
||
"""At 6th level, the storm grants you benefits even when your aura isn’t
|
||
active. The benefits are based on the environment you chose for your
|
||
Storm Aura.
|
||
|
||
**Tundra**: You gain resistance to cold damage, and you don’t suffer the
|
||
effects of extreme cold, as described in the Dungeon Master’s
|
||
Guide. Moreover, as an action, you can touch water and turn a 5-foot cube
|
||
Of it into ice, which melts after 1 minute. This action fails if a creature
|
||
is in the cube
|
||
"""
|
||
name = "Storm Soul (Tundra)"
|
||
source = "Barbarian (Storm Herald)"
|
||
|
||
|
||
class StormSoul(FeatureSelector):
|
||
"""Select a Storm Soul (same as Soul Aura) from one of the following under
|
||
feature_choices in your .py file:
|
||
|
||
desert
|
||
|
||
sea
|
||
|
||
tundra
|
||
|
||
"""
|
||
options = {'desert': DesertSoul,
|
||
'sea': SeaSoul,
|
||
'tundra': TundraSoul}
|
||
name = "Storm Soul (Select One)"
|
||
source = "Barbarian (Storm Herald)"
|
||
|
||
|
||
class ShieldingStorm(Feature):
|
||
"""At 10th level, you learn to use your mastery of the storm to protect
|
||
others. Each creature of your choice has the damage resistance you gained
|
||
from the Storm Soul fea ture while the creature is in your Storm Aura.
|
||
|
||
"""
|
||
name = "Shielding Storm"
|
||
source = "Barbarian (Storm Herald)"
|
||
|
||
|
||
class RagingDesert(Feature):
|
||
"""At 14th level, the power of the storm you channel grows mightier, lashing
|
||
out at your foes. The effect is based on the environment you chose for your
|
||
Storm Aura
|
||
|
||
**Desert**: Immediately after a creature in your aura hits you with an
|
||
attack, you can use your reaction to force that creature to make a
|
||
Dexterity saving throw. On a failed save, the creature takes fire damage
|
||
equal to half your barbarian level.
|
||
|
||
"""
|
||
name = "Raging Storm (Desert)"
|
||
source = "Barbarian (Storm Herald)"
|
||
|
||
|
||
class RagingSea(Feature):
|
||
"""At 14th level, the power of the storm you channel grows mightier, lashing
|
||
out at your foes. The effect is based on the environment you chose for your
|
||
Storm Aura
|
||
|
||
**Sea**: When you hit a creature in your aura with an attack, you can use
|
||
your reaction to force that creature to make a Strength saving throw. On a
|
||
failed save, the creature is knocked prone, as if struck by a wave.
|
||
|
||
"""
|
||
name = "Raging Storm (Sea)"
|
||
source = "Barbarian (Storm Herald)"
|
||
|
||
|
||
class RagingTundra(Feature):
|
||
"""At 14th level, the power of the storm you channel grows mightier, lashing
|
||
out at your foes. The effect is based on the environment you chose for your
|
||
Storm Aura
|
||
|
||
**Tundra**: Whenever the effect of your Storm Aura is activated, you can
|
||
choose one creature you can see in the aura. That creature must succeed on
|
||
a Strength saving throw, or its speed is reduced to 0 until the start of
|
||
your next turn, as magical frost covers it
|
||
|
||
"""
|
||
name = "Raging Storm (Tundra)"
|
||
source = "Barbarian (Storm Herald)"
|
||
|
||
|
||
class RagingStorm(FeatureSelector):
|
||
"""Select a Raging Storm (same as Soul Aura) from one of the following under
|
||
feature_choices in your .py file:
|
||
|
||
desert
|
||
|
||
sea
|
||
|
||
tundra
|
||
|
||
"""
|
||
options = {'desert': RagingDesert,
|
||
'sea': RagingSea,
|
||
'tundra': RagingTundra}
|
||
name = "Raging Storm (Select One)"
|
||
source = "Barbarian (Storm Herald)"
|
||
|
||
|
||
# Zealot
|
||
class DivineFury(Feature):
|
||
"""Starting when you choose this path at 3rd level, you can channel divine
|
||
fury into your weapon strikes. While you’re raging, the first creature you
|
||
hit on each of your turns with a weapon attack takes extra damage equal to
|
||
1d6 + half your barbarian level. The extra damage is necrotic or radiant;
|
||
you choose the type of damage when you gain this feature.
|
||
|
||
"""
|
||
_name = "Divine Fury"
|
||
source = "Barbarian (Zealot)"
|
||
|
||
@property
|
||
def name(self):
|
||
level = self.owner.Barbarian.level
|
||
damage = " (1d6+{:d})".format(level//2)
|
||
return self._name + damage
|
||
|
||
|
||
class WarriorOfTheGods(Feature):
|
||
"""At 3rd level, your soul is marked for endless battle. If a spell, such as
|
||
raise dead, has the sole effect of restoring you to life (but not
|
||
undeath), the caster doesn’t need material components to cast the spell
|
||
on you
|
||
|
||
"""
|
||
name = "Warrior of the Gods"
|
||
source = "Barbarian (Zealot)"
|
||
|
||
|
||
class FanaticalFocus(Feature):
|
||
"""Starting at 6th level, the divine power that fuels your rage can protect
|
||
you. If you fail a saving throw while you’re raging, you can reroll it, and
|
||
you must use the new roll. You can use this ability only once per rage.
|
||
"""
|
||
name = "Fanatical Focus"
|
||
source = "Barbarian (Zealot)"
|
||
|
||
|
||
class ZealousPresence(Feature):
|
||
"""At 10th level, you learn to channel divine power to inspire zealotry in
|
||
others. As a bonus action, you unleash a battle cry infused with divine
|
||
energy. Up to ten other creatures of your choice within 60 feet ofyou that
|
||
can hear you gain advantage on attack rolls and saving throws until the
|
||
start of your next turn. Once you use this feature, you can’t use it again
|
||
until you finish a long rest
|
||
|
||
"""
|
||
name = "Zealous Presence"
|
||
source = "Barbarian (Zealot)"
|
||
|
||
|
||
class RageBeyondDeath(Feature):
|
||
"""Beginning at 14th level, the divine power that fuels your rage allows you
|
||
to shrug off fatal blows. While you’re raging, having 0 hit points doesn’t
|
||
knock you unconscious. You still must make death saving throws, and you
|
||
suffer the normal effects of taking damage while at 0 hit points. However,
|
||
if you would die due to failing death saving throws, you don't die until
|
||
your rage ends, and you die then only if you still have 0 hit points.
|
||
|
||
"""
|
||
name = "Rage Beyond Death"
|
||
source = "Barbarian (Zealot)"
|
||
|