Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
"""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
"""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
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]}
_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
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]}
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
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]}
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
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.
"""
"""
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.