From 5972d2831064185fe28d30e14e3ff95ad6f5cdc3 Mon Sep 17 00:00:00 2001 From: August Johnson Date: Mon, 25 Nov 2024 12:58:45 -0600 Subject: [PATCH 1/6] Adding proficiencies/equipment into class def. --- .../srd/ClassFeature.json | 240 ++++++++++++++++++ 1 file changed, 240 insertions(+) diff --git a/data/v2/wizards-of-the-coast/srd/ClassFeature.json b/data/v2/wizards-of-the-coast/srd/ClassFeature.json index 0314aadd..0a67b5b7 100644 --- a/data/v2/wizards-of-the-coast/srd/ClassFeature.json +++ b/data/v2/wizards-of-the-coast/srd/ClassFeature.json @@ -29,6 +29,16 @@ "parent": "srd_barbarian" } }, +{ + "model": "api_v2.classfeature", + "pk": "srd_barbarian_equipment", + "fields": { + "name": "Equipment", + "desc": "You start with the following equipment, in addition to the equipment granted by your background:\r\n* (*a*) a greataxe or (*b*) any martial melee weapon\r\n* (*a*) two handaxes or (*b*) any simple weapon\r\n* An explorer’s pack and four javelins", + "document": "srd", + "parent": "srd_barbarian" + } +}, { "model": "api_v2.classfeature", "pk": "srd_barbarian_extra-attack", @@ -99,6 +109,16 @@ "parent": "srd_barbarian" } }, +{ + "model": "api_v2.classfeature", + "pk": "srd_barbarian_proficiencies", + "fields": { + "name": "Proficiencies", + "desc": "**Armor:** Light armor, medium armor, shields\r\n**Weapons:** Simple weapons, martial weapons\r\n**Tools:** None\r\n**Saving Throws:** Strength, Constitution\r\n**Skills:** Choose two from Animal Handling, Athletics, Intimidation, Nature, Perception, and Survival", + "document": "srd", + "parent": "srd_barbarian" + } +}, { "model": "api_v2.classfeature", "pk": "srd_barbarian_rage", @@ -179,6 +199,16 @@ "parent": "srd_bard" } }, +{ + "model": "api_v2.classfeature", + "pk": "srd_bard_equipment", + "fields": { + "name": "Equipment", + "desc": "You start with the following equipment, in addition to the equipment granted by your background:\r\n* (*a*) a rapier, (*b*) a longsword, or (*c*) any simple weapon\r\n* (*a*) a diplomat’s pack or (*b*) an entertainer’s pack\r\n* (*a*) a lute or (*b*) any other musical instrument\r\n* Leather armor and a dagger", + "document": "srd", + "parent": "srd_bard" + } +}, { "model": "api_v2.classfeature", "pk": "srd_bard_expertise", @@ -219,6 +249,16 @@ "parent": "srd_bard" } }, +{ + "model": "api_v2.classfeature", + "pk": "srd_bard_proficiencies", + "fields": { + "name": "Proficiencies", + "desc": "**Armor:** Light armor\r\n**Weapons:** Simple weapons, hand crossbows, longswords, rapiers, shortswords\r\n**Tools:** Three musical instruments of your choice\r\n**Saving Throws:** Dexterity, Charisma\r\n**Skills:** Choose any three", + "document": "srd", + "parent": "srd_bard" + } +}, { "model": "api_v2.classfeature", "pk": "srd_bard_song-of-rest", @@ -409,6 +449,26 @@ "parent": "srd_cleric" } }, +{ + "model": "api_v2.classfeature", + "pk": "srd_cleric_equipment", + "fields": { + "name": "Equipment", + "desc": "You start with the following equipment, in addition to the equipment granted by your background:\r\n* (*a*) a mace or (*b*) a warhammer (if proficient)\r\n* (*a*) scale mail, (*b*) leather armor, or (*c*) chain mail (if proficient)\r\n* (*a*) a light crossbow and 20 bolts or (*b*) any simple weapon\r\n* (*a*) a priest’s pack or (*b*) an explorer’s pack\r\n* A shield and a holy symbol", + "document": "srd", + "parent": "srd_cleric" + } +}, +{ + "model": "api_v2.classfeature", + "pk": "srd_cleric_proficiencies", + "fields": { + "name": "Proficiencies", + "desc": "**Armor:** Light armor, medium armor, shields\r\n**Weapons:** Simple weapons\r\n**Tools:** None\r\n**Saving Throws:** Wisdom, Charisma\r\n**Skills:** Choose two from History, Insight, Medicine, Persuasion, and Religion", + "document": "srd", + "parent": "srd_cleric" + } +}, { "model": "api_v2.classfeature", "pk": "srd_cleric_spellcasting", @@ -559,6 +619,26 @@ "parent": "srd_druid" } }, +{ + "model": "api_v2.classfeature", + "pk": "srd_druid_equipment", + "fields": { + "name": "Equipment", + "desc": "You start with the following equipment, in addition to the equipment granted by your background:\r\n* (*a*) a wooden shield or (*b*) any simple weapon\r\n* (*a*) a scimitar or (*b*) any simple melee weapon\r\n* Leather armor, an explorer’s pack, and a druidic focus", + "document": "srd", + "parent": "srd_druid" + } +}, +{ + "model": "api_v2.classfeature", + "pk": "srd_druid_proficiencies", + "fields": { + "name": "Proficiencies", + "desc": "**Armor:** Light armor, medium armor, shields (druids will not wear armor or use shields made of metal)\r\n**Weapons:** Clubs, daggers, darts, javelins, maces, quarterstaffs, scimitars, sickles, slings, spears \r\n**Tools:** Herbalism kit\r\n**Saving Throws:** Intelligence, Wisdom\r\n**Skills:** Choose two from Arcana, Animal Handling, Insight, Medicine, Nature, Perception, Religion, and Survival", + "document": "srd", + "parent": "srd_druid" + } +}, { "model": "api_v2.classfeature", "pk": "srd_druid_spellcasting", @@ -609,6 +689,16 @@ "parent": "srd_fighter" } }, +{ + "model": "api_v2.classfeature", + "pk": "srd_fighter_equipment", + "fields": { + "name": "Equipment", + "desc": "You start with the following equipment, in addition to the equipment granted by your background:\r\n* (*a*) chain mail or (*b*) leather armor, longbow, and 20 arrows\r\n* (*a*) a martial weapon and a shield or (*b*) two martial weapons\r\n* (*a*) a light crossbow and 20 bolts or (*b*) two handaxes\r\n* (*a*) a dungeoneer’s pack or (*b*) an explorer’s pack", + "document": "srd", + "parent": "srd_fighter" + } +}, { "model": "api_v2.classfeature", "pk": "srd_fighter_extra-attack", @@ -649,6 +739,16 @@ "parent": "srd_fighter" } }, +{ + "model": "api_v2.classfeature", + "pk": "srd_fighter_proficiencies", + "fields": { + "name": "Proficiencies", + "desc": "**Armor:** All armor, shields\r\n**Weapons:** Simple weapons, martial weapons\r\n**Tools:** None\r\n**Saving Throws:** Strength, Constitution\r\n**Skills:** Choose two skills from Acrobatics, Animal Handling, Athletics, History, Insight, Intimidation, Perception, and Survival", + "document": "srd", + "parent": "srd_fighter" + } +}, { "model": "api_v2.classfeature", "pk": "srd_fighter_second-wind", @@ -809,6 +909,16 @@ "parent": "srd_monk" } }, +{ + "model": "api_v2.classfeature", + "pk": "srd_monk_equipment", + "fields": { + "name": "Equipment", + "desc": "You start with the following equipment, in addition to the equipment granted by your background:\r\n* (*a*) a shortsword or (*b*) any simple weapon\r\n* (*a*) a dungeoneer’s pack or (*b*) an explorer’s pack\r\n* 10 darts", + "document": "srd", + "parent": "srd_monk" + } +}, { "model": "api_v2.classfeature", "pk": "srd_monk_evasion", @@ -879,6 +989,16 @@ "parent": "srd_monk" } }, +{ + "model": "api_v2.classfeature", + "pk": "srd_monk_proficiencies", + "fields": { + "name": "Proficiencies", + "desc": "**Armor:** None\r\n**Weapons:** Simple weapons, shortswords\r\n**Tools:** Choose one type of artisan’s tools or one musical instrument\r\n**Saving Throws:** Strength, Dexterity\r\n**Skills:** Choose two from Acrobatics, Athletics, History, Insight, Religion, and Stealth", + "document": "srd", + "parent": "srd_monk" + } +}, { "model": "api_v2.classfeature", "pk": "srd_monk_purity-of-body", @@ -1089,6 +1209,16 @@ "parent": "srd_paladin" } }, +{ + "model": "api_v2.classfeature", + "pk": "srd_paladin_equipment", + "fields": { + "name": "Equipment", + "desc": "You start with the following equipment, in addition to the equipment granted by your background:\r\n* (*a*) a martial weapon and a shield or (*b*) two martial weapons\r\n* (*a*) five javelins or (*b*) any simple melee weapon\r\n* (*a*) a priest’s pack or (*b*) an explorer’s pack\r\n* Chain mail and a holy symbol", + "document": "srd", + "parent": "srd_paladin" + } +}, { "model": "api_v2.classfeature", "pk": "srd_paladin_extra-attack", @@ -1129,6 +1259,16 @@ "parent": "srd_paladin" } }, +{ + "model": "api_v2.classfeature", + "pk": "srd_paladin_proficiencies", + "fields": { + "name": "Proficiencies", + "desc": "**Armor:** All armor, shields\r\n**Weapons:** Simple weapons, martial weapons\r\n**Tools:** None\r\n**Saving Throws:** Wisdom, Charisma\r\n**Skills:** Choose two from Athletics, Insight, Intimidation, Medicine, Persuasion, and Religion", + "document": "srd", + "parent": "srd_paladin" + } +}, { "model": "api_v2.classfeature", "pk": "srd_paladin_sacred-oath", @@ -1199,6 +1339,16 @@ "parent": "srd_ranger" } }, +{ + "model": "api_v2.classfeature", + "pk": "srd_ranger_equipment", + "fields": { + "name": "Equipment", + "desc": "You start with the following equipment, in addition to the equipment granted by your background:\r\n* (*a*) scale mail or (*b*) leather armor\r\n* (*a*) two shortswords or (*b*) two simple melee weapons\r\n* (*a*) a dungeoneer’s pack or (*b*) an explorer’s pack\r\n* A longbow and a quiver of 20 arrows", + "document": "srd", + "parent": "srd_ranger" + } +}, { "model": "api_v2.classfeature", "pk": "srd_ranger_extra-attack", @@ -1289,6 +1439,16 @@ "parent": "srd_ranger" } }, +{ + "model": "api_v2.classfeature", + "pk": "srd_ranger_proficiencies", + "fields": { + "name": "Proficiencies", + "desc": "**Armor:** Light armor, medium armor, shields\r\n**Weapons:** Simple weapons, martial weapons\r\n**Tools:** None\r\n**Saving Throws:** Strength, Dexterity\r\n**Skills:** Choose three from Animal Handling, Athletics, Insight, Investigation, Nature, Perception, Stealth, and Survival", + "document": "srd", + "parent": "srd_ranger" + } +}, { "model": "api_v2.classfeature", "pk": "srd_ranger_ranger-archetype", @@ -1359,6 +1519,16 @@ "parent": "srd_rogue" } }, +{ + "model": "api_v2.classfeature", + "pk": "srd_rogue_equipment", + "fields": { + "name": "Equipment", + "desc": "You start with the following equipment, in addition to the equipment granted by your background:\r\n* (*a*) a rapier or (*b*) a shortsword\r\n* (*a*) a shortbow and quiver of 20 arrows or (*b*) a shortsword\r\n* (*a*) a burglar’s pack, (*b*) a dungeoneer’s pack, or (*c*) an explorer’s pack\r\n* (*a*) Leather armor, two daggers, and thieves’ tools", + "document": "srd", + "parent": "srd_rogue" + } +}, { "model": "api_v2.classfeature", "pk": "srd_rogue_evasion", @@ -1379,6 +1549,16 @@ "parent": "srd_rogue" } }, +{ + "model": "api_v2.classfeature", + "pk": "srd_rogue_proficiencies", + "fields": { + "name": "Proficiencies", + "desc": "**Armor:** Light armor\r\n**Weapons:** Simple weapons, hand crossbows, longswords, rapiers, shortswords\r\n**Tools:** Thieves’ tools\r\n**Saving Throws:** Dexterity, Intelligence\r\n**Skills:** Choose four from Acrobatics, Athletics, Deception, Insight, Intimidation, Investigation, Perception, Performance, Persuasion, Sleight of Hand, and Stealth", + "document": "srd", + "parent": "srd_rogue" + } +}, { "model": "api_v2.classfeature", "pk": "srd_rogue_reliable-talent", @@ -1509,6 +1689,16 @@ "parent": "srd_sorcerer" } }, +{ + "model": "api_v2.classfeature", + "pk": "srd_sorcerer_equipment", + "fields": { + "name": "Equipment", + "desc": "You start with the following equipment, in addition to the equipment granted by your background:\r\n* (*a*) a light crossbow and 20 bolts or (*b*) any simple weapon\r\n* (*a*) a component pouch or (*b*) an arcane focus\r\n* (*a*) a dungeoneer’s pack or (*b*) an explorer’s pack\r\n* Two daggers", + "document": "srd", + "parent": "srd_sorcerer" + } +}, { "model": "api_v2.classfeature", "pk": "srd_sorcerer_font-of-magic", @@ -1559,6 +1749,16 @@ "parent": "srd_sorcerer" } }, +{ + "model": "api_v2.classfeature", + "pk": "srd_sorceror_proficiencies", + "fields": { + "name": "Proficiencies", + "desc": "**Armor:** None\r\n**Weapons:** Daggers, darts, slings, quarterstaffs, light crossbows\r\n**Tools:** None\r\n**Saving Throws:** Constitution, Charisma\r\n**Skills:** Choose two from Arcana, Deception, Insight, Intimidation, Persuasion, and Religion", + "document": "srd", + "parent": "srd_sorcerer" + } +}, { "model": "api_v2.classfeature", "pk": "srd_the-fiend_dark-ones-blessing", @@ -1699,6 +1899,16 @@ "parent": "srd_warlock" } }, +{ + "model": "api_v2.classfeature", + "pk": "srd_warlock_equipment", + "fields": { + "name": "Equipment", + "desc": "You start with the following equipment, in addition to the equipment granted by your background:\r\n* (*a*) a light crossbow and 20 bolts or (*b*) any simple weapon\r\n* (*a*) a component pouch or (*b*) an arcane focus\r\n* (*a*) a scholar’s pack or (*b*) a dungeoneer’s pack\r\n* Leather armor, any simple weapon, and two daggers", + "document": "srd", + "parent": "srd_warlock" + } +}, { "model": "api_v2.classfeature", "pk": "srd_warlock_mystic-arcanum", @@ -1739,6 +1949,16 @@ "parent": "srd_warlock" } }, +{ + "model": "api_v2.classfeature", + "pk": "srd_warlock_proficiencies", + "fields": { + "name": "Proficiencies", + "desc": "**Armor:** Light armor\r\n**Weapons:** Simple weapons\r\n**Tools:** None\r\n**Saving Throws:** Wisdom, Charisma\r\n**Skills:** Choose two skills from Arcana, Deception, History, Intimidation, Investigation, Nature, and Religion", + "document": "srd", + "parent": "srd_warlock" + } +}, { "model": "api_v2.classfeature", "pk": "srd_way-of-the-open-hand_open-hand-technique", @@ -1809,6 +2029,26 @@ "parent": "srd_wizard" } }, +{ + "model": "api_v2.classfeature", + "pk": "srd_wizard_equipment", + "fields": { + "name": "Equipment", + "desc": "You start with the following equipment, in addition to the equipment granted by your background:\r\n* (*a*) a quarterstaff or (*b*) a dagger\r\n* (*a*) a component pouch or (*b*) an arcane focus\r\n* (*a*) a scholar’s pack or (*b*) an explorer’s pack\r\n* A spellbook", + "document": "srd", + "parent": "srd_wizard" + } +}, +{ + "model": "api_v2.classfeature", + "pk": "srd_wizard_proficiencies", + "fields": { + "name": "Proficiencies", + "desc": "**Armor:** None\r\n**Weapons:** Daggers, darts, slings, quarterstaffs, light crossbows\r\n**Tools:** None\r\n**Saving Throws:** Intelligence, Wisdom\r\n**Skills:** Choose two from Arcana, History, Insight, Investigation, Medicine, and Religion", + "document": "srd", + "parent": "srd_wizard" + } +}, { "model": "api_v2.classfeature", "pk": "srd_wizard_signature-spells", From 11e5757e465cc103d75b756ab9e368d04ec8bdcb Mon Sep 17 00:00:00 2001 From: August Johnson Date: Mon, 25 Nov 2024 13:36:51 -0600 Subject: [PATCH 2/6] Adding saving throws to model. --- .../0017_characterclass_saving_throws.py | 18 +++++ api_v2/models/characterclass.py | 6 ++ .../srd/CharacterClass.json | 72 ++++++++++++------- 3 files changed, 72 insertions(+), 24 deletions(-) create mode 100644 api_v2/migrations/0017_characterclass_saving_throws.py diff --git a/api_v2/migrations/0017_characterclass_saving_throws.py b/api_v2/migrations/0017_characterclass_saving_throws.py new file mode 100644 index 00000000..f24a84ce --- /dev/null +++ b/api_v2/migrations/0017_characterclass_saving_throws.py @@ -0,0 +1,18 @@ +# Generated by Django 5.1.2 on 2024-11-25 19:36 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('api_v2', '0016_alter_creaturetrait_parent'), + ] + + operations = [ + migrations.AddField( + model_name='characterclass', + name='saving_throws', + field=models.ManyToManyField(help_text='Saving throw proficiencies for this class.', related_name='characterclass_saving_throws', to='api_v2.ability'), + ), + ] diff --git a/api_v2/models/characterclass.py b/api_v2/models/characterclass.py index 8e16dd46..3d76be0c 100644 --- a/api_v2/models/characterclass.py +++ b/api_v2/models/characterclass.py @@ -5,6 +5,7 @@ from .abstracts import HasName, HasDescription, Modification from .abstracts import key_field +from .abilities import Ability from .document import FromDocument from .enums import DIE_TYPES from drf_spectacular.utils import extend_schema_field, inline_serializer @@ -57,6 +58,11 @@ class CharacterClass(HasName, FromDocument): choices=DIE_TYPES, help_text='Dice notation hit dice option.') + + saving_throws = models.ManyToManyField(Ability, + related_name="characterclass_saving_throws", + help_text='Saving throw proficiencies for this class.') + @property @extend_schema_field(inline_serializer( name="hit_points", diff --git a/data/v2/wizards-of-the-coast/srd/CharacterClass.json b/data/v2/wizards-of-the-coast/srd/CharacterClass.json index d9422600..0511e509 100644 --- a/data/v2/wizards-of-the-coast/srd/CharacterClass.json +++ b/data/v2/wizards-of-the-coast/srd/CharacterClass.json @@ -6,7 +6,8 @@ "name": "Barbarian", "document": "srd", "subclass_of": null, - "hit_dice": "d12" + "hit_dice": "d12", + "saving_throws": [] } }, { @@ -16,7 +17,8 @@ "name": "Bard", "document": "srd", "subclass_of": null, - "hit_dice": "d8" + "hit_dice": "d8", + "saving_throws": [] } }, { @@ -26,7 +28,8 @@ "name": "Champion", "document": "srd", "subclass_of": "srd_fighter", - "hit_dice": null + "hit_dice": null, + "saving_throws": [] } }, { @@ -36,7 +39,8 @@ "name": "Circle of the Land", "document": "srd", "subclass_of": "srd_druid", - "hit_dice": null + "hit_dice": null, + "saving_throws": [] } }, { @@ -46,7 +50,8 @@ "name": "Cleric", "document": "srd", "subclass_of": null, - "hit_dice": "d8" + "hit_dice": "d8", + "saving_throws": [] } }, { @@ -56,7 +61,8 @@ "name": "College of Lore", "document": "srd", "subclass_of": "srd_bard", - "hit_dice": null + "hit_dice": null, + "saving_throws": [] } }, { @@ -66,7 +72,8 @@ "name": "Draconic Bloodline", "document": "srd", "subclass_of": "srd_sorcerer", - "hit_dice": null + "hit_dice": null, + "saving_throws": [] } }, { @@ -76,7 +83,8 @@ "name": "Druid", "document": "srd", "subclass_of": null, - "hit_dice": "d8" + "hit_dice": "d8", + "saving_throws": [] } }, { @@ -86,7 +94,8 @@ "name": "Fighter", "document": "srd", "subclass_of": null, - "hit_dice": "d10" + "hit_dice": "d10", + "saving_throws": [] } }, { @@ -96,7 +105,8 @@ "name": "Hunter", "document": "srd", "subclass_of": "srd_ranger", - "hit_dice": null + "hit_dice": null, + "saving_throws": [] } }, { @@ -106,7 +116,8 @@ "name": "Life Domain", "document": "srd", "subclass_of": "srd_cleric", - "hit_dice": null + "hit_dice": null, + "saving_throws": [] } }, { @@ -116,7 +127,8 @@ "name": "Monk", "document": "srd", "subclass_of": null, - "hit_dice": "d8" + "hit_dice": "d8", + "saving_throws": [] } }, { @@ -126,7 +138,8 @@ "name": "Oath of Devotion", "document": "srd", "subclass_of": "srd_paladin", - "hit_dice": null + "hit_dice": null, + "saving_throws": [] } }, { @@ -136,7 +149,8 @@ "name": "Paladin", "document": "srd", "subclass_of": null, - "hit_dice": "d10" + "hit_dice": "d10", + "saving_throws": [] } }, { @@ -146,7 +160,8 @@ "name": "Path of the Berserker", "document": "srd", "subclass_of": "srd_barbarian", - "hit_dice": null + "hit_dice": null, + "saving_throws": [] } }, { @@ -156,7 +171,8 @@ "name": "Ranger", "document": "srd", "subclass_of": null, - "hit_dice": "d10" + "hit_dice": "d10", + "saving_throws": [] } }, { @@ -166,7 +182,8 @@ "name": "Rogue", "document": "srd", "subclass_of": null, - "hit_dice": "d8" + "hit_dice": "d8", + "saving_throws": [] } }, { @@ -176,7 +193,8 @@ "name": "School of Evocation", "document": "srd", "subclass_of": "srd_wizard", - "hit_dice": null + "hit_dice": null, + "saving_throws": [] } }, { @@ -186,7 +204,8 @@ "name": "Sorcerer", "document": "srd", "subclass_of": null, - "hit_dice": "d6" + "hit_dice": "d6", + "saving_throws": [] } }, { @@ -196,7 +215,8 @@ "name": "The Fiend", "document": "srd", "subclass_of": "srd_warlock", - "hit_dice": null + "hit_dice": null, + "saving_throws": [] } }, { @@ -206,7 +226,8 @@ "name": "Thief", "document": "srd", "subclass_of": "srd_rogue", - "hit_dice": null + "hit_dice": null, + "saving_throws": [] } }, { @@ -216,7 +237,8 @@ "name": "Warlock", "document": "srd", "subclass_of": null, - "hit_dice": "d8" + "hit_dice": "d8", + "saving_throws": [] } }, { @@ -226,7 +248,8 @@ "name": "Way of the Open Hand", "document": "srd", "subclass_of": "srd_monk", - "hit_dice": null + "hit_dice": null, + "saving_throws": [] } }, { @@ -236,7 +259,8 @@ "name": "Wizard", "document": "srd", "subclass_of": null, - "hit_dice": "d6" + "hit_dice": "d6", + "saving_throws": [] } } ] From a506f77a8aa5b2adffc5be4a943789e9de59311b Mon Sep 17 00:00:00 2001 From: August Johnson Date: Mon, 25 Nov 2024 13:41:59 -0600 Subject: [PATCH 3/6] Adding saving throws. --- .../srd/CharacterClass.json | 84 +++++++++++++------ 1 file changed, 60 insertions(+), 24 deletions(-) diff --git a/data/v2/wizards-of-the-coast/srd/CharacterClass.json b/data/v2/wizards-of-the-coast/srd/CharacterClass.json index 0511e509..fb268b9f 100644 --- a/data/v2/wizards-of-the-coast/srd/CharacterClass.json +++ b/data/v2/wizards-of-the-coast/srd/CharacterClass.json @@ -6,8 +6,11 @@ "name": "Barbarian", "document": "srd", "subclass_of": null, - "hit_dice": "d12", - "saving_throws": [] + "hit_dice": "D12", + "saving_throws": [ + "con", + "str" + ] } }, { @@ -17,8 +20,11 @@ "name": "Bard", "document": "srd", "subclass_of": null, - "hit_dice": "d8", - "saving_throws": [] + "hit_dice": "D8", + "saving_throws": [ + "cha", + "dex" + ] } }, { @@ -50,8 +56,11 @@ "name": "Cleric", "document": "srd", "subclass_of": null, - "hit_dice": "d8", - "saving_throws": [] + "hit_dice": "D8", + "saving_throws": [ + "cha", + "wis" + ] } }, { @@ -83,8 +92,11 @@ "name": "Druid", "document": "srd", "subclass_of": null, - "hit_dice": "d8", - "saving_throws": [] + "hit_dice": "D8", + "saving_throws": [ + "int", + "wis" + ] } }, { @@ -94,8 +106,11 @@ "name": "Fighter", "document": "srd", "subclass_of": null, - "hit_dice": "d10", - "saving_throws": [] + "hit_dice": "D10", + "saving_throws": [ + "con", + "str" + ] } }, { @@ -127,8 +142,11 @@ "name": "Monk", "document": "srd", "subclass_of": null, - "hit_dice": "d8", - "saving_throws": [] + "hit_dice": "D8", + "saving_throws": [ + "dex", + "str" + ] } }, { @@ -149,8 +167,11 @@ "name": "Paladin", "document": "srd", "subclass_of": null, - "hit_dice": "d10", - "saving_throws": [] + "hit_dice": "D10", + "saving_throws": [ + "cha", + "wis" + ] } }, { @@ -171,8 +192,11 @@ "name": "Ranger", "document": "srd", "subclass_of": null, - "hit_dice": "d10", - "saving_throws": [] + "hit_dice": "D10", + "saving_throws": [ + "dex", + "str" + ] } }, { @@ -182,8 +206,11 @@ "name": "Rogue", "document": "srd", "subclass_of": null, - "hit_dice": "d8", - "saving_throws": [] + "hit_dice": "D8", + "saving_throws": [ + "dex", + "int" + ] } }, { @@ -204,8 +231,11 @@ "name": "Sorcerer", "document": "srd", "subclass_of": null, - "hit_dice": "d6", - "saving_throws": [] + "hit_dice": "D6", + "saving_throws": [ + "cha", + "con" + ] } }, { @@ -237,8 +267,11 @@ "name": "Warlock", "document": "srd", "subclass_of": null, - "hit_dice": "d8", - "saving_throws": [] + "hit_dice": "D8", + "saving_throws": [ + "cha", + "wis" + ] } }, { @@ -259,8 +292,11 @@ "name": "Wizard", "document": "srd", "subclass_of": null, - "hit_dice": "d6", - "saving_throws": [] + "hit_dice": "D6", + "saving_throws": [ + "int", + "wis" + ] } } ] From 6729ba8614a9e92c01439dee5d87525ac0662dbd Mon Sep 17 00:00:00 2001 From: August Johnson Date: Mon, 25 Nov 2024 13:48:38 -0600 Subject: [PATCH 4/6] Fixing tests. --- ...stObjects.test_class_example.approved.json | 22 +++++++++++++++---- ...bjects.test_subclass_example.approved.json | 1 + 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/api_v2/tests/responses/TestObjects.test_class_example.approved.json b/api_v2/tests/responses/TestObjects.test_class_example.approved.json index 440dab54..6e98e351 100644 --- a/api_v2/tests/responses/TestObjects.test_class_example.approved.json +++ b/api_v2/tests/responses/TestObjects.test_class_example.approved.json @@ -70,14 +70,24 @@ "desc": "While you are not wearing any armor, your Armor Class equals 10 + your Dexterity modifier + your Constitution modifier. You can use a shield and still gain this benefit.", "key": "srd_barbarian_unarmored-defense", "name": "Unarmored Defense" + }, + { + "desc": "**Armor:** Light armor, medium armor, shields\r\n**Weapons:** Simple weapons, martial weapons\r\n**Tools:** None\r\n**Saving Throws:** Strength, Constitution\r\n**Skills:** Choose two from Animal Handling, Athletics, Intimidation, Nature, Perception, and Survival", + "key": "srd_barbarian_proficiencies", + "name": "Proficiencies" + }, + { + "desc": "You start with the following equipment, in addition to the equipment granted by your background:\r\n* (*a*) a greataxe or (*b*) any martial melee weapon\r\n* (*a*) two handaxes or (*b*) any simple weapon\r\n* An explorer\u2019s pack and four javelins", + "key": "srd_barbarian_equipment", + "name": "Equipment" } ], - "hit_dice": "d12", + "hit_dice": "D12", "hit_points": { - "hit_dice": "d12", - "hit_dice_name": "1d12 per Barbarian level", + "hit_dice": "D12", + "hit_dice_name": "1D12 per Barbarian level", "hit_points_at_1st_level": "12 + your Constitution modifier", - "hit_points_at_higher_levels": "1d12 (or 7) + your Constitution modifier per barbarian level after 1st" + "hit_points_at_higher_levels": "1D12 (or 7) + your Constitution modifier per barbarian level after 1st" }, "key": "srd_barbarian", "levels": { @@ -205,6 +215,10 @@ } }, "name": "Barbarian", + "saving_throws": [ + "http://localhost:8000/v2/abilities/con/", + "http://localhost:8000/v2/abilities/str/" + ], "subclass_of": null, "url": "http://localhost:8000/v2/classes/srd_barbarian/" } diff --git a/api_v2/tests/responses/TestObjects.test_subclass_example.approved.json b/api_v2/tests/responses/TestObjects.test_subclass_example.approved.json index 3f3f1ffe..3bd5c069 100644 --- a/api_v2/tests/responses/TestObjects.test_subclass_example.approved.json +++ b/api_v2/tests/responses/TestObjects.test_subclass_example.approved.json @@ -61,6 +61,7 @@ } }, "name": "Thief", + "saving_throws": [], "subclass_of": "http://localhost:8000/v2/classes/srd_rogue/", "url": "http://localhost:8000/v2/classes/srd_thief/" } From 4803a0c60242cad0ea6c7f5a171edc2e8e693405 Mon Sep 17 00:00:00 2001 From: August Johnson Date: Mon, 25 Nov 2024 13:50:58 -0600 Subject: [PATCH 5/6] Adding passing tests. --- ...s.test_spell_cantrip_example.approved.json | 88 +++++++++++++++---- ...tObjects.test_spell_fireball.approved.json | 44 ++++++++-- .../TestObjects.test_spell_wish.approved.json | 44 ++++++++-- 3 files changed, 144 insertions(+), 32 deletions(-) diff --git a/api_v2/tests/responses/TestObjects.test_spell_cantrip_example.approved.json b/api_v2/tests/responses/TestObjects.test_spell_cantrip_example.approved.json index bce33e9f..081fe1d6 100644 --- a/api_v2/tests/responses/TestObjects.test_spell_cantrip_example.approved.json +++ b/api_v2/tests/responses/TestObjects.test_spell_cantrip_example.approved.json @@ -70,14 +70,24 @@ "desc": "At 20th level, when you roll initiative and have no uses of Bardic Inspiration left, you regain one use.", "key": "srd_bard_superior-inspiration", "name": "Superior Inspiration" + }, + { + "desc": "**Armor:** Light armor\r\n**Weapons:** Simple weapons, hand crossbows, longswords, rapiers, shortswords\r\n**Tools:** Three musical instruments of your choice\r\n**Saving Throws:** Dexterity, Charisma\r\n**Skills:** Choose any three", + "key": "srd_bard_proficiencies", + "name": "Proficiencies" + }, + { + "desc": "You start with the following equipment, in addition to the equipment granted by your background:\r\n* (*a*) a rapier, (*b*) a longsword, or (*c*) any simple weapon\r\n* (*a*) a diplomat\u2019s pack or (*b*) an entertainer\u2019s pack\r\n* (*a*) a lute or (*b*) any other musical instrument\r\n* Leather armor and a dagger", + "key": "srd_bard_equipment", + "name": "Equipment" } ], - "hit_dice": "d8", + "hit_dice": "D8", "hit_points": { - "hit_dice": "d8", - "hit_dice_name": "1d8 per Bard level", + "hit_dice": "D8", + "hit_dice_name": "1D8 per Bard level", "hit_points_at_1st_level": "8 + your Constitution modifier", - "hit_points_at_higher_levels": "1d8 (or 5) + your Constitution modifier per bard level after 1st" + "hit_points_at_higher_levels": "1D8 (or 5) + your Constitution modifier per bard level after 1st" }, "key": "srd_bard", "levels": { @@ -215,6 +225,10 @@ } }, "name": "Bard", + "saving_throws": [ + "http://localhost:8000/v2/abilities/cha/", + "http://localhost:8000/v2/abilities/dex/" + ], "subclass_of": null, "url": "http://localhost:8000/v2/classes/srd_bard/" }, @@ -250,14 +264,24 @@ "desc": "An event in your past, or in the life of a parent or ancestor, left an indelible mark on you, infusing you with arcane magic. This font of magic, whatever its origin, fuels your spells.\r\n\r\n### Cantrips\r\n\r\nAt 1st level, you know four cantrips of your choice from the sorcerer spell list. You learn additional sorcerer cantrips of your choice at higher levels, as shown in the Cantrips Known column of the Sorcerer table.\r\n\r\n### Spell Slots\r\n\r\nThe Sorcerer table shows how many spell slots you have to cast your spells of 1st level and higher. To cast one of these sorcerer spells, you must expend a slot of the spell's level or higher. You regain all expended spell slots when you finish a long rest.\r\n\r\nFor example, if you know the 1st-level spell burning hands and have a 1st-level and a 2nd-level spell slot available, you can cast burning hands using either slot.\r\n\r\n### Spells Known of 1st Level and Higher\r\n\r\nYou know two 1st-level spells of your choice from the sorcerer spell list.\r\n\r\nThe Spells Known column of the Sorcerer table shows when you learn more sorcerer spells of your choice. Each of these spells must be of a level for which you have spell slots. For instance, when you reach 3rd level in this class, you can learn one new spell of 1st or 2nd level.\r\n\r\nAdditionally, when you gain a level in this class, you can choose one of the sorcerer spells you know and replace it with another spell from the sorcerer spell list, which also must be of a level for which you have spell slots.\r\n\r\n### Spellcasting Ability\r\n\r\nCharisma is your spellcasting ability for your sorcerer spells, since the power of your magic relies on your ability to project your will into the world. You use your Charisma whenever a spell refers to your spellcasting ability. In addition, you use your Charisma modifier when setting the saving throw DC for a sorcerer spell you cast and when making an attack roll with one.\r\n\r\n**Spell save DC = 8** + your proficiency bonus + your Charisma modifier\r\n\r\n**Spell attack modifier** = your proficiency bonus + your Charisma modifier\r\nSpellcasting Focus\r\n\r\nYou can use an arcane focus as a spellcasting focus for your sorcerer spells.", "key": "srd_sorcerer_spellcasting", "name": "Spellcasting" + }, + { + "desc": "**Armor:** None\r\n**Weapons:** Daggers, darts, slings, quarterstaffs, light crossbows\r\n**Tools:** None\r\n**Saving Throws:** Constitution, Charisma\r\n**Skills:** Choose two from Arcana, Deception, Insight, Intimidation, Persuasion, and Religion", + "key": "srd_sorceror_proficiencies", + "name": "Proficiencies" + }, + { + "desc": "You start with the following equipment, in addition to the equipment granted by your background:\r\n* (*a*) a light crossbow and 20 bolts or (*b*) any simple weapon\r\n* (*a*) a component pouch or (*b*) an arcane focus\r\n* (*a*) a dungeoneer\u2019s pack or (*b*) an explorer\u2019s pack\r\n* Two daggers", + "key": "srd_sorcerer_equipment", + "name": "Equipment" } ], - "hit_dice": "d6", + "hit_dice": "D6", "hit_points": { - "hit_dice": "d6", - "hit_dice_name": "1d6 per Sorcerer level", + "hit_dice": "D6", + "hit_dice_name": "1D6 per Sorcerer level", "hit_points_at_1st_level": "6 + your Constitution modifier", - "hit_points_at_higher_levels": "1d6 (or 4) + your Constitution modifier per sorcerer level after 1st" + "hit_points_at_higher_levels": "1D6 (or 4) + your Constitution modifier per sorcerer level after 1st" }, "key": "srd_sorcerer", "levels": { @@ -341,6 +365,10 @@ } }, "name": "Sorcerer", + "saving_throws": [ + "http://localhost:8000/v2/abilities/cha/", + "http://localhost:8000/v2/abilities/con/" + ], "subclass_of": null, "url": "http://localhost:8000/v2/classes/srd_sorcerer/" }, @@ -386,14 +414,24 @@ "desc": "Your arcane research and the magic bestowed on you by your patron have given you facility with spells.\r\n\r\n### Cantrips\r\n\r\nYou know two cantrips of your choice from the warlock spell list. You learn additional warlock cantrips of your choice at higher levels, as shown in the Cantrips Known column of the Warlock table.\r\nSpell Slots\r\n\r\nThe Warlock table shows how many spell slots you have. The table also shows what the level of those slots is; all of your spell slots are the same level. To cast one of your warlock spells of 1st level or higher, you must expend a spell slot. You regain all expended spell slots when you finish a short or long rest.\r\n\r\nFor example, when you are 5th level, you have two 3rd-level spell slots. To cast the 1st-level spell thunderwave, you must spend one of those slots, and you cast it as a 3rd-level spell.\r\n\r\n### Spells Known of 1st Level and Higher\r\n\r\nAt 1st level, you know two 1st-level spells of your choice from the warlock spell list.\r\n\r\nThe Spells Known column of the Warlock table shows when you learn more warlock spells of your choice of 1st level and higher. A spell you choose must be of a level no higher than what's shown in the table's Slot Level column for your level. When you reach 6th level, for example, you learn a new warlock spell, which can be 1st, 2nd, or 3rd level.\r\n\r\nAdditionally, when you gain a level in this class, you can choose one of the warlock spells you know and replace it with another spell from the warlock spell list, which also must be of a level for which you have spell slots.\r\n\r\n### Spellcasting Ability\r\n\r\nCharisma is your spellcasting ability for your warlock spells, so you use your Charisma whenever a spell refers to your spellcasting ability. In addition, you use your Charisma modifier when setting the saving throw DC for a warlock spell you cast and when making an attack roll with one.\r\n\r\n**Spell save DC** = 8 + your proficiency bonus + your Charisma modifier\r\n\r\n**Spell attack modifier** = your proficiency bonus + your Charisma modifier\r\n\r\n### Spellcasting Focus\r\n\r\nYou can use an arcane focus as a spellcasting focus for your warlock spells.", "key": "srd_warlock_pact-magic", "name": "Pact Magic" + }, + { + "desc": "**Armor:** Light armor\r\n**Weapons:** Simple weapons\r\n**Tools:** None\r\n**Saving Throws:** Wisdom, Charisma\r\n**Skills:** Choose two skills from Arcana, Deception, History, Intimidation, Investigation, Nature, and Religion", + "key": "srd_warlock_proficiencies", + "name": "Proficiencies" + }, + { + "desc": "You start with the following equipment, in addition to the equipment granted by your background:\r\n* (*a*) a light crossbow and 20 bolts or (*b*) any simple weapon\r\n* (*a*) a component pouch or (*b*) an arcane focus\r\n* (*a*) a scholar\u2019s pack or (*b*) a dungeoneer\u2019s pack\r\n* Leather armor, any simple weapon, and two daggers", + "key": "srd_warlock_equipment", + "name": "Equipment" } ], - "hit_dice": "d8", + "hit_dice": "D8", "hit_points": { - "hit_dice": "d8", - "hit_dice_name": "1d8 per Warlock level", + "hit_dice": "D8", + "hit_dice_name": "1D8 per Warlock level", "hit_points_at_1st_level": "8 + your Constitution modifier", - "hit_points_at_higher_levels": "1d8 (or 5) + your Constitution modifier per warlock level after 1st" + "hit_points_at_higher_levels": "1D8 (or 5) + your Constitution modifier per warlock level after 1st" }, "key": "srd_warlock", "levels": { @@ -485,6 +523,10 @@ } }, "name": "Warlock", + "saving_throws": [ + "http://localhost:8000/v2/abilities/cha/", + "http://localhost:8000/v2/abilities/wis/" + ], "subclass_of": null, "url": "http://localhost:8000/v2/classes/srd_warlock/" }, @@ -520,14 +562,24 @@ "desc": "As a student of arcane magic, you have a spellbook containing spells that show the first glimmerings of your true power.\r\n\r\n### Cantrips\r\n\r\nAt 1st level, you know three cantrips of your choice from the wizard spell list. You learn additional wizard cantrips of your choice at higher levels, as shown in the Cantrips Known column of the Wizard table.\r\n\r\n### Spellbook\r\n\r\nAt 1st level, you have a spellbook containing six 1st- level wizard spells of your choice. Your spellbook is the repository of the wizard spells you know, except your cantrips, which are fixed in your mind.\r\n\r\n### Preparing and Casting Spells\r\n\r\nThe Wizard table shows how many spell slots you have to cast your spells of 1st level and higher. To cast one of these spells, you must expend a slot of the spell's level or higher. You regain all expended spell slots when you finish a long rest.\r\n\r\nYou prepare the list of wizard spells that are available for you to cast. To do so, choose a number of wizard spells from your spellbook equal to your Intelligence modifier + your wizard level (minimum of one spell). The spells must be of a level for which you have spell slots.\r\n\r\nFor example, if you're a 3rd-level wizard, you have four 1st-level and two 2nd-level spell slots. With an Intelligence of 16, your list of prepared spells can include six spells of 1st or 2nd level, in any combination, chosen from your spellbook. If you prepare the 1st-level spell magic missile, you can cast it using a 1st-level or a 2nd-level slot. Casting the spell doesn't remove it from your list of prepared spells.\r\n\r\nYou can change your list of prepared spells when you finish a long rest. Preparing a new list of wizard spells requires time spent studying your spellbook and memorizing the incantations and gestures you must make to cast the spell: at least 1 minute per spell level for each spell on your list.\r\n\r\n### Spellcasting Ability\r\n\r\nIntelligence is your spellcasting ability for your wizard spells, since you learn your spells through dedicated study and memorization. You use your Intelligence whenever a spell refers to your spellcasting ability. In addition, you use your Intelligence modifier when setting the saving throw DC for a wizard spell you cast and when making an attack roll with one.\r\n\r\n**Spell save DC** = 8 + your proficiency bonus + your Intelligence modifier\r\n\r\n**Spell attack modifier** = your proficiency bonus + your Intelligence modifier\r\n\r\n### Ritual Casting\r\n\r\nYou can cast a wizard spell as a ritual if that spell has the ritual tag and you have the spell in your spellbook. You don't need to have the spell prepared.\r\n\r\n### Spellcasting Focus\r\n\r\nYou can use an arcane focus as a spellcasting focus for your wizard spells.\r\n\r\n### Learning Spells of 1st Level and Higher\r\n\r\nEach time you gain a wizard level, you can add two wizard spells of your choice to your spellbook for free. Each of these spells must be of a level for which you have spell slots, as shown on the Wizard table. On your adventures, you might find other spells that you can add to your spellbook (see the \u201cYour Spellbook\u201d sidebar).", "key": "srd_wizard_spellcasting", "name": "Spellcasting" + }, + { + "desc": "**Armor:** None\r\n**Weapons:** Daggers, darts, slings, quarterstaffs, light crossbows\r\n**Tools:** None\r\n**Saving Throws:** Intelligence, Wisdom\r\n**Skills:** Choose two from Arcana, History, Insight, Investigation, Medicine, and Religion", + "key": "srd_wizard_proficiencies", + "name": "Proficiencies" + }, + { + "desc": "You start with the following equipment, in addition to the equipment granted by your background:\r\n* (*a*) a quarterstaff or (*b*) a dagger\r\n* (*a*) a component pouch or (*b*) an arcane focus\r\n* (*a*) a scholar\u2019s pack or (*b*) an explorer\u2019s pack\r\n* A spellbook", + "key": "srd_wizard_equipment", + "name": "Equipment" } ], - "hit_dice": "d6", + "hit_dice": "D6", "hit_points": { - "hit_dice": "d6", - "hit_dice_name": "1d6 per Wizard level", + "hit_dice": "D6", + "hit_dice_name": "1D6 per Wizard level", "hit_points_at_1st_level": "6 + your Constitution modifier", - "hit_points_at_higher_levels": "1d6 (or 4) + your Constitution modifier per wizard level after 1st" + "hit_points_at_higher_levels": "1D6 (or 4) + your Constitution modifier per wizard level after 1st" }, "key": "srd_wizard", "levels": { @@ -597,6 +649,10 @@ } }, "name": "Wizard", + "saving_throws": [ + "http://localhost:8000/v2/abilities/int/", + "http://localhost:8000/v2/abilities/wis/" + ], "subclass_of": null, "url": "http://localhost:8000/v2/classes/srd_wizard/" } diff --git a/api_v2/tests/responses/TestObjects.test_spell_fireball.approved.json b/api_v2/tests/responses/TestObjects.test_spell_fireball.approved.json index ba304739..63af1ca5 100644 --- a/api_v2/tests/responses/TestObjects.test_spell_fireball.approved.json +++ b/api_v2/tests/responses/TestObjects.test_spell_fireball.approved.json @@ -99,14 +99,24 @@ "desc": "An event in your past, or in the life of a parent or ancestor, left an indelible mark on you, infusing you with arcane magic. This font of magic, whatever its origin, fuels your spells.\r\n\r\n### Cantrips\r\n\r\nAt 1st level, you know four cantrips of your choice from the sorcerer spell list. You learn additional sorcerer cantrips of your choice at higher levels, as shown in the Cantrips Known column of the Sorcerer table.\r\n\r\n### Spell Slots\r\n\r\nThe Sorcerer table shows how many spell slots you have to cast your spells of 1st level and higher. To cast one of these sorcerer spells, you must expend a slot of the spell's level or higher. You regain all expended spell slots when you finish a long rest.\r\n\r\nFor example, if you know the 1st-level spell burning hands and have a 1st-level and a 2nd-level spell slot available, you can cast burning hands using either slot.\r\n\r\n### Spells Known of 1st Level and Higher\r\n\r\nYou know two 1st-level spells of your choice from the sorcerer spell list.\r\n\r\nThe Spells Known column of the Sorcerer table shows when you learn more sorcerer spells of your choice. Each of these spells must be of a level for which you have spell slots. For instance, when you reach 3rd level in this class, you can learn one new spell of 1st or 2nd level.\r\n\r\nAdditionally, when you gain a level in this class, you can choose one of the sorcerer spells you know and replace it with another spell from the sorcerer spell list, which also must be of a level for which you have spell slots.\r\n\r\n### Spellcasting Ability\r\n\r\nCharisma is your spellcasting ability for your sorcerer spells, since the power of your magic relies on your ability to project your will into the world. You use your Charisma whenever a spell refers to your spellcasting ability. In addition, you use your Charisma modifier when setting the saving throw DC for a sorcerer spell you cast and when making an attack roll with one.\r\n\r\n**Spell save DC = 8** + your proficiency bonus + your Charisma modifier\r\n\r\n**Spell attack modifier** = your proficiency bonus + your Charisma modifier\r\nSpellcasting Focus\r\n\r\nYou can use an arcane focus as a spellcasting focus for your sorcerer spells.", "key": "srd_sorcerer_spellcasting", "name": "Spellcasting" + }, + { + "desc": "**Armor:** None\r\n**Weapons:** Daggers, darts, slings, quarterstaffs, light crossbows\r\n**Tools:** None\r\n**Saving Throws:** Constitution, Charisma\r\n**Skills:** Choose two from Arcana, Deception, Insight, Intimidation, Persuasion, and Religion", + "key": "srd_sorceror_proficiencies", + "name": "Proficiencies" + }, + { + "desc": "You start with the following equipment, in addition to the equipment granted by your background:\r\n* (*a*) a light crossbow and 20 bolts or (*b*) any simple weapon\r\n* (*a*) a component pouch or (*b*) an arcane focus\r\n* (*a*) a dungeoneer\u2019s pack or (*b*) an explorer\u2019s pack\r\n* Two daggers", + "key": "srd_sorcerer_equipment", + "name": "Equipment" } ], - "hit_dice": "d6", + "hit_dice": "D6", "hit_points": { - "hit_dice": "d6", - "hit_dice_name": "1d6 per Sorcerer level", + "hit_dice": "D6", + "hit_dice_name": "1D6 per Sorcerer level", "hit_points_at_1st_level": "6 + your Constitution modifier", - "hit_points_at_higher_levels": "1d6 (or 4) + your Constitution modifier per sorcerer level after 1st" + "hit_points_at_higher_levels": "1D6 (or 4) + your Constitution modifier per sorcerer level after 1st" }, "key": "srd_sorcerer", "levels": { @@ -190,6 +200,10 @@ } }, "name": "Sorcerer", + "saving_throws": [ + "http://localhost:8000/v2/abilities/cha/", + "http://localhost:8000/v2/abilities/con/" + ], "subclass_of": null, "url": "http://localhost:8000/v2/classes/srd_sorcerer/" }, @@ -225,14 +239,24 @@ "desc": "As a student of arcane magic, you have a spellbook containing spells that show the first glimmerings of your true power.\r\n\r\n### Cantrips\r\n\r\nAt 1st level, you know three cantrips of your choice from the wizard spell list. You learn additional wizard cantrips of your choice at higher levels, as shown in the Cantrips Known column of the Wizard table.\r\n\r\n### Spellbook\r\n\r\nAt 1st level, you have a spellbook containing six 1st- level wizard spells of your choice. Your spellbook is the repository of the wizard spells you know, except your cantrips, which are fixed in your mind.\r\n\r\n### Preparing and Casting Spells\r\n\r\nThe Wizard table shows how many spell slots you have to cast your spells of 1st level and higher. To cast one of these spells, you must expend a slot of the spell's level or higher. You regain all expended spell slots when you finish a long rest.\r\n\r\nYou prepare the list of wizard spells that are available for you to cast. To do so, choose a number of wizard spells from your spellbook equal to your Intelligence modifier + your wizard level (minimum of one spell). The spells must be of a level for which you have spell slots.\r\n\r\nFor example, if you're a 3rd-level wizard, you have four 1st-level and two 2nd-level spell slots. With an Intelligence of 16, your list of prepared spells can include six spells of 1st or 2nd level, in any combination, chosen from your spellbook. If you prepare the 1st-level spell magic missile, you can cast it using a 1st-level or a 2nd-level slot. Casting the spell doesn't remove it from your list of prepared spells.\r\n\r\nYou can change your list of prepared spells when you finish a long rest. Preparing a new list of wizard spells requires time spent studying your spellbook and memorizing the incantations and gestures you must make to cast the spell: at least 1 minute per spell level for each spell on your list.\r\n\r\n### Spellcasting Ability\r\n\r\nIntelligence is your spellcasting ability for your wizard spells, since you learn your spells through dedicated study and memorization. You use your Intelligence whenever a spell refers to your spellcasting ability. In addition, you use your Intelligence modifier when setting the saving throw DC for a wizard spell you cast and when making an attack roll with one.\r\n\r\n**Spell save DC** = 8 + your proficiency bonus + your Intelligence modifier\r\n\r\n**Spell attack modifier** = your proficiency bonus + your Intelligence modifier\r\n\r\n### Ritual Casting\r\n\r\nYou can cast a wizard spell as a ritual if that spell has the ritual tag and you have the spell in your spellbook. You don't need to have the spell prepared.\r\n\r\n### Spellcasting Focus\r\n\r\nYou can use an arcane focus as a spellcasting focus for your wizard spells.\r\n\r\n### Learning Spells of 1st Level and Higher\r\n\r\nEach time you gain a wizard level, you can add two wizard spells of your choice to your spellbook for free. Each of these spells must be of a level for which you have spell slots, as shown on the Wizard table. On your adventures, you might find other spells that you can add to your spellbook (see the \u201cYour Spellbook\u201d sidebar).", "key": "srd_wizard_spellcasting", "name": "Spellcasting" + }, + { + "desc": "**Armor:** None\r\n**Weapons:** Daggers, darts, slings, quarterstaffs, light crossbows\r\n**Tools:** None\r\n**Saving Throws:** Intelligence, Wisdom\r\n**Skills:** Choose two from Arcana, History, Insight, Investigation, Medicine, and Religion", + "key": "srd_wizard_proficiencies", + "name": "Proficiencies" + }, + { + "desc": "You start with the following equipment, in addition to the equipment granted by your background:\r\n* (*a*) a quarterstaff or (*b*) a dagger\r\n* (*a*) a component pouch or (*b*) an arcane focus\r\n* (*a*) a scholar\u2019s pack or (*b*) an explorer\u2019s pack\r\n* A spellbook", + "key": "srd_wizard_equipment", + "name": "Equipment" } ], - "hit_dice": "d6", + "hit_dice": "D6", "hit_points": { - "hit_dice": "d6", - "hit_dice_name": "1d6 per Wizard level", + "hit_dice": "D6", + "hit_dice_name": "1D6 per Wizard level", "hit_points_at_1st_level": "6 + your Constitution modifier", - "hit_points_at_higher_levels": "1d6 (or 4) + your Constitution modifier per wizard level after 1st" + "hit_points_at_higher_levels": "1D6 (or 4) + your Constitution modifier per wizard level after 1st" }, "key": "srd_wizard", "levels": { @@ -302,6 +326,10 @@ } }, "name": "Wizard", + "saving_throws": [ + "http://localhost:8000/v2/abilities/int/", + "http://localhost:8000/v2/abilities/wis/" + ], "subclass_of": null, "url": "http://localhost:8000/v2/classes/srd_wizard/" } diff --git a/api_v2/tests/responses/TestObjects.test_spell_wish.approved.json b/api_v2/tests/responses/TestObjects.test_spell_wish.approved.json index 9b85e4a7..33c6e8cd 100644 --- a/api_v2/tests/responses/TestObjects.test_spell_wish.approved.json +++ b/api_v2/tests/responses/TestObjects.test_spell_wish.approved.json @@ -45,14 +45,24 @@ "desc": "An event in your past, or in the life of a parent or ancestor, left an indelible mark on you, infusing you with arcane magic. This font of magic, whatever its origin, fuels your spells.\r\n\r\n### Cantrips\r\n\r\nAt 1st level, you know four cantrips of your choice from the sorcerer spell list. You learn additional sorcerer cantrips of your choice at higher levels, as shown in the Cantrips Known column of the Sorcerer table.\r\n\r\n### Spell Slots\r\n\r\nThe Sorcerer table shows how many spell slots you have to cast your spells of 1st level and higher. To cast one of these sorcerer spells, you must expend a slot of the spell's level or higher. You regain all expended spell slots when you finish a long rest.\r\n\r\nFor example, if you know the 1st-level spell burning hands and have a 1st-level and a 2nd-level spell slot available, you can cast burning hands using either slot.\r\n\r\n### Spells Known of 1st Level and Higher\r\n\r\nYou know two 1st-level spells of your choice from the sorcerer spell list.\r\n\r\nThe Spells Known column of the Sorcerer table shows when you learn more sorcerer spells of your choice. Each of these spells must be of a level for which you have spell slots. For instance, when you reach 3rd level in this class, you can learn one new spell of 1st or 2nd level.\r\n\r\nAdditionally, when you gain a level in this class, you can choose one of the sorcerer spells you know and replace it with another spell from the sorcerer spell list, which also must be of a level for which you have spell slots.\r\n\r\n### Spellcasting Ability\r\n\r\nCharisma is your spellcasting ability for your sorcerer spells, since the power of your magic relies on your ability to project your will into the world. You use your Charisma whenever a spell refers to your spellcasting ability. In addition, you use your Charisma modifier when setting the saving throw DC for a sorcerer spell you cast and when making an attack roll with one.\r\n\r\n**Spell save DC = 8** + your proficiency bonus + your Charisma modifier\r\n\r\n**Spell attack modifier** = your proficiency bonus + your Charisma modifier\r\nSpellcasting Focus\r\n\r\nYou can use an arcane focus as a spellcasting focus for your sorcerer spells.", "key": "srd_sorcerer_spellcasting", "name": "Spellcasting" + }, + { + "desc": "**Armor:** None\r\n**Weapons:** Daggers, darts, slings, quarterstaffs, light crossbows\r\n**Tools:** None\r\n**Saving Throws:** Constitution, Charisma\r\n**Skills:** Choose two from Arcana, Deception, Insight, Intimidation, Persuasion, and Religion", + "key": "srd_sorceror_proficiencies", + "name": "Proficiencies" + }, + { + "desc": "You start with the following equipment, in addition to the equipment granted by your background:\r\n* (*a*) a light crossbow and 20 bolts or (*b*) any simple weapon\r\n* (*a*) a component pouch or (*b*) an arcane focus\r\n* (*a*) a dungeoneer\u2019s pack or (*b*) an explorer\u2019s pack\r\n* Two daggers", + "key": "srd_sorcerer_equipment", + "name": "Equipment" } ], - "hit_dice": "d6", + "hit_dice": "D6", "hit_points": { - "hit_dice": "d6", - "hit_dice_name": "1d6 per Sorcerer level", + "hit_dice": "D6", + "hit_dice_name": "1D6 per Sorcerer level", "hit_points_at_1st_level": "6 + your Constitution modifier", - "hit_points_at_higher_levels": "1d6 (or 4) + your Constitution modifier per sorcerer level after 1st" + "hit_points_at_higher_levels": "1D6 (or 4) + your Constitution modifier per sorcerer level after 1st" }, "key": "srd_sorcerer", "levels": { @@ -136,6 +146,10 @@ } }, "name": "Sorcerer", + "saving_throws": [ + "http://localhost:8000/v2/abilities/cha/", + "http://localhost:8000/v2/abilities/con/" + ], "subclass_of": null, "url": "http://localhost:8000/v2/classes/srd_sorcerer/" }, @@ -171,14 +185,24 @@ "desc": "As a student of arcane magic, you have a spellbook containing spells that show the first glimmerings of your true power.\r\n\r\n### Cantrips\r\n\r\nAt 1st level, you know three cantrips of your choice from the wizard spell list. You learn additional wizard cantrips of your choice at higher levels, as shown in the Cantrips Known column of the Wizard table.\r\n\r\n### Spellbook\r\n\r\nAt 1st level, you have a spellbook containing six 1st- level wizard spells of your choice. Your spellbook is the repository of the wizard spells you know, except your cantrips, which are fixed in your mind.\r\n\r\n### Preparing and Casting Spells\r\n\r\nThe Wizard table shows how many spell slots you have to cast your spells of 1st level and higher. To cast one of these spells, you must expend a slot of the spell's level or higher. You regain all expended spell slots when you finish a long rest.\r\n\r\nYou prepare the list of wizard spells that are available for you to cast. To do so, choose a number of wizard spells from your spellbook equal to your Intelligence modifier + your wizard level (minimum of one spell). The spells must be of a level for which you have spell slots.\r\n\r\nFor example, if you're a 3rd-level wizard, you have four 1st-level and two 2nd-level spell slots. With an Intelligence of 16, your list of prepared spells can include six spells of 1st or 2nd level, in any combination, chosen from your spellbook. If you prepare the 1st-level spell magic missile, you can cast it using a 1st-level or a 2nd-level slot. Casting the spell doesn't remove it from your list of prepared spells.\r\n\r\nYou can change your list of prepared spells when you finish a long rest. Preparing a new list of wizard spells requires time spent studying your spellbook and memorizing the incantations and gestures you must make to cast the spell: at least 1 minute per spell level for each spell on your list.\r\n\r\n### Spellcasting Ability\r\n\r\nIntelligence is your spellcasting ability for your wizard spells, since you learn your spells through dedicated study and memorization. You use your Intelligence whenever a spell refers to your spellcasting ability. In addition, you use your Intelligence modifier when setting the saving throw DC for a wizard spell you cast and when making an attack roll with one.\r\n\r\n**Spell save DC** = 8 + your proficiency bonus + your Intelligence modifier\r\n\r\n**Spell attack modifier** = your proficiency bonus + your Intelligence modifier\r\n\r\n### Ritual Casting\r\n\r\nYou can cast a wizard spell as a ritual if that spell has the ritual tag and you have the spell in your spellbook. You don't need to have the spell prepared.\r\n\r\n### Spellcasting Focus\r\n\r\nYou can use an arcane focus as a spellcasting focus for your wizard spells.\r\n\r\n### Learning Spells of 1st Level and Higher\r\n\r\nEach time you gain a wizard level, you can add two wizard spells of your choice to your spellbook for free. Each of these spells must be of a level for which you have spell slots, as shown on the Wizard table. On your adventures, you might find other spells that you can add to your spellbook (see the \u201cYour Spellbook\u201d sidebar).", "key": "srd_wizard_spellcasting", "name": "Spellcasting" + }, + { + "desc": "**Armor:** None\r\n**Weapons:** Daggers, darts, slings, quarterstaffs, light crossbows\r\n**Tools:** None\r\n**Saving Throws:** Intelligence, Wisdom\r\n**Skills:** Choose two from Arcana, History, Insight, Investigation, Medicine, and Religion", + "key": "srd_wizard_proficiencies", + "name": "Proficiencies" + }, + { + "desc": "You start with the following equipment, in addition to the equipment granted by your background:\r\n* (*a*) a quarterstaff or (*b*) a dagger\r\n* (*a*) a component pouch or (*b*) an arcane focus\r\n* (*a*) a scholar\u2019s pack or (*b*) an explorer\u2019s pack\r\n* A spellbook", + "key": "srd_wizard_equipment", + "name": "Equipment" } ], - "hit_dice": "d6", + "hit_dice": "D6", "hit_points": { - "hit_dice": "d6", - "hit_dice_name": "1d6 per Wizard level", + "hit_dice": "D6", + "hit_dice_name": "1D6 per Wizard level", "hit_points_at_1st_level": "6 + your Constitution modifier", - "hit_points_at_higher_levels": "1d6 (or 4) + your Constitution modifier per wizard level after 1st" + "hit_points_at_higher_levels": "1D6 (or 4) + your Constitution modifier per wizard level after 1st" }, "key": "srd_wizard", "levels": { @@ -248,6 +272,10 @@ } }, "name": "Wizard", + "saving_throws": [ + "http://localhost:8000/v2/abilities/int/", + "http://localhost:8000/v2/abilities/wis/" + ], "subclass_of": null, "url": "http://localhost:8000/v2/classes/srd_wizard/" } From fec2b1a958c57ad4315b2ee971395d67ca41f94f Mon Sep 17 00:00:00 2001 From: August Johnson Date: Mon, 25 Nov 2024 13:57:21 -0600 Subject: [PATCH 6/6] Ordering. --- ...stObjects.test_class_example.approved.json | 20 +++---- ...s.test_spell_cantrip_example.approved.json | 60 +++++++++---------- ...tObjects.test_spell_fireball.approved.json | 30 +++++----- .../TestObjects.test_spell_wish.approved.json | 30 +++++----- 4 files changed, 70 insertions(+), 70 deletions(-) diff --git a/api_v2/tests/responses/TestObjects.test_class_example.approved.json b/api_v2/tests/responses/TestObjects.test_class_example.approved.json index 6e98e351..a61b8a7f 100644 --- a/api_v2/tests/responses/TestObjects.test_class_example.approved.json +++ b/api_v2/tests/responses/TestObjects.test_class_example.approved.json @@ -16,6 +16,11 @@ "key": "srd_barbarian_danger-sense", "name": "Danger Sense" }, + { + "desc": "You start with the following equipment, in addition to the equipment granted by your background:\r\n* (*a*) a greataxe or (*b*) any martial melee weapon\r\n* (*a*) two handaxes or (*b*) any simple weapon\r\n* An explorer\u2019s pack and four javelins", + "key": "srd_barbarian_equipment", + "name": "Equipment" + }, { "desc": "Beginning at 5th level, you can attack twice, instead of once, whenever you take the Attack action on your turn.", "key": "srd_barbarian_extra-attack", @@ -51,6 +56,11 @@ "key": "srd_barbarian_primal-path", "name": "Primal Path" }, + { + "desc": "**Armor:** Light armor, medium armor, shields\r\n**Weapons:** Simple weapons, martial weapons\r\n**Tools:** None\r\n**Saving Throws:** Strength, Constitution\r\n**Skills:** Choose two from Animal Handling, Athletics, Intimidation, Nature, Perception, and Survival", + "key": "srd_barbarian_proficiencies", + "name": "Proficiencies" + }, { "desc": "In battle, you fight with primal ferocity. On your turn, you can enter a rage as a bonus action.\r\n\r\nWhile raging, you gain the following benefits if you aren't wearing heavy armor:\r\n\r\n* You have advantage on Strength checks and Strength saving throws.\r\n* 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.\r\n* You have resistance to bludgeoning, piercing, and slashing damage. \r\n\r\nIf you are able to cast spells, you can't cast them or concentrate on them while raging.\r\n\r\nYour 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 creature since your last turn or taken damage since then. You can also end your rage on your turn as a bonus action.\r\n\r\nOnce 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.", "key": "srd_barbarian_rage", @@ -70,16 +80,6 @@ "desc": "While you are not wearing any armor, your Armor Class equals 10 + your Dexterity modifier + your Constitution modifier. You can use a shield and still gain this benefit.", "key": "srd_barbarian_unarmored-defense", "name": "Unarmored Defense" - }, - { - "desc": "**Armor:** Light armor, medium armor, shields\r\n**Weapons:** Simple weapons, martial weapons\r\n**Tools:** None\r\n**Saving Throws:** Strength, Constitution\r\n**Skills:** Choose two from Animal Handling, Athletics, Intimidation, Nature, Perception, and Survival", - "key": "srd_barbarian_proficiencies", - "name": "Proficiencies" - }, - { - "desc": "You start with the following equipment, in addition to the equipment granted by your background:\r\n* (*a*) a greataxe or (*b*) any martial melee weapon\r\n* (*a*) two handaxes or (*b*) any simple weapon\r\n* An explorer\u2019s pack and four javelins", - "key": "srd_barbarian_equipment", - "name": "Equipment" } ], "hit_dice": "D12", diff --git a/api_v2/tests/responses/TestObjects.test_spell_cantrip_example.approved.json b/api_v2/tests/responses/TestObjects.test_spell_cantrip_example.approved.json index 081fe1d6..4e7cdacf 100644 --- a/api_v2/tests/responses/TestObjects.test_spell_cantrip_example.approved.json +++ b/api_v2/tests/responses/TestObjects.test_spell_cantrip_example.approved.json @@ -36,6 +36,11 @@ "key": "srd_bard_countercharm", "name": "Countercharm" }, + { + "desc": "You start with the following equipment, in addition to the equipment granted by your background:\r\n* (*a*) a rapier, (*b*) a longsword, or (*c*) any simple weapon\r\n* (*a*) a diplomat\u2019s pack or (*b*) an entertainer\u2019s pack\r\n* (*a*) a lute or (*b*) any other musical instrument\r\n* Leather armor and a dagger", + "key": "srd_bard_equipment", + "name": "Equipment" + }, { "desc": "At 3rd level, choose two of your skill proficiencies. Your proficiency bonus is doubled for any ability check you make that uses either of the chosen proficiencies.\r\n\r\nAt 10th level, you can choose another two skill proficiencies to gain this benefit.", "key": "srd_bard_expertise", @@ -56,6 +61,11 @@ "key": "srd_bard_magical-secrets", "name": "Magical Secrets" }, + { + "desc": "**Armor:** Light armor\r\n**Weapons:** Simple weapons, hand crossbows, longswords, rapiers, shortswords\r\n**Tools:** Three musical instruments of your choice\r\n**Saving Throws:** Dexterity, Charisma\r\n**Skills:** Choose any three", + "key": "srd_bard_proficiencies", + "name": "Proficiencies" + }, { "desc": "Beginning at 2nd level, you can use soothing music or oration to help revitalize your wounded allies during a short rest. If you or any friendly creatures who can hear your performance regain hit points at the end of the short rest by spending one or more Hit Dice, each of those creatures regains an extra 1d6 hit points.\r\n\r\nThe extra hit points increase when you reach certain levels in this class: to 1d8 at 9th level, to 1d10 at 13th level, and to 1d12 at 17th level.", "key": "srd_bard_song-of-rest", @@ -70,16 +80,6 @@ "desc": "At 20th level, when you roll initiative and have no uses of Bardic Inspiration left, you regain one use.", "key": "srd_bard_superior-inspiration", "name": "Superior Inspiration" - }, - { - "desc": "**Armor:** Light armor\r\n**Weapons:** Simple weapons, hand crossbows, longswords, rapiers, shortswords\r\n**Tools:** Three musical instruments of your choice\r\n**Saving Throws:** Dexterity, Charisma\r\n**Skills:** Choose any three", - "key": "srd_bard_proficiencies", - "name": "Proficiencies" - }, - { - "desc": "You start with the following equipment, in addition to the equipment granted by your background:\r\n* (*a*) a rapier, (*b*) a longsword, or (*c*) any simple weapon\r\n* (*a*) a diplomat\u2019s pack or (*b*) an entertainer\u2019s pack\r\n* (*a*) a lute or (*b*) any other musical instrument\r\n* Leather armor and a dagger", - "key": "srd_bard_equipment", - "name": "Equipment" } ], "hit_dice": "D8", @@ -240,6 +240,11 @@ "key": "srd_sorcerer_ability-score-improvement", "name": "Ability Score Improvement" }, + { + "desc": "You start with the following equipment, in addition to the equipment granted by your background:\r\n* (*a*) a light crossbow and 20 bolts or (*b*) any simple weapon\r\n* (*a*) a component pouch or (*b*) an arcane focus\r\n* (*a*) a dungeoneer\u2019s pack or (*b*) an explorer\u2019s pack\r\n* Two daggers", + "key": "srd_sorcerer_equipment", + "name": "Equipment" + }, { "desc": "At 2nd level, you tap into a deep wellspring of magic within yourself. This wellspring is represented by sorcery points, which allow you to create a variety of magical effects.\r\n\r\n### Sorcery Points\r\n\r\nYou have 2 sorcery points, and you gain more as you reach higher levels, as shown in the Sorcery Points column of the Sorcerer table. You can never have more sorcery points than shown on the table for your level. You regain all spent sorcery points when you finish a long rest.\r\n\r\n### Flexible Casting\r\n\r\nYou can use your sorcery points to gain additional spell slots, or sacrifice spell slots to gain additional sorcery points. You learn other ways to use your sorcery points as you reach higher levels.\r\n\r\n***Creating Spell Slots.*** You can transform unexpended sorcery points into one spell slot as a bonus action on your turn. The Creating Spell Slots table shows the cost of creating a spell slot of a given level. You can create spell slots no higher in level than 5th.\r\n\r\nAny spell slot you create with this feature vanishes when you finish a long rest.\r\n\r\n### Creating Spell Slots (table)\r\n| Spell Slot Level | Sorcery Point Cost |\r\n| --- | --- |\r\n| 1st | 2 |\r\n| 2nd | 3 |\r\n| 3rd | 5 |\r\n| 4th | 6 |\r\n| 5th | 7|\r\n\r\n***Converting a Spell Slot to Sorcery Points.*** As a bonus action on your turn, you can expend one spell slot and gain a number of sorcery points equal to the slot's level.", "key": "srd_sorcerer_font-of-magic", @@ -269,11 +274,6 @@ "desc": "**Armor:** None\r\n**Weapons:** Daggers, darts, slings, quarterstaffs, light crossbows\r\n**Tools:** None\r\n**Saving Throws:** Constitution, Charisma\r\n**Skills:** Choose two from Arcana, Deception, Insight, Intimidation, Persuasion, and Religion", "key": "srd_sorceror_proficiencies", "name": "Proficiencies" - }, - { - "desc": "You start with the following equipment, in addition to the equipment granted by your background:\r\n* (*a*) a light crossbow and 20 bolts or (*b*) any simple weapon\r\n* (*a*) a component pouch or (*b*) an arcane focus\r\n* (*a*) a dungeoneer\u2019s pack or (*b*) an explorer\u2019s pack\r\n* Two daggers", - "key": "srd_sorcerer_equipment", - "name": "Equipment" } ], "hit_dice": "D6", @@ -395,6 +395,11 @@ "key": "srd_warlock_eldritch-master", "name": "Eldritch Master" }, + { + "desc": "You start with the following equipment, in addition to the equipment granted by your background:\r\n* (*a*) a light crossbow and 20 bolts or (*b*) any simple weapon\r\n* (*a*) a component pouch or (*b*) an arcane focus\r\n* (*a*) a scholar\u2019s pack or (*b*) a dungeoneer\u2019s pack\r\n* Leather armor, any simple weapon, and two daggers", + "key": "srd_warlock_equipment", + "name": "Equipment" + }, { "desc": "At 11th level, your patron bestows upon you a magical secret called an arcanum. Choose one 6th- level spell from the warlock spell list as this arcanum.\r\n\r\nYou can cast your arcanum spell once without expending a spell slot. You must finish a long rest before you can do so again.\r\n\r\nAt higher levels, you gain more warlock spells of your choice that can be cast in this way: one 7th- level spell at 13th level, one 8th-level spell at 15th level, and one 9th-level spell at 17th level. You regain all uses of your Mystic Arcanum when you finish a long rest.", "key": "srd_warlock_mystic-arcanum", @@ -419,11 +424,6 @@ "desc": "**Armor:** Light armor\r\n**Weapons:** Simple weapons\r\n**Tools:** None\r\n**Saving Throws:** Wisdom, Charisma\r\n**Skills:** Choose two skills from Arcana, Deception, History, Intimidation, Investigation, Nature, and Religion", "key": "srd_warlock_proficiencies", "name": "Proficiencies" - }, - { - "desc": "You start with the following equipment, in addition to the equipment granted by your background:\r\n* (*a*) a light crossbow and 20 bolts or (*b*) any simple weapon\r\n* (*a*) a component pouch or (*b*) an arcane focus\r\n* (*a*) a scholar\u2019s pack or (*b*) a dungeoneer\u2019s pack\r\n* Leather armor, any simple weapon, and two daggers", - "key": "srd_warlock_equipment", - "name": "Equipment" } ], "hit_dice": "D8", @@ -548,6 +548,16 @@ "key": "srd_wizard_arcane-tradition", "name": "Arcane Tradition" }, + { + "desc": "You start with the following equipment, in addition to the equipment granted by your background:\r\n* (*a*) a quarterstaff or (*b*) a dagger\r\n* (*a*) a component pouch or (*b*) an arcane focus\r\n* (*a*) a scholar\u2019s pack or (*b*) an explorer\u2019s pack\r\n* A spellbook", + "key": "srd_wizard_equipment", + "name": "Equipment" + }, + { + "desc": "**Armor:** None\r\n**Weapons:** Daggers, darts, slings, quarterstaffs, light crossbows\r\n**Tools:** None\r\n**Saving Throws:** Intelligence, Wisdom\r\n**Skills:** Choose two from Arcana, History, Insight, Investigation, Medicine, and Religion", + "key": "srd_wizard_proficiencies", + "name": "Proficiencies" + }, { "desc": "When you reach 20th level, you gain mastery over two powerful spells and can cast them with little effort. Choose two 3rd-level wizard spells in your spellbook as your signature spells. You always have these spells prepared, they don't count against the number of spells you have prepared, and you can cast each of them once at 3rd level without expending a spell slot. When you do so, you can't do so again until you finish a short or long rest.\r\n\r\nIf you want to cast either spell at a higher level, you must expend a spell slot as normal.", "key": "srd_wizard_signature-spells", @@ -562,16 +572,6 @@ "desc": "As a student of arcane magic, you have a spellbook containing spells that show the first glimmerings of your true power.\r\n\r\n### Cantrips\r\n\r\nAt 1st level, you know three cantrips of your choice from the wizard spell list. You learn additional wizard cantrips of your choice at higher levels, as shown in the Cantrips Known column of the Wizard table.\r\n\r\n### Spellbook\r\n\r\nAt 1st level, you have a spellbook containing six 1st- level wizard spells of your choice. Your spellbook is the repository of the wizard spells you know, except your cantrips, which are fixed in your mind.\r\n\r\n### Preparing and Casting Spells\r\n\r\nThe Wizard table shows how many spell slots you have to cast your spells of 1st level and higher. To cast one of these spells, you must expend a slot of the spell's level or higher. You regain all expended spell slots when you finish a long rest.\r\n\r\nYou prepare the list of wizard spells that are available for you to cast. To do so, choose a number of wizard spells from your spellbook equal to your Intelligence modifier + your wizard level (minimum of one spell). The spells must be of a level for which you have spell slots.\r\n\r\nFor example, if you're a 3rd-level wizard, you have four 1st-level and two 2nd-level spell slots. With an Intelligence of 16, your list of prepared spells can include six spells of 1st or 2nd level, in any combination, chosen from your spellbook. If you prepare the 1st-level spell magic missile, you can cast it using a 1st-level or a 2nd-level slot. Casting the spell doesn't remove it from your list of prepared spells.\r\n\r\nYou can change your list of prepared spells when you finish a long rest. Preparing a new list of wizard spells requires time spent studying your spellbook and memorizing the incantations and gestures you must make to cast the spell: at least 1 minute per spell level for each spell on your list.\r\n\r\n### Spellcasting Ability\r\n\r\nIntelligence is your spellcasting ability for your wizard spells, since you learn your spells through dedicated study and memorization. You use your Intelligence whenever a spell refers to your spellcasting ability. In addition, you use your Intelligence modifier when setting the saving throw DC for a wizard spell you cast and when making an attack roll with one.\r\n\r\n**Spell save DC** = 8 + your proficiency bonus + your Intelligence modifier\r\n\r\n**Spell attack modifier** = your proficiency bonus + your Intelligence modifier\r\n\r\n### Ritual Casting\r\n\r\nYou can cast a wizard spell as a ritual if that spell has the ritual tag and you have the spell in your spellbook. You don't need to have the spell prepared.\r\n\r\n### Spellcasting Focus\r\n\r\nYou can use an arcane focus as a spellcasting focus for your wizard spells.\r\n\r\n### Learning Spells of 1st Level and Higher\r\n\r\nEach time you gain a wizard level, you can add two wizard spells of your choice to your spellbook for free. Each of these spells must be of a level for which you have spell slots, as shown on the Wizard table. On your adventures, you might find other spells that you can add to your spellbook (see the \u201cYour Spellbook\u201d sidebar).", "key": "srd_wizard_spellcasting", "name": "Spellcasting" - }, - { - "desc": "**Armor:** None\r\n**Weapons:** Daggers, darts, slings, quarterstaffs, light crossbows\r\n**Tools:** None\r\n**Saving Throws:** Intelligence, Wisdom\r\n**Skills:** Choose two from Arcana, History, Insight, Investigation, Medicine, and Religion", - "key": "srd_wizard_proficiencies", - "name": "Proficiencies" - }, - { - "desc": "You start with the following equipment, in addition to the equipment granted by your background:\r\n* (*a*) a quarterstaff or (*b*) a dagger\r\n* (*a*) a component pouch or (*b*) an arcane focus\r\n* (*a*) a scholar\u2019s pack or (*b*) an explorer\u2019s pack\r\n* A spellbook", - "key": "srd_wizard_equipment", - "name": "Equipment" } ], "hit_dice": "D6", diff --git a/api_v2/tests/responses/TestObjects.test_spell_fireball.approved.json b/api_v2/tests/responses/TestObjects.test_spell_fireball.approved.json index 63af1ca5..47db93db 100644 --- a/api_v2/tests/responses/TestObjects.test_spell_fireball.approved.json +++ b/api_v2/tests/responses/TestObjects.test_spell_fireball.approved.json @@ -75,6 +75,11 @@ "key": "srd_sorcerer_ability-score-improvement", "name": "Ability Score Improvement" }, + { + "desc": "You start with the following equipment, in addition to the equipment granted by your background:\r\n* (*a*) a light crossbow and 20 bolts or (*b*) any simple weapon\r\n* (*a*) a component pouch or (*b*) an arcane focus\r\n* (*a*) a dungeoneer\u2019s pack or (*b*) an explorer\u2019s pack\r\n* Two daggers", + "key": "srd_sorcerer_equipment", + "name": "Equipment" + }, { "desc": "At 2nd level, you tap into a deep wellspring of magic within yourself. This wellspring is represented by sorcery points, which allow you to create a variety of magical effects.\r\n\r\n### Sorcery Points\r\n\r\nYou have 2 sorcery points, and you gain more as you reach higher levels, as shown in the Sorcery Points column of the Sorcerer table. You can never have more sorcery points than shown on the table for your level. You regain all spent sorcery points when you finish a long rest.\r\n\r\n### Flexible Casting\r\n\r\nYou can use your sorcery points to gain additional spell slots, or sacrifice spell slots to gain additional sorcery points. You learn other ways to use your sorcery points as you reach higher levels.\r\n\r\n***Creating Spell Slots.*** You can transform unexpended sorcery points into one spell slot as a bonus action on your turn. The Creating Spell Slots table shows the cost of creating a spell slot of a given level. You can create spell slots no higher in level than 5th.\r\n\r\nAny spell slot you create with this feature vanishes when you finish a long rest.\r\n\r\n### Creating Spell Slots (table)\r\n| Spell Slot Level | Sorcery Point Cost |\r\n| --- | --- |\r\n| 1st | 2 |\r\n| 2nd | 3 |\r\n| 3rd | 5 |\r\n| 4th | 6 |\r\n| 5th | 7|\r\n\r\n***Converting a Spell Slot to Sorcery Points.*** As a bonus action on your turn, you can expend one spell slot and gain a number of sorcery points equal to the slot's level.", "key": "srd_sorcerer_font-of-magic", @@ -104,11 +109,6 @@ "desc": "**Armor:** None\r\n**Weapons:** Daggers, darts, slings, quarterstaffs, light crossbows\r\n**Tools:** None\r\n**Saving Throws:** Constitution, Charisma\r\n**Skills:** Choose two from Arcana, Deception, Insight, Intimidation, Persuasion, and Religion", "key": "srd_sorceror_proficiencies", "name": "Proficiencies" - }, - { - "desc": "You start with the following equipment, in addition to the equipment granted by your background:\r\n* (*a*) a light crossbow and 20 bolts or (*b*) any simple weapon\r\n* (*a*) a component pouch or (*b*) an arcane focus\r\n* (*a*) a dungeoneer\u2019s pack or (*b*) an explorer\u2019s pack\r\n* Two daggers", - "key": "srd_sorcerer_equipment", - "name": "Equipment" } ], "hit_dice": "D6", @@ -225,6 +225,16 @@ "key": "srd_wizard_arcane-tradition", "name": "Arcane Tradition" }, + { + "desc": "You start with the following equipment, in addition to the equipment granted by your background:\r\n* (*a*) a quarterstaff or (*b*) a dagger\r\n* (*a*) a component pouch or (*b*) an arcane focus\r\n* (*a*) a scholar\u2019s pack or (*b*) an explorer\u2019s pack\r\n* A spellbook", + "key": "srd_wizard_equipment", + "name": "Equipment" + }, + { + "desc": "**Armor:** None\r\n**Weapons:** Daggers, darts, slings, quarterstaffs, light crossbows\r\n**Tools:** None\r\n**Saving Throws:** Intelligence, Wisdom\r\n**Skills:** Choose two from Arcana, History, Insight, Investigation, Medicine, and Religion", + "key": "srd_wizard_proficiencies", + "name": "Proficiencies" + }, { "desc": "When you reach 20th level, you gain mastery over two powerful spells and can cast them with little effort. Choose two 3rd-level wizard spells in your spellbook as your signature spells. You always have these spells prepared, they don't count against the number of spells you have prepared, and you can cast each of them once at 3rd level without expending a spell slot. When you do so, you can't do so again until you finish a short or long rest.\r\n\r\nIf you want to cast either spell at a higher level, you must expend a spell slot as normal.", "key": "srd_wizard_signature-spells", @@ -239,16 +249,6 @@ "desc": "As a student of arcane magic, you have a spellbook containing spells that show the first glimmerings of your true power.\r\n\r\n### Cantrips\r\n\r\nAt 1st level, you know three cantrips of your choice from the wizard spell list. You learn additional wizard cantrips of your choice at higher levels, as shown in the Cantrips Known column of the Wizard table.\r\n\r\n### Spellbook\r\n\r\nAt 1st level, you have a spellbook containing six 1st- level wizard spells of your choice. Your spellbook is the repository of the wizard spells you know, except your cantrips, which are fixed in your mind.\r\n\r\n### Preparing and Casting Spells\r\n\r\nThe Wizard table shows how many spell slots you have to cast your spells of 1st level and higher. To cast one of these spells, you must expend a slot of the spell's level or higher. You regain all expended spell slots when you finish a long rest.\r\n\r\nYou prepare the list of wizard spells that are available for you to cast. To do so, choose a number of wizard spells from your spellbook equal to your Intelligence modifier + your wizard level (minimum of one spell). The spells must be of a level for which you have spell slots.\r\n\r\nFor example, if you're a 3rd-level wizard, you have four 1st-level and two 2nd-level spell slots. With an Intelligence of 16, your list of prepared spells can include six spells of 1st or 2nd level, in any combination, chosen from your spellbook. If you prepare the 1st-level spell magic missile, you can cast it using a 1st-level or a 2nd-level slot. Casting the spell doesn't remove it from your list of prepared spells.\r\n\r\nYou can change your list of prepared spells when you finish a long rest. Preparing a new list of wizard spells requires time spent studying your spellbook and memorizing the incantations and gestures you must make to cast the spell: at least 1 minute per spell level for each spell on your list.\r\n\r\n### Spellcasting Ability\r\n\r\nIntelligence is your spellcasting ability for your wizard spells, since you learn your spells through dedicated study and memorization. You use your Intelligence whenever a spell refers to your spellcasting ability. In addition, you use your Intelligence modifier when setting the saving throw DC for a wizard spell you cast and when making an attack roll with one.\r\n\r\n**Spell save DC** = 8 + your proficiency bonus + your Intelligence modifier\r\n\r\n**Spell attack modifier** = your proficiency bonus + your Intelligence modifier\r\n\r\n### Ritual Casting\r\n\r\nYou can cast a wizard spell as a ritual if that spell has the ritual tag and you have the spell in your spellbook. You don't need to have the spell prepared.\r\n\r\n### Spellcasting Focus\r\n\r\nYou can use an arcane focus as a spellcasting focus for your wizard spells.\r\n\r\n### Learning Spells of 1st Level and Higher\r\n\r\nEach time you gain a wizard level, you can add two wizard spells of your choice to your spellbook for free. Each of these spells must be of a level for which you have spell slots, as shown on the Wizard table. On your adventures, you might find other spells that you can add to your spellbook (see the \u201cYour Spellbook\u201d sidebar).", "key": "srd_wizard_spellcasting", "name": "Spellcasting" - }, - { - "desc": "**Armor:** None\r\n**Weapons:** Daggers, darts, slings, quarterstaffs, light crossbows\r\n**Tools:** None\r\n**Saving Throws:** Intelligence, Wisdom\r\n**Skills:** Choose two from Arcana, History, Insight, Investigation, Medicine, and Religion", - "key": "srd_wizard_proficiencies", - "name": "Proficiencies" - }, - { - "desc": "You start with the following equipment, in addition to the equipment granted by your background:\r\n* (*a*) a quarterstaff or (*b*) a dagger\r\n* (*a*) a component pouch or (*b*) an arcane focus\r\n* (*a*) a scholar\u2019s pack or (*b*) an explorer\u2019s pack\r\n* A spellbook", - "key": "srd_wizard_equipment", - "name": "Equipment" } ], "hit_dice": "D6", diff --git a/api_v2/tests/responses/TestObjects.test_spell_wish.approved.json b/api_v2/tests/responses/TestObjects.test_spell_wish.approved.json index 33c6e8cd..d607c75f 100644 --- a/api_v2/tests/responses/TestObjects.test_spell_wish.approved.json +++ b/api_v2/tests/responses/TestObjects.test_spell_wish.approved.json @@ -21,6 +21,11 @@ "key": "srd_sorcerer_ability-score-improvement", "name": "Ability Score Improvement" }, + { + "desc": "You start with the following equipment, in addition to the equipment granted by your background:\r\n* (*a*) a light crossbow and 20 bolts or (*b*) any simple weapon\r\n* (*a*) a component pouch or (*b*) an arcane focus\r\n* (*a*) a dungeoneer\u2019s pack or (*b*) an explorer\u2019s pack\r\n* Two daggers", + "key": "srd_sorcerer_equipment", + "name": "Equipment" + }, { "desc": "At 2nd level, you tap into a deep wellspring of magic within yourself. This wellspring is represented by sorcery points, which allow you to create a variety of magical effects.\r\n\r\n### Sorcery Points\r\n\r\nYou have 2 sorcery points, and you gain more as you reach higher levels, as shown in the Sorcery Points column of the Sorcerer table. You can never have more sorcery points than shown on the table for your level. You regain all spent sorcery points when you finish a long rest.\r\n\r\n### Flexible Casting\r\n\r\nYou can use your sorcery points to gain additional spell slots, or sacrifice spell slots to gain additional sorcery points. You learn other ways to use your sorcery points as you reach higher levels.\r\n\r\n***Creating Spell Slots.*** You can transform unexpended sorcery points into one spell slot as a bonus action on your turn. The Creating Spell Slots table shows the cost of creating a spell slot of a given level. You can create spell slots no higher in level than 5th.\r\n\r\nAny spell slot you create with this feature vanishes when you finish a long rest.\r\n\r\n### Creating Spell Slots (table)\r\n| Spell Slot Level | Sorcery Point Cost |\r\n| --- | --- |\r\n| 1st | 2 |\r\n| 2nd | 3 |\r\n| 3rd | 5 |\r\n| 4th | 6 |\r\n| 5th | 7|\r\n\r\n***Converting a Spell Slot to Sorcery Points.*** As a bonus action on your turn, you can expend one spell slot and gain a number of sorcery points equal to the slot's level.", "key": "srd_sorcerer_font-of-magic", @@ -50,11 +55,6 @@ "desc": "**Armor:** None\r\n**Weapons:** Daggers, darts, slings, quarterstaffs, light crossbows\r\n**Tools:** None\r\n**Saving Throws:** Constitution, Charisma\r\n**Skills:** Choose two from Arcana, Deception, Insight, Intimidation, Persuasion, and Religion", "key": "srd_sorceror_proficiencies", "name": "Proficiencies" - }, - { - "desc": "You start with the following equipment, in addition to the equipment granted by your background:\r\n* (*a*) a light crossbow and 20 bolts or (*b*) any simple weapon\r\n* (*a*) a component pouch or (*b*) an arcane focus\r\n* (*a*) a dungeoneer\u2019s pack or (*b*) an explorer\u2019s pack\r\n* Two daggers", - "key": "srd_sorcerer_equipment", - "name": "Equipment" } ], "hit_dice": "D6", @@ -171,6 +171,16 @@ "key": "srd_wizard_arcane-tradition", "name": "Arcane Tradition" }, + { + "desc": "You start with the following equipment, in addition to the equipment granted by your background:\r\n* (*a*) a quarterstaff or (*b*) a dagger\r\n* (*a*) a component pouch or (*b*) an arcane focus\r\n* (*a*) a scholar\u2019s pack or (*b*) an explorer\u2019s pack\r\n* A spellbook", + "key": "srd_wizard_equipment", + "name": "Equipment" + }, + { + "desc": "**Armor:** None\r\n**Weapons:** Daggers, darts, slings, quarterstaffs, light crossbows\r\n**Tools:** None\r\n**Saving Throws:** Intelligence, Wisdom\r\n**Skills:** Choose two from Arcana, History, Insight, Investigation, Medicine, and Religion", + "key": "srd_wizard_proficiencies", + "name": "Proficiencies" + }, { "desc": "When you reach 20th level, you gain mastery over two powerful spells and can cast them with little effort. Choose two 3rd-level wizard spells in your spellbook as your signature spells. You always have these spells prepared, they don't count against the number of spells you have prepared, and you can cast each of them once at 3rd level without expending a spell slot. When you do so, you can't do so again until you finish a short or long rest.\r\n\r\nIf you want to cast either spell at a higher level, you must expend a spell slot as normal.", "key": "srd_wizard_signature-spells", @@ -185,16 +195,6 @@ "desc": "As a student of arcane magic, you have a spellbook containing spells that show the first glimmerings of your true power.\r\n\r\n### Cantrips\r\n\r\nAt 1st level, you know three cantrips of your choice from the wizard spell list. You learn additional wizard cantrips of your choice at higher levels, as shown in the Cantrips Known column of the Wizard table.\r\n\r\n### Spellbook\r\n\r\nAt 1st level, you have a spellbook containing six 1st- level wizard spells of your choice. Your spellbook is the repository of the wizard spells you know, except your cantrips, which are fixed in your mind.\r\n\r\n### Preparing and Casting Spells\r\n\r\nThe Wizard table shows how many spell slots you have to cast your spells of 1st level and higher. To cast one of these spells, you must expend a slot of the spell's level or higher. You regain all expended spell slots when you finish a long rest.\r\n\r\nYou prepare the list of wizard spells that are available for you to cast. To do so, choose a number of wizard spells from your spellbook equal to your Intelligence modifier + your wizard level (minimum of one spell). The spells must be of a level for which you have spell slots.\r\n\r\nFor example, if you're a 3rd-level wizard, you have four 1st-level and two 2nd-level spell slots. With an Intelligence of 16, your list of prepared spells can include six spells of 1st or 2nd level, in any combination, chosen from your spellbook. If you prepare the 1st-level spell magic missile, you can cast it using a 1st-level or a 2nd-level slot. Casting the spell doesn't remove it from your list of prepared spells.\r\n\r\nYou can change your list of prepared spells when you finish a long rest. Preparing a new list of wizard spells requires time spent studying your spellbook and memorizing the incantations and gestures you must make to cast the spell: at least 1 minute per spell level for each spell on your list.\r\n\r\n### Spellcasting Ability\r\n\r\nIntelligence is your spellcasting ability for your wizard spells, since you learn your spells through dedicated study and memorization. You use your Intelligence whenever a spell refers to your spellcasting ability. In addition, you use your Intelligence modifier when setting the saving throw DC for a wizard spell you cast and when making an attack roll with one.\r\n\r\n**Spell save DC** = 8 + your proficiency bonus + your Intelligence modifier\r\n\r\n**Spell attack modifier** = your proficiency bonus + your Intelligence modifier\r\n\r\n### Ritual Casting\r\n\r\nYou can cast a wizard spell as a ritual if that spell has the ritual tag and you have the spell in your spellbook. You don't need to have the spell prepared.\r\n\r\n### Spellcasting Focus\r\n\r\nYou can use an arcane focus as a spellcasting focus for your wizard spells.\r\n\r\n### Learning Spells of 1st Level and Higher\r\n\r\nEach time you gain a wizard level, you can add two wizard spells of your choice to your spellbook for free. Each of these spells must be of a level for which you have spell slots, as shown on the Wizard table. On your adventures, you might find other spells that you can add to your spellbook (see the \u201cYour Spellbook\u201d sidebar).", "key": "srd_wizard_spellcasting", "name": "Spellcasting" - }, - { - "desc": "**Armor:** None\r\n**Weapons:** Daggers, darts, slings, quarterstaffs, light crossbows\r\n**Tools:** None\r\n**Saving Throws:** Intelligence, Wisdom\r\n**Skills:** Choose two from Arcana, History, Insight, Investigation, Medicine, and Religion", - "key": "srd_wizard_proficiencies", - "name": "Proficiencies" - }, - { - "desc": "You start with the following equipment, in addition to the equipment granted by your background:\r\n* (*a*) a quarterstaff or (*b*) a dagger\r\n* (*a*) a component pouch or (*b*) an arcane focus\r\n* (*a*) a scholar\u2019s pack or (*b*) an explorer\u2019s pack\r\n* A spellbook", - "key": "srd_wizard_equipment", - "name": "Equipment" } ], "hit_dice": "D6",