Files
dungeon-sheets/dungeonsheets/features/sorceror.py
T
2020-05-05 23:00:17 +02:00

536 lines
19 KiB
Python

from dungeonsheets import spells
from dungeonsheets.features.features import Feature
# PHB
class FontOfMagic(Feature):
"""At 2nd level, you tap into a deep wellspring of magic within yourself. This
wellspring is represented by sorcery points, which allow you to create a
variety of magical effects.
**Sorcery Points**: You have sorcery points equal to your Sorceror
Level. You can never have more sorcery points than shown on the table for
your level. You regain all spent sorcery points when you finish a long
rest.
**Flexible Casting**: You can use your sorcery points to gain additional
spell slots, or sacrifice spell slots to gain additional sorcery
points. You learn other ways to use your sorcery points as you reach higher
levels. You can transform unexpended sorcery points into one spell slot as
a bonus action on your turn. The Creating Spell Slots table shows the cost
of creating a spell slot of a given level. You can create spell slots no
higher in level than 5th. As a bonus action on your turn, you can expend
one spell slot and gain a number of sorcery points equal to the slot's
level.
1st Level Slot <--> 2 sorcery points
2nd Level Slot <--> 3 sorcery points
3rd Level Slot <--> 5 sorcery points
4th Level Slot <--> 6 sorcery points
5th Level Slot <--> 7 sorcery points
"""
name = "Font of Magic"
source = "Sorceror"
class Metamagic(Feature):
"""At 3rd level, you gain the ability to twist your spells to suit your
needs. You gain two of the following Metamagic options of your choice. You
gain another one at 10th and 17th level. You can use only one Metamagic
option on a spell when you cast it, unless otherwise noted
"""
name = "Metamagic"
source = "Sorceror (Metamagic)"
class SorcerousRestoration(Feature):
"""At 20th level, you regain 4 expended sorcery points whenever you finish a
short rest.
"""
name = "Sorcerous Restoration"
source = "Sorceror"
# Metamagic
class CarefulSpell(Metamagic):
"""When you cast a spell that forces other creatures to make a saving throw,
you can protect some of those creatures from the spell's full force. To do
so, you spend 1 sorcery point and choose a number o f those creatures up to
your Charisma modifier (minimum of one creature). A chosen creature
automatically succeeds on its saving throw against the spell.
"""
name = "Careful Spell"
class DistantSpell(Metamagic):
"""When you cast a spell that has a range of 5 feet or greater, you can spend
1 sorcery point to double the range of the spell. When you cast a spell
that has a range of touch, you can spend 1 sorcery point to make the range
of the spell 30 feet
"""
name = "Distant Spell"
class EmpoweredSpell(Metamagic):
"""When you roll damage for a spell, you can spend 1 sorcery point to reroll a
number of the damage dice up to your Charisma modifier (minimum of
one). You must use the new rolls. You can use Empowered Spell even if you
have already used a different Metamagic option during the casting of the
spell.
"""
name = "Empowered Spell"
class ExtendedSpell(Metamagic):
"""When you cast a spell that has a duration of 1 minute or longer, you can
spend 1 sorcery point to double its duration, to a maximum duration of 24
hours.
"""
name = "Extended Spell"
class HeightenedSpell(Metamagic):
"""When you cast a spell that forces a creature to make a saving throw to
resist its effects, you can spend 3 sorcery points to give one target of
the spell disadvantage on its first saving throw made against the spell
"""
name = "Heightened Spell"
class QuickenedSpell(Metamagic):
"""When you cast a spell that has a casting time of 1 action, you can spend 2
sorcery points to change the casting time to 1 bonus action for this
casting.
"""
name = "Quickened Spell"
class SubtleSpell(Metamagic):
"""When you cast a spell, you can spend 1 sorcery point to cast it without any
somatic or verbal components.
"""
name = "Subtle Spell"
class TwinnedSpell(Metamagic):
"""When you cast a spell that targets only one creature and doesn't have a
range of self, you can spend a number of sorcery points equal to the
spell's level to target a second creature in range with the same spell (1
sorcery point if the spell is a cantrip)
"""
name = "Twinned Spell"
# Wild Magic
class WildMagicSurge(Feature):
"""Starting when you choose this origin at 1st level, your spellcasting can
unleash surges of untamed magic. Immediately after you cast a sorcerer
spell of 1st level or higher, the DM can have you roll a d20. If you roll a
1, roll on the Wild Magic Surge table to create a random magical effect.
"""
name = "Wild Magic Surge"
source = "Sorceror (Wild Magic)"
class TidesOfChaos(Feature):
"""Starting at 1st level, you can manipulate the forces of chance and chaos to
gain advantage on one attack roll, ability check, or saving throw. Once you
do so, you must finish a long rest before you can use this feature again.
Any time before you regain the use of this feature, the DM can have you
roll on the Wild Magic Surge table immediately after you cast a sorcerer
spell of 1st level or higher. You then regain the use of this feature.
"""
name = "Tides of Chaos"
source = "Sorceror (Wild Magic)"
class BendLuck(Feature):
"""Starting at 6th level, you have the ability to twist fate using your wild
magic. When another creature you can see makes an attack roll, an ability
check, or a saving throw, you can use your reaction and spend 2 sorcery
points to roll 1d4 and apply the number rolled as a bonus or penalty (your
choice) to the creature's roll. You can do so after the creature rolls but
before any effects of the roll occur.
"""
name = 'Bend Luck'
source = 'Sorceror (Wild Magic)'
class ControlledChaos(Feature):
"""At 14th level, you gain a modicum of control over the surges of your wild
magic. Whenever you roll on the Wild Magic Surge table, you can roll twice
and use either number.
"""
name = 'Controlled Chaos'
source = "Sorceror (Wild Magic)"
class SpellBombardment(Feature):
"""Beginning at 18th level, the harmful energy of your spells
intensifies. When you roll damage for a spell and roll the highest number
possible on any of the dice, choose one of those dice, roll it again and
add that roll to the damage. You can use the feature only once per turn.
"""
name = "Spell Bombardment"
source = "Sorceror (Wild Magic)"
# Draconic Ancestry
class DraconicResilience(Feature):
"""As magic flows through your body, it causes physical traits of your dragon
ancestors to emerge. At 1st level, your hit point maximum increases by 1
and increases by 1 again whenever you gain a level in this class.
Additionally, parts of your skin are covered by a thin sheen of dragon-like
scales. When you aren't wearing armor, your AC equals 13 + your Dexterity
modifier.
This bonus is computed in the AC given on the Character Sheet above.
"""
name = "Draconic Resilience"
source = "Sorceror (Draconic Bloodline)"
class DragonAncestor(Feature):
"""At 1st level, you choose one type of dragon as your ancestor. The damage
type associated with each dragon is used by features you gain later
Dragon : Damage
Black : Acid
Blue : Lightning
Brass : Fire
Bronze : Lightning
Copper : Acid
Gold : Fire
Green : Poison
Red : Fire
Silver : Cold
White : Cold
You can speak, read, and write Draconic. Additionally, whenever you make a
Charisma check when interacting with dragons, your proficiency bonus is
doubled if it applies to the check.
"""
name = "Dragon Ancestor"
source = "Sorceror (Draconic Bloodline)"
class ElementalAffinity(Feature):
"""Starting at 6th level, when you cast a spell that deals damage of the type
associated with your draconic ancestry, add your Charisma modifier to that
damage. At the same time, you can spend 1 sorcery point to gain resistance
to that damage type for 1 hour
"""
name = "Elemental Affinity"
source = "Sorceror (Draconic Bloodline)"
class ElementalAdept(Feature):
"""When you gain this feat, choose one of the following damage types: acid,
cold, fire, lightning, or thunder. Spells you cast ignore resistance to damage
of the chosen type. In addition, when you roll damage for a spell you cast
that deals damage of that type, you can treat any 1 on a damage die as a 2.
You can select this feat multiple times. Each time you do so, you must choose
a different damage type.
"""
name = "Elemental Adept"
source = "Sorceror (Feats)"
class DragonWings(Feature):
"""At 14th level, you gain the ability to sprout a pair of dragon wings from
your back, gaining a flying speed equal to your current speed. You can
create these wings as a bonus action on your turn. They last until you
dismiss them as a bonus action on your turn. You can't manifest your wings
while wearing armor unless the armor is made to accommodate them, and
clothing not made to accommodate your wings might be destroyed when you
manifest them
"""
name = "Dragon Wings"
source = "Sorceror (Draconic Bloodline)"
class DraconicPresence(Feature):
"""Beginning at 18th level, you can channel the dread presence of your dragon
ancestor, causing those around you to become awestruck or frightened. As an
action, you can spend 5 sorcery points to draw on this power and exude an
aura of awe or fear (your choice) to a distance of 60 feet. For 1 minute or
until you lose your concentration (as if you were casting a concentration
spell), each hostile creature that starts its turn in this aura must
succeed on a Wisdom saving throw or be charmed (if you chose awe) or
frightened (if you chose fear) until the aura ends. A creature that
succeeds on this saving throw is immune to your aura for 24 hours.
"""
name = "Draconic Presence"
source = "Sorceror (Draconic Bloodline)"
# Divine Soul
class DivineMagic(Feature):
"""Your link to the divine allows you to learn spells from the cleric
class. When your Spellcasting feature lets you learn or replace a sorcerer
cantrip or a sorcerer spell of 1st level or higher, you can choose the new
spell from the cleric spell list or the sorcerer spell list. You must
otherwise obey all the restrictions for selecting the spell, and it becomes
a sorcerer spell for you.
In addition, choose an affinity for the source of your divine power: good,
evil, law, chaos, or neutrality. You learn an additional spell based on
that affinity, as shown below. It is a sorcerer spell for you, but it
doesn't count against your number of sorcerer spells known. If you later
replace this spell, you must replace it with a Spell from the cleric spell
list
Good : Cure Wounds
Evil : Inflict Wounds
Law : Bless
Chaos : Bane
Neutrality : Protection from Evil and Good
"""
name = "Divine Magic"
source = "Sorceror (Divine Soul)"
class FavoredByTheGods(Feature):
"""Starting at 1st level, divine power guards your destiny. If you fail a
saving throw or miss with an attack roll, you can roll 2d4 and add it to
the total, possibly changing
"""
name = "Favored by the Gods"
source = "Sorceror (Divine Soul)"
class EmpoweredHealing(Feature):
"""Starting at 6th level, the divine energy coursing through you can empower
healing spells. Whenever you or an ally within 5 feet of you rolls dice to
determine the number of hit points a spell restores, you can spend 1
sorcery point to reroll any number of those dice once, provided you aren't
incapacitated. You can use this feature only once per turn.
"""
name = "Empowered Healing"
source = "Sorceror (Divine Soul)"
class OtherworldlyWings(Feature):
"""Starting at 14th level, you can use a bonus action to manifest a pair of
spectral wings from your back. While the wings are present, you have a
flying speed of 30 feet. The wings last until you're incapacitated, you
die, or you dismiss them as a bonus action. The affinity you chose for your
Divine Magic feature determines the appearance of the spectral wings: eagle
wings for good or law, bat wings for evil or chaos, and dragonfly wings for
neutrality
"""
name = "Otherworldly Wings"
source = "Sorceror (Divine Soul)"
class UnearthlyRecovery(Feature):
"""At 18th level, you gain the ability to overcome grievous injuries. As a
bonus action when you have fewer than half of your hit points remaining,
you can regain a number of hit points equal to half your hit point
maximum. Once you use this feature, you can't use it again until you finish
a long rest
"""
name = "Unearthly Recovery"
source = "Sorceror (Divine Soul)"
class EyesOfTheDark(Feature):
"""Starting at lst level, you have darkvision with a range of 120 feet. When
you reach 3rd level in this class, you learn the darkness spell, which
doesn't count against your number of sorcerer spells known. In addition,
you can cast it by spending 2 sorcery points or by expending a spell
slot. If you cast it with sorcery points, you can see through the darkness
created by the spell.
"""
name = "Eyes of the Dark"
source = "Sorceror (Shadow Magic)"
spells_known = (spells.Darkness,)
spells_prepared = (spells.Darkness,)
class StrengthOfTheGrave(Feature):
"""Starting at lst level, your existence in a twilight state between life
and death makes you difficult to defeat. When damage reduces you to 0 hit
points, you can make a Charisma saving throw (DC 5 + the damage taken). On
a success, you instead drop to 1 hit point. You can't use this feature if
you are reduced to 0 hit points by radiant damage or by a critical
hit. After the saving throw succeeds, you can't use this feature again
until you finish a long rest
"""
name = "Strength of the Grave"
source = "Sorceror (Shadow Magic)"
class HoundOfIllOmen(Feature):
"""At 6th level, you gain the ability to call forth a howling creature of
darkness to harass your foes. As a bonus action, you can spend 3 sorcery
points to magically summon a hound of ill omen to target one creature you
can see within 120 feet of you. The hound uses the dire wolf's statistics
(see the Monster Manual or appendix C in the Player's Handbook), with the
following changes:
• The hound is size Medium, not Large, and it counts as a monstrosity, not
a beast.
• It appears with a number of temporary hit points equal to half your
sorcerer level.
• It can move through other creatures and objects as if they were
difficult terrain. The bound takes 5 force damage if it ends its turn
inside an object.
• At the start of its turn, the hound automatically knows its target's
location. If the target was hidden, it is no longer hidden from the hound.
The hound appears in an unoccupied space of your choice within 30 feet of
the target. Roll initiative for the hound. On its turn, it can move only
toward its target by the most direct route, and it can use its action only
to attack its target. The hound can make opportunity attacks but only
against its target. Additionally, while the hound is within 5 feet of the
target, the target has disadvantage on saving throws against any spell you
cast. The hound disappears if it is reduced to 0 hit points, if its target
is reduced to 0 hit points, or after 5 minutes.
"""
name = "Hound of Ill Omen"
source = "Sorceror (Shadow Magic)"
class ShadowWalk(Feature):
"""At 14th level, you gain the ability to step from one shadow into
another. When you are in dim light or darkness, as a bonus action, you
can magically teleport up to 120 feet to an unoccupied space you can see
that is also in dim light or darkness
"""
name = "Shadow Walk"
source = "Sorceror (Shadow Magic)"
class UmbralForm(Feature):
"""Starting at 18th level, you can spend 6 sorcery points as a bonus action to
magically transform yourself into a shadowy form. In this form, you have
resistance to all damage except force and radiant damage, and you can move
through other creatures and objects as if they were difficult terrain. You
take 5 force damage if you end your turn inside an object. You remain in
this form for 1 minute. It ends early if you are incapacitated, if you die,
or if you dismiss it as a bonus action.
"""
name = "Umbral Form"
source = "Sorceror (Shadow Magic)"
# Storm Sorcery
class TempestuousMagic(Feature):
"""Starting at 1st level, you can use a bonus action on your turn to cause
whirling gusts of elemental air to briefly surround you, immediately before
or after you cast a spell of 1st level or higher. Doing so allows you to
fly up to 10 feet without provoking opportunity attacks
"""
name = "Tempestuous Magic"
source = "Sorceror (Storm Sorcery)"
class HeartOfTheStorm(Feature):
"""At 6th level, you gain resistance to lightning and thunder damage. In
addition, whenever you start casting a spell of 1st level or higher that
deals lightning or thunder damage, stormy magic erupts from you. This
eruption causes creatures ofyour choice that you can see within 10 feet of
you to take lightning or thunder damage (choose each time this ability
activates) equal to half your sorcerer level.
"""
name = "Heart of the Storm"
source = "Sorceror (Storm Sorcery)"
class StormGuide(Feature):
"""At 6th level, you gain the ability to subtly control the weather around
you. Ifit is raining, you can use an action to cause the rain to stop
falling in a 20-foot-radius sphere centered on you. You can end this effect
as a bonus action. If it is windy, you can use a bonus action each round to
choose the direction that the wind blows in a IOO-foot-radius sphere
centered on you. The wind blows in that direction until the end ofyour next
turn. This feature doesn't alter the speed of the wind.
"""
name = "Storm Guide"
source = "Sorceror (Storm Sorcery)"
class StormsFury(Feature):
"""Starting at 14th level, when you are hit by a melee attack, you can use
your reaction to deal lightning damage to the attacker. The damage equals
your sorcerer level. The attacker must also make a Strength saving throw
against your sorcerer spell save DC. On a failed save, the attacker is
pushed in a straight line up to 20 feet away from you.
"""
name = "Storm's Fury"
source = "Sorceror (Storm Sorcery)"
class WindSoul(Feature):
"""At 18th level, you gain immunity to lightning and thunder damage. You also
gain a magical flying speed of 60 feet. As an action. you can reduce your
flying speed to 30 feet for 1 hour and choose a number of creatures within
30 feet ofyou equal to 3 + your Charisma modifier. The chosen creatures
gain a magical flying speed of 30 feet for 1 hour. Once you reduce your
flying speed in this way, you can't do so again until you finish a short or
long rest
"""
name = "Wind Soul"
source = "Sorceror (Storm Sorcery)"