How to use the dungeonsheets.spells.spells.Spell function in dungeonsheets

To help you get started, we’ve selected a few dungeonsheets examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github canismarko / dungeon-sheets / dungeonsheets / spells / spells_l.py View on Github external
hostile creature, that creature must succeed on a Dexterity saving throw to
    avoid the spell.
    """
    name = "Light"
    level = 0
    casting_time = "1 action"
    casting_range = "Touch"
    components = ('V', 'M')
    materials = """A firefly or phosphorescent moss"""
    duration = "1 hour"
    ritual = False
    magic_school = "Evocation"
    classes = ('Bard', 'Cleric', 'Sorcerer', 'Wizard')


class LightningArrow(Spell):
    """The next time you make a ranged weapon attack during the spell's duration, the
    weapon's ammunition, or the weapon itself if it's a thrown weapon, transforms
    into a bolt of lightning. Make the attack roll as normal, The target takes 4d8
    lightning damage on a hit, or half as much damage on a miss, instead of the
    weapon's normal damage.

    Whether you hit or miss, each creature within 10 feet
    of the target must make a Dexterity saving throw. Each of these creatures takes
    2d8 lightning damage on a failed save, or half as much damage on a successful
    one.

    The piece of ammunition or weapon then returns to its normal form.

    At
    Higher Levels: When you cast this spell using a spell slot of 4th level or
    higher, the damage for both effects of the spell increases by 1d8 for each slot
github canismarko / dungeon-sheets / dungeonsheets / spells / unsorted_spells.py View on Github external
shut. The object you create can have up to two hinges and a latch, but finer 
    mechanical detail isn’t possible.
    """
    name = "Stone Shape"
    level = 4
    casting_time = "1 action"
    casting_range = "Touch"
    components = ('V', 's', 'm')
    materials = """Soft clay, which must be worked into roughly the desired shape of the stone object"""
    duration = "Instantaneous"
    ritual = False
    magic_school = "Transmutation"
    classes = ('Cleric', 'Druid', 'Wizard')


class Stoneskin(Spell):
    """This spell turns the flesh of a willing creature you touch as hard as stone. 
    Until the spell ends, the target has resistance to nonmagical bludgeoning, 
    piercing, and slashing damage.
    """
    name = "Stoneskin"
    level = 4
    casting_time = "1 action"
    casting_range = "Touch"
    components = ('V', 's', 'm')
    materials = """Diamond dust worth 100 gp, which the spell consumes"""
    duration = "Concentration, up to 1 hour"
    ritual = False
    magic_school = "Abjuration"
    classes = ('Druid', 'Ranger', 'Sorcerer', 'Wizard')

github canismarko / dungeon-sheets / dungeonsheets / spells / spells_t.py View on Github external
doors hidden by magic, and can see into the Ethereal Plane, all out to a range
    of 120 feet.
    """
    name = "True Seeing"
    level = 6
    casting_time = "1 action"
    casting_range = "Touch"
    components = ('V', 'S', 'M')
    materials = """An ointment for the eyes that costs 25 gp; is made from mushroom powder, saffron, and fat; and is consumed by the spell"""
    duration = "1 hour"
    ritual = False
    magic_school = "Divination"
    classes = ('Bard', 'Cleric', 'Sorcerer', 'Warlock', 'Wizard')


class TrueStrike(Spell):
    """You extend your hand and point a finger at a target in range. Your magic grants
    you a brief insight into the target's defenses. On your next turn, you gain
    advantage on your first attack roll against the target, provided that this spell
     hasn't ended.
    """
    name = "True Strike"
    level = 0
    casting_time = "1 action"
    casting_range = "30 feet"
    components = ('S',)
    materials = """"""
    duration = "Concentration, up to 1 round"
    ritual = False
    magic_school = "Divination"
    classes = ('Bard', 'Sorcerer', 'Warlock', 'Wizard')
github canismarko / dungeon-sheets / dungeonsheets / spells / spells_w.py View on Github external
cast wish ever again if you suffer this stress.

    """
    name = "Wish"
    level = 9
    casting_time = "1 action"
    casting_range = "Self"
    components = ('V',)
    materials = """"""
    duration = "Instantaneous"
    ritual = False
    magic_school = "Conjuration"
    classes = ('Sorcerer', 'Wizard')


class WitchBolt(Spell):
    """A beam of crackling, blue energy lances out toward a creature within range,
    forming a sustained arc of lightning between you and the target.

    Make a ranged spell attack against that creature. On a hit, the
    target takes 1d12 lightning damage, and on each of your turns for
    the duration, you can use your action to deal 1d12 lightning
    damage to the target automatically. The spell ends if you use your
    action to do anything else. The spell also ends if the target is
    ever outside the spell's range or if it has total cover from you.

    **At Higher Levels:** When you cast this spell using a spell slot
    of 2nd level or higher, the initial damage increases by 1d12 for
    each slot level above 1st.

    """
    name = "Witch Bolt"
github canismarko / dungeon-sheets / dungeonsheets / spells / spells_w.py View on Github external
If you target a creature submerged in a liquid, the spell carries the target to
    the surface of the liquid at a rate of 60 feet per round.
    """
    name = "Water Walk"
    level = 3
    casting_time = "1 action"
    casting_range = "30 feet"
    components = ('V', 'S', 'M')
    materials = """A piece of cork"""
    duration = "1 hour"
    ritual = True
    magic_school = "Transmutation"
    classes = ('Cleric', 'Druid', 'Ranger', 'Sorcerer')


class WaterySphere(Spell):
    """You conjure up a sphere of water with a 5-foot radius on a point
    you can see within range. The sphere can hover in the air, but no
    more than 10 feet off the ground. The sphere remains for the
    spell's duration.

    Any creature in the sphere's space must make a Strength saving
    throw. On a successful save, a creature is ejected from that space
    to the nearest unoccupied space outside it.  A Huge or larger
    creature succeeds on the saving throw automatically. On a failed
    save, a creature is restrained by the sphere and is engulfed by
    the water. At the end of each of its turns, a restrained target
    can repeat the saving throw.

    The sphere can restrain a maximum of four Medium or smaller
    creatures or one Large creature. If the sphere restrains a
    creature in excess of these numbers, a random creature that was
github canismarko / dungeon-sheets / dungeonsheets / spells / spells_d.py View on Github external
For the
     duration, that creature has darkvision out to a range of 60 feet.
    """
    name = "Darkvision"
    level = 2
    casting_time = "1 action"
    casting_range = "Touch"
    components = ('V', 'S', 'M')
    materials = """Either a pinch of dried carrot or an agate"""
    duration = "8 hours"
    ritual = False
    magic_school = "Transmutation"
    classes = ('Sorcerer', 'Wizard', 'Druid', 'Ranger')


class Dawn(Spell):
    """The light of dawn shines down on a location you specify within range. Until the
    spell ends, a 30-foot-radius.40-foot-high cylinder of bright light glimmers
    there. This light is sunlight. When the cylinder appears, each creature in it
    must make a Constitution saving throw, taking 4d10 radiant damage on a failed
    save, or half as much damage on a successful one. A creature must also make this
     saving throw whenever it ends its turn in the cylinder. If you're within 60
    feet of the cylinder, you can move it up to 60 feet as a bonus action on your
    turn.
    """
    name = "Dawn"
    level = 5
    casting_time = "1 action"
    casting_range = "60 feet"
    components = ('V', 'S', 'M')
    materials = """A sunburst pendant worth at least 100 gp"""
    duration = "Concentration, up to 1 minute"
github canismarko / dungeon-sheets / dungeonsheets / spells / spells_d.py View on Github external
Dispel magic or a similar
    effect successfully applied to the sapphire ends this spell's effect.
    """
    name = "Drawmijs Instant Summons"
    level = 6
    casting_time = "1 minute"
    casting_range = "Touch"
    components = ('V', 'S', 'M')
    materials = """A sapphire worth 1,000 gp"""
    duration = "Until dispelled"
    ritual = True
    magic_school = "Conjuration"
    classes = ('Wizard',)


class Dream(Spell):
    """This spell shapes a creature's dreams. Choose a creature known to you
    as the target of this spell. The target must be on the same plane of
    existence as you. Creatures that don't sleep, such as elves, can't be
    contacted by this spell. You, or a willing creature you touch, enters
    a trance state, acting as a messenger. While in the trance, the
    messenger is aware of his or her surroundings, but can't take actions
    or move.

    If the target is asleep, the messenger appears in the
    target's dreams and can converse with the target as long as it remains
     asleep, through the duration of the spell. The messenger can also
    shape the environment of the dream, creating landscapes, objects, and
    other images. The messenger can emerge from the trance at any time,
    ending the effect of the spell early. The target recalls the dream
    perfectly upon waking. If the target is awake when you cast the spell,
     the messenger knows it, and can either end the trance (and the spell)
github canismarko / dungeon-sheets / dungeonsheets / spells / spells_d.py View on Github external
most barriers, but it 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 Evil And Good"
    level = 1
    casting_time = "1 action"
    casting_range = "Self"
    components = ('V', 'S')
    materials = """"""
    duration = "Concentration, up to 10 minutes"
    ritual = False
    magic_school = "Divination"
    classes = ('Cleric', 'Paladin')


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"
    components = ('V', 'S')
    materials = """"""
    duration = "Concentration, up to 10 minutes"
github canismarko / dungeon-sheets / dungeonsheets / spells / spells_e_i.py View on Github external
from .spells import Spell


class Earthquake(Spell):
    """You create a seismic disturbance at a point on the ground that you
    can see within range. For the duration, an intense tremor rips
    through the ground in a 100-foot-radius circle centered on that
    point and shakes creatures and structures in contact with the
    ground in that area. The ground in the area becomes difficult
    terrain. Each creature on the ground that is concentrating must
    make a Constitution saving throw. On a failed save, the creature’s
    concentration is broken. When you cast this spell and at the end
    of each turn you spend concentrating on it, each creature on the
    ground in the area must make a Dexterity saving throw. On a failed
    save, the creature is knocked prone. This spell can have
    additional effects depending on the terrain in the area, as
    determined by the DM. Fissures. Fissures open throughout the
    spell’s area at the start of your next turn after you cast the
    spell. A total of 1d6 such fissures open in locations chosen by
    the DM. Each is 1d10 × 10 feet deep, 10 feet wide, and extends
github canismarko / dungeon-sheets / dungeonsheets / spells / spells_e_i.py View on Github external
special component to create only one prison at a time. If you cast
    the spell again using the same component, the target of the first
    casting is immediately freed from its binding.
    
    """
    name = "Imprisonment"
    level = 9
    casting_time = "1 minute"
    components = ('V', 'S', 'M')
    materials = "a vellum depiction or a carved statuette in the likeness of the target, and a special component that varies according to the version of the spell you choose, worth at least 500 gp per Hit Die of the target"
    duration = "Until dispelled"
    magic_school = "Abjuration"
    classes = ()


class InflictWounds(Spell):
    """Make a melee spell attack against a creature you can reach. On a
    hit, the target takes 3d10 necrotic damage. At Higher Levels. When
    you cast this spell using a spell slot of 2nd level or higher, the
    damage increases by 1d10 for each slot level above 1st.
    
    """
    name = "Inflict Wounds"
    level = 1
    casting_time = "1 action"
    components = ('V', 'S')
    materials = ""
    duration = "Instantaneous"
    magic_school = "Necromancy"
    classes = ()