mirror of
https://github.com/Threnklyn/dungeon-sheets.git
synced 2026-05-19 04:33:26 +02:00
@@ -82,7 +82,7 @@ class App(npyscreen.NPSAppManaged):
|
||||
# STARTING_FORM = 'SKILLS'
|
||||
character = None
|
||||
n_classes = 1
|
||||
|
||||
|
||||
def save_character(self):
|
||||
# Save the file
|
||||
filename = self.getForm("SAVE").filename.value
|
||||
@@ -129,7 +129,7 @@ class App(npyscreen.NPSAppManaged):
|
||||
hp_max += np.random.randint(low=1, high=hd.faces+1) + const
|
||||
abil.hp_max.value = str(hp_max)
|
||||
abil.display()
|
||||
|
||||
|
||||
def set_default_hp_max(self):
|
||||
abil = self.getForm("ABILITIES")
|
||||
# Update max HP based on the class
|
||||
@@ -147,7 +147,7 @@ class App(npyscreen.NPSAppManaged):
|
||||
log.debug("Updating max hp: %d", hp_max)
|
||||
abil.hp_max.value = str(hp_max)
|
||||
abil.display()
|
||||
|
||||
|
||||
def onStart(self):
|
||||
self.character = character.Character()
|
||||
self.character.class_list = []
|
||||
@@ -188,7 +188,7 @@ class BasicInfoForm(LinkedListForm):
|
||||
npyscreen.TitleText, name="Character Name:", use_two_lines=False)
|
||||
self.player_name = self.add(
|
||||
npyscreen.TitleText, name="Player Name:", use_two_lines=False)
|
||||
|
||||
|
||||
def on_ok(self):
|
||||
# Update the default filename
|
||||
name = self.name.value or "New Character"
|
||||
@@ -201,16 +201,16 @@ class BasicInfoForm(LinkedListForm):
|
||||
self.parentApp.character.name = self.name.value
|
||||
self.parentApp.character.player_name = self.player_name.value
|
||||
super().to_next()
|
||||
|
||||
|
||||
def on_cancel(self):
|
||||
raise KeyboardInterrupt
|
||||
|
||||
|
||||
|
||||
class RaceForm(LinkedListForm):
|
||||
def create(self):
|
||||
self.race = self.add(
|
||||
npyscreen.TitleSelectOne, name="Race:", values=tuple(races.keys()))
|
||||
|
||||
|
||||
def on_ok(self):
|
||||
if len(self.race.get_selected_objects()) >= 1:
|
||||
selected_race = self.race.get_selected_objects()[0]
|
||||
@@ -221,7 +221,7 @@ class RaceForm(LinkedListForm):
|
||||
|
||||
def on_cancel(self):
|
||||
super().to_prev()
|
||||
|
||||
|
||||
|
||||
class CharacterClassForm(LinkedListForm):
|
||||
class_num = 1
|
||||
@@ -256,7 +256,7 @@ class CharacterClassForm(LinkedListForm):
|
||||
self.class_options.remove(c.name)
|
||||
self.character_class.values = sorted(tuple(self.class_options))
|
||||
self.character_class.update()
|
||||
|
||||
|
||||
def create(self):
|
||||
if self.class_num > 1:
|
||||
self.add(npyscreen.FixedText, editable=False,
|
||||
@@ -298,7 +298,7 @@ class CharacterClassForm(LinkedListForm):
|
||||
formid=new_name)
|
||||
self.add_next(new_name)
|
||||
return new_form
|
||||
|
||||
|
||||
def on_ok(self):
|
||||
if len(self.character_class.get_selected_objects()) >= 1:
|
||||
selected_class = self.character_class.get_selected_objects()[0]
|
||||
@@ -329,7 +329,7 @@ class CharacterClassForm(LinkedListForm):
|
||||
f = self.parentApp.getForm(self.next_page)
|
||||
f.prune()
|
||||
super().to_next()
|
||||
|
||||
|
||||
def on_cancel(self):
|
||||
super().to_prev()
|
||||
|
||||
@@ -344,12 +344,12 @@ class SubclassForm(LinkedListForm):
|
||||
self.subclass_options = ('None',)
|
||||
self.level = level
|
||||
super().__init__(**kwargs)
|
||||
|
||||
|
||||
def create(self):
|
||||
self.subclass = self.add(
|
||||
npyscreen.TitleSelectOne, name="Subclass:",
|
||||
values=tuple(self.subclass_options))
|
||||
|
||||
|
||||
def on_ok(self):
|
||||
if len(self.subclass.get_selected_objects()) >= 1:
|
||||
sc = self.subclass.get_selected_objects()[0]
|
||||
@@ -360,7 +360,7 @@ class SubclassForm(LinkedListForm):
|
||||
level=self.level,
|
||||
subclass=sc)
|
||||
super().to_next()
|
||||
|
||||
|
||||
def on_cancel(self):
|
||||
super().to_prev()
|
||||
|
||||
@@ -370,7 +370,7 @@ class BackgroundForm(LinkedListForm):
|
||||
self.background = self.add(
|
||||
npyscreen.TitleSelectOne,
|
||||
name="Background:", values=tuple(backgrounds.keys()))
|
||||
|
||||
|
||||
def on_ok(self):
|
||||
if len(self.background.get_selected_objects()) >= 1:
|
||||
selected_bg = self.background.get_selected_objects()[0]
|
||||
@@ -382,7 +382,7 @@ class BackgroundForm(LinkedListForm):
|
||||
self.parentApp.character.languages = ', '.join(languages)
|
||||
log.debug("Selected character background: %s", Background.name)
|
||||
super().to_next()
|
||||
|
||||
|
||||
def on_cancel(self):
|
||||
super().to_prev()
|
||||
|
||||
@@ -396,7 +396,7 @@ class AlignmentForm(LinkedListForm):
|
||||
def create(self):
|
||||
self.alignment = self.add(
|
||||
npyscreen.TitleSelectOne, name="Alignment:", values=self.alignments)
|
||||
|
||||
|
||||
def on_ok(self):
|
||||
if len(self.alignment.get_selected_objects()) >= 1:
|
||||
selected_alignment = self.alignment.get_selected_objects()[0] # values[self.alignment.value]
|
||||
@@ -405,7 +405,7 @@ class AlignmentForm(LinkedListForm):
|
||||
# prep additions to abilities page
|
||||
self.parentApp.getForm('ABILITIES').prep()
|
||||
super().to_next()
|
||||
|
||||
|
||||
def on_cancel(self):
|
||||
super().to_prev()
|
||||
|
||||
@@ -414,7 +414,7 @@ class AbilityScoreForm(LinkedListForm):
|
||||
num_rolls = 0
|
||||
|
||||
def roll_dice(self):
|
||||
"""Get six ability scores that can then be assigned to abilities."""
|
||||
"""Get six ability scores that can then be assigned to abilities."""
|
||||
def roll_score():
|
||||
# Roll 4 dice and add the 3 highest
|
||||
rolls = (randint(1, 6) for i in range(4))
|
||||
@@ -447,7 +447,7 @@ class AbilityScoreForm(LinkedListForm):
|
||||
def reroll_hp(self, widget=None):
|
||||
self.parentApp.reroll_max_hp()
|
||||
self.parentApp.update_max_hp_roll()
|
||||
|
||||
|
||||
def create(self):
|
||||
self.roll_text = self.add(npyscreen.FixedText, editable=False,
|
||||
value="Take the six rolls below and assign each one to an ability.")
|
||||
@@ -508,7 +508,7 @@ class AbilityScoreForm(LinkedListForm):
|
||||
# Update the "character" with new values
|
||||
setattr(self.parentApp.character, attr, val)
|
||||
super().to_next()
|
||||
|
||||
|
||||
def on_cancel(self):
|
||||
super().to_prev()
|
||||
|
||||
@@ -528,7 +528,7 @@ class SkillForm(LinkedListForm):
|
||||
choices = set([c for c in choices if c.lower() not in static_skills])
|
||||
self.skill_proficiencies.set_values(sorted(tuple(choices)))
|
||||
self.update_remaining()
|
||||
|
||||
|
||||
def update_remaining(self, widget=None):
|
||||
num_choices = (self.parentApp.character.primary_class.num_skill_choices +
|
||||
self.parentApp.character.race.num_skill_choices +
|
||||
@@ -538,7 +538,7 @@ class SkillForm(LinkedListForm):
|
||||
log.debug(f'Remaining: {remaining}')
|
||||
self.remaining.value = str(remaining)
|
||||
self.display()
|
||||
|
||||
|
||||
def create(self):
|
||||
self.bg_skills = self.add(
|
||||
npyscreen.TitleText, name="Background:",
|
||||
@@ -553,7 +553,7 @@ class SkillForm(LinkedListForm):
|
||||
npyscreen.TitleMultiSelect, name="Skill Proficiencies:",
|
||||
values=(),
|
||||
value_changed_callback=self.update_remaining)
|
||||
|
||||
|
||||
def on_ok(self):
|
||||
new_skills = self.skill_proficiencies.get_selected_objects()
|
||||
if new_skills is not None:
|
||||
@@ -567,7 +567,7 @@ class SkillForm(LinkedListForm):
|
||||
self.parentApp.getForm('WEAPONS').update_options()
|
||||
log.debug(f"Skill proficiencies: {all_skills}")
|
||||
super().to_next()
|
||||
|
||||
|
||||
def on_cancel(self):
|
||||
super().to_prev()
|
||||
|
||||
@@ -584,7 +584,7 @@ class WeaponForm(LinkedListForm):
|
||||
npyscreen.TitleMultiSelect, name="Weapons:",
|
||||
values=tuple([wpn.name for wpn in all_weapons]),
|
||||
value_changed_callback=self.update_remaining)
|
||||
|
||||
|
||||
def on_ok(self):
|
||||
new_weapons = self.weapons.get_selected_objects()
|
||||
if new_weapons is not None:
|
||||
@@ -595,7 +595,7 @@ class WeaponForm(LinkedListForm):
|
||||
self.parentApp.character.wield_weapon(wpn)
|
||||
log.debug(f"Weapons wielded: {new_weapons}")
|
||||
super().to_next()
|
||||
|
||||
|
||||
def update_remaining(self, widget=None):
|
||||
num_choices = 3
|
||||
num_selected = len(self.weapons.value)
|
||||
@@ -603,7 +603,7 @@ class WeaponForm(LinkedListForm):
|
||||
log.debug(f'Remaining: {remaining}')
|
||||
self.remaining.value = str(remaining)
|
||||
self.display()
|
||||
|
||||
|
||||
def update_options(self):
|
||||
available_weapons = []
|
||||
for wpn in all_weapons:
|
||||
@@ -612,7 +612,7 @@ class WeaponForm(LinkedListForm):
|
||||
self.weapons.values = available_weapons
|
||||
self.parentApp.getForm('ARMOR').update_options()
|
||||
self.display()
|
||||
|
||||
|
||||
def on_cancel(self):
|
||||
super().to_prev()
|
||||
|
||||
@@ -627,15 +627,15 @@ class ArmorForm(LinkedListForm):
|
||||
self.armor = self.add(
|
||||
npyscreen.TitleSelectOne, name="Armor:",
|
||||
values=tuple([a.name for a in ([armor.NoArmor] + armor.all_armors)]))
|
||||
|
||||
|
||||
def on_ok(self):
|
||||
my_armor = self.armor.get_selected_objects()[0]
|
||||
if my_armor.lower() is not "no armor":
|
||||
if my_armor.lower() != "no armor":
|
||||
self.parentApp.character.wear_armor(my_armor)
|
||||
if self.shield.value:
|
||||
self.parentApp.character.wield_shield('shield')
|
||||
super().to_next()
|
||||
|
||||
|
||||
def update_options(self):
|
||||
available_armors = [armor.NoArmor]
|
||||
proficiencies = self.parentApp.character.proficiencies_text.lower()
|
||||
@@ -647,7 +647,7 @@ class ArmorForm(LinkedListForm):
|
||||
available_armors.extend(armor.heavy_armors)
|
||||
self.armor.values = [a.name for a in available_armors]
|
||||
self.display()
|
||||
|
||||
|
||||
def on_cancel(self):
|
||||
super().to_prev()
|
||||
|
||||
@@ -688,7 +688,7 @@ class PersonalityForm(LinkedListForm):
|
||||
value="Describe any other notable features or abilities.")
|
||||
self.features = self.add(
|
||||
npyscreen.TitleText, name='Features: ', begin_entry_at=24)
|
||||
|
||||
|
||||
def on_ok(self):
|
||||
if self.personality_traits.value:
|
||||
self.parentApp.character.personality_traits = self.personality_traits.value
|
||||
@@ -701,7 +701,7 @@ class PersonalityForm(LinkedListForm):
|
||||
if self.features.value:
|
||||
self.parentApp.character.features_and_traits = self.features.value
|
||||
super().to_next()
|
||||
|
||||
|
||||
def on_cancel(self):
|
||||
super().to_prev()
|
||||
|
||||
@@ -720,14 +720,14 @@ class SaveForm(LinkedListForm):
|
||||
|
||||
def on_ok(self):
|
||||
super().to_next()
|
||||
|
||||
|
||||
def on_cancel(self):
|
||||
super().to_prev()
|
||||
|
||||
|
||||
def main():
|
||||
my_app = App()
|
||||
|
||||
|
||||
try:
|
||||
my_app.run()
|
||||
except KeyboardInterrupt:
|
||||
|
||||
@@ -711,3 +711,54 @@ class CallToTheWave(Feature):
|
||||
"""
|
||||
name = "Call to the Wave"
|
||||
source = "Race (Water Genasi)"
|
||||
|
||||
# RFTLW Races
|
||||
|
||||
class DualMind(Feature):
|
||||
"""
|
||||
You have advantage on all Wisdom saving throws.
|
||||
|
||||
"""
|
||||
name = "Dual Mind"
|
||||
source = "Race (Kalashtar)"
|
||||
|
||||
class MentalDiscipline(Feature):
|
||||
"""
|
||||
You have resistance to psychic damage.
|
||||
|
||||
"""
|
||||
name = "Mental Discipline"
|
||||
source = "Race (Kalashtar)"
|
||||
|
||||
class MindLink(Feature):
|
||||
"""
|
||||
You can speak telepathically to any creature you can see, provided
|
||||
the creature is within a number of feet of you equal to 10 times your
|
||||
level. You don’t need to share a language with the creature for it to
|
||||
understand your telepathic utterances, but the creature must be able
|
||||
to understand at least one language.
|
||||
|
||||
When you’re using this trait to speak telepathically to a creature,
|
||||
you can use your action to give that creature the ability to speak
|
||||
telepathically with you for 1 hour or until you end this effect as
|
||||
an action. To use this ability, the creature must be able to see
|
||||
you and must be within this trait’s range. You can give this
|
||||
ability to only one creature at a time; giving it to a creature
|
||||
takes it away from another creature who has it.
|
||||
|
||||
"""
|
||||
name = "Mind Link"
|
||||
source = "Race (Kalashtar)"
|
||||
|
||||
class SeveredFromDreams(Feature):
|
||||
"""
|
||||
Kalashtar sleep, but they don't connect to the plane of dreams as
|
||||
other creatures do. Instead, their minds draw from the memories of
|
||||
the otherworldly spirit while they sleep. As such, you are immune
|
||||
to spells and other magical effects that require you to dream,
|
||||
like 'dream', but not to spells and other magical effects that put
|
||||
you to sleep, like 'sleep'.
|
||||
|
||||
"""
|
||||
name = "Severed from Dreams"
|
||||
source = "Race (Kalashtar)"
|
||||
|
||||
@@ -7,7 +7,7 @@ INFILE = '/home/mwolf/Documents/dungeons_and_dragons/spells.json'
|
||||
data = json.load(open(INFILE, mode='r'))
|
||||
|
||||
components_re = re.compile('([VSM])?[, ]*([VSM])?[, ]*([VSM])?[, ]*'
|
||||
'(?:\(([-a-zA-Z ,.0-9;'-()]+)\))?')
|
||||
'(?:\(([-a-zA-Z ,.0-9;\'-()]+)\))?')
|
||||
|
||||
def parse_components(string):
|
||||
result = components_re.match(string)
|
||||
|
||||
+14
-2
@@ -418,6 +418,16 @@ class WaterGenasi(_Genasi):
|
||||
features = (feats.AcidResistance, feats.Amphibious,
|
||||
feats.CallToTheWave)
|
||||
|
||||
# Eberron Races
|
||||
class Kalashtar(Race):
|
||||
name = "Kalashtar"
|
||||
wisdom_bonus = 2
|
||||
charisma_bonus = 1
|
||||
size = 'medium'
|
||||
speed = 30
|
||||
languages = ("Common", "Quori",) # Not sure how to have a "+1 language of your choice" - naviabbot
|
||||
features = (feats.DualMind, feats.MentalDiscipline, feats.MindLink, feats.SeveredFromDreams)
|
||||
|
||||
|
||||
PHB_races = [HillDwarf, MountainDwarf, HighElf, WoodElf, DarkElf,
|
||||
LightfootHalfling, StoutHalfling, Rashemi, Dragonborn,
|
||||
@@ -429,7 +439,9 @@ VOLO_races = [ProtectorAasimar, ScourgeAasimar, FallenAasimar,
|
||||
EE_races = [Aarakocra, DeepGnome, AirGenasi, FireGenasi, EarthGenasi,
|
||||
WaterGenasi]
|
||||
|
||||
available_races = PHB_races + VOLO_races + EE_races
|
||||
RFTLW_races = [Kalashtar]
|
||||
|
||||
available_races = PHB_races + VOLO_races + EE_races + RFTLW_races
|
||||
|
||||
__all__ = tuple([r.name for r in available_races]) + (
|
||||
'available_races', 'PHB_races', 'VOLO_races', 'EE_races')
|
||||
'available_races', 'PHB_races', 'VOLO_races', 'EE_races, RFTLW_races')
|
||||
|
||||
@@ -49,6 +49,29 @@ class AbsorbElements(Spell):
|
||||
classes = ('Druid', 'Ranger', 'Wizard', 'Sorcerer')
|
||||
|
||||
|
||||
class AcidArrow(Spell):
|
||||
"""A shimmering green arrow streaks toward a target within range and
|
||||
bursts in a spray of acid. Make a ranged spell attack against the
|
||||
target. On a hit, the target takes 4d4 acid damage immediately and
|
||||
2d4 acid damage at the end of its next turn. On a miss, the arrow
|
||||
splashes the target with acid for half as much of the initial
|
||||
damage and no damage at the end of its next turn.
|
||||
|
||||
At Higher Levels. When you cast this spell using a spell slot of
|
||||
3rd level or higher, the damage (both initial and later) increases
|
||||
by 1d4 for each slot level above 2nd.
|
||||
|
||||
"""
|
||||
level = 2
|
||||
name = "Acid Arrow"
|
||||
casting_time = "1 action"
|
||||
casting_range = "90 ft"
|
||||
components = ("V", "S", "M")
|
||||
duration = "instantaneous"
|
||||
magic_school = "Evocation"
|
||||
classes = ('Wizard',)
|
||||
|
||||
|
||||
class AcidSplash(Spell):
|
||||
"""You hurl a bubble of acid.
|
||||
Choose one creature within range, or choose two
|
||||
|
||||
@@ -116,13 +116,16 @@ 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.
|
||||
"""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.
|
||||
|
||||
"""
|
||||
name = "Beast Bond"
|
||||
level = 1
|
||||
@@ -137,9 +140,11 @@ class BeastBond(Spell):
|
||||
|
||||
|
||||
class BeastSense(Spell):
|
||||
"""You touch a willing beast. For the duration of the spell, you can use your
|
||||
action to see through the beast's eyes and hear what it hears, and continue to
|
||||
do so until you use your action to return to your normal senses.
|
||||
"""You touch a willing beast. For the duration of the spell, you can
|
||||
use your action to see through the beast's eyes and hear what it
|
||||
hears, and continue to do so until you use your action to return
|
||||
to your normal senses.
|
||||
|
||||
"""
|
||||
name = "Beast Sense"
|
||||
level = 2
|
||||
@@ -195,56 +200,59 @@ class BestowCurse(Spell):
|
||||
|
||||
|
||||
class BigbysHand(Spell):
|
||||
"""You create a Large hand of shimmering, translucent force in an unoccupied space
|
||||
that you can see within range. The hand lasts for the spell's duration, and it
|
||||
moves at your command, mimicking the movements of your own hand.
|
||||
"""You create a Large hand of shimmering, translucent force in an
|
||||
unoccupied space that you can see within range. The hand lasts for
|
||||
the spell's duration, and it moves at your command, mimicking the
|
||||
movements of your own hand.
|
||||
|
||||
The hand is
|
||||
an object that has AC 20 and hit points equal to your hit point maximum. If it
|
||||
drops to 0 hit points, the spell ends. It has a Strength of 26 (+8) and a
|
||||
Dexterity of 10 (+0). The hand doesn't fill its space.
|
||||
The hand is an object that has AC 20 and hit points equal to your
|
||||
hit point maximum. If it drops to 0 hit points, the spell ends. It
|
||||
has a Strength of 26 (+8) and a Dexterity of 10 (+0). The hand
|
||||
doesn't fill its space.
|
||||
|
||||
When you cast the spell
|
||||
and as a bonus action on your subsequent turns, you can move the hand up to 60
|
||||
feet and then cause one of the following effects with it.
|
||||
When you cast the spell and as a bonus action on your subsequent
|
||||
turns, you can move the hand up to 60 feet and then cause one of
|
||||
the following effects with it.
|
||||
|
||||
Clenched Fist
|
||||
The
|
||||
hand strikes one creature or object within 5 feet of it. Make a melee spell
|
||||
attack for the hand using your game statistics. On a hit, the target takes 4d8
|
||||
force damage.
|
||||
**Clenched Fist**
|
||||
The hand strikes one creature or object within 5 feet of it. Make
|
||||
a melee spell attack for the hand using your game statistics. On a
|
||||
hit, the target takes 4d8 force damage.
|
||||
|
||||
Forceful Hand
|
||||
The hand attempts to push a creature within 5 feet
|
||||
of it in a direction you choose. Make a check with the hand's Strength
|
||||
contested by the Strength (Athletics) check of the target. If the target is
|
||||
Medium or smaller, you have advantage on the check. If you succeed, the hand
|
||||
pushes the target up to 5 feet plus a number of feet equal to five times your
|
||||
spellcasting ability modifier. The hand moves with the target to remain within 5
|
||||
feet of it.
|
||||
**Forceful Hand**
|
||||
The hand attempts to push a creature within 5 feet of it in a
|
||||
direction you choose. Make a check with the hand's Strength
|
||||
contested by the Strength (Athletics) check of the target. If the
|
||||
target is Medium or smaller, you have advantage on the check. If
|
||||
you succeed, the hand pushes the target up to 5 feet plus a number
|
||||
of feet equal to five times your spellcasting ability
|
||||
modifier. The hand moves with the target to remain within 5 feet
|
||||
of it.
|
||||
|
||||
Grasping Hand
|
||||
The hand attempts to grapple a Huge or smaller
|
||||
creature within 5 feet of it. You use the hand's Strength score to resolve the
|
||||
grapple. If the target is Medium or smaller, you have advantage on the check.
|
||||
While the hand is grappling the target, you can use a bonus action to have the
|
||||
hand crush it. When you do so, the target takes bludgeoning damage equal to 2d6
|
||||
+ your spellcasting ability modifier.
|
||||
**Grasping Hand**
|
||||
The hand attempts to grapple a Huge or smaller creature within 5
|
||||
feet of it. You use the hand's Strength score to resolve the
|
||||
grapple. If the target is Medium or smaller, you have advantage on
|
||||
the check. While the hand is grappling the target, you can use a
|
||||
bonus action to have the hand crush it. When you do so, the target
|
||||
takes bludgeoning damage equal to 2d6 + your spellcasting ability
|
||||
modifier.
|
||||
|
||||
Interposing Hand
|
||||
The hand interposes
|
||||
itself between you and a creature you choose until you give the hand a different
|
||||
command. The hand moves to stay between you and the target, providing you with
|
||||
half cover against the target. The target can't move through the hand's space if
|
||||
its Strength score is less than or equal to the hand's Strength score. If its
|
||||
Strength score is higher than the hand's Strength score, the target can move
|
||||
toward you through the hand's space, but that space is difficult terrain for the
|
||||
target.
|
||||
**Interposing Hand**
|
||||
The hand interposes itself between you and a creature you choose
|
||||
until you give the hand a different command. The hand moves to
|
||||
stay between you and the target, providing you with half cover
|
||||
against the target. The target can't move through the hand's space
|
||||
if its Strength score is less than or equal to the hand's Strength
|
||||
score. If its Strength score is higher than the hand's Strength
|
||||
score, the target can move toward you through the hand's space,
|
||||
but that space is difficult terrain for the target.
|
||||
|
||||
**At Higher Levels:** When you cast this spell using a spell slot
|
||||
of 6th level or higher, the damage from the clenched fist option
|
||||
increases by 2d8 and the damage from the grasping hand increases
|
||||
by 2d6 for each slot level above 5th.
|
||||
|
||||
At Higher Levels: When you cast this spell using a spell slot of 6th
|
||||
level or higher, the damage from the clenched fist option increases by 2d8 and
|
||||
the damage from the grasping hand increases by 2d6 for each slot level above
|
||||
5th.
|
||||
"""
|
||||
name = "Bigbys Hand"
|
||||
level = 5
|
||||
@@ -352,14 +360,16 @@ class Blight(Spell):
|
||||
|
||||
|
||||
class BlindingSmite(Spell):
|
||||
"""The next time you hit a creature with a melee weapon attack during this spell's
|
||||
duration, you weapon flares with a bright light, and the attack deals an extra
|
||||
3d8 radiant damage to the target. Additionally, the target must succeed on a
|
||||
Constitution saving throw or be blinded until the spell ends.
|
||||
"""The next time you hit a creature with a melee weapon attack during
|
||||
this spell's duration, you weapon flares with a bright light, and
|
||||
the attack deals an extra 3d8 radiant damage to the
|
||||
target. Additionally, the target must succeed on a Constitution
|
||||
saving throw or be blinded until the spell ends.
|
||||
|
||||
A creature 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.
|
||||
|
||||
A creature
|
||||
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.
|
||||
"""
|
||||
name = "Blinding Smite"
|
||||
level = 3
|
||||
@@ -373,22 +383,23 @@ class BlindingSmite(Spell):
|
||||
classes = ('Paladin',)
|
||||
|
||||
|
||||
class Blindnessdeafness(Spell):
|
||||
"""You can blind or deafen a foe. Choose one creature that you can see within range
|
||||
to make a Constitution saving throw. If it fails, the target is either blinded
|
||||
or deafened (your choice) for the duration. At the end of each of its turns, the
|
||||
target can make a Constitution saving throw. On a success, the spell ends.
|
||||
class BlindnessDeafness(Spell):
|
||||
"""You can blind or deafen a foe. Choose one creature that you can see
|
||||
within range to make a Constitution saving throw. If it fails, the
|
||||
target is either blinded or deafened (your choice) for the
|
||||
duration. At the end of each of its turns, the target can make a
|
||||
Constitution saving throw. On a success, the spell ends.
|
||||
|
||||
At Higher Levels: When you cast this spell using a spell slot of
|
||||
3rd level or higher, you can target one additional creature for
|
||||
each slot level above 2nd.
|
||||
|
||||
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 = "Blindnessdeafness"
|
||||
name = "Blindness/Deafness"
|
||||
level = 2
|
||||
casting_time = "1 action"
|
||||
casting_range = "30 feet"
|
||||
components = ('V',)
|
||||
materials = """"""
|
||||
duration = "1 minute"
|
||||
ritual = False
|
||||
magic_school = "Necromancy"
|
||||
@@ -445,33 +456,39 @@ class Blur(Spell):
|
||||
|
||||
|
||||
class BonesOfTheEarth(Spell):
|
||||
"""You cause up to six pillars of stone to burst from places on the ground that you
|
||||
can see within range. Each pillar is a cylinder that has a diameter of 5 feet
|
||||
and a height of up to 30 feet. The ground where a pillar appears must be wide
|
||||
enough for its diameter, and you can target ground under a creature if that
|
||||
creature is Medium or smaller. Each pillar has AC 5 and 30 hit points. When
|
||||
reduced to 0 hit points, a pillar crumbles into rubble, which creates an area of
|
||||
difficult terrain with a 10-foot radius. The rubble lasts until cleared.
|
||||
If a
|
||||
pillar is created under a creature, that creature must succeed on a Dexterity
|
||||
saving throw or be lifted by the pillar. A creature can choose to fail the save.
|
||||
"""You cause up to six pillars of stone to burst from places on the
|
||||
ground that you can see within range. Each pillar is a cylinder
|
||||
that has a diameter of 5 feet and a height of up to 30 feet. The
|
||||
ground where a pillar appears must be wide enough for its
|
||||
diameter, and you can target ground under a creature if that
|
||||
creature is Medium or smaller. Each pillar has AC 5 and 30 hit
|
||||
points. When reduced to 0 hit points, a pillar crumbles into
|
||||
rubble, which creates an area of difficult terrain with a 10-foot
|
||||
radius. The rubble lasts until cleared.
|
||||
|
||||
If a pillar is prevented from reaching its full height because of a ceiling or
|
||||
other obstacle, a creature on the pillar takes 6d6 bludgeoning damage and is
|
||||
restrained, pinched between the pillar and the obstacle. The restrained creature
|
||||
can use an action to make a Strength or Dexterity check (the creature's choice)
|
||||
against the spell's saving throw DC. On a success, the creature is no longer
|
||||
restrained and must either move off the pillar or fall off it.
|
||||
At Higher Levels.
|
||||
When you cast this spell using a spell slot of 7th level or higher, you can
|
||||
create two additional pillars for each slot level above 6th.
|
||||
If a pillar is created under a creature, that creature must
|
||||
succeed on a Dexterity saving throw or be lifted by the pillar. A
|
||||
creature can choose to fail the save.
|
||||
|
||||
If a pillar is prevented from reaching its full height because of
|
||||
a ceiling or other obstacle, a creature on the pillar takes 6d6
|
||||
bludgeoning damage and is restrained, pinched between the pillar
|
||||
and the obstacle. The restrained creature can use an action to
|
||||
make a Strength or Dexterity check (the creature's choice) against
|
||||
the spell's saving throw DC. On a success, the creature is no
|
||||
longer restrained and must either move off the pillar or fall off
|
||||
it.
|
||||
|
||||
**At Higher Levels.** When you cast this spell using a spell slot
|
||||
of 7th level or higher, you can create two additional pillars for
|
||||
each slot level above 6th.
|
||||
|
||||
"""
|
||||
name = "Bones Of The Earth"
|
||||
level = 6
|
||||
casting_time = "1 action"
|
||||
casting_range = "120 feet"
|
||||
components = ('V', 'S')
|
||||
materials = """"""
|
||||
duration = "Instantaneous"
|
||||
ritual = False
|
||||
magic_school = "Transmutation"
|
||||
@@ -551,5 +568,3 @@ class BurningHands(Spell):
|
||||
ritual = False
|
||||
magic_school = "Evocation"
|
||||
classes = ('Sorcerer', 'Wizard')
|
||||
|
||||
|
||||
|
||||
+228
-212
@@ -203,10 +203,12 @@ class ChainLightning(Spell):
|
||||
|
||||
|
||||
class ChaosBolt(Spell):
|
||||
"""You hurl an undulating, warbling mass of chaotic energy at one creature in
|
||||
range. Make a ranged spell attack against the target. On a hit, the target takes
|
||||
2d8 + 1d6 damage. Choose one of the dSs. The number rolled on that die
|
||||
determines the attacks damage type, as shown below.
|
||||
"""You hurl an undulating, warbling mass of chaotic energy at one
|
||||
creature in range. Make a ranged spell attack against the
|
||||
target. On a hit, the target takes 2d8 + 1d6 damage. Choose one of
|
||||
the dSs. The number rolled on that die determines the attacks
|
||||
damage type, as shown below.
|
||||
|
||||
d8 / Damage Type
|
||||
1 / Acid
|
||||
2
|
||||
@@ -217,16 +219,18 @@ class ChaosBolt(Spell):
|
||||
6 / Poison
|
||||
7 / Psychic
|
||||
8 / Thunder
|
||||
If
|
||||
you roll the same number on both d8s, the chaotic energy leaps from the target
|
||||
to a different creature of your choice within 30 feet of it. Make a new attack
|
||||
roll against the new target, and make a new damage roll, which could cause the
|
||||
chaotic energy to 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 2nd level or higher, each target takes 1d6 extra damage of the type
|
||||
rolled for each slot level above 1st.
|
||||
If you roll the same number on both d8s, the chaotic energy leaps
|
||||
from the target to a different creature of your choice within 30
|
||||
feet of it. Make a new attack roll against the new target, and
|
||||
make a new damage roll, which could cause the chaotic energy to
|
||||
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
|
||||
2nd level or higher, each target takes 1d6 extra damage of the
|
||||
type rolled for each slot level above 1st.
|
||||
|
||||
"""
|
||||
name = "Chaos Bolt"
|
||||
level = 1
|
||||
@@ -241,17 +245,19 @@ class ChaosBolt(Spell):
|
||||
|
||||
|
||||
class CharmMonster(Spell):
|
||||
"""You attempt to charm a creature you can see within range. It must make a Wisdom
|
||||
saving throw, and it does so with advantage if you or your companions are
|
||||
fighting it. If it fails the saving throw, it is charmed by you until the spell
|
||||
ends or until you or your companions do anything harmful to it. The charmed
|
||||
creature is friendly to you. When the spell ends, the creature knows it was
|
||||
"""You attempt to charm a creature you can see within range. It must
|
||||
make a Wisdom saving throw, and it does so with advantage if you
|
||||
or your companions are fighting it. If it fails the saving throw,
|
||||
it is charmed by you until the spell ends or until you or your
|
||||
companions do anything harmful to it. The charmed creature is
|
||||
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 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.
|
||||
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.
|
||||
|
||||
"""
|
||||
name = "Charm Monster"
|
||||
level = 4
|
||||
@@ -266,18 +272,19 @@ class CharmMonster(Spell):
|
||||
|
||||
|
||||
class CharmPerson(Spell):
|
||||
"""You attempt to charm a humanoid you can see within range.
|
||||
It must make a Wisdom
|
||||
saving throw, and does so with advantage if you or your companions are fighting
|
||||
it. If it fails the saving throw, it is charmed by you until the spell ends or
|
||||
until you or your companions do anything harmful to it.The charmed creature
|
||||
regards you as a friendly acquaintance. When the spell ends, the creature knows
|
||||
it was charmed by you.
|
||||
"""You attempt to charm a humanoid you can see within range. It must
|
||||
make a Wisdom saving throw, and does so with advantage if you or
|
||||
your companions are fighting it. If it fails the saving throw, it
|
||||
is charmed by you until the spell ends or until you or your
|
||||
companions do anything harmful to it.The charmed creature regards
|
||||
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
|
||||
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.
|
||||
|
||||
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.
|
||||
"""
|
||||
name = "Charm Person"
|
||||
level = 1
|
||||
@@ -523,31 +530,38 @@ class ColorSpray(Spell):
|
||||
|
||||
|
||||
class Command(Spell):
|
||||
"""You speak a one-word command to a creature you can see within range.
|
||||
The target
|
||||
must succeed on a Wisdom saving throw or follow 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.
|
||||
"""You speak a one-word command to a creature you can see within
|
||||
range. The target must succeed on a Wisdom saving throw or follow
|
||||
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.
|
||||
|
||||
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.
|
||||
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.
|
||||
|
||||
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
|
||||
**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
|
||||
|
||||
"""
|
||||
name = "Command"
|
||||
level = 1
|
||||
@@ -590,16 +604,15 @@ class Commune(Spell):
|
||||
|
||||
|
||||
class CommuneWithNature(Spell):
|
||||
"""You briefly become one with nature and gain knowledge of the surrounding
|
||||
territory.
|
||||
In the outdoors, the spell gives you knowledge of the land within 3
|
||||
miles of you. In caves and other natural underground settings, the radius is
|
||||
limited to 300 feet. The spell doesn't function where nature has been replaced
|
||||
by construction, such as in dungeons and towns.
|
||||
"""You briefly become one with nature and gain knowledge of the
|
||||
surrounding territory. In the outdoors, the spell gives you
|
||||
knowledge of the land within 3 miles of you. In caves and other
|
||||
natural underground settings, the radius is limited to 300
|
||||
feet. The spell doesn't function where nature has been replaced by
|
||||
construction, such as in dungeons and towns.
|
||||
|
||||
You instantly gain knowledge
|
||||
of up to three facts of your choice about any of the following subjects as they
|
||||
relate to the area:
|
||||
You instantly gain knowledge of up to three facts of your choice
|
||||
about any of the following subjects as they relate to the area:
|
||||
|
||||
- terrain and bodies of water
|
||||
- prevalent plants,
|
||||
@@ -609,10 +622,10 @@ class CommuneWithNature(Spell):
|
||||
- influence from other planes of existence
|
||||
- buildings
|
||||
|
||||
For
|
||||
example, you could determine the location of powerful undead in the area, the
|
||||
location of major sources of safe drinking water, and the location of any nearby
|
||||
towns.
|
||||
For example, you could determine the location of powerful undead
|
||||
in the area, the location of major sources of safe drinking water,
|
||||
and the location of any nearby towns.
|
||||
|
||||
"""
|
||||
name = "Commune With Nature"
|
||||
level = 5
|
||||
@@ -775,39 +788,36 @@ class Confusion(Spell):
|
||||
|
||||
|
||||
class ConjureAnimals(Spell):
|
||||
"""You summon fey spirits that take the form of beasts and appear in unoccupied
|
||||
spaces that you can see within range.
|
||||
"""You summon fey spirits that take the form of beasts and appear in
|
||||
unoccupied spaces that you can see within range.
|
||||
|
||||
Choose one of the following options for
|
||||
what appears:
|
||||
Choose one of the following options for what appears:
|
||||
|
||||
- One beast of challenge rating 2 or lower
|
||||
- Two beasts of
|
||||
challenge rating 1 or lower
|
||||
- Four beasts of challenge rating 1/2 or lower
|
||||
-
|
||||
Eight beasts of challenge rating 1/4 or lower
|
||||
- One beast of challenge rating 2 or lower
|
||||
- Two beasts of challenge rating 1 or lower
|
||||
- Four beasts of challenge rating 1/2 or lower
|
||||
- Eight beasts of challenge rating 1/4 or lower
|
||||
|
||||
Each beast is also considered
|
||||
fey, and it disappears when it drops to 0 hit points or when the spell ends.
|
||||
Each beast is also considered fey, and it disappears when it drops
|
||||
to 0 hit points or when the spell ends.
|
||||
|
||||
|
||||
The summoned creatures are friendly to you and your companions. Roll initiative
|
||||
for the summoned creatures as a group, which has its own turns. They obey any
|
||||
verbal commands that you issue to them (no action required by you). If you don't
|
||||
issue any commands to them, they defend themselves from hostile creatures, but
|
||||
otherwise take no actions.
|
||||
The DM has the creatures' statistics.
|
||||
The summoned creatures are friendly to you and your
|
||||
companions. Roll initiative for the summoned creatures as a group,
|
||||
which has its own turns. They obey any verbal commands that you
|
||||
issue to them (no action required by you). If you don't issue any
|
||||
commands to them, they defend themselves from hostile creatures,
|
||||
but otherwise take no actions. The DM has the creatures'
|
||||
statistics.
|
||||
|
||||
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:
|
||||
**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 5th-level slot
|
||||
- three times as many with a 7th-level slot
|
||||
- four times as many with a 9th-level slot.
|
||||
|
||||
twice
|
||||
as many with a 5th-level slot
|
||||
three times as many with a 7th-level slot
|
||||
four
|
||||
times as many with a 9th-level slot.
|
||||
"""
|
||||
name = "Conjure Animals"
|
||||
level = 3
|
||||
@@ -1139,25 +1149,26 @@ class Contagion(Spell):
|
||||
|
||||
|
||||
class Contingency(Spell):
|
||||
"""Choose a spell of 5th level or lower that you can cast, that has a casting time
|
||||
of 1 action, and that can target you.
|
||||
You cast that spell called the
|
||||
contingent spell as part of casting contingency, expending spell slots for
|
||||
both, but the contingent spell doesn't come into effect. Instead, it takes
|
||||
effect when a certain circumstance occurs. You describe that circumstance when
|
||||
you cast the two spells. For example, a contingency cast with water breathing
|
||||
might stipulate that water breathing comes into effect when you are engulfed in
|
||||
water or a similar liquid.
|
||||
"""Choose a spell of 5th level or lower that you can cast, that has a
|
||||
casting time of 1 action, and that can target you. You cast that
|
||||
spell called "the contingent spell" as part of casting
|
||||
contingency, expending spell slots for both, but the contingent
|
||||
spell doesn't come into effect. Instead, it takes effect when a
|
||||
certain circumstance occurs. You describe that circumstance when
|
||||
you cast the two spells. For example, a contingency cast with
|
||||
water breathing might stipulate that water breathing comes into
|
||||
effect when you are engulfed in water or a similar liquid.
|
||||
|
||||
The contingent spell takes effect immediately after
|
||||
the circumstance is met for the first time, whether or not you want it to. and
|
||||
then contingency ends.
|
||||
The contingent spell takes effect immediately after the
|
||||
circumstance is met for the first time, whether or not you want
|
||||
it to. and then contingency ends.
|
||||
|
||||
The contingent spell takes effect only on you, even if it can
|
||||
normally target others. You can use only one contingency spell at
|
||||
a time. If you cast this spell again, the effect of another
|
||||
contingency spell on you ends. Also, contingency ends on you if
|
||||
its material component is ever not on your person.
|
||||
|
||||
The contingent spell takes effect only on you, even if
|
||||
it can normally target others. You can use only one contingency spell at a time.
|
||||
If you cast this spell again, the effect of another contingency spell on you
|
||||
ends. Also, contingency ends on you if its material component is ever not on
|
||||
your person.
|
||||
"""
|
||||
name = "Contingency"
|
||||
level = 6
|
||||
@@ -1172,11 +1183,11 @@ class Contingency(Spell):
|
||||
|
||||
|
||||
class ContinualFlame(Spell):
|
||||
"""A flame, equivalent in brightness to a torch, springs forth from an object that
|
||||
you touch.
|
||||
The effect looks like a regular flame, but it creates no heat and
|
||||
doesn't use oxygen. A continual flame can be covered or hidden but not smothered
|
||||
or quenched.
|
||||
"""A flame, equivalent in brightness to a torch, springs forth from an
|
||||
object that you touch. The effect looks like a regular flame, but
|
||||
it creates no heat and doesn't use oxygen. A continual flame can
|
||||
be covered or hidden but not smothered or quenched.
|
||||
|
||||
"""
|
||||
name = "Continual Flame"
|
||||
level = 2
|
||||
@@ -1193,19 +1204,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:
|
||||
- You
|
||||
instantaneously expand the flame 5 feet in one direction, 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.
|
||||
|
||||
- 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
|
||||
- You instantaneously expand the flame 5 feet in one direction,
|
||||
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.
|
||||
- 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
|
||||
|
||||
"""
|
||||
name = "Control Flames"
|
||||
level = 0
|
||||
@@ -1246,7 +1257,7 @@ class ControlWater(Spell):
|
||||
water then slowly fills in the trench over the course of the next round until
|
||||
the normal water level is restored.
|
||||
|
||||
Redirect Flow
|
||||
Redirect Flow
|
||||
You cause flowing water in
|
||||
the area to move in a direction you choose, even if the water has to flow over
|
||||
obstacles, up walls, or in other unlikely directions. The water in the area
|
||||
@@ -1287,48 +1298,45 @@ class ControlWater(Spell):
|
||||
|
||||
|
||||
class ControlWeather(Spell):
|
||||
"""You take control of the weather within 5 miles of you for the duration.
|
||||
You
|
||||
must be outdoors to cast this spell. Moving to a place where you don't have a
|
||||
clear path to the sky ends the spell early.
|
||||
"""You take control of the weather within 5 miles of you for the
|
||||
duration.
|
||||
|
||||
When you cast the spell, you
|
||||
change the current weather conditions, which are determined by the DM based on
|
||||
the climate and season. You can change precipitation, temperature, and wind. It
|
||||
takes 1d4 x 10 minutes for the new conditions to take effect. Once they do so,
|
||||
you can change the conditions again. When the spell ends, the weather gradually
|
||||
returns to normal.
|
||||
You must be outdoors to cast this spell. Moving to a place where
|
||||
you don't have a clear path to the sky ends the spell early.
|
||||
|
||||
When you change the weather conditions, find a current
|
||||
condition on the following tables and change its stage by one, up or down. When
|
||||
changing the wind, you can change its direction.
|
||||
When you cast the spell, you change the current weather
|
||||
conditions, which are determined by the DM based on the climate
|
||||
and season. You can change precipitation, temperature, and
|
||||
wind. It takes 1d4 x 10 minutes for the new conditions to take
|
||||
effect. Once they do so, you can change the conditions again. When
|
||||
the spell ends, the weather gradually returns to normal.
|
||||
|
||||
Precipitation
|
||||
Stage 1 –
|
||||
Clear,
|
||||
When you change the weather conditions, find a current condition
|
||||
on the following tables and change its stage by one, up or
|
||||
down. When changing the wind, you can change its direction.
|
||||
|
||||
**Precipitation**
|
||||
Stage 1 – Clear,
|
||||
Stage 2 – Light clouds,
|
||||
Stage 3 – Overcast or ground fog,
|
||||
Stage 4 –
|
||||
Rain, hail or snow,
|
||||
Stage 4 – Rain, hail or snow,
|
||||
Stage 5 – Torrential rain, driving hail or blizzard
|
||||
|
||||
|
||||
Temperature
|
||||
**Temperature**
|
||||
Stage 1 – Unbearable heat,
|
||||
Stage 2 – Hot,
|
||||
Stage 3 – Warm,
|
||||
Stage
|
||||
4 – Cool,
|
||||
Stage 4 – Cool,
|
||||
Stage 5 – Cold,
|
||||
Stage 6 – Arctic cold
|
||||
|
||||
Wind
|
||||
**Wind**
|
||||
Stage 1 – Calm,
|
||||
Stage
|
||||
2 – Moderate wind,
|
||||
Stage 2 – Moderate wind,
|
||||
Stage 3 – Strong wind,
|
||||
Stage 4 – Gale,
|
||||
Stage 5 – Storm
|
||||
|
||||
"""
|
||||
name = "Control Weather"
|
||||
level = 8
|
||||
@@ -1343,32 +1351,35 @@ class ControlWeather(Spell):
|
||||
|
||||
|
||||
class ControlWinds(Spell):
|
||||
"""You take control of the air in a 100-foot cube that you can see within range.
|
||||
Choose one of the following effects when you cast the spell. The effect lasts
|
||||
for the spell's duration, unless you use your action on a later turn to switch
|
||||
to a different effect. You can also use your action to temporarily halt the
|
||||
effect or to restart one you've halted.
|
||||
Gusts. A wind picks up within the cube,
|
||||
continually blowing in a horizontal direction that you choose. You choose the
|
||||
intensity of the wind: calm, moderate, or strong. If the wind is moderate or
|
||||
strong, ranged weapon attacks that pass through it or that are made against
|
||||
targets within the cube have disadvantage on their attack rolls. If the wind is
|
||||
strong, any creature moving against the wind must spend 1 extra foot of movement
|
||||
for each foot moved.
|
||||
"""You take control of the air in a 100-foot cube that you can see
|
||||
within range. Choose one of the following effects when you cast
|
||||
the spell. The effect lasts for the spell's duration, unless you
|
||||
use your action on a later turn to switch to a different
|
||||
effect. You can also use your action to temporarily halt the
|
||||
effect or to restart one you've halted.
|
||||
|
||||
Downdraft. You cause a sustained blast of strong wind to
|
||||
blow downward from the top of the cube. Ranged weapon attacks that pass through
|
||||
the cube
|
||||
or that are made against targets within it have disadvantage on their
|
||||
attack rolls. A creature must make a Strength saving throw if it flies into the
|
||||
cube for the first time on a turn or starts its turn there flying. On a failed
|
||||
save, the creature is knocked prone.
|
||||
Gusts. A wind picks up within the cube, continually blowing in a
|
||||
horizontal direction that you choose. You choose the intensity of
|
||||
the wind: calm, moderate, or strong. If the wind is moderate or
|
||||
strong, ranged weapon attacks that pass through it or that are
|
||||
made against targets within the cube have disadvantage on their
|
||||
attack rolls. If the wind is strong, any creature moving against
|
||||
the wind must spend 1 extra foot of movement for each foot moved.
|
||||
|
||||
Updraft. You cause a sustained updraft
|
||||
within the cube, rising upward from the cube's bottom edge. Creatures that end a
|
||||
fall within the cube take only half damage from the fall. When a creature in
|
||||
the cube makes a vertical jump, the creature can jump up to 10 feet higher than
|
||||
normal.
|
||||
Downdraft. You cause a sustained blast of strong wind to blow
|
||||
downward from the top of the cube. Ranged weapon attacks that pass
|
||||
through the cube or that are made against targets within it have
|
||||
disadvantage on their attack rolls. A creature must make a
|
||||
Strength saving throw if it flies into the cube for the first time
|
||||
on a turn or starts its turn there flying. On a failed save, the
|
||||
creature is knocked prone.
|
||||
|
||||
Updraft. You cause a sustained updraft within the cube, rising
|
||||
upward from the cube's bottom edge. Creatures that end a fall
|
||||
within the cube take only half damage from the fall. When a
|
||||
creature in the cube makes a vertical jump, the creature can jump
|
||||
up to 10 feet higher than normal.
|
||||
|
||||
"""
|
||||
name = "Control Winds"
|
||||
level = 5
|
||||
@@ -1440,16 +1451,17 @@ class Counterspell(Spell):
|
||||
|
||||
|
||||
class CreateBonfire(Spell):
|
||||
"""You create a bonfire on ground that you can see within range. Until the spell
|
||||
ends, the magic bonfire fills a 5-foot cube. Any creature in the bonfire's space
|
||||
when you cast the spell must succeed on a Dexterity saving throw or take 1d8
|
||||
fire damage. A creature must also make the saving throw when it moves into the
|
||||
bonfire's space for the first time on a turn or ends its turn there.
|
||||
The bonfire
|
||||
ignites flammable objects in its area that aren't being worn or carried.
|
||||
The
|
||||
spell's damage increases by 1d8 when you reach 5th level (2d8), 11th level
|
||||
(3d8), and 17th level (4d8).
|
||||
"""You create a bonfire on ground that you can see within range. Until
|
||||
the spell ends, the magic bonfire fills a 5-foot cube. Any
|
||||
creature in the bonfire's space when you cast the spell must
|
||||
succeed on a Dexterity saving throw or take 1d8 fire damage. A
|
||||
creature must also make the saving throw when it moves into the
|
||||
bonfire's space for the first time on a turn or ends its turn
|
||||
there. The bonfire ignites flammable objects in its area that
|
||||
aren't being worn or carried. The spell's damage increases by 1d8
|
||||
when you reach 5th level (2d8), 11th level (3d8), and 17th level
|
||||
(4d8).
|
||||
|
||||
"""
|
||||
name = "Create Bonfire"
|
||||
level = 0
|
||||
@@ -1596,20 +1608,20 @@ class Creation(Spell):
|
||||
materials, use the shortest duration.
|
||||
|
||||
Material - Duration
|
||||
Vegetable matter -
|
||||
1 day
|
||||
Vegetable matter - 1 day
|
||||
Stone/crystal - 12 hours
|
||||
Precious metals - 1 hour
|
||||
Gems - 10 minutes
|
||||
|
||||
Adamantine/Mithral - 1 minute
|
||||
|
||||
Using any material created by this spell as
|
||||
another spell's material component causes that spell to fail.
|
||||
Using any material created by this spell as another spell's
|
||||
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.
|
||||
**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.
|
||||
|
||||
"""
|
||||
name = "Creation"
|
||||
level = 5
|
||||
@@ -1653,18 +1665,21 @@ class CrownOfMadness(Spell):
|
||||
|
||||
|
||||
class CrownOfStars(Spell):
|
||||
"""Seven star-like motes of light appear and orbit your head until the spell ends.
|
||||
You can use a bonus action to send one of the motes streaking toward one
|
||||
creature or object within 120 feet of you. When you do so, make a ranged spell
|
||||
attack. On a hit. the target takes 4d12 radiant damage. Whether you hit or miss,
|
||||
the mote is expended. The spell ends early if you expend the last mote. If you
|
||||
have four or more motes remaining, they shed bright light in a 30-foot radius
|
||||
and dim light for an additional 30 feet. Ifyou have one to three motes
|
||||
remaining, they shed dim light in a 30-foot radius.
|
||||
"""Seven star-like motes of light appear and orbit your head until the
|
||||
spell ends. You can use a bonus action to send one of the motes
|
||||
streaking toward one creature or object within 120 feet of
|
||||
you. When you do so, make a ranged spell attack. On a hit. the
|
||||
target takes 4d12 radiant damage. Whether you hit or miss, the
|
||||
mote is expended. The spell ends early if you expend the last
|
||||
mote. If you have four or more motes remaining, they shed bright
|
||||
light in a 30-foot radius and dim light for an additional 30
|
||||
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 8th level or higher, the number of motes
|
||||
created increases by two for each slot level above 7th.
|
||||
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.
|
||||
|
||||
"""
|
||||
name = "Crown Of Stars"
|
||||
level = 7
|
||||
@@ -1679,11 +1694,12 @@ class CrownOfStars(Spell):
|
||||
|
||||
|
||||
class CrusadersMantle(Spell):
|
||||
"""Holy power radiates from you in an aura with a 30-foot radius, awakening
|
||||
boldness in friendly creatures. Until the spell ends, the aura moves with you,
|
||||
centered on you. While in the aura, each nonhostile creature in the aura
|
||||
(including you) deals an extra 1d4 radiant damage when it hits with a weapon
|
||||
attack.
|
||||
"""Holy power radiates from you in an aura with a 30-foot radius,
|
||||
awakening boldness in friendly creatures. Until the spell ends,
|
||||
the aura moves with you, centered on you. While in the aura, each
|
||||
nonhostile creature in the aura (including you) deals an extra 1d4
|
||||
radiant damage when it hits with a weapon attack.
|
||||
|
||||
"""
|
||||
name = "Crusaders Mantle"
|
||||
level = 3
|
||||
|
||||
Reference in New Issue
Block a user