From 2aa5afd538d812e8cadcfff66ac86ab4f6e302a1 Mon Sep 17 00:00:00 2001 From: Mark Wolfman Date: Thu, 8 Apr 2021 13:36:58 -0500 Subject: [PATCH] Fixed some docstrings for spells and features. --- dungeonsheets/classes/paladin.py | 63 +- dungeonsheets/features/artificer.py | 524 ++++++------ dungeonsheets/features/barbarian.py | 126 ++- dungeonsheets/features/bard.py | 74 +- dungeonsheets/features/cleric.py | 66 +- dungeonsheets/features/druid.py | 232 ++--- dungeonsheets/features/feats.py | 1233 +++++++++++++-------------- dungeonsheets/features/features.py | 66 +- dungeonsheets/features/fighter.py | 108 +-- dungeonsheets/features/monk.py | 550 ++++++------ dungeonsheets/features/paladin.py | 20 +- dungeonsheets/features/races.py | 16 +- dungeonsheets/features/ranger.py | 114 +-- dungeonsheets/features/rogue.py | 12 +- dungeonsheets/features/sorceror.py | 43 +- dungeonsheets/features/warlock.py | 98 ++- dungeonsheets/features/wizard.py | 55 +- dungeonsheets/spells/spells_a.py | 182 ++-- dungeonsheets/spells/spells_b.py | 56 +- dungeonsheets/spells/spells_c.py | 238 +++--- dungeonsheets/spells/spells_d.py | 141 +-- dungeonsheets/spells/spells_e.py | 77 +- dungeonsheets/spells/spells_f.py | 120 +-- dungeonsheets/spells/spells_g.py | 48 +- dungeonsheets/spells/spells_h.py | 74 +- dungeonsheets/spells/spells_i.py | 72 +- dungeonsheets/spells/spells_k.py | 6 +- dungeonsheets/spells/spells_l.py | 30 +- dungeonsheets/spells/spells_m.py | 164 ++-- dungeonsheets/spells/spells_n.py | 6 +- dungeonsheets/spells/spells_o.py | 8 +- dungeonsheets/spells/spells_p.py | 86 +- dungeonsheets/spells/spells_r.py | 42 +- dungeonsheets/spells/spells_s.py | 211 ++--- dungeonsheets/spells/spells_t.py | 250 +++--- dungeonsheets/spells/spells_u.py | 2 +- dungeonsheets/spells/spells_v.py | 16 +- dungeonsheets/spells/spells_w.py | 65 +- dungeonsheets/spells/spells_z.py | 6 +- 39 files changed, 2643 insertions(+), 2657 deletions(-) diff --git a/dungeonsheets/classes/paladin.py b/dungeonsheets/classes/paladin.py index e4750f4..649d326 100644 --- a/dungeonsheets/classes/paladin.py +++ b/dungeonsheets/classes/paladin.py @@ -189,36 +189,39 @@ class OathOfCrown(PaladinOath): class OathOfConquest(PaladinOath): - """The Oath of Conquest calls to paladins who seek glory in battle and the - subjugation of their enemies. It isn't enough for these paladins to - establish order. They must crush the forces of chaos. Sometimes called - knight ty- rants or iron mongers, those who swear this oath gather into - grim orders that serve gods or philosophies of war and well-ordered might. - - Some of these paladins go so far as to consort with the powers of the Nine - Hells, valuing the rule of law over the balm of mercy. The archdevil Bel, - warlord of Avernus, counts many of these paladins-called hell knights-as - his most ardent supporters. Hell knights cover their armor with trophies - taken from fallen en- emies, a grim~warning to any who dare oppose them and - the decrees of their lords. These knights are often most fiercely resisted - by other paladins of this oath, who believe that the hell knights have - wandered too far into darkness. - - **Tenets of Conquest**: A paladin who takes this oath has the tenets of - conquest seared on the upper arm. - - --Douse the Flame of Hope. It is not enough - to merely defeat an enemy in battle. Your victory must be so over- whelming - that your enemies' will to fight is shattered forever. A blade can end a - life. Fear can end an empire. - - --Rule with an Iron Fist. Once you have conquered, tolerate no - dissent. Your word is law. Those who obey it shall be favored. Those who - defy it shall be punished as an example to all who might follow. - - --Strength Above All. You shall rule until a stronger one arises. Then you - must grow mightier and meet the challenge, or fall to your own ruin. - + """The Oath of Conquest calls to paladins who seek glory in battle and + the subjugation of their enemies. It isn't enough for these + paladins to establish order. They must crush the forces of + chaos. Sometimes called knight tyrants or iron mongers, those + who swear this oath gather into grim orders that serve gods or + philosophies of war and well-ordered might. + + Some of these paladins go so far as to consort with the powers of + the Nine Hells, valuing the rule of law over the balm of + mercy. The archdevil Bel, warlord of Avernus, counts many of these + paladins--called hell knights--as his most ardent supporters. Hell + knights cover their armor with trophies taken from fallen en- + emies, a grim warning to any who dare oppose them and the decrees + of their lords. These knights are often most fiercely resisted by + other paladins of this oath, who believe that the hell knights + have wandered too far into darkness. + + **Tenets of Conquest:** A paladin who takes this oath has the + tenets of conquest seared on the upper arm. + + Douse the Flame of Hope. + It is not enough to merely defeat an enemy in battle. Your + victory must be so overwhelming that your enemies' will to + fight is shattered forever. A blade can end a life. Fear can end + an empire. + Rule with an Iron Fist. + Once you have conquered, tolerate no dissent. Your word is + law. Those who obey it shall be favored. Those who defy it shall + be punished as an example to all who might follow. + Strength Above All. + You shall rule until a stronger one arises. Then you must grow + mightier and meet the challenge, or fall to your own ruin. + """ name = "Oath of Conquest" _oath_spells = {3: [spells.ArmorOfAgathys, spells.Command], diff --git a/dungeonsheets/features/artificer.py b/dungeonsheets/features/artificer.py index b08b49d..e61a9a1 100644 --- a/dungeonsheets/features/artificer.py +++ b/dungeonsheets/features/artificer.py @@ -11,27 +11,27 @@ class _SpecialistSpells(Feature): _name = "Select One" source = "Artificer" _spells = { - 3: [], - 5: [], - 9: [], - 13: [], - 17: [] - } + 3: [], + 5: [], + 9: [], + 13: [], + 17: [] + } spells_known = [] spells_prepared = [] @property def name(self): - return "{:s} Spells".format(self._name) + return "{:s} Spells".format(self._name) def __init__(self, owner=None): - if owner is not None: - level = owner.Artificer.level - for lvl, spl in self._spells.items(): - if level >= lvl: - self.spells_known.extend(spl) - self.spells_prepared.extend(spl) - super().__init__(owner=owner) + if owner is not None: + level = owner.Artificer.level + for lvl, spl in self._spells.items(): + if level >= lvl: + self.spells_known.extend(spl) + self.spells_prepared.extend(spl) + super().__init__(owner=owner) # Alchemist @@ -52,7 +52,6 @@ class ArtificerSpellcasting(Feature): After you gain the Infuse Item feature at 2nd level, you can also use any item bearing one of your infusions as a spellcasting focus. """ - name = "Spellcasting" source = "Artificer" @@ -61,7 +60,6 @@ class ArtificerRitualCasting(Feature): """You can cast an artificer spell as a ritual if that spell has the ritual tag and you have the spell prepared. """ - name = "Ritual Casting" source = "Artificer" @@ -73,41 +71,40 @@ class FirearmProficiency(Feature): your artificer has been exposed to the operation of such weapons, your artificer is proficient with them. """ - name = "Optional Rule: Firearm Proficiency" source = "Artificer" class MagicalTinkering(Feature): """At 1st level, you learn how to invest a spark of magic into mundane - objects. To use this ability, you must have tinker's tools or other - artisan's tools in hand. You then touch a Tiny nonmagical object as an - action and give it one of the following magical properties of your choice: + objects. To use this ability, you must have tinker's tools or + other artisan's tools in hand. You then touch a Tiny nonmagical + object as an action and give it one of the following magical + properties of your choice: + + - The object sheds bright light in a 5-foot radius and dim light + for an additional 5 feet. + - Whenever tapped by a creature, the object emits a recorded + message that can be heard up to 10 feet away. You utter the + message when you bestow this property on the object, and the + recording can be no more than 6 seconds long. + - The object continuously emits your choice of an odor or a + nonverbal sound (wind, waves, chirping, or the like). The chosen + phenomenon is perceivable up to 10 feet away. + - A static visual effect appears on one of the object's + surfaces. This effect can be a picture, up to 25 words of text, + lines and shapes, or a mixture of these elements, as you + like. The chosen property lasts indefinitely. As an action, you + can touch the object and end the property early. You can bestow + magic on multiple objects, touching one object each time you use + this feature, though a single object can only bear one property + at a time. The maximum number of objects you can affect with + this feature at one time is equal to your Intelligence modifier + (minimum of one object). If you try to exceed your maximum, the + oldest property immediately ends, and then the new property + applies. - - The object sheds bright light in a 5-foot radius and dim light for an \ - additional 5 feet. - - - Whenever tapped by a creature, the object emits a recorded message that \ - can be heard up to 10 feet away. You utter the message when you bestow \ - this property on the object, and the recording can be no more than 6 \ - seconds long. - - - The object continuously emits your choice of an odor or a nonverbal sound \ - (wind, waves, chirping, or the like). The chosen phenomenon is \ - perceivable up to 10 feet away. - - - A static visual effect appears on one of the object's surfaces. This \ - effect can be a picture, up to 25 words of text, lines and shapes, or a \ - mixture of these elements, as you like. The chosen property lasts \ - indefinitely. As an action, you can touch the object and end the property \ - early. You can bestow magic on multiple objects, touching one object each \ - time you use this feature, though a single object can only bear one \ - property at a time. The maximum number of objects you can affect with \ - this feature at one time is equal to your Intelligence modifier (minimum \ - of one object). If you try to exceed your maximum, the oldest property \ - immediately ends, and then the new property applies. """ - name = "Magical Tinkering" source = "Artificer" @@ -116,67 +113,69 @@ class InfuseItem(Feature): """At 2nd level, you gain the ability to imbue mundane items with certain magical infusions. The magic items you create with this feature are effectively prototypes of permanent items. - - **Infusions known** - When you gain this feature, pick four artificer infusions - to learn, choosing from the "Artificer Infusions" section at the end of the - class's description. You learn additional infusions of your choice when you - reach certain levels in this class, as shown in the Infusions Known column - of the Artificer table. Whenever you gain a level in this class, you can - re­place one of the artificer infusions you learned with a new one. - - **Infusing an item** - Whenever you finish a long rest, you can touch a non­magical object and - imbue it with one of your artificer in­fusions, turning it into a magic - item. An infusion works on only certain kinds of objects, as specified in - the infusion's description. If the item requires attunement, you can - attune yourself to it the instant you infuse the item. If you decide to - attune to the item later, you must do so using the normal process for - attunement (see "Attunement" in chapter 7 of the Dungeon Master's Guide). - Your infusion remains in an item indefinitely, but when you die, the - infusion vanishes after a number of days have passed equal to your - Intelligence modifier (minimum of 1 day). The infusion also vanishes if you - give up your knowledge of the infusion for another one. You can infuse more - than one nonmagical object at the end of a long rest; the maximum number of - objects appears in the Infused Items column of the Artificer table. You - must touch each of the objects, and each of your infusions can be in only - one object at a time. Moreover, no object can bear more than one of your - infusions at a time. If you try to exceed your maximum number of - in­fusions, the oldest infusion immediately ends, and then the new - infusion applies. + + Infusions known + When you gain this feature, pick four artificer infusions to + learn, choosing from the "Artificer Infusions" section at the + end of the class's description. You learn additional infusions + of your choice when you reach certain levels in this class, as + shown in the Infusions Known column of the Artificer + table. Whenever you gain a level in this class, you can re­place + one of the artificer infusions you learned with a new one. + Infusing an item + Whenever you finish a long rest, you can touch a non­magical + object and imbue it with one of your artificer in­fusions, + turning it into a magic item. An infusion works on only certain + kinds of objects, as specified in the infusion's description. If + the item requires attunement, you can attune yourself to it the + instant you infuse the item. If you decide to attune to the item + later, you must do so using the normal process for attunement + (see "Attunement" in chapter 7 of the Dungeon Master's Guide). + Your infusion remains in an item indefinitely, but when you die, + the infusion vanishes after a number of days have passed equal + to your Intelligence modifier (minimum of 1 day). The infusion + also vanishes if you give up your knowledge of the infusion for + another one. You can infuse more than one nonmagical object at + the end of a long rest; the maximum number of objects appears in + the Infused Items column of the Artificer table. You must touch + each of the objects, and each of your infusions can be in only + one object at a time. Moreover, no object can bear more than one + of your infusions at a time. If you try to exceed your maximum + number of in­fusions, the oldest infusion immediately ends, and + then the new infusion applies. + """ - _name = "Infuse Item" source = "Artificer" _infusions = { - # level: (infusions known, infused items) - 2: (4, 2), - 3: (4, 2), - 4: (4, 2), - 5: (4, 2), - 6: (6, 3), - 7: (6, 3), - 8: (6, 3), - 9: (6, 3), - 10: (8, 4), - 11: (8, 4), - 12: (8, 4), - 13: (8, 4), - 14: (10, 5), - 15: (10, 5), - 16: (10, 5), - 17: (10, 5), - 18: (12, 6), - 19: (12, 6), - 20: (12, 6), - } + # level: (infusions known, infused items) + 2: (4, 2), + 3: (4, 2), + 4: (4, 2), + 5: (4, 2), + 6: (6, 3), + 7: (6, 3), + 8: (6, 3), + 9: (6, 3), + 10: (8, 4), + 11: (8, 4), + 12: (8, 4), + 13: (8, 4), + 14: (10, 5), + 15: (10, 5), + 16: (10, 5), + 17: (10, 5), + 18: (12, 6), + 19: (12, 6), + 20: (12, 6), + } @property def name(self): - known_infusions = self._infusions[self.owner.Artificer.level][0] - infused_items = self._infusions[self.owner.Artificer.level][1] - name_ext = " ({:d} Infusions Known, {:d} Infused Items)" - return self._name + name_ext.format(known_infusions, infused_items) + known_infusions = self._infusions[self.owner.Artificer.level][0] + infused_items = self._infusions[self.owner.Artificer.level][1] + name_ext = " ({:d} Infusions Known, {:d} Infused Items)" + return self._name + name_ext.format(known_infusions, infused_items) class ArtificerSpecialist(Feature): @@ -185,7 +184,6 @@ class ArtificerSpecialist(Feature): class's description. Your choice grants you features at 5th level and again at 9th and 15th level. """ - name = "Artificer Specialist" source = "Artificer" @@ -198,7 +196,6 @@ class TheRightToolForTheJob(Feature): Though the product of magic, the tools are nonmagical, and they vanish when you use this feature again. """ - name = "The Right Tool For The Job" source = "Artificer" @@ -207,22 +204,22 @@ class ToolExpertise(Feature): """Starting at 6th level, your proficiency bonus is doubled for any ability check you make that uses your proficiency with a tool. """ - name = "Tool Expertise" source = "Artificer" class FlashOfGenius(Feature): - """Starting at 7th level, you gain the ability to come up with solutions - under pressure. When you or another creature you can see within 30 feet of - you makes an ability check or a saving throw, you can use your reaction to - add your Intelligence modifier to the roll. + """Starting at 7th level, you gain the ability to come up with + solutions under pressure. When you or another creature you can see + within 30 feet of you makes an ability check or a saving throw, + you can use your reaction to add your Intelligence modifier to the + roll. + + You can use this feature a number of times equal to your + Intelligence modifier (minimum of once). You regain all expended + uses when you finish a long rest. - You can use this feature a number of times equal to your Intelligence - modifier (minimum of once). You regain all expended uses when you finish a - long rest. """ - name = "Flash Of Genius" source = "Artificer" @@ -230,46 +227,45 @@ class FlashOfGenius(Feature): class MagicItemAdept(Feature): """When you reach 10th level, you achieve a profound understanding of how to use and make magic items: - + - You can attune to up to four magic items at once. - - - If you craft a magic item with a rarity of common or uncommon, it takes - you a quarter of the normal time, and it costs you half as much of the - usual gold. + - If you craft a magic item with a rarity of common or uncommon, + it takes you a quarter of the normal time, and it costs you half + as much of the usual gold. + """ - name = "Magic Item Adept" source = "Artificer" class SpellStoringItem(Feature): - """At 11th level, you learn how to store a spell in an object. Whenever you - finish a long rest, you can touch one simple or martial weapon or one item - that you can use as a spellcasting focus, and you store a spell in it, - choosing a 1st- or 2nd-level spell from the artificer spell list that - requires 1 action to cast (you needn't have it prepared). - - While holding the object, a creature can take an action to produce the - spell's effect from it, using your spellcasting ability modifier. If the - spell requires concentration, the creature must concentrate. The spell - stays in the object until it's been used a number of times equal to twice - your Intelligence modifier (minimum of twice) or until you use this fe - ature again to store a spell in an object. + """At 11th level, you learn how to store a spell in an + object. Whenever you finish a long rest, you can touch one simple + or martial weapon or one item that you can use as a spellcasting + focus, and you store a spell in it, choosing a 1st- or 2nd-level + spell from the artificer spell list that requires 1 action to cast + (you needn't have it prepared). + + While holding the object, a creature can take an action to produce + the spell's effect from it, using your spellcasting ability + modifier. If the spell requires concentration, the creature must + concentrate. The spell stays in the object until it's been used a + number of times equal to twice your Intelligence modifier (minimum + of twice) or until you use this fe ature again to store a spell in + an object. """ - name = "Spell-Storing Item" source = "Artificer" class MagicItemSavant(Feature): """At 14th level, your skill with magic items deepens more: - + - You can attune to up to five magic items at once. - - - You ignore all class, race, spell, and level requirements on attuning to - or using a magic item. + - You ignore all class, race, spell, and level requirements on + attuning to or using a magic item. + """ - name = "Magic Item Savant" source = "Artificer" @@ -278,7 +274,6 @@ class MagicItemMaster(Feature): """Starting at 18th level, you can attune to up to six magic items at once. """ - name = "Magic Item Master" source = "Artificer" @@ -286,15 +281,14 @@ class MagicItemMaster(Feature): class SoulOfArtifice(Feature): """At 20th level, you develop a mystical connection to your magic items, which you can draw on for protection: - + - You gain a +1 bonus to all saving throws per magic item you are currently attuned to. - - - If you're reduced to 0 hit points but not killed out­right, you can use - your reaction to end one of your artificer infusions, causing you to drop - to 1 hit point instead of 0. + - If you're reduced to 0 hit points but not killed out­right, you + can use your reaction to end one of your artificer infusions, + causing you to drop to 1 hit point instead of 0. + """ - name = "Soul of Artifice" source = "Artificer" @@ -305,7 +299,6 @@ class AlchemistToolProficiency(Feature): with alchemist's supplies. If you already have this proficiency, you gain proficiency with one other type of artisan's tools of your choice. """ - name = "Tool Proficiency" source = "Artificer (Alchemist)" @@ -316,15 +309,14 @@ class AlchemistSpells(_SpecialistSpells): table. These spells count as artificer spells for you, but they don't count against the number of artificer spells you prepare. """ - _name = "Alchemist" _spells = { - 3: [spells.HealingWord, spells.RayOfSickness], - 5: [spells.FlamingSphere, spells.MelfsAcidArrow], - 9: [spells.GaseousForm, spells.MassHealingWord], - 13: [spells.Blight, spells.DeathWard], - 17: [spells.Cloudkill, spells.RaiseDead] - } + 3: [spells.HealingWord, spells.RayOfSickness], + 5: [spells.FlamingSphere, spells.MelfsAcidArrow], + 9: [spells.GaseousForm, spells.MassHealingWord], + 13: [spells.Blight, spells.DeathWard], + 17: [spells.Cloudkill, spells.RaiseDead] + } class ExperimentalElixir(Feature): @@ -369,7 +361,6 @@ class ExperimentalElixir(Feature): alter self spell. The drinker determines the transformation caused by the spell, the effects of which last for 10 minutes. """ - name = "Experimental Elixir" source = "Artificer (Alchemist)" @@ -382,7 +373,6 @@ class AlchemicalSavant(Feature): be a damage roll that deals acid, fire, necrotic, or poison damage, and the bonus equals your Intelligence modifier (minimum of +1). """ - name = "Alchemical Savant" source = "Artificer (Alchemist)" @@ -392,16 +382,15 @@ class RestorativeReagents(Feature): restorative reagents into some of your works: - Whenever a creature drinks an experimental elixir you created, the - creature gains temporary hit points equal to 2d6 + your Intelligence - modifier (minimum of 1 temporary hit point). + creature gains temporary hit points equal to 2d6 + your Intelligence + modifier (minimum of 1 temporary hit point). - You can cast lesser restoration without expending a spell slot and - without preparing the spell, provided you use alchemist's supplies as the - spellcasting focus. You can do so a number of times equal to your - Intelligence modifier (minimum of once), and you regain all expended uses - when you finish a long rest. + without preparing the spell, provided you use alchemist's supplies as the + spellcasting focus. You can do so a number of times equal to your + Intelligence modifier (minimum of once), and you regain all expended uses + when you finish a long rest. """ - name = "Restorative Reagents" source = "Artificer (Alchemist)" @@ -412,15 +401,14 @@ class ChemicalMastery(Feature): ailments: - You gain resistance to acid damage and poison damage, and you are immune - to the poisoned condition. + to the poisoned condition. - You can cast greater restoration and heal without expending a spell - slot, without preparing the spell, and without material components, - provided you use alchemist's supplies as the spellcasting focus. Once - you cast either spell with this feature, you can't cast that spell with - it again until you finish a long rest. + slot, without preparing the spell, and without material components, + provided you use alchemist's supplies as the spellcasting focus. Once + you cast either spell with this feature, you can't cast that spell with + it again until you finish a long rest. """ - name = "Chemical Mastery" source = "Artificer (Alchemist)" @@ -432,15 +420,14 @@ class ArtilleristSpells(_SpecialistSpells): Spells table. These spells count as artificer spells for you, but they don't count against the number of artificer spells you prepare. """ - _name = "Artillerist" _spells = { - 3: [spells.Shield, spells.Thunderwave], - 5: [spells.ScorchingRay, spells.Shatter], - 9: [spells.Fireball, spells.WindWall], - 13: [spells.IceStorm, spells.WallOfFire], - 17: [spells.ConeOfCold, spells.WallOfForce] - } + 3: [spells.Shield, spells.Thunderwave], + 5: [spells.ScorchingRay, spells.Shatter], + 9: [spells.Fireball, spells.WindWall], + 13: [spells.IceStorm, spells.WallOfFire], + 17: [spells.ConeOfCold, spells.WallOfForce] + } class ArtilleristToolProficiency(Feature): @@ -448,7 +435,6 @@ class ArtilleristToolProficiency(Feature): with woodcarver's tools. If you already have this proficiency, you gain proficiency with one other type of artisan's tools of your choice. """ - name = "Tool Proficiency" source = "Artificer (Artillerist)" @@ -498,25 +484,25 @@ class EldritchCannon(Feature): number of temporary hit points equal to 1d8 + your Intelligence modifier (minimum of +1) """ - name = "Eldritch Cannon" source = "Artificer (Artillerist)" class ArcaneFirearm(Feature): - """At 5th level, you know how to turn a wand, staff, or rod into an arcane - firearm, a conduit for your destructive spells. When you finish a long - rest, you can use wood­carver's tools to carve special sigils into a wand, - staff, or rod and thereby turn it into your arcane firearm. The sigils - disappear from the object if you later carve them on a different item. The - sigils otherwise last indefinitely. - - You can use your arcane firearm as a spellcasting focus for your artificer - spells. When you cast an artificer spell through the firearm, roll a d8, - and you gain a bonus to one of the spell's damage rolls equal to the - number rolled. + """At 5th level, you know how to turn a wand, staff, or rod into an + arcane firearm, a conduit for your destructive spells. When you + finish a long rest, you can use wood­carver's tools to carve + special sigils into a wand, staff, or rod and thereby turn it into + your arcane firearm. The sigils disappear from the object if you + later carve them on a different item. The sigils otherwise last + indefinitely. + + You can use your arcane firearm as a spellcasting focus for your + artificer spells. When you cast an artificer spell through the + firearm, roll a d8, and you gain a bonus to one of the spell's + damage rolls equal to the number rolled. + """ - name = "Arcane Firearm" source = "Artificer (Artillerist)" @@ -524,16 +510,15 @@ class ArcaneFirearm(Feature): class ExplosiveCannon(Feature): """Starting at 9th level, every eldritch cannon you create is more destructive: - + - The cannon's damage rolls all increase by 1d8. - - - As an action, you can command the cannon to detonate if you are within 60 - feet of it. Doing so destroys the cannon and forces each creature within - 20 feet of it to make a Dexterity saving throw against your spell save - DC, taking 3d8 force damage on a failed save or half as much damage on a - successful one. + - As an action, you can command the cannon to detonate if you are + within 60 feet of it. Doing so destroys the cannon and forces + each creature within 20 feet of it to make a Dexterity saving + throw against your spell save DC, taking 3d8 force damage on a + failed save or half as much damage on a successful one. + """ - name = "Explosive Cannon" source = "Artificer (Artillerist)" @@ -541,46 +526,47 @@ class ExplosiveCannon(Feature): class FortifiedPosition(Feature): """Starting at 15th level, you're a master at forming well-defended emplacements using Eldritch Cannon: - - - You and your allies have half cover while within 10 feet of a cannon you - create with Eldritch Cannon, as a result of a shimmering field of magical - protection that the cannon emits. - - - You can now have two cannons at the same time. You can create two with - the same action (but not the same spell slot), and you can activate both - of them with the same bonus action. You determine whether the cannons are - identical to each other or different. You can't create a third cannon - while you have two. + + - You and your allies have half cover while within 10 feet of a + cannon you create with Eldritch Cannon, as a result of a + shimmering field of magical protection that the cannon emits. + - You can now have two cannons at the same time. You can create + two with the same action (but not the same spell slot), and you + can activate both of them with the same bonus action. You + determine whether the cannons are identical to each other or + different. You can't create a third cannon while you have two. + """ - name = "Fortified Position" source = "Artificer (Artillerist)" # Battle Smith class BattleSmithSpells(_SpecialistSpells): - """Starting at 3rd level, you always have certain spells prepared after you - reach particular levels in this class, as shown in the Battle Smith Spells - table. These spells count as artificer spells for you, but they don't count - against the number of artificer spells you prepare. + """Starting at 3rd level, you always have certain spells prepared + after you reach particular levels in this class, as shown in the + Battle Smith Spells table. These spells count as artificer spells + for you, but they don't count against the number of artificer + spells you prepare. + """ - _name = "Battle Smith" _spells = { - 3: [spells.Heroism, spells.Shield], - 5: [spells.BrandingSmite, spells.WardingBond], - 9: [spells.AuraOfVitality, spells.ConjureBarrage], - 13: [spells.AuraOfPurity, spells.FireShield], - 17: [spells.BanishingSmite, spells.MassCureWounds] - } + 3: [spells.Heroism, spells.Shield], + 5: [spells.BrandingSmite, spells.WardingBond], + 9: [spells.AuraOfVitality, spells.ConjureBarrage], + 13: [spells.AuraOfPurity, spells.FireShield], + 17: [spells.BanishingSmite, spells.MassCureWounds] + } class BattleSmithToolProficiency(Feature): - """When you adopt this specialization at 3rd level, you gain proficiency - with smith's tools. If you already have this proficiency, you gain - proficiency with one other type of artisan's tools of your choice. + """When you adopt this specialization at 3rd level, you gain + proficiency with smith's tools. If you already have this + proficiency, you gain proficiency with one other type of artisan's + tools of your choice. + """ - name = "Tool Proficiency" source = "Artificer (Battle Smith)" @@ -588,71 +574,72 @@ class BattleSmithToolProficiency(Feature): class BattleReady(Feature): """When you reach 3rd level, your combat training and your experiments with magic have paid off in two ways: - + - You gain proficiency with martial weapons. - - - When you attack with a magic weapon, you can use your Intelligence - modifier, instead of Strength or Dexterity modifier, for the attack and - damage rolls. + - When you attack with a magic weapon, you can use your + Intelligence modifier, instead of Strength or Dexterity + modifier, for the attack and damage rolls. + """ - name = "Battle Ready" source = "Artificer (Battle Smith)" class SteelDefender(Feature): - """By 3rd level, your tinkering has borne you a faithful companion, a steel - defender. It is friendly to you and your companions, and it obeys your - commands. See this creature's game statistics in the steel defender stat - block. You determine the creature's appearance and whether it has two legs - or fo ur; your choice has no effect on its game statistics. - - In combat, the steel defender shares your initiative count, but it takes - its turn immediately after yours. It can move and use its reaction on its - own, but the only action it takes on its turn is the Dodge action, unless - you take a bonus action on your turn to command it to take one of the - actions in its stat block or the Dash, Disengage, Help, Hide, or Search - action. - - If the *mending* spell is cast on it, it regains 2d6 hit points. If it has - died within the last hour, you can use your smith's tools as an action to - revive it, provided you are within 5 feet of it and you expend a spell slot - of 1st level or higher. The steel defender returns to life after 1 minute - with all its hit points restored. - - At the end of a long rest, you can create a new steel defender if you have - your smith's tools with you. If you already have a steel defender from this - feature, the first one immediately perishes. + """By 3rd level, your tinkering has borne you a faithful companion, a + steel defender. It is friendly to you and your companions, and it + obeys your commands. See this creature's game statistics in the + steel defender stat block. You determine the creature's appearance + and whether it has two legs or four; your choice has no effect on + its game statistics. + + In combat, the steel defender shares your initiative count, but it + takes its turn immediately after yours. It can move and use its + reaction on its own, but the only action it takes on its turn is + the Dodge action, unless you take a bonus action on your turn to + command it to take one of the actions in its stat block or the + Dash, Disengage, Help, Hide, or Search action. + + If the *mending* spell is cast on it, it regains 2d6 hit + points. If it has died within the last hour, you can use your + smith's tools as an action to revive it, provided you are within 5 + feet of it and you expend a spell slot of 1st level or higher. The + steel defender returns to life after 1 minute with all its hit + points restored. + + At the end of a long rest, you can create a new steel defender if + you have your smith's tools with you. If you already have a steel + defender from this feature, the first one immediately perishes. + """ - name = "Steel Defender" source = "Artificer (Battle Smith)" class ExtraAttackBattleSmith(Feature): - """Starting at 5th level, you can attack twice, rather than once, whenever - you take the Attack action on your turn. + """Starting at 5th level, you can attack twice, rather than once, + whenever you take the Attack action on your turn. + """ - name = "Extra Attack" source = "Artificer (Battle Smith)" class ArcaneJolt(Feature): - """At 9th level, you learn new ways to channel arcane energy to harm or - heal. When either you hit a target with a magic weapon attack or your steel - defender hits a target, you can channel magical energy through the strike - to create one of the following effects: - + """At 9th level, you learn new ways to channel arcane energy to harm + or heal. When either you hit a target with a magic weapon attack + or your steel defender hits a target, you can channel magical + energy through the strike to create one of the following effects: + - The target takes an extra 2d6 force damage. - - - Choose one creature or object you can see within 30 feet of the target. - Healing energy flows into the chosen recipient, restoring 2d6 hit points - to it. You can use this energy a number of times equal to your - Intelligence modifier (minimum of once), but you can do so no more than - once on a turn. You regain all expended uses when you finish a long rest + - Choose one creature or object you can see within 30 feet of the + target. Healing energy flows into the chosen recipient, + restoring 2d6 hit points to it. You can use this energy a number + of times equal to your Intelligence modifier (minimum of once), + but you can do so no more than once on a turn. You regain all + expended uses when you finish a long rest + """ - name = "Arcane Jolt" source = "Artificer (Battle Smith)" @@ -660,15 +647,14 @@ class ArcaneJolt(Feature): class ImprovedDefender(Feature): """At 15th level, your Arcane jolt and steel defender be­come more powerful: - - - The extra damage and the healing of your Arcane jolt both increase to - 4d6. - + + - The extra damage and the healing of your Arcane jolt both + increase to 4d6. - Your steel defender gains a +2 bonus to Armor Class. - - - Whenever your steel defender uses its Deflect Attack, the attacker takes - force damage equal to 1d4 +your Intelligence modifier. + - Whenever your steel defender uses its Deflect Attack, the + attacker takes force damage equal to 1d4 +your Intelligence + modifier. + """ - name = "Improved Defender" source = "Artificer (Battle Smith)" diff --git a/dungeonsheets/features/barbarian.py b/dungeonsheets/features/barbarian.py index 0cf5e27..85ad755 100644 --- a/dungeonsheets/features/barbarian.py +++ b/dungeonsheets/features/barbarian.py @@ -7,18 +7,16 @@ class Rage(Feature): """In battle, you fight with primal ferocity. On your turn, you can enter a rage as a bonus action. While raging, you gain the following benefits if you aren't wearing heavy armor: - - --You have advantage on Strength checks and - Strength saving throws. - - --When you make a melee weapon attack using - Strength, you gain a bonus to the damage roll that increases as you gain - levels as a barbarian, as shown in the Rage Damage column of the Barbarian - table. - - --You have resistance to bludgeoning, piercing, and slashing - damage. - + + - You have advantage on Strength checks and Strength saving + throws. + - When you make a melee weapon attack using Strength, you gain a + bonus to the damage roll that increases as you gain levels as a + barbarian, as shown in the Rage Damage column of the Barbarian + table. + - You have resistance to bludgeoning, piercing, and slashing + damage. + If you are able to cast spells, you can't cast them or concentrate on them while raging. Your rage lasts for 1 minute. It ends early if you are knocked unconscious or if your turn ends and you haven't attacked a hostile @@ -26,31 +24,31 @@ class Rage(Feature): your rage on your turn as a bonus action. Once you have raged the number of times shown for your barbarian level in the Rages column of the Barbarian table, you must finish a long rest before you can rage again - + """ _name = "Rage" source = "Barbarian" - + @property def name(self): - level = self.owner.Barbarian.level - num = 2 - if level >= 3: - num = 3 - if level >= 6: - num = 4 - if level >= 12: - num = 5 - if level >= 17: - num = 6 - if level >= 20: - num = 100 - damage = '+2' - if level >= 9: - damage = "+3" - if level >= 16: - damage = "+4" - return self._name + " ({:s}, {:d}x/LR)".format(damage, num) + level = self.owner.Barbarian.level + num = 2 + if level >= 3: + num = 3 + if level >= 6: + num = 4 + if level >= 12: + num = 5 + if level >= 17: + num = 6 + if level >= 20: + num = 100 + damage = '+2' + if level >= 9: + damage = "+3" + if level >= 16: + damage = "+4" + return self._name + " ({:s}, {:d}x/LR)".format(damage, num) class UnarmoredDefenseBarbarian(Feature): @@ -296,19 +294,19 @@ class TotemSpirit(FeatureSelector): """ options = {'bear spirit': BearSpirit, - 'eagle spirit': EagleSpirit, - 'wolf spirit': WolfSpirit, - 'elk spirit': ElkSpirit, - 'tiger spirit': TigerSpirit} + 'eagle spirit': EagleSpirit, + 'wolf spirit': WolfSpirit, + 'elk spirit': ElkSpirit, + 'tiger spirit': TigerSpirit} name = "Totem Spirit (Select One)" source = "Barbarian (Totem Warrior)" class BearAspect(FeatureSelector): - """You gain the might of a bear. Your carrying capacity (including maximum - load and maximum lift) is doubled, and you have advantage on Strength - checks made to push, pull, lift, or break objects. - + """You gain the might of a bear. Your carrying capacity (including + maximum load and maximum lift) is doubled, and you have advantage + on Strength checks made to push, pull, lift, or break objects. + """ name = "Aspect of the Beast (Bear)" source = "Barbarian (Totem Warrior)" @@ -372,10 +370,10 @@ class BeastAspect(FeatureSelector): """ options = {'bear aspect': BearAspect, - 'eagle aspect': EagleAspect, - 'wolf aspect': WolfAspect, - 'elk aspect': ElkAspect, - 'tiger aspect': TigerAspect} + 'eagle aspect': EagleAspect, + 'wolf aspect': WolfAspect, + 'elk aspect': ElkAspect, + 'tiger aspect': TigerAspect} name = "Aspect of the Beast (Select One)" source = "Barbarian (Totem Warrior)" @@ -460,10 +458,10 @@ class TotemicAttunement(FeatureSelector): """ options = {'bear attunement': BearAttunement, - 'eagle attunement': EagleAttunement, - 'wolf attunement': WolfAttunement, - 'elk attunement': ElkAttunement, - 'tiger attunement': TigerAttunement} + 'eagle attunement': EagleAttunement, + 'wolf attunement': WolfAttunement, + 'elk attunement': ElkAttunement, + 'tiger attunement': TigerAttunement} name = "Totemic Attunement (Select One)" source = "Barbarian (Totem Warrior)" @@ -544,13 +542,13 @@ class SpiritShield(Feature): @property def name(self): - level = self.owner.Barbarian.level - damage = " (2d6)" - if level >= 10: - damage = " (3d6)" - if level >= 14: - damage = " (4d6)" - return self._name + damage + level = self.owner.Barbarian.level + damage = " (2d6)" + if level >= 10: + damage = " (3d6)" + if level >= 14: + damage = " (4d6)" + return self._name + damage class ConsultTheSpirits(Feature): @@ -663,8 +661,8 @@ class StormAura(FeatureSelector): tundra """ options = {'desert': DesertAura, - 'sea': SeaAura, - 'tundra': TundraAura} + 'sea': SeaAura, + 'tundra': TundraAura} name = "Storm Aura (Select One)" source = "Barbarian (Storm Herald)" @@ -723,8 +721,8 @@ class StormSoul(FeatureSelector): """ options = {'desert': DesertSoul, - 'sea': SeaSoul, - 'tundra': TundraSoul} + 'sea': SeaSoul, + 'tundra': TundraSoul} name = "Storm Soul (Select One)" source = "Barbarian (Storm Herald)" @@ -795,8 +793,8 @@ class RagingStorm(FeatureSelector): """ options = {'desert': RagingDesert, - 'sea': RagingSea, - 'tundra': RagingTundra} + 'sea': RagingSea, + 'tundra': RagingTundra} name = "Raging Storm (Select One)" source = "Barbarian (Storm Herald)" @@ -815,9 +813,9 @@ class DivineFury(Feature): @property def name(self): - level = self.owner.Barbarian.level - damage = " (1d6+{:d})".format(level//2) - return self._name + damage + level = self.owner.Barbarian.level + damage = " (1d6+{:d})".format(level//2) + return self._name + damage class WarriorOfTheGods(Feature): diff --git a/dungeonsheets/features/bard.py b/dungeonsheets/features/bard.py index 3378dff..8535488 100644 --- a/dungeonsheets/features/bard.py +++ b/dungeonsheets/features/bard.py @@ -31,19 +31,19 @@ class BardicInspiration(Feature): @property def name(self): - level = self.owner.Bard.level - die = 'd6' - if level >= 5: - die = 'd8' - if level >= 10: - die = 'd10' - if level >= 15: - die = 'd12' - num = max(1, self.owner.charisma.modifier) - rest = 'LR' - if level >= 5: # font of inspiration - rest = 'SR' - return self._name + " ({:d}{:s}/{:s})".format(num, die, rest) + level = self.owner.Bard.level + die = 'd6' + if level >= 5: + die = 'd8' + if level >= 10: + die = 'd10' + if level >= 15: + die = 'd12' + num = max(1, self.owner.charisma.modifier) + rest = 'LR' + if level >= 5: # font of inspiration + rest = 'SR' + return self._name + " ({:d}{:s}/{:s})".format(num, die, rest) class JackOfAllTrades(Feature): @@ -70,15 +70,15 @@ class SongOfRest(Feature): @property def name(self): - level = self.owner.Bard.level - die = ' (1d6)' - if level >= 9: - die = ' (1d8)' - if level >= 13: - die = ' (1d10)' - if level >= 17: - die = ' (1d12)' - return self._name + die + level = self.owner.Bard.level + die = ' (1d6)' + if level >= 9: + die = ' (1d8)' + if level >= 13: + die = ' (1d10)' + if level >= 17: + die = ' (1d12)' + return self._name + die class BardExpertise(Feature): @@ -243,9 +243,9 @@ class MantleOfInspiration(Feature): @property def name(self): - level = self.owner.Bard.level - hp = 5 + 3*(level // 5) - return self._name + " ({:d}HP)".format(hp) + level = self.owner.Bard.level + hp = 5 + 3*(level // 5) + return self._name + " ({:d}HP)".format(hp) class EnthrallingPerformance(Feature): @@ -329,9 +329,9 @@ class BardFightingStyle(FeatureSelector): two-weapon fighting """ options = {'dueling': Dueling, - 'two-weapon fighting': TwoWeaponFighting, - 'two-weapon': TwoWeaponFighting, - 'dual wield': TwoWeaponFighting} + 'two-weapon fighting': TwoWeaponFighting, + 'two-weapon': TwoWeaponFighting, + 'dual wield': TwoWeaponFighting} name = "Fighting Style (Select One)" source = "Bard (College of Swords)" @@ -391,15 +391,15 @@ class PsychicBlades(Feature): @property def name(self): - level = self.owner.Bard.level - dice = ' (2d6)' - if level >= 5: - dice = ' (3d6)' - if level >= 10: - dice = ' (5d6)' - if level >= 15: - dice = ' (8d6)' - return self._name + dice + level = self.owner.Bard.level + dice = ' (2d6)' + if level >= 5: + dice = ' (3d6)' + if level >= 10: + dice = ' (5d6)' + if level >= 15: + dice = ' (8d6)' + return self._name + dice class WordsOfTerror(Feature): diff --git a/dungeonsheets/features/cleric.py b/dungeonsheets/features/cleric.py index 7ccf4cd..a790795 100644 --- a/dungeonsheets/features/cleric.py +++ b/dungeonsheets/features/cleric.py @@ -26,13 +26,13 @@ class ChannelDivinity(Feature): @property def name(self): - level = self.owner.Cleric.level - if level < 6: - return "Channel Divinity (1x/SR)" - elif level < 18: - return "Channel Divinity (2x/SR)" - else: - return "Channel Divinity (3x/SR)" + level = self.owner.Cleric.level + if level < 6: + return "Channel Divinity (1x/SR)" + elif level < 18: + return "Channel Divinity (2x/SR)" + else: + return "Channel Divinity (3x/SR)" class TurnUndead(Feature): @@ -64,17 +64,17 @@ class DestroyUndead(Feature): @property def name(self): - level = self.owner.Cleric.level - name = self._name + ' (CR 1/2)' - if level >= 8: - name = self._name + ' (CR 1)' - if level >= 11: - name = self._name + ' (CR 2)' - if level >= 14: - name = self._name + ' (CR 3)' - if level >= 17: - name = self._name + ' (CR 4)' - return name + level = self.owner.Cleric.level + name = self._name + ' (CR 1/2)' + if level >= 8: + name = self._name + ' (CR 1)' + if level >= 11: + name = self._name + ' (CR 2)' + if level >= 14: + name = self._name + ' (CR 3)' + if level >= 17: + name = self._name + ' (CR 4)' + return name class DivineIntervention(Feature): @@ -107,11 +107,11 @@ class DivineStrike(Feature): @property def name(self): - level = self.owner.Cleric.level - damage = ' (1d8)' - if level >= 14: - damage = ' (2d8)' - return self._name + damage + level = self.owner.Cleric.level + damage = ' (1d8)' + if level >= 14: + damage = ' (2d8)' + return self._name + damage # Knowledge Domain @@ -272,8 +272,8 @@ class WardingFlare(Feature): @property def name(self): - times = max(1, self.owner.wisdom.modifier) - return self._name + " ({:d}x/LR)".format(times) + times = max(1, self.owner.wisdom.modifier) + return self._name + " ({:d}x/LR)".format(times) class RadianceOfTheDawn(ChannelDivinity): @@ -389,8 +389,8 @@ class WrathOfTheStorm(Feature): @property def name(self): - num_uses = max(1, self.owner.wisdom.modifier) - return self._name + ' ({:d}x/LR)'.format(num_uses) + num_uses = max(1, self.owner.wisdom.modifier) + return self._name + ' ({:d}x/LR)'.format(num_uses) class DestructiveWrath(ChannelDivinity): @@ -511,8 +511,8 @@ class WarPriest(Feature): @property def name(self): - num = max(1, self.owner.wisdom.modifier) - return self._name + " ({:d}x/LR)".format(num) + num = max(1, self.owner.wisdom.modifier) + return self._name + " ({:d}x/LR)".format(num) class GuidedStrike(ChannelDivinity): @@ -732,8 +732,8 @@ class EyesOfTheGrave(Feature): @property def name(self): - num = max(1, self.owner.wisdom.modifier) - return self._name + " ({:d}x/LR)".format(num) + num = max(1, self.owner.wisdom.modifier) + return self._name + " ({:d}x/LR)".format(num) class PathToTheGrave(ChannelDivinity): @@ -763,8 +763,8 @@ class SentinelAtDeathsDoor(Feature): @property def name(self): - num = max(1, self.owner.wisdom.modifier) - return self._name + " ({:d}x/LR)".format(num) + num = max(1, self.owner.wisdom.modifier) + return self._name + " ({:d}x/LR)".format(num) class KeeperOfSouls(Feature): diff --git a/dungeonsheets/features/druid.py b/dungeonsheets/features/druid.py index 384727f..24c1e15 100644 --- a/dungeonsheets/features/druid.py +++ b/dungeonsheets/features/druid.py @@ -4,73 +4,79 @@ from dungeonsheets.features.features import Feature, FeatureSelector # PHB class WildShape(Feature): - """Starting at 2nd level, you can use your action to magically assume the - shape of a beast that you have seen before. You can use this feature - twice. You regain expended uses when you finish a short or long rest. Your - druid level determines the beasts you can transform into, as shown in the - Beast Shapes table. At 2nd level, for example, you can transform into any - beast that has a challenge rating of 1/4 or lower that doesn't have a - flying or swimming speed. - - 2nd Level: Max CR 1/4, No Flying/Swimming (ex: Wolf) - - 4th Level: Max CR 1/2, No Flying (ex: Crocodile) - - 8th Level: Max CR 1 (ex: Giant Eagle) - - You can stay in a beast shape for a number of hours equal to half your - druid level (rounded down). You then revert to your normal form unless you - expend another use of this feature. You can revert to your normal form - earlier by using a bonus action on your turn. You automatically revert if - you fall unconscious, drop to 0 hit points, or die. - + """Starting at 2nd level, you can use your action to magically assume + the shape of a beast that you have seen before. You can use this + feature twice. You regain expended uses when you finish a short or + long rest. Your druid level determines the beasts you can + transform into, as shown in the Beast Shapes table. At 2nd level, + for example, you can transform into any beast that has a challenge + rating of 1/4 or lower that doesn't have a flying or swimming + speed. + + ===== ====== ================== =========== + Level Max CR Limitations Example + ===== ====== ================== =========== + 2nd 1/4 No Flying/Swimming Wolf + 4th 1/2 No flying Crocodile + 8th 1 -- Giant eagle + ===== ====== ================== =========== + + You can stay in a beast shape for a number of hours equal to half + your druid level (rounded down). You then revert to your normal + form unless you expend another use of this feature. You can revert + to your normal form earlier by using a bonus action on your + turn. You automatically revert if you fall unconscious, drop to 0 + hit points, or die. + While you are transformed, the following rules apply: - - • Your game statistics are replaced by the statistics of the beast, but - you retain your alignment, personality, and Intelligence, Wisdom, and - Charisma scores. You also retain all of your skill and saving throw - proficiencies, in addition to gaining those of the creature. If the - creature has the same proficiency as you and the bonus in its stat block is - higher than yours, use the creature's bonus instead of yours. If the - creature has any legendary or lair actions, you can't use them. - - • When you transform, you assume the beast's hit points and Hit Dice. When - you revert to your normal form, you return to the number of hit points you - had before you transformed. However, if you revert as a result of dropping - to 0 hit points, any excess damage carries over to your normal form. For - example, if you take 10 damage in animal form and have only 1 hit point - left, you revert and take 9 damage. As long as the excess damage doesn't - reduce your normal form to 0 hit points, you aren't knocked unconscious. - - • You can't cast spells, and your ability to speak or take any action that - requires hands is limited to the capabilities of your beast - form. Transforming doesn't break your concentration on a spell you've - already cast, however, or prevent you from taking actions that are part of - a spell, such as call lightning, that you've already cast. - - • You retain the benefit of any features from your class, race, or other - source and can use them if the new form is physically capable of doing - so. However, you can't use any of your special senses, such as darkvision, - unless your new form also has that sense. - - • You choose whether your equipment falls to the ground in your space, - merges into your new form, or is worn by it. Worn equipment functions as - normal, but the DM decides whether it is practical for the new form to wear - a piece of equipment, based on the creature's shape and size. Your - equipment doesn't change size or shape to match the new form, and any - equipment that the new form can't wear must either fall to the ground or - merge with it. Equipment that merges with the form has no effect until you - leave the form. - + + - Your game statistics are replaced by the statistics of the + beast, but you retain your alignment, personality, and + Intelligence, Wisdom, and Charisma scores. You also retain all + of your skill and saving throw proficiencies, in addition to + gaining those of the creature. If the creature has the same + proficiency as you and the bonus in its stat block is higher + than yours, use the creature's bonus instead of yours. If the + creature has any legendary or lair actions, you can't use them. + - When you transform, you assume the beast's hit points and Hit + Dice. When you revert to your normal form, you return to the + number of hit points you had before you transformed. However, if + you revert as a result of dropping to 0 hit points, any excess + damage carries over to your normal form. For example, if you + take 10 damage in animal form and have only 1 hit point left, + you revert and take 9 damage. As long as the excess damage + doesn't reduce your normal form to 0 hit points, you aren't + knocked unconscious. + - You can't cast spells, and your ability to speak or take any + action that requires hands is limited to the capabilities of + your beast form. Transforming doesn't break your concentration + on a spell you've already cast, however, or prevent you from + taking actions that are part of a spell, such as call lightning, + that you've already cast. + - You retain the benefit of any features from your class, race, or + other source and can use them if the new form is physically + capable of doing so. However, you can't use any of your special + senses, such as darkvision, unless your new form also has that + sense. + - You choose whether your equipment falls to the ground in your + space, merges into your new form, or is worn by it. Worn + equipment functions as normal, but the DM decides whether it is + practical for the new form to wear a piece of equipment, based + on the creature's shape and size. Your equipment doesn't change + size or shape to match the new form, and any equipment that the + new form can't wear must either fall to the ground or merge with + it. Equipment that merges with the form has no effect until you + leave the form. + """ _name = "Wild Shape" source = "Druid" @property def name(self): - num = 2 - time = self.owner.Druid.level // 2 - return self._name + " ({:d}x/SR, {:d} hours)".format(num, time) + num = 2 + time = self.owner.Druid.level // 2 + return self._name + " ({:d}x/SR, {:d} hours)".format(num, time) class TimelessBody(Feature): @@ -149,24 +155,24 @@ class _CircleSpells(Feature): _name = "Select One" source = "Druid (Circle of the Land)" _spells = {3: [spells.MirrorImage, spells.MistyStep], - 5: [spells.WaterBreathing, spells.WaterWalk], - 7: [spells.ControlWater, spells.FreedomOfMovement], - 9: [spells.ConjureElemental, spells.Scrying]} + 5: [spells.WaterBreathing, spells.WaterWalk], + 7: [spells.ControlWater, spells.FreedomOfMovement], + 9: [spells.ConjureElemental, spells.Scrying]} spells_known = [] spells_prepared = [] @property def name(self): - return "Circle Spells ({:s})".format(self._name) + return "Circle Spells ({:s})".format(self._name) def __init__(self, owner=None): - if owner is not None: - level = owner.Druid.level - for lvl, sps in self._spells.items(): - if level >= lvl: - self.spells_known.extend(sps) - self.spells_prepared.extend(sps) - super().__init__(owner=owner) + if owner is not None: + level = owner.Druid.level + for lvl, sps in self._spells.items(): + if level >= lvl: + self.spells_known.extend(sps) + self.spells_prepared.extend(sps) + super().__init__(owner=owner) class ArcticSpells(_CircleSpells): @@ -178,9 +184,9 @@ class ArcticSpells(_CircleSpells): """ _name = 'Arctic' _spells = {3: [spells.HoldPerson, spells.SpikeGrowth], - 5: [spells.SleetStorm, spells.Slow], - 7: [spells.FreedomOfMovement, spells.IceStorm], - 9: [spells.CommuneWithNature, spells.ConeOfCold]} + 5: [spells.SleetStorm, spells.Slow], + 7: [spells.FreedomOfMovement, spells.IceStorm], + 9: [spells.CommuneWithNature, spells.ConeOfCold]} class CoastSpells(_CircleSpells): @@ -192,9 +198,9 @@ class CoastSpells(_CircleSpells): """ _name = 'Coast' _spells = {3: [spells.MirrorImage, spells.MistyStep], - 5: [spells.WaterBreathing, spells.WaterWalk], - 7: [spells.ControlWater, spells.FreedomOfMovement], - 9: [spells.ConjureElemental, spells.Scrying]} + 5: [spells.WaterBreathing, spells.WaterWalk], + 7: [spells.ControlWater, spells.FreedomOfMovement], + 9: [spells.ConjureElemental, spells.Scrying]} class DesertSpells(_CircleSpells): @@ -206,9 +212,9 @@ class DesertSpells(_CircleSpells): """ _name = 'Desert' _spells = {3: [spells.Blur, spells.Silence], - 5: [spells.CreateFoodAndWater, spells.ProtectionFromEnergy], - 7: [spells.Blight, spells.HallucinatoryTerrain], - 9: [spells.InsectPlague, spells.WallOfStone]} + 5: [spells.CreateFoodAndWater, spells.ProtectionFromEnergy], + 7: [spells.Blight, spells.HallucinatoryTerrain], + 9: [spells.InsectPlague, spells.WallOfStone]} class ForestSpells(_CircleSpells): @@ -220,9 +226,9 @@ class ForestSpells(_CircleSpells): """ _name = 'Forest' _spells = {3: [spells.Barkskin, spells.SpiderClimb], - 5: [spells.CallLightning, spells.PlantGrowth], - 7: [spells.Divination, spells.FreedomOfMovement], - 9: [spells.CommuneWithNature, spells.TreeStride]} + 5: [spells.CallLightning, spells.PlantGrowth], + 7: [spells.Divination, spells.FreedomOfMovement], + 9: [spells.CommuneWithNature, spells.TreeStride]} class GrasslandSpells(_CircleSpells): @@ -234,9 +240,9 @@ class GrasslandSpells(_CircleSpells): """ _name = 'Grassland' _spells = {3: [spells.Invisibility, spells.PassWithoutTrace], - 5: [spells.Daylight, spells.Haste], - 7: [spells.Divination, spells.FreedomOfMovement], - 9: [spells.Dream, spells.InsectPlague]} + 5: [spells.Daylight, spells.Haste], + 7: [spells.Divination, spells.FreedomOfMovement], + 9: [spells.Dream, spells.InsectPlague]} class MountainSpells(_CircleSpells): @@ -248,9 +254,9 @@ class MountainSpells(_CircleSpells): """ _name = 'Mountain' _spells = {3: [spells.SpiderClimb, spells.SpikeGrowth], - 5: [spells.LightningBolt, spells.MeldIntoStone], - 7: [spells.StoneShape, spells.Stoneskin], - 9: [spells.Passwall, spells.WallOfStone]} + 5: [spells.LightningBolt, spells.MeldIntoStone], + 7: [spells.StoneShape, spells.Stoneskin], + 9: [spells.Passwall, spells.WallOfStone]} class SwampSpells(_CircleSpells): @@ -262,9 +268,9 @@ class SwampSpells(_CircleSpells): """ _name = 'Swamp' _spells = {3: [spells.Darkness, spells.MelfsAcidArrow], - 5: [spells.WaterWalk, spells.StinkingCloud], - 7: [spells.FreedomOfMovement, spells.LocateCreature], - 9: [spells.InsectPlague, spells.Scrying]} + 5: [spells.WaterWalk, spells.StinkingCloud], + 7: [spells.FreedomOfMovement, spells.LocateCreature], + 9: [spells.InsectPlague, spells.Scrying]} class UnderdarkSpells(_CircleSpells): @@ -276,9 +282,9 @@ class UnderdarkSpells(_CircleSpells): """ _name = 'Underdark' _spells = {3: [spells.SpiderClimb, spells.Web], - 5: [spells.GaseousForm, spells.StinkingCloud], - 7: [spells.GreaterInvisibility, spells.StoneShape], - 9: [spells.Cloudkill, spells.InsectPlague]} + 5: [spells.GaseousForm, spells.StinkingCloud], + 7: [spells.GreaterInvisibility, spells.StoneShape], + 9: [spells.Cloudkill, spells.InsectPlague]} class SporesSpells(_CircleSpells): @@ -291,10 +297,10 @@ class SporesSpells(_CircleSpells): _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]} + 3: [spells.BlindnessDeafness, spells.GentleRepose], + 5: [spells.AnimateDead, spells.GaseousForm], + 7: [spells.Blight, spells.Confusion], + 9: [spells.Cloudkill, spells.Contagion]} class CircleSpells(FeatureSelector, _CircleSpells): @@ -321,14 +327,14 @@ class CircleSpells(FeatureSelector, _CircleSpells): """ options = {'arctic': ArcticSpells, - 'coast': CoastSpells, - 'desert': DesertSpells, - 'forest': ForestSpells, - 'grassland': GrasslandSpells, - 'mountain': MountainSpells, - 'swamp': SwampSpells, - 'underdark': UnderdarkSpells, - 'spores': SporesSpells} + 'coast': CoastSpells, + 'desert': DesertSpells, + 'forest': ForestSpells, + 'grassland': GrasslandSpells, + 'mountain': MountainSpells, + 'swamp': SwampSpells, + 'underdark': UnderdarkSpells, + 'spores': SporesSpells} name = "Circle Spells (Select One)" source = "Druid (Circle of the Land/Spores)" @@ -397,8 +403,8 @@ class CircleForms(Feature): @property def name(self): - level = self.owner.Druid.level - return self._name + ' (CR {:d})'.format(max(1, level//3)) + level = self.owner.Druid.level + return self._name + ' (CR {:d})'.format(max(1, level//3)) class PrimalStrike(Feature): @@ -450,7 +456,7 @@ class BalmOfTheSummerCourt(Feature): @property def name(self): - return self._name + " ({:d}x d6)".format(self.owner.Druid.level) + return self._name + " ({:d}x d6)".format(self.owner.Druid.level) class HearthOfMoonlightAndShadow(Feature): @@ -567,11 +573,11 @@ class MightySummoner(Feature): - The creature appears with more hit points than normal: 2 extra hit - The creature appears with more hit points than normal: 2 extra hit - points per Hit Die it has. + points per Hit Die it has. - The damage from its natural weapons is considered magical for the - purpose of overcoming immunity and resistance to nonmagical attacks and - damage. + purpose of overcoming immunity and resistance to nonmagical attacks and + damage. """ name = "Mighty Summoner" diff --git a/dungeonsheets/features/feats.py b/dungeonsheets/features/feats.py index 6a4eacd..54b3555 100644 --- a/dungeonsheets/features/feats.py +++ b/dungeonsheets/features/feats.py @@ -4,34 +4,32 @@ from dungeonsheets.features.features import Feature # PHB class Actor(Feature): """Skilled at mimicry and dramatics, you gain the following benefits: - - • Increase your Charisma score by 1, to a maximum of 20. - - • You have an advantage on Charisma (Deception) and Charisma (Performance) - checks when trying to pass yourself off as a different person. - - • You can mimic the speech of another person or the sounds made by other - creatures. You must have heard the person speaking, or heard the creature - make the sound, for at least 1 minute. A successful Wisdom (Insight) check - contested by your Charisma (Deception) check allows a listener to - determine that the effect is faked. + + - Increase your Charisma score by 1, to a maximum of 20. + - You have an advantage on Charisma (Deception) and Charisma + (Performance) checks when trying to pass yourself off as a + different person. + - You can mimic the speech of another person or the sounds made by + other creatures. You must have heard the person speaking, or + heard the creature make the sound, for at least 1 minute. A + successful Wisdom (Insight) check contested by your Charisma + (Deception) check allows a listener to determine that the effect + is faked. + """ - name = 'Actor' source = 'Feats' class Alert(Feature): """Always on the lookout for danger, you gain the following benefits: - - • You gain a +5 bonus to initiative. - - • You can’t be surprised while you are conscious. - - • Other creatures don’t gain advantage on attack rolls against you as - a result of being hidden from you. + + - You gain a +5 bonus to initiative. + - You can’t be surprised while you are conscious. + - Other creatures don’t gain advantage on attack rolls against you + as a result of being hidden from you. + """ - name = 'Alert' source = 'Feats' @@ -39,32 +37,32 @@ class Alert(Feature): class Athlete(Feature): """You have undergone extensive physical training to gain the following benefits: - - • Increase your Strength or Dexterity score by 1, to a maximum of 20. - - • When you are prone, standing up uses only 5 feet of your movement. - - • Climbing doesn’t halve your speed. - - • You can make a running long jump or a running high jump after moving only - 5 feet on foot, rather than 10 feet. + + - Increase your Strength or Dexterity score by 1, to a maximum of + 20. + - When you are prone, standing up uses only 5 feet of your + movement. + - Climbing doesn’t halve your speed. + - You can make a running long jump or a running high jump after + moving only 5 feet on foot, rather than 10 feet. + """ - name = 'Athlete' source = 'Feats' class Charger(Feature): - """When you use your action to Dash, you can use a bonus action to make one - melee weapon attack or to shove a creature. - - If you move at least 10 feet in a straight line immediately before taking - this bonus action, you either gain a +5 bonus to the attack’s damage roll - (if you chose to make a melee attack and hit) or push the target up to - 10 feet away from you (if you chose to shove and you succeed). + """When you use your action to Dash, you can use a bonus action to + make one melee weapon attack or to shove a creature. + + If you move at least 10 feet in a straight line immediately before + taking this bonus action, you either gain a +5 bonus to the + attack’s damage roll (if you chose to make a melee attack and hit) + or push the target up to 10 feet away from you (if you chose to + shove and you succeed). + """ - name = 'Charger' source = 'Feats' @@ -72,47 +70,44 @@ class Charger(Feature): class CrossbowExpert(Feature): """Thanks to extensive practice with the crossbow, you gain the following benefits: - - • You ignore the loading quality of crossbows with which you are proficient. - - • Being within 5 feet of a hostile creature doesn’t impose disadvantage on - your ranged attack rolls. - - • When you use the Attack action and attack with a one-handed weapon, you - can use a bonus action to attack with a loaded hand crossbow you are - holding. + + - You ignore the loading quality of crossbows with which you are + proficient. + - Being within 5 feet of a hostile creature doesn’t impose + disadvantage on your ranged attack rolls. + - When you use the Attack action and attack with a one-handed + weapon, you can use a bonus action to attack with a loaded hand + crossbow you are holding. + """ - name = 'Crossbow Expert' source = 'Feats' class DefensiveDuelist(Feature): - """When you are wielding a finesse weapon with which you are proficient - and another creature hits you with a melee attack, you can use your reaction - to add your proficiency bonus to your AC for that attack, potentially - causing the attack to miss you. - - **Prerequisite**: Dexterity 13 or higher + """When you are wielding a finesse weapon with which you are + proficient and another creature hits you with a melee attack, you + can use your reaction to add your proficiency bonus to your AC for + that attack, potentially causing the attack to miss you. + + **Prerequisite:** Dexterity 13 or higher + """ - name = 'Defensive Duelist' source = 'Feats' class DualWielder(Feature): """You master fighting with two weapons, gaining the following benefits: - - • You gain a +1 bonus to AC while you are wielding a separate melee weapon - in each hand. - - • You can use two-weapon fighting even when the one-handed melee weapons you - are wielding aren’t light. - - • You can draw or stow two one-handed weapons when you would normally be - able to draw or stow only one. + + - You gain a +1 bonus to AC while you are wielding a separate + melee weapon in each hand. + - You can use two-weapon fighting even when the one-handed melee + weapons you are wielding aren’t light. + - You can draw or stow two one-handed weapons when you would + normally be able to draw or stow only one. + """ - name = 'Dual Wielder' source = 'Feats' @@ -120,52 +115,51 @@ class DualWielder(Feature): class DungeonDelver(Feature): """Alert to the hidden traps and secret doors found in many dungeons, you gain the following benefits: - - • When you roll a Hit Die to regain hit points, the minimum number of hit - points you regain from the roll equals twice your Constitution modifier - (minimum of 2). - - • You have advantage on Wisdom (Perception) and Intelligence (Investigation) - checks made to detect the presence of secret doors. - - • You have advantage on saving throws made to avoid or resist traps. - - • You have resistance to the damage dealt by traps. - - • You can search for traps while travelling at a normal pace, instead of - only at a slow pace. + + - When you roll a Hit Die to regain hit points, the minimum number + of hit points you regain from the roll equals twice your + Constitution modifier (minimum of 2). + - You have advantage on Wisdom (Perception) and Intelligence + (Investigation) checks made to detect the presence of secret + doors. + - You have advantage on saving throws made to avoid or resist + traps. + - You have resistance to the damage dealt by traps. + - You can search for traps while travelling at a normal pace, + instead of only at a slow pace. + """ - name = 'Dungeon Delver' source = 'Feats' class Durable(Feature): """Hardy and resilient, you gain the following benefits: - • Increase your Constitution score by 1, to a maximum of 20. - • When you roll a Hit Die to regain hit points, the minimum number of hit - points you regain from the roll equals twice your Constitution modifier - (minimum of 2). + + - Increase your Constitution score by 1, to a maximum of 20. + - When you roll a Hit Die to regain hit points, the minimum number + of hit points you regain from the roll equals twice your + Constitution modifier (minimum of 2). + """ - name = 'Durable' source = 'Feats' 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. - - **Prerequisite**: The ability to cast at least one spell + """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. + + **Prerequisite:** The ability to cast at least one spell + """ - name = 'Elemental Adept' source = 'Feats' @@ -174,18 +168,17 @@ class Grappler(Feature): """You’ve developed the skills necessary to hold your own in close-quarters grappling. You gain the following benefits: - • You have advantage on attack rolls against a creature you are grappling. + - You have advantage on attack rolls against a creature you are + grappling. + - You can use your action to try to pin a creature grappled by + you. To do so, make another grapple check. If you succeed, you + and the creature are both restrained until the grapple ends. + - Creatures that are one size larger than you don’t automatically + succeed on checks to escape your grapple. - • You can use your action to try to pin a creature grappled by you. To do - so, make another grapple check. If you succeed, you and the creature are - both restrained until the grapple ends. + **Prerequisite:** Strength 13 or higher - • Creatures that are one size larger than you don’t automatically succeed on - checks to escape your grapple. - - **Prerequisite**: Strength 13 or higher """ - name = 'Grappler' source = 'Feats' @@ -194,15 +187,15 @@ class GreatWeaponMaster(Feature): """You've learned to put the weight of a weapon to your advantage, letting its momentum empower your strikes. You gain the following benefits: - • On your turn, when you score a critical hit with a melee weapon or - reduce a creature to 0 hit points with one, you can make one melee weapon - attack as a bonus action. + - On your turn, when you score a critical hit with a melee weapon + or reduce a creature to 0 hit points with one, you can make one + melee weapon attack as a bonus action. + - Before you make a melee attack with a heavy weapon that you are + proficient with, you can choose to take a -5 penalty to the + attack roll. If the attack hits, you add +10 to the attack's + damage - • Before you make a melee attack with a heavy weapon that you are - proficient with, you can choose to take a -5 penalty to the attack - roll. If the attack hits, you add +10 to the attack's damage """ - name = 'Great Weapon Master' source = 'Feats' @@ -211,16 +204,15 @@ class Healer(Feature): """You are an able physician, allowing you to mend wounds quickly and get your allies back in the fight. You gain the following benefits: - • When you use a healer’s kit to stabilize a dying creature, that creature - also regains 1 hit point. + - When you use a healer’s kit to stabilize a dying creature, that + creature also regains 1 hit point. + - As an action, you can spend one use of a healer’s kit to tend to + a creature and restore 1d6 + 4 hit points to it, plus additional + hit points equal to the creature’s maximum number of Hit + Dice. The creature can’t regain hit points from this feat again + until it finishes a short or long rest. - • As an action, you can spend one use of a healer’s kit to tend to - a creature and restore 1d6 + 4 hit points to it, plus additional hit - points equal to the creature’s maximum number of Hit Dice. The creature - can’t regain hit points from this feat again until it finishes a short or - long rest. """ - name = 'Healer' source = 'Feats' @@ -229,13 +221,12 @@ class HeavilyArmored(Feature): """You have trained to master the use of heavy armor, gaining the following benefits: - • Increase your Strength score by 1, to a maximum of 20. + - Increase your Strength score by 1, to a maximum of 20. + - You gain proficiency with heavy armor. - • You gain proficiency with heavy armor. + **Prerequisite:** Proficiency with medium armor - **Prerequisite**: Proficiency with medium armor """ - name = 'Heavily Armored' source = 'Feats' @@ -244,31 +235,32 @@ class HeavyArmorMaster(Feature): """You can use your armor to deflect strikes that would kill others. You gain the following benefits: - • Increase your Strength score by 1, to a maximum of 20. + - Increase your Strength score by 1, to a maximum of 20. + - While you are wearing heavy armor, bludgeoning, piercing, and + slashing damage that you take from non magical weapons is + reduced by 3. - • While you are wearing heavy armor, bludgeoning, piercing, and slashing - damage that you take from non magical weapons is reduced by 3. + **Prerequisite:** Proficiency with heavy armor - **Prerequisite**: Proficiency with heavy armor """ - name = 'Heavy Armor Master' source = 'Feats' class InspiringLeader(Feature): - """You can spend 10 minutes inspiring your companions, shoring up their - resolve to fight. When you do so, choose up to six friendly creatures - (which can include yourself) within 30 feet of you who can see or hear you - and who can understand you. Each creature can gain temporary hit points - equal to your level + your Charisma modifier. - - A creature can’t gain temporary hit points from this feat again until it has - finished a short or long rest. - - **Prerequisite**: Charisma 13 or higher + """You can spend 10 minutes inspiring your companions, shoring up + their resolve to fight. When you do so, choose up to six friendly + creatures (which can include yourself) within 30 feet of you who + can see or hear you and who can understand you. Each creature can + gain temporary hit points equal to your level + your Charisma + modifier. + + A creature can’t gain temporary hit points from this feat again + until it has finished a short or long rest. + + **Prerequisite:** Charisma 13 or higher + """ - name = 'Inspiring Leader' source = 'Feats' @@ -276,19 +268,15 @@ class InspiringLeader(Feature): class KeenMind(Feature): """You have a mind that can track time, direction, and detail with uncanny precision. You gain the following benefits: - - - • Increase your Intelligence score by 1, to a maximum of 20. - - • You always know which way is north. - - • You always know the number of hours left before the next sunrise or - sunset. - - • You can accurately recall anything you have seen or heard within the past - month. + + - Increase your Intelligence score by 1, to a maximum of 20. + - You always know which way is north. + - You always know the number of hours left before the next sunrise + or sunset. + - You can accurately recall anything you have seen or heard within + the past month. + """ - name = 'Keen Mind' source = 'Feats' @@ -296,29 +284,27 @@ class KeenMind(Feature): class LightlyArmored(Feature): """You have trained to master the use of light armor, gaining the following benefits: - - • Increase your Strength or Dexterity score by 1, to a maximum of 20. - - • You gain proficiency with light armor. + + - Increase your Strength or Dexterity score by 1, to a maximum of + 20. + - You gain proficiency with light armor. + """ - name = 'Lightly Armored' source = 'Feats' class Linguist(Feature): """You have studied languages and codes, gaining the following benefits: - - • Increase your Intelligence score by 1, to a maximum of 20. - - • You learn three languages of your choice. - - • You can ably create written ciphers. Others can’t decipher a code you - create unless you teach them, they succeed on an Intelligence check - (DC equal to your Intelligence score + your proficiency bonus), or they - use magic to decipher it. + + - Increase your Intelligence score by 1, to a maximum of 20. + - You learn three languages of your choice. + - You can ably create written ciphers. Others can’t decipher a + code you create unless you teach them, they succeed on an + Intelligence check (DC equal to your Intelligence score + your + proficiency bonus), or they use magic to decipher it. + """ - name = 'Linguist' source = 'Feats' @@ -342,7 +328,6 @@ class Lucky(Feature): You regain your expended luck points when you finish a long rest. """ - name = 'Lucky' source = 'Feats' @@ -350,18 +335,17 @@ class Lucky(Feature): class MageSlayer(Feature): """You have practiced techniques useful in melee combat against spellcasters, gaining the following benefits: - - • When a creature within 5 feet of you casts a spell, you can use your - reaction to make a melee weapon attack against that creature. - - • When you damage a creature that is concentrating on a spell, that creature - has disadvantage on the saving throw it makes to maintain its - concentration. - - • You have advantage on saving throws against spells cast by creatures - within 5 feet of you. + + - When a creature within 5 feet of you casts a spell, you can use + your reaction to make a melee weapon attack against that + creature. + - When you damage a creature that is concentrating on a spell, + that creature has disadvantage on the saving throw it makes to + maintain its concentration. + - You have advantage on saving throws against spells cast by + creatures within 5 feet of you. + """ - name = 'Mage Slayer' source = 'Feats' @@ -379,7 +363,6 @@ class MagicInitiate(Feature): Charisma for bard, sorcerer, or warlock; Wisdom for cleric or druid: or Intelligence for wizard. """ - name = 'Magic Initiate' source = 'Feats' @@ -388,18 +371,19 @@ class MartialAdept(Feature): """You have martial training that allows you to perform special combat maneuvers. You gain the following benefits: - • You learn two maneuvers of your choice from among those available to - the Battle Master archetype in the fighter class. If a maneuver you use - requires your target to make a saving throw to resist the maneuver’s - effects, the saving throw DC equals 8 + your proficiency bonus + your - Strength or Dexterity modifier (your choice). + - You learn two maneuvers of your choice from among those + available to the Battle Master archetype in the fighter + class. If a maneuver you use requires your target to make a + saving throw to resist the maneuver’s effects, the saving throw + DC equals 8 + your proficiency bonus + your Strength or + Dexterity modifier (your choice). + - If you already have superiority dice, you gain one more; + otherwise, you have one superiority die, which is a d6. This die + is used to fuel your maneuvers. A superiority die is expended + when you use it. You regain your expended superiority dice when + you finish a short or long rest. - • If you already have superiority dice, you gain one more; otherwise, you - have one superiority die, which is a d6. This die is used to fuel your - maneuvers. A superiority die is expended when you use it. You regain your - expended superiority dice when you finish a short or long rest. """ - name = 'Martial Adept' source = 'Feats' @@ -407,15 +391,14 @@ class MartialAdept(Feature): class MediumArmorMaster(Feature): """You have practiced moving in medium armor to gain the following benefits: - • Wearing medium armor doesn’t impose disadvantage on your + - Wearing medium armor doesn’t impose disadvantage on your Dexterity (Stealth) checks. + - When you wear medium armor, you can add 3, rather than 2, to + your AC if you have a Dexterity of 16 or higher. - • When you wear medium armor, you can add 3, rather than 2, to your AC if - you have a Dexterity of 16 or higher. + **Prerequisite:** Prerequisite: Proficiency with medium armor - **Prerequisite**: Prerequisite: Proficiency with medium armor """ - name = 'Medium Armor Master' source = 'Feats' @@ -423,16 +406,14 @@ class MediumArmorMaster(Feature): class Mobile(Feature): """You are exceptionally speedy and agile. You gain the following benefits: - • Your speed increases by 10 feet. + - Your speed increases by 10 feet. + - When you use the Dash action, difficult terrain doesn’t cost you + extra movement on that turn. + - When you make a melee attack against a creature, you don’t + provoke opportunity attacks from that creature for the rest o f + the turn, whether you hit or not. - • When you use the Dash action, difficult terrain doesn’t cost you extra - movement on that turn. - - • When you make a melee attack against a creature, you don’t provoke - opportunity attacks from that creature for the rest o f the turn, whether - you hit or not. """ - name = 'Mobile' source = 'Feats' @@ -440,14 +421,14 @@ class Mobile(Feature): class ModeratelyArmored(Feature): """You have trained to master the use of medium armor and shields, gaining the following benefits: - - • Increase your Strength or Dexterity score by 1, to a maximum of 20. - - • You gain proficiency with medium armor and shields. - - **Prerequisite**: Proficiency with light armor + + - Increase your Strength or Dexterity score by 1, to a maximum of + 20. + - You gain proficiency with medium armor and shields. + + **Prerequisite:** Proficiency with light armor + """ - name = 'Moderately Armored' source = 'Feats' @@ -455,17 +436,16 @@ class ModeratelyArmored(Feature): class MountedCombatant(Feature): """You are a dangerous foe to face while mounted. While you are mounted and aren’t incapacitated, you gain the following benefits: - - • You have advantage on melee attack rolls against any unmounted creature - that is smaller than your mount. - - • You can force an attack targeted at your mount to target you instead. - - • If your mount is subjected to an effect that allows it to make a Dexterity - saving throw to take only half damage, it instead takes no damage if it - succeeds on the saving throw, and only half damage if it fails. + + - You have advantage on melee attack rolls against any unmounted + creature that is smaller than your mount. + - You can force an attack targeted at your mount to target you instead. + - If your mount is subjected to an effect that allows it to make a + Dexterity saving throw to take only half damage, it instead + takes no damage if it succeeds on the saving throw, and only + half damage if it fails. + """ - name = 'Mounted Combatant' source = 'Feats' @@ -473,16 +453,16 @@ class MountedCombatant(Feature): class Observant(Feature): """Quick to notice details of your environment, you gain the following benefits: - - • Increase your Intelligence or Wisdom score by 1, to a maximum of 20. - - • If you can see a creature’s mouth while it is speaking a language you - understand, you can interpret what it’s saying by reading its lips. - - • You have a +5 bonus to your passive Wisdom (Perception) and passive - Intelligence (Investigation) scores. + + - Increase your Intelligence or Wisdom score by 1, to a maximum of + 20. + - If you can see a creature’s mouth while it is speaking a + language you understand, you can interpret what it’s saying by + reading its lips. + - You have a +5 bonus to your passive Wisdom (Perception) and + passive Intelligence (Investigation) scores. + """ - name = 'Observant' source = 'Feats' @@ -490,27 +470,27 @@ class Observant(Feature): class PolearmMaster(Feature): """You can keep your enemies at bay with reach weapons. You gain the following benefits: - - • When you take the Attack action and attack with only a glaive, halberd, - or quarterstaff, you can use a bonus action to make a melee attack with - the opposite end of the weapon. The weapon’s damage die for this attack is - a d4, and the attack deals bludgeoning damage. - - • While you are wielding a glaive, halberd, pike, or quarterstaff, other - creatures provoke an opportunity attack from you when they enter your - reach. + + - When you take the Attack action and attack with only a glaive, + halberd, or quarterstaff, you can use a bonus action to make a + melee attack with the opposite end of the weapon. The weapon’s + damage die for this attack is a d4, and the attack deals + bludgeoning damage. + - While you are wielding a glaive, halberd, pike, or quarterstaff, + other creatures provoke an opportunity attack from you when they + enter your reach. + """ - name = 'Polearm Master' source = 'Feats' class Resilient(Feature): - """ Choose one ability score. You gain the following benefits: - - -- Increase the chosen ability score by 1, to a maximum of 20. - - -- You gain proficiency in saving throws using the chosen ability. + """Choose one ability score. You gain the following benefits: + + - Increase the chosen ability score by 1, to a maximum of 20. + - You gain proficiency in saving throws using the chosen ability. + """ name = 'Resilient' source = "Feats" @@ -518,39 +498,41 @@ class Resilient(Feature): class RitualCaster(Feature): - """You have learned a number of spells that you can cast as rituals. These - spells are written in a ritual book, which you must have in hand while - casting one of them. - - When you choose this feat, you acquire a ritual book holding two 1st-level - spells of your choice. Choose one of the following classes: bard, cleric, - druid, sorcerer, warlock, or wizard. You must choose your spells from that - class’s spell list, and the spells you choose must have the ritual tag. - The class you choose also determines your spellcasting ability for these - spells: Charisma for bard, sorcerer, or warlock; Wisdom for cleric or druid; - or Intelligence for wizard. - - If you come across a spell in written form, such as a magical spell scroll - or a wizard’s spellbook, you might be able to add it to your ritual book. - The spell must be on the spell list for the class you chose, the spell’s - level can be no higher than half your level (rounded up), and it must have - the ritual tag. The process of copying the spell into your ritual book takes - 2 hours per level of the spell, and costs 50 gp per level. The cost - represents material components you expend as you experiment with the spell - to master it, as well as the fine inks you need to record it. + """You have learned a number of spells that you can cast as + rituals. These spells are written in a ritual book, which you must + have in hand while casting one of them. + + When you choose this feat, you acquire a ritual book holding two + 1st-level spells of your choice. Choose one of the following + classes: bard, cleric, druid, sorcerer, warlock, or wizard. You + must choose your spells from that class’s spell list, and the + spells you choose must have the ritual tag. The class you choose + also determines your spellcasting ability for these spells: + Charisma for bard, sorcerer, or warlock; Wisdom for cleric or + druid; or Intelligence for wizard. + + If you come across a spell in written form, such as a magical + spell scroll or a wizard’s spellbook, you might be able to add it + to your ritual book. The spell must be on the spell list for the + class you chose, the spell’s level can be no higher than half your + level (rounded up), and it must have the ritual tag. The process + of copying the spell into your ritual book takes 2 hours per level + of the spell, and costs 50 gp per level. The cost represents + material components you expend as you experiment with the spell to + master it, as well as the fine inks you need to record it. Prerequisite: Intelligence or Wisdom 13 or higher - """ + """ name = 'Ritual Caster' source = 'Feats' class SavageAttacker(Feature): - """Once per turn when you roll damage for a melee weapon attack, you can - reroll the weapon’s damage dice and use either total. + """Once per turn when you roll damage for a melee weapon attack, you + can reroll the weapon’s damage dice and use either total. + """ - name = 'Savage Attacker' source = 'Feats' @@ -558,18 +540,18 @@ class SavageAttacker(Feature): class Sentinel(Feature): """You have mastered techniques to take advantage of every drop in any enemy’s guard, gaining the following benefits: - - • When you hit a creature with an opportunity attack, the creature’s speed - becomes 0 for the rest of the turn. - - • Creatures within 5 feet of you provoke opportunity attacks from you even - if they take the Disengage action before leaving your reach. - - • When a creature within 5 feet of you makes an attack against a target - other than you (and that target doesn’t have this feat), you can use your - reaction to make a melee weapon attack against the attacking creature. + + - When you hit a creature with an opportunity attack, the + creature’s speed becomes 0 for the rest of the turn. + - Creatures within 5 feet of you provoke opportunity attacks from + you even if they take the Disengage action before leaving your + reach. + - When a creature within 5 feet of you makes an attack against a + target other than you (and that target doesn’t have this feat), + you can use your reaction to make a melee weapon attack against + the attacking creature. + """ - name = 'Sentinel' source = 'Feats' @@ -577,17 +559,17 @@ class Sentinel(Feature): class Sharpshooter(Feature): """You have mastered ranged weapons and can make shots that others find impossible. You gain the following benefits: - - • Attacking at long range doesn't impose disadvantage on your ranged weapon + + - Attacking at long range doesn't impose disadvantage on your ranged weapon attack rolls. - - • Your ranged weapon attacks ignore half cover and three-quarters cover. - - • Before you make an attack with a ranged weapon that you are proficient - with, you can choose to take a - 5 penalty to the attack roll. If - the attack hits, you add +10 to the attack’s damage. + - Your ranged weapon attacks ignore half cover and three-quarters + cover. + - Before you make an attack with a ranged weapon that you are + proficient with, you can choose to take a - 5 penalty to the + attack roll. If the attack hits, you add +10 to the attack’s + damage. + """ - name = 'Sharpshooter' source = 'Feats' @@ -596,28 +578,28 @@ class ShieldMaster(Feature): """You use shields not just for protection but also for offense. You gain the following benefits while you are wielding a shield: - • If you take the Attack action on your turn, you can use a bonus action to - try to shove a creature within 5 feet of you with your shield. + - If you take the Attack action on your turn, you can use a bonus + action to try to shove a creature within 5 feet of you with your + shield. + - If you aren’t incapacitated, you can add your shield’s AC bonus + to any Dexterity saving throw you make against a spell or other + harmful effect that targets only you. + - If you are subjected to an effect that allows you to make a + Dexterity saving throw to take only half damage, you can use + your reaction to take no damage if you succeed on the saving + throw, interposing your shield between yourself and the source + of the effect. - • If you aren’t incapacitated, you can add your shield’s AC bonus to any - Dexterity saving throw you make against a spell or other harmful effect - that targets only you. - - • If you are subjected to an effect that allows you to make a Dexterity - saving throw to take only half damage, you can use your reaction to take - no damage if you succeed on the saving throw, interposing your shield - between yourself and the source of the effect. """ - name = 'Shield Master' source = 'Feats' class Skilled(Feature): - """You gain proficiency in any combination of three skills or tools of your - choice. + """You gain proficiency in any combination of three skills or tools of + your choice. + """ - name = 'Skilled' source = 'Feats' @@ -626,18 +608,16 @@ class Skulker(Feature): """You are expert at slinking through shadows. You gain the following benefits: - • You can try to hide when you are lightly obscured from the creature from - which you are hiding. - - • When you are hidden from a creature and miss it with a ranged weapon - attack, making the attack doesn't reveal your position. - - • Dim light doesn’t impose disadvantage on your Wisdom (Perception) checks - relying on sight. + - You can try to hide when you are lightly obscured from the + creature from which you are hiding. + - When you are hidden from a creature and miss it with a ranged + weapon attack, making the attack doesn't reveal your position. + - Dim light doesn’t impose disadvantage on your Wisdom + (Perception) checks relying on sight. Prerequisite: Dexterity 13 or higher - """ + """ name = 'Skulker' source = 'Feats' @@ -645,22 +625,22 @@ class Skulker(Feature): class SpellSniper(Feature): """You have learned techniques to enhance your attacks with certain kinds of spells, gaining the following benefits: - - • When you cast a spell that requires you to make an attack roll, + + - When you cast a spell that requires you to make an attack roll, the spell’s range is doubled. - - • Your ranged spell attacks ignore half cover and three-quarters cover. - - • You learn one cantrip that requires an attack roll. - - Choose the cantrip from the bard, cleric, druid, sorcerer, warlock, or - wizard spell list. Your spellcasting ability for this cantrip depends on - the spell list you chose from: Charisma for bard, sorcerer, or warlock; - Wisdom for cleric or druid; or Intelligence for wizard. - + - Your ranged spell attacks ignore half cover and three-quarters + cover. + - You learn one cantrip that requires an attack roll. + + Choose the cantrip from the bard, cleric, druid, sorcerer, + warlock, or wizard spell list. Your spellcasting ability for this + cantrip depends on the spell list you chose from: Charisma for + bard, sorcerer, or warlock; Wisdom for cleric or druid; or + Intelligence for wizard. + Prerequisite: The ability to cast at least one spell + """ - name = 'Spell Sniper' source = 'Feats' @@ -668,27 +648,27 @@ class SpellSniper(Feature): class TavernBrawler(Feature): """Accustomed to rough-and-tumble fighting using whatever weapons happen to be at hand, you gain the following benefits: - - • Increase your Strength or Constitution score by 1, to a maximum of 20. - - • You are proficient with improvised weapons and unarmed strikes. - - • Your unarmed strike uses a d4 for damage. - - • When you hit a creature with an unarmed strike or an improvised weapon on - your turn, you can use a bonus action to attempt to grapple the target. + + - Increase your Strength or Constitution score by 1, to a maximum + of 20. + - You are proficient with improvised weapons and unarmed strikes. + - Your unarmed strike uses a d4 for damage. + - When you hit a creature with an unarmed strike or an improvised + weapon on your turn, you can use a bonus action to attempt to + grapple the target. + """ - name = 'Tavern Brawler' source = 'Feats' class Tough(Feature): - """Your hit point maximum increases by an amount equal to twice your level - when you gain this feat. Whenever you gain a level thereafter, your hit - point maximum increases by an additional 2 hit points. + """Your hit point maximum increases by an amount equal to twice your + level when you gain this feat. Whenever you gain a level + thereafter, your hit point maximum increases by an additional 2 + hit points. + """ - name = 'Tough' source = 'Feats' @@ -697,20 +677,19 @@ class WarCaster(Feature): """You have practiced casting spells in the midst of combat, learning techniques that grant you the following benefits: - • You have advantage on Constitution saving throws that you make to maintain - your concentration on a spell when you take damage. + - You have advantage on Constitution saving throws that you make + to maintain your concentration on a spell when you take damage. + - You can perform the somatic components of spells even when you + have weapons or a shield in one or both hands. + - When a hostile creature’s movement provokes an opportunity + attack from you, you can use your reaction to cast a spell at + the creature, rather than making an opportunity attack. The + spell must have a casting time of 1 action and must target only + that creature. + + **Prerequisite:** The ability to cast at least one spell - • You can perform the somatic components of spells even when you have - weapons or a shield in one or both hands. - - • When a hostile creature’s movement provokes an opportunity attack from - you, you can use your reaction to cast a spell at the creature, rather - than making an opportunity attack. The spell must have a casting time of - 1 action and must target only that creature. - - Prerequisite: The ability to cast at least one spell """ - name = 'War Caster' source = 'Feats' @@ -718,35 +697,35 @@ class WarCaster(Feature): class WeaponMaster(Feature): """You have practiced extensively with a variety of weapons, gaining the following benefits: - - • Increase your Strength or Dexterity score by 1, to a maximum of 20. - - • You gain proficiency with four weapons of your choice. + + - Increase your Strength or Dexterity score by 1, to a maximum of + 20. + - You gain proficiency with four weapons of your choice. + """ - name = 'Weapon Master' source = 'Feats' # UA class BarbedHide(Feature): - """One of your ancestors was a barbed devil or other spiky fiend. Barbs - protrude from your head. You gain the following benefits: + """One of your ancestors was a barbed devil or other spiky + fiend. Barbs protrude from your head. You gain the following + benefits: - • Increase your Constitution or Charisma score by 1, up to a maximum of 20. + - Increase your Constitution or Charisma score by 1, up to a + maximum of 20. + - As a bonus action, you can cause small barbs to protrude all + over your body or cause them to retract. At the start of each of + your turns while the barbs are out, you deal 1d6 piercing damage + to any creature grappling you or any creature grappled by you. + - You gain proficiency in the Intimidation skill. If you’re + already proficient in it, your proficiency bonus is doubled for + any check you make with it. + + **Prerequisite:** Tiefling - • As a bonus action, you can cause small barbs to protrude all over your - body or cause them to retract. At the start of each of your turns while - the barbs are out, you deal 1d6 piercing damage to any creature grappling - you or any creature grappled by you. - - • You gain proficiency in the Intimidation skill. If you’re already - proficient in it, your proficiency bonus is doubled for any check you make - with it. - - **Prerequisite**: Tiefling """ - name = 'Barbed Hide' source = 'Feats' @@ -756,30 +735,29 @@ class BountifulLuckUA(Feature): for an attack roll, an ability check, or a saving throw, you can use your reaction to let the ally reroll the die. The ally must use the new roll. - **Prerequisite**: Halfling + **Prerequisite:** Halfling """ - name = 'Bountiful Luck (UA)' source = 'Feats' class CritterFriend(Feature): - """Your friendship with animals mystically deepens. You gain the following - benefits: - - • You gain proficiency in the Animal Handling skill. If you’re already - proficient in it, your proficiency bonus is doubled for any check you make - with it. - - • You learn the speak with animals spell and can cast it at will, without - expending a spell slot. You also learn the animal friendship spell, and - you can cast it once with this feat, without expending a spell slot. You - regain the ability to cast it in this way when you finish a long rest. - Intelligence is your spellcasting ability for these spells. - - **Prerequisite**: Gnome (Forest) + """Your friendship with animals mystically deepens. You gain the + following benefits: + + - You gain proficiency in the Animal Handling skill. If you’re + already proficient in it, your proficiency bonus is doubled for + any check you make with it. + - You learn the speak with animals spell and can cast it at will, + without expending a spell slot. You also learn the animal + friendship spell, and you can cast it once with this feat, + without expending a spell slot. You regain the ability to cast + it in this way when you finish a long rest. Intelligence is + your spellcasting ability for these spells. + + **Prerequisite:** Gnome (Forest) + """ - name = 'Critter Friend' source = 'Feats' @@ -789,9 +767,8 @@ class DragonWings(Feature): 20 feet if you aren’t wearing heavy armor and aren’t exceeding your carrying capacity. - **Prerequisite**: Dragonborn + **Prerequisite:** Dragonborn """ - name = 'Dragon Wings' source = 'Feats' @@ -799,73 +776,71 @@ class DragonWings(Feature): class EverybodysFriend(Feature): """You develop your magnetic personality to ease your way through the world. You gain the following benefits: - - • Increase your Charisma score by 1, up to a maximum of 20. - - • You gain proficiency in the Deception and Persuasion skills. If you’re - already proficient in either skill, your proficiency bonus is doubled for - any check you make with that skill. - - **Prerequisite**: Half-elf + + - Increase your Charisma score by 1, up to a maximum of 20. + - You gain proficiency in the Deception and Persuasion skills. If + you're already proficient in either skill, your proficiency + bonus is doubled for any check you make with that skill. + + **Prerequisite:** Half-elf + """ - name = "Everybody's Friend" source = 'Feats' class GrudgeBearer(Feature): - """You have a deep hatred for a particular kind of creature. Choose your - foes, a type of creature to bear the burden of your wrath: aberrations, - beasts, celestials, constructs, dragons, elementals, fey, fiends, giants, - monstrosities, oozes, plants, or undead. Alternatively, you can choose two - races of humanoid (such as gnolls and orcs). You gain the following - benefits: - - • Increase your Strength, Constitution, or Wisdom score by 1, to a maximum - of 20. - - • During the first round of any combat against your chosen foes, your attack - rolls against any of them have advantage. - - • When any of your chosen foes makes an opportunity attack against you, it - makes the attack roll with disadvantage. - - • Whenever you make an Intelligence (Arcana, History, Nature, or Religion) - check to recall information about your chosen foes, you add double your - proficiency bonus to the check, even if you’re not normally proficient. - - **Prerequisite**: Dwarf + """You have a deep hatred for a particular kind of creature. Choose + your foes, a type of creature to bear the burden of your wrath: + aberrations, beasts, celestials, constructs, dragons, elementals, + fey, fiends, giants, monstrosities, oozes, plants, or + undead. Alternatively, you can choose two races of humanoid (such + as gnolls and orcs). You gain the following benefits: + + - Increase your Strength, Constitution, or Wisdom score by 1, to a + maximum of 20. + - During the first round of any combat against your chosen foes, + your attack rolls against any of them have advantage. + - When any of your chosen foes makes an opportunity attack against + you, it makes the attack roll with disadvantage. + - Whenever you make an Intelligence (Arcana, History, Nature, or + Religion) check to recall information about your chosen foes, + you add double your proficiency bonus to the check, even if + you’re not normally proficient. + + **Prerequisite:** Dwarf + """ - name = 'Grudge-Bearer' source = 'Feats' class HumanDetermination(Feature): - """You are filled with a determination that can draw the unreachable within - your reach. You gain the following benefits: + """You are filled with a determination that can draw the unreachable + within your reach. You gain the following benefits: - • Increase one ability score of your choice by 1, to a maximum of 20. - - • When you make an attack roll, an ability check, or a saving throw, you can - do so with advantage. Once you use this ability, you can’t use it again - until you finish a short or long rest. - - **Prerequisite**: Human + - Increase one ability score of your choice by 1, to a maximum of + 20. + + - When you make an attack roll, an ability check, or a saving + throw, you can do so with advantage. Once you use this ability, + you can’t use it again until you finish a short or long rest. + + **Prerequisite:** Human + """ - name = 'Human Determination' source = 'Feats' class OrcishAggression(Feature): - """As a bonus action, you can move up to your speed toward an enemy of your - choice that you can see or hear. You must end this move closer to the enemy - than you started. - - **Prerequisite**: Half-orc + """As a bonus action, you can move up to your speed toward an enemy of + your choice that you can see or hear. You must end this move + closer to the enemy than you started. + + **Prerequisite:** Half-orc + """ - name = 'Orcish Aggression' source = 'Feats' @@ -873,111 +848,113 @@ class OrcishAggression(Feature): class WonderMaker(Feature): """You master the tinker techniques of your people. You gain the following benefits: - - • Increase your Dexterity or Intelligence score by 1, to a maximum of 20. - - • When you make a check using your proficiency with tinker’s tools, you add - double your proficiency bonus to the check. - - • When you make a device with your Tinker trait, you have the following - additional options for what you make: - + + - Increase your Dexterity or Intelligence score by 1, to a maximum + of 20. + - When you make a check using your proficiency with tinker’s + tools, you add double your proficiency bonus to the check. + - When you make a device with your Tinker trait, you have the + following additional options for what you make: + **Alarm.** This device senses when a creature moves to within 15 feet of it without speaking aloud a password chosen when you create it. One round after a creature moves into range, the alarm makes a shrill ringing that lasts for 1 minute and can be heard from up to 300 feet away. - + **Calculator.** This device makes doing sums easy. - + **Lifter.** This device can be used as a block and tackle, allowing its user to hoist five times the weight the user can normally lift. - + **Timekeeper.** This pocket watch keeps accurate time. - + **Weather Sensor.** When used as an action, this device predicts weather conditions in a 1-mile radius over the next 4 hours, showing one symbol (clouds, sun/moon, rain, or snow) for each hour. - - **Prerequisite**: Gnome (rock) + + **Prerequisite:** Gnome (rock) + """ - name = 'Wonder Maker' source = 'Feats' # XGE class BountifulLuck(Feature): - """Your people have extraordinary luck, which you have learned to mystically - lend to your companions when you see them falter. You’re not sure how you do - it; you just wish it, and it happens. Surely a sign of fortune’s favor! When - an ally you can see within 30 feet of you rolls a 1 on the d20 for an attack - roll, an ability check, or a saving throw, you can use your reaction to let - the ally reroll the die. The ally must use the new roll. When you use this - ability, you can’t use your Lucky racial trait before the end of your next - turn. - - **Prerequisite**: Halfling + """Your people have extraordinary luck, which you have learned to + mystically lend to your companions when you see them + falter. You're not sure how you do it; you just wish it, and it + happens. Surely a sign of fortune’s favor! When an ally you can + see within 30 feet of you rolls a 1 on the d20 for an attack roll, + an ability check, or a saving throw, you can use your reaction to + let the ally reroll the die. The ally must use the new roll. When + you use this ability, you can’t use your Lucky racial trait before + the end of your next turn. + + **Prerequisite:** Halfling + """ - name = 'Bountiful Luck' source = 'Feats' class DragonFear(Feature): """When angered, you radiate menace. You gain the following benefits: - • Increase your Strength, Constitution or Charisma score by 1, up to - a maximum of 20. - • Instead of exhaling destructive energy, you can expend a use of your - Breath Weapon trait to roar, forcing each creature of your choice within - 30 feet of you to make a Wisdom saving throw (DC 8 + your proficiency - bonus + your Charisma modifier). A target automatically succeeds if it - can’t hear or see you. On a failed save, a target becomes frightened of - you for 1 minute. If the frightened target takes any damage, it can repeat - the saving throw, ending the effect on itself on a success. - - **Prerequisite**: Dragonborn + + - Increase your Strength, Constitution or Charisma score by 1, up + to a maximum of 20. + - Instead of exhaling destructive energy, you can expend a use of + your Breath Weapon trait to roar, forcing each creature of your + choice within 30 feet of you to make a Wisdom saving throw (DC 8 + + your proficiency bonus + your Charisma modifier). A target + automatically succeeds if it can’t hear or see you. On a failed + save, a target becomes frightened of you for 1 minute. If the + frightened target takes any damage, it can repeat the saving + throw, ending the effect on itself on a success. + + **Prerequisite:** Dragonborn + """ - name = 'Dragon Fear' source = 'Feats' class DragonHide(Feature): - """You manifest scales and claws reminiscent of your draconic ancestors. You - gain the following benefits: - - • Increase your Strength, Constitution or Charisma score by 1, up to - a maximum of 20. - - • Your scales harden. While you aren’t wearing armor, you can calculate your - AC as 13 + your Dexterity modifier. You can use a shield and still gain - this benefit. - - • You grow retractable claws from the tips of your fingers. Extending or - retracting the claws requires no action. The claws are natural weapons, - which you can use to make unarmed strikes. If you hit with them, you deal - slashing damage equal to 1d4 + your Strength modifier, instead of - the normal bludgeoning damage for an unarmed strike. - - **Prerequisite**: Dragonborn + """You manifest scales and claws reminiscent of your draconic + ancestors. You gain the following benefits: + + - Increase your Strength, Constitution or Charisma score by 1, up + to a maximum of 20. + - Your scales harden. While you aren’t wearing armor, you can + calculate your AC as 13 + your Dexterity modifier. You can use a + shield and still gain this benefit. + - You grow retractable claws from the tips of your + fingers. Extending or retracting the claws requires no + action. The claws are natural weapons, which you can use to make + unarmed strikes. If you hit with them, you deal slashing damage + equal to 1d4 + your Strength modifier, instead of the normal + bludgeoning damage for an unarmed strike. + + **Prerequisite:** Dragonborn + """ - name = 'Dragon Hide' source = 'Feats' class DrowHideMagic(Feature): - """You learn more of the magic typical of dark elves. You learn the detect - magic spell and can cast it at will, without expending a spell slot. You - also learn levitate and dispel magic, each of which you can cast once - without expending a spell slot. You regain the ability to cast those two - spells in this way when you finish a long rest. - + """You learn more of the magic typical of dark elves. You learn the + detect magic spell and can cast it at will, without expending a + spell slot. You also learn levitate and dispel magic, each of + which you can cast once without expending a spell slot. You regain + the ability to cast those two spells in this way when you finish a + long rest. + Charisma is your spellcasting ability for all three spells. - - **Prerequisite**: Elf (drow) + + **Prerequisite:** Elf (drow) + """ - name = 'Drow Hide Magic' source = 'Feats' @@ -985,53 +962,55 @@ class DrowHideMagic(Feature): class DwarvenFortitude(Feature): """You have the blood of dwarf heroes flowing through your veins. You gain the following benefits: - - • Increase your Constitution score by 1, up to a maximum of 20. - - • Whenever you take the Dodge action in combat, you can spend one Hit Die to - heal yourself. Roll the die, add your Constitution modifier, and regain - a number of hit points equal to the total (minimum of 1). - - **Prerequisite**: Dwarf + + - Increase your Constitution score by 1, up to a maximum of 20. + - Whenever you take the Dodge action in combat, you can spend one + Hit Die to heal yourself. Roll the die, add your Constitution + modifier, and regain a number of hit points equal to the total + (minimum of 1). + + **Prerequisite:** Dwarf + """ - name = 'Dwarven Fortitude' source = 'Feats' class ElvenAccuracy(Feature): - """The accuracy of elves is legendary, especially that of elf archers and - spellcasters. You have uncanny aim with attacks that rely on precision - rather than brute force. You gain the following benefits: - - • Increase your Dexterity, Intelligence, Wisdom, or Charisma score by 1, to - a maximum of 20. - - • Whenever you have advantage on an attack roll using Dexterity, - Intelligence, Wisdom, or Charisma, you can reroll one of the dice once. - - **Prerequisite**: Elf or half-elf + """The accuracy of elves is legendary, especially that of elf archers + and spellcasters. You have uncanny aim with attacks that rely on + precision rather than brute force. You gain the following + benefits: + + - Increase your Dexterity, Intelligence, Wisdom, or Charisma score + by 1, to a maximum of 20. + - Whenever you have advantage on an attack roll using Dexterity, + Intelligence, Wisdom, or Charisma, you can reroll one of the + dice once. + + **Prerequisite:** Elf or half-elf + """ - name = 'Elven Accuracy' source = 'Feats' class FadeAway(Feature): - """Your people are clever, with a knack for illusion magic. You have learned - a magical trick for fading away when you suffer harm. You gain the following - benefits: - - • Increase your Dexterity or Intelligence score by 1, to a maximum of 20. - - • Immediately after you take damage, you can use a reaction to magically - become invisible until the end of your next turn or until you attack, deal - damage, or force someone to make a saving throw. Once you use this ability, - you can’t do so again until you finish a short or long rest. - - **Prerequisite**: Gnome + """Your people are clever, with a knack for illusion magic. You have + learned a magical trick for fading away when you suffer harm. You + gain the following benefits: + + - Increase your Dexterity or Intelligence score by 1, to a maximum + of 20. + - Immediately after you take damage, you can use a reaction to + magically become invisible until the end of your next turn or + until you attack, deal damage, or force someone to make a saving + throw. Once you use this ability, you can’t do so again until + you finish a short or long rest. + + **Prerequisite:** Gnome + """ - name = 'Fade Away' source = 'Feats' @@ -1041,19 +1020,18 @@ class FeyTeleportation(Feature): possess, except your eladrin cousins. Drawing on your fey ancestry, you can momentarily stride through the Feywild to shorten your path from one place to another. You gain the following benefits: - - • Increase your Intelligence or Charisma score by 1, to a maximum of 20. - - • You learn to speak, read, and write Sylvan. - - • You learn the misty step spell and can cast it once without expending - a spell slot. You regain the ability to cast it in this way when you - finish a short or long rest. Intelligence is your spellcasting ability for - this spell. - - **Prerequisite**: Elf (high) + + - Increase your Intelligence or Charisma score by 1, to a maximum + of 20. + - You learn to speak, read, and write Sylvan. + - You learn the misty step spell and can cast it once without + expending a spell slot. You regain the ability to cast it in + this way when you finish a short or long rest. Intelligence is + your spellcasting ability for this spell. + + **Prerequisite:** Elf (high) + """ - name = 'Fey Teleportation' source = 'Feats' @@ -1061,23 +1039,22 @@ class FeyTeleportation(Feature): class FlamesOfPhlegethos(Feature): """You learn to call on hellfire to serve your commands. You gain the following benefits: - - • Increase your Intelligence or Charisma score by 1, to a maximum of 20. - - • When you roll fire damage for a spell you cast, you can reroll any roll - of 1 on the fire damage dice, but you must use the new roll, even if it is - another 1. - - • Whenever you cast a spell that deals fire damage, you can cause flames to - wreathe you until the end of your next turn. The flames don’t harm you or - your possessions, and they shed bright light out to 30 feet and dim light - for an additional 30 feet. While the flames are present, any creature - within 5 feet of you that hits you with a melee attack takes 1d4 fire - damage. - - **Prerequisite**: Tiefling + + - Increase your Intelligence or Charisma score by 1, to a maximum + of 20. + - When you roll fire damage for a spell you cast, you can reroll + any roll of 1 on the fire damage dice, but you must use the new + roll, even if it is another 1. + - Whenever you cast a spell that deals fire damage, you can cause + flames to wreathe you until the end of your next turn. The + flames don’t harm you or your possessions, and they shed bright + light out to 30 feet and dim light for an additional 30 + feet. While the flames are present, any creature within 5 feet + of you that hits you with a melee attack takes 1d4 fire damage. + + **Prerequisite:** Tiefling + """ - name = 'Flames of Phlegethos' source = 'Feats' @@ -1085,36 +1062,34 @@ class FlamesOfPhlegethos(Feature): class InfernalConstitution(Feature): """Fiendish blood runs strong in you, unlocking a resilience akin to that possessed by some fiends. You gain the following benefits: - - • Increase your Constitution score by 1, to a maximum of 20. - - • You have resistance to cold damage and poison damage. - - • You have advantage on saving throws against being poisoned. - - **Prerequisite**: Tiefling + + - Increase your Constitution score by 1, to a maximum of 20. + - You have resistance to cold damage and poison damage. + - You have advantage on saving throws against being poisoned. + + **Prerequisite:** Tiefling + """ - name = 'Infernal Constitution' source = 'Feats' class OrchishFury(Feature): """Your inner fury burns tirelessly. You gain the following benefits: - - • Increase your Strength or Constitution score by 1, to a maximum of 20. - - • When you hit with an attack using a simple or martial weapon, you can roll - one of the weapon’s damage dice an additional time and add it as extra - damage of the weapon’s damage type. Once you use this ability, you can’t - use it again until you finish a short or long rest. - - • Immediately after you use your Relentless Endurance trait, you can use - your reaction to make one weapon attack. - - **Prerequisite**: Half-orc + + - Increase your Strength or Constitution score by 1, to a maximum + of 20. + - When you hit with an attack using a simple or martial weapon, + you can roll one of the weapon’s damage dice an additional time + and add it as extra damage of the weapon’s damage type. Once you + use this ability, you can’t use it again until you finish a + short or long rest. + - Immediately after you use your Relentless Endurance trait, you + can use your reaction to make one weapon attack. + + **Prerequisite:** Half-orc + """ - name = 'Orchish Fury' source = 'Feats' @@ -1122,19 +1097,19 @@ class OrchishFury(Feature): class Prodigy(Feature): """You have a knack for learning new things. You gain the following benefits: - - • You gain one skill proficiency of your choice, one tool proficiency of - your choice, and fluency in one language of your choice. - - • Choose one skill in which you have proficiency. You gain expertise with - that skill, which means your proficiency bonus is doubled for any ability - check you make with it. The skill you choose must be one that isn’t - already benefiting from a feature, such as Expertise, that doubles your - proficiency bonus. - - **Prerequisite**: Half-elf, half-orc, or human + + - You gain one skill proficiency of your choice, one tool + proficiency of your choice, and fluency in one language of your + choice. + - Choose one skill in which you have proficiency. You gain + expertise with that skill, which means your proficiency bonus is + doubled for any ability check you make with it. The skill you + choose must be one that isn’t already benefiting from a feature, + such as Expertise, that doubles your proficiency bonus. + + **Prerequisite:** Half-elf, half-orc, or human + """ - name = 'Prodigy' source = 'Feats' @@ -1142,51 +1117,51 @@ class Prodigy(Feature): class SecondChance(Feature): """Fortune favors you when someone tries to strike you. You gain the following benefits: - - • Increase your Dexterity, Constitution or Charisma score by 1, to a maximum - of 20. - - • When a creature you can see hits you with an attack roll, you can use your - reaction to force that creature to reroll. Once you use this ability, you - can’t use it again until you roll initiative at the start of combat or - until you finish a short or long rest. - - **Prerequisite**: Halfling + + - Increase your Dexterity, Constitution or Charisma score by 1, to + a maximum of 20. + - When a creature you can see hits you with an attack roll, you + can use your reaction to force that creature to reroll. Once you + use this ability, you can’t use it again until you roll + initiative at the start of combat or until you finish a short or + long rest. + + **Prerequisite:** Halfling + """ - name = 'Second Chance' source = 'Feats' class SquatNimbleness(Feature): """You are uncommonly nimble for your race. You gain the following benefits: - - • Increase your Strength or Dexterity score by 1, to a maximum of 20. - - • Increase your walking speed by 5 feet. - - • You gain proficiency in the Acrobatics or Athletics skill (your choice). - - • You have advantage on any Strength (Athletics) or Dexterity (Acrobatics) - check you make to escape from being grappled. - - **Prerequisite**: Dwarf or a Small race + + - Increase your Strength or Dexterity score by 1, to a maximum of + 20. + - Increase your walking speed by 5 feet. + - You gain proficiency in the Acrobatics or Athletics skill (your + choice). + - You have advantage on any Strength (Athletics) or Dexterity + (Acrobatics) check you make to escape from being grappled. + + **Prerequisite:** Dwarf or a Small race + """ - name = 'Squat Nimbleness' source = 'Feats' class WoodElfMagic(Feature): """You learn the magic of the primeval woods, which are revered and - protected by your people. You learn one druid cantrip of your choice. You - also learn the long strider and pass without trace spells, each of which you - can cast once without expending a spell slot. You regain the ability to cast - these two spells in this way when you finish a long rest. Wisdom is your - spellcasting ability for all three spells. - - **Prerequisite**: Elf (wood) + protected by your people. You learn one druid cantrip of your + choice. You also learn the long strider and pass without trace + spells, each of which you can cast once without expending a spell + slot. You regain the ability to cast these two spells in this way + when you finish a long rest. Wisdom is your spellcasting ability + for all three spells. + + **Prerequisite:** Elf (wood) + """ - name = 'Wood Elf Magic' source = 'Feats' diff --git a/dungeonsheets/features/features.py b/dungeonsheets/features/features.py index 897eb87..3beb1d8 100644 --- a/dungeonsheets/features/features.py +++ b/dungeonsheets/features/features.py @@ -10,12 +10,12 @@ def create_feature(**params): Parameters ---------- params : optional - Saved as attributes of the new class. + Saved as attributes of the new class. Returns ------- NewFeature - New feature class, subclass of ``Feature``, with given params. + New feature class, subclass of ``Feature``, with given params. """ NewFeature = type('UnknownFeature', (Feature,), params) return NewFeature @@ -33,34 +33,34 @@ class Feature(): needs_implementation = False # Set to True if need to find way to compute stats def __init__(self, owner=None): - self.owner = owner - self.spells_known = [S() for S in self.spells_known] - self.spells_prepared = [S() for S in self.spells_prepared] + self.owner = owner + self.spells_known = [S() for S in self.spells_known] + self.spells_prepared = [S() for S in self.spells_prepared] def __eq__(self, other): - return (self.name == other.name) and (self.source == other.source) + return (self.name == other.name) and (self.source == other.source) def __hash__(self): - return 0 + return 0 def __str__(self): - return self.name + return self.name def __repr__(self): - return "\"{:s}\"".format(self.name) + return "\"{:s}\"".format(self.name) def weapon_func(self, weapon: weapons.Weapon, **kwargs): - """ - Updates weapon based on the Feature property + """ + Updates weapon based on the Feature property - Parameters - ---------- - weapon - The weapon to be tested for special bonuses - kwargs - Any other key-word arguments the function may require - """ - pass + Parameters + ---------- + weapon + The weapon to be tested for special bonuses + kwargs + Any other key-word arguments the function may require + """ + pass class FeatureSelector(Feature): @@ -72,17 +72,17 @@ class FeatureSelector(Feature): source = '' def __new__(t, owner, feature_choices=[]): - # Look for matching feature_choices - new_feat = Feature.__new__(Feature, owner=owner) - new_feat.__doc__ = t.__doc__ - new_feat.name = t.name - new_feat.source = t.source - new_feat.needs_implementation = True - for selection in feature_choices: - if selection.lower() in t.options: - feat_class = t.options[selection.lower()] - if owner.has_feature(feat_class): - continue - new_feat = feat_class(owner=owner) - new_feat.source = t.source - return new_feat + # Look for matching feature_choices + new_feat = Feature.__new__(Feature, owner=owner) + new_feat.__doc__ = t.__doc__ + new_feat.name = t.name + new_feat.source = t.source + new_feat.needs_implementation = True + for selection in feature_choices: + if selection.lower() in t.options: + feat_class = t.options[selection.lower()] + if owner.has_feature(feat_class): + continue + new_feat = feat_class(owner=owner) + new_feat.source = t.source + return new_feat diff --git a/dungeonsheets/features/fighter.py b/dungeonsheets/features/fighter.py index ff1179d..5365ac0 100644 --- a/dungeonsheets/features/fighter.py +++ b/dungeonsheets/features/fighter.py @@ -1,7 +1,7 @@ from dungeonsheets import armor, weapons from dungeonsheets.features.features import Feature, FeatureSelector from dungeonsheets.features.ranger import (Archery, Defense, Dueling, - TwoWeaponFighting) + TwoWeaponFighting) # Features added for all PHB classes # SCAG and XGTE needed @@ -127,21 +127,21 @@ class FighterFightingStyle(FeatureSelector): """ options = {'archery': Archery, - 'defense': Defense, - 'dueling': Dueling, - 'great': GreatWeaponFighting, - 'great-weapon fighting': GreatWeaponFighting, - 'projection': Protection, - 'two-weapon fighting': TwoWeaponFighting, - 'two-weapon': TwoWeaponFighting, - 'dual wield': TwoWeaponFighting, - 'blinding fighting': BlindingFighting, - 'close quarters shooter': CloseQuartersShooter, - 'interception': Interception, - 'mariner': Mariner, - 'thrown weapon fighting': ThrownWeaponFighting, - 'tunnel fighter': TunnelFighter, - 'unarmed fighting': UnarmedFighting} + 'defense': Defense, + 'dueling': Dueling, + 'great': GreatWeaponFighting, + 'great-weapon fighting': GreatWeaponFighting, + 'projection': Protection, + 'two-weapon fighting': TwoWeaponFighting, + 'two-weapon': TwoWeaponFighting, + 'dual wield': TwoWeaponFighting, + 'blinding fighting': BlindingFighting, + 'close quarters shooter': CloseQuartersShooter, + 'interception': Interception, + 'mariner': Mariner, + 'thrown weapon fighting': ThrownWeaponFighting, + 'tunnel fighter': TunnelFighter, + 'unarmed fighting': UnarmedFighting} name = "Fighting Style (Select One)" source = "Fighter" @@ -183,13 +183,13 @@ class ExtraAttackFighter(Feature): @property def name(self): - level = self.owner.Fighter.level - if level < 11: - return self._name + ' (2x)' - elif level < 20: - return self._name + ' (3x)' - else: - return self._name + ' (4x)' + level = self.owner.Fighter.level + if level < 11: + return self._name + ' (2x)' + elif level < 20: + return self._name + ' (3x)' + else: + return self._name + ' (4x)' class Indomitable(Feature): @@ -206,13 +206,13 @@ class Indomitable(Feature): @property def name(self): - level = self.owner.Fighter.level - if level < 13: - return self._name + ' (1x/LR)' - elif level < 17: - return self._name + ' (2x/LR)' - else: - return self._name + ' (3x/LR)' + level = self.owner.Fighter.level + if level < 13: + return self._name + ' (1x/LR)' + elif level < 17: + return self._name + ' (2x/LR)' + else: + return self._name + ' (3x/LR)' # Champion @@ -255,14 +255,14 @@ class AdditionalFightingStyle(FeatureSelector): two-weapon fighting 2 """ options = {'archery 2': Archery, - 'defense 2': Defense, - 'dueling 2': Dueling, - 'great 2': GreatWeaponFighting, - 'great-weapon fighting 2': GreatWeaponFighting, - 'projection 2': Protection, - 'two-weapon fighting 2': TwoWeaponFighting, - 'two-weapon 2': TwoWeaponFighting, - 'dual wield 2': TwoWeaponFighting} + 'defense 2': Defense, + 'dueling 2': Dueling, + 'great 2': GreatWeaponFighting, + 'great-weapon fighting 2': GreatWeaponFighting, + 'projection 2': Protection, + 'two-weapon fighting 2': TwoWeaponFighting, + 'two-weapon 2': TwoWeaponFighting, + 'dual wield 2': TwoWeaponFighting} name = "Fighting Style (Select One)" source = "Fighter (Champion)" @@ -314,13 +314,13 @@ class CombatSuperiority(Feature): @property def name(self): - level = self.owner.Fighter.level - if level < 10: - return self._name + ' (d8)' - elif level < 18: - return self._name + ' (d10)' - else: - return self._name + ' (d12)' + level = self.owner.Fighter.level + if level < 10: + return self._name + ' (d8)' + elif level < 18: + return self._name + ' (d10)' + else: + return self._name + ' (d12)' class StudentOfWar(Feature): @@ -662,11 +662,11 @@ class RoyalEnvoy(Feature): source = "Fighter (Purple Dragon Knight)" def __init__(self, owner=None): - super().__init__(owner=owner) - if 'persuasion' not in self.owner.skill_proficiencies: - self.owner.skill_proficiencies.append('persuasion') - if 'persuasion' not in self.owner.skill_expertise: - self.owner.skill_expertise.append('persuasion') + super().__init__(owner=owner) + if 'persuasion' not in self.owner.skill_proficiencies: + self.owner.skill_proficiencies.append('persuasion') + if 'persuasion' not in self.owner.skill_expertise: + self.owner.skill_expertise.append('persuasion') class InspiringSurge(Feature): @@ -934,8 +934,8 @@ class UnwaveringMark(Feature): @property def name(self): - num = max(1, self.owner.strength.modifier) - return self._name + ' ({:d}x/LR)'.format(num) + num = max(1, self.owner.strength.modifier) + return self._name + ' ({:d}x/LR)'.format(num) class WardingManeuver(Feature): @@ -956,8 +956,8 @@ class WardingManeuver(Feature): @property def name(self): - num = max(1, self.owner.constitution.modifier) - return self._name + ' ({:d}x/LR)'.format(num) + num = max(1, self.owner.constitution.modifier) + return self._name + ' ({:d}x/LR)'.format(num) class HoldTheLine(Feature): diff --git a/dungeonsheets/features/monk.py b/dungeonsheets/features/monk.py index 3d23e71..b679f77 100644 --- a/dungeonsheets/features/monk.py +++ b/dungeonsheets/features/monk.py @@ -3,53 +3,54 @@ from dungeonsheets.features.features import Feature class UnarmoredDefenseMonk(Feature): - """Beginning at 1st level, while you are wearing no armor and not wearing a - shield, your AC equals 10 + your Dexterity modifier + your Wisdom modifier. - - This bonus is computed in the AC given on the Character Sheet above. - + """Beginning at 1st level, while you are wearing no armor and not + wearing a shield, your AC equals 10 + your Dexterity modifier + + your Wisdom modifier. + + This bonus is computed in the AC given on the Character Sheet + above. + """ name = "Unarmored Defense" source = 'Monk' class MartialArts(Feature): - """At 1st level, your practice of martial arts gives you mastery of combat - styles that use unarmed strikes and monk weapons, which are shortswords and - any simple melee weapons that don't have the two-handed or heavy - property. You gain the following benefits while you are unarmed or wielding - only monk weapons and you aren't wearing armor or wielding a shield: - - • You can use Dexterity instead of Strength for the attack and damage rolls - of your unarmed strikes and monk weapons. - - • You can roll a d4 in place of the normal damage of your unarmed strike or - monk weapon. This die changes as you gain monk levels, as shown in the - Martial Arts column of the Monk table. - - • When you use the Attack action with an unarmed strike or a monk weapon on - your turn, you can make one unarmed strike as a bonus action. For example, - if you take the Attack action and attack with a quarter- staff, you can - also make an unarmed strike as a bonus action, assuming you haven't already - taken a bonus action this turn. - - Certain monasteries use specializepd forms of the monk weapons. For - example, you might use a club that is two lengths of w ood connected by a - short chain (called a nunchaku) or a sickle with a shorter, straighter - blade (called a kama). Whatever name you use for a monk weapon, you can use - the game statistics provided for - + """At 1st level, your practice of martial arts gives you mastery of + combat styles that use unarmed strikes and monk weapons, which are + shortswords and any simple melee weapons that don't have the + two-handed or heavy property. You gain the following benefits + while you are unarmed or wielding only monk weapons and you aren't + wearing armor or wielding a shield: + + - You can use Dexterity instead of Strength for the attack and + damage rolls of your unarmed strikes and monk weapons. + - You can roll a d4 in place of the normal damage of your unarmed + strike or monk weapon. This die changes as you gain monk levels, + as shown in the Martial Arts column of the Monk table. + - When you use the Attack action with an unarmed strike or a monk + weapon on your turn, you can make one unarmed strike as a bonus + action. For example, if you take the Attack action and attack + with a quarter- staff, you can also make an unarmed strike as a + bonus action, assuming you haven't already taken a bonus action + this turn. + + Certain monasteries use specializepd forms of the monk + weapons. For example, you might use a club that is two lengths of + w ood connected by a short chain (called a nunchaku) or a sickle + with a shorter, straighter blade (called a kama). Whatever name + you use for a monk weapon, you can use the game statistics + provided for + """ name = "Martial Arts" source = 'Monk' die = 'd4' - + def weapon_func(self, weapon: weapons.Weapon, **kwargs): - """ - Update increasing damage dice and DEX mod of Monk weapons - """ + """Update increasing damage dice and DEX mod of Monk weapons""" is_monk_weapon = any([isinstance(weapon, w) - for w in weapons.monk_weapons]) + for w in weapons.monk_weapons]) level = self.owner.Monk.level if not is_monk_weapon: return weapon @@ -67,23 +68,25 @@ class MartialArts(Feature): class Ki(Feature): - """Starting at 2nd level, your training allows you to harness the mystic - energy of ki. Your access to this energy is represented by a number of ki - points. Your monk level determines the number of points you have, as shown - in the Ki Points column of the Monk table. You can spend these points to - fuel various ki features. - - You start knowing three such features: Flurry of Blows, Patient Defense, - and Step of the Wind. You learn more ki features as you gain levels in this - class. When you spend a ki point, it is unavailable until you finish a - short or long rest, at the end of which you draw all of your expended ki - back into yourself. You must spend at least 30 minutes of the rest - meditating to regain your ki points. - - Some of your ki features require your target to make a saving throw to - resist the feature's effects. The saving throw DC is calculated as follows: - Ki save DC = 8 + your proficiency bonus + your Wisdom modifier - + """Starting at 2nd level, your training allows you to harness the + mystic energy of ki. Your access to this energy is represented by + a number of ki points. Your monk level determines the number of + points you have, as shown in the Ki Points column of the Monk + table. You can spend these points to fuel various ki features. + + You start knowing three such features: Flurry of Blows, Patient + Defense, and Step of the Wind. You learn more ki features as you + gain levels in this class. When you spend a ki point, it is + unavailable until you finish a short or long rest, at the end of + which you draw all of your expended ki back into yourself. You + must spend at least 30 minutes of the rest meditating to regain + your ki points. + + Some of your ki features require your target to make a saving + throw to resist the feature's effects. The saving throw DC is + calculated as follows: Ki save DC = 8 + your proficiency bonus + + your Wisdom modifier + """ _name = "Ki" source = "Monk" @@ -150,23 +153,23 @@ class UnarmoredMovement(Feature): class DeflectMissiles(Feature): - """Starting at 3rd level, you can use your reaction to deflect or catch the - missile when you are hit by a ranged weapon attack. When you do so, the - damage you take from the attack is reduced by 1d10 + your Dexterity - modifier + your monk level. If you reduce the damage to 0, you can catch - the missile if it is small enough for you to hold in one hand and you have - at least one hand free. - - If you catch a missile in this way, you can spend 1 ki point to make a - ranged attack with the weapon or piece of ammunition you just caught, as - part of the same reaction. You make this attack with proficiency, - regardless of your weapon proficiencies, and the missile counts as a monk - weapon for the attack - + """Starting at 3rd level, you can use your reaction to deflect or + catch the missile when you are hit by a ranged weapon attack. When + you do so, the damage you take from the attack is reduced by 1d10 + + your Dexterity modifier + your monk level. If you reduce the + damage to 0, you can catch the missile if it is small enough for + you to hold in one hand and you have at least one hand free. + + If you catch a missile in this way, you can spend 1 ki point to + make a ranged attack with the weapon or piece of ammunition you + just caught, as part of the same reaction. You make this attack + with proficiency, regardless of your weapon proficiencies, and the + missile counts as a monk weapon for the attack + """ _name = "Deflect Missiles" source = "Monk" - + @property def name(self): mod = self.owner.dexterity.modifier + self.owner.Monk.level @@ -174,9 +177,9 @@ class DeflectMissiles(Feature): class SlowFall(Feature): - """Beginning at 4th level, you can use your reaction when you fall to reduce - any falling damage you take by an amount equal to five times your monk - level. + """Beginning at 4th level, you can use your reaction when you fall to + reduce any falling damage you take by an amount equal to five + times your monk level. """ name = "Slow Fall" @@ -184,9 +187,9 @@ class SlowFall(Feature): class ExtraAttackMonk(Feature): - """Beginning at 5th level, you can attack twice, instead of once, whenever you - take the Attack action on your turn - + """Beginning at 5th level, you can attack twice, instead of once, + whenever you take the Attack action on your turn + """ name = "Extra Attack (2x)" source = "Monk" @@ -194,21 +197,21 @@ class ExtraAttackMonk(Feature): class StunningStrike(Feature): """Starting at 5th level, you can interfere with the flow of ki in an - opponent's body. When you hit another creature with a melee weapon attack, - you can spend 1 ki point to attempt a stunning strike. The target must - succeed on a Constitution saving throw or be stunned until the end of your - next turn - + opponent's body. When you hit another creature with a melee weapon + attack, you can spend 1 ki point to attempt a stunning strike. The + target must succeed on a Constitution saving throw or be stunned + until the end of your next turn + """ name = "Stunning Strike" source = "Monk" class KiEmpoweredStrikes(Feature): - """Starting at 6th level, your unarmed strikes count as magical for the - purpose of overcoming resistance and immunity to nonmagical attacks and - damage - + """Starting at 6th level, your unarmed strikes count as magical for + the purpose of overcoming resistance and immunity to nonmagical + attacks and damage + """ name = "Ki-Empowered Strikes" source = "Monk" @@ -217,58 +220,61 @@ class KiEmpoweredStrikes(Feature): class StillnessOfMind(Feature): """Starting at 7th level, you can use your action to end one effect on yourself that is causing you to be charmed or frightened - + """ name = "Stillness of Mind" source = "Monk" class PurityOfBody(Feature): - """At 10th level, your mastery of the ki flowing through you makes you immune - to disease and poison. - + """At 10th level, your mastery of the ki flowing through you makes you + immune to disease and poison. + """ name = "Purity of Body" source = "Monk" class TongueOfTheSunAndMoon(Feature): - """Starting at 13th level, you learn to touch the ki of other minds so that - you understand all spoken languages. Moreover, any creature that can - understand a language can understand what you say. - + """Starting at 13th level, you learn to touch the ki of other minds so + that you understand all spoken languages. Moreover, any creature + that can understand a language can understand what you say. + """ name = "Tongue of the Sun and Moon" source = "Monk" class DiamondSoul(Feature): - """Beginning at 14th level, your mastery of ki grants you proficiency in all - saving throws. Additionally, whenever you make a saving throw and fail, you - can spend 1 ki point to reroll it and take the second result. - + """Beginning at 14th level, your mastery of ki grants you proficiency + in all saving throws. Additionally, whenever you make a saving + throw and fail, you can spend 1 ki point to reroll it and take the + second result. + """ name = "Diamond Soul" source = "Monk" class TimelessBody(Feature): - """At 15th level, your ki sustains you so that you suffer none of the frailty - of old age, and you can't be aged magically. You can still die of old age, - however. In addition, you no longer need food or water. - + """At 15th level, your ki sustains you so that you suffer none of the + frailty of old age, and you can't be aged magically. You can still + die of old age, however. In addition, you no longer need food or + water. + """ name = "Timeless Body" source = "Monk" class EmptyBody(Feature): - """Beginning at 18th level, you can use your action to spend 4 ki points to - become invisible for 1 minute. During that time, you also have resistance - to all damage but force damage. Additionally, you can spend 8 ki points to - cast the astral projection spell, without needing material components. When - you do so, you can't take any other creatures with you. - + """Beginning at 18th level, you can use your action to spend 4 ki + points to become invisible for 1 minute. During that time, you + also have resistance to all damage but force damage. Additionally, + you can spend 8 ki points to cast the astral projection spell, + without needing material components. When you do so, you can't + take any other creatures with you. + """ name = "Empty Body" source = "Monk" @@ -277,7 +283,7 @@ class EmptyBody(Feature): class PerfectSelf(Feature): """At 20th level, when you roll for initiative and have no ki points remaining, you regain 4 ki points. - + """ name = "Perfect Self" source = "Monk" @@ -285,40 +291,41 @@ class PerfectSelf(Feature): # Way of the Open Hand class OpenHandTechnique(Feature): - """Starting when you choose this tradition at 3rd level, you can manipulate - your enemy's ki when you harness your own. Whenever you hit a creature with - one of the attacks granted by your Flurry of Blows, you can impose one of - the following effects on that target: - - • It must succeed on a Dexterity saving throw or be knocked prone. - - • It must make a Strength saving throw. If it fails, you can push it up to - 15 feet away from you. - - • It can't take reactions until the end of your next turn - + """Starting when you choose this tradition at 3rd level, you can + manipulate your enemy's ki when you harness your own. Whenever you + hit a creature with one of the attacks granted by your *Flurry of + Blows*, you can impose one of the following effects on that + target: + + - It must succeed on a Dexterity saving throw or be knocked prone. + - It must make a Strength saving throw. If it fails, you can push + it up to 15 feet away from you. + - It can't take reactions until the end of your next turn + """ name = "Open Hand Technique" source = "Monk (Way of the Open Hand)" class WholenessOfBody(Feature): - """At 6th level, you gain the ability to heal yourself. As an action, you can - regain hit points equal to three times your monk level. You must finish a - long rest before you can use this feature again - + """At 6th level, you gain the ability to heal yourself. As an action, + you can regain hit points equal to three times your monk + level. You must finish a long rest before you can use this feature + again + """ name = "Wholeness of Body" source = "Monk (Way of the Open Hand)" class Tranquility(Feature): - """Beginning at 11th level, you can enter a special meditation that surrounds - you with an aura of peace. At the end of a long rest, you gain the effect - of a sanctuary spell that lasts until the start of your next long rest (the - spell can end early as normal). The saving throw DC for the spell equals 8 - + your Wisdom modifier + your proficiency bonus - + """Beginning at 11th level, you can enter a special meditation that + surrounds you with an aura of peace. At the end of a long rest, + you gain the effect of a sanctuary spell that lasts until the + start of your next long rest (the spell can end early as + normal). The saving throw DC for the spell equals 8 + your Wisdom + modifier + your proficiency bonus + """ name = "Tranquility" source = "Monk (Way of the Open Hand)" @@ -326,16 +333,18 @@ class Tranquility(Feature): class QuiveringPalm(Feature): """At 17th level, you gain the ability to set up lethal vibrations in - someone's body. When you hit a creature with an unarmed strike, you can - spend 3 ki points to start these imperceptible vibrations, which last for a - number of days equal to your monk level. The vibrations are harmless unless - you use your action to end them. To do so, you and the target must be on - the same plane of existence. When you use this action, the creature must - make a Constitution saving throw. If it fails, it is reduced to 0 hit - points. If it succeeds, it takes 10d10 necrotic damage. You can have only - one creature under the effect of this feature at a time. You can choose to - end the vibrations harmlessly without using an action. - + someone's body. When you hit a creature with an unarmed strike, + you can spend 3 ki points to start these imperceptible vibrations, + which last for a number of days equal to your monk level. The + vibrations are harmless unless you use your action to end them. To + do so, you and the target must be on the same plane of + existence. When you use this action, the creature must make a + Constitution saving throw. If it fails, it is reduced to 0 hit + points. If it succeeds, it takes 10d10 necrotic damage. You can + have only one creature under the effect of this feature at a + time. You can choose to end the vibrations harmlessly without + using an action. + """ name = "Quivering Palm" source = "Monk (Way of the Open Hand)" @@ -343,12 +352,13 @@ class QuiveringPalm(Feature): # Way of Shadow class ShadowArts(Feature): - """Starting when you choose this tradition at 3rd level, you can use your ki - to duplicate the effects of certain spells. As an action, you can spend 2 - ki points to cast darkness, darkvision, pass without trace, or silence, - without providing material components. Additionally, you gain the minor - illusion cantrip if you don't already know it. - + """Starting when you choose this tradition at 3rd level, you can use + your ki to duplicate the effects of certain spells. As an action, + you can spend 2 ki points to cast darkness, darkvision, pass + without trace, or silence, without providing material + components. Additionally, you gain the minor illusion cantrip if + you don't already know it. + """ name = "Shadow Arts" source = "Monk (Way of Shadow)" @@ -356,33 +366,34 @@ class ShadowArts(Feature): class ShadowStep(Feature): """At 6th 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 - teleport up to 60 feet to an unoccupied space you can see that is also in - dim light or darkness. You then have advantage on the first melee attack - you make before the end of the turn. - + another. When you are in dim light or darkness, as a bonus action + you can teleport up to 60 feet to an unoccupied space you can see + that is also in dim light or darkness. You then have advantage on + the first melee attack you make before the end of the turn. + """ name = "Shadow Step" source = "Monk (Way of Shadow)" class CloakOfShadows(Feature): - """By 11th level, you have learned to become one with the shadows. When you - are in an area of dim light or darkness, you can use your action to become - invisible. You remain invisible until you make an attack, cast a spell, or - are in an area of bright light. - + """By 11th level, you have learned to become one with the + shadows. When you are in an area of dim light or darkness, you can + use your action to become invisible. You remain invisible until + you make an attack, cast a spell, or are in an area of bright + light. + """ name = "Cloak of Shadows" source = "Monk (Way of Shadow)" class Opportunist(Feature): - """At 17th level, you can exploit a creature's momentary distraction when it - is hit by an attack. Whenever a creature within 5 feet of you is hit by an - attack made by a creature other than you, you can use your reaction to make - a melee attack against that creature. - + """At 17th level, you can exploit a creature's momentary distraction + when it is hit by an attack. Whenever a creature within 5 feet of + you is hit by an attack made by a creature other than you, you can + use your reaction to make a melee attack against that creature. + """ name = "Opportunist" source = "Monk (Way of Shadow)" @@ -390,35 +401,38 @@ class Opportunist(Feature): # Way of the Four Elements class DiscipleOfTheElements(Feature): - """When you choose this tradition at 3rd level, you learn magical disciplines - that harness the power of the four elements. A discipline requires you to - spend ki points each time you use it. You know the Elemental Attunement - discipline and one other elemental discipline of your choice, which are - detailed in the "Elemental Disciplines" section below. - - You learn one additional elemental discipline of your choice at 6th, 11th, - and 17th level. Whenever you learn a new elemental discipline, you can also - replace one elemental discipline that you already know with a different - discipline. - + """When you choose this tradition at 3rd level, you learn magical + disciplines that harness the power of the four elements. A + discipline requires you to spend ki points each time you use + it. You know the Elemental Attunement discipline and one other + elemental discipline of your choice, which are detailed in the + "Elemental Disciplines" section below. + + You learn one additional elemental discipline of your choice at + 6th, 11th, and 17th level. Whenever you learn a new elemental + discipline, you can also replace one elemental discipline that you + already know with a different discipline. + Add your chosen disciplines under "features" in your .py file + + **Casting Elemental Spells:** Some elemental disciplines allow you + to cast spells. See chapter 10 for the general rules of + spellcasting. To cast one o f these spells, you use its casting + time and other rules, but you don't need to provide material + components for it. Once you reach 5th level in this class, you can + spend additional ki points to increase the level of an elemental + discipline spell that you cast, provided that the spell has an + enhanced effect at a higher level, as burning hands does. The + spell's level increases by 1 for each additional ki point you + spend. For example, if you are a 5th-level monk and use Sweeping + Cinder Strike to cast burning hands, you can spend 3 ki points to + cast it as a 2nd-level spell (the discipline's base cost of 2 ki + points plus 1). - **Casting Elemental Spells**: Some elemental disciplines allow you to cast - spells. See chapter 10 for the general rules of spellcasting. To cast one o - f these spells, you use its casting time and other rules, but you don't - need to provide material components for it. Once you reach 5th level in - this class, you can spend additional ki points to increase the level of an - elemental discipline spell that you cast, provided that the spell has an - enhanced effect at a higher level, as burning hands does. The spell's level - increases by 1 for each additional ki point you spend. For example, if you - are a 5th-level monk and use Sweeping Cinder Strike to cast burning hands, - you can spend 3 ki points to cast it as a 2nd-level spell (the discipline's - base cost of 2 ki points plus 1). - - The maximum number of ki points you can spend to cast a spell in this way - (including its base ki point cost and any additional ki points you spend to - increase its level) is determined by your monk level, as shown in the - Spells and Ki Points table. + The maximum number of ki points you can spend to cast a spell in + this way (including its base ki point cost and any additional ki + points you spend to increase its level) is determined by your monk + level, as shown in the Spells and Ki Points table. Monk Levels 5-8 : 3 Ki points Max @@ -436,19 +450,17 @@ class DiscipleOfTheElements(Feature): class ElementalAttunement(Feature): """You can use your action to briefly control elemental forces nearby, causing one of the following effects of your choice: - - • Create a harmless, instantaneous sensory effect related to air, earth, - fire, or water, such as a shower of sparks, a puff of wind, a spray o f - light mist, or a gentle rumbling of stone. - - • Instantaneously light or snuff out a candle, a torch, or a small - campfire. - - • Chill or warm up to 1 pound of nonliving material for up to 1 hour. - - • Cause earth, fire, water, or mist that can fit within a 1-foot cube to - shape itself into a crude form you desig nate for 1 minute. - + - Create a harmless, instantaneous sensory effect related to air, + earth, fire, or water, such as a shower of sparks, a puff of + wind, a spray o f light mist, or a gentle rumbling of stone. + - Instantaneously light or snuff out a candle, a torch, or a small + campfire. + - Chill or warm up to 1 pound of nonliving material for up to 1 + hour. + - Cause earth, fire, water, or mist that can fit within a 1-foot + cube to shape itself into a crude form you desig nate for 1 + minute. + """ name = "Elemental Attunement" source = "Monk (Way of the Four Elements)" @@ -456,9 +468,9 @@ class ElementalAttunement(Feature): class BreathOfWinter(Feature): """You can spend 6 ki points to cast cone of cold. - - **Prerequisite**: 17th Level - + + **Prerequisite:** 17th Level + """ name = "Breath of Winter" source = "Monk (Way of the Four Elements)" @@ -467,9 +479,9 @@ class BreathOfWinter(Feature): class ClenchOfTheNorthWind(Feature): """You can spend 3 ki points to cast hold person. - - **Prerequisite**: 6th Level - + + **Prerequisite:** 6th Level + """ name = "Clench of the North Wind" source = "Monk (Way of the Four Elements)" @@ -478,8 +490,9 @@ class ClenchOfTheNorthWind(Feature): class EternalMountainDefense(Feature): """You can spend 5 ki points to cast stoneskin, targeting yourself. - - **Prerequisite**: 11th Level + + **Prerequisite:** 11th Level + """ name = "Eternal Mountain Defense" source = "Monk (Way of the Four Elements)" @@ -487,22 +500,21 @@ class EternalMountainDefense(Feature): class FangsOfTheFireSnake(Feature): - """When you use the Attack action on your turn, you can spend 1 ki point to - cause tendrils of flame to stretch out from your fists and feet. Your reach - with your unarmed strikes increases by 10 feet for that action, as well as - the rest o f the turn. A hit with such an attack deals fire damage instead - of bludgeoning damage, and if you spend 1 ki point when the attack hits, it - also deals an extra 1d10 fire damage - + """When you use the Attack action on your turn, you can spend 1 ki + point to cause tendrils of flame to stretch out from your fists + and feet. Your reach with your unarmed strikes increases by 10 + feet for that action, as well as the rest o f the turn. A hit with + such an attack deals fire damage instead of bludgeoning damage, + and if you spend 1 ki point when the attack hits, it also deals an + extra 1d10 fire damage + """ name = "Fangs of the Fire Snake" source = "Monk (Way of the Four Elements)" class FistOfFourThunders(Feature): - """You can spend 2 ki points to cast thunderwave - - """ + """You can spend 2 ki points to cast thunderwave.""" name = "Fist of Four Thunders" source = "Monk (Way of the Four Elements)" spells_known = (spells.Thunderwave,) @@ -510,14 +522,15 @@ class FistOfFourThunders(Feature): class FistOfUnbrokenAir(Feature): """You can create a blast of compressed air that strikes like a mighty - fist. As an action, you can spend 2 ki points and choose a creature within - 30 feet of you. That creature must make a Strength saving throw. On a - failed save, the creature takes 3d10 bludgeoning damage, plus an extra 1d10 - bludgeoning damage for each additional ki point you spend, and you can push - the creature up to 20 feet away from you and knock it prone. On a - successful save, the creature takes half as much damage, and you don't push - it or knock it prone. - + fist. As an action, you can spend 2 ki points and choose a + creature within 30 feet of you. That creature must make a Strength + saving throw. On a failed save, the creature takes 3d10 + bludgeoning damage, plus an extra 1d10 bludgeoning damage for each + additional ki point you spend, and you can push the creature up to + 20 feet away from you and knock it prone. On a successful save, + the creature takes half as much damage, and you don't push it or + knock it prone. + """ name = "Fist of Unbroken Air" source = "Monk (Way of the Four Elements)" @@ -525,9 +538,9 @@ class FistOfUnbrokenAir(Feature): class FlamesOfThePhoenix(Feature): """You can spend 4 ki points to cast fireball. - - **Prerequisite**: 11th Level - + + **Prerequisite:** 11th Level + """ name = "Flames of the Phoenix" source = "Monk (Way of the Four Elements)" @@ -536,9 +549,9 @@ class FlamesOfThePhoenix(Feature): class GongOfTheSummit(Feature): """You can spend 3 ki points to cast shatter. - - **Prerequisite**: 6th Level - + + **Prerequisite:** 6th Level + """ name = "Gong of the Summit" source = "Monk (Way of the Four Elements)" @@ -547,9 +560,9 @@ class GongOfTheSummit(Feature): class MistStance(Feature): """You can spend 4 ki points to cast gaseous form, targeting yourself. - - **Prerequisite**: 11th Level - + + **Prerequisite:** 11th Level + """ name = "Mist Stance" source = "Monk (Way of the Four Elements)" @@ -559,7 +572,7 @@ class MistStance(Feature): class RideTheWind(Feature): """You can spend 4 ki points to cast fly, targeting yourself - **Prerequisite**: 11th Level + **Prerequisite:** 11th Level """ name = "Ride the Wind" @@ -570,7 +583,7 @@ class RideTheWind(Feature): class RiverOfHungryFlame(Feature): """You can spend 5 ki points to cast wall of fire. - **Prerequisite**: 17th Level + **Prerequisite:** 17th Level """ name = "River of Hungry Flame" @@ -588,40 +601,41 @@ class RushOfTheGaleSpirits(Feature): class ShapeTheFlowingRiver(Feature): - """As an action, you can spend 1 ki point to choose an area of ice or water no - larger than 30 feet on a side within 120 feet o f you. You can change water - to ice within the area and vice versa, and you can reshape ice in the area - in any manner you choose. You can raise or lower the ice's elevation, - create or fill in a trench, erect or flatten a wall, or form a pillar. The - extent of any such changes can't exceed half the area's largest - dimension. For example, if you affect a 30-foot square, you can create a - pillar up to 15 feet high, raise or lower the square's elevation by up to - 15 feet, dig a trench up to 15 feet deep, and so on. You can't shape the - ice to trap or injure a creature in the area. - + """As an action, you can spend 1 ki point to choose an area of ice or + water no larger than 30 feet on a side within 120 feet o f + you. You can change water to ice within the area and vice versa, + and you can reshape ice in the area in any manner you choose. You + can raise or lower the ice's elevation, create or fill in a + trench, erect or flatten a wall, or form a pillar. The extent of + any such changes can't exceed half the area's largest + dimension. For example, if you affect a 30-foot square, you can + create a pillar up to 15 feet high, raise or lower the square's + elevation by up to 15 feet, dig a trench up to 15 feet deep, and + so on. You can't shape the ice to trap or injure a creature in the + area. + """ name = "Shape the Flowing River" source = "Monk (Way of the Four Elements)" class SweepingCinderStrike(Feature): - """You can spend 2 ki points to cast burning hands - - """ + """You can spend 2 ki points to cast burning hands.""" name = "Sweeping Cinder Strike" source = "Monk (Way of the Four Elements)" spells_known = (spells.BurningHands,) class WaterWhip(Feature): - """You can spend 2 ki points as a bonus action to create a whip of water that - shoves and pulls a creature to unbalance it. A creature that you can see - that is within 30 feet of you must make a Dexterity saving throw. On a - failed save, the creature takes 3d10 bludgeoning damage, plus an extra 1d10 - bludgeoning damage for each additional ki point you spend, and you can - either knock it prone or pull it up to 25 feet closer to you. On a - successful save, the creature takes half as much damage, and you don't pull - it or knock it prone + """You can spend 2 ki points as a bonus action to create a whip of + water that shoves and pulls a creature to unbalance it. A creature + that you can see that is within 30 feet of you must make a + Dexterity saving throw. On a failed save, the creature takes 3d10 + bludgeoning damage, plus an extra 1d10 bludgeoning damage for each + additional ki point you spend, and you can either knock it prone + or pull it up to 25 feet closer to you. On a successful save, the + creature takes half as much damage, and you don't pull it or knock + it prone """ name = "Water Whip" @@ -630,8 +644,8 @@ class WaterWhip(Feature): class WaveOfRollingEarth(Feature): """You can spend 6 ki points to cast wall of stone - - **Prerequisite**: 17th Level + + **Prerequisite:** 17th Level """ name = "Wave of Rolling Earth" @@ -704,8 +718,8 @@ class RadiantSunBolt(Feature): source = "Monk (Way of the Sun Soul)" def __init__(self, owner=None): - super().__init__(owner=owner) - self.owner.wield_weapon("sun bolt") + super().__init__(owner=owner) + self.owner.wield_weapon("sun bolt") class SearingArcStrike(Feature): @@ -769,10 +783,10 @@ class TipsySway(Feature): """Starting at 6th level, you can move in sudden, swaying ways. You gain the following benefits. - **Leap to Your Feet**: When you're prone, you can stand up + **Leap to Your Feet:** When you're prone, you can stand up by spending 5 feet of movement, rather than half your speed. - **Redirect Attack**: When a creature misses you with a melee attack roll, + **Redirect Attack:** When a creature misses you with a melee attack roll, you can spend 1 ki point as a re- action to cause that attack to hit one creature of your choice, other than the attacker, that you can see within 5 feet of you. @@ -812,7 +826,7 @@ class PathOfTheKensei(Feature): includes instruction in the deft strokes of calligraphy or painting. You gain the following benefits. - **Kensei Weapons**: Choose two types of weapons to be your kensei weapons: + **Kensei Weapons:** Choose two types of weapons to be your kensei weapons: one melee weapon and one ranged weapon. Each of these weapons can be any sim- ple or martial weapon that lacks the heavy and special properties. The longbow is also a valid choice. You gain proficiency with these weapons if @@ -822,19 +836,19 @@ class PathOfTheKensei(Feature): choose another type of weapon-either melee or ranged-to be a kensei weapon for you. following the criteria above. - **Agile Parry**: If you make an unarmed strike as part of the Attack action + **Agile Parry:** If you make an unarmed strike as part of the Attack action on your turn and are holding a kensei weapon, you can use it to defend yourself if it is a melee weapon. You gain a +2 bonus to AC until the start of your next turn, while the weapon is in your hand and you aren't incapacitated. - **Kensei's Shot**: You can use a bonus action on your turn to make your + **Kensei's Shot:** You can use a bonus action on your turn to make your ranged attacks with a kensei weapon more deadly. When you do so, any target you hit with a ranged attack using a kensei weapon takes an extra 1d4 damage of the weapons type. You retain this benefit un- til the end of the current turn. - **Way ofthe Brush**: You gain proficiency with your choice of + **Way ofthe Brush:** You gain proficiency with your choice of calligrapher's supplies or painter's supplies """ @@ -846,11 +860,11 @@ class OneWithTheBlade(Feature): """At 6th level, you extend your ki into your kensei weap- ons, granting you the following benefits. - **Magic Kensei Weapons**: Your attacks with your kensei weapons count as + **Magic Kensei Weapons:** Your attacks with your kensei weapons count as magical for the purpose of over- coming resistance and immunity to nonmagical attacks and damage - **Deft Strike**: When you hit a target with a kensei weapon, you can spend + **Deft Strike:** When you hit a target with a kensei weapon, you can spend 1 ki point to cause the weapon to deal extra damage to the target equal to your Martial Arts die. You can use this feature only once on each of your turns. diff --git a/dungeonsheets/features/paladin.py b/dungeonsheets/features/paladin.py index 904356d..c15c23f 100644 --- a/dungeonsheets/features/paladin.py +++ b/dungeonsheets/features/paladin.py @@ -25,8 +25,8 @@ class DivineSense(Feature): @property def name(self): - num_uses = max(1, 1+self.owner.charisma.modifier) - return self._name + ' ({:d}x/LR)'.format(num_uses) + num_uses = max(1, 1+self.owner.charisma.modifier) + return self._name + ' ({:d}x/LR)'.format(num_uses) class LayOnHands(Feature): @@ -51,8 +51,8 @@ class LayOnHands(Feature): @property def name(self): - level = self.owner.Paladin.level - return self._name + " ({:d}HP/LR)".format(level*5) + level = self.owner.Paladin.level + return self._name + " ({:d}HP/LR)".format(level*5) class PaladinFightingStyle(FeatureSelector): @@ -68,10 +68,10 @@ class PaladinFightingStyle(FeatureSelector): protection """ options = {'defense': Defense, - 'dueling': Dueling, - 'great': GreatWeaponFighting, - 'great-weapon fighting': GreatWeaponFighting, - 'projection': Protection} + 'dueling': Dueling, + 'great': GreatWeaponFighting, + 'great-weapon fighting': GreatWeaponFighting, + 'projection': Protection} name = "Fighting Style (Select One)" source = "Paladin" @@ -152,8 +152,8 @@ class CleansingTouch(Feature): @property def name(self): - num_uses = max(1, 1+self.owner.charisma.modifier) - return self._name + ' ({:d}x/LR)'.format(num_uses) + num_uses = max(1, 1+self.owner.charisma.modifier) + return self._name + ' ({:d}x/LR)'.format(num_uses) class ChannelDivinityPaladin(Feature): diff --git a/dungeonsheets/features/races.py b/dungeonsheets/features/races.py index 6e3915f..dcc5dc8 100644 --- a/dungeonsheets/features/races.py +++ b/dungeonsheets/features/races.py @@ -585,13 +585,13 @@ class NaturalArmor(Feature): source = "Race (Lizardfolk)" def AC_func(self, char, **kwargs): - """ - Implement the Natural Armor AC option - """ - ac = 13 + char.dexterity.modifier - if ((char.shield is not None)): - ac += char.shield.base_armor_class - return ac + """ + Implement the Natural Armor AC option + """ + ac = 13 + char.dexterity.modifier + if ((char.shield is not None)): + ac += char.shield.base_armor_class + return ac class HungryJaws(Feature): @@ -833,7 +833,7 @@ class SavingFace(Feature): name = "Saving Face" source = "Race (HobGoblin)" -class MartialTraining(Feature): #you have to add the weapons of choice to your sheet +class MartialTraining(Feature): #you have to add the weapons of choice to your sheet """You are proficient with two martial weapons of your choice and with light armor. """ diff --git a/dungeonsheets/features/ranger.py b/dungeonsheets/features/ranger.py index 068e882..a55a727 100644 --- a/dungeonsheets/features/ranger.py +++ b/dungeonsheets/features/ranger.py @@ -28,30 +28,30 @@ class FavoredEnemy(Feature): class NaturalExplorer(Feature): - """You are particularly familiar with one type of natural environment and are - adept at traveling and surviving in such regions. Choose one type of - favored terrain: arctic, coast, desert, forest, grassland, mountain, swamp, - or the Underdark. You choose additional favored terrain types at 6th and - 10th - - When you make an Intelligence or Wisdom check related to your favored - terrain, your proficiency bonus is doubled if you are using a skill that - you're proficient in. While traveling for an hour or more in your favored - terrain, you gain the following benefits: - - • Difficult terrain doesn't slow your group's travel. - - • Your group can't become lost except by magical means. - - • Even when you are engaged in another activity while traveling - (such as foraging, navigating, or tracking), you remain alert to danger. - - • If you are traveling alone, you can move stealthily at a normal pace. - - • When you forage, you find twice as much food as you normally would. - - • While tracking other creatures, you also learn their exact number, their - sizes, and how long ago they passed through the area. + """You are particularly familiar with one type of natural environment + and are adept at traveling and surviving in such regions. Choose + one type of favored terrain: arctic, coast, desert, forest, + grassland, mountain, swamp, or the Underdark. You choose + additional favored terrain types at 6th and 10th + + When you make an Intelligence or Wisdom check related to your + favored terrain, your proficiency bonus is doubled if you are + using a skill that you're proficient in. While traveling for an + hour or more in your favored terrain, you gain the following + benefits: + + - Difficult terrain doesn't slow your group's travel. + - Your group can't become lost except by magical means. + - Even when you are engaged in another activity while traveling + (such as foraging, navigating, or tracking), you remain alert to + danger. + - If you are traveling alone, you can move stealthily at a normal + pace. + - When you forage, you find twice as much food as you normally + would. + - While tracking other creatures, you also learn their exact + number, their sizes, and how long ago they passed through the + area. """ name = "Natural Explorer" @@ -67,11 +67,11 @@ class Archery(Feature): source = "Ranger" def weapon_func(self, weapon: weapons.Weapon, **kwargs): - """ - +2 attack roll bonus if weapon is ranged - """ - if isinstance(weapon, weapons.RangedWeapon): - weapon.attack_bonus += 2 + """ + +2 attack roll bonus if weapon is ranged + """ + if isinstance(weapon, weapons.RangedWeapon): + weapon.attack_bonus += 2 class Defense(Feature): @@ -92,12 +92,12 @@ class Dueling(Feature): source = "Ranger" def weapon_func(self, weapon: weapons.Weapon, **kwargs): - """ - +2 attack roll bonus if melee weapon is not two handed - """ - if (isinstance(weapon, weapons.MeleeWeapon) - and "two-handed" not in weapon.properties.lower()): - weapon.damage_bonus += 2 + """ + +2 attack roll bonus if melee weapon is not two handed + """ + if (isinstance(weapon, weapons.MeleeWeapon) + and "two-handed" not in weapon.properties.lower()): + weapon.damage_bonus += 2 class TwoWeaponFighting(Feature): @@ -122,11 +122,11 @@ class RangerFightingStyle(FeatureSelector): two-weapon fighting """ options = {'archery': Archery, - 'defense': Defense, - 'dueling': Dueling, - 'two-weapon fighting': TwoWeaponFighting, - 'two-weapon': TwoWeaponFighting, - 'dual wield': TwoWeaponFighting} + 'defense': Defense, + 'dueling': Dueling, + 'two-weapon fighting': TwoWeaponFighting, + 'two-weapon': TwoWeaponFighting, + 'dual wield': TwoWeaponFighting} name = "Fighting Style (Select One)" source = "Ranger" @@ -249,8 +249,8 @@ class HuntersPrey(FeatureSelector): """ options = {'colossus slayer': ColossusSlayer, - 'giant killer': GiantKiller, - 'horde breaker': HordeBreaker} + 'giant killer': GiantKiller, + 'horde breaker': HordeBreaker} name = "Hunter's Prey (Select One)" source = "Ranger (Hunter)" @@ -292,8 +292,8 @@ class DefensiveTactics(FeatureSelector): """ options = {'escape the horde': EscapeTheHorde, - 'multiattack defense': MultiattackDefense, - 'steel will': SteelWill} + 'multiattack defense': MultiattackDefense, + 'steel will': SteelWill} name = "Defensive Tactics (Select One)" source = "Ranger (Hunter)" @@ -328,7 +328,7 @@ class MultiattackRanger(FeatureSelector): """ options = {'volley': Volley, - 'whirlwind attack': WhirlwindAttack} + 'whirlwind attack': WhirlwindAttack} name = "Multiattack (Select One)" source = "Ranger (Hunter)" @@ -355,8 +355,8 @@ class SuperiorHuntersDefense(FeatureSelector): """ options = {'evasion': Evasion, - 'stand against of the tide': StandAgainstTheTide, - 'uncanny dodge': UncannyDodge} + 'stand against of the tide': StandAgainstTheTide, + 'uncanny dodge': UncannyDodge} name = "Superior Hunter's Defense (Select One)" source = "Ranger (Hunter)" @@ -458,7 +458,7 @@ class IronMind(Feature): needs_implementation = True def __init__(self, owner=None): - super().__init__(owner=owner) + super().__init__(owner=owner) class StalkersFlurry(Feature): @@ -510,10 +510,10 @@ class PlanarWarrior(Feature): @property def name(self): - if self.owner.Ranger.level < 11: - return self._name + " (1d8/f)" - else: - return self._name + " (2d8/f)" + if self.owner.Ranger.level < 11: + return self._name + " (1d8/f)" + else: + return self._name + " (2d8/f)" class EtherealStep(Feature): @@ -568,8 +568,8 @@ class HuntersSense(Feature): @property def name(self): - num = max(1, self.owner.wisdom.modifier) - return self._num + " ({:d}x/LR)".format(num) + num = max(1, self.owner.wisdom.modifier) + return self._num + " ({:d}x/LR)".format(num) class SlayersPrey(Feature): @@ -829,7 +829,7 @@ class CoordinatedAttack(Feature): class BeastsDefense(Feature): """At 7th level, while your companion can see you, it has advantage on all - saving throw + saving throw """ name = "Beast's Defense" @@ -848,8 +848,8 @@ class StormOfClawsAndFangs(Feature): class SuperiorBeastsDefense(Feature): """At 15th level, whenever an attacker that your companion can see hits it - with an attack, it can use its reaction to halve the attack's damage - against it. + with an attack, it can use its reaction to halve the attack's damage + against it. """ name = "Superior Beast's Defense" diff --git a/dungeonsheets/features/rogue.py b/dungeonsheets/features/rogue.py index 9a8a0b5..804d040 100644 --- a/dungeonsheets/features/rogue.py +++ b/dungeonsheets/features/rogue.py @@ -38,10 +38,10 @@ class SneakAttack(Feature): @property def name(self): - level = self.owner.Rogue.level - dice = ceil(level / 2.) - name = self._name + " ({:d}d6)".format(dice) - return name + level = self.owner.Rogue.level + dice = ceil(level / 2.) + name = self._name + " ({:d}d6)".format(dice) + return name class CunningAction(Feature): @@ -463,8 +463,8 @@ class Survivalist(Feature): """ def __init__(self, owner=None): - super().__init__(owner=owner) - self.owner.skill_expertise += ("nature", "survival") + super().__init__(owner=owner) + self.owner.skill_expertise += ("nature", "survival") class SuperiorMobility(Feature): diff --git a/dungeonsheets/features/sorceror.py b/dungeonsheets/features/sorceror.py index 804d0bd..a10aebd 100644 --- a/dungeonsheets/features/sorceror.py +++ b/dungeonsheets/features/sorceror.py @@ -417,29 +417,28 @@ class HoundOfIllOmen(Feature): 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 + + - 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)" diff --git a/dungeonsheets/features/warlock.py b/dungeonsheets/features/warlock.py index 1adf4b5..e3fd123 100644 --- a/dungeonsheets/features/warlock.py +++ b/dungeonsheets/features/warlock.py @@ -91,11 +91,11 @@ class PactBoon(FeatureSelector): """ options = {'chain': PactOfTheChain, - 'pact of the chain': PactOfTheChain, - 'blade': PactOfTheBlade, - 'pact of the blade': PactOfTheBlade, - 'tome': PactOfTheTome, - 'pact of the tome': PactOfTheTome} + 'pact of the chain': PactOfTheChain, + 'blade': PactOfTheBlade, + 'pact of the blade': PactOfTheBlade, + 'tome': PactOfTheTome, + 'pact of the tome': PactOfTheTome} name = "Pact Boon (Select One)" source = "Warlock" @@ -203,9 +203,9 @@ class DarkOnesBlessing(Feature): @property def name(self): - level = self.owner.Warlock.level - mod = self.owner.charisma.modifier - return self._name + ' ({:d} HP)'.format(level + mod) + level = self.owner.Warlock.level + mod = self.owner.charisma.modifier + return self._name + ' ({:d} HP)'.format(level + mod) class DarkOnesOwnLuck(Feature): @@ -377,8 +377,8 @@ class HealingLight(Feature): @property def name(self): - num = 1 + self.owner.Warlock.level - return self._name + " ({:d}d6/LR)".format(num) + num = 1 + self.owner.Warlock.level + return self._name + " ({:d}d6/LR)".format(num) class RadiantSoul(Feature): @@ -427,18 +427,16 @@ class HexbladesCurse(Feature): of you. The target is cursed for 1 minute. The curse ends early if the target dies, you die, or you are incapacitated. Until the curse ends, you gain the following benefits: - - • You gain a bonus to damage rolls against the - cursed target. The bonus equals your proficiency bonus. - - • Any attack roll you make against the cursed target is a critical hit on - a roll of 19 or 20 on the d20. - - --If the cursed target dies, you regain hit points equal to your warlock - level + your Charisma modifier (minimum of 1 hit point). - + + - You gain a bonus to damage rolls against the cursed target. The + bonus equals your proficiency bonus. + - Any attack roll you make against the cursed target is a critical + hit on a roll of 19 or 20 on the d20. + - If the cursed target dies, you regain hit points equal to your + warlock level + your Charisma modifier (minimum of 1 hit point). + You can't use this feature again until you finish a short or long rest. - + """ name = "Hexblades Curse" source = "Warlock (Hexblade)" @@ -463,18 +461,18 @@ class HexWarrior(Feature): source = "Warlock (Hexblade)" def weapon_func(self, weapon: weapons.Weapon, **kwargs): - """ - Swap the weapon's attack bonus modifier for Charisma if - it is higher than STR/DEX bonus - """ - if weapon.is_finesse: - abils = {'strength': self.owner.strength.modifier, - 'dexterity': self.owner.dexterity.modifier, - 'charisma': self.owner.charisma.modifier} - else: - abils = {weapon.ability: getattr(self.owner, weapon.ability).modifier, - 'charisma': self.owner.charisma.modifier} - weapon.ability = max(abils, key=abils.get) + """ + Swap the weapon's attack bonus modifier for Charisma if + it is higher than STR/DEX bonus + """ + if weapon.is_finesse: + abils = {'strength': self.owner.strength.modifier, + 'dexterity': self.owner.dexterity.modifier, + 'charisma': self.owner.charisma.modifier} + else: + abils = {weapon.ability: getattr(self.owner, weapon.ability).modifier, + 'charisma': self.owner.charisma.modifier} + weapon.ability = max(abils, key=abils.get) class AccursedSpecter(Feature): @@ -532,19 +530,19 @@ class Invocation(Feature): at_will_spells = () def cast_spell_at_will(self, spell): - s = spell() - s.level = 0 - if 'M' in s.components: - c = list(s.components) - c.remove('M') - s.components = tuple(c) - self.spells_known += (s,) - self.spells_prepared += (s,) + s = spell() + s.level = 0 + if 'M' in s.components: + c = list(s.components) + c.remove('M') + s.components = tuple(c) + self.spells_known += (s,) + self.spells_prepared += (s,) def __init__(self, owner): - super().__init__(owner) - for s in self.at_will_spells: - self.cast_spell_at_will(s) + super().__init__(owner) + for s in self.at_will_spells: + self.cast_spell_at_will(s) # PHB @@ -953,12 +951,12 @@ class ImprovedPactWeapon(Invocation): name = "Improved Pact Weapon" def weapon_func(self, weapon: weapons.Weapon, **kwargs): - """ - Add +1 to attack and damage if magic is not already magic - """ - if (weapon.attack_bonus == 0) or (weapon.damage_bonus == 0): - weapon.attack_bonus += 1 - weapon.damage_bonus += 1 + """ + Add +1 to attack and damage if magic is not already magic + """ + if (weapon.attack_bonus == 0) or (weapon.damage_bonus == 0): + weapon.attack_bonus += 1 + weapon.damage_bonus += 1 class LanceOfLethargy(Invocation): diff --git a/dungeonsheets/features/wizard.py b/dungeonsheets/features/wizard.py index 0fc81c2..59e1d33 100644 --- a/dungeonsheets/features/wizard.py +++ b/dungeonsheets/features/wizard.py @@ -307,8 +307,8 @@ class AlterMemories(Feature): @property def name(self): - num = 1 + max(0, self.owner.charisma.modifier) - return self._name + " ({:d} hours)".format(num) + num = 1 + max(0, self.owner.charisma.modifier) + return self._name + " ({:d} hours)".format(num) # Evocation @@ -525,24 +525,24 @@ class MinorAlchemy(Feature): class TransmutersStone(Feature): - """Starting at 6th level, you can spend 8 hours creating a transmuter's stone - that stores transmutation magic. You can benefit from the stone yourself or - give it to another creature. A creature gains a benefit of your choice as - long as the stone is in the creature's possession. When you create the - stone, choose the benefit from the following options: - - • Darkvision out to a range of 60 feet, as described in chapter 8 - - • An increase to speed of 10 feet while the creature is unencumbered - - • Proficiency in Constitution saving throws - - • Resistance to acid, cold, fire, lightning, or thunder damage (your - choice whenever you choose this benefit) - - Each time you cast a transmutation spell of 1st level or higher, you can - change the effect of your stone if the stone is on your person. If you - create a new transmuter's stone, the previous one ceases to function + """Starting at 6th level, you can spend 8 hours creating a + transmuter's stone that stores transmutation magic. You can + benefit from the stone yourself or give it to another creature. A + creature gains a benefit of your choice as long as the stone is in + the creature's possession. When you create the stone, choose the + benefit from the following options: + + - Darkvision out to a range of 60 feet, as described in chapter 8 + - An increase to speed of 10 feet while the creature is + unencumbered + - Proficiency in Constitution saving throws + - Resistance to acid, cold, fire, lightning, or thunder damage + (your choice whenever you choose this benefit) + + Each time you cast a transmutation spell of 1st level or higher, + you can change the effect of your stone if the stone is on your + person. If you create a new transmuter's stone, the previous one + ceases to function """ name = "Transmuter's Stone" @@ -550,13 +550,14 @@ class TransmutersStone(Feature): class Shapechanger(Feature): - """At 10th level, you add the polymorph spell to your spellbook, if it is not - there already. You can cast polymorph without expending a spell slot. When - you do so, you can target only yourself and transform into a beast whose - challenge rating is 1 or lower. Once you cast polymorph in this way, you - can't do so again until you finish a short or long rest, though you can - still cast it normally using an available spell slot - + """At 10th level, you add the polymorph spell to your spellbook, if it + is not there already. You can cast polymorph without expending a + spell slot. When you do so, you can target only yourself and + transform into a beast whose challenge rating is 1 or lower. Once + you cast polymorph in this way, you can't do so again until you + finish a short or long rest, though you can still cast it normally + using an available spell slot + """ name = "Shapechanger" source = "Wizard (School of Transmutation)" diff --git a/dungeonsheets/spells/spells_a.py b/dungeonsheets/spells/spells_a.py index 1cff4ca..a6a19d0 100644 --- a/dungeonsheets/spells/spells_a.py +++ b/dungeonsheets/spells/spells_a.py @@ -24,22 +24,22 @@ class AbiDalzimsHorridWilting(Spell): class AbsorbElements(Spell): - """1 Reaction, which you take when you take acid, cold, fire, lightning, or thunder - damage + """The spell captures some of the incoming energy, lessening its + effect on you and storing it for your next melee attack. You have + resistance to the triggering damage type until the start of your + next turn. Also, the first time you hit with a melee attack on + your next turn, the target takes an extra 1d6 damage of the + triggering type, and the spell ends. + + **At Higher Levels:** When you cast this spell using a spell slot + of 2nd level or higher, the extra damage increases by 1d6 for each + slot level above 1st. - The spell captures some of the incoming energy, lessening its effect on - you and storing it for your next melee attack. You have resistance to the - triggering damage type until the start of your next turn. Also, the first time - you hit with a melee attack on your next turn, the target takes an extra 1d6 - damage of the triggering type, and the spell ends. - - At Higher Levels: When you - cast this spell using a spell slot of 2nd level or higher, the extra damage - increases by 1d6 for each slot level above 1st. """ name = "Absorb Elements" level = 1 - casting_time = "Special" + casting_time = ("1 Reaction, which you take when you take " + "acid, cold, fire, lightning, or thunder damage") casting_range = "Self" components = ('S',) materials = """""" @@ -123,7 +123,7 @@ class Aid(Spell): creatures within range. Each target's hit point maximum and current hit points increase by 5 for the duration. - At Higher Levels: When you cast this spell + **At Higher Levels:** When you cast this spell using a spell slot of 3rd level or higher, a target's hit points increase by an additional 5 for each slot level above 2nd. """ @@ -145,11 +145,11 @@ class Alarm(Spell): area within range that is no larger than a 20-foot cube. Until the spell ends, an alarm alerts you whenever a tiny or larger creature touches or enters the warded area. When you cast the spell, you can designate creatures that won't set - off the alarm. You also choose whether the alarm is mental or audible. + off the alarm. You also choose whether the alarm is mental or audible. A mental alarm alerts you with a ping in your mind if you are within 1 mile of the - warded area. This ping awakens you if you are sleeping. + warded area. This ping awakens you if you are sleeping. An audible alarm produces the sound of a hand bell for 10 seconds within 60 feet. """ @@ -176,14 +176,14 @@ class AlterSelf(Spell): environment, sprouting gills, and growing webbing between your fingers. You can breathe underwater and gain a swimming speed equal to your walking speed. Change - Appearance. You transform your appearance. You decide what you look like, + Appearance. You transform your appearance. You decide what you look like, including your height, weight, facial features, sound of your voice, hair length, coloration, and distinguishing characteristics, if any. You can make yourself appear as a member of another race, though none of your statistics change. You also don't appear as a creature of a different size than you, and your basic shape stays the same; if you're bipedal, you can't use this spell to become quadrupedal, for instance. At any time for the duration of the spell, you - can use your action to change your appearance in this way again. + can use your action to change your appearance in this way again. Natural Weapons. You grow claws, fangs, spines, horns, or a different natural weapon of your choice. Your unarmed strikes deal 1d6 bludgeoning, piercing, or slashing @@ -245,8 +245,8 @@ class AnimalMessenger(Spell): the message is lost, and the beast makes it way back to where you cast this spell. - At Higher Levels: If you cast this spell using a spell slot of 3rd level - or higher, the duration of the spell increases by 48 hours for each slot level + **At Higher Levels:** If you cast this spell using a spell slot of 3rd level + or higher, the duration of the spell increases by 48 hours for each slot level above 2nd. """ name = "Animal Messenger" @@ -270,8 +270,8 @@ class AnimalShapes(Spell): The transformation lasts for the duration for each target, or until the target - drops to 0 hit points or dies. You can choose a different form for each target. - A target's game statistics are replaced by the statistics of the chosen beast, + drops to 0 hit points or dies. You can choose a different form for each target. + A target's game statistics are replaced by the statistics of the chosen beast, though the target retains its alignment and Intelligence, Wisdom, and Charisma scores. The target assumes the hit points of its new form, and when it reverts to its normal form, it returns to the number of hit point it had before it @@ -282,7 +282,7 @@ class AnimalShapes(Spell): form, and it can't speak or cast spells.   The target's gear melds into the new - form. The target can't activate, wield, or otherwise benefit from any of its + form. The target can't activate, wield, or otherwise benefit from any of its equipment. """ name = "Animal Shapes" @@ -302,14 +302,14 @@ class AnimateDead(Spell): Choose a pile of bones or a corpse of a Medium or Small humanoid within range. Your spell imbues the target with a foul mimicry of life, raising it as an undead creature. The target becomes a skeleton - if you chose bones or a zombie if you chose a corpse (the DM has the creature's - game statistics). + if you chose bones or a zombie if you chose a corpse (the DM has the creature's + game statistics). On each of your turns, you can use a bonus action to mentally command any creature you made with this spell if the creature is within - 60 feet of you (if you control multiple creatures, you can command any or all + 60 feet of you (if you control multiple creatures, you can command any or all of them at the same time, issuing the same command to each one). You decide what - action the creature will take and where it will move during its next turn, or + action the creature will take and where it will move during its next turn, or you can issue a general command, such as to guard a particular chamber or corridor. If you issue no commands, the creature only defends itself against hostile creatures. Once given an order, the creature continues to follow it @@ -322,10 +322,10 @@ class AnimateDead(Spell): reasserts your control over up to four creatures you have animated with this spell, rather than animating a new one. - At Higher Levels: When you cast this + **At Higher Levels:** When you cast this spell using a spell slot of 4th level or higher, you animate or reassert control - over two additional undead creatures for each slot level above 3rd. Each of the - creatures must come from a different corpse or pile of bones. + over two additional undead creatures for each slot level above 3rd. Each of the + creatures must come from a different corpse or pile of bones. """ name = "Animate Dead" level = 3 @@ -347,7 +347,7 @@ class AnimateObjects(Spell): larger than Huge. Each target animates and becomes a creature under your control until the spell ends or until reduced to 0 hit points. - + As a bonus action, you can mentally command any creature you made with this spell if the creature is within 500 feet of you (if you control multiple creatures, you can command any or all of them at @@ -358,9 +358,8 @@ class AnimateObjects(Spell): the creature only defends itself against hostile creatures. Once given an order, the creature continues to follow it until its task is complete. - - Animated Object Statistics - -------------------------- + + **Animated Object Statistics:** - Tiny -- HP: 20, AC: 18, Attack: +8 to hit, 1d4 + 4 damage, Str: 4, Dex: 18 @@ -372,27 +371,29 @@ class AnimateObjects(Spell): 14, Dex: 10 - Huge – HP: 80, AC: 10, Attack: +8 to hit, 2d12 + 4 damage, Str: 18, Dex: 6 - + An animated object is a construct with AC, hit points, attacks, - Strength, and Dexterity determine by its size. Its Constitution is 10 and its - Intelligence and Wisdom are 3, and its Charisma is 1. Its speed is 30 feet; if - the objects lack legs or other appendages it can use for locomotion, it instead - has a flying speed of 30 feet and can hover. If the object is securely attached - to a surface or larger object, such as a chain bolted to a wall, its speed is 0. - It has blindsight with a radius of 30 feet and is blind beyond that distance. - When the animated object drops to 0 hit points, it reverts to its original - object form, and any remaining damage carries over to its original object form. - - - If you command an object to attack, it can make a single melee attack against - a creature within 5 feet of it. It makes a slam attack with an attack bonus and - bludgeoning damage determine by its size. The DM might rule that a specific - object inflicts slashing or piercing damage based on its form. - - At Higher - Levels: If you cast this spell using a spell slot of 6th level or higher, you - can animate two additional objects for each slot level above 5th. - + Strength, and Dexterity determine by its size. Its Constitution is + 10 and its Intelligence and Wisdom are 3, and its Charisma is + 1. Its speed is 30 feet; if the objects lack legs or other + appendages it can use for locomotion, it instead has a flying + speed of 30 feet and can hover. If the object is securely attached + to a surface or larger object, such as a chain bolted to a wall, + its speed is 0. It has blindsight with a radius of 30 feet and is + blind beyond that distance. When the animated object drops to 0 + hit points, it reverts to its original object form, and any + remaining damage carries over to its original object form. + + If you command an object to attack, it can make a single melee + attack against a creature within 5 feet of it. It makes a slam + attack with an attack bonus and bludgeoning damage determine by + its size. The DM might rule that a specific object inflicts + slashing or piercing damage based on its form. + + **At Higher:** If you cast this spell using a spell slot of 6th + level or higher, you can animate two additional objects for each + slot level above 5th. + """ name = "Animate Objects" level = 5 @@ -434,17 +435,17 @@ class AntimagicField(Spell): This area is divorced from the magical energy that suffeses the multiverse. Within the sphere, spells can't be cast, summoned creatures disappear, and even magic items - become mundane. Until the spell ends, the spere moves with you, centered on + become mundane. Until the spell ends, the spere moves with you, centered on you. Spells and other magical effects, except those created by an artifact or a - deity, are suppressed in the sphere and can't protrude into it. A slot expended - to cast a suppressed spell is consumed. While an effect is suppressed, it + deity, are suppressed in the sphere and can't protrude into it. A slot expended + to cast a suppressed spell is consumed. While an effect is suppressed, it doesn't function, but the time it spends suppressed counts against its duration. Targeted Effects. Spells and other magical effects, such as magic missle and - charm person, that target a creature or an object in the sphere have no effect + charm person, that target a creature or an object in the sphere have no effect on that target. Areas of Magic. @@ -457,12 +458,12 @@ class AntimagicField(Spell): Spells.  Any active spell or other magical effect on a creature or an object in the sphere is - suppressed while the creature or object is in it. + suppressed while the creature or object is in it. Magic Items. The properties and powers of magic items are suppressed in the sphere. Forexample, a - +1 longsword in the sphere functions as a nonmagical longsword. A magic + +1 longsword in the sphere functions as a nonmagical longsword. A magic weapon's properties and powers are suppressed if it is used against a target in the sphere or wielded by an attacker in the sphere. If a magic weapon or piece of magic ammunition fully leaves the sphere (For example, if you fire a magic @@ -481,11 +482,11 @@ class AntimagicField(Spell): A creature or object summoned or created by magic temporarily winks out of existence in the sphere. Such a creature instantly reappears once the space the creature occupied - is no longer withinthe sphere. + is no longer withinthe sphere. Dispel Magic. Spells and magical effects such - as dispel magic have no effect on the sphere. Likewise, the spheres created by + as dispel magic have no effect on the sphere. Likewise, the spheres created by different antimagic field spells don't nullify each other. """ name = "Antimagic Field" @@ -511,9 +512,9 @@ class Antipathysympathy(Spell): Antipathy. The enchantment causes - creatures of the kind you designated to feel an intense urge to leave the area + creatures of the kind you designated to feel an intense urge to leave the area and avoid the target. When such a creature can see the target or comes within 60 - feet of it, the creature must succeed on a Wisdom saving throw or + feet of it, the creature must succeed on a Wisdom saving throw or become frightened. The creature remains frightened while it can see the target or is within 60 feet of it. While frightened by the target, the creature must use its movement to move to the nearest safe spot from which it can't see the @@ -528,7 +529,7 @@ class Antipathysympathy(Spell): such a creature can see the target or comes within 60 feet o fit, the creature must succeed on a Wisdom saving throw or use its movement on each of its turns to enter the area or move within reach of the target. When the creature has done - so, it can't willingly move away from the target. If the target damages or + so, it can't willingly move away from the target. If the target damages or otherwise harms an affected creature, the affected creature can make a Wisdom saving throw to end the effect, as described below.  @@ -538,7 +539,7 @@ class Antipathysympathy(Spell): or able to see it, the creature makes a Wisdom saving throw. On a successful save, the creature is no longer affected by the target and recognizes the feeling of repugnance or attraction as magical. In addition, a creature affected - by the spell is allowed another Wisdom saving throw every 24 hours while the + by the spell is allowed another Wisdom saving throw every 24 hours while the spell persists.  A creature that successfully saves against this effect is immune to it for 1 minute, after which time it can be affected again. @@ -557,7 +558,7 @@ class Antipathysympathy(Spell): class ArcaneEye(Spell): """You create an invisible, magical eye within range that hovers in the air for the - duration. + duration. You mentally receive visual information from the eye, which has normal vision and darkvision out to 30 feet. The eye can look in every direction. @@ -615,8 +616,8 @@ class ArcaneLock(Spell): it becomes locked for the duration. You and the creatures you designate when you cast this spell can open the object normally. You can also set a password that, when spoken within 5 feet of the object, - suppresses this spell for 1 minute. Otherwise, it is impassable until - it is broken or the spell is dispelled or suppressed. Casting knock + suppresses this spell for 1 minute. Otherwise, it is impassable until + it is broken or the spell is dispelled or suppressed. Casting knock on the object suppresses arcane lock for 10 minutes. While affected @@ -636,15 +637,16 @@ class ArcaneLock(Spell): class ArmorOfAgathys(Spell): - """A protective magical force surrounds you, manifesting as a spectral frost that - covers you and your gear. - You gain 5 temporary hit points for the duration. If - a creature hits you with a melee attack while you have these hit points, the - creature takes 5 cold damage. + """A protective magical force surrounds you, manifesting as a spectral + frost that covers you and your gear. You gain 5 temporary hit + points for the duration. If a creature hits you with a melee + attack while you have these hit points, the creature takes 5 cold + damage. - At Higher Levels: When you cast this spell using - a spell slot of 2nd level or higher, both the temporary hit points and the cold + **At Higher Levels:** When you cast this spell using a spell slot + of 2nd level or higher, both the temporary hit points and the cold damage increase by 5 for each slot + """ name = "Armor Of Agathys" level = 1 @@ -700,8 +702,8 @@ class AstralProjection(Spell): instantly.  Your astral form can freely travel through the Astral Plane and can - pass through portals there leading to any other plane. If you enter a new plane - or return to the plane you were on when casting this spell, your body + pass through portals there leading to any other plane. If you enter a new plane + or return to the plane you were on when casting this spell, your body and possessions are transported along the silver cord, allowing you to re-enter your body as you enter the new plane. Your astral form is a separate incarnation. Any damage or other effects that apply to it have no effect on @@ -711,13 +713,13 @@ class AstralProjection(Spell): The spell might also end early for you or one of your companions. A successful - dispel magic spell used against an astral or physical body ends the spell for + dispel magic spell used against an astral or physical body ends the spell for that creature. If a creature's original body or its astral form drops to 0 hit points, the spell ends for that creature. If the spell ends and the silver cord is intact, the cord pulls the creature's astral form back to its body, ending its state of suspended animation. If you are returned to your body prematurely, your companions remain in their astral forms and must find their own way back to - their bodies, usually by dropping to 0 hit points. + their bodies, usually by dropping to 0 hit points. """ name = "Astral Projection" level = 9 @@ -737,19 +739,19 @@ class Augury(Spell): entity about the results of a specific course of action that you plan to take within the next 30 minutes. The DM chooses from the following possible omens: - - Weal, for good results - Woe, for bad results - Weal and woe, for both good and bad results - Nothing, for results that aren't especially good or bad - The - spell doesn't take into account any possible circumstances that might change - the outcome, such as the casting of additional spells or the loss or gain of a - companion. If you cast the spell two or more times before completing your - next long rest, there is a cumulative 25 percent chance for each casting after - the first that you get a random reading. The DM makes this roll in secret. + The spell doesn't take into account any possible circumstances + that might change the outcome, such as the casting of additional + spells or the loss or gain of a companion. If you cast the spell + two or more times before completing your next long rest, there is + a cumulative 25 percent chance for each casting after the first + that you get a random reading. The DM makes this roll in secret. + """ name = "Augury" level = 2 @@ -789,7 +791,7 @@ class AuraOfPurity(Spell): spell ends, the aura moves with you, centered on you. Each nonhostile creature in the aura (including you) can't become diseased, has resistance to poison damage, and has advantage on saving throws against effects that cause any of the - following conditions: blnded, charmed, deafended, frightened, paralyzed, + following conditions: blnded, charmed, deafended, frightened, paralyzed, poisoned, and stunned. """ name = "Aura Of Purity" @@ -808,7 +810,7 @@ class AuraOfVitality(Spell): """Healing energy radiates from you in an aura with a 30-foot radius. Until the spell ends, the aura moves with you, centered on you. You can use a bonus action - to cause one creature in the aura (including you) to regain 2d6 hit points. + to cause one creature in the aura (including you) to regain 2d6 hit points. """ name = "Aura Of Vitality" level = 3 @@ -830,12 +832,12 @@ class Awaken(Spell): an Intelligence of 10. The target also gains the ability to speak one language you know. If the target is a plant, it gains the ability to move its limbs, roots, vinces, creepers, and so forth, and it gains senses similar to a huamn's. - Your DM chooses statistics appropriate for the awakened plant, such as the + Your DM chooses statistics appropriate for the awakened plant, such as the statistics for the awakened shrub or the awakened tree. The awakened beast or plant is charmed by you for 30 days or until you and your companions do anything - harmful to it. When the charmed condition ends, the awakened creature chooses + harmful to it. When the charmed condition ends, the awakened creature chooses whether to remain friendly to you, based on how you treated it while it was charmed. """ diff --git a/dungeonsheets/spells/spells_b.py b/dungeonsheets/spells/spells_b.py index 42b90d0..3ebc5fb 100644 --- a/dungeonsheets/spells/spells_b.py +++ b/dungeonsheets/spells/spells_b.py @@ -26,8 +26,8 @@ class Bane(Spell): class BanishingSmite(Spell): """The next time you hit a creature with a weapon attack before this spell ends, your weapon crackles with force, and the attack deals an extra 5d10 force damage - to the target. Additionally, if this attack reduces the target to 50 hit points - of fewer, you banish it. If the target is native to a different plane of + to the target. Additionally, if this attack reduces the target to 50 hit points + of fewer, you banish it. If the target is native to a different plane of existence than the on you're on, the target disappears, returning to its home plane. If the target is native to the plane you're on, the creature vanishes into a harmless demiplane. While there, the target is incapacitated. It remains @@ -64,7 +64,7 @@ class Banishment(Spell): reappears in the space it left or in the nearest unoccupied space if that space is occupied. Otherwise, the target doesn't return. - At Higher Levels: When you + **At Higher Levels:** When you cast this spell using a spell slot of 5th level or higher, you can target one additional creature for each slot level above 4th. """ @@ -117,14 +117,14 @@ class BeaconOfHope(Spell): class BeastBond(Spell): """You establish a telepathic link with one beast you touch that is - friendly to you or charmed by you. The spell fails if the beast's - Intelligence is 4 or higher. Until the spell ends, the link is - active while you and the beast are within line of sight of each - other. Through the link, the beast can understand your telepathic - messages to it, and it can telepathically communicate simple - emotions and concepts back to you. While the link is active, the - beast gains advantage on attack rolls against any creature within - 5 feet of you that you can see. + friendly to you or charmed by you. The spell fails if the beast's + Intelligence is 4 or higher. Until the spell ends, the link is + active while you and the beast are within line of sight of each + other. Through the link, the beast can understand your telepathic + messages to it, and it can telepathically communicate simple + emotions and concepts back to you. While the link is active, the + beast gains advantage on attack rolls against any creature within + 5 feet of you that you can see. """ name = "Beast Bond" @@ -160,14 +160,14 @@ class BeastSense(Spell): class BestowCurse(Spell): """You touch a creature, and that creature must succeed on a Wisdom saving throw or - become cursed for the duration of the spell. When you cast this spell, choose + become cursed for the duration of the spell. When you cast this spell, choose the nature of the curse from the following options:* Choose one ability score. While cursed, the target has disadvantage on ability checks and saving throws made with that ability score.* While cursed, the target has disadvantage on attack rolls against you.* While cursed, the target must make a Wisdom saving throw at the start of each of its turns. If it fails, it wastes its action that turn doing nothing.* While the target is cursed, your attacks and spells deal an - extra 1d8 necrotic damage to the target. + extra 1d8 necrotic damage to the target. A remove curse spell ends this effect. At the DM's option, you may choose an alternative curse effect, but it @@ -175,7 +175,7 @@ class BestowCurse(Spell): The DM has final say on such a curse's effect. - At Higher Levels: If you cast this spell using a spell + **At Higher Levels:** If you cast this spell using a spell slot of 4th level or higher, the duration is concentration, up to 10 minutes. If you use a spell slot of 5th level or higher, the duration is 8 hours. @@ -269,14 +269,14 @@ class BigbysHand(Spell): class BladeBarrier(Spell): """You create a vertical wall of whirling, razor-sharp blades made of magical energy. The wall appears within range and lasts for the duration. You can make a - straight wall up to 100 feet long, 20 feet high, and 5 feet thick, or a ringed + straight wall up to 100 feet long, 20 feet high, and 5 feet thick, or a ringed wall up to 60 feet in diameter, 20 feet high, and 5 feet thick. The wall provides three-quarters cover to creatures behind it, and its space is difficult - terrain. + terrain.  When a creature enters the wall's area for the first time on a turn - or starts its turn there, the creature must make a Dexterity saving throw. On a - failed save, the creature takes 6 d10 slashing damage. On a successful save, + or starts its turn there, the creature must make a Dexterity saving throw. On a + failed save, the creature takes 6 d10 slashing damage. On a successful save, the creature takes half as much damage. """ name = "Blade Barrier" @@ -331,7 +331,7 @@ class Bless(Spell): class Blight(Spell): """Necromantic energy washes over a creature of your choice that you can see within - range, draining moisture and vitality from it. The target must make a + range, draining moisture and vitality from it. The target must make a Constitution saving throw. The target takes 8d8 necrotic damage on a failed save, or half as much damage on a successful one. This spell has no effect on undead or constructs. @@ -390,7 +390,7 @@ class BlindnessDeafness(Spell): 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 + **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. @@ -409,11 +409,11 @@ class BlindnessDeafness(Spell): class Blink(Spell): """Roll a d20 at the end of each of your turns for the duration of the spell. On a roll of 11 or higher, you vanish from your current plane of existence and appear - in the Etheral Plane (the spell fails and the casting is wasted if you were + in the Etheral Plane (the spell fails and the casting is wasted if you were already on that plane). At the start of you next turn, and when the spell ends - if you are on the Etheral Plane, you return to an unoccupied space of your + if you are on the Etheral Plane, you return to an unoccupied space of your choice that you can see within 10 feet of the space you vanished from. If no unoccupied space is available within that rang, you appear in the nearest unoccupied space (chosen at random if more that one space is equally near). You @@ -421,7 +421,7 @@ class Blink(Spell): While on the Ethereal Plane, you can see and hear the plane you originated from, which is cast in shades of gray, and you - can't see anything more than 60 feet away.You can only affect and be affected + can't see anything more than 60 feet away.You can only affect and be affected by other reatures on the Ethereal Plane. Creature that aren't there can't perceive you or interact with you, unless they have the ability to do so. """ @@ -439,7 +439,7 @@ class Blink(Spell): class Blur(Spell): """Your body becomes blurred, shifting and wavering to all who can see you. For the - duration, any creature has disadvantage on attack rolls against you. An + duration, any creature has disadvantage on attack rolls against you. An attacker is immune to this effect if it doesnt rely on sight, as with blindsight, or can see through illusions, as with truesight. """ @@ -497,7 +497,7 @@ class BonesOfTheEarth(Spell): class BoomingBlade(Spell): """As part of the action used to cast this spell, you must make a melee attack with - a weapon against one creature within the spell's range, otherwise the spell + a weapon against one creature within the spell's range, otherwise the spell fails. On a hit, the target suffers the attack's normal effects, and it becomes sheathed in booming energy until the start of your next turn. If the target @@ -508,7 +508,7 @@ class BoomingBlade(Spell): At Higher Levels: At 5th level, the melee attack deals an extra 1d8 thunder damage to the target, and the damage the target takes for moving increases to 2d8. Both - damage rolls increase by 1d8 at 11th level and 17th level. + damage rolls increase by 1d8 at 11th level and 17th level. """ name = "Booming Blade" level = 0 @@ -529,7 +529,7 @@ class BrandingSmite(Spell): the target sheds dim light in a 5-foot radius and can't become invisible until the spell ends. - At Higher Levels: When you cast this spell using a spell slot + **At Higher Levels:** When you cast this spell using a spell slot of 3rd level or higher, the extra damage increases by 1d6 for each slot level above 2nd. """ @@ -555,7 +555,7 @@ class BurningHands(Spell): ignites any flammable objects in the area that aren't being worn or carried. At - Higher Levels: When you cast this spell using a spell slot of 2nd level or + Higher Levels: When you cast this spell using a spell slot of 2nd level or higher, the damage increases by 1d6 for each slot level above 1st. """ name = "Burning Hands" diff --git a/dungeonsheets/spells/spells_c.py b/dungeonsheets/spells/spells_c.py index cef1161..3cff53e 100644 --- a/dungeonsheets/spells/spells_c.py +++ b/dungeonsheets/spells/spells_c.py @@ -4,23 +4,23 @@ from dungeonsheets.spells.spells import Spell class CallLightning(Spell): """A storm cloud appears in the shape of a cylinder that is 10 feet tall with a 60-foot radius, centered on a point you can see 100 feet directly above you. The - spell fails if you can't see a point in the air where the storm cloud could + spell fails if you can't see a point in the air where the storm cloud could appear (for example, if you are in a room that can't accommodate the cloud). When you cast the spell, choose a point you can see within range. A bolt of lightning flashes down from the cloud to that point. Each creature within 5 feet - of that point must make a Dexterity saving throw. A creature takes 3d10 + of that point must make a Dexterity saving throw. A creature takes 3d10 lightning damage on a failed save, or half as much damage on a successful one. On each of your turns until the spell ends, you can use your action to call down - lightning in this way again, targeting the same point or a different one. + lightning in this way again, targeting the same point or a different one. If you are outdoors in stormy conditions when you cast this spell, the spell gives you control over the existing storm instead of creating a new one. Under such conditions, the spell's damage increases by 1d10. - At Higher Levels: When you + **At Higher Levels:** When you cast this spell using a spell slot of 4th or higher level, the damage increases by 1d10 for each slot level above 3rd. """ @@ -97,8 +97,8 @@ class Catnap(Spell): that target gains the benefit of a short rest, and it can't be affected by this spell again until it finishes a long rest. - At Higher Levels: When you cast this - spell using a spell slot of 4th level or higher, you can target one additional + **At Higher Levels:** When you cast this + spell using a spell slot of 4th level or higher, you can target one additional willing creature for each slot level above 3rd. """ name = "Catnap" @@ -120,7 +120,7 @@ class CauseFear(Spell): frightened target can repeat the saving throw at the end of each of its turns, ending the effect on itself on a success. - At Higher Levels: When you cast this + **At Higher Levels:** When you cast this spell using a spell slot of 2nd level or higher, you can target one additional creature for each slot level above lst. The creatures must be within 30 feet of each other when you target them. @@ -156,11 +156,11 @@ class Ceremony(Spell): it can roll a d4 and add the number rolled to the save. A creature can benefit from this rite only once. Funeral Rite. You touch one corpse, and for the next 7 - days, the target can't become undead by any means short of a wish spell. + days, the target can't become undead by any means short of a wish spell. Wedding. You touch adult humanoids willing to be bonded together in marriage. For the next 7 days, each target gains a +2 bonus to AC while they are within 30 - feet of each other. A creature can benefit from this rite again only if + feet of each other. A creature can benefit from this rite again only if widowed. """ name = "Ceremony" @@ -177,9 +177,9 @@ class Ceremony(Spell): class ChainLightning(Spell): """You create a bolt of lightning that arcs toward a target of your choice that you - can see within range. Three bolts then leap from that target to as many as + can see within range. Three bolts then leap from that target to as many as three other targets, each of which must be within 30 feet of the first target. A - target can be a creature or an object and can be targeted by only one of the + target can be a creature or an object and can be targeted by only one of the bolts. A target must make a Dexterity saving throw. The target takes 10d8 @@ -227,7 +227,7 @@ class ChaosBolt(Spell): leap again. A creature can be targeted only once by each casting of this spell. - At Higher Levels: When you cast this spell using a spell slot of + **At Higher Levels:** When you cast this spell using a spell slot of 2nd level or higher, each target takes 1d6 extra damage of the type rolled for each slot level above 1st. @@ -253,7 +253,7 @@ class CharmMonster(Spell): friendly to you. When the spell ends, the creature knows it was charmed by you. - At Higher Levels: When you cast this spell using a spell slot of + **At Higher Levels:** When you cast this spell using a spell slot of 5th level or higher, you can target one additional creature for each slot level above 4th. The creatures must be within 30 feet of each other when you target them. @@ -280,7 +280,7 @@ class CharmPerson(Spell): you as a friendly acquaintance. When the spell ends, the creature knows it was charmed by you. - At Higher Levels: When you cast this spell using a spell slot of + **At Higher Levels:** When you cast this spell using a spell slot of 2nd level or higher, you can target one additional creature for each slot level above 1st. The creatures must be within 30 feet of each other when you target them. @@ -304,10 +304,10 @@ class ChillTouch(Spell): Make a ranged spell attack against the creature to assail it with the chill of the grave. On a hit, the target takes 1d8 necrotic damage, and it can't regain hit points until the start of your next turn. Until then, the hand clings to the - target. If you hit an undead target, it also has disadvantage on attack rolls + target. If you hit an undead target, it also has disadvantage on attack rolls against you until the end of your next turn. - At Higher Levels: This spell's + **At Higher Levels:** This spell's damage increases by 1d8 when you reach 5th level (2d8), 11th level (3d8), and 17th level (4d8). """ @@ -326,8 +326,8 @@ class ChillTouch(Spell): class ChromaticOrb(Spell): """You hurl a 4-inch-diameter sphere of energy at a creature that you can see within range. You choose acid, cold, fire, lightning, poison, or thunder for the - type of orb you create, and then make a ranged spell attack against the target. - If the attack hits, the creature takes 3d8 damage of the type you chose. + type of orb you create, and then make a ranged spell attack against the target. + If the attack hits, the creature takes 3d8 damage of the type you chose. At Higher Levels: When you cast this spell using a spell slot of 2nd level or @@ -349,10 +349,10 @@ class CircleOfDeath(Spell): """A sphere of negative energy ripples out in a 60-foot-radius sphere from a point within range. Each creature in that area must make a Constitution saving throw. A target takes 8d6 necrotic damage on a failed save, or half as much damage on a - successful one. + successful one. - At Higher Levels: W hen you cast this spell using a spell slot - of 7th level or higher, the damage increases by 2d6 for each slot level above + **At Higher Levels:** W hen you cast this spell using a spell slot + of 7th level or higher, the damage increases by 2d6 for each slot level above 6th. """ name = "Circle Of Death" @@ -402,7 +402,7 @@ class Clairvoyance(Spell): hearing. You can use the chosen sense through the sensor as if you were in its space. As your action, you can switch between seeing and hearing. A creature that can see the sensor (such as a creature benefitting from see invisibility or - truesight) sees a luminous, intangible orb about the size of your fist. + truesight) sees a luminous, intangible orb about the size of your fist. """ name = "Clairvoyance" level = 3 @@ -422,7 +422,7 @@ class Clone(Spell): This clone forms inside a sealed vessel and grows to full size and maturity after 120 days; you can also choose to have the clone be a younger version of the same creature. It remains inert and endures indefinitely, as long - as its vessel remains undisturbed. + as its vessel remains undisturbed.  At any time after the clone matures, if @@ -448,10 +448,10 @@ class Clone(Spell): class CloudOfDaggers(Spell): """You fill the air with spinning daggers in a cube 5 feet on each side, centered on a point you choose within range. A creature takes 4d4 slashing damage when it - enters the spell's area for the first time on a turn or starts its turn there. + enters the spell's area for the first time on a turn or starts its turn there. - At Higher Levels: When you cast this spell using a spell slot of 3rd level or + **At Higher Levels:** When you cast this spell using a spell slot of 3rd level or higher, the damage increases by 2d4 for each slot level above 2nd. """ name = "Cloud Of Daggers" @@ -483,8 +483,8 @@ class Cloudkill(Spell): vapors, being heavier than air, sink to the lowest level of the land, even pouring down openings. - At Higher Levels: When you cast this spell using a spell - slot of 6th level or higher, the damage increases by 1d8 for each slot level + **At Higher Levels:** When you cast this spell using a spell + slot of 6th level or higher, the damage increases by 1d8 for each slot level above 5th. """ name = "Cloudkill" @@ -513,8 +513,8 @@ class ColorSpray(Spell): next lowest hit points. A creature's hit points must be equal to or less than the remaining total for the creature to be affected. - At Higher Levels: When you - cast this spell using a spell slot of 2nd level or higher, roll an additional + **At Higher Levels:** When you + cast this spell using a spell slot of 2nd level or higher, roll an additional 2d10 for each slot level above 1st. """ name = "Color Spray" @@ -535,33 +535,33 @@ class Command(Spell): the command on its next turn. The spell has no effect if the target is undead, if it doesn't understand your language, or if your command is directly harmful to it. - + Some typical commands and their effects follow. You might issue a command other than one described here. If you do so, the DM determines how the target behaves. If the target can't follow your command, the spell ends. - - **Approach:** The target moves toward you by the shortest and most - direct route, ending its turn if it moves within 5 feet of you. - - **Drop:** The target drops whatever it is holding and then ends - its turn. - - **Flee:** The target spends its turn moving away from you by the - fastest available means. - - **Grovel:** The target falls prone and then ends its turn. - - **Halt:** The target doesn't move and takes no actions. A flying - creature stays aloft, provided that it is able to do so. If it - must move to stay aloft, it flies the minimum distance needed to - remain in the air. - + + Approach. + The target moves toward you by the shortest and most direct + route, ending its turn if it moves within 5 feet of you. + Drop. + The target drops whatever it is holding and then ends its turn. + Flee. + The target spends its turn moving away from you by the fastest + available means. + Grovel. + The target falls prone and then ends its turn. + Halt. + The target doesn't move and takes no actions. A flying creature + stays aloft, provided that it is able to do so. If it must move + to stay aloft, it flies the minimum distance needed to remain in + the air. + **At Higher Levels:** When you cast this spell using a spell slot - of 2nd level or higher, you can affect one additional creature - for each slot level above 1st. The creatures must be within 30 - feet of each other when you target them - + of 2nd level or higher, you can affect one additional creature for + each slot level above 1st. The creatures must be within 30 feet of + each other when you target them + """ name = "Command" level = 1 @@ -578,7 +578,7 @@ class Command(Spell): class Commune(Spell): """You contact your deity or a divine proxy and ask up to three questions that can be answered with a yes or no. You must ask your questions before the spell ends. - You receive a correct answer for each question. + You receive a correct answer for each question. Divine beings aren't necessarily omniscient, so you might receive "unclear" as an answer if a @@ -587,7 +587,7 @@ class Commune(Spell): interests, the DM might offer a short phrase as an answer instead. If you cast - the spell two or more times before finishing your next long rest, there is a + the spell two or more times before finishing your next long rest, there is a cumulative 25 percent chance for each casting after the first that you get no answer. The DM makes this roll in secret. """ @@ -650,7 +650,7 @@ class CompelledDuel(Spell): restrict the target's movement for that turn. The spell ends if you attack any - other creature, if you cast a spell that targets a hostile creature other than + other creature, if you cast a spell that targets a hostile creature other than the target, if a creature friendly to you damages the target or casts a harmful spell on it, or if you end your turn more than 30 feet away from the target. """ @@ -668,11 +668,11 @@ class CompelledDuel(Spell): class ComprehendLanguages(Spell): """For the duration, you understand the literal meaning of any spoken language that - you hear. + you hear. You also understand any spoken language that you hear. You also understand any written language that you see, but you must be touching the surface of which the words are written. It takes about 1 minute to read one page - of text. + of text. This spell doesn't decode secret messages in a text or glyph, such as an arcane sigil, that isn't part of a written language. @@ -693,15 +693,15 @@ class Compulsion(Spell): """Creatures of your choice that you can see within range and that can hear you must make a Wisdom saving throw. A target automatically succeeds on this saving - throw if it can't be charmed. On a failed save, a target is affected by this + throw if it can't be charmed. On a failed save, a target is affected by this spell. Until the spell ends, you can use a bonus action on each of your turns to - designate a direction that is horizontal to you. Each affected target must use + designate a direction that is horizontal to you. Each affected target must use as much of its movement as possible to move in that direction on its next turn. It can take its action before it moves. After moving in this way, it can make another Wisdom saving throw to try to end the effect. A target isn't compelled - to move into an obviously deadly hazard, such as a fire pit, but it will + to move into an obviously deadly hazard, such as a fire pit, but it will provoke opportunity attacks to move in the designated direction. """ name = "Compulsion" @@ -725,7 +725,7 @@ class ConeOfCold(Spell): failed save, or half as much damage on a successful one. A creature killed by this spell becomes a frozen statue until it thaws. - At Higher Levels: When you + **At Higher Levels:** When you cast this spell using a spell slot of 6th level or higher, the damage increases by 1d8 for each slot level above 5th. """ @@ -755,7 +755,7 @@ class Confusion(Spell):  1. The creature uses all its movement to move in a random direction. To determine the direction, roll - a d8 and assign a direction to each die face. The creature doesn't take an + a d8 and assign a direction to each die face. The creature doesn't take an action this turn.   2-6. The creature doesn't move or take actions this turn. @@ -769,7 +769,7 @@ class Confusion(Spell): normally. At the end of its turns, an affected target can make a Wisdom saving - throw. It it succeeds, this effect ends for that target. + throw. It it succeeds, this effect ends for that target. At Higher Levels: When you cast this spell using a spell slot of 5th level or higher, the radius @@ -834,7 +834,7 @@ class ConjureAnimals(Spell): class ConjureBarrage(Spell): """You throw a nonmagical weapon or fire a piece of nonmagical ammunition into the air to create a cone of identical weapons that shoot forward and then disappear. - Each creature in a 60-foot cone must succeed on a Dexterity saving throw. A + Each creature in a 60-foot cone must succeed on a Dexterity saving throw. A creature takes 3d8 damage on a failed save, or half as much damage on a successful one. The damage type is the same as that of the weapon or ammunition used as a component. @@ -854,7 +854,7 @@ class ConjureBarrage(Spell): class ConjureCelestial(Spell): """You summon a celestial of challenge rating 4 or lower, which appears in an unoccupied space that you can see within range. The celestial disappears when it - drops to 0 hit points or when the spell ends. + drops to 0 hit points or when the spell ends. The celestial is friendly to you and your companions for the duration. Roll initiative for the celestial, @@ -865,7 +865,7 @@ class ConjureCelestial(Spell): The DM has the celestial's statistics. - At Higher Levels: When you cast this spell using a 9th-level spell slot, you + **At Higher Levels:** When you cast this spell using a 9th-level spell slot, you summon a celestial of challenge rating 5 or lower. """ name = "Conjure Celestial" @@ -884,13 +884,13 @@ class ConjureElemental(Spell): """You call forth an elemental servant. Choose an area of air, earth, fire, or water that fills a 10-foot cube within range. An elemental of challenge rating 5 - or lower appropriate to the area you chose appears in an unoccupied space + or lower appropriate to the area you chose appears in an unoccupied space within 10 feet of it. For example, a fire elemental emerges from a bonfire, and an earth elemental rises up from the ground. The elemental disappears when it drops to 0 hit points or when the spell ends. The elemental is friendly to you - and your companions for the duration. Roll initiative for the elemental, which + and your companions for the duration. Roll initiative for the elemental, which has its own turns. It obeys any verbal commands that you issue to it (no action required by you). If you don't issue any commands to the elemental, it defends itself from hostile creatures but otherwise takes no actions. @@ -899,10 +899,10 @@ class ConjureElemental(Spell): concentration is broken, the elemental doesn't disappear. Instead, you lose control of the elemental, it becom es hostile toward you and your companions, and it might attack. An uncontrolled elemental can't be dismissed by you, and it - disappears 1 hour after you summoned it. The DM has the elemental's statistics. + disappears 1 hour after you summoned it. The DM has the elemental's statistics. - At Higher Levels: When you cast this spell using a spell slot of 6th level or + **At Higher Levels:** When you cast this spell using a spell slot of 6th level or higher, the challenge rating increases by 1 for each slot level above 5th. """ name = "Conjure Elemental" @@ -922,17 +922,17 @@ class ConjureFey(Spell): takes the form of a beast of challenge rating 6 or lower. It appears in an unoccupied space that you can see within range. The fey creature disappears when - it drops to 0 hit points or when the spell ends. + it drops to 0 hit points or when the spell ends. The fey creature is friendly - to you and your companions for the duration. Roll initiative for the creature, + to you and your companions for the duration. Roll initiative for the creature, which has its own turns. It obeys any verbal commands that you issue to it (no action required by you), as long as they don't violate its alignment. If you don't issue any commands to the fey creature, it defends itself from hostile creatures but otherwise takes no actions. If your concentration is broken, the - fey creature doesn't disappear. Instead, you lose control of the fey creature, + fey creature doesn't disappear. Instead, you lose control of the fey creature, it becomes hostile toward you and your companions, and it might attack. An uncontrolled fey creature can't be dismissed by you, and it disappears 1 hour after you summoned it. @@ -977,7 +977,7 @@ class ConjureMinorElementals(Spell): take no actions. The DM has the creatures' statistics. - At Higher Levels: When + **At Higher Levels:** When you cast this spell using certain higher-level spell slots, you choose one of the summoning options above, and more creatures appear: twice as many with a 6th-level slot and three times as many with an 8th-level slot. @@ -1044,7 +1044,7 @@ class ConjureWoodlandBeings(Spell): Levels: When you cast this spell using certain higher-level spell slots, you choose one of the summoning options above, and more creatures appear: twice as - many with a 6th-level slot + many with a 6th-level slot three times as many with an 8th-level slot. """ name = "Conjure Woodland Beings" @@ -1066,12 +1066,12 @@ class ContactOtherPlane(Spell): can strain or even break your mind. When you cast this spell, make a DC 15 Intelligence saving throw. On a failure, you take 6d6 psychic damage and are insane until you finish a long rest. While insane, you can't take actions, can't - understand what other creatures say, can't read, and speak only in gibberish. A - greater restoration spell cast on you ends this effect. + understand what other creatures say, can't read, and speak only in gibberish. A + greater restoration spell cast on you ends this effect. On a successful save, - you can ask the entity up to five questions. You must ask your questions before - the spell ends. The DM answers each question with one word, such as yes, + you can ask the entity up to five questions. You must ask your questions before + the spell ends. The DM answers each question with one word, such as yes, no, maybe, never, irrelevant, or unclear (if the entity doesn't know the answer to the question). If a one-word answer would be misleading, the DM might instead offer a short phrase as an answer. @@ -1096,12 +1096,12 @@ class Contagion(Spell): At the end of each of the target's turns, it must make a Constitution saving throw. After failing three of - these saving throws, the disease's effects last for the duration, and the + these saving throws, the disease's effects last for the duration, and the creature stops making these saves. After succeeding on three of these saving throws, the creature recovers from the disease, and the spell ends. Since this - spell induces a natural disease in its target, any effect that removes a + spell induces a natural disease in its target, any effect that removes a disease or otherwise ameliorates a disease's effects apply to it. Blinding @@ -1113,7 +1113,7 @@ class Contagion(Spell): Filth Fever  A raging fever sweeps through the creature's body. The creature has disadvantage on Strength checks, Strength saving throws, and attack - rolls that use Strength. + rolls that use Strength. Flesh Rot The creature's flesh decays. The creature @@ -1133,7 +1133,7 @@ class Contagion(Spell): Slimy Doom The creature begins to bleed uncontrollably. The creature has disadvantage - on Constitution checks and Constitution saving throws. In addition, whenever + on Constitution checks and Constitution saving throws. In addition, whenever the creature takes damage, it is stunned until the end of its next turn. """ name = "Contagion" @@ -1203,19 +1203,19 @@ class ContinualFlame(Spell): class ControlFlames(Spell): """You choose a nonmagical flame that you can see within range and that fits within - a 5-foot cube. You affect it in one of the following ways: + a 5-foot cube. You affect it in one of the following ways: - You instantaneously expand the flame 5 feet in one direction, - provided that wood or other fuel is present in the new location. + provided that wood or other fuel is present in the new location. - You instantaneously extinguish the flames within the cube. - You double or halve the area of bright light and dim light cast - by the flame, change its color, or both. The change lasts for 1 - hour. + by the flame, change its color, or both. The change lasts for 1 + hour. - You cause simple shapes - such as the vague form of a creature, - an inanimate object, or a location - to appear within the flames - and animate as you like. The shapes last for 1 hour. If you - cast this spell multiple times, you can have up to three - non-instantaneous + an inanimate object, or a location - to appear within the flames + and animate as you like. The shapes last for 1 hour. If you + cast this spell multiple times, you can have up to three + non-instantaneous """ name = "Control Flames" @@ -1276,7 +1276,7 @@ class ControlWater(Spell): When a creature enters the vortex for the first time on a turn or starts its turn there, it must make a Strength saving throw. On a failed save, the creature - takes 2d8 bludgeoning damage and is caught in the vortex until the spell ends. + takes 2d8 bludgeoning damage and is caught in the vortex until the spell ends. On a successful save, the creature takes half damage, and isn't caught in the vortex. A creature caught in the vortex can use its action to try to swim away from the vortex as described above, but has disadvantage on the Strength @@ -1407,7 +1407,7 @@ class CordonOfArrows(Spell): spell, you can designate any creatures you choose, and the spell ignores them. - At Higher Levels: When you cast this spell using a spell slot of 3rd level or + **At Higher Levels:** When you cast this spell using a spell slot of 3rd level or higher, the amount of ammunition that can be affected increases by two for each slot level above 2nd. """ @@ -1425,18 +1425,18 @@ class CordonOfArrows(Spell): class Counterspell(Spell): """1 reaction, which you take when you see a creature within 60 feet of you casting - a spell + a spell You attempt to interrupt a creature in the process of casting a spell. - If the creature is casting a spell of 3rd level or lower, its spell fails and + If the creature is casting a spell of 3rd level or lower, its spell fails and has no effect. If it is casting a spell of 4th level or higher, make an ability check using your spellcasting ability. The DC equals 10+ the spell's level. On a success, the creature's spell fails and has no effect. - At Higher Levels: When - you cast this spell using a spell slot of 4th level or higher, the interrupted + **At Higher Levels:** When + you cast this spell using a spell slot of 4th level or higher, the interrupted spell has no effect if its level is less than or equal to the level of the spell - slot you used. + slot you used. """ name = "Counterspell" level = 3 @@ -1495,20 +1495,20 @@ class CreateFoodAndWater(Spell): class CreateHomunculus(Spell): """While speaking an intricate incantation, you cut yourself with a jewel-encrusted - dagger, taking 2d4 piercing damage that can't be reduced in any way. You then + dagger, taking 2d4 piercing damage that can't be reduced in any way. You then drip your blood on the spell's other components and touch them, transforming them into a special construct called a homunculus. The statistics of the homunculus are in the Monster Manual. It is your faithful companion, and it dies - if you die. Whenever you finish a long rest, you can spend up to half your Hit + if you die. Whenever you finish a long rest, you can spend up to half your Hit Dice if the homunculus is on the same plane of existence as you. When you do so, - roll each die and add your Constitution modifier to it. Your hit point maximum + roll each die and add your Constitution modifier to it. Your hit point maximum is reduced by the total, and the homunculus's hit point maximum and current hit points are both increased by it. This process can reduce you to no lower than 1 hit point. and the change to your and the homunculus's hit points ends when you finish your next long rest. The reduction to your hit point maximum can't be removed by any means before then, except by the homunculus‘s death. You can have - only one homunculus at a time. If you cast this spell while your homunculus + only one homunculus at a time. If you cast this spell while your homunculus lives, the spell fails. """ name = "Create Homunculus" @@ -1529,7 +1529,7 @@ class CreateOrDestroyWater(Spell): Create Water You create up to 10 gallons of clean water within range in an open container. Alternatively, the water falls - as rain in a 30-foot cube within range, extinguishing exposed flames in the + as rain in a 30-foot cube within range, extinguishing exposed flames in the area. Destroy Water  @@ -1537,7 +1537,7 @@ class CreateOrDestroyWater(Spell): container within range. Alternatively, you destroy fog in a 30-foot cube within range. - At Higher Levels: When you cast this spell using a spell slot of 2nd + **At Higher Levels:** When you cast this spell using a spell slot of 2nd level or higher, you create or destroy 10 additional gallons of water, or the size of the cube increases by 5 feet, for each slot level above 1st. """ @@ -1559,11 +1559,11 @@ class CreateUndead(Spell): (The DM has game statistics for these creatures.) As a bonus action on each of - your turns, you can mentally command any creature you animated with this spell + your turns, you can mentally command any creature you animated with this spell if the creature is within 120 feet of you (if you control multiple creatures, you can command any or all of them at the same time, issuing the same command to - each one). You decide what action the creature will take and where it will move - during its next turn, or you can issue a general command, such as to guard a + each one). You decide what action the creature will take and where it will move + during its next turn, or you can issue a general command, such as to guard a particular chamber or corridor. If you issue no commands, the creature only defends itself against hostile creatures. Once given an order, the creature continues to follow it until its task is complete. @@ -1571,17 +1571,17 @@ class CreateUndead(Spell): The creature is under your control for 24 hours, after which it stops obeying any command you have given it. To maintain control of the creature for another 24 hours, you must cast this - spell on the creature before the current 24-hour period ends. This use of the + spell on the creature before the current 24-hour period ends. This use of the spell reasserts your control over up to three creatures you have animated with this spell, rather than animating new ones. - At Higher Levels: When you cast + **At Higher Levels:** When you cast this spell using a 7th-level spell slot, you can animate or reassert control over four ghouls. When you cast this spell using an 8th-level spell slot, you can animate or reassert control over five ghouls or two ghasts or wights. When - you cast this spell using a 9th-level spell slot, you can animate or reassert + you cast this spell using a 9th-level spell slot, you can animate or reassert control over six ghouls, three ghasts or wights, or two mummies. """ name = "Create Undead" @@ -1605,7 +1605,7 @@ class Creation(Spell): The duration depends on the object's material. If the object is composed of multiple - materials, use the shortest duration. + materials, use the shortest duration. Material - Duration Vegetable matter - 1 day @@ -1619,8 +1619,8 @@ class Creation(Spell): material component causes that spell to fail. **At Higher Levels:** When you cast this spell using a spell slot of - 6th level or higher, the cube increases by 5 feet for each slot - level above 5th. + 6th level or higher, the cube increases by 5 feet for each slot + level above 5th. """ name = "Creation" @@ -1639,16 +1639,16 @@ class CrownOfMadness(Spell): """One humanoid of your choice that you can see within range must succeed on a Wisdom saving throw or become charmed by you for the duration. While the target - is charmed in this way, a twisted crown of jagged iron appears on its head, and - a madness glows in its eyes. + is charmed in this way, a twisted crown of jagged iron appears on its head, and + a madness glows in its eyes. The charmed target must use its action before moving on each of its turns to make a melee attack against a creature other than - itself that you mentally choose. The target can act normally on its turn if you - choose no creature or if none are within its reach. + itself that you mentally choose. The target can act normally on its turn if you + choose no creature or if none are within its reach. On your subsequent turns, - you must use your action to maintain control over the target, or the spell + you must use your action to maintain control over the target, or the spell ends. Also, the target can make a Wisdom saving throw at the end of each of its turns. On a success, the spell ends. """ @@ -1676,7 +1676,7 @@ class CrownOfStars(Spell): feet. Ifyou have one to three motes remaining, they shed dim light in a 30-foot radius. - At Higher Levels: When you cast this spell using a spell slot of + **At Higher Levels:** When you cast this spell using a spell slot of 8th level or higher, the number of motes created increases by two for each slot level above 7th. @@ -1718,7 +1718,7 @@ class CureWounds(Spell): spellcasting ability modifier. This spell has no effect on undead or constructs. - At Higher Levels: When you cast this spell using a spell slot of 2nd level or + **At Higher Levels:** When you cast this spell using a spell slot of 2nd level or higher, the healing increases by 1d8 for each slot level above 1st. """ name = "Cure Wounds" diff --git a/dungeonsheets/spells/spells_d.py b/dungeonsheets/spells/spells_d.py index 944b6ab..d3174cd 100644 --- a/dungeonsheets/spells/spells_d.py +++ b/dungeonsheets/spells/spells_d.py @@ -31,18 +31,18 @@ class DanseMacabre(Spell): becomes undead. You decide whether it is a zombie or a skeleton (the statistics for zombies and skeletons are in the Monster Manual), and it gains a bonus to its attack and damage rolls equal to your spellcasting ability modifier. You can - use a bonus action to mentally command the creatures you make with this spell, + use a bonus action to mentally command the creatures you make with this spell, issuing the same command to all of them. To receive the command, a creature must - be within 60 feet of you. You decide what action the creatures will take and + be within 60 feet of you. You decide what action the creatures will take and where they will move during their next turn, or you can issue a general command, - such as to guard a chamber or passageway against your foes. lfyou issue no + such as to guard a chamber or passageway against your foes. lfyou issue no commands, the creatures do nothing except defend themselves against hostile creatures. Once given an order, the creatures continue to follow it until their task is complete. The creatures are under your control until the spell ends, after which they become inanimate once more. - At Higher Levels: When you cast + **At Higher Levels:** When you cast this spell using a spell slot‘ of 6th level or higher, you animate up to two additional corpses for each slot level above 5th. """ @@ -89,7 +89,7 @@ class Darkness(Spell): class Darkvision(Spell): """You touch a willing creature to grant it the ability to see in the dark. For the - duration, that creature has darkvision out to a range of 60 feet. + duration, that creature has darkvision out to a range of 60 feet. """ name = "Darkvision" level = 2 @@ -109,7 +109,7 @@ class Dawn(Spell): 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 + 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. """ @@ -134,11 +134,11 @@ class Daylight(Spell): If you chose a point on an object you are holding or one that isn't being worn or carried, the light shines from the object with and moves with it. Completely covering the affected object with an opaque object, such as a bowl or - a helm, blocks the light. + a helm, blocks the light. If any of this spell's area overlaps with an area of darkness created by a spell of 3rd level or lower, the spell that created the - darkness is dispelled. + darkness is dispelled. """ name = "Daylight" level = 3 @@ -155,7 +155,7 @@ class Daylight(Spell): class DeathWard(Spell): """You touch a creature and grant it a measure of protection from death. The first - time the target would drop to 0 hit points as a result of taking damage, the + time the target would drop to 0 hit points as a result of taking damage, the target instead drops to 1 hit point, and the spell ends. If the spell is still in effect when the target is subjected to an effect that would kill it instantaneously without dealing damage, that effect is instead negated against @@ -192,9 +192,9 @@ class DelayedBlastFireball(Spell): it must make a Dexterity saving throw. On a failed save, the spell ends immediately, causing the bead to erupt in flame. On a successful save, the creature can throw the bead up to 40 feet. When it strikes a creature or a solid - object, the spell ends, and the bead explodes. + object, the spell ends, and the bead explodes. The fire damages objects in the - area and ignites flammable objects that aren't being worn or carried. + area and ignites flammable objects that aren't being worn or carried. At Higher Levels: When you cast this spell using a spell slot of 8th level or @@ -216,7 +216,7 @@ class Demiplane(Spell): """You create a shadowy door on a flat solid surface that you can see within range. The door is large enough to allow Medium creatures to pass through unhindered. - When opened, the door leads to a demiplane that appears to be an empty room 30 + When opened, the door leads to a demiplane that appears to be an empty room 30 feet in each dimension, made of wood or stone. When the spell ends, the door disappears, and any creatures or objects inside the demiplane remain trapped there, as the door also disappears from the other side. @@ -245,7 +245,7 @@ class DestructiveWave(Spell): from you. Each creature you choose within 30 feet of you must succeed on a Constitution saving throw or take 5d6 thunder damage, as well as 5d6 radiant or necrotic damage (your choice), and be knocked prone. A creature that succeeds on - its saving throw takes half as much damage and isn't knocked prone. + its saving throw takes half as much damage and isn't knocked prone. """ name = "Destructive Wave" level = 5 @@ -261,9 +261,9 @@ class DestructiveWave(Spell): class DetectEvilAndGood(Spell): """For the duration, you know if there is an aberration, celestial, elemental, fey, - fiend, or undead within 30 feet of you, as well as where the creature is + fiend, or undead within 30 feet of you, as well as where the creature is located. Similarly, you know if there is a place or object within 30 feet of you - that has been magically consecrated or desecrated. + that has been magically consecrated or desecrated. The spell can penetrate most barriers, but it is blocked by 1 foot of stone, 1 inch of common metal, a @@ -288,7 +288,7 @@ class DetectMagic(Spell): 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 + 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" @@ -310,7 +310,7 @@ class DetectPoisonAndDisease(Spell): 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. + sheet of lead, or 3 feet of wood or dirt. """ name = "Detect Poison And Disease" level = 1 @@ -327,13 +327,13 @@ class DetectPoisonAndDisease(Spell): class DetectThoughts(Spell): """For the duration, you can read the thoughts of certain creatures. When you cast - the spell and as your action on each turn until the spell ends, you can focus + the spell and as your action on each turn until the spell ends, you can focus your mind on any one creature that you can see within 30 feet of you. If the creature you choose has an Intelligence of 3 or lower or doesn't speak any language, the creature is unaffected. You initially learn the surface thoughts - of the creature-what is most on its mind in that moment. As an action, you can + of the creature-what is most on its mind in that moment. As an action, you can either shift your attention to another creature's thoughts or attempt to probe deeper into the same creature's mind. If you probe deeper, the target must make a W isdom saving throw. If it fails, you gain insight into its reasoning (if @@ -374,14 +374,14 @@ class DetectThoughts(Spell): class DimensionDoor(Spell): """You teleport yourself from your current location to any other spot within range. - You arrive at exactly the spot desired. It can be a place you can see, one you + You arrive at exactly the spot desired. It can be a place you can see, one you can visualize, or one you can describe by stating distance and direction, such as "200 feet straight downward" or "upward to the northwest at a 45-degree angle, 300 feet". You can bring along objects as long as their weight doesn't - exceed what you can carry. You can also bring one willing creature of your size - or smaller who is carrying gear up to its carrying capacity. The creature must + exceed what you can carry. You can also bring one willing creature of your size + or smaller who is carrying gear up to its carrying capacity. The creature must be within 5 feet of you when you cast this spell. If you would arrive in a @@ -408,7 +408,7 @@ class DisguiseSelf(Spell): You can seem 1 foot shorter or taller and can appear thin, fat, or in between. You can't change your body type, so you must adopt a form that has the same basic arrangement of limbs. Otherwise, the extent - of the illusion is up to you. + of the illusion is up to you. The changes wrought by this spell fail to hold up to physical inspection. For example, if you use this spell to add a hat to @@ -435,12 +435,12 @@ class Disintegrate(Spell): """A thin green ray springs from your pointing finger to a target that you can see within range. The target can be a creature, an object, or a creation of magical - force, such as the wall created by wall of force. + force, such as the wall created by wall of force. A creature targeted by this - spell must make a Dexterity saving throw. On a failed save, the target takes + spell must make a Dexterity saving throw. On a failed save, the target takes 10d6 + 40 force damage. If this damage reduces the target to 0 hit points, it is - disintegrated. + disintegrated. A disintegrated creature and everything it is wearing and carrying, except magic items, are reduced to a pile of fine gray dust. The @@ -452,9 +452,9 @@ class Disintegrate(Spell): or creation of force, this spell disintegrates a 10-foot-cube portion of it. A magic item is unaffected by this spell. - At Higher Levels: When you cast this + **At Higher Levels:** When you cast this spell using a spell slot of 7th level or higher, the damage increases by 3d6 for - each slot level above 6th. + each slot level above 6th. """ name = "Disintegrate" level = 6 @@ -488,7 +488,7 @@ class DispelEvilAndGood(Spell): melee spell attack against a celestial, an elemental, a fey, a fiend, or an undead you can reach. On a hit, you attempt to drive the creature back to its home plane. The creature must succeed on a Charisma saving throw or be sent back - to its home plane (if it isn't there already). If they aren't on their home + to its home plane (if it isn't there already). If they aren't on their home plane, undead are sent to the Shadowfell, and fey are sent to the Feywild. """ name = "Dispel Evil And Good" @@ -531,10 +531,10 @@ class DissonantWhispers(Spell): range can hear, wracking it with terrible pain. The target must make a Wisdom saving throw. On a failed save, it takes 3d6 psychic damage and must immediately - use its reaction , if available, to move as far as its speed allows away from + use its reaction , if available, to move as far as its speed allows away from you. The creature doesn't move into obviously dangerous ground, such as a fire or a pit. On a successful save, the target takes half as much damage and doesn't - have to move away. A deafened creature automatically succeeds on the save. + have to move away. A deafened creature automatically succeeds on the save. At Higher Levels: When you cast this spell using a spell slot of 2nd level or @@ -564,7 +564,7 @@ class Divination(Spell): If you cast this spell two or more times before finishing your next long rest, there is a cumulative 25 - percent chance for each casting after the first that you get a random reading. + percent chance for each casting after the first that you get a random reading. The DM makes this roll in secret. """ name = "Divination" @@ -581,7 +581,7 @@ class Divination(Spell): class DivineFavor(Spell): """Your prayer empowers you with divine radiance. Until the spell ends, your weapon - attacks deal and extra 1d4 radiant damage on a hit. + attacks deal and extra 1d4 radiant damage on a hit. """ name = "Divine Favor" level = 1 @@ -597,7 +597,7 @@ class DivineFavor(Spell): class DivineWord(Spell): """You utter a divine word, imbued with the power that shaped the world at the dawn - of creation. + of creation. Choose any number of creatures you can see within range. Each creature that can hear you must make a Charisma saving throw. On a failed save, a creature suffers an effect based on its current hit points: @@ -605,14 +605,14 @@ class DivineWord(Spell):  - 50 hit points or fewer: deafened for 1 minute  - 40 hit points or fewer: deafened and - blinded for 10 minutes + blinded for 10 minutes  - 30 hit points or fewer: blinded, deafened, and stunned for 1 hour  - 20 hit points or fewer: killed instantly Regardless of - its current hit points, a celestial, an elemental, a fey, or a fiend that fails - its save is forced back to its plane of origin (if it isn't there already) and + its current hit points, a celestial, an elemental, a fey, or a fiend that fails + its save is forced back to its plane of origin (if it isn't there already) and can't return to your current plane for 24 hours by any means short of a wish spell. """ @@ -652,7 +652,7 @@ class DominateBeast(Spell): Each time the target takes damage, it makes a new Wisdom saving throw against the spell. If the saving throw succeeds, the spell ends. - At Higher Levels: When you cast this spell with a 5th-level spell slot, + **At Higher Levels:** When you cast this spell with a 5th-level spell slot, the duration is concentration, up to 10 minutes. When you use a 6th-level spell slot, the duration is concentration, up to 1 hour. When you use a spell slot of 7th level or higher, the duration is concentration, up to @@ -696,8 +696,8 @@ class DominateMonster(Spell): damage, it makes a new Wisdom saving throw against the spell. If the saving throw succeeds, the spell ends. - At Higher Levels: When you cast this spell with - a 9th-level spell slot, the duration is concentration, up to 8 hours. + **At Higher Levels:** When you cast this spell with + a 9th-level spell slot, the duration is concentration, up to 8 hours. """ name = "Dominate Monster" level = 8 @@ -735,7 +735,7 @@ class DominatePerson(Spell): Each time the target takes damage, it makes a new Wisdom saving throw against the spell. If the saving throw succeeds, the spell ends. - At Higher Levels: When you cast this spell using a 6th-level spell slot, + **At Higher Levels:** When you cast this spell using a 6th-level spell slot, the duration is concentration, up to 10 minutes. When you use a 7th-level spell slot, the duration is concentration, up to 1 hour. When you use a spell slot of 8th level or higher, the duration is concentration, up to @@ -757,11 +757,11 @@ class DragonsBreath(Spell): """You touch one willing creature and imbue it with the power to spew magical energy from its mouth, provided it has one. Choose acid, cold, fire, lightning, or poison. Until the spell ends, the creature can use an action to exhale energy - of the chosen type in a 15-foot cone. Each creature in that area must make a + of the chosen type in a 15-foot cone. Each creature in that area must make a Dexterity saving throw, taking 3d6 damage of the chosen type on a failed save, or half as much damage on a successful one. - At Higher Levels: When you cast + **At Higher Levels:** When you cast this spell using a spell slot of 3rd level or higher, the damage increases by 1d6 for each slot level above 2nd. """ @@ -779,7 +779,7 @@ class DragonsBreath(Spell): class DrawmijsInstantSummons(Spell): """You touch an object weighing 10 pounds or less whose longest dimension is 6 feet - or less. + or less. The spell leaves an invisible mark on its surface and invisibly inscribes the name of the item on the sapphire you use as the material component. Each time you cast this spell, you must use a different sapphire. @@ -788,7 +788,7 @@ class DrawmijsInstantSummons(Spell): At any time thereafter, you can use your action to speak the item's name and crush the sapphire. The item instantly appears in your hand regardless of physical or planar distances, and the spell ends. If another creature is holding - or carrying the item, crushing the sapphire doesn't transport the item to you, + or carrying the item, crushing the sapphire doesn't transport the item to you, but instead you learn who the creature possessing the object is and roughly where that creature is located at that moment. @@ -818,21 +818,21 @@ class Dream(Spell): 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 + 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) - or wait for the target to fall asleep, at which point the messenger + the messenger knows it, and can either end the trance (and the spell) + or wait for the target to fall asleep, at which point the messenger appears in the target's dreams. You can make the messenger appear monstrous and terrifying to the target. If you do, the messenger can deliver a message of no more than ten words and then the target must make a Wisdom saving throw. On a failed save, echoes of the phantasmal - monstrosity spawn a nightmare that lasts the duration of the target's - sleep and prevents the target from gaining any benefit from that + monstrosity spawn a nightmare that lasts the duration of the target's + sleep and prevents the target from gaining any benefit from that rest. In addition, when the target wakes up, it takes 3d6 psychic damage. @@ -855,13 +855,13 @@ sleeping bird""" class DruidGrove(Spell): """You invoke the spirits of nature to protect an area outdoors or underground. The - area can be as small as a 30-foot cube or as large as a 90-foot cube. Buildings - and other structures are excluded from the affected area. If you cast this + area can be as small as a 30-foot cube or as large as a 90-foot cube. Buildings + and other structures are excluded from the affected area. If you cast this spell in the same area every day for a year, the spell lasts until dispelled. The spell creates the following effects within the area. When you cast this spell, you can specify creatures as friends who are immune to the effects. You can also specify a password that, when spoken aloud, makes the speaker immune to - these effects. The entire warded area radiates magic. A dispel magic cast on + these effects. The entire warded area radiates magic. A dispel magic cast on the area, if successful, removes only one of the following effects, not the entire area. That spell's caster chooses which effect to end. Only when all its effects are gone is this spell dispelled. @@ -879,7 +879,7 @@ class DruidGrove(Spell): Grove Guardians. You can animate up to four trees in the area, causing them to uproot themselves from the ground. These trees have the same statistics as an awakened tree, which appears in the Monster Manual, except they can't speak, and - their bark is covered with druidic symbols. If any creature not immune to this + their bark is covered with druidic symbols. If any creature not immune to this effect enters the warded area, the grove guardians fight until they have driven off or slain the intruders. The grove guardians also obey your spoken commands (no action required by you) that you issue while in the area. Ifyou don't give @@ -887,8 +887,8 @@ class DruidGrove(Spell): grove guardians can‘t leave the warded area. When the spell ends, the magic animating them disappears, and the trees take root again if possible. Additional - Spell Effect. You can place your choice of one of the following magical effects - within the warded area: + Spell Effect. You can place your choice of one of the following magical effects + within the warded area: - A constant gust of Wind in two locations of your choice - Spike growth in one location of your choice @@ -912,19 +912,20 @@ class DruidGrove(Spell): class Druidcraft(Spell): """Whispering to the spirits of nature, you create one of the following effects within range: - + - You create a tiny, harmless sensory effect that predicts what - the weather will be at your location for the next 24 hours. The effect might - manifest as a golden orb  for clear skies, a cloud for rain, falling snowflakes - for snow, and so on. This effect persists for 1 round. - - You instantly make a - flower blossom, a seed pod open, or a leaf bud bloom. - - You create an - instantaneous, harmless sensory effect, such as falling leaves, a puff of wind, - the sound of a small animal, or the faint odor of skunk. The effect  must fit in - a 5-foot cube. - - You instantly light or snuff out a candle, a torch, or a - small campfire. + the weather will be at your location for the next 24 hours. The + effect might manifest as a golden orb for clear skies, a cloud + for rain, falling snowflakes for snow, and so on. This effect + persists for 1 round. + - You instantly make a flower blossom, a seed pod open, or a leaf + bud bloom. + - You create an instantaneous, harmless sensory effect, such as + falling leaves, a puff of wind, the sound of a small animal, or + the faint odor of skunk. The effect  must fit in a 5-foot cube. + - You instantly light or snuff out a candle, a torch, or a small + campfire. + """ name = "Druidcraft" level = 0 @@ -942,14 +943,14 @@ class DustDevil(Spell): """(a pinch of dust) Choose an unoccupied 5-foot cube of air that you can see within range. An elemental force that resembles a dust devil appears in the cube - and lasts for the spell's duration. + and lasts for the spell's duration. Any creature that ends its turn within 5 feet of the dust devil must make a Strength saving throw. On a failed save, the creature takes 1d8 bludgeoning damage and is pushed 10 feet away. On a successful save, the creature takes half as much damage and isn't pushed. As a bonus action, you can move the dust devil up to 30 feet in any direction. If the - dust devil moves over sand, dust, loose dirt, or small gravel, it sucks up the + dust devil moves over sand, dust, loose dirt, or small gravel, it sucks up the material and forms a 10-foot-radius cloud of debris around itself that lasts until the start of your next turn. The cloud heavily obscures its area. At diff --git a/dungeonsheets/spells/spells_e.py b/dungeonsheets/spells/spells_e.py index 2671124..d465405 100644 --- a/dungeonsheets/spells/spells_e.py +++ b/dungeonsheets/spells/spells_e.py @@ -54,7 +54,7 @@ class Earthquake(Spell): 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. + 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 @@ -64,7 +64,7 @@ class Earthquake(Spell): 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 x 10 feet deep, 10 feet wide, and extends from one edge of the spell's area to the opposite side. A - creature standing on a spot where a fissure opens must succeed on a Dexterity + creature standing on a spot where a fissure opens must succeed on a Dexterity saving throw or fall in. A creature that successfully saves moves with the fissure's edge as it opens. A fissure that opens beneath a structure causes it @@ -80,7 +80,7 @@ class Earthquake(Spell): bludgeoning damage, is knocked prone, and is buried in the rubble, requiring a DC 20 Strength (Athletics) check as an action to escape. The DM can adjust the DC higher or lower, depending on the nature of the rubble. On a successful save, - the creature takes half as much damage and doesn't fall prone or become buried. + the creature takes half as much damage and doesn't fall prone or become buried. """ name = "Earthquake" level = 8 @@ -96,10 +96,10 @@ class Earthquake(Spell): class EldritchBlast(Spell): """A beam of crackling energy streaks toward a creature within range. Make a ranged - spell attack against the target. On a hit, the target takes 1d10 force damage. + spell attack against the target. On a hit, the target takes 1d10 force damage. - At Higher Levels: The spell creates more than one beam when you reach higher + **At Higher Levels:** The spell creates more than one beam when you reach higher levels: Two beams at 5th level Three beams at 11th level @@ -125,12 +125,12 @@ class ElementalBane(Spell): damage types: acid, cold, fire, lightning, or thunder. The target must succeed on a Constitution saving throw or be affected by the spell for its duration. The - first time each turn the affected target takes damage of the chosen type, the + first time each turn the affected target takes damage of the chosen type, the target takes an extra 2d6 damage of that type. Moreover, the target loses any resistance to that damage type until the spell ends. - At Higher Levels: When you - cast this spell using a spell slot of 5th level or higher, you can target one + **At Higher Levels:** When you + cast this spell using a spell slot of 5th level or higher, you can target one additional creature for each slot level above 4th. The creatures must be within 30 feet of each other when you target them. """ @@ -153,7 +153,7 @@ class ElementalWeapon(Spell): duration, the weapon has a +1 bonus to attack rolls and deals an extra 1d4 damage of the chosen type when it hits. - At Higher Levels: When you cast this + **At Higher Levels:** When you cast this spell using a spell slot of 5th or 6th level, the bonus to attack rolls increases to +2 and the extra damage increases to 2d4. When you use a spell @@ -180,7 +180,7 @@ class EnemiesAbound(Spell): ends. Each time the target takes damage, it can repeat the saving throw, ending the effect on itself on a success. Whenever the affected creature chooses another creature as a target, it must choose the target at random from among the - creatures it can see within range of the attack, spell, or other ability it's + creatures it can see within range of the attack, spell, or other ability it's using. If an enemy provokes an opportunity attack from the affected creature, the creature must make that attack if it is able to. """ @@ -198,17 +198,17 @@ class EnemiesAbound(Spell): class Enervation(Spell): """A tendril of inky darkness reaches out from you, touching a creature you can see - within range to drain life from it. The target must make a Dexterity saving + within range to drain life from it. The target must make a Dexterity saving throw. On a successful save, the target takes 2d8 necrotic damage, and the spell - ends. On a failed save, the target takes 4d8 necrotic damage, and until the + ends. On a failed save, the target takes 4d8 necrotic damage, and until the spell ends, you can use your action on each of your turns to automatically deal 4d8 necrotic damage to the target. The spell ends ifyou use your action to do anything else, if the target is ever outside the spell's range, or if the target - has total cover from you. Whenever the spell deals damage to a target, you + has total cover from you. Whenever the spell deals damage to a target, you regain hit points equal to half the amount of necrotic damage the target takes. - At Higher Levels: When you cast this spell using a spell slot of 6th level or + **At Higher Levels:** When you cast this spell using a spell slot of 6th level or higher, the damage increases by 1d8 for each slot level above 5th. """ name = "Enervation" @@ -225,12 +225,12 @@ class Enervation(Spell): class EnhanceAbility(Spell): """You touch a creature and bestow upon it a magical enhancement. Choose one of the - following effects: the target gains the effect until the spell ends. + following effects: the target gains the effect until the spell ends. - Bear's Endurance. The target has advantage on Constitution checks. It also gains 2d6 temporary hit points, which are lost when the spell ends. - Bull's Strength. The - target has advantage on Strength checks, and his or her carrying capacity + target has advantage on Strength checks, and his or her carrying capacity doubles. - Cat's Grace. The target has advantage on Dexterity checks. It also doesn't take damage from falling 20 feet or less if it isn't incapacitated. @@ -239,10 +239,10 @@ class EnhanceAbility(Spell): - Fox's Cunning. The target thas advantage on Intelligence checks. - Owl's Wisdom. The target has - advantage on Wisdom checks. + advantage on Wisdom checks. - At Higher Levels: When you cast this spell using a - spell slot of 3rd level or higher, you can target one additional creature for + **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 = "Enhance Ability" @@ -273,17 +273,17 @@ class Enlargereduce(Spell): growth increases its size by one category – from Medium to Large, for example. If there isn't enough room for the target to double its size, the creature or object attains the maximum possible size in the space available. Until the spell - ends, the target also has advantage on Strength checks and Strength saving + ends, the target also has advantage on Strength checks and Strength saving throws. The target's weapons also grow to match its new size. While these weapons are enlarged, the target's attack with them deal 1d4 extra damage. Reduce  The target's size is halved in all dimensions, and its weight is reduced - to one-eighth of normal. This reduction decreases its size by one category – + to one-eighth of normal. This reduction decreases its size by one category – from Medium to Small, for example. Until the spell ends, the target also has disadvantage on Strength checks and Strength saving throws. The target's weapons - also shrink to match its new size. While these weapons are reduced, the + also shrink to match its new size. While these weapons are reduced, the target's attacks with them deal 1d4 less damage (this can't reduce the damage below 1). """ @@ -310,9 +310,9 @@ class EnsnaringStrike(Spell): restrained by this spell, the target takes 1d6 piercing damage at the start of each of its turns. A creature restrained by the vines or one that can touch the creature can use its action to make a Strength check against your spell save DC. - On a success, the target is freed. + On a success, the target is freed. - At Higher Levels: If you cast this spell + **At Higher Levels:** If you cast this spell using a spell slot of 2nd level or higher, the damage increases by 1d6 for each slot level above 1st. """ @@ -331,7 +331,7 @@ class EnsnaringStrike(Spell): class Entangle(Spell): """Grasping weeds and vines sprout from the ground in a 20-foot square starting from a point within range. For the duration, these plants turn the ground in the - area into difficult terrain. + area into difficult terrain. A creature in the area when you cast the spell must succeed on a Strength saving throw or be restrained by the entangling @@ -361,7 +361,7 @@ class Enthrall(Spell): save. On a failed save, the target has disadvantage on Wisdom (Perception) checks made to perceive any creature other than you until the spell ends or until the target can no longer hear you. The spell ends if you are incapacitated - or can no longer speak. + or can no longer speak. """ name = "Enthrall" level = 2 @@ -380,11 +380,11 @@ class EruptingEarth(Spell): earth and stone erupts in a 20-foot cube centered on that point. Each creature in that area must make a Dexterity saving throw. A creature takes 3d12 bludgeoning damage on a failed save, or half as much damage on a successful one. - Additionally, the ground in that area becomes difficult terrain until cleared + Additionally, the ground in that area becomes difficult terrain until cleared away. Each 5-foot-square portion of the area requires at least 1 minute to clear - by hand. + by hand. - At Higher Levels: When you cast this spell using a spell slot of 4rd + **At Higher Levels:** When you cast this spell using a spell slot of 4rd level or higher, the damage increases by 1d12 for each slot level above 3rd. """ name = "Erupting Earth" @@ -425,10 +425,11 @@ class Etherealness(Spell): no effect if you cast it while you are on the Ethereal Plane or a plane that doesn't border it, such as one of the Outer Planes. - At Higher Levels: When you - cast this spell using a spell slot of 8th level or higher, you can target up to - three willing creatures (including you) for each slot level above 7th. The + **At Higher Levels:** When you cast this spell using a spell slot + of 8th level or higher, you can target up to three willing + creatures (including you) for each slot level above 7th. The creatures must be within 10 feet of you when you cast the spell. + """ name = "Etherealness" level = 7 @@ -445,7 +446,7 @@ class Etherealness(Spell): class EvardsBlackTentacles(Spell): """Squirming, ebony tentacles fill a 20-foot square on ground that you can see within range. For the duration, these tentacles turn the ground in the area into - difficult terrain. + difficult terrain. When a creature enters the affected area for the first time on a turn or starts its turn there, the creature must succeed on a @@ -489,9 +490,9 @@ class ExpeditiousRetreat(Spell): class Eyebite(Spell): """For the spell's duration, your eyes become an inky void imbued with dread power. - One creature of your choice within 60 feet of you that you can see must succeed - on a Wisdom saving throw or be affected by one of the following effects of your - choice for the duration. On each of your turns until the spell ends, you can + One creature of your choice within 60 feet of you that you can see must succeed + on a Wisdom saving throw or be affected by one of the following effects of your + choice for the duration. On each of your turns until the spell ends, you can use your action to target another creature but can't target a creature again if it has succeeded on a saving throw against this casting of eyebite. @@ -505,11 +506,11 @@ class Eyebite(Spell): frightened of you. On each of its turns, the frightened creature must take the Dash action and move away from you by the safest and shortest available route, unless there is nowhere to move. If the target moves to a place at least 60 feet - away from you where it can no longer see you, this effect ends. + away from you where it can no longer see you, this effect ends. Sickened  The - target has disadvantage on attack rolls and ability checks. At the end of each + target has disadvantage on attack rolls and ability checks. At the end of each of its turns, it can make another Wisdom saving throw. If it succeeds, the effect ends. """ diff --git a/dungeonsheets/spells/spells_f.py b/dungeonsheets/spells/spells_f.py index f20e070..be96021 100644 --- a/dungeonsheets/spells/spells_f.py +++ b/dungeonsheets/spells/spells_f.py @@ -35,7 +35,7 @@ class Fabricate(Spell): class FaerieFire(Spell): """Each object in a 20-foot cube within range is outlined in blue, green, or violet - light (your choice). + light (your choice). Any creature in the area when the spell is cast is also outlined in light if it fails a Dexterity saving throw. For the duration, objects and affected creatures shed dim light in a 10-foot radius. @@ -60,9 +60,9 @@ 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 + **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. + hit points for each slot level above 1st. """ name = "False Life" level = 1 @@ -100,9 +100,9 @@ class Fear(Spell): While frightened by this spell, a creature must take the Dash action and move away from you by the safest - available route on each of its turns, unless there is nowhere to move. If the + available route on each of its turns, unless there is nowhere to move. If the creature ends its turn in a location where it doesn't have line of sight to you, - the creature can make a Wisdom saving throw. On a successful save, the spell + the creature can make a Wisdom saving throw. On a successful save, the spell ends for that creature. """ name = "Fear" @@ -121,7 +121,7 @@ class FeatherFall(Spell): """Reaction: When you or a creature within 60 feet of you falls Choose up to five - falling creatures within range. A falling creature's rate of descent slows to + falling creatures within range. A falling creature's rate of descent slows to 60 feet per round until the spell ends. If the creature lands before the spell ends, it takes no falling damage and can land on its feet, and the spell ends for that creature. @@ -172,7 +172,7 @@ class FeignDeath(Spell): For the spell's duration, or until you use an action to touch the target and dismiss the spell, the target appears dead to all - outward inspection and to spells used to determine the target's status. The + outward inspection and to spells used to determine the target's status. The target is blinded and incapacitated, and its speed drops to 0. The target has resistance to all damage except psychic damage. If the target is diseased or @@ -195,7 +195,7 @@ class FindFamiliar(Spell): """You gain the service of a familiar, a spirit that takes an animal form you choose: bat, cat, crab, frog (toad), hawk. lizard, octopus, owl, poisonous snake, fish (quipper), rat, raven, sea horse, spider, or weasel. Appearing in an - unoccupied space within range, the familiar has the statistics of the chosen + unoccupied space within range, the familiar has the statistics of the chosen form, though it is a celestial, fey or fiend (your choice) instead of a beast. @@ -204,12 +204,12 @@ class FindFamiliar(Spell): can't attack, but it can take other actions as normal. When the familiar drops - to 0 hit points, it disappears, leaving behind no physical form. It reappears + to 0 hit points, it disappears, leaving behind no physical form. It reappears after you cast this spell again. While your familiar is within 100 feet of you, you can communicate with it telepathically. Additionally, as an action, you - can see through your familiar's eyes and hear what it hears until the start of + can see through your familiar's eyes and hear what it hears until the start of your next turn, gaining the benefits of any special senses that the familiar has. During this time, you are deaf and blind with regard to your own senses. @@ -222,11 +222,11 @@ class FindFamiliar(Spell): You can't have more than one familiar at a time. If you cast this spell while you already have a familiar, you instead cause it to adopt a new form. Choose one of the forms from - the above list. Your familiar transforms into the chosen creature. + the above list. Your familiar transforms into the chosen creature. Finally, when you cast a spell with a range of touch, your familiar can deliver the spell - as if it had cast the spell. Your familiar must be within 100 feet of you, and + as if it had cast the spell. Your familiar must be within 100 feet of you, and it must use its reaction to deliver the spell when you cast it. If the spell requires an attack roll, you use your attack modifier for the roll. """ @@ -250,11 +250,11 @@ class FindGreaterSteed(Spell): chosen form, though it is a celestial, a fey, or a fiend (your choice) instead of its normal creature type. Additionally, if it has an Intelligence score of 5 or lower, its Intelligence becomes 6, and it gains the ability to understand one - language of your choice that you speak. You control the mount in combat. While + language of your choice that you speak. You control the mount in combat. While the mount is within 1 mile of you, you can communicate with it te1epathically. While mounted on it, you can make any spell you cast that targets only you also target the mount. The mount disappears temporarily when it drops to 0 hit points - or when you dismiss it as an action. Casting this spell again re-summons the + or when you dismiss it as an action. Casting this spell again re-summons the bonded mount, with all its hit points restored and any conditions removed. You can't have more than one mount bonded by this spell or find steed at the same time. As an action, you can release a mount from its bond, causing it to @@ -278,7 +278,7 @@ class FindSteed(Spell): and loyal steed, creating a long-lasting bond with it. Appearing in an unoccupied space within range, the steed takes on a form that you choose, such as a warhorse, a pony, a camel, an elk, or a mastiff. (Your DM might allow other - animals to be summoned as steeds.) The steed has the statistics of the chosen + animals to be summoned as steeds.) The steed has the statistics of the chosen form, though it is a celestial, fey, or fiend (your choice) instead of its normal type. Additionally, if your steed has an Intelligence of 5 or less, its Intelligence becomes 6, and it gains the ability to understand one language of @@ -287,17 +287,17 @@ class FindSteed(Spell): Your steed serves you as a mount, both in combat and out, and you have an instinctive bond with it that allows you to fight as a seamless unit. While mounted on your steed, you can make any spell you cast that - targets only you also target your steed. + targets only you also target your steed. When the steed drops to 0 hit points, - it disappears, leaving behind no physical form. You can also dismiss your steed - at any time as an action, causing it to disappear. In either case, casting this - spell again summons the same steed, restored to its hit point maximum. + it disappears, leaving behind no physical form. You can also dismiss your steed + at any time as an action, causing it to disappear. In either case, casting this + spell again summons the same steed, restored to its hit point maximum. While your steed is within 1 mile of you, you can communicate with it telepathically. You can't have more than one steed bonded by this spell at a time. As an action, - you can release the steed from its bond at any time, causing it to disappear. + you can release the steed from its bond at any time, causing it to disappear. """ name = "Find Steed" level = 2 @@ -315,15 +315,15 @@ class FindThePath(Spell): """This spell allows you to find the shortest, most direct physical route to a specific fixed location that you are familiar with on the same plane of existence. If you name a destination on another plan of existence, a destination - that moves (such as a mobile fortress), or a destination that isn't specific + that moves (such as a mobile fortress), or a destination that isn't specific (such as "a green dragon's lair"), the spell fails. For the duration, as long as you are on the same plane of existence as the destination, you know how far it is and in what direction it lies. While you are traveling there, whenever you - are presented with a choice of paths along the way, you atomatically determine + are presented with a choice of paths along the way, you atomatically determine which path is the shortest and most direct route (but not necessarily the safest - route) to the destination." + route) to the destination." """ name = "Find The Path" level = 6 @@ -345,10 +345,10 @@ class FindTraps(Spell): specifically intended as such by its creator. Thus, the spell would sense an area affected by the alarm spell, a glyph of warding, or a mechanical pit trap, but it would not reveal a natural weakness in the floor, an unstable ceiling, or - a hidden sinkhole. + a hidden sinkhole. This spell merely reveals that a trap is present. You don't - learn the location of each trap, but you do learn the general nature of the + learn the location of each trap, but you do learn the general nature of the danger posed by a trap you sense. """ name = "Find Traps" @@ -392,8 +392,8 @@ class FireBolt(Spell): flammable object hit by this spell ignites if it isn't being worn or carried. - At Higher Levels: This spell's damage increases by 1d10 when you reach 5th level - (2d10), 11th level (3d10), and 17th level (4d10). + **At Higher Levels:** This spell's damage increases by 1d10 when you reach 5th level + (2d10), 11th level (3d10), and 17th level (4d10). """ name = "Fire Bolt" level = 0 @@ -444,7 +444,7 @@ class FireStorm(Spell): The fire damages objects in the area and ignites flammable objects that aren't being worn or carried. If you choose, plant life in the area - is unaffected by this spell. + is unaffected by this spell. """ name = "Fire Storm" level = 7 @@ -460,16 +460,16 @@ class FireStorm(Spell): class Fireball(Spell): """A bright streak flashes from your pointing finger to a point you choose within - range then blossoms with a low roar into an explosion of flame. - Each creature in - a 20-foot radius must make a Dexterity saving throw. A target takes 8d6 fire + range then blossoms with a low roar into an explosion of flame. Each creature in + a 20-foot radius must make a Dexterity saving throw. A target takes 8d6 fire damage on a failed save, or half as much damage on a successful one. The fire spreads around corners. It ignites flammable objects in the area that aren't being worn or carried. + + **At Higher Levels:** When you cast this spell using a spell slot + of 4th level or higher, the damage increases by 1d6 for each slot + level above 3rd. - At Higher Levels: When you cast this spell using a spell - slot of 4th level or higher, the damage increases by 1d6 for each slot level - above 3rd. """ name = "Fireball" level = 3 @@ -490,7 +490,7 @@ class FlameArrows(Spell): ammunition when it hits or misses, and the spell ends when twelve pieces of ammunition have been drawn from the quiver. - At Higher Levels: When you cast + **At Higher Levels:** When you cast this spell using a spell slot of 4th level or higher, the number of pieces of ammunition you can affect with this spell increases by two for each slot level above 3rd. @@ -514,12 +514,12 @@ class FlameBlade(Spell): it disappears, but you can evoke the blade again as a bonus action. You can use - your action to make a melee spell attack with the fiery blade. On a hit, the + your action to make a melee spell attack with the fiery blade. On a hit, the target takes 3d6 fire damage. The flaming blade sheds bright light in a 10-foot - radius and dim light for an additional 10 feet. + radius and dim light for an additional 10 feet. - At Higher Levels: When you + **At Higher Levels:** When you cast this spell using a spell slot of 4th level or higher, the damage increases by 1d6 for every two slot levels above 2nd. """ @@ -539,10 +539,10 @@ class FlameStrike(Spell): """A vertical column of divine fire roars down from the heavens in a location you specify. Each creature in a 10-foot radius, 40-foot-high cylinder centered on a point within range must make a Dexterity saving throw. A creature takes 4d6 fire - damage and 4d6 radiant damage on a failed save, or half as much damage on a + damage and 4d6 radiant damage on a failed save, or half as much damage on a successful one. - At Higher Levels: When you cast this spell using a spell slot + **At Higher Levels:** When you cast this spell using a spell slot of 6th level or higher, the fire damage or the radiant damage (your choice) increases by 1d6 for each slot level above 5th. """ @@ -562,12 +562,12 @@ class FlamingSphere(Spell): """A 5-foot-diameter sphere of fire appears in an unoccupied space of your choice within range and lasts for the duration. Any creature that ends its turn within - 5 feet of the sphere must make a Dexterity saving throw. The creature takes 2d6 - fire damage on a failed save, or half as much damage on a successful one. + 5 feet of the sphere must make a Dexterity saving throw. The creature takes 2d6 + fire damage on a failed save, or half as much damage on a successful one. As a - bonus action, you can move the sphere up to 30 feet. If you ram the sphere into - a creature, that creature must make the saving throw against the sphere's + bonus action, you can move the sphere up to 30 feet. If you ram the sphere into + a creature, that creature must make the saving throw against the sphere's damage, and the sphere stops moving this turn. When you move the sphere, you @@ -576,7 +576,7 @@ class FlamingSphere(Spell): it sheds bright light in a 20-foot radius and dim light for an additional 20 feet. - At Higher Levels: When you cast this spell using a spell slot of 3rd + **At Higher Levels:** When you cast this spell using a spell slot of 3rd level or higher, the damage increases by 1d6 for each slot level above 2nd. """ name = "Flaming Sphere" @@ -625,10 +625,10 @@ class FleshToStone(Spell): class Fly(Spell): """You touch a willing creature. The target gains a flying speed of 60 feet for the - duration. When the spell ends, the target falls if it is still aloft, unless it - can stop the fall. + duration. When the spell ends, the target falls if it is still aloft, unless it + can stop the fall. - At Higher Levels: When you cast this spell using a spell + **At Higher Levels:** When you cast this spell using a spell slot of 4th level or higher, you can target one additional creature for each slot level above 3rd. """ @@ -648,11 +648,11 @@ class FogCloud(Spell): """You create a 20-foot-radius sphere of fog centered on a point within range. The sphere spreads around corners, and its area is heavily obscured, It lasts for the duration or until a wind of moderate or greater speed (at least 10 miles per - hour) disperses it. + hour) disperses it. - At Higher Levels: When you cast this spell using a spell + **At Higher Levels:** When you cast this spell using a spell slot of 2nd level or higher, the radius of the fog increases by 20 feet for each - slot level above 1st. + slot level above 1st. """ name = "Fog Cloud" level = 1 @@ -675,10 +675,10 @@ class Forbiddance(Spell): Astral Plane, Ethereal Plane, Feywild, Shadowfell, or the plane shift spell. In - addition, the spell damages types of creatures that you choose when you cast + addition, the spell damages types of creatures that you choose when you cast it. Choose one or more of the following: celestials, elementals, fey, fiends, and undead. When a chosen creature enters the spell's area for the first time on - a turn or starts its turn there, the creature takes 5d10 radiant or necrotic + a turn or starts its turn there, the creature takes 5d10 radiant or necrotic damage (your choice when you cast this spell). When you cast this spell, you @@ -687,7 +687,7 @@ class Forbiddance(Spell): This spell's area can't overlap with the area of another forbiddance spell. If you cast forbiddance every day for 30 days - in the same location, the spell lasts until it is dispelled, and the material + in the same location, the spell lasts until it is dispelled, and the material components are consumed on the last casting. """ name = "Forbiddance" @@ -711,9 +711,9 @@ class Forcecage(Spell): feet on a side and is made from 1/2-inch diameter bars spaced 1/2 inch apart. A - prison in the shape of a box can be up to 10 feet on a side, creating a solid + prison in the shape of a box can be up to 10 feet on a side, creating a solid barrier that prevents any matter from passing through it and blocking any spells - cast into or out of the area. + cast into or out of the area. When you cast the spell, any creature that is completely inside the cage's area is trapped. Creatures only partially within @@ -722,9 +722,9 @@ class Forcecage(Spell): A creature inside the cage can't leave it by nonmagical means. If the creature tries to use - teleportation or interplanar travel to leave the cage, it must first make a + teleportation or interplanar travel to leave the cage, it must first make a Charisma saving throw. On a success, the creature can use that magic to exit the - cage. On a failure, the creature can't exit the cage and wastes the use of the + cage. On a failure, the creature can't exit the cage and wastes the use of the spell or effect. The cage also extends into the Ethereal Plane, blocking ethereal travel. This spell can't be dispelled by dispel magic. @@ -809,9 +809,9 @@ class Frostbite(Spell): """You cause numbing frost to form on one creature that you can see within range. The target must make a Constitution saving throw. On a failed save, the target takes 1d6 cold damage, and it has disadvantage on the next weapon attack roll it - makes before the end of its next turn. + makes before the end of its next turn. The spell's damage increases by 1d6 when - you reach 5th level (2d6), 11th level (3d6), and 17th level (4d6). + you reach 5th level (2d6), 11th level (3d6), and 17th level (4d6). """ name = "Frostbite" level = 0 diff --git a/dungeonsheets/spells/spells_g.py b/dungeonsheets/spells/spells_g.py index e8d0d71..1a30a19 100644 --- a/dungeonsheets/spells/spells_g.py +++ b/dungeonsheets/spells/spells_g.py @@ -75,8 +75,8 @@ class Gate(Spell): class Geas(Spell): """You place a magical command on a creature that you can see within - range, forcing it to carry out some service or refrain from some - action or course of actiity as you decide. + range, forcing it to carry out some service or refrain from some + action or course of actiity as you decide. If the creature can understand you, it must succeed on a Wisdom saving throw or become charmed by you for the duration. While the @@ -139,11 +139,11 @@ class GiantInsect(Spell): Each creature obeys your verbal commands, and in combat, they act on your turn each round. The - DM has the statistics for these creatures and resolves their actions and + DM has the statistics for these creatures and resolves their actions and movement. A creature remains in its giant size for the duration, until it drops - to 0 hit points, or until you use an action to dismiss the effect on it. + to 0 hit points, or until you use an action to dismiss the effect on it. The DM might allow you to choose different targets. For example, if you transform a @@ -163,7 +163,7 @@ class GiantInsect(Spell): class Glibness(Spell): """Until the spell ends, when you make a Charisma check, you can replace the number - you roll with a 15. Additionally, no matter what you say, magic that would + you roll with a 15. Additionally, no matter what you say, magic that would determine if you are telling the truth indicates that you are being truthful. """ name = "Glibness" @@ -331,7 +331,7 @@ class Grease(Spell): When the grease appears, each creature standing in its area must succeed on a Dexterity saving throw or fall prone. A creature that enters the area or ends its turn there must - also succeed on a Dexterity saving throw or fall prone. + also succeed on a Dexterity saving throw or fall prone. """ name = "Grease" level = 1 @@ -388,14 +388,14 @@ class GreaterRestoration(Spell): class GreenFlameBlade(Spell): """As part of the action used to cast this spell, you must make a melee attack with - a weapon against one creature within the spell's range, otherwise the spell + a weapon against one creature within the spell's range, otherwise the spell fails. On a hit, the target suffers the attack's normal effects, and green fire leaps from the target to a different creature of your choice that you can see within 5 feet of it. The second creature takes fire damage equal to your spellcasting ability modifier. This spell's damage increases when you reach higher levels. - At Higher Levels: At 5th level, the melee attack deals an extra + **At Higher Levels:** At 5th level, the melee attack deals an extra 1d8 fire damage to the target, and the fire damage to the second creature increases to 1d8 + your spellcasting ability modifier. Both damage rolls increase by 1d8 at 11th level and 17th level. @@ -449,7 +449,7 @@ class GuardianOfNature(Spell): - You gain darkvision with a range of 120 feet. - You make Strength-based attack rolls with advantage. - Your melee weapon attacks deal an extra 1d6 force damage on a - hit. + hit. **Great Tree.** Your skin appears barky, leaves sprout from your hair, and you gain the following benefits: @@ -458,7 +458,7 @@ class GuardianOfNature(Spell): - You make Constitution saving throws with advantage. - You make Dexterity- and Wisdom-based attack rolls with advantage. - While you are on the ground, the ground within 15 feet of you is - difficult terrain for your enemies. + difficult terrain for your enemies. """ name = "Guardian Of Nature" @@ -510,20 +510,20 @@ class GuardsAndWards(Spell): stronghold. - Place dancing lights in four corridors. You can designate a - simple program that the lights repeat as long as guards and - wards lasts. + simple program that the lights repeat as long as guards and + wards lasts. - Place magic mouth in two locations. - Place stinking cloud in two locations. The vapors appear in the - places you designate; they return within 10 minutes if dispersed - by wind while guards and wards lasts. + places you designate; they return within 10 minutes if dispersed + by wind while guards and wards lasts. - Place a constant gust of wind in one corridor or room. - Place a suggestion in one location. You select an area of up to - 5 feet square, and any creature that enters or passes through - the area receives the suggestion mentally. + 5 feet square, and any creature that enters or passes through + the area receives the suggestion mentally. The whole warded area radiates magic. A dispel magic cast on a specific effect, if successful, removes only that effect. @@ -566,10 +566,10 @@ class GuidingBolt(Spell): Make a ranged spell attack against the target. On a hit, the target takes 4d6 radiant damage, and the next attack roll made against this target before the end of your - next turn has advantage, thanks to the mystical dim light glittering on the + next turn has advantage, thanks to the mystical dim light glittering on the target until then. - At Higher Levels: When you cast this spell using a spell + **At Higher Levels:** When you cast this spell using a spell slot of 2nd level or higher, the damage increases by 1d6 for each slot level above 1st. """ @@ -621,16 +621,16 @@ class Gust(Spell): effects at a point you can see within range: - One Medium or smaller creature that you choose must succeed on a - Strength saving throw or be pushed up to 5 feet away from you. + Strength saving throw or be pushed up to 5 feet away from you. - You create a small blast of air capable of moving one object - that is neither held nor carried and that weighs no more than 5 - pounds. The object is pushed up to 10 feet away from you. It - isn't pushed with enough force to cause damage. + that is neither held nor carried and that weighs no more than 5 + pounds. The object is pushed up to 10 feet away from you. It + isn't pushed with enough force to cause damage. - You create a harmless sensory affect using air, such as causing - leaves to rustle, wind to slam shutters shut, or your clothing - to ripple in a breeze. + leaves to rustle, wind to slam shutters shut, or your clothing + to ripple in a breeze. """ name = "Gust" diff --git a/dungeonsheets/spells/spells_h.py b/dungeonsheets/spells/spells_h.py index bd82375..b21a1bc 100644 --- a/dungeonsheets/spells/spells_h.py +++ b/dungeonsheets/spells/spells_h.py @@ -5,11 +5,11 @@ class HailOfThorns(Spell): """The next time you hit a creature with a ranged weapon attack before the spell ends, this spell creates a rain of thorns that sprouts from your ranged weapon or ammunition. In addition to the normal effect of the attack, the target of the - attack and each creature within 5 feet of it must make a Dexterity saving + attack and each creature within 5 feet of it must make a Dexterity saving throw. A creature takes 1d10 piercing damage on a failed save, or half as much damage on a successful one. - At Higher Levels: If you cast this spell using a + **At Higher Levels:** If you cast this spell using a spell slot of 2nd level or higher, the damage increases by 1d10 for each slot level above 1st (to a maximum of 6d10). """ @@ -28,7 +28,7 @@ class HailOfThorns(Spell): class Hallow(Spell): """You touch a point and infuse an area around it with holy (or unholy) power. The area can have a radius up to 60 feet, and the spell fails if the radius includes - an area already under the effect a hallow spell. The affected area is subject + an area already under the effect a hallow spell. The affected area is subject to the following effects. First, celestials, elementals, fey, fiends, and @@ -42,8 +42,8 @@ class Hallow(Spell): following list, or choose an effect offered by the DM. Som e of these effects apply to creatures in the area; you can designate whether the effect applies to all creatures, creatures that follow a specific deity or leader, or creatures of - a specific sort, such as ores or trolls. When a creature that would be affected - enters the spell's area for the first time on a turn or starts its turn there, + a specific sort, such as ores or trolls. When a creature that would be affected + enters the spell's area for the first time on a turn or starts its turn there, it can make a Charisma saving throw. On a success, the creature ignores the extra effect until it leaves the area. @@ -58,13 +58,13 @@ class Hallow(Spell): Daylight Bright light fills - the area. Magical darkness created by spells of a lower level than the slot you - used to cast this spell can't extinguish the light. + the area. Magical darkness created by spells of a lower level than the slot you + used to cast this spell can't extinguish the light. Energy Protection Affected - creatures in the area have resistance to one damage type of your choice, except - for bludgeoning, piercing, or slashing. + creatures in the area have resistance to one damage type of your choice, except + for bludgeoning, piercing, or slashing. Energy Vulnerability Affected @@ -106,9 +106,9 @@ class Hallow(Spell): class HallucinatoryTerrain(Spell): """You make natural terrain in a 150-foot cube in range look, sound, and smell like - some other sort of natural terrain. Thus, open fields or a road can be made to + some other sort of natural terrain. Thus, open fields or a road can be made to resemble a swamp, hill, crevasse, or some other difficult or impassable terrain. - A pond can be made to seem like a grassy meadow, a precipice like a gentle + A pond can be made to seem like a grassy meadow, a precipice like a gentle slope, or a rock-strewn gully like a wide and smooth road. Manufactured structures, equipment, and creatures within the area aren't changed in appearance. @@ -118,7 +118,7 @@ class HallucinatoryTerrain(Spell): difference isn't obvious by touch, a creature carefully examining the illusion can attempt an Intelligence (Investigation) check against your spell save DC to disbelieve it. A creature who discerns the illusion for what it is, sees it as a - vague image superimposed on the terrain. + vague image superimposed on the terrain. """ name = "Hallucinatory Terrain" level = 4 @@ -158,8 +158,8 @@ class Haste(Spell): """Choose a willing creature that you can see within range. Until the spell ends, the target's speed is doubled, it gains a +2 bonus to AC, it has advantage on Dexterity saving throws, and it gains an additional action on each of its turns. - That action can be used only to take the Attack (one weapon attack only), Dash, - Disengage, Hide, or Use an Object action. + That action can be used only to take the Attack (one weapon attack only), Dash, + Disengage, Hide, or Use an Object action. When the spell ends, the target can't move or take actions until after its next turn, as a wave of lethargy @@ -183,7 +183,7 @@ class Heal(Spell): ends blindness, deafness, and any diseases affecting the target. This spell has no effect on constructs or undead. - At Higher Levels: When you cast this spell + **At Higher Levels:** When you cast this spell using aspell slot of 7th level or higher, the amount of healing increases by 10 for each slot level above 6th. """ @@ -209,7 +209,7 @@ class HealingSpirit(Spell): heal constructs or undead. As a bonus action on your turn, you can move the Spirit up to 30 feet to a space you can see. - At Higher Levels: When you cast + **At Higher Levels:** When you cast this spell using a spell slot of 3rd level or higher, the healing increases 1d6 for each slot level above 2nd. """ @@ -227,11 +227,11 @@ class HealingSpirit(Spell): class HealingWord(Spell): """A creature of your choice that you can see within range regains hit points equal - to 1d4 + your spellcasting ability modifier. + to 1d4 + your spellcasting ability modifier. This spell has no effect on undead - or constructs. + or constructs. - At Higher Levels: When you cast this spell using a spell slot + **At Higher Levels:** When you cast this spell using a spell slot of 2nd level or higher, the healing increases by 1d4 for each slot level above 1st. """ @@ -249,9 +249,9 @@ class HealingWord(Spell): class HeatMetal(Spell): """Choose a manufactured metal object, such as a metal weapon or a suit of heavy or - medium metal armor, that you can see within range. You cause the object to glow - red-hot. Any creature in physical contact with the object takes 2d8 fire damage - when you cast the spell. Until the spell ends, you can use a bonus action on + medium metal armor, that you can see within range. You cause the object to glow + red-hot. Any creature in physical contact with the object takes 2d8 fire damage + when you cast the spell. Until the spell ends, you can use a bonus action on each of your subsequent turns to cause this damage again. If a creature is @@ -260,7 +260,7 @@ class HeatMetal(Spell): doesn't drop the object, it has disadvantage on attack rolls and ability checks until the start of your next turn. - At Higher Levels: When you cast this spell + **At Higher Levels:** When you cast this spell using a spell slot of 3rd level or higher, the damage increases by 1d8 for each slot level above 2nd. """ @@ -278,14 +278,14 @@ class HeatMetal(Spell): class HellishRebuke(Spell): """Reaction: you are being damaged by a creature within 60 feet of you that you can - see. + see. You point your finger, and the creature that damaged you is momentarily surrounded by hellish flames. The creature must make a Dexterity saving throw. It takes 2d10 fire damage on a failed save, or half as much damage on a successful one. - At Higher Levels: When you cast this spell using a spell slot + **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. """ @@ -308,7 +308,7 @@ class HeroesFeast(Spell): creatures can partake of the feast. A creature that partakes of the feast gains - several benefits. The creature is cured of all diseases and poison, becomes + several benefits. The creature is cured of all diseases and poison, becomes immune to poison and being frightened, and makes all Wisdom saving throws with advantage. Its hit point maximum also increases by 2d10, and it gains the same number of hit points. These benefits last for 24 hours. @@ -333,7 +333,7 @@ class Heroism(Spell): spell ends, the target loses any remaining temporary hit points from this spell. - At Higher Levels: When you cast this spell using a spell slot of 2nd level or + **At Higher Levels:** When you cast this spell using a spell slot of 2nd level or higher, you can target one additional creature for each slot level above 1st. """ name = "Heroism" @@ -352,7 +352,7 @@ class Hex(Spell): """You place a curse on a creature that you can see within range. Until the spell ends, you deal an extra 1d6 necrotic damage to the target whenever you hit it with an attack. Also, choose one ability when you cast the spell. The target has - disadvantage on ability checks made with the chosen ability. + disadvantage on ability checks made with the chosen ability. If the target drops to 0 hit points before this spell ends, you can use a bonus action on a @@ -361,7 +361,7 @@ class Hex(Spell): A remove curse cast on the target ends this spell early. - At Higher Levels: When you cast this spell using + **At Higher Levels:** When you cast this spell using a spell slot of 3rd or 4th level, you can maintain your concentration on the spell for up to 8 hours. When you use a spell slot of 5th level or higher, you @@ -388,7 +388,7 @@ class HoldMonster(Spell): At Higher Levels: When you cast this spell using a spell slot of 6th level or higher, you can target one additional creature for each slot level above 5th. The creatures must - be within 30 feet of each other when you target them. + be within 30 feet of each other when you target them. """ name = "Hold Monster" level = 5 @@ -408,7 +408,7 @@ class HoldPerson(Spell): turns, the target can make another Wisdom saving throw. On a success, the spell ends on the target. - At Higher Levels: When you cast this spell using a spell + **At Higher Levels:** When you cast this spell using a spell slot of 3rd level or higher, you can target one additional humanoid for each slot level above 2nd. The humanoids must be within 30 feet of each other when you target them. @@ -430,7 +430,7 @@ class HolyAura(Spell): radius around you. Creatures of your choice in that radius when you cast this spell shed dim light in a 5-foot radius and have advantage on all saving throws, - and other creatures have disadvantage on attack rolls against them until the + and other creatures have disadvantage on attack rolls against them until the spell ends. In addition, when a fiend or an undead hits an affected creature with a melee attack, the aura flashes with brilliant light. The attacker must succeed on a Constitution saving throw or be blinded until the spell ends. @@ -474,8 +474,8 @@ class HolyWeapon(Spell): class HungerOfHadar(Spell): """You open a gateway to the dark between the stars, a region infested with unknown - horrors. A 20-foot-radius sphere of blackness and bitter cold appears, centered - on a point with range and lasting for the duration. This void is filled with a + horrors. A 20-foot-radius sphere of blackness and bitter cold appears, centered + on a point with range and lasting for the duration. This void is filled with a cacophony of soft whispers and slurping noises that can be heard up to 30 feet away. No light, magical or otherwise, can illuminate the area, and creatures fully within the area are blinded. @@ -483,7 +483,7 @@ class HungerOfHadar(Spell): The void creates a warp in the fabric of space, and the area is difficult terrain. Any creature that starts its turn in the area takes 2d6 cold damage. Any creature that ends its turn in the area must - succeed on a Dexterity saving throw or take 2d6 acid damage as milky, + succeed on a Dexterity saving throw or take 2d6 acid damage as milky, otherwordly tentacles rub against it. """ name = "Hunger Of Hadar" @@ -504,10 +504,10 @@ class HuntersMark(Spell): Until the spell ends, you deal an extra 1d6 damage to the target whenever you hit it with a weapon attack, and you have advantage on any Wisdom (Perception) or Wisdom (Survival) check you make to find it. If the target drops - to 0 hit points before this spell ends, you can use a bonus action on a + to 0 hit points before this spell ends, you can use a bonus action on a subsequent turn of yours to mark a new creature. - At Higher Levels: When you + **At Higher Levels:** When you cast this spell using a spell slot of 3rd or 4th level, you can maintain your concentration on the spell for up to 8 hours. When you use a spell slot of 5th diff --git a/dungeonsheets/spells/spells_i.py b/dungeonsheets/spells/spells_i.py index 0549b07..ae69baa 100644 --- a/dungeonsheets/spells/spells_i.py +++ b/dungeonsheets/spells/spells_i.py @@ -6,8 +6,8 @@ class IceKnife(Spell): You create a shard of ice and fling it at one creature within range. Make a ranged spell attack against the target. On a hit, the target takes 1d10 piercing damage. Hit or miss, the shard then explodes. The - target and each creature within 5 feet of the point where the ice exploded must - succeed on a Dexterity saving throw or take 2d6 cold damage. + target and each creature within 5 feet of the point where the ice exploded must + succeed on a Dexterity saving throw or take 2d6 cold damage. At Higher Levels. When you cast this spell using a spell slot of 2nd level or higher, the cold damage increases by 1d6 for each slot level above 1st. @@ -35,7 +35,7 @@ class IceStorm(Spell): Hailstones turn the storm's area of effect into difficult terrain until the end of your next turn. - At Higher Levels: When you cast this spell using a spell + **At Higher Levels:** When you cast this spell using a spell slot of 5th level or higher, the bludgeoning damage increases by 1d8 for each slot level above 4th. """ @@ -56,7 +56,7 @@ class Identify(Spell): If it is a magic item or some other magic-imbued object, you learn its properties and how to use them, whether it requires attunement to use, and how many charges it has, if any. You learn whether any spells are affecting the item - and what they are. If the item was created by a spell, you learn which spell + and what they are. If the item was created by a spell, you learn which spell created it. If you instead touch a creature throughout the casting, you learn @@ -106,7 +106,7 @@ class IllusoryDragon(Spell): blast of energy in a 60-foot cone originating from its space. When you create the dragon, choose a damage type: acid, cold, fire, lightning, necrotic, or poison. Each creature in the cone must make an Intelligence saving throw, taking - '7d6 damage of the + '7d6 damage of the chosen damage type on a failed save, or half as much damage on a successful one. The illusion is tangible because of the shadow stuff used @@ -131,13 +131,13 @@ class IllusoryDragon(Spell): class IllusoryScript(Spell): """You write on parchment, paper, or some other suitable writing material and imbue - it with a potent illusion that lasts for the duration. + it with a potent illusion that lasts for the duration. To you and any creatures you designate when you cast the spell, the writing appears normal, written in your hand, and conveys whatever meaning you intended when you wrote the text. To all others, the writing appears as if it were written in an unknown - or magical script that is unintelligible. Alternatively, you can cause the + or magical script that is unintelligible. Alternatively, you can cause the writing to appear to be an entirely different message, written in a different hand and language, though the language must be one you know. @@ -162,8 +162,8 @@ class Immolation(Spell): """Flames wreathe one creature you can see within range. The target must make a Dexterity saving throw. It takes 8d6 fire damage on a failed save, or half as much damage on a successful one. On a failed save, the target also burns for the - spell's duration. The burning target sheds bright light in a 30-foot radius and - dim light for an additional 30 feet. At the end of each of its turns, the + spell's duration. The burning target sheds bright light in a 30-foot radius and + dim light for an additional 30 feet. At the end of each of its turns, the target repeats the saving throw. It takes 4d6 fire damage on a failed save, and the spell ends on a successful one. These magical flames can't be extinguished by nonmagical means. @@ -198,7 +198,7 @@ class Imprisonment(Spell): target is entombed far beneath the earth in a sphere of magical force that is just large enough to contain the target. Nothing can pass through the sphere, nor can any creature teleport or use planar travel to get into or out of - it. + it. The special component for this version of the spell is a small mithral orb. @@ -230,13 +230,13 @@ class Imprisonment(Spell): Slumber The target falls asleep - and can't be awoken. + and can't be awoken. The special component for this version of the spell consists of rare soporific herbs.  Ending the Spell During the casting of - the spell, in any of its versions, you can specify a condition that will cause + the spell, in any of its versions, you can specify a condition that will cause the spell to end and release the target. The condition can be as specific or as elaborate as you choose, but the DM must agree that the condition is reasonable and has a likelihood of coming to pass. The conditions can be based on a @@ -268,7 +268,7 @@ class IncendiaryCloud(Spell): """A swirling cloud of smoke shot through with white-hot embers appears in a 20-foot-radius sphere centered on a point within range. The cloud spreads around - corners and is heavily obscured. It lasts for the duration or until a wind of + corners and is heavily obscured. It lasts for the duration or until a wind of moderate or greater speed (at least 10 miles per hour) disperses it. When the @@ -279,7 +279,7 @@ class IncendiaryCloud(Spell): The cloud moves 10 feet directly away from you in a direction that you choose at the start - of each of your turns. + of each of your turns. """ name = "Incendiary Cloud" level = 8 @@ -308,14 +308,14 @@ class InfernalCalling(Spell): On each of your turns, you can try to issue a verbal command to the devil (no action required by you). It obeys the command if the likely outcome is in accordance with its desires, especially if the result would - draw you toward evil. Otherwise, you must make a Charisma (Deception, + draw you toward evil. Otherwise, you must make a Charisma (Deception, Intimidation, or Persuasion) check contested by its Wisdom (Insight) check. You make the check with advantage if you say the devil's true name. Ifyour check fails, the devil becomes immune to your verbal commands for the duration of the spell, though it can still carry out your commands if it chooses. If your check succeeds, the devil carries out your command- such as "attack my enemies," "explore the room ahead," or "bear this message to the queen"-until it completes - the activity, at which point it returns to you to report having done so. + the activity, at which point it returns to you to report having done so. If your concentration ends before the spell reaches its full duration, the devil doesn‘t disappear if it has become immune to your verbal commands. Instead, it @@ -324,9 +324,9 @@ class InfernalCalling(Spell): you possess an individual devil's talisman, you can summon that devil if it is of the appropriate challenge rating plus 1, and it obeys all your commands, with - no Charisma checks required. + no Charisma checks required. - At Higher Levels: When you cast this spell using + **At Higher Levels:** When you cast this spell using a spell slot of 6th level or higher, the challenge rating increases by 1 for each slot level above 5th. """ @@ -345,7 +345,7 @@ class InfernalCalling(Spell): class Infestation(Spell): """You cause a cloud of mites, fleas, and other parasites to appear momentarily on one creature you can see within range. The target must succeed on a Constitution - saving throw, or it takes 1d6 poison damage and moves 5 feet in a random + saving throw, or it takes 1d6 poison damage and moves 5 feet in a random direction if it can move and its speed is at least 5 feet. Roll a d4 for the direction: 1., north; 2, south; 3, east; or 4, west. This movement doesn't provoke opportunity attacks, and if the direction rolled is blocked, the target @@ -367,10 +367,10 @@ class Infestation(Spell): class InflictWounds(Spell): """Make a melee spell attack against a creature you can reach. On a hit, the target - takes 3d10 necrotic damage. + 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 + **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" @@ -393,11 +393,11 @@ class InsectPlague(Spell): When the area appears, each creature in it must make a Constitution saving throw. A creature takes 4d10 piercing damage on a failed save, or half as - much damage on a successful one. A creature must also make this saving throw + much damage on a successful one. A creature must also make this saving throw when it enters the spell's area for the first time on a turn or ends its turn there. - At Higher Levels: When you cast this spell using a spell slot of 6th + **At Higher Levels:** When you cast this spell using a spell slot of 6th level or higher, the damage increases by 1d10 for each slot level above 5th. """ name = "Insect Plague" @@ -419,12 +419,12 @@ class InvestitureOfFlame(Spell): - You are immune to fire damage and have resistance to cold damage. - Any creature that moves within - 5 feet of you for the first time on a turn or ends its turn there takes 1d10 + 5 feet of you for the first time on a turn or ends its turn there takes 1d10 fire damage. - You can use your action to create a line of fire 15 feet long and - 5 feet wide extending from you in a direc- tion you choose. Each creature in + 5 feet wide extending from you in a direc- tion you choose. Each creature in the line must make a Dexterity saving throw. A creature takes 4d8 fire damage on - a failed save, or half as much damage on a successful one. + a failed save, or half as much damage on a successful one. """ name = "Investiture Of Flame" level = 6 @@ -450,8 +450,8 @@ class InvestitureOfIce(Spell): - You can use your action to create a 15-foot cone of freezing wind extending from your outstretched hand in a direction you choose. Each creature in the cone must make - a Constitution saving throw. A creature takes 4d6 cold damage on a failed save, - or half as much damage on a successful one. A creature that fails its save + a Constitution saving throw. A creature takes 4d6 cold damage on a failed save, + or half as much damage on a successful one. A creature that fails its save against this effect has its speed halved until the start of your next turn. """ name = "Investiture Of Ice" @@ -470,13 +470,13 @@ class InvestitureOfStone(Spell): """Until the spell ends, bits of rock spread across your body, and you gain the following benefits: - You have resistance to bludgeoning, piercing, and slashing - damage from nonmagical weapons. + damage from nonmagical weapons. - You can use your action to create a small earthquake on the ground in a 15-foot radius centered on you. Other creatures on - that ground must succeed on a Dexterity saving throw or be knocked prone. + that ground must succeed on a Dexterity saving throw or be knocked prone. - You - can move across difficult terrain made of earth or stone without spending extra - movement. You can move through solid earth or stone as if it was air and + can move across difficult terrain made of earth or stone without spending extra + movement. You can move through solid earth or stone as if it was air and without destabilizing it, but you can't end your movement there. If you do so, you are ejected to the nearest unoccupied space, this spell ends, and you are stunned until the end of your next turn. @@ -505,8 +505,8 @@ class InvestitureOfWind(Spell): can see within 60 feet of you. Each creature in that area must make a Constitution saving throw. A creature takes 2d10 bludgeoning damage on a failed save, or half as much damage on a successful one. If a Large or smaller creature - fails the save, that creature is also pushed up to 10 feet away from the center - of the cube. + fails the save, that creature is also pushed up to 10 feet away from the center + of the cube. """ name = "Investiture Of Wind" level = 6 @@ -522,7 +522,7 @@ class InvestitureOfWind(Spell): class Invisibility(Spell): """A creature you touch becomes invisible until the spell ends. Anything the target - is wearing or carrying is invisible as long as it is on the target's person. + is wearing or carrying is invisible as long as it is on the target's person. The spell ends for a target that attacks or casts a spell. At Higher Levels: diff --git a/dungeonsheets/spells/spells_k.py b/dungeonsheets/spells/spells_k.py index 47799c1..efa0f02 100644 --- a/dungeonsheets/spells/spells_k.py +++ b/dungeonsheets/spells/spells_k.py @@ -3,7 +3,7 @@ from dungeonsheets.spells.spells import Spell class Knock(Spell): """Choose an object that you can see within range. The object can be a door, a box, - a chest, a set of manacles, a padlock, or another object that contains a + a chest, a set of manacles, a padlock, or another object that contains a mundane or magical means that prevents access. A target that is held shut by a @@ -11,11 +11,11 @@ class Knock(Spell): If the object has multiple locks, only one of them is unlocked. If you choose a - target that is held shut with arcane lock, that spell is suppressed for 10 + target that is held shut with arcane lock, that spell is suppressed for 10 minutes, during which time the target can be opened and shut normally. When you - cast the spell, a loud knock, audible from as far away as 300 feet, emanates + cast the spell, a loud knock, audible from as far away as 300 feet, emanates from the target object. """ name = "Knock" diff --git a/dungeonsheets/spells/spells_l.py b/dungeonsheets/spells/spells_l.py index ed69c1f..1d9922d 100644 --- a/dungeonsheets/spells/spells_l.py +++ b/dungeonsheets/spells/spells_l.py @@ -12,10 +12,10 @@ class LegendLore(Spell): The information you learn is accurate but might be couched in figurative language. For example, if you have a mysterious magic axe on hand, the spell might yield this information: - Woe to the evildoer whose hand touches the axe, for even the haft slices the + Woe to the evildoer whose hand touches the axe, for even the haft slices the hand of the evil ones. Only a true Child of Stone, lover and beloved of Moradin, - may awaken the true powers of the axe, and only with the sacred word Rudnogg on - the lips. + may awaken the true powers of the axe, and only with the sacred word Rudnogg on + the lips. """ name = "Legend Lore" level = 5 @@ -39,11 +39,11 @@ class LeomundsSecretChest(Spell): While the chest remains on the Ethereal Plane, you can use an action and touch the replica to recall the chest. It appears in an unoccupied space on the ground within 5 feet of you. You can send the chest back - to the Ethereal Plane by using an action and touching both the chest and the + to the Ethereal Plane by using an action and touching both the chest and the replica. After 60 days, there is a cumulative 5 percent chance per day that the - spell's effect ends. This effect ends if you cast this spell again, if the + spell's effect ends. This effect ends if you cast this spell again, if the smaller replica chest is destroyed, or if you choose to end the spell as an action. If the spell ends and the larger chest is on the Ethereal Plane, it is irretrievably lost. @@ -70,7 +70,7 @@ class LeomundsTinyHut(Spell): creatures. Creatures and objects within the dome when you cast this spell can move through it freely. All other creatures and objects are barred from passing through it. Spells and other magical effects can't extend through the dome or be - cast through it. The atmosphere inside the space is comfortable and dry, + cast through it. The atmosphere inside the space is comfortable and dry, regardless of the weather outside. Until the spell ends, you can command the @@ -112,8 +112,8 @@ class Levitate(Spell): that succeeds on a Constitution saving throw is unaffected. The target can move - only by pushing or pulling against a fixed object or surface within reach (such - as a wall or a ceiling), which allows it to move as if it were climbing. You + only by pushing or pulling against a fixed object or surface within reach (such + as a wall or a ceiling), which allows it to move as if it were climbing. You can change the target's altitude by up to 20 feet in either direction on your turn. If you are the target, you can move up or down as part of your move. Otherwise, you can use your action to move the target, which must remain within @@ -140,7 +140,7 @@ class LifeTransference(Spell): range regains a number of hit points equal to twice the necrotic damage you take. - At Higher Levels: When you cast this spell using a spell slot of 4th + **At Higher Levels:** When you cast this spell using a spell slot of 4th level or higher, the damage increases by 1d8 for each slot level above 3rd. """ name = "Life Transference" @@ -159,7 +159,7 @@ class Light(Spell): """You touch one object that is no larger than 10 feet in any dimension. Until the spell ends, the object sheds bright light in a 20-foot radius and dim light for an additional 20 feet. The light can be colored as you like. Completely covering - the object with something opaque blocks the light. The spell ends if you cast + the object with something opaque blocks the light. The spell ends if you cast it again or dismiss it as an action. If you target an object held or worn by a @@ -211,14 +211,14 @@ class LightningArrow(Spell): class LightningBolt(Spell): """A stroke of lightning forming a line of 100 feet long and 5 feet wide blasts out - from you in a direction you choose. Each creature in the line must make a + from you in a direction you choose. Each creature in the line must make a Dexterity saving throw. A creature takes 8d6 lightning damage on a failed save, or half as much damage on a successful one. The lightning ignites flammable objects in the area that aren't being worn or carried. - At Higher Levels: When + **At Higher Levels:** When you cast this spell using a spell slot of 4th level or higher, the damage increases by 1d6 for each slot level above 3rd. """ @@ -241,8 +241,8 @@ class LightningLure(Spell): saving throw or be pulled up to 10 feet in a straight line toward you and then take 1d8 lightning damage if it is within 5 feet of you. - At Higher Levels: This - spell's damage increases by 1d8 when you reach 5th level (2d8), 11th level + **At Higher Levels:** This + spell's damage increases by 1d8 when you reach 5th level (2d8), 11th level (3d8), and 17th level (4d8). """ name = "Lightning Lure" @@ -332,7 +332,7 @@ class Longstrider(Spell): """You touch a creature. The target's speed increases by 10 feet until the spell ends. - At Higher Levels: When you cast this spell using a spell slot of 2nd + **At Higher Levels:** When you cast this spell using a spell slot of 2nd level or higher, you can target one additional creature for each slot level above 1st. """ diff --git a/dungeonsheets/spells/spells_m.py b/dungeonsheets/spells/spells_m.py index 8a145df..40038fe 100644 --- a/dungeonsheets/spells/spells_m.py +++ b/dungeonsheets/spells/spells_m.py @@ -4,7 +4,7 @@ from dungeonsheets.spells.spells import Spell class MaddeningDarkness(Spell): """Magical darkness spreads from a point you choose within range to fill a 60-foot-radius sphere until the spell ends. The darkness spreads around corners. - A creature with darkvision can't see through this darkness. Nonmagical light, + A creature with darkvision can't see through this darkness. Nonmagical light, as well as light created by spells of 8th level or lower, can't illuminate the area. Shrieks, gibbering, and mad laughter can be heard within the sphere. Whenever a creature starts its turn in the sphere, it must make a Wisdom saving @@ -26,7 +26,7 @@ class MaddeningDarkness(Spell): class Maelstrom(Spell): """(paper or leaf in the shape of a funnel) A mass of 5-foot-deep water appears and - swirls in a 30-foot radius centered on a point you can see within range. The + swirls in a 30-foot radius centered on a point you can see within range. The point must be on ground or in a body of water. Until the spell ends, that area is difficult terrain, and any creature that starts its turn there must succeed on a Strength saving throw or take 6d6 bludgeoning damage and be pulled 10 feet @@ -48,7 +48,7 @@ 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. + the spell as an action. """ name = "Mage Armor" level = 1 @@ -75,7 +75,7 @@ class MageHand(Spell): 30 feet each time you use it. The hand can't attack, activate magical items, or - carry more than 10 pounds. + carry more than 10 pounds. """ name = "Mage Hand" level = 0 @@ -91,17 +91,17 @@ class MageHand(Spell): class MagicCircle(Spell): """You create a 10-foot-radius, 20-foot-tall cylinder of magical energy centered on - a point on the ground that you can see within range. Glowing runes appear + a point on the ground that you can see within range. Glowing runes appear wherever the cylinder intersects with the floor or other surface. Choose one or - more of the following types of creatures: celestials, elementals, fey, fiends, + more of the following types of creatures: celestials, elementals, fey, fiends, or undead. The circle affects a creature of the chosen type in the following ways: * The creature can't willingly enter the cylinder by nonmagical means. If - the creature tries to use teleportation or interplanar travel to do so, it must - first succeed on a Charisma saving throw. + the creature tries to use teleportation or interplanar travel to do so, it must + first succeed on a Charisma saving throw. * The creature has disadvantage on attack rolls against targets within the cylinder. * Targets within the cylinder @@ -112,8 +112,8 @@ class MagicCircle(Spell): preventing a creature of the specified type from leaving the cylinder and protecting targets outside it. - At Higher Levels: When you cast this spell using - a spell slot of 4th level or higher, the duration increases by 1 hour for each + **At Higher Levels:** When you cast this spell using + a spell slot of 4th level or higher, the duration increases by 1 hour for each slot level above 3rd. """ name = "Magic Circle" @@ -133,7 +133,7 @@ class MagicJar(Spell): container you used for the spell's material component. While your soul inhabits the container, you are aware of your surroundings as if you were in the container's space. You can't move or use reactions. The only action you can take - is to project your soul up to 100 feet out of the container, either returning + is to project your soul up to 100 feet out of the container, either returning to your living body (and ending the spell) or attempting to possess a humanoids body. @@ -155,18 +155,18 @@ class MagicJar(Spell): container using its own senses, but it can't move or take actions at all. While - possessing a body, you can use your action to return from the host body to the + possessing a body, you can use your action to return from the host body to the container if it is within 100 feet of you, returning the host creature's soul to - its body. If the host body dies while you're in it, the creature dies, and you + its body. If the host body dies while you're in it, the creature dies, and you must make a Charisma saving throw against your own spellcasting DC. On a success, you return to the container if it is within 100 feet of you. Otherwise, - you die. + you die. If the container is destroyed or the spell ends, your soul immediately returns to your body. If your body is more than 100 feet away from you, or if your body is dead when you attempt to return to it, you die. If another creature's soul is in the container when it is destroyed, the creature's - soul returns to its body if the body is alive and within 100 feet. Otherwise, + soul returns to its body if the body is alive and within 100 feet. Otherwise, that creature dies. When the spell ends, the container is destroyed. @@ -190,7 +190,7 @@ class MagicMissile(Spell): 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 + **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 level above 1st. @@ -212,7 +212,7 @@ class MagicMouth(Spell): a trigger condition is met. Choose an object that you can see and that isn't being worn or carried by another creature. Then speak the message, which must be - 25 words or less, though it can be delivered over as long as 10 minutes. + 25 words or less, though it can be delivered over as long as 10 minutes. Finally, determine the circumstance that will trigger the spell to deliver your message. @@ -226,7 +226,7 @@ class MagicMouth(Spell): The triggering circumstance can be as general or as detailed as you like, though it must be based on visual or audible conditions - that occur within 30 feet of the object. For example, you could instruct the + that occur within 30 feet of the object. For example, you could instruct the mouth to speak when any creature moves within 30 feet of the object or when a silver bell rings within 30 feet of it. """ @@ -245,7 +245,7 @@ class MagicMouth(Spell): class MagicStone(Spell): """You touch one to three pebbles and imbue them with magic. You or someone else can make a ranged spell attack with one of the pebbles by throwing it or hurling - it with a sling. If thrown, a pebble has a range of 60 feet. If someone else + it with a sling. If thrown, a pebble has a range of 60 feet. If someone else attacks with a pebble, that attacker adds your spellcasting ability modifier, not the attacker's, to the attack roll. On a hit, the target takes bludgeoning damage equal to 1d6 + your spellcasting ability modifier. Whether the attack @@ -267,7 +267,7 @@ class MagicStone(Spell): class MagicWeapon(Spell): """You touch a nonmagical weapon. Until the spell ends, that weapon becomes a magic - weapon with a +1 bonus to attack rolls and damage rolls. + weapon with a +1 bonus to attack rolls and damage rolls. At Higher Levels: When you cast this spell using a spell slot of 4th level or higher, the bonus @@ -292,7 +292,7 @@ class MajorImage(Spell): that is no larger than a 20-foot cube. The image appears at a spot that you can see within range and lasts for the duration. It seems completely real, including - sounds, smells, and temperature appropriate to the thing depicted. You can't + sounds, smells, and temperature appropriate to the thing depicted. You can't create sufficient heat or cold to cause damage, a sound loud enough to deal thunder damage or deafen a creature, or a smell that might sicken a creature (like a troglodyte's stench). @@ -301,21 +301,21 @@ class MajorImage(Spell): you can use your action to cause the image to move to any other spot within range. As the image changes location, you can alter its appearance so that its movements appear natural for the image. For example, if you create an image of a - creature and move it, you can alter the image so that it appears to be walking. - Similarly, you can cause the illusion to make different sounds at different + creature and move it, you can alter the image so that it appears to be walking. + Similarly, you can cause the illusion to make different sounds at different times, even making it carry on a conversation, for example. Physical interaction with the image reveals it to be an illusion, because things can pass - through it. A creature that uses its action to examine the image can determine + through it. A creature that uses its action to examine the image can determine that it is an illusion with a successful Intelligence (Investigation) check against your spell save DC. If a creature discerns the illusion for what it is, the creature can see through the image, and its other sensory qualities become faint to the creature. - At Higher Levels: When you cast this spell using a spell - slot of 6th level or higher, the spell lasts until dispelled, without requiring - your concentration. + **At Higher Levels:** When you cast this spell using a spell + slot of 6th level or higher, the spell lasts until dispelled, without requiring + your concentration. """ name = "Major Image" level = 3 @@ -356,7 +356,7 @@ class MassHeal(Spell): """A flood of healing energy flows from you into injured creatures around you. You restore up to 700 hit points, divided as you choose among any number of creatures that you can see within range. Creatures healed by this spell are also - cured of all diseases and any effect making them blinded or deafened. This + cured of all diseases and any effect making them blinded or deafened. This spell has no effect on undead or constructs. """ name = "Mass Heal" @@ -402,19 +402,19 @@ class MassPolymorph(Spell): seen whose challenge rating is equal to or less than the target's (or half the target's level, if the target doesn't have a challenge rating). The target's game statistics, including mental ability scores, are replaced by the statistics - of the chosen beast, but the target retains its hit points, alignment, and + of the chosen beast, but the target retains its hit points, alignment, and personality. Each target gains a number of temporary hit points equal to the hit - points of its new form. These temporary hit points can't be replaced by + points of its new form. These temporary hit points can't be replaced by temporary hit points from another source. A target reverts to its normal form when it has no more temporary hit points or it dies. If the spell ends before then, the creature loses all its temporary hit points and reverts to its normal form. The creature is limited in the actions it can perform by the nature of its - new form. It can't speak, cast spells, or do anything else that requires hands + new form. It can't speak, cast spells, or do anything else that requires hands or speech. The target's gear melds into the new form. The target can't activate, - use, wield, or otherwise benefit from any of its equipment. + use, wield, or otherwise benefit from any of its equipment. """ name = "Mass Polymorph" level = 9 @@ -433,21 +433,21 @@ class MassSuggestion(Spell): influence up to twelve creatures of your choice that you can see within range and that can hear and understand you. Creatures that can't be charmed are immune - to this effect. The suggestion must be worded in such a manner as to make the + to this effect. The suggestion must be worded in such a manner as to make the course of action sound reasonable. Asking the creature to stab itself, throw itself onto a spear, immolate itself, or do some other obviously harmful act automatically negates the effect of the spell. Each target must make a Wisdom saving throw. On a failed save, it pursues the course of action you described to - the best of its ability. The suggested course of action can continue for the + the best of its ability. The suggested course of action can continue for the entire duration. If the suggested activity can be completed in a shorter time, the spell ends when the subject finishes what it was asked to do. You can also specify conditions that will trigger a special activity during the duration. For - example, you might suggest that a group of soldiers give all their money to the - first beggar they meet. If the condition isn't met before the spell ends, the + example, you might suggest that a group of soldiers give all their money to the + first beggar they meet. If the condition isn't met before the spell ends, the activity isn't performed. If you or any of your companions damage a creature @@ -458,7 +458,7 @@ class MassSuggestion(Spell): When you use an 8th-level spell slot, the duration is 30 days. When you use a - 9th-level spell slot, the duration is a year and a day. + 9th-level spell slot, the duration is a year and a day. """ name = "Mass Suggestion" level = 6 @@ -476,18 +476,18 @@ class MaximiliansEarthenGrasp(Spell): """You choose a 5-foot-square unoccupied space on the ground that you can see within range. A Medium hand made from compacted soil rises there and reaches for - one creature you can see within 5 feet of it. The target must make a Strength + one creature you can see within 5 feet of it. The target must make a Strength saving throw. On a failed save, the target takes 2d6 bludgeoning damage and is restrained for the spell's duration. As an action, you can cause the hand to crush the restrained target, who must make a Strength saving throw. It takes 2d6 - bludgeoning damage on a failed save, or half as much damage on a successful + bludgeoning damage on a failed save, or half as much damage on a successful one. To break out, the restrained target can make a Strength check against your spell save DC. On a success, the target escapes and is no longer restrained by the hand. As an action, you can cause the hand to reach for a different creature - or to move to a different unoccupied space within range. The hand releases a + or to move to a different unoccupied space within range. The hand releases a restrained target if you do either. """ name = "Maximilians Earthen Grasp" @@ -509,7 +509,7 @@ class Maze(Spell): The target can use its action to attempt to escape. When it does so, it makes a DC 20 Intelligence check. If it succeeds, it escapes, and the spell ends - (a minotaur or goristro demon automatically succeeds). + (a minotaur or goristro demon automatically succeeds). When the spell ends, the target reappears in the space it left or, if that space is occupied, in the @@ -529,17 +529,17 @@ class Maze(Spell): class MeldIntoStone(Spell): """You step into a stone object or surface large enough to fully contain your body, - melding yourself and all the equipment you carry with the stone for the + melding yourself and all the equipment you carry with the stone for the duration. Using your movement, you step into the stone at a point you can touch. - Nothing of your presence remains visible or otherwise detectable by nonmagical + Nothing of your presence remains visible or otherwise detectable by nonmagical senses. While merged with the stone, you can't see what occurs outside it, and any Wisdom (Perception) checks you make to hear sounds outside it are made with disadvantage. You remain aware of the passage of time and can cast spells on yourself while merged in the stone. You can use your movement to leave the stone - where you entered it, which ends the spell. You otherwise can't move. + where you entered it, which ends the spell. You otherwise can't move. Minor physical damage to the stone doesn't harm you, but its partial destruction or a @@ -597,7 +597,7 @@ class MelfsMinuteMeteors(Spell): A creature takes 2d6 fire damage on a failed save, or half as much damage on a successful one. At Higher Levels. When you cast this spell using a spell slot of - 4th level or higher, the number of meteors created increases by two for each + 4th level or higher, the number of meteors created increases by two for each slot level above 3rd. """ name = "Melfs Minute Meteors" @@ -614,10 +614,10 @@ class MelfsMinuteMeteors(Spell): class Mending(Spell): """This spell repairs a single break or tear in an object you touch, such as broken - chain link, two halves of a broken key, a torn cloack, or a leaking wineskin. + chain link, two halves of a broken key, a torn cloack, or a leaking wineskin. As long as the break or tear is no larger than 1 foot in any dimension, you mend - it, leaving no trace of the former damage. + it, leaving no trace of the former damage. This spell can physically repair a magic item or construct, but the spell can't restore magic to such an object. @@ -644,7 +644,7 @@ class MentalPrison(Spell): might cause the target to perceive itself as being surrounded by fire, floating razors, or hideous maws filled with dripping teeth. Whatever form the illusion takes, the target can't see or hear anything beyond it and is restrained for the - spell's duration. If the target is moved out of the illusion, makes a melee + spell's duration. If the target is moved out of the illusion, makes a melee attack through it, or reaches any part of its body through it, the target takes 10d10 psychic damage, and the spell ends. """ @@ -724,7 +724,7 @@ class MightyFortress(Spell): the enclosed area. The keep has a square base that is 50 feet on each side, and it has three floors with 10-foot-high ceilings. Each of the floors can be divided into as many rooms as you like, provided each room is at least 5 feet on - each side. The floors of the keep are connected by stone staircases, its walls + each side. The floors of the keep are connected by stone staircases, its walls are 6 inches thick, and interior rooms can have stone doors or open archways as you choose. The keep is furnished and decorated however you like, and it contains sufficient food to serve a nine-course banquet for up to 100 people @@ -741,7 +741,7 @@ class MightyFortress(Spell): and collapse at the DM's discretion. After 7 days or when you cast this spell somewhere else, the fortress harmlessly crumbles and sinks back into the ground, - leaving any creatures that were inside it safely on the ground. + leaving any creatures that were inside it safely on the ground. Casting this spell on the same spot once every 7 days for a year makes the fortress permanent. @@ -783,7 +783,7 @@ class MindSliver(Spell): an Intelligence saving throw or take 1d6 psychic damage and subtract 1d4 from the next saving throw it makes before the end of your next turn. - At Higher Levels: This spell’s damage increases by 1d6 when you reach + **At Higher Levels:** This spell’s damage increases by 1d6 when you reach certain levels: 5th level (2d6), 11th level (3d6), and 17th level (4d6). """ name = "Mind Sliver" @@ -803,12 +803,12 @@ class MindSpike(Spell): must make a Wisdom saving throw, taking 3d8 psychic damage on a failed save, or half as much damage on a successful one. On a failed save, you also always know the target's location until the spell ends, but only while the two of you are on - the same plane of existence. While you have this knowledge, the target can't + the same plane of existence. While you have this knowledge, the target can't become hidden from you, and if it's invisible, it gains no benefit from that condition against you. - At Higher Levels: When you cast this spell using a spell - slot of 3rd level or higher, the damage increases by 1d8 for each slot level + **At Higher Levels:** When you cast this spell using a spell + slot of 3rd level or higher, the damage increases by 1d8 for each slot level above 2nd. """ name = "Mind Spike" @@ -838,7 +838,7 @@ class MinorIllusion(Spell): footprints, or a small chest it must be no larger than a 5-foot cube. The image can't create sound, light, smell, or any other sensory effect. Physical interaction with the image reveals it to be an illusion, because things can pass - through it. + through it. If a creature uses its action to examine the sound or image, the creature can determine that it is an illusion with a successful Intelligence @@ -898,14 +898,14 @@ class MirrorImage(Spell): Until the spell ends, the duplicates move with you and mimic your actions, shifting position so it's impossible to track which image is real. You can use your action to dismiss - the illusory duplicates. + the illusory duplicates. Each time a creature targets you with an attack during the spell's duration, roll a d20 to determine whether the attack instead targets one of your duplicates. If you have three duplicates, you must roll a 6 - or higher to change the attack's target to a duplicate. With two duplicates, + or higher to change the attack's target to a duplicate. With two duplicates, you must roll an 8 or higher. With one duplicate, you must roll an 11 or higher. @@ -915,7 +915,7 @@ class MirrorImage(Spell): when all three duplicates are destroyed. A creature is unaffected by this spell - if it can't see, if it relies on senses other than sight, such as blindsight, + if it can't see, if it relies on senses other than sight, such as blindsight, or if it can perceive illusions as false, as with truesight. """ name = "Mirror Image" @@ -937,7 +937,7 @@ class Mislead(Spell): You can use your action to move your illusory double up to twice your speed and make it gesture, speak, and behave in - whatever way you choose. + whatever way you choose. You can see through its eyes and hear through its ears as if you were located where it is. On each of your turns as a bonus @@ -990,28 +990,28 @@ class ModifyMemory(Spell): memory of the details of the event, or create a memory of some other event. You - must speak to the target to describe how its memories are affected, and it must - be able to understand your language for the modified memories to take root. Its - mind fills in any gaps in the details of your description. If the spell ends + must speak to the target to describe how its memories are affected, and it must + be able to understand your language for the modified memories to take root. Its + mind fills in any gaps in the details of your description. If the spell ends before you have finished describing the modified memories, the creature's memory - isn't altered. Otherwise, the modified memories take hold when the spell ends. + isn't altered. Otherwise, the modified memories take hold when the spell ends. A modified memory doesn't necessarily affect how a creature behaves, particularly if the memory contradicts the creature's natural inclinations, alignment, or beliefs. An illogical modified memory, such as implanting a memory - of how much the creature enjoyed dousing itself in acid, is dismissed, perhaps + of how much the creature enjoyed dousing itself in acid, is dismissed, perhaps as a bad dream. The DM might deem a modified memory too nonsensical to affect a creature in a significant manner. A remove curse or greater restoration spell cast on the target restores the creature's true memory. - At Higher Levels: If + **At Higher Levels:** If you cast this spell using a spell slot of 6th level or higher, you can alter the - target's memories of an event that took place up to 7 days ago (6th level), 30 + target's memories of an event that took place up to 7 days ago (6th level), 30 days ago (7th level), 1 year ago (8th level), or any time in the creature's past - (9th level). + (9th level). """ name = "Modify Memory" level = 5 @@ -1034,7 +1034,7 @@ class MoldEarth(Spell): enough force to cause damage. - You cause shapes, colors, or both to appear on the dirt or stone, spelling out words, creating images, or shaping patterns. The - changes last for 1 hour. + changes last for 1 hour. - If the dirt or stone you target is on the ground, you cause it to become difficult terrain. Alternatively, you can cause the ground to become normal terrain if it is already difficult terrain. This change @@ -1057,11 +1057,11 @@ class MoldEarth(Spell): class Moonbeam(Spell): """A silvery beam of pale light shines down in a 5-footradius, 40-foot-high cylinder centered on a point within range. Until the spell ends, dim light fills - the cylinder. + the cylinder. When a creature enters the spell's area for the first time on a - turn or starts its turn there, it is engulfed in ghostly flames that cause + turn or starts its turn there, it is engulfed in ghostly flames that cause searing pain, and it must make a Constitution saving throw. It takes 2d10 radiant damage on a failed save, or half as much damage on a successful one. @@ -1128,7 +1128,7 @@ class MordenkainensMagnificentMansion(Spell): While closed, the portal is invisible. Beyond the portal is a magnificent foyer - with numerous chambers beyond. The atmosphere is clean, fresh, and warm. + with numerous chambers beyond. The atmosphere is clean, fresh, and warm. You can create any floor plan you like, but the space can't exceed 50 cubes, each @@ -1138,10 +1138,10 @@ class MordenkainensMagnificentMansion(Spell): decide the visual appearance of these servants and their attire. They are completely obedient to your orders. Each servant can perform any task a normal human servant could perform, but they can't attack or take any action that would - directly harm another creature. Thus the servants can fetch things, clean, + directly harm another creature. Thus the servants can fetch things, clean, mend, fold clothes, light fires, serve food, pour wine, and so on. The servants can go anywhere in the mansion but can't leave it. Furnishings and other objects - created by this spell dissipate into smoke if removed from the mansion. When + created by this spell dissipate into smoke if removed from the mansion. When the spell ends, any creatures inside the extradimensional space are expelled into the open spaces nearest to the entrance. """ @@ -1161,7 +1161,7 @@ class MordenkainensPrivateSanctum(Spell): """You make an area within range magically secure. The area is a cube that can be as small as 5 feet to as large as 100 feet on each side. The spell lasts for the - duration or until you use an action to dismiss it. + duration or until you use an action to dismiss it. When you cast the spell, you decide what sort of security the spell provides, choosing any or all of the @@ -1169,10 +1169,10 @@ class MordenkainensPrivateSanctum(Spell): * Sound can't pass through the barrier at the edge of the warded area. * The barrier of the warded area appears dark and foggy, preventing - vision (including darkvision) through it. + vision (including darkvision) through it. * Sensors created by divination spells can't appear inside the protected area or pass through the barrier at its - perimeter. + perimeter. * Creatures in the area can't be targeted by divination spells. * Nothing can teleport into or out of the warded area. @@ -1182,9 +1182,9 @@ class MordenkainensPrivateSanctum(Spell): Casting this spell on the same spot every day for a year makes this effect permanent. - At Higher Levels: When you cast this spell + **At Higher Levels:** When you cast this spell using a spell slot of 5th level or higher, you can increase the size of the cube - by 100 feet for each slot level beyond 4th. Thus you could protect a cube that + by 100 feet for each slot level beyond 4th. Thus you could protect a cube that can be up to 200 feet on one side by using a spell slot o f 5th level. """ name = "Mordenkainens Private Sanctum" @@ -1207,7 +1207,7 @@ class MordenkainensSword(Spell): target of your choice within 5 feet of the sword. On a hit. the target takes 3d10 force damage. Until the spell ends, you can use a bonus action on each of your turns to move the sword up to 20 feet to a spot you can see and repeat this - attack against the same target or a different one. + attack against the same target or a different one. """ name = "Mordenkainens Sword" level = 7 @@ -1223,13 +1223,13 @@ class MordenkainensSword(Spell): class MoveEarth(Spell): """Choose an area of terrain no larger than 40 feet on a side within range. You can - reshape dirt, sand, or clay in the area in any manner you choose for the + reshape dirt, sand, or clay in the area in any manner you choose for the duration. You can raise or lower the area's elevation, create or fill in a trench, erect or flatten a wall, or form a pillar. The extent of any such changes can't exceed half the area's largest dimension. So, if you affect a 40-foot square, you can create a pillar up to 20 feet high, raise or lower the square's elevation by up to 20 feet, dig a trench up to 20 feet deep, and so on. - It takes 10 minutes for these changes to complete. + It takes 10 minutes for these changes to complete. At the end of every 10 minutes you spend concentrating on the spell, you can choose a new area of @@ -1244,7 +1244,7 @@ class MoveEarth(Spell): the terrain would make a structure unstable, it might collapse. Similarly, this - spell doesn't directly affect plant growth. The moved earth carries any plants + spell doesn't directly affect plant growth. The moved earth carries any plants along with it. """ name = "Move Earth" diff --git a/dungeonsheets/spells/spells_n.py b/dungeonsheets/spells/spells_n.py index ba455eb..43c3260 100644 --- a/dungeonsheets/spells/spells_n.py +++ b/dungeonsheets/spells/spells_n.py @@ -8,7 +8,7 @@ class NegativeEnergyFlood(Spell): one. A target killed by this damage rises up as a zombie at the start of your next turn. The zombie pursues whatever creature it can see that is closest to it. Statistics for the zombie are in the Monster Manual. If you target an undead - with this spell, the target doesn't make a saving throw. Instead, roll 5d12. + with this spell, the target doesn't make a saving throw. Instead, roll 5d12. The target gains half the total as temporary hit points. """ name = "Negative Energy Flood" @@ -57,7 +57,7 @@ class NystulsMagicAura(Spell): False Aura You change the way the target appears to spells and magical effects, such as detect magic, that detect magical auras. You - can make a nonmagical object appear magical, a magical object appear + can make a nonmagical object appear magical, a magical object appear nonmagical, or change the object's magical aura so that it appears to belong to a specific school of magic that you choose. When you use this effect on an object, you can make the false magic apparent to any creature that handles the @@ -66,7 +66,7 @@ class NystulsMagicAura(Spell): Mask You change the way the target appears to spells and magical effects that detect creature types, such as a paladin's Divine Sense or the trigger of a - sym bol spell. You choose a creature type and other spells and magical effects + sym bol spell. You choose a creature type and other spells and magical effects treat the target as if it were a creature of that type or of that alignment. """ name = "Nystuls Magic Aura" diff --git a/dungeonsheets/spells/spells_o.py b/dungeonsheets/spells/spells_o.py index 83e6dc5..5fa1afa 100644 --- a/dungeonsheets/spells/spells_o.py +++ b/dungeonsheets/spells/spells_o.py @@ -5,13 +5,13 @@ class OtilukesFreezingSphere(Spell): """A frigid globe of cold energy streaks from your fingertips to a point of your choice within range, where it explodes in a 60-foot-radius sphere. Each creature - within the area must make a Constitution saving throw. On a failed save, a + within the area must make a Constitution saving throw. On a failed save, a creature takes 10d6 cold damage. On a successful save, it takes half as much damage. If the globe strikes a body of water or a liquid that is principally water (not including water-based creatures), it freezes the liquid to a depth of - 6 inches over an area 30 feet square. This ice lasts for 1 minute. Creatures + 6 inches over an area 30 feet square. This ice lasts for 1 minute. Creatures that were swimming on the surface of frozen water are trapped in the ice. A trapped creature can use an action to make a Strength check against your spell save DC to break free. @@ -20,7 +20,7 @@ class OtilukesFreezingSphere(Spell): the spell, if you wish. A small globe about the size of a sling stone, cool to the touch, appears in your hand. At any time, you or a creature you give the globe to can throw the globe (to a range of 40 feet) or hurl it with a sling (to - the sling's normal range). It shatters on impact, with the same effect as the + the sling's normal range). It shatters on impact, with the same effect as the normal casting of the spell. You can also set the globe down without shattering it. After 1 minute, if the globe hasn't already shattered, it explodes. @@ -47,7 +47,7 @@ class OtilukesResilientSphere(Spell): Nothing---not physical objects, energy, or other spell effects---can pass through the barrier, - in or out, though a creature in the sphere can breathe there. The sphere is + in or out, though a creature in the sphere can breathe there. The sphere is immune to all damage, and a creature or object inside can't be damaged by attacks or effects originating from outside, nor can a creature inside the sphere damage anything outside it. diff --git a/dungeonsheets/spells/spells_p.py b/dungeonsheets/spells/spells_p.py index 2f27f3f..e0f331b 100644 --- a/dungeonsheets/spells/spells_p.py +++ b/dungeonsheets/spells/spells_p.py @@ -3,7 +3,7 @@ from dungeonsheets.spells.spells import Spell class PassWithoutTrace(Spell): """A veil of shadows and silence radiates from you, masking you and your companions - from detection. + from detection. For the duration, each creature you choose within 30 feet of you (including you) has a +10 bonus to Dexterity (Stealth) checks and can't be tracked except by magical means. A creature that receives this bonus leaves @@ -29,7 +29,7 @@ class Passwall(Spell): structure surrounding it. When the opening disappears, any creatures or objects - still in the passage created by the spell are safely ejected to an unoccupied + still in the passage created by the spell are safely ejected to an unoccupied space nearest to the surface on which you cast the spell. """ name = "Passwall" @@ -96,14 +96,14 @@ class PhantasmalForce(Spell): class PhantasmalKiller(Spell): """You tap into the nightmares of a creature you can see within range and create an - illusory manifestation of its deepest fears, visible only to that creature. + illusory manifestation of its deepest fears, visible only to that creature. The - target must make a Wisdom saving throw. On a failed save, the target becomes + target must make a Wisdom saving throw. On a failed save, the target becomes frightened for the duration. At the end of each of the target's turns before the - spell ends, the target must succeed on a Wisdom saving throw or take 4d10 + spell ends, the target must succeed on a Wisdom saving throw or take 4d10 psychic damage. On a successful save, the spell ends. - At Higher Levels: When + **At Higher Levels:** When you cast this spell using a spell slot of 5th level or higher, the damage increases by 1d1O for each slot level above 4th. """ @@ -208,7 +208,7 @@ class PlanarBinding(Spell): the completion of the casting, the target must make a Charisma saving throw. On a failed save, it is bound to serve you for the duration. If the creature w as summoned or created by another spell, that spell's duration is extended to match - the duration of this spell. + the duration of this spell. A bound creature must follow your instructions to the best of its ability. You might command the creature to accompany you on an @@ -218,16 +218,16 @@ class PlanarBinding(Spell): your instructions completely before the spell ends, it travels to you to report this fact if you are on the same plane of existence. If you are on a different plane of existence, it returns to the place where you bound it and remains there - until the spell ends. + until the spell ends. - At Higher Levels: When you cast this spell using a spell - slot of a higher level, the duration increases to: + **At Higher Levels:** When you cast this spell using a spell + slot of a higher level, the duration increases to: 10 days with a 6th-level slot, 30 days with a 7th-level slot, 180 days with an 8th-level slot, 1 year - and 1 day with a 9th-level spell slot. + and 1 day with a 9th-level spell slot. """ name = "Planar Binding" level = 5 @@ -243,15 +243,15 @@ class PlanarBinding(Spell): class PlaneShift(Spell): """You and up to eight willing creatures who link hands in a circle are transported - to a different plane of existence. You can specify a target destination in + to a different plane of existence. You can specify a target destination in general terms, such as the City of Brass on the Elemental Plane of Fire or the palace of Dispater on the second level of the Nine Hells, and you appear in or near that destination. If you are trying to reac the City of Brass, for example, - you might arrive in its Street of Steel, before its Gate of Ashes, or looking + you might arrive in its Street of Steel, before its Gate of Ashes, or looking at the city from across the Sea of Fire, at the DM's discretion. Alternatively, - if you know the sigil sequence of a teleportation circle on another plane of + if you know the sigil sequence of a teleportation circle on another plane of existence, this spell can take you to that circle. If the teleportation circle is too small to hold all the creatures you transported, they appear in the closest unoccupied spaces next to the circle. @@ -261,7 +261,7 @@ class PlaneShift(Spell): make a melee spell attack against it. On a hit, the creature must make a Charisma saving throw. If the creature fails the save, it is transported to a random location on the plane of existence you specify. A creature so transported - must find its own way back to your current plane of existence. + must find its own way back to your current plane of existence. """ name = "Plane Shift" level = 7 @@ -282,8 +282,8 @@ class PlantGrowth(Spell): If you cast this spell using 1 action, choose a point within range. All normal plants in a 100-foot radius centered on that point become thick and overgrown. A - creature moving through the area must spend 4 feet of movement for every 1 foot - it moves. + creature moving through the area must spend 4 feet of movement for every 1 foot + it moves. You can exclude one or more areas of any size within the spell's area from being affected. @@ -310,9 +310,9 @@ class PoisonSpray(Spell): puff of noxious gas from your palm. The creature must succeed on a Constitution saving throw or take 1d12 poison damage. - At Higher Levels: This spell's damage + **At Higher Levels:** This spell's damage increases by 1d12 when you reach 5th level (2d12), 11th level (3d12), 17th level - (4d12). + (4d12). """ name = "Poison Spray" level = 0 @@ -347,12 +347,12 @@ class Polymorph(Spell): The creature is limited in the actions it can perform by the nature of its new - form, and it can't speak, cast spells, or take any other action that requires + form, and it can't speak, cast spells, or take any other action that requires hands or speech. The target's gear melds into the new form. The creature can't activate, use, wield, or otherwise benefit from any of its equipment. This spell - can't affect a target that has 0 hit points. + can't affect a target that has 0 hit points. """ name = "Polymorph" level = 4 @@ -404,17 +404,17 @@ class PowerWordKill(Spell): class PowerWordPain(Spell): """You speak a word of power that causes waves of intense pain to assail one creature you can see within range. If the target has 100 hit points or fewer, it - is subject to crippling pain. Otherwise, the spell has no effect on it. A + is subject to crippling pain. Otherwise, the spell has no effect on it. A target is also unaffected if it is immune to being charmed. While the target is affected by crippling pain, any speed it has can be no higher than 10 feet. The target also has disadvantage on attack rolls, ability checks, and saving throws, - other than Constitution saving throws. Finally, if the target tries to cast a + other than Constitution saving throws. Finally, if the target tries to cast a spell, it must first succeed on a Constitution saving throw, or the casting fails and the spell is wasted. A target suffering this pain can make a Constitution saving throw at the end of each of its turns. On a successful save, - the pain ends. + the pain ends. """ name = "Power Word Pain" level = 7 @@ -449,12 +449,12 @@ class PowerWordStun(Spell): class PrayerOfHealing(Spell): """Up to six creatures of your choice that you can see within range each regain hit - points equal to 2d8 + your spellcasting ability modifier. This spell has no + points equal to 2d8 + your spellcasting ability modifier. This spell has no effect on undead or constructs. - At Higher Levels: When you cast this spell + **At Higher Levels:** When you cast this spell using a spell slot of 3rd level or higher, the healing increases by 1d8 for each - slot level above 2nd. + slot level above 2nd. """ name = "Prayer Of Healing" level = 2 @@ -484,7 +484,7 @@ class Prestidigitation(Spell): 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. + 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. @@ -503,7 +503,7 @@ class Prestidigitation(Spell): class PrimalSavagery(Spell): """You channel primal magic to cause your teeth or fingernails to sharpen, ready to - deliver a corrosive attack. Make a melee spell attack against one creature + deliver a corrosive attack. Make a melee spell attack against one creature within 5 feet of you. On a hit, the target takes 1d10 acid damage. After you make the attack, your teeth or fingernails return to normal. The spell's damage increases by 1d10 when you reach 5th level (2d10), 11th level (3d10), and 17th @@ -559,7 +559,7 @@ class PrismaticSpray(Spell): half as much damage on a successful one. 4. Green. The target takes 10d6 poison - damage on a failed save, or half as much damage on a successful one. + damage on a failed save, or half as much damage on a successful one. 5. Blue. The target takes 10d6 cold damage on a failed save, or half as much damage on a @@ -573,9 +573,9 @@ class PrismaticSpray(Spell): of both until the target collects three of a kind. 7. Violet. On a failed save, - the target is blinded. It must then make a Wisdom saving throw at the start of + the target is blinded. It must then make a Wisdom saving throw at the start of your next turn. A successful save ends the blindness. If it fails that save, the - creature is transported to another plane of existence of the DM's choosing and + creature is transported to another plane of existence of the DM's choosing and is no longer blinded. (Typically, a creature that is on a plane that isn't its home plane is banished home, while other creatures are usually cast into the Astral or Ethereal planes.) @@ -696,7 +696,7 @@ class ProduceFlame(Spell): you. Make a ranged spell attack. On a hit, the target takes 1d8 fire damage. At - Higher Levels: This spell's damage increases by 1d8 when you reach 5th level + Higher Levels: This spell's damage increases by 1d8 when you reach 5th level (2d8), 11th level (3d8), and 17th level (4d8). """ name = "Produce Flame" @@ -722,14 +722,14 @@ class ProgrammedIllusion(Spell): condition you specify occurs, the illusion springs into existence and performs in the manner you described. Once the illusion finishes performing, it disappears and remains dormant for 10 minutes. After this time, the illusion can - be activated again. + be activated again. The triggering condition can be as general or as detailed as you like, though it must be based on visual or audible conditions that occur within 30 feet of the area. For example, you could create an illusion of yourself to appear and warn off others who attempt to open a trapped door, or you could set the illusion to trigger only when a creature says the correct word - or phrase. + or phrase. Physical interaction with the image reveals it to be an illusion, because things can pass through it. A creature that uses its action to examine @@ -754,22 +754,22 @@ class ProjectImage(Spell): """You create an illusory copy of yourself that lasts for the duration. The copy can appear at any location within range that you have seen before, regardless of - intervening obstacles. The illusion looks and sounds like you but is + intervening obstacles. The illusion looks and sounds like you but is intangible. If the illusion takes any damage, it disappears, and the spell ends. You can use your action to move this illusion up to twice your speed, and make - it gesture, speak, and behave in whatever way you choose. It mimics your + it gesture, speak, and behave in whatever way you choose. It mimics your mannerisms perfectly. You can see through its eyes and hear through its ears as - if you were in its space. On your turn as a bonus action, you can switch from + if you were in its space. On your turn as a bonus action, you can switch from using its senses to using your own, or back again. While you are using its senses, you are blinded and deafened in regard to your own surroundings. Physical interaction with the image reveals it to be an illusion, because things - can pass through it. A creature that uses its action to examine the image can + can pass through it. A creature that uses its action to examine the image can determine that it is an illusion with a successful Intelligence (Investigation) check against your spell save DC. If a creature discerns the illusion for what it is, the creature can see through the image, and any noise it makes sounds @@ -812,7 +812,7 @@ class ProtectionFromEvilAndGood(Spell): have disadvantage on attack rolls against the target. The target also can't be charmed, frightened, or possessed by them. If the target is already charmed, frightened, or possessed by such a creature, the target has advantage on any new - saving throw against the relevant effect. + saving throw against the relevant effect. """ name = "Protection From Evil And Good" level = 1 @@ -828,7 +828,7 @@ class ProtectionFromEvilAndGood(Spell): class ProtectionFromPoison(Spell): """You touch a creature. If it is poisoned, you neutralize the poison. If more than - one poison afflicts the target, you neutralize one poison that you know is + one poison afflicts the target, you neutralize one poison that you know is present, or you neutralize one at random. For the duration, the target has @@ -849,13 +849,13 @@ class ProtectionFromPoison(Spell): class PsychicScream(Spell): """You unleash the power of your mind to blast the intellect of up to ten creatures - of your choice that you can see within range. Creatures that have an + of your choice that you can see within range. Creatures that have an Intelligence score of 2 or lower are unaffected. Each target must make an Intelligence saving throw. On a failed save, a target takes 14d6 psychic damage and is stunned. On a successful save, a target takes half as much damage and isn't stunned. If a target is killed by this damage, its head explodes, assuming - it has one. + it has one. A stunned target can make an Intelligence saving throw at the end of each of its turns. On a successful save, the stunning effect ends. """ diff --git a/dungeonsheets/spells/spells_r.py b/dungeonsheets/spells/spells_r.py index 3a465a3..8d5027f 100644 --- a/dungeonsheets/spells/spells_r.py +++ b/dungeonsheets/spells/spells_r.py @@ -7,8 +7,8 @@ class RaiseDead(Spell): rejoin the body, the creature returns to life with 1 hit point. This spell also - neutralizes any poison and cures nonmagical diseases that affected the creature - at the time it died. This spell doesn't, however, remove magical diseases, + neutralizes any poison and cures nonmagical diseases that affected the creature + at the time it died. This spell doesn't, however, remove magical diseases, curses, or similar effects; if these aren't first removed prior to casting the spell, they take effect when the creature returns to life. The spell can't return an undead creature to life. @@ -19,7 +19,7 @@ class RaiseDead(Spell): automatically fails. Coming back from the dead is an ordeal. The target takes a - -4 penalty to all attack rolls, saving throws, and ability checks. Every time + -4 penalty to all attack rolls, saving throws, and ability checks. Every time the target finishes a long rest, the penalty is reduced by 1 until it disappears. """ @@ -82,12 +82,12 @@ class RayOfEnfeeblement(Spell): 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. + 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. At Higher Levels: The spell's damage increases by 1d8 when you reach 5th level (2d8), 11th - level (3d8), and 17th level (4d8). + level (3d8), and 17th level (4d8). """ name = "Ray Of Frost" level = 0 @@ -106,10 +106,10 @@ class RayOfSickness(Spell): 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. + 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 + **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" @@ -128,12 +128,12 @@ class Regenerate(Spell): """You touch a creature and stimulate its natural healing ability. The target regains 4d8 + 15 hit points. For the duration of the spell, the target regains 1 - hit point at the start of each of its turns (10 hit points each minute). + hit point at the start of each of its turns (10 hit points each minute). The target's severed body members (fingers, legs, tails, and so on), if any, are restored after 2 minutes. If you have the severed part and hold it to the stump, - the spell instantaneously causes the limb to knit to the stump. + the spell instantaneously causes the limb to knit to the stump. """ name = "Regenerate" level = 7 @@ -176,10 +176,10 @@ class Reincarnate(Spell): 69-76 Halfling, stout 77-96 Human 97-00 - Tiefling + Tiefling The reincarnated creature recalls its former life and experiences. It - retains the capabilities it had in its original form, except it exchanges its + retains the capabilities it had in its original form, except it exchanges its original race for the new one and changes its racial traits accordingly. """ name = "Reincarnate" @@ -196,7 +196,7 @@ class Reincarnate(Spell): class RemoveCurse(Spell): """At your touch, all curses affecting one creature or object end. If the object is - a cursed magic item, its curse remains, but the spell breaks its owner's + a cursed magic item, its curse remains, but the spell breaks its owner's attunement to the object so it can be removed or discarded. """ name = "Remove Curse" @@ -236,7 +236,7 @@ class Resurrection(Spell): This spell neutralizes any poisons and cures normal diseases afflicting the creature when it died. It doesn't, however, remove magical diseases, curses, and the like; if such affects - aren't removed prior to casting the spell, they afflict the target on its + aren't removed prior to casting the spell, they afflict the target on its return to life. This spell closes all mortal wounds and restores any missing @@ -248,9 +248,9 @@ class Resurrection(Spell): Casting this spell to restore life to a creature that has been dead for one year - or longer taxes you greatly. Until you finish a long rest, you can't cast + or longer taxes you greatly. Until you finish a long rest, you can't cast spells again, and you have disadvantage on all attack rolls, ability checks, and - saving throws. + saving throws. """ name = "Resurrection" level = 7 @@ -266,9 +266,9 @@ class Resurrection(Spell): class ReverseGravity(Spell): """This spell reverses gravity in a 50-foot-radius, 100-foot high cylinder centered - on a point within range. + on a point within range. All creatures and objects that aren't somehow anchored - to the ground in the area fall upward and reach the top of the area when you + to the ground in the area fall upward and reach the top of the area when you cast this spell. A creature can make a Dexterity saving throw to grab onto a fixed object it can reach, thus avoiding the fall. @@ -295,7 +295,7 @@ class ReverseGravity(Spell): class Revivify(Spell): """You touch a creature that has died within the last minute. That creature returns - to life with 1 hit point. This spell can't return to life a creature that has + to life with 1 hit point. This spell can't return to life a creature that has died of old age, nor can it restore any missing body parts. """ name = "Revivify" @@ -323,7 +323,7 @@ class RopeTrick(Spell): Attacks and spells can't cross through the entrance into or out of the extradimensional space, but those inside - can see out of it as if through a 3-foot-by-5-foot window centered on the rope. + can see out of it as if through a 3-foot-by-5-foot window centered on the rope. Anything inside the extradimensional space drops out when the spell ends. diff --git a/dungeonsheets/spells/spells_s.py b/dungeonsheets/spells/spells_s.py index ce011c6..b93e923 100644 --- a/dungeonsheets/spells/spells_s.py +++ b/dungeonsheets/spells/spells_s.py @@ -6,8 +6,8 @@ class SacredFlame(Spell): target must succeed on a Dexterity saving throw or take 1d8 radiant damage. The target gains no benefit from cover for this saving throw. - At Higher Levels: The - spell's damage increases by 1d8 when you reach 5th level (2d8), 11th level + **At Higher Levels:** The + spell's damage increases by 1d8 when you reach 5th level (2d8), 11th level (3d8), and 17th level (4d8). """ name = "Sacred Flame" @@ -50,7 +50,7 @@ class Scatter(Spell): """The air quivers around up to five creatures of your choice that you can see within range. An unwilling creature must succeed on a Wisdom saving throw to resist this spell. You teleport each affected target to an unoccupied space that - you can see within 120 feet of you. That space must be on the ground or on a + you can see within 120 feet of you. That space must be on the ground or on a floor. """ name = "Scatter" @@ -70,7 +70,7 @@ class ScorchingRay(Spell): hurl them at one target or several. Make a ranged spell attack for each ray. On a hit, the target takes 2d6 fire damage. - At Higher Levels: When you cast this + **At Higher Levels:** When you cast this spell using a spell slot of 3rd level or higher, you create one additional ray for each slot level above 2nd. """ @@ -225,7 +225,7 @@ class Seeming(Spell): class Sending(Spell): """You send a short message of twenty-five words or less to a creature with you are - familiar. The creature hears the message in its mind, regonizes you as the + familiar. The creature hears the message in its mind, regonizes you as the sender if it knows you, and can answer in a like manner immediately. The spell enables creatures with Intelligence scores of at least 1 to understand the meaning of your message. @@ -248,17 +248,17 @@ class Sending(Spell): class Sequester(Spell): """By means of this spell, a willing creature of an object can be hidden away, safe - from detection for the duration. + from detection for the duration. When you cast the spell and touch the target, it becomes invisible and can't be targeted by divination spells or perceived through scrying sensors created by the divination of spells. If the target is a - crreature, it falls into a state of suspended animation. Time ceases to flow + crreature, it falls into a state of suspended animation. Time ceases to flow for it, and it doesn't grow older. You can set a condition for the spell to end - early. The condition can be anything you choose, but it must occur or be + early. The condition can be anything you choose, but it must occur or be visible within 1 mile of the target. Examples include after 1,000 years or when the tarrasque awakes. This spells also ends if the target takes any damage. """ @@ -278,18 +278,18 @@ class ShadowBlade(Spell): """You weave together threads of shadow to create a sword of solidified gloom in your hand. This magic sword lasts until the spell ends. It counts as a simple melee weapon with which you are proficient. It deals 2d8 psychic damage on a hit - and has the finesse, light, and thrown properties (range 20/60). In addition, + and has the finesse, light, and thrown properties (range 20/60). In addition, when you use the sword to attack a target that is in dim light or darkness, you make the attack roll with advantage. If you drop the weapon or throw it, it dissipates at the end of the turn. Thereafter, while the spell persists, you can - use a bonus action to cause the sword to reappear in your hand. + use a bonus action to cause the sword to reappear in your hand. At Higher Levels: When you cast this spell using a 3rd- or 4th-level spell slot, the damage increases to 3d8. When you cast it using a 5th- or 6th-level spell slot, the damage increases to 4d8. When you cast it using a spell slot of 7th level or - higher, the damage increases to 5d8. + higher, the damage increases to 5d8. """ name = "Shadow Blade" level = 2 @@ -305,7 +305,7 @@ class ShadowBlade(Spell): class ShadowOfMoil(Spell): """Flame-like shadows wreathe your body until the spell ends, causing you to become - heavily obscured to others. The shadows turn dim light within 10 feet of you + heavily obscured to others. The shadows turn dim light within 10 feet of you into darkness, and bright light in the same area to dim light. Until the spell ends, you have resistance to radiant damage. In addition, whenever a creature @@ -326,12 +326,12 @@ class ShadowOfMoil(Spell): class ShapeWater(Spell): """You choose an area of water that you can see within range and that fits within a - 5-foot cube. + 5-foot cube. You manipulate it in one of the following ways: - You instantaneously move or otherwise change the flow of the water as you direct, up - to 5 feet in any direction. This movement doesn't have enough force to cause + to 5 feet in any direction. This movement doesn't have enough force to cause damage. - You cause the water to form into simple shapes and animate at your @@ -339,13 +339,13 @@ class ShapeWater(Spell): - You change the water's color or opacity. The water must be changed in the same way throughout. This change lasts - for 1 hour. + for 1 hour. - You freeze the water, provided that there are no crea- tures in it. The water unfreezes in 1 hour. If you cast this spell multiple times, you can have no more than two of its non-instantaneous effects active at a time, and - you can dismiss such an effect as an action. + you can dismiss such an effect as an action. """ name = "Shape Water" level = 0 @@ -376,30 +376,30 @@ class Shapechange(Spell): yours. You can't use any legendary actions or lair actions of the new form. You - assume the hit points and Hit Dice of the new form. When you revert to your + assume the hit points and Hit Dice of the new form. When you revert to your normal, you return to the number of hit points you had before you transformed. If you revert as a result of dropping to 0 hit points, any excess damage carries - over to your normal form. As long as the excess damage doesn't reduce your + over to your normal form. As long as the excess damage doesn't reduce your normal form to 0 hitpoints, you aren't knocked unconscious. You retain the benefit of any features from your class, race, or other source and can use them, - provided that your new form is physically capable of doing so. You can't use + provided that your new form is physically capable of doing so. You can't use any special senses you have (for example, darkvision) unless your new form also has that sense. You can only speak if the creature can normally speak. When you - transform, you choose whether your equipment falls to the ground, merges into + transform, you choose whether your equipment falls to the ground, merges into the new form, or is worn by it. Worn equipment functions as normal. The DM determines whether it is practical for the new form to wear a piece of equipment, based on the creature's shape and size. Your equipment doesn't change - shape or size to match the new form, and any equipment that the new form can't + shape or size to match the new form, and any equipment that the new form can't wear must either fall to the ground or merge into your new form. Equipment that merges has no effect in that state. During this spell's duration, you can use your action to assume a different form following the same restrictions and rules - for the original form, with one exception: if your new form has more hit pints + for the original form, with one exception: if your new form has more hit pints than your current one, your hit points remain at their current value. """ name = "Shapechange" @@ -415,19 +415,21 @@ class Shapechange(Spell): class Shatter(Spell): - """A sudden loud ringing noise, painfully intense, erupts from a point of your - choice within range. Each creature in a 10-foot-radius sphere centered on that - point must make a Constitution saving throw. A creature takes 3d8 thunder damage - on a failed save, or half as much damage on a successful one. A creature made - of inorganic material such as stone, crystal, or metal has disadvantage on this - saving throw. - + """A sudden loud ringing noise, painfully intense, erupts from a point + of your choice within range. Each creature in a 10-foot-radius + sphere centered on that point must make a Constitution saving + throw. A creature takes 3d8 thunder damage on a failed save, or + half as much damage on a successful one. A creature made of + inorganic material such as stone, crystal, or metal has + disadvantage on this saving throw. + A nonmagical object that isn't being worn or carried also takes the damage if it's in the spell's area. - - At Higher Levels: When you cast this - spell using a spell slot of 3rd level or higher, the damage increases by 1d8 for - each slot level above 2nd. + + **At Higher Levels:** When you cast this spell using a spell slot + of 3rd level or higher, the damage increases by 1d8 for each slot + level above 2nd. + """ name = "Shatter" level = 2 @@ -442,16 +444,15 @@ class Shatter(Spell): class Shield(Spell): - """Reaction trigger: You are hit by an attack or targeted by the magic missile - 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*. - 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 = "Special" + casting_time = "1 reaction, which you take when you are hit by an attack or targeted by the magic missile spell." casting_range = "Self" components = ('V', 'S') materials = """""" @@ -463,7 +464,7 @@ class Shield(Spell): class ShieldOfFaith(Spell): """A shimmering field appears and surrounds a creature of your choice within range, - granting it a +2 bonus to AC for the duration. + granting it a +2 bonus to AC for the duration. """ name = "Shield Of Faith" level = 1 @@ -482,7 +483,7 @@ class Shillelagh(Spell): power. For the duration, you can use your spellcasting ability instead of Strength for the attack and damage rolls of melee attacks using that weapon, and - the weapon's damage die becomes a d8. The weapon also becomes magical, if it + the weapon's damage die becomes a d8. The weapon also becomes magical, if it isn't already. The spell ends if you cast it again or if you let go of the weapon """ @@ -506,8 +507,8 @@ class ShockingGrasp(Spell): takes 1d8 lightning damage, and it can't take reactions until the start of its next turn. - At Higher Levels: The spell's damage increases by 1d8 when you reach - 5th level (2d8), 11th level (3d8), and 17th level (4d8). + **At Higher Levels:** 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 @@ -527,7 +528,7 @@ class SickeningRadiance(Spell): the spell ends. When a creature moves into the spell's area for the first time on a turn or starts its turn there, that creature must succeed on a Constitution - saving throw or take 4d10 radiant damage, and it suffers one level of + saving throw or take 4d10 radiant damage, and it suffers one level of exhaustion and emits a dim, greenish light in a 5-foot radius. This light makes it impossible for the creature to benefit from being invisible. The light and any levels of exhaustion caused by this spell go away when the spell ends. @@ -579,7 +580,7 @@ class SilentImage(Spell): reveals it to be an illusion, because things can pass through it. A creature that uses its action to examine the image can determine that it is an illusion with a successful Intelligence (Investigation) check against your spell save DC. - If a creature discerns the illusion for what it is, the creature can see + If a creature discerns the illusion for what it is, the creature can see through the image. """ name = "Silent Image" @@ -598,9 +599,9 @@ class Simulacrum(Spell): """You shape an illusory duplicate of one beast or humanoid that is within range for the entire casting time of the spell. The duplicate is a creature, partially - real and formed from ice or snow, and it can take actions and otherwise be + real and formed from ice or snow, and it can take actions and otherwise be affected as a normal creature. It appears to be the same as the original, but it - has half the creature's hit point maximum and is formed without any equipment. + has half the creature's hit point maximum and is formed without any equipment. Otherwise, the illusion uses all the statistics of the creature it duplicates. @@ -673,21 +674,21 @@ 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). + 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 + 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. + **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 @@ -736,17 +737,17 @@ class Slow(Spell): An affected target's speed is halved, it takes a -2 penalty to AC and Dexterity saving throws, and it can't use reactions. On its turn, it can use either an action or a bonus action, not both. Regardless of - the creature's abilities or magic items, it can't make more than one melee or + the creature's abilities or magic items, it can't make more than one melee or ranged attack during its turn. If the creature attempts to cast a spell with a casting time of 1 action, roll a d20. On an 11 or higher, the spell doesn't take - effect until the creature's next turn, and the creature must use its action on + effect until the creature's next turn, and the creature must use its action on that turn to complete the spell. If it can't, the spell is wasted. A creature affected by this spell makes another Wisdom saving throw at the end of its turn. - On a successful save, the effect ends for it. + On a successful save, the effect ends for it. """ name = "Slow" level = 3 @@ -762,7 +763,7 @@ class Slow(Spell): class Snare(Spell): """As you cast this spell, you use the rope to create a circle with a 5-foot radius - on the ground or the floor. When you finish casting, the rope disappears and + on the ground or the floor. When you finish casting, the rope disappears and the circle becomes a magic trap. This trap is nearly invisible, requiring a successful Intelligence (Investigation) check against your spell save DC to be @@ -774,11 +775,11 @@ class Snare(Spell): there until the spell ends. A restrained creature can make a Dexterity saving throw at the end of each of its turns, ending the effect on itself on a success. - Alternatively, the creature or someone else who can reach it can use an action + Alternatively, the creature or someone else who can reach it can use an action to make an Intelligence (Arcana) check against your spell save DC. On a success, - the restrained effect ends. + the restrained effect ends. After the trap is triggered, the spell ends when no - creature is restrained by it. + creature is restrained by it. """ name = "Snare" level = 1 @@ -829,16 +830,16 @@ class SoulCage(Spell): You can use a bonus action to drain vigor from the soul and regain 2d8 hit points. Query Soul. You ask the soul a question (no action required) and receive - a brief telepathic answer, which you can understand regardless of the language + a brief telepathic answer, which you can understand regardless of the language used. The soul knows only what it knew in life, but it must answer you truthfully and to the best of its ability. The answer is no more than a sentence - or two and might be cryptic. + or two and might be cryptic. Borrow Experience. You can use a bonus action to bolster yourself with the soul's life experience, making your next attack roll, ability check, or saving throw with advantage. If you don't use this benefit before the start of your next turn, it is lost. Eyes of the Dead. You can use an - action to name a place the humanoid saw in life, which creates an invisible + action to name a place the humanoid saw in life, which creates an invisible sensor somewhere in that place if it is on the plane of existence you're currently on. The sensor remains for as long as you concentrate, up to 10 minutes (as if you were concentrating on a spell). You receive visual and @@ -904,7 +905,7 @@ class SpeakWithDead(Spell): target of this spell within the last 10 days. Until the spell ends, you can ask - the corpse up to five questions. The corpse knows only what it knew in life, + the corpse up to five questions. The corpse knows only what it knew in life, including the languages it knew. Answers are usually brief, cryptic, or repetitive, and the corpse is under no compulsion to offer a truthful answer if you are hostile to it or it recognizes you as an enemy. This spell doesn't @@ -927,13 +928,13 @@ class SpeakWithDead(Spell): class SpeakWithPlants(Spell): """You imbue plants within 30 feet of you with limited sentience and animation, giving them the ability to communicate with you and follow your simple commands. - You can question plants about events in the spell's area within the past day, + You can question plants about events in the spell's area within the past day, gaining information about creatures that have passed, weather, and other circumstances. You can also turn difficult terrain caused by plant growth (such - as thickets and undergrowth) into ordinary terrain that lasts for the duration. - Or you can turn ordinary terrain where plants are present into difficult + as thickets and undergrowth) into ordinary terrain that lasts for the duration. + Or you can turn ordinary terrain where plants are present into difficult terrain that lasts for the duration, causing vines and branches to hinder pursuers, for example. @@ -1037,18 +1038,18 @@ class SpiritualWeapon(Spell): or until you cast this spell again. When you cast the spell, you can make a melee spell attack against a creature within 5 feet of the weapon. On a hit, the - target takes force damage equal to 1d8 + your spellcasting ability modifier. + target takes force damage equal to 1d8 + your spellcasting ability modifier. As a bonus action on your turn, you can move the weapon up to 20 feet and repeat - the attack against a creature within 5 feet of it. + the attack against a creature within 5 feet of it. The weapon can take whatever form you choose. Clerics of deities who are associated with a particular weapon (as St. Cuthbert is known for his mace and Thor for his hammer) make this spell's effect resemble that weapon. - At Higher Levels: When + **At Higher Levels:** When you cast this spell using a spell slot of 3rd level or higher, the damage increases by 1d8 for every two slot levels above the 2nd. """ @@ -1068,7 +1069,7 @@ class StaggeringSmite(Spell): """The next time you hit a creature with a melee weapon attack during this spell's duration, your weapon pierces both body and mind, and the attack deals an extra 4d6 psychic damage to the target. The target must make a Wisdom saving throw. On - a failed save, it has disadvantage on attack rolls and ability checks, and + a failed save, it has disadvantage on attack rolls and ability checks, and can't take reactions, until the end of its next turn. """ name = "Staggering Smite" @@ -1105,7 +1106,7 @@ class SteelWindStrike(Spell): class StinkingCloud(Spell): """You create a 20-foot-radius sphere of yellow, nauseating gas centered on a point - within range. The cloud spreads around corners, and its area is heavily + within range. The cloud spreads around corners, and its area is heavily obscured. The cloud lingers in the air for the duration. Each creature that is @@ -1132,10 +1133,10 @@ class StinkingCloud(Spell): class StoneShape(Spell): """You touch a stone object of Medium size or smaller or a section of stone no more - than 5 feet in any dimension and form it into any shape that suits your + than 5 feet in any dimension and form it into any shape that suits your purpose. So, for example, you could shape a large rock into a weapon, idol, or coffer, or make a small passage through a wall, as long as the wall is less than - 5 feet thick. You could also shape a stone door or its frame to seal the door + 5 feet thick. You could also shape a stone door or its frame to seal the door shut. The object you create can have up to two hinges and a latch, but finer mechanical detail isn't possible. """ @@ -1170,7 +1171,7 @@ class Stoneskin(Spell): class StormOfVengeance(Spell): """A churning storm cloud forms, centered on a point you can see and spreading to a - radius of 360 feet. Lightning flashes in the area, thunder booms, and strong + radius of 360 feet. Lightning flashes in the area, thunder booms, and strong winds roar. Each creature under the cloud (no more than 5,000 feet beneath the cloud) when it appears must make a Constitution saving throw. On a failed save, a creature takes 2d6 thunder damage and becomes deafened for 5 minutes. @@ -1192,14 +1193,14 @@ class StormOfVengeance(Spell): Round 4 Hailstones rain down from the cloud. Each creature under the cloud - takes 2d6 bludgeoning damage. + takes 2d6 bludgeoning damage. Round 5-10 Gusts and freezing rain assail the area under the cloud. the area becomes difficult terrain and is heavily obscured. Each creature there takes 1d6 cold damage. Ranged weapon attacks in the area are impossible. The wind and rain count as a severe distraction for the - purposes of maintaining concentration on spells. Finally, gusts of strong wind + purposes of maintaining concentration on spells. Finally, gusts of strong wind (ranging from 20 to 50 miles per hour) automatically disperse fog, mists, and similar phenomena in the area whether mundane or magical. """ @@ -1218,12 +1219,12 @@ class StormOfVengeance(Spell): class StormSphere(Spell): """A 20-foot-radius sphere of whirling air springs into existence centered on a point you choose within range. The sphere remains for the spell's duration. Each - creature in the sphere when it appears or that ends its turn there must succeed - on a Strength saving throw or take 2d6 bludgeoning damage. The sphere's space + creature in the sphere when it appears or that ends its turn there must succeed + on a Strength saving throw or take 2d6 bludgeoning damage. The sphere's space is difficult terrain. Until the spell ends, you can use a bonus action on each of your turns to cause a bolt of lightning to leap from the center of the sphere - toward one creature you choose within 60 feet of the center. Make a ranged + toward one creature you choose within 60 feet of the center. Make a ranged spell attack. You have advantage on the attack roll if the target is in the sphere. On a hit, the target takes 4d6 lightning damage. Creatures within 30 @@ -1261,8 +1262,8 @@ class Suggestion(Spell): do. You can also specify conditions that will trigger a special activity during - the duration. For example, you might suggest that a knight give her warhorse to - the first beggar she meets. If the condition isn't met before the spell + the duration. For example, you might suggest that a knight give her warhorse to + the first beggar she meets. If the condition isn't met before the spell expires, the activity isn't preformed. If you or any of your companions damage @@ -1298,7 +1299,7 @@ class SummonGreaterDemon(Spell): the duration, and the demon spends its turns pursuing and attacking the nearest non-demons to the best of its ability. If you stop concentrating on the spell before it reaches its full duration, an uncontrolled demon doesn't disappear for - 1d6 rounds if it still has hit points. + 1d6 rounds if it still has hit points. As part of casting the spell, you can form a circle on the ground with the blood used as a material component. The circle is large enough to encompass your space. While the spell lasts, the @@ -1306,7 +1307,7 @@ class SummonGreaterDemon(Spell): within it. Using the material component in this manner consumes it when the spell ends. - At Higher Levels: When you cast this spell using a spell slot of + **At Higher Levels:** When you cast this spell using a spell slot of 5th level or higher, the challenge rating increases by 1 for each slot level above 4th. """ @@ -1327,7 +1328,7 @@ class SummonLesserDemons(Spell): following table to determine what appears. d6 / Demons Summoned 1–2 / Two demons - of challenge rating 1 or lower + of challenge rating 1 or lower 3–4 / Four demons of challenge rating 1/2 or lower 5–6 / Eight demons of challenge rating 1/4 or lower @@ -1335,21 +1336,21 @@ class SummonLesserDemons(Spell): The DM chooses the demons, such as manes or dretches, and you choose the unoccupied spaces you can see within range where they appear. A summoned demon disappears when it drops to - 0 hit points or when the spell ends. + 0 hit points or when the spell ends. The demons are hostile to all creatures, including you. Roll initiative for the summoned demons as a group, which has its - own turns. The demons pursue and attack the nearest non-demons to the best of + own turns. The demons pursue and attack the nearest non-demons to the best of their ability. As part of casting the spell, you can form a circle on the ground - with the blood used as a material component. The circle is large enough to + with the blood used as a material component. The circle is large enough to encompass your space. While the spell lasts, the summoned demons can't cross the - circle or harm it, and they can't target anyone within it. Using the material + circle or harm it, and they can't target anyone within it. Using the material component in this manner consumes it when the spell ends. At Higher Levels: When you cast this spell using a spell slot of 6th or 7th level, you summon twice as many demons. If you cast it using a spell slot of 8th or 9th level, you - summon three times as many demons. + summon three times as many demons. """ name = "Summon Lesser Demons" level = 3 @@ -1396,12 +1397,12 @@ class Sunburst(Spell): """Brilliant sunlight flashes in a 60-foot radius centered on a point you choose within range. Each creature in that light must make a Constitution saving throw. - On a failed save, a creature takes 12d6 radiant damage and is blinded for 1 + On a failed save, a creature takes 12d6 radiant damage and is blinded for 1 minute. On a successful save, it takes half as much damage and isn't blinded by this spell. Undead and oozes have disadvantage on this saving throw. A creature - blinded by this spell makes another Constitution saving throw at the end of + blinded by this spell makes another Constitution saving throw at the end of each of its turns. On a successful save, it is no longer blinded. This spell @@ -1427,7 +1428,7 @@ class SwiftQuiver(Spell): of your turns until the spell ends, you can use a bonus action to make two attacks with a weapon that uses ammunition from the quiver. Each time you make such a ranged attack, your quiver magically replaces the piece of ammunition you - used with a similar piece of nonmagical ammunition. Any pieces of ammunition + used with a similar piece of nonmagical ammunition. Any pieces of ammunition created by this spell disintegrate when the spell ends. If the quiver leaves your possession, the spell ends. """ @@ -1449,7 +1450,7 @@ class SwordBurst(Spell): creature within range, other than you, must succeed on a Dexterity saving throw or take 1d6 force damage. - At Higher Levels: This spell's damage increases by + **At Higher Levels:** This spell's damage increases by 1d6 when you reach 5th level (2d6), 11th level (3d6), and 17th level (4d6). """ name = "Sword Burst" @@ -1466,7 +1467,7 @@ class SwordBurst(Spell): class Symbol(Spell): """When you cast this spell, you inscribe a harmful glyph either on a surface (such - as a section of floor, a wall, or a table) or within an object that can be + as a section of floor, a wall, or a table) or within an object that can be closed to conceal the glyph (such as a book, a scroll, or a treasure chest). If you choose a surface, the glyph can cover an area of the surface no larger than @@ -1487,7 +1488,7 @@ class Symbol(Spell): reading the glyph. You can further refine the trigger so the spell is activated - only under certain circumstances or according to a creature's physical + only under certain circumstances or according to a creature's physical characteristics (such as height or weight), or physical kind (for example, the ward could be set to affect hags or shapechangers). You can also specify creatures that don't trigger the glyph, such as those who say a certain @@ -1497,7 +1498,7 @@ class Symbol(Spell): effect. Once triggered, the glyph glows, filling a 60-foot-radius sphere with dim light for 10 minutes, after which time the spell ends. Each creature in the sphere when the glyph activates is targeted by its effect, as is a creature that - enters the sphere for the first time on a turn or ends its turn there. + enters the sphere for the first time on a turn or ends its turn there. Death @@ -1507,20 +1508,20 @@ class Symbol(Spell): Discord Each target must make a Constitution saving throw. On a failed save, a target bickers - and argues with other creatures for 1 minute. During this time, it is incapable - of meaningful communication and has disadvantage on attack rolls and ability + and argues with other creatures for 1 minute. During this time, it is incapable + of meaningful communication and has disadvantage on attack rolls and ability checks. Fear Each target must make a Wisdom saving throw and becomes frightened for 1 minute on a failed save. While frightened, the target drops whatever it is - holding and must move at least 20 feet away from the glyph on each of ist + holding and must move at least 20 feet away from the glyph on each of ist turns, if able. Hopelessness Each target must make a Charisma saving throw. On - a failed save, the target is overwhelmed with despair for 1 minute. During this - time, it can't attack or target any creature with harmful abilities, spells, or - other magical effects. + a failed save, the target is overwhelmed with despair for 1 minute. During this + time, it can't attack or target any creature with harmful abilities, spells, or + other magical effects. Insanity Each target must make an Intelligence saving @@ -1536,8 +1537,8 @@ class Symbol(Spell): Sleep Each target must make a Wisdom saving throw and falls unconscious for 10 minutes on a - failed save. A creature awakens if it takes damage or if someone uses an action - to shake or slap it awake. + failed save. A creature awakens if it takes damage or if someone uses an action + to shake or slap it awake. Stunning Each target must make a Wisdom saving @@ -1563,7 +1564,7 @@ class SynapticStatic(Spell): save, or half as much damage on a successful one. After a failed save, a target has muddled thoughts for 1 minute. During that time, it rolls a d6 and subtracts - the number rolled from all its attack rolls and ability checks, as well as its + the number rolled from all its attack rolls and ability checks, as well as its Constitution saving throws to maintain concentration. The target can make an Intelligence saving throw at the end of each of its turns, ending the effect on itself on a success. diff --git a/dungeonsheets/spells/spells_t.py b/dungeonsheets/spells/spells_t.py index 7c46d7f..cb03d3b 100644 --- a/dungeonsheets/spells/spells_t.py +++ b/dungeonsheets/spells/spells_t.py @@ -28,10 +28,10 @@ class TashasHideousLaughter(Spell): class Telekinesis(Spell): """You gain the ability to move or manipulate creatures or objects by thought. When - you cast the spell, and as your action each round for the duration, you can + you cast the spell, and as your action each round for the duration, you can exert your will on one creature or object that you can see within range, causing - the appropriate effect below. You can affect the same target round after round, - or choose a new one at any time. If you switch targets, the prior target is no + the appropriate effect below. You can affect the same target round after round, + or choose a new one at any time. If you switch targets, the prior target is no longer affected by the spell. Creature @@ -48,16 +48,16 @@ class Telekinesis(Spell): Object You can try to move an object that weighs up to 1,000 pounds. If the object isn't being worn - or carried, you automatically move it up to 30 feet in any direction, but not + or carried, you automatically move it up to 30 feet in any direction, but not beyond the range of this spell. If the object is worn or carried by a creature, you must make an ability check with your spellcasting ability contested by that creature's Strength check. If you succeed, you pull the object away from that creature and can move it up to 30 feet in any direction but not beyond the range - of this spell. + of this spell. You can exert fine control on objects with your telekinetic grip, such as manipulating a simple tool, opening a door or a container, stowing - or retrieving an item from an open container, or pouring the contents from a + or retrieving an item from an open container, or pouring the contents from a vial. """ name = "Telekinesis" @@ -76,7 +76,7 @@ class Telepathy(Spell): """You create a telepathic link between yourself and a willing creature with which you are familiar. The creature can be anywhere on the same plane of existence as - you. The spell ends if you or the target are no longer on the same plane. + you. The spell ends if you or the target are no longer on the same plane. Until the spell ends, you and the target can instantaneously share words, @@ -84,7 +84,7 @@ class Telepathy(Spell): and the target recognizes you as the creature it is communicating with. The spell enables a creature with an Intelligence score of at least 1 to understand the meaning of your words and take in the scope of any sensory messages you send - to it. + to it. """ name = "Telepathy" level = 8 @@ -101,8 +101,8 @@ class Telepathy(Spell): class Teleport(Spell): """This spell instantly transports you and up to eight willing creatures of your choice that you can see within range, or a single object that you can see within - range, to a destination you select. If you target an object, it must be able to - fit entirely inside a 10-foot cube, and it can't be held or carried by an + range, to a destination you select. If you target an object, it must be able to + fit entirely inside a 10-foot cube, and it can't be held or carried by an unwilling creature. The destination you choose must be known to you, and it @@ -110,65 +110,69 @@ class Teleport(Spell): destination determines whether you arrive there successfully. The DM rolls d100 and consults the table. - ================= ====== ============ ========== ========= - Familiarity Mishap Similar Area Off Target On Target - ================= ====== ============ ========== ========= - Permanent circle • • • 01-100 - Associated object • • • 01-100 - Very familiar 01–05 06–13 14–24 25–100 - Seen casually 01–33 34–43 44–53 54–100 - Viewed once 01–43 44–53 54–73 74–100 - Description 01–43 44–53 54–73 74–100 - False destination 01–50 51–100 • -- - ================= ====== ============ ========== ========= - + ================= ====== ============ ========== ========= + Familiarity Mishap Similar Area Off Target On Target + ================= ====== ============ ========== ========= + Permanent circle -- -- -- 01-100 + Associated object -- -- -- 01-100 + Very familiar 01–05 06–13 14–24 25–100 + Seen casually 01–33 34–43 44–53 54–100 + Viewed once 01–43 44–53 54–73 74–100 + Description 01–43 44–53 54–73 74–100 + False destination 01–50 51–100 -- -- + ================= ====== ============ ========== ========= + Familiarity. - "Permanent circle" means a permanent - teleportation circle whose sigil sequence you know. "Associated object" means - that you possess an object taken from the desired destination within the last - six months, such as a book from a wizard's library, bed linen from a royal - suite, or a chunk of marble from a lich's secret tomb. - "Very familiar" is a - place you have been very often, a place you have carefully studied, or a place - you can see when you cast the spell. "Seen casually" is someplace you have seen - more than once but with which you aren't very familiar. "Viewed once" is a place - you have seen once, possibly using magic. "Description" is a place whose - location and appearance you know through someone else's description, perhaps - from a map. - "False destination" is a place that doesn't exist. Perhaps you tried - to scry an enemy's sanctum but instead viewed an illusion, or you are - attempting to teleport to a familiar location that no longer exists. - + "Permanent circle" means a permanent teleportation circle whose + sigil sequence you know. "Associated object" means that you + possess an object taken from the desired destination within the + last six months, such as a book from a wizard's library, bed + linen from a royal suite, or a chunk of marble from a lich's + secret tomb. + + "Very familiar" is a place you have been very often, a place you + have carefully studied, or a place you can see when you cast the + spell. "Seen casually" is someplace you have seen more than once + but with which you aren't very familiar. "Viewed once" is a + place you have seen once, possibly using magic. "Description" is + a place whose location and appearance you know through someone + else's description, perhaps from a map. + + "False destination" is a place that doesn't exist. Perhaps you + tried to scry an enemy's sanctum but instead viewed an illusion, + or you are attempting to teleport to a familiar location that no + longer exists. On Target - - You and your group (or the target object) appear where you want to. - + You and your group (or the target object) appear where you want + to. Off Target - - You and your group (or the target object) appear a random distance away from the - destination in a random direction. Distance off target is 1d10 x 1d10 percent - of the distance that was to be traveled. For example, if you tried to travel 120 - miles, landed off target, and rolled a 5 and 3 on the two d10s, then you would - be off target by 15 percent, or 18 miles. The DM determines the direction off - target randomly by rolling a d8 and designating 1 as north, 2 as northeast, 3 as - east, and so on around the points of the compass. If you were teleporting to a - coastal city and wound up 18 miles out at sea, you could be in trouble. - - Similar - Area - You and your group (or the target object) wind up in a different area - that's visually or thematically similar to the target area. If you are heading - for your home laboratory, for example, you might wind up in another wizard's - laboratory or in an alchemical supply shop that has many of the same tools and - implements as your laboratory. Generally, you appear in the closest similar - place, but since the spell has no range limit, you could conceivably wind up - anywhere on the plane. - + You and your group (or the target object) appear a random + distance away from the destination in a random + direction. Distance off target is 1d10 x 1d10 percent of the + distance that was to be traveled. For example, if you tried to + travel 120 miles, landed off target, and rolled a 5 and 3 on the + two d10s, then you would be off target by 15 percent, or 18 + miles. The DM determines the direction off target randomly by + rolling a d8 and designating 1 as north, 2 as northeast, 3 as + east, and so on around the points of the compass. If you were + teleporting to a coastal city and wound up 18 miles out at sea, + you could be in trouble. + Similar Area + You and your group (or the target object) wind up in a different + area that's visually or thematically similar to the target + area. If you are heading for your home laboratory, for example, + you might wind up in another wizard's laboratory or in an + alchemical supply shop that has many of the same tools and + implements as your laboratory. Generally, you appear in the + closest similar place, but since the spell has no range limit, + you could conceivably wind up anywhere on the plane. Mishap - The spell's unpredictable magic results in a - difficult journey. Each teleporting creature (or the target object) takes 3d10 - force damage, and the DM rerolls on the table to see where you wind up (multiple - mishaps can occur, dealing damage each time). + The spell's unpredictable magic results in a difficult + journey. Each teleporting creature (or the target object) takes + 3d10 force damage, and the DM rerolls on the table to see where + you wind up (multiple mishaps can occur, dealing damage each + time). + """ name = "Teleport" level = 7 @@ -193,11 +197,11 @@ class TeleportationCircle(Spell): nearest unoccupied space if that space is occupied. Many major temples, guilds, - and other important places have permanent teleportation circles inscribed + and other important places have permanent teleportation circles inscribed somewhere within their confines. Each such circle includes a unique sigil sequence – a string of magical runes arranged in a particular pattern. When you first gain the ability to cast this spell, you learn the sigil sequences for two - destinations on the Material Plane, determined by the DM. You can learn + destinations on the Material Plane, determined by the DM. You can learn additional sigil sequences during your adventures. You can commit a new sigil sequence to memory after studying it for 1 minute. @@ -220,13 +224,13 @@ class TeleportationCircle(Spell): class TempleOfTheGods(Spell): """You cause a temple to shimmer into existence on ground you can see within range. - The temple must fit within an unoccupied cube of space, up to 120 feet on each + The temple must fit within an unoccupied cube of space, up to 120 feet on each side. The temple remains until the spell ends. It is dedicated to whatever god, pantheon, or philosophy is represented by the holy symbol used in the casting. You make all decisions about the temple's appearance. The interior is enclosed by a floor, walls, and a roof, with one door granting access to the interior and - as many windows as you wish. Only you and any creatures you designate when you + as many windows as you wish. Only you and any creatures you designate when you cast the spell can open or close the door. The temple's interior is an open space with an idol or altar at one end. You decide whether the temple is @@ -235,25 +239,25 @@ class TempleOfTheGods(Spell): The temple opposes types of creatures you choose when you cast this spell. Choose one or more of the following: celestials, elementals, fey, fiends, or undead. If - a creature of the chosen type attempts to enter the temple, that creature must + a creature of the chosen type attempts to enter the temple, that creature must make a Charisma saving throw. On a failed save, it can't enter the temple for 24 - hours. Even if the creature can enter the temple, the magic there hinders it; + hours. Even if the creature can enter the temple, the magic there hinders it; whenever it makes an attack roll, an ability check, or a saving throw inside the - temple, it must roll a d4 and subtract the number rolled from the d20 roll. + temple, it must roll a d4 and subtract the number rolled from the d20 roll. In addition, the sensors created by divination spells can't appear inside the temple, and creatures within can't be targeted by divination spells. Finally, whenever any creature in the temple regains hit points from a spell of 1st level - or higher, the creature regains additional hit points equal to your Wisdom + or higher, the creature regains additional hit points equal to your Wisdom modifier (minimum 1 hit point). The temple is made from opaque magical force that extends into the Ethereal Plane, thus blocking ethereal travel into the temple's interior. Nothing can physically pass through the temple's exterior. It - can't be dispelled by dispel magic, and antimagic field has no effect on it. A + can't be dispelled by dispel magic, and antimagic field has no effect on it. A disintegrate spell destroys the temple instantly. Casting this spell on the same - spot every day for a year makes this effect permanent. + spot every day for a year makes this effect permanent. """ name = "Temple Of The Gods" level = 7 @@ -299,14 +303,14 @@ class TensersFloatingDisk(Spell): class TensersTransformation(Spell): """You endow yourself with endurance and martial prowess fueled by magic. Until the - spell ends, you can't cast spells, and you gain the following benefits: + spell ends, you can't cast spells, and you gain the following benefits: - You gain 50 temporary hit points. If any of these remain when the spell ends, they are lost. - You have advantage on attack rolls that you make with simple and martial weapons. - When you hit a target with a weapon attack, that target takes - an extra 2d12 force + an extra 2d12 force damage. - You have proficiency with all armor, shields, simple weapons, and martial weapons. @@ -314,7 +318,7 @@ class TensersTransformation(Spell): Constitution saving throws. - You can attack twice, instead of once, when you take the Attack action on your turn. You ignore this benefit if you already have - a feature, like Extra Attack, that gives you extra attacks. + a feature, like Extra Attack, that gives you extra attacks. Immediately after the spell ends, you must succeed on a DC 15 Constitution saving throw or suffer @@ -333,26 +337,26 @@ class TensersTransformation(Spell): class Thaumaturgy(Spell): - """You manifest a minor wonder, a sign of supernatural power, within range. You - create one of the following magical effects within range: + """You manifest a minor wonder, a sign of supernatural power, within + range. You create one of the following magical effects within + range: + + - Your voice booms up to three times as loud as normal for 1 + minute. + - You cause flames to flicker, brighten, dim, or change color for + 1 minute. + - You cause harmless tremors in the ground for 1 minute. + - You create an instantaneous sound that originates from a point + of your choice within range, such as a rumble of thunder, the + cry of a raven, or ominous whispers. + - You instantaneously cause an unlocked door or window to fly open + or slam shut. + - You alter the appearance of your eyes for 1 minute. + + If you cast this spell multiple times, you can have up to three of + its 1-minute effects active at a time, and you can dismiss such an + effect as an action. - * Your voice booms up - to three times as loud as normal for 1 minute. - * You cause flames to flicker, - brighten, dim, or change color for 1 minute. - * You cause harmless tremors in the - ground for 1 minute. - * You create an instantaneous sound that originates from a - point of your choice within range, such as a rumble of thunder, the cry of a - raven, or ominous whispers. - * You instantaneously cause an unlocked door or - window to fly open or slam shut. - * You alter the appearance of your eyes for 1 - minute. - - If you cast this spell multiple times, you can have up to three of its - 1-minute effects active at a time, and you can dismiss such an effect as an - action. """ name = "Thaumaturgy" level = 0 @@ -373,7 +377,7 @@ class ThornWhip(Spell): creature is Large or smaller, you pull the creature up to 10 feet closer to you. - At Higher Levels: This spell's damage increases by 1d6 when you reach 5th + **At Higher Levels:** This spell's damage increases by 1d6 when you reach 5th level (2d6), 11th level (3d6), and 17th level (4d6). """ name = "Thorn Whip" @@ -395,14 +399,14 @@ class ThunderStep(Spell): taking 3d10 thunder damage on a failed save, or half as much damage on a successful one. The thunder can be heard from up to 300 feet away. You can bring - along objects as long as their weight doesn't exceed what you can carry. You + along objects as long as their weight doesn't exceed what you can carry. You can also teleport one willing creature of your size or smaller who is carrying gear up to its carrying capacity. The creature must be within 5 feet of you when - you cast this spell, and there must be an unoccupied space within 5 feet of + you cast this spell, and there must be an unoccupied space within 5 feet of your destination space for the creature to appear in; otherwise, the creature is - left behind. + left behind. - At Higher Levels: When you cast this spell using a spell slot of + **At Higher Levels:** When you cast this spell using a spell slot of 4th level or higher, the damage increases by 1d10 for each slot level above 3rd. """ name = "Thunder Step" @@ -443,7 +447,7 @@ class ThunderousSmite(Spell): your weapon rings with thunder that is audible within 300 feet of you, and the attack deals an extra 2d6 thunder damage to the target. Additionally, if the target is a creature, it must succeed on a Strength saving throw or be pushed 10 - feet away from you and knocked prone. + feet away from you and knocked prone. """ name = "Thunderous Smite" level = 1 @@ -469,7 +473,7 @@ class Thunderwave(Spell): automatically pushed 10 feet away from you by the spell's effect, and the spell emits a thunderous boom audible out to 300 feet. - At Higher Levels: When you + **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. """ @@ -488,7 +492,7 @@ class Thunderwave(Spell): class TidalWave(Spell): """You conjure up a wave of water that crashes down on an area within range. The area can be up to 30 feet long, up to 10 feet wide, and up to 10 feet tall. Each - creature in that area must make a Dexterity saving throw. On a failed save, a + creature in that area must make a Dexterity saving throw. On a failed save, a creature takes 4d8 bludgeoning damage and is knocked prone. On a successful save, a creature takes half as much damage and isn't knocked prone. The water then spreads out across the ground in all directions, extinguishing unprotected @@ -509,11 +513,11 @@ class TidalWave(Spell): class TimeStop(Spell): """You briefly stop the flow of time for everyone but yourself. No time passes for other creatures, while you take 1d4 + 1 turns in a row, during which you can use - actions and move as normal. + actions and move as normal. This spell ends if one of the actions you use during this period, or any effects that you create during this period, affects a - creature other than you or an object being worn or carried by someone other + creature other than you or an object being worn or carried by someone other than you. In addition, the spell ends if you move to a place more than 1,000 feet from the location where you cast it. """ @@ -531,7 +535,7 @@ class TimeStop(Spell): class TinyServant(Spell): """You touch one Tiny, nonmagical object that isn't attached to another object or a - surface and isn't being carried by another creature. The target animates and + surface and isn't being carried by another creature. The target animates and sprouts little arms and legs, becoming a creature under your control until the spell ends or the creature drops to 0 hit points. See the stat block for its statistics. @@ -570,7 +574,7 @@ class TollTheDead(Spell): hit points, it instead takes 1d12 necrotic damage. The spell's damage increases by one die when you reach 5th level (2d8 or 2d12), 11th level (3d8 or 3d12), and - 17th level (4d8 or 4d12). + 17th level (4d8 or 4d12). """ name = "Toll The Dead" level = 0 @@ -610,7 +614,7 @@ class TransmuteRock(Spell): The ground in the spell's area becomes muddy enough that creatures can sink into it. Each foot that a creature moves through the mud costs 4 feet of movement, and any creature - on the ground when you cast the spell must make a Strength saving throw. A + on the ground when you cast the spell must make a Strength saving throw. A creature must also make the saving throw when it moves into the area for the first time on a turn or ends its turn there. On a failed save, a creature sinks into the mud and is restrained, though it can use an action to end the @@ -618,9 +622,9 @@ class TransmuteRock(Spell): If you cast the spell on a ceiling, the mud falls. Any creature under the mud when it falls must make a Dexterity saving throw. A creature takes 4d8 bludgeoning damage on a - failed save, or half as much damage on a successful one. + failed save, or half as much damage on a successful one. Transmute Mud to Rock. - Nonmagical mud or quicksand in the area no more than 10 feet deep transforms + Nonmagical mud or quicksand in the area no more than 10 feet deep transforms into soft stone for the spell's duration. Any creature in the mud when it transforms must make a Dexterity saving throw. On a successful save, a creature is shunted safely to the surface in an unoccupied space. On a failed save, a @@ -644,7 +648,7 @@ class TransmuteRock(Spell): class TransportViaPlants(Spell): """This spell creates a magical link between a Large or larger inanimate plant within range and another plant, at any distance, on the same plane of existence. - You must have seen or touched the destination plant at least once before. For + You must have seen or touched the destination plant at least once before. For the duration, any creature can step into the target plant and exit from the destination plant by using 5 feet of movement. """ @@ -708,8 +712,8 @@ class TruePolymorph(Spell): the new form. It retains its alignment and personality. The target assumes the hit points of its new form, and when it reverts to its normal form, the creature - returns to the number of hit points it had before it transformed. If it reverts - as a result of dropping to 0 hit points, any excess damage carries over to its + returns to the number of hit points it had before it transformed. If it reverts + as a result of dropping to 0 hit points, any excess damage carries over to its normal form. As long as the excess damage doesn't reduce the creature's normal form to 0 hit points, it isn't knocked unconscious. The creature is limited in @@ -723,19 +727,19 @@ class TruePolymorph(Spell): Object into Creature You can turn an object into any kind of creature, as long as the creature's size is no larger than the object's size and - the creature's challenge rating is 9 or lower. The creature is friendly to you + the creature's challenge rating is 9 or lower. The creature is friendly to you and your companions. It acts on each of your turns. You decide what action it takes and how it moves. The DM has the creature's statistics and resolves all of - its actions and movement. + its actions and movement. If the spell becomes permanent, you no longer control - the creature. It might remain friendly to you, depending on how you have + the creature. It might remain friendly to you, depending on how you have treated it. Creature into Object If you turn a creature into an object, it transforms along with whatever it is wearing and carrying into that form. The creature's statistics become those of the object, and the creature has no memory - of time spent in this form, after the spell ends and it returns to its normal + of time spent in this form, after the spell ends and it returns to its normal form. This spell can't affect a target that has 0 hit points. @@ -758,7 +762,7 @@ class TrueResurrection(Spell): the creature is restored to life with all its hit points. This spell closes all - wounds, neutralizes any poison, cures all diseases, and lifts any curses + wounds, neutralizes any poison, cures all diseases, and lifts any curses affecting the creature when it died. The spell replaces damaged or missing organs or limbs. @@ -781,7 +785,7 @@ class TrueResurrection(Spell): class TrueSeeing(Spell): """This spell gives the willing creature you touch the ability to see things as they actually are. For the duration, the creature has truesight, notices secret - doors hidden by magic, and can see into the Ethereal Plane, all out to a range + doors hidden by magic, and can see into the Ethereal Plane, all out to a range of 120 feet. """ name = "True Seeing" @@ -800,7 +804,7 @@ 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. + hasn't ended. """ name = "True Strike" level = 0 @@ -825,7 +829,7 @@ class Tsunami(Spell): At the start of each of your turns after the wall appears, the wall, along with any creatures - in it, moves 50 feet away from you. Any Huge or smaller creature inside the + in it, moves 50 feet away from you. Any Huge or smaller creature inside the wall or whose space the wall enters when it moves must succeed on a Strength saving throw or take 5d10 bludgeoning damage. A creature can take this damage only once per round. At the end of the turn, the wall's height is reduced by 50 diff --git a/dungeonsheets/spells/spells_u.py b/dungeonsheets/spells/spells_u.py index 30b0116..b9cb4da 100644 --- a/dungeonsheets/spells/spells_u.py +++ b/dungeonsheets/spells/spells_u.py @@ -6,7 +6,7 @@ class UnseenServant(Spell): tasks at your command until the spell ends. The servant springs into existence in an unoccupied space on the ground within range. It has AC 10, 1 hit point, and a Strength of 2, and it can't attack. If it drops to 0 hit points, the spell - ends. + ends. Once on each of your turns as a bonus action, you can mentally command the servant to move up to 15 feet and inteact with an object. The servant can diff --git a/dungeonsheets/spells/spells_v.py b/dungeonsheets/spells/spells_v.py index 3553702..58e24ab 100644 --- a/dungeonsheets/spells/spells_v.py +++ b/dungeonsheets/spells/spells_v.py @@ -3,12 +3,12 @@ from dungeonsheets.spells.spells import Spell class VampiricTouch(Spell): """The touch of your shadow-wreathed hand can siphon force from others to heal your - wounds. Make a melee spell attack against a creature within your reach. On a + wounds. Make a melee spell attack against a creature within your reach. On a hit, the target takes 3d6 necrotic damage, and you regain hit points equal to half the amount of necrotic damage dealt. Until the spell ends, you can make the - attack again on each of your turns as an action. + attack again on each of your turns as an action. - At Higher Levels: When you + **At Higher Levels:** When you cast this spell using a spell slot of 4th level or higher, the damage increases by 1d6 for each slot level above 3rd. """ @@ -26,13 +26,13 @@ class VampiricTouch(Spell): class ViciousMockery(Spell): """You unleash a string of insults laced with subtle enchantments at a creature you - can see within range. + can see within range. If the target can hear you (thought it need not understand you), it must succeed on a Wisdom saving throw or take 1d4 psychic damage and have disadvantage on the next attack roll it makes before the end of its next turn. - At Higher Levels: This spell's damage increases by 1d4 when you + **At Higher Levels:** This spell's damage increases by 1d4 when you reach 5th level (2d4), 11th level (3d4), and 17th level (4d4). """ name = "Vicious Mockery" @@ -53,10 +53,10 @@ class VitriolicSphere(Spell): creature in that area must make a Dexterity saving throw. On a failed save, a creature takes 10d4 acid damage and another 5d4 acid damage at the end of its next turn. On a successful save, a creature takes half the initial damage and no - damage at the end of its next turn. + damage at the end of its next turn. - At Higher Levels: When you cast this spell - using a spell slot of 5th level or higher, the initial damage increases by 2d4 + **At Higher Levels:** When you cast this spell + using a spell slot of 5th level or higher, the initial damage increases by 2d4 for each slot level above 4th. """ name = "Vitriolic Sphere" diff --git a/dungeonsheets/spells/spells_w.py b/dungeonsheets/spells/spells_w.py index 2eb16c2..b859370 100644 --- a/dungeonsheets/spells/spells_w.py +++ b/dungeonsheets/spells/spells_w.py @@ -2,24 +2,25 @@ from dungeonsheets.spells.spells import Spell class WallOfFire(Spell): - """You create a wall of fire on a solid surface within range. You can make the wall - up to 60 feet long, 20 feet high, and 1 foot thick, or a ringed wall up to 20 - feet in diameter, 20 feet high, and 1 foot thick. The wall is opaque and lasts - for the duration. - - When the wall appears, each creature within its area must - make a Dexterity saving throw. On a failed save, a creature takes 5d8 fire - damage, or half as much damage on a successful save. - - One side of the wall, - selected by you when you cast this spell, deals 5d8 fire damage to each creature - that ends its turn within 10 feet of that side or inside the wall. A creature - takes the same damage when it enters the wall for the first time on a turn or + """You create a wall of fire on a solid surface within range. You can + make the wall up to 60 feet long, 20 feet high, and 1 foot thick, + or a ringed wall up to 20 feet in diameter, 20 feet high, and 1 + foot thick. The wall is opaque and lasts for the duration. + + When the wall appears, each creature within its area must make a + Dexterity saving throw. On a failed save, a creature takes 5d8 + fire damage, or half as much damage on a successful save. + + One side of the wall, selected by you when you cast this spell, + deals 5d8 fire damage to each creature that ends its turn within + 10 feet of that side or inside the wall. A creature takes the same + damage when it enters the wall for the first time on a turn or ends its turn there. The other side of the wall deals no damage. + + **At Higher Levels:** When you cast this spell using a spell slot + of 5th level or higher, the damage increases by 1d8 for each slot + level above 4th. - At Higher - Levels: When you cast this spell using a spell slot of 5th level or higher, the - damage increases by 1d8 for each slot level above 4th. """ name = "Wall Of Fire" level = 4 @@ -152,8 +153,8 @@ class WallOfSand(Spell): """You conjure up a wall of swirling sand on the ground at a point you can see within range. You can make the wall up to 30 feet long, 10 feet high, and 10 feet thick, and it vanishes when the spell ends. It blocks line of sight but not - movement. A creature is blinded while in the wall's space and must spend 3 feet - of movement for every 1 foot it moves there. + movement. A creature is blinded while in the wall's space and must spend 3 feet + of movement for every 1 foot it moves there. """ name = "Wall Of Sand" level = 3 @@ -218,11 +219,11 @@ class WallOfThorns(Spell): thorns. The wall appears within range on a solid surface and lasts for the duration. You choose to make the wall up to 60 feet long, 10 feet high, and 5 feet thick or a circle that has a 20-foot diameter and is up to 20 feet high and - 5 feet thick. The wall blocks line of sight. + 5 feet thick. The wall blocks line of sight. When the wall appears, each creature within its area must make a Dexterity saving throw. On a failed save, a - creature takes 7d8 piercing damage, or half as much damage on a successful + creature takes 7d8 piercing damage, or half as much damage on a successful save. A creature can move through the wall, albeit slowly and painfully. For @@ -314,12 +315,12 @@ class WardingWind(Spell): The wind has the following effects: - It deafens you and other creatures in its area. - It extinguishes unprotected flames in its area that are - torch-sized or smaller. + torch-sized or smaller. - The area is difficult terrain for creatures other than you. - The attack rolls of ranged weapon attacks have disadvantage if - they pass in or out of the wind. + they pass in or out of the wind. - It hedges out vapor, gas, and fog that can be dispersed by - strong wind. + strong wind. """ name = "Warding Wind" @@ -353,7 +354,7 @@ class WaterBreathing(Spell): class WaterWalk(Spell): """This spell grants the ability to move across any liquid surface – such as water, - acid, mud, snow, quicksand, or lava – as if it were harmless solid ground + acid, mud, snow, quicksand, or lava – as if it were harmless solid ground (creatures crossing molten lava can still take damage from the heat). Up to ten willing creatures you can see within range gain this ability for the duration. @@ -626,30 +627,26 @@ class Wish(Spell): """Wish is the mightiest spell a mortal creature can cast. By simply speaking aloud, you can alter the very foundations of reality in accord with your desires. - + The basic use of this spell is to duplicate any other spell of 8th level or lower. You don't need to meet any requirements in that spell, including costly components. The spell simply takes effect. Alternatively, you can create one of the following effects of your choice: - + - You create one object of up to 25,000 gp in value that isn't a magic item. The object can be no more than 300 feet in any dimension, and it appears in an unoccupied space you can see on the ground. - - You allow up to twenty creatures that you can see to regain all hit points, and you end all effects on them described in the greater restoration spell. - - You grant up to ten creatures that you can see resistance to a damage type you choose. - - You grant up to ten creatures you can see immunity to a single spell or other magical effect for 8 hours. For instance, you could make yourself and all your com panions immune to a lich's life drain attack. - - You undo a single recent event by forcing a reroll of any roll made within the last round (including your last turn). Reality reshapes itself to accommodate the new result. For example, a @@ -772,13 +769,13 @@ class WordOfRecall(Spell): class WrathOfNature(Spell): """You call out to the spirits of nature to rouse them against your enemies. Choose - a point you can see within range. The spirits cause trees, rocks, and grasses + a point you can see within range. The spirits cause trees, rocks, and grasses in a 60-foot cube centered on that point to become animated until the spell ends. Grasses and Undergrowth. Any area of ground in the cube that is covered by - grass or undergrowth is difficult terrain for your enemies. + grass or undergrowth is difficult terrain for your enemies. Trees. At the start - of each of your turns, each of your enemies within 10 feet of any tree in the + of each of your turns, each of your enemies within 10 feet of any tree in the cube must succeed on a Dexterity saving throw or take 4d6 slashing damage from whipping branches. Roots and Vines. At the end of each of your turns, one @@ -789,7 +786,7 @@ class WrathOfNature(Spell): Rocks. As a bonus action on your turn, you can cause a loose rock in the cube to launch at a creature you can see in the cube. Make a ranged spell attack against the target. - On a hit, the target takes 3d8 nonmagical bludgeoning damage, and it must + On a hit, the target takes 3d8 nonmagical bludgeoning damage, and it must succeed on a Strength saving throw or fall prone. """ name = "Wrath Of Nature" diff --git a/dungeonsheets/spells/spells_z.py b/dungeonsheets/spells/spells_z.py index 0248b46..b8c0f01 100644 --- a/dungeonsheets/spells/spells_z.py +++ b/dungeonsheets/spells/spells_z.py @@ -5,7 +5,7 @@ class ZephyrStrike(Spell): """You move like the wind. Until the spell ends, your movement doesn't provoke opportunity attacks. Once before the spell ends, you can give yourself advantage - on one weapon attack roll on your turn. That attack deals an extra 1d8 force + on one weapon attack roll on your turn. That attack deals an extra 1d8 force damage on a hit. Whether you hit or miss, your walking speed increases by 30 feet until the end of that turn. """ @@ -26,9 +26,9 @@ class ZoneOfTruth(Spell): sphere centered on a point of your choice within range. Until the spell ends, a creature that enters the spell's area for the first time on a turn or starts its - turn there must make a Charisma saving throw. On a failed save, a creature + turn there must make a Charisma saving throw. On a failed save, a creature can't speak a deliberate lie while in the radius. You know whether each creature - succeeds or fails on its saving throw. + succeeds or fails on its saving throw. An affected creature is aware of the spell and can thus avoid answering questions to which it would normally respond