How to use the dungeonsheets.spells 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 / classes / cleric.py View on Github external
"""Gods whose portfolios include the Tempest domain - including Talos,
    Umberlee, Kord, Zeboim, the Devourer, Zeus, and Thor - govern storms, sea,
    and sky. They include gods of lightning and thunder, gods of earthquakes,
    some fire gods, and certain gods of violence, physical strength, and
    courage. In some pantheons, a god of this domain rules over other deities
    and is known for swift justice delivered by thunderbolts. In the pantheons
    of seafaring people, gods of this domain are ocean deities and the patrons
    of sailors. Tempest gods send their clerics to inspire fear in the common
    folk, either to keep those folk on the path of righteousness or to
    encourage them to offer sacrifices of propitiation to ward off divine
    wrath.

    """
    name = "Tempest Domain"
    _domain_spells = {1: [spells.FogCloud, spells.Thunderwave],
                      3: [spells.GustOfWind, spells.Shatter],
                      5: [spells.CallLightning, spells.SleetStorm],
                      7: [spells.ControlWater, spells.IceStorm],
                      9: [spells.DestructiveWave, spells.InsectPlague]}
    weapon_proficiencies = (weapons.MartialWeapon,)
    _proficiencies_text = ('martial weapons', 'heavy armor')
    features_by_level = defaultdict(list)
    features_by_level[1] = [features.WrathOfTheStorm]
    features_by_level[2] = [features.DestructiveWrath]
    features_by_level[6] = [features.ThunderboltStrike]
    features_by_level[8] = [features.DivineStrikeTempest]
    features_by_level[17] = [features.Stormborn]


class TrickeryDomain(ClericDomain):
    """Gods of trickery-such as Tymora, Beshaba, Olidammara, the Traveler, Garl
    Glittergold, and Loki-are mischief-makers and instigators who stand as a
github canismarko / dungeon-sheets / dungeonsheets / classes / cleric.py View on Github external
"""The gods of the forge are patrons of artisans who work with metal, from a
    humble blacksmith who keeps a village in horseshoes and plow blades to the
    mighty elf artisan whose diamond-tipped arrows of mithral have felled demon
    lords. The gods of the forge teach that, with patience and hard work, even
    the most intractable metal can be transformed from a lump of ore to
    a beautifully wrought object. Clerics of these deities search for objects
    lost to the forces of darkness, liberate mines overrun by ores, and uncover
    rare and wondrous materials necessary to create potent magic items.
    Followers of these gods take great pride in their work, and they are willing
    to craft and use heavy armor and powerful weapons to protect them. Deities
    of this domain include Gond, Reorx, Onatar, Moradin, Hephaestus, and
    Goibhniu.

    """
    name = "Forge Domain"
    _domain_spells = {1: [spells.Identify, spells.SearingSmite],
                      3: [spells.HeatMetal, spells.MagicWeapon],
                      5: [spells.ElementalWeapon, spells.ProtectionFromEnergy],
                      7: [spells.Fabricate, spells.WallOfFire],
                      9: [spells.AnimateObjects, spells.Creation]}
    _proficiencies_text = ('heavy armor', "smith's tools")
    features_by_level = defaultdict(list)
    features_by_level[1] = [features.BlessingOfTheForge]
    features_by_level[2] = [features.ArtisansBlessing]
    features_by_level[6] = [features.SoulOfTheForge]
    features_by_level[8] = [features.DivineStrikeForge]
    features_by_level[17] = [features.SaintOfForgeAndFire]


class GraveDomain(ClericDomain):
    """Gods of the grave watch over the line between life and death. To these
    deities, death and the afterlife are a foundational part of the
github canismarko / dungeon-sheets / dungeonsheets / features / druid.py View on Github external
5: [spells.WaterBreathing, spells.WaterWalk],
               7: [spells.ControlWater, spells.FreedomOfMovement],
               9: [spells.ConjureElemental, spells.Scrying]}


class DesertSpells(_CircleSpells):
    """Your mystical connection to the land infuses you with the ability to cast
    certain spells.

    These spells are included in your Spell Sheet

    """
    _name = 'Desert'
    _spells = {3: [spells.Blur, spells.Silence],
               5: [spells.CreateFoodAndWater, spells.ProtectionFromEnergy],
               7: [spells.Blight, spells.HallucinatoryTerrain],
               9: [spells.InsectPlague, spells.WallOfStone]}


class ForestSpells(_CircleSpells):
    """Your mystical connection to the land infuses you with the ability to cast
    certain spells.

    These spells are included in your Spell Sheet

    """
    _name = 'Forest'
    _spells = {3: [spells.Barkskin, spells.SpiderClimb],
               5: [spells.CallLightning, spells.PlantGrowth],
               7: [spells.Divination, spells.FreedomOfMovement],
               9: [spells.CommuneWithNature, spells.TreeStride]}
github canismarko / dungeon-sheets / dungeonsheets / features / druid.py View on Github external
_spells = {3: [spells.SpiderClimb, spells.Web],
               5: [spells.GaseousForm, spells.StinkingCloud],
               7: [spells.GreaterInvisibility, spells.StoneShape],
               9: [spells.Cloudkill, spells.InsectPlague]}


class SporesSpells(_CircleSpells):
    """Your symbiotic link do fungus and your ability to tap into the cycle of
    life and death grants you access to certain spells.

    These spells are included in your Spell Sheet.

    """

    _name = 'Spores'
    _spells = {2: [spells.ChillTouch],
               3: [spells.BlindnessDeafness, spells.GentleRepose],
               5: [spells.AnimateDead, spells.GaseousForm],
               7: [spells.Blight, spells.Confusion],
               9: [spells.Cloudkill, spells.Contagion]}


class CircleSpells(FeatureSelector, _CircleSpells):
    """
    Select a land where you became a druid in feature_choices in your .py file:

    arctic

    coast

    desert
github canismarko / dungeon-sheets / dungeonsheets / features / druid.py View on Github external
if level >= lvl:
                    self.spells_known.extend(sps)
                    self.spells_prepared.extend(sps)
        super().__init__(owner=owner)


class ArcticSpells(_CircleSpells):
    """Your mystical connection to the land infuses you with the ability to cast
    certain spells.

    These spells are included in your Spell Sheet

    """
    _name = 'Arctic'
    _spells = {3: [spells.HoldPerson, spells.SpikeGrowth],
               5: [spells.SleetStorm, spells.Slow],
               7: [spells.FreedomOfMovement, spells.IceStorm],
               9: [spells.CommuneWithNature, spells.ConeOfCold]}


class CoastSpells(_CircleSpells):
    """Your mystical connection to the land infuses you with the ability to cast
    certain spells.

    These spells are included in your Spell Sheet

    """
    _name = 'Coast'
    _spells = {3: [spells.MirrorImage, spells.MistyStep],
               5: [spells.WaterBreathing, spells.WaterWalk],
               7: [spells.ControlWater, spells.FreedomOfMovement],
               9: [spells.ConjureElemental, spells.Scrying]}
github canismarko / dungeon-sheets / dungeonsheets / features / cleric.py View on Github external
name = "Saint of Forge and Fire"
    source = "Cleric (Forge Domain)"


# Grave Domain
class CircleOfMortality(Feature):
    """At 1st level, you gain the ability to manipulate the line between life and
    death. When you would normally roll one or more dice to restore hit points
    with a spell to a creature at 0 hit points, you instead use the highest
    number possible for each die. In addition, you learn the spare the dying
    cantrip, which doesn't count against the number of cleric cantrips you
    know. For you, it has a range of 30 feet, and you can cast it as a bonus
    action

    """
    spells_known = (spells.SpareTheDying,)
    spells_prepared = (spells.SpareTheDying,)
    name = "Circle of Mortality"
    source = "Cleric (Grave Domain)"


class EyesOfTheGrave(Feature):
    """At lst level, you gain the ability to occasionally sense the presence of the
    undead, whose existence is an insult to the natural cycle of life. As an
    action, you can open your awareness to magically detect undead. Until the
    end ofyour next turn, you know the location of any undead within 60 feet of
    you that isn't behind total cover and that isn't protected from divination
    magic.

    This sense doesn't tell you anything about a creature's capabilities or
    identity. You can use this feature a number of times equal to your Wisdom
    modifier (minimum Of once). You regain all expended uses when you finish a
github canismarko / dungeon-sheets / dungeonsheets / features / druid.py View on Github external
5: [spells.SleetStorm, spells.Slow],
               7: [spells.FreedomOfMovement, spells.IceStorm],
               9: [spells.CommuneWithNature, spells.ConeOfCold]}


class CoastSpells(_CircleSpells):
    """Your mystical connection to the land infuses you with the ability to cast
    certain spells.

    These spells are included in your Spell Sheet

    """
    _name = 'Coast'
    _spells = {3: [spells.MirrorImage, spells.MistyStep],
               5: [spells.WaterBreathing, spells.WaterWalk],
               7: [spells.ControlWater, spells.FreedomOfMovement],
               9: [spells.ConjureElemental, spells.Scrying]}


class DesertSpells(_CircleSpells):
    """Your mystical connection to the land infuses you with the ability to cast
    certain spells.

    These spells are included in your Spell Sheet

    """
    _name = 'Desert'
    _spells = {3: [spells.Blur, spells.Silence],
               5: [spells.CreateFoodAndWater, spells.ProtectionFromEnergy],
               7: [spells.Blight, spells.HallucinatoryTerrain],
               9: [spells.InsectPlague, spells.WallOfStone]}
github canismarko / dungeon-sheets / dungeonsheets / classes / paladin.py View on Github external
flourishes, stand against the forces that would render it barren.

    --Preserve Your Own Light. Delight in song and laughter, in beauty and
    art. If you allow the light to die in your own heart, you can't preserve it
    in the world.

    --Be the Light. Be a glorious beacon for all who live in despair. Let the
    light of your joy and courage shine forth in all your deeds.

    """
    name = "Oath of The Ancients"
    _oath_spells = {3: [spells.EnsnaringStrike, spells.SpeakWithAnimals],
                    5: [spells.Moonbeam, spells.MistyStep],
                    9: [spells.PlantGrowth, spells.ProtectionFromEnergy],
                    13: [spells.IceStorm, spells.Stoneskin],
                    17: [spells.CommuneWithNature, spells.TreeStride]}
    features_by_level = defaultdict(list)


class OathOfVengance(PaladinOath):
    """The Oath of Vengeance is a solemn commitment to punish those who have
    committed a grievous sin. When evil forces slaughter helpless villagers,
    when an entire people turns against the will of the gods, when a thieves'
    guild grows too violent and powerful, when a dragon rampages through the
    countryside - at times like these, paladins arise and swear an Oath of
    Vengeance to set right that which has gone wrong. To these paladins -
    sometimes called avengers or dark knights - their own purity is not as
    important as delivering justice.

    **Tenets of Vengance**: The tenets of the Oath of Vengeance vary by
    paladin, but all the tenets revolve around punishing wrongdoers by any
    means necessary. Paladins who uphold these tenets are willing to sacrifice
github canismarko / dungeon-sheets / dungeonsheets / features / druid.py View on Github external
transform into an air elemental, an earth elemental, a fire elemental, or a
    water elemental.

    """
    name = "Elemental Wild Shape"
    source = "Druid (Circle of the Moon)"


class ThousandForms(Feature):
    """By 14th level, you have learned to use magic to alter your physical form in
    more subtle ways. You can cast the alter self spell at will.

    """
    name = "Thousand Forms"
    source = "Druid (Circle of the Moon)"
    spells_known = (spells.AlterSelf,)
    spells_prepared = (spells.AlterSelf,)


# Circle of Dreams
class BalmOfTheSummerCourt(Feature):
    """At 2nd level, you become imbued with the blessings of the Summer Court. You
    are a font of energy that offers respite from injuries. You have a pool of
    fey energy represented by a number of C168 equal to your druid level. As
    a bonus action, you can choose one creature you can see within 120 feet
    ofyou and spend a number of those dice equal to halfyour druid level or
    less. Roll the spent dice and add them together. The target regains a
    number of hit points equal to the total. The target also gains 1 temporary
    hit point per die spent. You regain all expended dice when you finish a
    long rest.

    """
github canismarko / dungeon-sheets / dungeonsheets / features / races.py View on Github external
"""
    name = "Hellish Resistance"
    source = "Race (Tiefling)"


class InfernalLegacy(Feature):
    """You know the thaumaturgy cantrip.  Once you reach 3rd level, you can cast
    the hellish rebuke spell once per day as a 2nd-level spell. Once you reach
    5th level, you can also cast the darkness spell once per day. Charisma is
    your spellcasting ability for these spells.

    """
    name = "Infernal Legacy"
    source = "Race (Tiefling)"
    spells_known = spells_prepared = (spells.Thaumaturgy,)


# Aasimar
class CelestialResistance(Feature):
    """
    You have resistance to necrotic damage and radiant damage.

    """
    name = "Celestial Resistance"
    source = "Race (Aasimar)"


class HealingHands(Feature):
    """As an action, you can touch a creature and cause it to regain a number of
    hit points equal to your level. Once you use this trait, you can't use it
    again until you finish a long rest.