WIP: Adding Apothecary class

This commit is contained in:
Thom Werring 2023-11-29 17:02:19 +01:00
parent b0a4adf33f
commit 206345797f
6 changed files with 3401 additions and 127 deletions

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="JavaScriptLibraryMappings">
<file url="file://$PROJECT_DIR$" libraries="{Node.js Core}" />
</component>
</project>

27
.idea/jsonSchemas.xml Normal file
View File

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="JsonSchemaMappingsProjectConfiguration">
<state>
<map>
<entry key="5etools">
<value>
<SchemaInfo>
<option name="generatedName" value="New Schema" />
<option name="name" value="5etools" />
<option name="relativePathToSchema" value="https://raw.githubusercontent.com/TheGiddyLimit/5etools-utils/master/schema/brew-fast/homebrew.json" />
<option name="patterns">
<list>
<Item>
<option name="pattern" value="true" />
<option name="path" value="homebrew/**.json" />
<option name="mappingKind" value="Pattern" />
</Item>
</list>
</option>
</SchemaInfo>
</value>
</entry>
</map>
</state>
</component>
</project>

2946
homebrew/SCGtD.json Normal file

File diff suppressed because it is too large Load Diff

View File

@ -19,26 +19,193 @@
], ],
"hd": { "hd": {
"number": 0, "number": 1,
"faces": 0 "faces": 8
}, },
"proficiency": [ "proficiency": [
"str", "int",
"str" "wis"
],
"classTableGroups": [
{
"colLabels": [
"{@filter Cantrips Known|spells|level=0|class=Apothecary}",
"{@filter Spells Known|spells|class=Apothecary}",
"Spell Slots",
"Slot Level",
"{@filter Esoteric Theories|optionalfeatures|source=SCGtD|Feature Type=ET}"
],
"rows": [
[
2,
2,
1,
"1st",
0
],
[
2,
3,
2,
"1st",
2
],
[
2,
4,
2,
"2nd",
2
],
[
3,
5,
2,
"2nd",
2
],
[
3,
6,
2,
"3rd",
3
],
[
3,
7,
2,
"3rd",
3
],
[
3,
8,
2,
"4th",
4
],
[
3,
9,
2,
"4th",
4
],
[
3,
10,
2,
"5th",
5
],
[
4,
10,
2,
"5th",
5
],
[
4,
11,
3,
"5th",
5
],
[
4,
11,
3,
"5th",
6
],
[
4,
12,
3,
"5th",
6
],
[
4,
12,
3,
"5th",
6
],
[
4,
13,
3,
"5th",
7
],
[
4,
13,
3,
"5th",
7
],
[
4,
14,
4,
"5th",
7
],
[
4,
14,
4,
"5th",
8
],
[
4,
15,
4,
"5th",
8
],
[
4,
15,
4,
"5th",
8
]
]
}
], ],
"startingProficiencies": { "startingProficiencies": {
"armor": [ "armor": [
"light" "light",
"medium"
], ],
"weapons": [ "weapons": [
"simple and martial are rendered as x weapons, but you can write any string that you want." "simple",
"{@item short sword|phb|short swords}",
"{@item hand crossbow|phb|hand crossbows}"
], ],
"tools": [ "tools": [
"Name of any tool or artisan tools" "Any one tool proficiency",
"Plus another of your choice from the following: poisoner's kit, herbalism kit, or alchemist's supplies"
], ],
"skills": [ "skills": [
{ {
"skillName": true "choose": {
"from": [
"arcana",
"history",
"investigation",
"medicine",
"nature",
"religion"
],
"count": 2
}
} }
] ]
}, },
@ -47,21 +214,18 @@
"Each string will appear as a list entry" "Each string will appear as a list entry"
], ],
"additionalFromBackground": true, "additionalFromBackground": true,
"goldAlternative": "{@dice xdy}" "goldAlternative": "{@dice 4d4 × 10|4d4 × 10|Starting Gold}"
}, },
"multiclassing": { "multiclassing": {
"requirements": { "requirements": {
"str": 0 "int": 13
}, },
"proficienciesGained": { "proficienciesGained": {
"armor": [ "armor": [
"light" "light"
], ],
"weapons": [
"simple"
],
"tools": [ "tools": [
"" "Any one tool proficiency"
], ],
"skills": [ "skills": [
{ {
@ -70,10 +234,156 @@
] ]
} }
}, },
"casterProgression": "full", "casterProgression": "pact",
"spellcastingAbility": "str", "spellcastingAbility": "int",
"classSpells": [ "classSpells": [
"" "Acid Burn|SCGtD",
"Acid Splash",
"Bacterial Barrage|SCGtD",
"Chill Touch",
"Guidance",
"Light",
"Mending",
"Message",
"Poison Needle|SCGtD",
"Poison Spray",
"Resistance",
"Shocking Grasp",
"Spare the Dying",
"Thaumaturgy",
"Acrid Orb|SCGtD",
"Alarm",
"Comprehend Languages",
"Create or Destroy Water",
"Cure Wounds",
"Detect Evil and Good",
"Detect Magic",
"Detect Poison and Disease",
"Envenom|SCGtD",
"False Life",
"Feather Fall",
"Floating Disk",
"Fog Cloud",
"Grease",
"Healing Word",
"Hideous Laughter",
"Identify",
"Illusory Script",
"Infect|SCGtD",
"Jump",
"Purify Food and Drink",
"Sleep",
"Stream of Consumption|SCGtD",
"Toxic Shield|SCGtD",
"Unseen Servant",
"Acid Arrow",
"Aid",
"Biohazard|SCGtD",
"Blindness/Deafness",
"Caustic Grip|SCGtD",
"Enhance Ability",
"Enlarge/Reduce",
"Gentle Repose",
"Grasping Ghost|SCGtD",
"Hold Person",
"Invigorate|SCGtD",
"Lesser Restoration",
"Ocular Necrosis|SCGtD",
"Protection from Poison",
"Ray of Enfeeblement",
"See Invisibility",
"Silence",
"Spider Climb",
"Web",
"Bestow Curse",
"Corrosive Blast|SCGtD",
"Dispel Magic",
"Fear",
"Fetid Blade|SCGtD",
"Gaseous Form",
"Glyph of Warding",
"Haste",
"Hypnotic Pattern",
"Magic Circle",
"Mass Healing Word",
"Pestilence|SCGtD",
"Purge Contamination",
"Protection from Energy",
"Remove Curse",
"Revivify",
"Sending",
"Slow",
"Speak with Dead",
"Stinking Cloud",
"Tranquilizing Toxin|SCGtD",
"Vampiric Touch",
"Venomous Aura|SCGtD",
"Water Breathing",
"Black Tentacles",
"Blight",
"Blood Worm|SCGtD",
"Corpse Explosion|SCGtD",
"Corrupting Spores|SCGtDm",
"Death Ward",
"Freedom of Movement",
"Last Rites|SCGtD",
"Poison Wave|SCGtD",
"Polymorph",
"Stoneskin",
"Vitriolic Ichor|SCGtD",
"Acid Rain|SCGtD",
"Antilife Shell",
"Cloudkill",
"Contact Other Plane",
"Greater Restoration",
"Hold Monster",
"Mass Cure Wounds",
"Nerve Gas|SCGtD",
"Raise Dead",
"Scrying",
"Septic Shock|SCGtD",
"Telepathic Bond",
"Teleportation Circle",
"Toxic Barrage|SCGtD",
"Chain Lighting",
"Circle of Death",
"Create Undead",
"Disintegrate",
"Eyebite",
"Flesh to Stone",
"Globe of Invulnerability",
"Harm",
"Heal",
"Mephitic Vapors|SCGtD",
"True Seeing",
"Vile Necrosis|SCGtD",
"Etherealness",
"Finger of Death",
"Forcecage",
"Miasma|SCGtD",
"Plane Shift",
"Prismatic Spray",
"Grievous Wounds|SCGtD",
"Regenerate",
"Resurrection",
"Antimagic Field",
"Antipathy/Sympathy",
"Breath of Nightshade|SCGtD",
"Clone",
"Dominate Monster",
"Feeblemind",
"Mind Blank",
"Plague Wind|SCGtD",
"Power Word Stun",
"Astral Projection",
"Foresight",
"Mass Heal",
"Pandemic|SCGtD",
"Power Word Kill",
"Time Stop",
"Touch of Death|SCGtD",
"True Polymorph",
"True Resurrection"
], ],
"fluff": [ "fluff": [
@ -90,10 +400,10 @@
"subclassFeatures": [ "subclassFeatures": [
], ],
"casterProgression": "full", "casterProgression": "pact",
"spellcastingAbility": "str", "spellcastingAbility": "int",
"subclassSpells": [ "subclassSpells": [
"" ""
] ]
}] }]
} }

View File

@ -12,10 +12,61 @@
"dateLastModified": 0 "dateLastModified": 0
}, },
"spell": [ "spell": [
{
"name": "Acid Burn",
"source": "SCGtD",
"page": 186,
"level": 0,
"school": "V",
"time": [
{
"number": 1,
"unit": "action"
}
],
"range": {
"type": "cone",
"distance": {
"type": "feet",
"amount": 15
}
},
"components": {
"v": true,
"s": true
},
"duration": [
{
"type": "instant"
}
],
"entries": [
"You magically produce a spray of acidic formula in a 15-foot cone in front of you. All creatures in the cone must succeed on a Dexterity saving throw or take {@damage 1d6} acid damage.",
"This spell's damage increases by {@dice 1d6} when you reach 5th level ({@dice 2d6}), 11th level ({@dice 3d6}), and 17th level ({@dice 4d6})."
],
"scalingLevelDice": {
"label": "acid damage",
"scaling": {
"1": "1d6",
"5": "2d6",
"11": "3d6",
"17": "4d6"
}
},
"damageInflict": [
"acid"
],
"savingThrow": [
"dexterity"
],
"miscTags": [
"SCL"
]
},
{ {
"name": "Bacterial Barrage", "name": "Bacterial Barrage",
"source": "SCGtD", "source": "SCGtD",
"page": 0, "page": 186,
"level": 0, "level": 0,
"school": "N", "school": "N",
"time": [ "time": [
@ -73,73 +124,10 @@
] ]
} }
}, },
{
"name": "Acid Burn",
"source": "SCGtD",
"page": 0,
"level": 0,
"school": "V",
"time": [
{
"number": 1,
"unit": "action"
}
],
"range": {
"type": "cone",
"distance": {
"type": "feet",
"amount": 15
}
},
"components": {
"v": true,
"s": true
},
"duration": [
{
"type": "instant"
}
],
"entries": [
"You magically produce a spray of acidic formula in a 15-foot cone in front of you. All creatures in the cone must succeed on a Dexterity saving throw or take {@damage 1d6} acid damage.",
"This spell's damage increases by {@dice 1d6} when you reach 5th level ({@dice 2d6}), 11th level ({@dice 3d6}), and 17th level ({@dice 4d6})."
],
"scalingLevelDice": {
"label": "acid damage",
"scaling": {
"1": "1d6",
"5": "2d6",
"11": "3d6",
"17": "4d6"
}
},
"damageInflict": [
"acid"
],
"savingThrow": [
"dexterity"
],
"miscTags": [
"SCL"
],
"classes": {
"fromClassList": [
{
"name": "Sorcerer",
"source": "PHB"
},
{
"name": "Wizard",
"source": "PHB"
}
]
}
},
{ {
"name": "Poison Needle", "name": "Poison Needle",
"source": "SCGtD", "source": "SCGtD",
"page": 0, "page": 186,
"level": 0, "level": 0,
"school": "C", "school": "C",
"time": [ "time": [
@ -217,7 +205,7 @@
{ {
"name": "Acrid Orb", "name": "Acrid Orb",
"source": "SCGtD", "source": "SCGtD",
"page": 0, "page": 187,
"level": 1, "level": 1,
"school": "V", "school": "V",
"time": [ "time": [
@ -288,7 +276,7 @@
{ {
"name": "Envenom", "name": "Envenom",
"source": "SCGtD", "source": "SCGtD",
"page": 0, "page": 187,
"level": 1, "level": 1,
"school": "C", "school": "C",
"time": [ "time": [
@ -366,7 +354,7 @@
{ {
"name": "Infect", "name": "Infect",
"source": "SCGtD", "source": "SCGtD",
"page": 0, "page": 187,
"level": 1, "level": 1,
"school": "N", "school": "N",
"time": [ "time": [
@ -440,7 +428,7 @@
{ {
"name": "Stream of Consumption", "name": "Stream of Consumption",
"source": "SCGtD", "source": "SCGtD",
"page": 0, "page": 187,
"level": 1, "level": 1,
"school": "N", "school": "N",
"time": [ "time": [
@ -503,7 +491,7 @@
{ {
"name": "Toxic Shield", "name": "Toxic Shield",
"source": "SCGtD", "source": "SCGtD",
"page": 0, "page": 187,
"level": 1, "level": 1,
"school": "C", "school": "C",
"time": [ "time": [
@ -570,7 +558,7 @@
{ {
"name": "Biohazard", "name": "Biohazard",
"source": "SCGtD", "source": "SCGtD",
"page": 0, "page": 187,
"level": 2, "level": 2,
"school": "C", "school": "C",
"time": [ "time": [
@ -649,7 +637,7 @@
{ {
"name": "Caustic Grip", "name": "Caustic Grip",
"source": "SCGtD", "source": "SCGtD",
"page": 0, "page": 188,
"level": 2, "level": 2,
"school": "V", "school": "V",
"time": [ "time": [
@ -723,7 +711,7 @@
{ {
"name": "Grasping Ghost", "name": "Grasping Ghost",
"source": "SCGtD", "source": "SCGtD",
"page": 0, "page": 188,
"level": 2, "level": 2,
"school": "N", "school": "N",
"time": [ "time": [
@ -791,7 +779,7 @@
{ {
"name": "Invigorate", "name": "Invigorate",
"source": "SCGtD", "source": "SCGtD",
"page": 0, "page": 188,
"level": 2, "level": 2,
"school": "A", "school": "A",
"time": [ "time": [
@ -859,7 +847,7 @@
{ {
"name": "Ocular Necrosis", "name": "Ocular Necrosis",
"source": "SCGtD", "source": "SCGtD",
"page": 0, "page": 188,
"level": 2, "level": 2,
"school": "N", "school": "N",
"time": [ "time": [
@ -924,7 +912,7 @@
{ {
"name": "Corrosive Blast", "name": "Corrosive Blast",
"source": "SCGtD", "source": "SCGtD",
"page": 0, "page": 188,
"level": 3, "level": 3,
"school": "V", "school": "V",
"time": [ "time": [
@ -985,7 +973,7 @@
{ {
"name": "Fetid Blade", "name": "Fetid Blade",
"source": "SCGtD", "source": "SCGtD",
"page": 0, "page": 188,
"level": 3, "level": 3,
"school": "V", "school": "V",
"time": [ "time": [
@ -1056,7 +1044,7 @@
{ {
"name": "Pestilence", "name": "Pestilence",
"source": "SCGtD", "source": "SCGtD",
"page": 0, "page": 189,
"level": 3, "level": 3,
"school": "N", "school": "N",
"time": [ "time": [
@ -1127,7 +1115,7 @@
{ {
"name": "Purge Contamination", "name": "Purge Contamination",
"source": "SCGtD", "source": "SCGtD",
"page": 0, "page": 189,
"level": 3, "level": 3,
"school": "A", "school": "A",
"time": [ "time": [
@ -1202,7 +1190,7 @@
{ {
"name": "Tranquilizing Toxin", "name": "Tranquilizing Toxin",
"source": "SCGtD", "source": "SCGtD",
"page": 0, "page": 189,
"level": 3, "level": 3,
"school": "V", "school": "V",
"time": [ "time": [
@ -1261,7 +1249,7 @@
{ {
"name": "Venomous Aura", "name": "Venomous Aura",
"source": "SCGtD", "source": "SCGtD",
"page": 0, "page": 189,
"level": 3, "level": 3,
"school": "T", "school": "T",
"time": [ "time": [
@ -1309,7 +1297,7 @@
{ {
"name": "Blood Worm", "name": "Blood Worm",
"source": "SCGtD", "source": "SCGtD",
"page": 0, "page": 189,
"level": 4, "level": 4,
"school": "N", "school": "N",
"time": [ "time": [
@ -1382,7 +1370,7 @@
{ {
"name": "Corpse Explosion", "name": "Corpse Explosion",
"source": "SCGtD", "source": "SCGtD",
"page": 0, "page": 189,
"level": 4, "level": 4,
"school": "N", "school": "N",
"time": [ "time": [
@ -1444,7 +1432,7 @@
{ {
"name": "Corrupting Spores", "name": "Corrupting Spores",
"source": "SCGtD", "source": "SCGtD",
"page": 0, "page": 190,
"level": 4, "level": 4,
"school": "N", "school": "N",
"time": [ "time": [
@ -1517,7 +1505,7 @@
{ {
"name": "Last Rites", "name": "Last Rites",
"source": "SCGtD", "source": "SCGtD",
"page": 0, "page": 190,
"level": 4, "level": 4,
"school": "A", "school": "A",
"time": [ "time": [
@ -1582,7 +1570,7 @@
{ {
"name": "Poison Wave", "name": "Poison Wave",
"source": "SCGtD", "source": "SCGtD",
"page": 0, "page": 190,
"level": 4, "level": 4,
"school": "C", "school": "C",
"time": [ "time": [
@ -1651,7 +1639,7 @@
{ {
"name": "Summon the Thing with the Writhing Tail", "name": "Summon the Thing with the Writhing Tail",
"source": "SCGtD", "source": "SCGtD",
"page": 0, "page": 190,
"level": 4, "level": 4,
"school": "C", "school": "C",
"time": [ "time": [
@ -1719,7 +1707,7 @@
{ {
"name": "Vitriolic Ichor", "name": "Vitriolic Ichor",
"source": "SCGtD", "source": "SCGtD",
"page": 0, "page": 191,
"level": 4, "level": 4,
"school": "T", "school": "T",
"time": [ "time": [
@ -1778,7 +1766,7 @@
{ {
"name": "Acid Rain", "name": "Acid Rain",
"source": "SCGtD", "source": "SCGtD",
"page": 0, "page": 191,
"level": 5, "level": 5,
"school": "C", "school": "C",
"time": [ "time": [
@ -1850,7 +1838,7 @@
{ {
"name": "Nerve Gas", "name": "Nerve Gas",
"source": "SCGtD", "source": "SCGtD",
"page": 0, "page": 191,
"level": 5, "level": 5,
"school": "N", "school": "N",
"time": [ "time": [
@ -1928,7 +1916,7 @@
{ {
"name": "Septic Shock", "name": "Septic Shock",
"source": "SCGtD", "source": "SCGtD",
"page": 0, "page": 192,
"level": 5, "level": 5,
"school": "N", "school": "N",
"time": [ "time": [
@ -1990,7 +1978,7 @@
{ {
"name": "Toxic Barrage", "name": "Toxic Barrage",
"source": "SCGtD", "source": "SCGtD",
"page": 0, "page": 192,
"level": 5, "level": 5,
"school": "C", "school": "C",
"time": [ "time": [
@ -2061,7 +2049,7 @@
{ {
"name": "Mephitic Vapors", "name": "Mephitic Vapors",
"source": "SCGtD", "source": "SCGtD",
"page": 0, "page": 192,
"level": 6, "level": 6,
"school": "C", "school": "C",
"time": [ "time": [
@ -2141,7 +2129,7 @@
{ {
"name": "Vile Necrosis", "name": "Vile Necrosis",
"source": "SCGtD", "source": "SCGtD",
"page": 0, "page": 192,
"level": 6, "level": 6,
"school": "N", "school": "N",
"time": [ "time": [
@ -2202,7 +2190,7 @@
{ {
"name": "Contamination Immunity", "name": "Contamination Immunity",
"source": "SCGtD", "source": "SCGtD",
"page": 0, "page": 192,
"level": 7, "level": 7,
"school": "A", "school": "A",
"time": [ "time": [
@ -2279,7 +2267,7 @@
{ {
"name": "Grievous Wounds", "name": "Grievous Wounds",
"source": "SCGtD", "source": "SCGtD",
"page": 0, "page": 193,
"level": 7, "level": 7,
"school": "N", "school": "N",
"time": [ "time": [
@ -2331,7 +2319,7 @@
{ {
"name": "Miasma", "name": "Miasma",
"source": "SCGtD", "source": "SCGtD",
"page": 0, "page": 193,
"level": 7, "level": 7,
"school": "V", "school": "V",
"time": [ "time": [
@ -2404,7 +2392,7 @@
{ {
"name": "Pandemic", "name": "Pandemic",
"source": "SCGtD", "source": "SCGtD",
"page": 0, "page": 193,
"level": 9, "level": 9,
"school": "C", "school": "C",
"time": [ "time": [
@ -2466,7 +2454,7 @@
{ {
"name": "Touch of Death", "name": "Touch of Death",
"source": "SCGtD", "source": "SCGtD",
"page": 0, "page": 193,
"level": 9, "level": 9,
"school": "N", "school": "N",
"time": [ "time": [
@ -2529,7 +2517,7 @@
{ {
"name": "Breath of Nightshade", "name": "Breath of Nightshade",
"source": "SCGtD", "source": "SCGtD",
"page": 0, "page": 193,
"level": 8, "level": 8,
"school": "C", "school": "C",
"time": [ "time": [
@ -2586,7 +2574,7 @@
{ {
"name": "Plague Wind", "name": "Plague Wind",
"source": "SCGtD", "source": "SCGtD",
"page": 0, "page": 193,
"level": 8, "level": 8,
"school": "C", "school": "C",
"time": [ "time": [
@ -2645,7 +2633,7 @@
{ {
"name": "Neutralizing Field", "name": "Neutralizing Field",
"source": "SCGtD", "source": "SCGtD",
"page": 0, "page": 192,
"level": 5, "level": 5,
"school": "A", "school": "A",
"time": [ "time": [
@ -2743,7 +2731,7 @@
"name": "The Thing with the Writhing Tail", "name": "The Thing with the Writhing Tail",
"isNamedCreature": true, "isNamedCreature": true,
"source": "SCGtD", "source": "SCGtD",
"page": 0, "page": 191,
"summonedBySpell": "Summon the Thing with the Writhing Tail|SCGtD", "summonedBySpell": "Summon the Thing with the Writhing Tail|SCGtD",
"summonedBySpellLevel": 4, "summonedBySpellLevel": 4,
"size": [ "size": [
@ -2842,4 +2830,4 @@
} }
] ]
} }

View File

@ -52,9 +52,6 @@ const homebrew = sources.reduce((result, source) => {
return result; return result;
}, meta); }, meta);
console.log(homebrew.subclass);
const outFile = path.join(HOMEBREW_DIR, `${project}.json`); const outFile = path.join(HOMEBREW_DIR, `${project}.json`);
if (fs.existsSync(outFile)) { if (fs.existsSync(outFile)) {
fs.unlinkSync(outFile); fs.unlinkSync(outFile);