mirror of
https://github.com/Threnklyn/dungeon-sheets.git
synced 2026-06-03 19:38:30 +02:00
335 lines
11 KiB
Python
335 lines
11 KiB
Python
|
|
|
|
class Spell():
|
|
"""A magical spell castable by a player character."""
|
|
level = 0
|
|
casting_time = "1 action"
|
|
casting_range = "60 ft"
|
|
components = ("V", "S")
|
|
duration = "instantaneous"
|
|
magic_school = ""
|
|
classes = ()
|
|
|
|
def __str__(self):
|
|
return self.name
|
|
|
|
def __repr__(self):
|
|
return f'<{self.name}>'
|
|
|
|
|
|
class AcidSplash(Spell):
|
|
"""You hurl a bubble of acid. Choose one creature within range, or
|
|
choose two crealures within range that are within 5 feet of each
|
|
other. A target must succeed on a Dexterity saving throw or take
|
|
1d6 acid damage.
|
|
|
|
This spell's damage increases by 1d6 when you reach 5th level
|
|
(2d6), 11th level (3d6), and 17th level (4d6).
|
|
|
|
"""
|
|
name = "Acid Splash"
|
|
classes = ('Sorceror', 'Wizard', )
|
|
magic_school = "Conjuration"
|
|
|
|
|
|
class BlindnessDeafness(Spell):
|
|
"""Vou can blind or deafen a foe. Choose one creature that you can see
|
|
within range to make a Constitution saving throw. If it fails, the
|
|
target is either blinded or deafened (your choice) for the
|
|
duration. At the end of each of its turns, the target can make a
|
|
Constitution saving throw. On a success, the spell ends.
|
|
|
|
At Higher Levels. When you cast this spell using a spell slot of
|
|
3rd level or higher, you can target one additional creature for
|
|
each slot level above 2nd.
|
|
|
|
"""
|
|
name = "Blindness/Deafness"
|
|
magic_school = "Necromancy"
|
|
level = 2
|
|
casting_range = "30 feet"
|
|
components = ("V", )
|
|
duration = "1 minute"
|
|
classes = ('Wizard', )
|
|
|
|
|
|
class BurningHands(Spell):
|
|
"""As you hold your hands with lhumbs touching and fingers spread, a
|
|
thin sheet of flames shoots forth from your outstretched
|
|
fingertips. Each creature in a 15-foot cone must make a Dexterity
|
|
saving throw. A creature takes 3d6 fire damage on a failed save,
|
|
or half as much damage on a successful one.
|
|
|
|
The fire ignites any flammable objecls in lhe area that aren't
|
|
being worn or carried.
|
|
|
|
**At Higher Levels.** When you cast lhis spell using a spell slot
|
|
of 2nd level or higher, lhe damage increases by 1d6 for each slot
|
|
level above 1st.
|
|
|
|
"""
|
|
name = "Burning Hands"
|
|
level = 1
|
|
casting_time = "1 action"
|
|
casting_range = "Self (15 foot cone)"
|
|
components = ("V", "S")
|
|
duration = "Instantaneous"
|
|
magic_school = "Evocation"
|
|
classes = ('Wizard', )
|
|
|
|
|
|
class DetectMagic(Spell):
|
|
"""For the duration, you sense the presence of magic within 30 feet of
|
|
you. If you sense magic in this way, you can use your action to
|
|
see a faint aura around any visible creature or object in the area
|
|
that bears magic, and you learn its school of magic, if any.
|
|
|
|
The spell can penetrate most barriers, but is blocked by 1 foot of
|
|
stone, 1 inch of common metal, a thin sheet of lead, or 3 feet of
|
|
wood or dirt.
|
|
|
|
"""
|
|
name = "Detect Magic"
|
|
level = 1
|
|
casting_time = "1 action"
|
|
casting_range = "Self (30 feet)"
|
|
components = ("V", "S")
|
|
duration = "Concentration, Up to 10 minutes"
|
|
magic_school = "Divination"
|
|
classes = ('Bard', 'Cleric', 'Druid', 'Paladin', 'Ranger', 'Sorceror', 'Wizard', )
|
|
|
|
|
|
class FalseLife(Spell):
|
|
"""Bolstering yourself with a necromantic facsimile of life, you gain
|
|
1d4+4 temporary hit points for the duration.
|
|
|
|
At Higher Levels: When you cast this spell using a spell slot of
|
|
2nd level or higher, you gain 5 additional temporary hit points
|
|
for each slot level above 1st.
|
|
|
|
"""
|
|
name = "False Life"
|
|
level = 1
|
|
casting_time = "1 action"
|
|
casting_range = "Self (30 feet)"
|
|
components = ("V", "S", "M")
|
|
materials = "A small amount of alcohol or distilled spirits"
|
|
duration = "1 hour"
|
|
magic_school = "Necromancy"
|
|
classes = ('Sorceror', 'Wizard', )
|
|
|
|
|
|
class MageArmor(Spell):
|
|
"""You touch a willing creature who isn't wearing armor, and a
|
|
protective magical force surrounds it until the spell ends. The
|
|
target's base AC becomes 13 + its Dexterity modifier. The spell
|
|
ends it if the target dons armor or if you dismiss the spell as an
|
|
action.
|
|
|
|
"""
|
|
name = "Mage Armor"
|
|
level = 1
|
|
casting_time = "1 action"
|
|
casting_range = "Touch"
|
|
components = ("V", "S", "M")
|
|
materials = "A piece of cured leather"
|
|
duration = "8 hours"
|
|
magic_school = "Abjuration"
|
|
classes = ('Sorceror', 'Wizard', )
|
|
|
|
|
|
class MageHand(Spell):
|
|
"""A spectral, floating hand appears at a point you choose within
|
|
range. The hand lasts for the duration or until you dismiss it as
|
|
an action. The hand vanishes if it is ever more than 30 feet away
|
|
from you or if you cast this spell again.
|
|
|
|
You can use your action to control the hand. You can use the hand
|
|
to manipulate an object, open an unlocked door or container, stow
|
|
or retrieve an item from an open container, or pour the contents
|
|
out of a vial. You can move the hand up to 30 feet each time you
|
|
use it.
|
|
|
|
The hand can't attack, activate magical items, or carry more than
|
|
10 pounds.
|
|
|
|
"""
|
|
name = "Mage Hand"
|
|
level = 0
|
|
casting_time = "1 action"
|
|
casting_range = "30 feet"
|
|
components = ("V", "S", )
|
|
duration = "1 minute"
|
|
magic_school = "Conjuration"
|
|
classes = ('Bard', 'Sorceror', 'Warlock', 'Wizard', )
|
|
|
|
|
|
class MagicMissile(Spell):
|
|
"""You create three glowing darts of magical force. Each dart hits a
|
|
creature of your choice that you can see within range. A dart
|
|
deals 1d4+1 force damage to its target. The darts all strike
|
|
simultaneously and you can direct them to hit one creature or
|
|
several.
|
|
|
|
At Higher Levels: When you cast this spell using a spell slot of
|
|
2nd level or higher, the spell creates one more dart for each slot
|
|
above 1st.
|
|
|
|
"""
|
|
name = "Magic Missile"
|
|
level = 1
|
|
casting_time = "1 action"
|
|
casting_range = "120 feet"
|
|
components = ("V", "S", )
|
|
duration = "Instantaneous"
|
|
magic_school = "Evocation"
|
|
classes = ('Sorceror', 'Wizard', )
|
|
|
|
|
|
class Prestidigitation(Spell):
|
|
"""This spell is a minor magical trick that novice spellcasters use
|
|
for practice. You create one of the following magical effects
|
|
within range.
|
|
|
|
- You create an instantaneous, harmless sensory effect, such as a
|
|
shower of sparks, a puff of wind, faint musical notes, or an odd
|
|
odor.
|
|
- You instantaneously light or snuff out a candle, a torch, or a
|
|
small campfire.
|
|
- You instantaneously clean or soil an object no larger than 1
|
|
cubic foot.
|
|
- You chill, warm, or flavor up to 1 cubic foot of nonliving
|
|
material for 1 hour.
|
|
- You make a color, a small mark, or a symbol appear on an object
|
|
or a surface for 1 hour.
|
|
- You create a nonmagical trinket or an illusory image that can
|
|
fit in your hand and that lasts until the end of your next turn.
|
|
If you cast this spell multiple times, you can have up to three of
|
|
its non-instantaneous effects active at a time, and you can
|
|
dismiss such an effect as an action.
|
|
|
|
"""
|
|
name = "Prestidigitation"
|
|
level = 0
|
|
casting_time = "1 action"
|
|
casting_range = "10 feet"
|
|
components = ("V", "S", )
|
|
duration = "1 hour"
|
|
magic_school = "Transmutation"
|
|
classes = ('Bard', 'Sorceror', 'Warlock', 'Wizard', )
|
|
|
|
|
|
class RayOfFrost(Spell):
|
|
"""A frigid beam of blue-white light streaks toward a creature within
|
|
range. Make a ranged spell attack against the target. On a hit, it
|
|
takes 1d8 cold damage, and its speed is reduced by 10 feet until
|
|
the start of your next turn.
|
|
|
|
The spell's damage increases by 1d8 when you reach 5th level
|
|
(2d8), 11th level (3d8), and 17th level (4d8).
|
|
|
|
"""
|
|
name = "Ray of Frost"
|
|
level = 0
|
|
casting_time = "1 action"
|
|
casting_range = "60 feet"
|
|
components = ("V", "S", )
|
|
duration = "Instantaneous"
|
|
magic_school = "Evocation"
|
|
classes = ('Sorceror', 'Wizard', )
|
|
|
|
|
|
class RayOfSickness(Spell):
|
|
"""A ray of sickening greenish energy lashes out toward a creature
|
|
within range. Make a ranged spell attack against the target. On a
|
|
hit, the target takes 2d8 poison damage and must make a
|
|
Constitution saving throw. On a failed save, it is also poisoned
|
|
until the end of your next turn.
|
|
|
|
At Higher Levels. When you cast this spell using a spell slot of
|
|
2nd level or higher, the damage increases by 1d8 for each slot
|
|
level above 1st.
|
|
|
|
"""
|
|
name = "Ray of Sickness"
|
|
level = 1
|
|
casting_time = "1 action"
|
|
casting_range = "60 feet"
|
|
components = ("V", "S", )
|
|
duration = "Instantaneous"
|
|
magic_school = "Necromancy"
|
|
classes = ('Sorceror', 'Wizard', )
|
|
|
|
|
|
class Shield(Spell):
|
|
"""An invisible barrier of magical force appears and protects
|
|
you. Until the start of your next turn, you have a +5 bonus to AC,
|
|
including against the triggering attack, and you take no damage
|
|
from magic missile.
|
|
|
|
"""
|
|
name = "Shield"
|
|
level = 1
|
|
casting_time = "1 reaction"
|
|
casting_range = "Self"
|
|
components = ("V", "S", )
|
|
duration = "1 round"
|
|
magic_school = "Abjuration"
|
|
classes = ('Sorceror', 'Wizard', )
|
|
|
|
|
|
class ShockingGrasp(Spell):
|
|
"""Lightning springs from your hand to deliver a shock to a creature
|
|
you try to touch. Make a melee spell attack against the
|
|
target. You have advantage on the attack roll if the target is
|
|
wearing armor made of metal. On a hit, the target takes 1d8
|
|
lightning damage, and it can't take reactions until the start of
|
|
its next turn.
|
|
|
|
The spell's damage increases by 1d8 when you reach 5th level
|
|
(2d8), 11th level (3d8), and 17th level (4d8).
|
|
|
|
"""
|
|
name = "Shocking Grasp"
|
|
level = 0
|
|
casting_time = "1 action"
|
|
casting_range = "Touch"
|
|
components = ("V", "S", )
|
|
duration = "Instantaneous"
|
|
magic_school = "Evocation"
|
|
classes = ('Sorceror', 'Wizard', )
|
|
|
|
|
|
class Sleep(Spell):
|
|
"""This spell sends creatures into a magical slumber. Roll 5d8, the
|
|
total is how many hit points of creatures this spell can
|
|
affect. Creatures within 20 feet of a point you choose within
|
|
range are affected in ascending order of their current hit points
|
|
(ignoring unconscious creatures).
|
|
|
|
Starting with the creature that has the lowest current hit points,
|
|
each creature affected by this spell falls unconscious until the
|
|
spell ends, the sleeper takes damage, or someone uses an action to
|
|
shake or slap the sleeper awake. Subtract each creature's hit
|
|
points from the total before moving on to the creature with the
|
|
next lowest hit points. A creature's hit points must be equal to
|
|
or less than the remaining total for that creature to be affected.
|
|
|
|
Undead and creatures immune to being charmed aren't affected by
|
|
this spell.
|
|
|
|
At Higher Levels: When you cast this spell using a spell slot of
|
|
2nd level or higher, roll an additional 2d8 for each slot level
|
|
above 1st.
|
|
|
|
"""
|
|
name = "Sleep"
|
|
level = 1
|
|
casting_time = "1 action"
|
|
casting_range = "90 feet"
|
|
components = ("V", "S", "M", )
|
|
materials = "A pinch of fine sand, rose petals, or a cricket"
|
|
duration = "1 minutes"
|
|
magic_school = "Enchantment"
|
|
classes = ('Bard', 'Sorceror', 'Wizard', )
|