mirror of
https://github.com/Threnklyn/dungeon-sheets.git
synced 2026-05-19 04:33:26 +02:00
502 lines
19 KiB
Python
502 lines
19 KiB
Python
from dungeonsheets.features.features import Feature, FeatureSelector
|
||
from dungeonsheets.features.ranger import Dueling, TwoWeaponFighting
|
||
|
||
|
||
# PHB
|
||
class BardicInspiration(Feature):
|
||
"""You can inspire others through stirring words or music. To do so, you use a
|
||
bonus action on your turn to choose one creature other than yourself within
|
||
60 feet of you who can hear you. That creature gains one Bardic Inspiration
|
||
die, a d6.
|
||
|
||
Once within the next 10 minutes, the creature can roll the die and add the
|
||
number rolled to one ability check, attack roll, or saving throw it
|
||
makes. The creature can wait until after it rolls the d20 before deciding
|
||
to use the Bardic Inspiration die, but must decide before the DM says
|
||
whether the roll succeeds or fails. Once the Bardic Inspiration die is
|
||
rolled, it is lost. A creature can have only one Bardic Inspiration die at
|
||
a time
|
||
|
||
You can use this feature a number of times equal to your Charisma modifier
|
||
(a minimum of once). You regain any expended uses when you finish a long
|
||
rest.
|
||
|
||
Your Bardic Inspiration die changes when you reach certain levels in this
|
||
class. The die becomes a d8 at 5th level, a d10 at 10th level, and a d12
|
||
at 15th level.
|
||
|
||
"""
|
||
|
||
_name = "Bardic Inspiration"
|
||
source = "Bard"
|
||
|
||
@property
|
||
def name(self):
|
||
level = self.owner.Bard.level
|
||
die = "d6"
|
||
if level >= 5:
|
||
die = "d8"
|
||
if level >= 10:
|
||
die = "d10"
|
||
if level >= 15:
|
||
die = "d12"
|
||
num = max(1, self.owner.charisma.modifier)
|
||
rest = "LR"
|
||
if level >= 5: # font of inspiration
|
||
rest = "SR"
|
||
return self._name + " ({:d}{:s}/{:s})".format(num, die, rest)
|
||
|
||
|
||
class JackOfAllTrades(Feature):
|
||
"""Starting at 2nd level, you can add half your proficiency bonus, rounded
|
||
down, to any ability check you make that doesn't already include your
|
||
proficiency bonus. (Included in stats on Character Sheet above).
|
||
|
||
"""
|
||
|
||
name = "Jack of All Trades"
|
||
source = "Bard"
|
||
|
||
|
||
class SongOfRest(Feature):
|
||
"""Beginning at 2nd level, you can use soothing music or oration to help
|
||
revitalize your wounded allies during a short rest. If you or any friendly
|
||
creatures who can hear your performance regain hit points at the end of the
|
||
short rest, each of those creatures regains an extra 1d6 hit points. The
|
||
extra hit points increase when you reach certain levels in this class: to
|
||
1d8 at 9th level, to 1d10 at 13th level, and to 1d12 at 17th level.
|
||
|
||
"""
|
||
|
||
_name = "Song of Rest"
|
||
source = "Bard"
|
||
|
||
@property
|
||
def name(self):
|
||
level = self.owner.Bard.level
|
||
die = " (1d6)"
|
||
if level >= 9:
|
||
die = " (1d8)"
|
||
if level >= 13:
|
||
die = " (1d10)"
|
||
if level >= 17:
|
||
die = " (1d12)"
|
||
return self._name + die
|
||
|
||
|
||
class BardExpertise(Feature):
|
||
"""At 3rd level, choose two of your skill proficiencies. Your proficiency
|
||
bonus is doubled for any ability check you make that uses either of the
|
||
chosen proficiencies. At 10th level, you can choose another two skill
|
||
proficiencies to gain this benefit.
|
||
|
||
Add these skills to "skill_expertise" in your character.py file
|
||
|
||
"""
|
||
|
||
name = "Expertise"
|
||
source = "Bard"
|
||
|
||
|
||
class FontOfInspiration(Feature):
|
||
"""Beginning when you reach 5th level, you regain all of your expended uses of
|
||
Bardic Inspiration when you finish a short or long rest.
|
||
|
||
"""
|
||
|
||
name = "Font of Inspiration"
|
||
source = "Bard"
|
||
|
||
|
||
class Countercharm(Feature):
|
||
"""At 6th level, you gain the ability to use musical notes or words of power
|
||
to disrupt mind-influencing effects. As an action, you can start a
|
||
performance that lasts until the end of your next turn. During that time,
|
||
you and any friendly creatures within 30 feet of you have advantage on
|
||
saving throws against being frightened or charmed. A creature must be able
|
||
to hear you to gain this benefit. The performance ends early if you are
|
||
incapacitated or silenced or if you voluntarily end it (no action
|
||
required).
|
||
|
||
"""
|
||
|
||
name = "Countercharm"
|
||
source = "Bard"
|
||
|
||
|
||
class MagicalSecrets(Feature):
|
||
"""By 10th level, you have plundered magical knowledge from a wide spectrum of
|
||
disciplines. Choose two spells from any class, including Bard. A spell
|
||
you choose must be of a level you can cast, as shown on the Bard table, or
|
||
a cantrip. The chosen spells count as bard spells for you and are included
|
||
in the number in the Spells Known column of the Bard table. You learn two
|
||
additional spells from any class at 14th level and again at 18th level.
|
||
|
||
"""
|
||
|
||
name = "Magical Secrets"
|
||
source = "Bard"
|
||
|
||
|
||
class SuperiorInspiration(Feature):
|
||
"""At 20th level, when you roll initiative and have no uses of Bardic
|
||
Inspiration left, you regain one use.
|
||
|
||
"""
|
||
|
||
name = "Superior Inspiration"
|
||
source = "Bard"
|
||
|
||
|
||
# College of Lore
|
||
class LoreProficiencies(Feature):
|
||
"""When you join the College of Lore at 3rd level, you gain proficiency with
|
||
three skills o f your choice.
|
||
|
||
"""
|
||
|
||
name = "Bonus Proficiencies"
|
||
source = "Bard (College of Lore)"
|
||
|
||
|
||
class CuttingWords(Feature):
|
||
"""Also at 3rd level, you learn how to use your wit to distract, confuse, and
|
||
otherwise sap the confidence and competence of others. When a creature that
|
||
you can see within 60 feet of you makes an attack roll, an ability check,
|
||
or a damage roll, you can use your reaction to expend one of your uses of
|
||
Bardic Inspiration, rolling a Bardic Inspiration die and subtracting the
|
||
number rolled from the creature's roll. You can choose to use this feature
|
||
after the creature makes its roll, but before the DM determines whether the
|
||
attack roll or ability check succeeds or fails, or before the creature
|
||
deals its damage. The creature is immune if it can't hear you or if it's
|
||
immune to being charmed.
|
||
|
||
"""
|
||
|
||
name = "Cutting Words"
|
||
source = "Bard (College of Lore)"
|
||
|
||
|
||
class AdditionalMagicalSecrets(Feature):
|
||
"""At 6th level, you learn two spells of your choice from any class. A spell
|
||
you choose must be of a level you can cast, as shown on the Bard table, or
|
||
a cantrip. The chosen spells count as bard spells for you but don't count
|
||
against the number of bard spells you know.
|
||
|
||
"""
|
||
|
||
name = "Additional Magical Secrets"
|
||
source = "Bard (College of Lore)"
|
||
|
||
|
||
class PeerlessSkill(Feature):
|
||
"""Starting at 14th level, when you make an ability check, you can expend one
|
||
use of Bardic Inspiration. Roll a Bardic Inspiration die and add the number
|
||
rolled to your ability check. You can choose to do so after you roil the
|
||
die for the ability check, but before the DM tells you whether you succeed
|
||
or fail
|
||
|
||
"""
|
||
|
||
name = "Peerless Skill"
|
||
source = "Bard (College of Lore)"
|
||
|
||
|
||
# College of Valor
|
||
class CombatInspiration(Feature):
|
||
"""Also at 3rd level, you learn to inspire others in battle. A creature that
|
||
has a Bardic Inspiration die from you can roll that die and add the number
|
||
rolled to a weapon damage roll it just made. Alternatively, when an attack
|
||
roll is made against the creature, it can use its reaction to roll the
|
||
Bardic Inspiration die and add the number rolled to its AC against that
|
||
attack, after seeing the roll but before knowing whether it hits or misses
|
||
|
||
"""
|
||
|
||
name = "Combat Inspiration"
|
||
source = "Bard (College of Valor)"
|
||
|
||
|
||
class BardExtraAttack(Feature):
|
||
"""Starting at 6th level, you can attack twice, instead of once, whenever you
|
||
take the Attack action on your turn
|
||
|
||
"""
|
||
|
||
name = "Extra Attack (x2)"
|
||
source = "Bard (College of Valor)"
|
||
|
||
|
||
class BardBattleMagic(Feature):
|
||
"""At 14th level, you have mastered the art of weaving spellcasting and weapon
|
||
use into a single harmonious act. When you use your action to cast a bard
|
||
spell, you can make one weapon attack as a bonus action
|
||
|
||
"""
|
||
|
||
name = "Battle Magic"
|
||
source = "Bard (College of Valor)"
|
||
|
||
|
||
# XgtE - College of Glamour:
|
||
class MantleOfInspiration(Feature):
|
||
"""When you join the College of Glamour at 3rd level, you gain the
|
||
ability to weave a song of fey magic that imbues your allies with
|
||
vigor and speed. As a bonus action, you can expend one use of your
|
||
Bardic Inspiration to grant yourself a wondrous appearance. When
|
||
you do so, choose a number of creatures you can see and that can
|
||
see you within 60 feet of you, up to a number equal to your
|
||
Charisma modifier (minimum of one). Each of them gains 5 temporary
|
||
hit points. When a creature gains these temporary hit points, it
|
||
can immediately use its reaction to move up to its speed, without
|
||
provoking opportunity attacks. The number of temporary hit points
|
||
increases when you reach certain levels in this class, increasing
|
||
to 8 at 5th level, 11 at 10th level, and 14 at 15th level.
|
||
|
||
"""
|
||
|
||
_name = "Mantle of Inspiration"
|
||
source = "Bard (College of Glamour)"
|
||
|
||
@property
|
||
def name(self):
|
||
level = self.owner.Bard.level
|
||
hp = 5 + 3 * (level // 5)
|
||
return self._name + " ({:d}HP)".format(hp)
|
||
|
||
|
||
class EnthrallingPerformance(Feature):
|
||
"""Starting at 3rd level, you can charge your performance with seductive, fey
|
||
magic. If you perform for at least 1 minute, you can attempt to inspire
|
||
wonder in your audience by singing, reciting a poem, or dancing. At the end
|
||
of the performance, choose a number of humanoids within 60 feet ofyou who
|
||
watched and listened to all of it, up to a number equal tO your Charisma
|
||
modifier (minimum of one). Each target must succeed on a Wisdom saving
|
||
throw against your spell save DC or be charmed by you. While charmed in
|
||
this way, the target idolizes you, it speaks glowingly Of you to anyone who
|
||
talks to it, and it hinders anyone who Opposes you, although it avoids
|
||
violence unless it was already inclined to fight on your behalf. This
|
||
effect ends on a target after 1 hour, if it takes any damage, if you attack
|
||
it, or if it witnesses you attacking or damaging any of its allies.
|
||
|
||
If a target succeeds on its saving throw, the target has no hint that you
|
||
tried to charm it. Once you use this feature, you can't use it again until
|
||
you finish a short or long rest
|
||
|
||
"""
|
||
|
||
name = "Enthralling Performance"
|
||
source = "Bard (College of Glamour)"
|
||
|
||
|
||
class MantleOfMajesty(Feature):
|
||
"""At 6th level, you gain the ability to cloak yourself in a fey magic that
|
||
makes Others want to serve you. As a bonus action, you cast command,
|
||
without expending a spell slot, and you take on an appearance of unearthly
|
||
beauty for 1 minute or until your concentration ends (as if you were
|
||
concentrating on a spell). During this time, you can cast command as a
|
||
bonus action on each of your turns, without expending a spell slot.
|
||
|
||
Any creature charmed by you automatically failfs its saving throw against
|
||
the command you cast with this feature. Once you use this feature, you
|
||
can't use it again until you finish a long rest
|
||
|
||
"""
|
||
|
||
name = "Mantle of Majesty"
|
||
source = "Bard (College of Glamour)"
|
||
|
||
|
||
class UnbreakableMajesty(Feature):
|
||
"""At 14th level, your appearance permanently gains an otherworldly aspect that
|
||
makes you look more lovely and fierce. In addition, as a bonus action, you
|
||
can assume a magically majestic presence for 1 minute or until you are
|
||
incapacitated. For the duration, whenever any creature tries to attack you
|
||
for the first time on a turn, the at- tacker must make a Charisma saving
|
||
throw against your spell save DC. On a failed save, it can't attack you on
|
||
this turn, and it must choose a new target for its attack or the attack is
|
||
wasted.
|
||
|
||
On a successful save, it can attack you on this turn, but it has
|
||
disadvantage on any saving throw it makes against your spells on your next
|
||
turn. Once you assume this majestic presence, you can't do so again until
|
||
you finish a short or long rest.
|
||
|
||
"""
|
||
|
||
name = "Unbreakable Majesty"
|
||
source = "Bard (College of Glamour)"
|
||
|
||
|
||
# College of Swords
|
||
class SwordsProficiency(Feature):
|
||
"""When you join the College of Swords at 3rd level, you gain proficiency with
|
||
medium armor and the scimitar. If you‘re proficient with a simple or
|
||
martial melee weapon, you can use it as a spellcasting focus for your hard
|
||
spells
|
||
|
||
"""
|
||
|
||
name = "Bonus Proficiencies"
|
||
source = "Bard (College of Swords)"
|
||
|
||
|
||
class BardFightingStyle(FeatureSelector):
|
||
"""
|
||
Select a Fighting Style by choosing in feature_choices:
|
||
|
||
dueling
|
||
|
||
two-weapon fighting
|
||
"""
|
||
|
||
options = {
|
||
"dueling": Dueling,
|
||
"two-weapon fighting": TwoWeaponFighting,
|
||
"two-weapon": TwoWeaponFighting,
|
||
"dual wield": TwoWeaponFighting,
|
||
}
|
||
name = "Fighting Style (Select One)"
|
||
source = "Bard (College of Swords)"
|
||
|
||
|
||
class BladeFlourish(Feature):
|
||
"""At 3rd level, you learn to perform impressive displays of martial prowess
|
||
and speed. Whenever you take the Attack action on your turn, your walking
|
||
speed increases by 10 feet until the end of the turn, and if a weapon
|
||
attack that you make as part of this action hits a creature, you can use
|
||
one of the following Blade Flourish options of your choice. You can use
|
||
only one Blade Flourish option per turn.
|
||
|
||
**Defensive Flourish**: You can expend one use of your Bardic Inspiration
|
||
to cause the weapon to deal extra damage to the target you hit. The damage
|
||
equals the number you roll on the Bardic Inspiration die. You also add the
|
||
number rolled to your AC until the start ofyour next turn.
|
||
|
||
**Slashing Flourish**: You can expend one use ofyour Bardic Inspiration to
|
||
cause the weapon to deal extra damage to the target you hit and to any
|
||
other creature ofyour choice that you can see within 5 feet ofyou. The
|
||
damage equalsthe number you roll on the Bardic Inspi- ration die.
|
||
|
||
**Mobile Flourish**: You can expend one use ofyour Bar- dic InSpiration to
|
||
cause the weapon to deal extra dam- age to the target you hit. The damage
|
||
equals the number you roll on the Bardic Inspiration die. You can also push
|
||
the target up to 5 feet away from you, plus a number of feet equal to the
|
||
number you roll on that die. You can then immediately use your reaction to
|
||
move up to your walking speed to an unoccupied space within 5 feet of the
|
||
target.
|
||
|
||
"""
|
||
|
||
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)"
|
||
if level >= 5:
|
||
dice = " (3d6)"
|
||
if level >= 10:
|
||
dice = " (5d6)"
|
||
if level >= 15:
|
||
dice = " (8d6)"
|
||
return self._name + dice
|
||
|
||
|
||
class WordsOfTerror(Feature):
|
||
"""At 3rd level, you learn to infuse innocent-seeming words with
|
||
an insidious magic that can inspire terror. If you speak to a humanoid alone
|
||
for at least 1 minute, you can attempt to seed paranoia in its mind. At
|
||
the end of the conversation, the target must succeed on a Wisdom saving
|
||
throw against your spell save DC or be frightened of you or another creature
|
||
of your choice. The target is frightened in this way for 1 hour, until it is
|
||
attacked or damaged, or until it witnesses its allies being attacked or
|
||
damaged.
|
||
|
||
If the target succeeds on its saving throw, the target has no hint that you
|
||
tried to frighten it. Once you use this feature, you can't use it again
|
||
until you finish a short or long rest.
|
||
|
||
"""
|
||
|
||
name = "Words of Terror"
|
||
source = "Bard (College of Whispers)"
|
||
|
||
|
||
class MantleOfWhispers(Feature):
|
||
"""At 6th level, you gain the ability to adopt a humanoid's persona. When a
|
||
humanoid dies within 30 feet of you, you can magically capture its shadow
|
||
using your reac- tion. You retain this shadow until you use it or you
|
||
finish a long rest. You can use the shadow as an action. When you do so, it
|
||
vanishes, magically transforming into a disguise that appears on you. You
|
||
now look like the dead person, but healthy and alive.This disguise lasts
|
||
for 1 hour or until you end it as a bonus action.
|
||
|
||
While you're in the disguise, you gain access to all information that the
|
||
humanoid would freely share with a casual acquaintance. Such information
|
||
includes general details on its background and personal life, but doesn't
|
||
include secrets. The information is enough that you can pass yourself off
|
||
as the person by drawing on its memories. Another creature can see through
|
||
this disguise by succeeding on a Wisdom (Insight) check contested by your
|
||
Charisma (Deception) check. You gain a +5 bonus to your check. Once you
|
||
capture a shadow with this feature, you can't capture another one with it
|
||
until you finish a short or long rest.
|
||
|
||
"""
|
||
|
||
name = "Mantle of Whispers"
|
||
source = "Bard (College of Whispers)"
|
||
|
||
|
||
class ShadowLore(Feature):
|
||
"""At 14th level, you gain the ability to weave dark magic into your words and
|
||
tap into a creature's deepest fears. As an action, you magically whisper a
|
||
phrase that only one creature ofyour choice within 30 feet of you can
|
||
hear. The target must make a Wisdom saving throw against your spell save
|
||
DC. It automatically succeeds if it doesn't share a language with you or if
|
||
it can't hear you. On a successful saving throw, your whisper sounds like
|
||
unintelligible mumbling and has no effect.
|
||
|
||
On a failed saving throw, the target is charmed by you for the next 8 hours
|
||
or until you or your allies attack it, damage it, or force it to make a
|
||
saving throw. It interprets the whispers as a description of its most
|
||
mortifying secret. You gain no knowledge of this secret, but the target
|
||
is convinced you know it. The charmed creature obeys your commands for fear
|
||
that you will reveal its secret. It won't risk its life for you or fight
|
||
for you, unless it was already inclined to do so. It grants you favors and
|
||
gifts it would offer to a close friend. When the effect ends, the creature
|
||
has no understanding of why it held you in such fear. Once you use this
|
||
feature, you can't use it again until / you finish a long rest.
|
||
|
||
"""
|
||
|
||
name = "Shadow Lore"
|
||
source = "Bard (College of Whispers)"
|