Skip to content

Commit

Permalink
v2.1.1
Browse files Browse the repository at this point in the history
  • Loading branch information
TheGiddyLimit committed Sep 22, 2024
1 parent b9251b1 commit 2039e64
Show file tree
Hide file tree
Showing 29 changed files with 299 additions and 126 deletions.
2 changes: 1 addition & 1 deletion css/classes.css

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion css/main.css

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions data/bestiary/bestiary-xphb.json
Original file line number Diff line number Diff line change
Expand Up @@ -5173,8 +5173,8 @@
"path": "bestiary/skeleton.mp3"
},
"attachedItems": [
"shortbow|phb",
"shortsword|phb"
"shortbow|xphb",
"shortsword|xphb"
],
"senseTags": [
"D"
Expand Down
6 changes: 5 additions & 1 deletion data/book/book-xphb.json
Original file line number Diff line number Diff line change
Expand Up @@ -5390,7 +5390,11 @@
"id": "0f5",
"entries": [
"Sometimes your DM will determine whether your character notices something without asking you to make a Wisdom ({@skill Perception|XPHB}) check; the DM uses your Passive Perception instead. Passive Perception is a score that reflects a general awareness of your surroundings when you're not actively looking for something. Use this formula to determine your Passive Perception score:",
"{@b Passive Perception} = 10 + Wisdom ({@skill Perception|XPHB}) check modifier",
{
"type": "abilityGeneric",
"name": "Passive Perception",
"text": "10 + Wisdom ({@skill Perception|XPHB}) check modifier"
},
"Include all modifiers that apply to your Wisdom ({@skill Perception|XPHB}) checks. For example, if your character has a Wisdom of 15 and proficiency in the {@skill Perception|XPHB} skill, you have a Passive Perception of 14 (10 + 2 for your Wisdom modifier + 2 for proficiency)."
]
},
Expand Down
7 changes: 6 additions & 1 deletion data/changelog.json
Original file line number Diff line number Diff line change
Expand Up @@ -2791,6 +2791,11 @@
"date": "2024-09-21",
"title": "It's 5 o'clock, Somewhere",
"titleAlt": "I Need A Drink",
"txt": "- Added Puncheons and Flagons: The Official Dungeons & Dragons Cocktail Book (thanks @ Lyra)\n- Added \"Reprinted as ...\" links to reprinted classes/subclasses on the Classes page\n- Fixed header \"Toggle Visibility\" (`[-]`) buttons failing to collapse inline text in some cases\n- Fixed DM Screen panel \"Add Tab\" button failing to register clicks\n- (Brew) Added dynamic generation of subclasses for 2024-era classes, if a subclass was brewed against a 2014-era class\n- (Brew) Fixed Blocklist crash when specific homebrews are loaded\n- (Fixed typos/added tags)"
"txt": "- Added Puncheons and Flagons: The Official Dungeons & Dragons Cocktail Book (thanks @ Lyra)\n- Added \"Reprinted as...\" links to reprinted classes/subclasses on the Classes page\n- Fixed header \"Toggle Visibility\" (`[-]`) buttons failing to collapse inline text in some cases\n- Fixed DM Screen panel \"Add Tab\" button failing to register clicks\n- (Brew) Added dynamic generation of subclasses for 2024-era classes, if a subclass was brewed against a 2014-era class\n- (Brew) Fixed Blocklist crash when specific homebrews are loaded\n- (Fixed typos/added tags)"
},
{
"ver": "2.1.1",
"date": "2024-09-22",
"txt": "- Added \"Gear\" display to 2024-style Bestiary statblocks\n- (Brew) Added \"Partnered\" filter to Get Homebrew\n- (Brew) Fixed dynamic generation of 2024-compatible subclasses\n- (Brew) Fixed race \"reprintedAs\" being applied to subraces\n- (Fixed typos/added tags)"
}
]
4 changes: 2 additions & 2 deletions data/class/class-bard.json
Original file line number Diff line number Diff line change
Expand Up @@ -2407,7 +2407,7 @@
"type": "entries",
"name": "Cantrips",
"entries": [
"You know two cantrips of your choice from the {@filter Bard spell list|spells|class=Bard}. Dancing Lights and Vicious Mockery are recommended.",
"You know two cantrips of your choice from the {@filter Bard spell list|spells|class=Bard}. {@spell Dancing Lights|XPHB} and {@spell Vicious Mockery|XPHB} are recommended.",
"Whenever you gain a Bard level, you can replace one of your cantrips with another cantrip of your choice from the {@filter Bard spell list|spells|class=Bard}.",
"When you reach Bard levels 4 and 10, you learn another cantrip of your choice from the {@filter Bard spell list|spells|class=Bard}, as shown in the Cantrips column of the Bard Features table."
]
Expand Down Expand Up @@ -4184,7 +4184,7 @@
"header": 2,
"entries": [
"You can attack twice instead of once whenever you take the {@action Attack|XPHB} action on your turn.",
"In addition, you can cast one of your can trips that has a casting time of an action in place of one of those attacks."
"In addition, you can cast one of your cantrips that has a casting time of an action in place of one of those attacks."
]
},
{
Expand Down
2 changes: 1 addition & 1 deletion data/class/class-fighter.json
Original file line number Diff line number Diff line change
Expand Up @@ -4782,7 +4782,7 @@
"type": "entries",
"name": "Cantrips",
"entries": [
"You know two cantrips of your choice from the {@filter Wizard spell list|spells|class=Wizard} (see that class's section for its list). Ray of Frost and Shocking Grasp are recommended. Whenever you gain a Fighter level, you can replace one of these cantrips with another cantrip of your choice from the {@filter Wizard spell list|spells|class=Wizard}.",
"You know two cantrips of your choice from the {@filter Wizard spell list|spells|class=Wizard} (see that class's section for its list). {@spell Ray of Frost|XPHB} and {@spell Shocking Grasp|XPHB} are recommended. Whenever you gain a Fighter level, you can replace one of these cantrips with another cantrip of your choice from the {@filter Wizard spell list|spells|class=Wizard}.",
"When you reach Fighter level 10, you learn another Wizard cantrip of your choice."
]
},
Expand Down
2 changes: 1 addition & 1 deletion data/class/class-monk.json
Original file line number Diff line number Diff line change
Expand Up @@ -2121,7 +2121,7 @@
"type": "list",
"items": [
"{@filter Simple Melee Weapons|items|type=simple weapon;melee weapon=sand}",
"{@filter Martial Weapons that have the Light property|items|type=martial weapon|property=light}"
"{@filter Martial Melee Weapons that have the Light property|items|type=martial weapon;melee weapon=sand|property=light}"
]
},
"You gain the following benefits while you are unarmed or wielding only Monk weapons and you aren't wearing armor or wielding a {@item Shield|XPHB}.",
Expand Down
2 changes: 1 addition & 1 deletion data/class/class-paladin.json
Original file line number Diff line number Diff line change
Expand Up @@ -2039,7 +2039,7 @@
"type": "entries",
"name": "Prepared Spells of Level 1+",
"entries": [
"You prepare the list of level 1+ spells that are available for you to cast with this feature. To start, choose two level 1 Paladin spells. Heroism and Searing Smite are recommended.",
"You prepare the list of level 1+ spells that are available for you to cast with this feature. To start, choose two {@filter level 1 Paladin spells|spells|class=Paladin|level=1}. {@spell Heroism|XPHB} and {@spell Searing Smite|XPHB} are recommended.",
"The number of spells on your list increases as you gain Paladin levels, as shown in the Prepared Spells column of the Paladin Features table. Whenever that number increases, choose additional Paladin spells until the number of spells on your list matches the number in the Paladin Features table. The chosen spells must be of a level for which you have spell slots. For example, if you're a level 5 Paladin, your list of prepared spells can include six Paladin spells of level 1 or 2 in any combination.",
"If another Paladin feature gives you spells that you always have prepared, those spells don't count against the number of spells you can prepare with this feature, but those spells otherwise count as Paladin spells for you."
]
Expand Down
7 changes: 4 additions & 3 deletions data/class/class-ranger.json
Original file line number Diff line number Diff line change
Expand Up @@ -481,8 +481,9 @@
],
"startingProficiencies": {
"armor": [
"light",
"medium",
"light"
"shield"
],
"weapons": [
"simple",
Expand Down Expand Up @@ -2035,7 +2036,7 @@
"type": "entries",
"name": "Prepared Spells of Level 1+",
"entries": [
"You prepare the list of level 1+ spells that are available for you to cast with this feature. To start, choose two level 1 Ranger spells. Cure Wounds and Ensnaring Strike are recommended.",
"You prepare the list of level 1+ spells that are available for you to cast with this feature. To start, choose two {@filter level 1 Ranger spells|spells|class=Ranger|level=1}. {@spell Cure Wounds|XPHB} and {@spell Ensnaring Strike|XPHB} are recommended.",
"The number of spells on your list increases as you gain Ranger levels, as shown in the Prepared Spells column of the Ranger Features table. Whenever that number increases, choose additional Ranger spells until the number of spells on your list matches the number in the Ranger Features table. The chosen spells must be of a level for which you have spell slots. For example, if you're a level 5 Ranger, your list of prepared spells can include six Ranger spells of level 1 or 2 in any combination.",
"If another Ranger feature gives you spells that you always have prepared, those spells don't count against the number of spells you can prepare with this feature, but those spells otherwise count as Ranger spells for you."
]
Expand Down Expand Up @@ -4186,7 +4187,7 @@
"level": 3,
"entries": [
"You gain {@sense Darkvision|XPHB} with a range of 60 feet. If you already have {@sense Darkvision|XPHB} when you gain this feature, its range increases by 60 feet.",
"You are also adept at evading creatures that rely on {@sense Darkvision|XPHB}. While entirely in {@variantrule Darkness|XPHB}, you have the {@condition Invisible|XPHB} condition to any creature that relies on {@sense Darkvision|XPHB} to see you in that {@variantrule Darkness|XPHB}. Spells table, you thereafter always have the listed spells prepared."
"You are also adept at evading creatures that rely on {@sense Darkvision|XPHB}. While entirely in {@variantrule Darkness|XPHB}, you have the {@condition Invisible|XPHB} condition to any creature that relies on {@sense Darkvision|XPHB} to see you in that {@variantrule Darkness|XPHB}."
]
},
{
Expand Down
2 changes: 1 addition & 1 deletion data/fluff-races.json
Original file line number Diff line number Diff line change
Expand Up @@ -4155,7 +4155,7 @@
"type": "inset",
"name": "Excellent Ambassadors",
"entries": [
"Many half-elves learn at an early age to get along with everyone, defusing hostility and finding common ground. As a race, they have elves grace without elves aloofness and human energy without human boorishness. They often make excellent ambassadors and go-betweens (except between elves and humans, since each side suspects the half-elf of favoring the other)."
"Many half-elves learn at an early age to get along with everyone, defusing hostility and finding common ground. As a race, they have elven grace without elven aloofness and human energy without human boorishness. They often make excellent ambassadors and go-betweens (except between elves and humans, since each side suspects the half-elf of favoring the other)."
]
}
]
Expand Down
55 changes: 55 additions & 0 deletions data/races.json
Original file line number Diff line number Diff line change
Expand Up @@ -4986,6 +4986,10 @@
"name": "Gith",
"source": "MTF",
"page": 96,
"reprintedAs": [
"Githyanki|MPMM",
"Githzerai|MPMM"
],
"size": [
"M"
],
Expand Down Expand Up @@ -14036,6 +14040,10 @@
"raceName": "Aasimar",
"raceSource": "VGM",
"page": 105,
"reprintedAs": [
"Aasimar|MPMM",
"Aasimar|XPHB"
],
"ability": [
{
"str": 1
Expand All @@ -14061,6 +14069,10 @@
"raceName": "Aasimar",
"raceSource": "VGM",
"page": 105,
"reprintedAs": [
"Aasimar|MPMM",
"Aasimar|XPHB"
],
"ability": [
{
"wis": 1
Expand All @@ -14086,6 +14098,10 @@
"raceName": "Aasimar",
"raceSource": "VGM",
"page": 105,
"reprintedAs": [
"Aasimar|MPMM",
"Aasimar|XPHB"
],
"ability": [
{
"con": 1
Expand Down Expand Up @@ -14306,6 +14322,9 @@
"raceSource": "PHB",
"page": 32,
"srd": true,
"reprintedAs": [
"Dragonborn|XPHB"
],
"hasFluff": true,
"hasFluffImages": true,
"_versions": [
Expand Down Expand Up @@ -15027,6 +15046,9 @@
"page": 20,
"srd": true,
"basicRules": true,
"reprintedAs": [
"Dwarf|XPHB"
],
"ability": [
{
"wis": 1
Expand Down Expand Up @@ -15163,6 +15185,9 @@
"raceSource": "PHB",
"page": 20,
"basicRules": true,
"reprintedAs": [
"Dwarf|XPHB"
],
"ability": [
{
"str": 2
Expand Down Expand Up @@ -15201,6 +15226,9 @@
"raceName": "Elf",
"raceSource": "PHB",
"page": 24,
"reprintedAs": [
"Elf|XPHB"
],
"ability": [
{
"cha": 1
Expand Down Expand Up @@ -15402,6 +15430,9 @@
"page": 23,
"srd": true,
"basicRules": true,
"reprintedAs": [
"Elf|XPHB"
],
"speed": 30,
"ability": [
{
Expand Down Expand Up @@ -15776,6 +15807,9 @@
"raceSource": "PHB",
"page": 24,
"basicRules": true,
"reprintedAs": [
"Elf|XPHB"
],
"speed": 35,
"ability": [
{
Expand Down Expand Up @@ -16983,6 +17017,9 @@
"raceName": "Gnome",
"raceSource": "PHB",
"page": 37,
"reprintedAs": [
"Gnome|XPHB"
],
"ability": [
{
"dex": 1
Expand Down Expand Up @@ -17145,6 +17182,9 @@
"raceSource": "PHB",
"page": 37,
"srd": true,
"reprintedAs": [
"Gnome|XPHB"
],
"ability": [
{
"con": 1
Expand Down Expand Up @@ -18242,6 +18282,9 @@
"page": 28,
"srd": true,
"basicRules": true,
"reprintedAs": [
"Halfling|XPHB"
],
"ability": [
{
"cha": 1
Expand Down Expand Up @@ -18541,6 +18584,9 @@
"raceSource": "PHB",
"page": 28,
"basicRules": true,
"reprintedAs": [
"Halfling|XPHB"
],
"ability": [
{
"con": 1
Expand Down Expand Up @@ -18568,6 +18614,9 @@
"page": 29,
"srd": true,
"basicRules": true,
"reprintedAs": [
"Human|XPHB"
],
"ability": [
{
"str": 1,
Expand Down Expand Up @@ -19171,6 +19220,9 @@
"raceSource": "PHB",
"page": 31,
"basicRules": true,
"reprintedAs": [
"Human|XPHB"
],
"ability": [
{
"choose": {
Expand Down Expand Up @@ -20144,6 +20196,9 @@
"raceSource": "PHB",
"page": 42,
"srd": true,
"reprintedAs": [
"Tiefling|XPHB"
],
"hasFluff": true,
"hasFluffImages": true
},
Expand Down
15 changes: 3 additions & 12 deletions data/spells/spells-xphb.json
Original file line number Diff line number Diff line change
Expand Up @@ -3948,7 +3948,7 @@
"type": "entries",
"name": "Using a Higher-Level Spell Slot",
"entries": [
"The damage increases by {@scaledamage 5d8|4-9|1d8} for each spell slot level above 5."
"The damage increases by {@scaledamage 5d8|4-9|1d8} for each spell slot level above 4."
]
}
],
Expand Down Expand Up @@ -5834,11 +5834,7 @@
},
"duration": [
{
"type": "timed",
"duration": {
"type": "minute",
"amount": 1
}
"type": "instant"
}
],
"entries": [
Expand Down Expand Up @@ -9524,12 +9520,7 @@
},
"duration": [
{
"type": "timed",
"duration": {
"type": "minute",
"amount": 1
},
"concentration": true
"type": "instant"
}
],
"entries": [
Expand Down
2 changes: 1 addition & 1 deletion data/variantrules.json
Original file line number Diff line number Diff line change
Expand Up @@ -1323,7 +1323,7 @@
"freeRules2024": true,
"ruleType": "C",
"entries": [
"If a space is Difficult Terrain, every foot of movement in that space costs 1 extra foot. For example, moving 5 feet through Difficult Terrain costs 10 feet of movement.Difficult Terrain isn't cumulative; either a space is Difficult Terrain or it isn't.",
"If a space is Difficult Terrain, every foot of movement in that space costs 1 extra foot. For example, moving 5 feet through Difficult Terrain costs 10 feet of movement. Difficult Terrain isn't cumulative; either a space is Difficult Terrain or it isn't.",
"A space is Difficult Terrain if the space contains any of the following or something similar:",
{
"type": "list",
Expand Down
2 changes: 1 addition & 1 deletion js/converter/converterutils-entries.js
Original file line number Diff line number Diff line change
Expand Up @@ -857,7 +857,7 @@ export class CoreRuleTag extends ConverterTaggerInitializable {
"Monster",
"Weapon",
"Spell",
"Illusion",
"Illusions",
]);
static _LOOKUP_XPHB = {};

Expand Down
4 changes: 2 additions & 2 deletions js/parser.js
Original file line number Diff line number Diff line change
Expand Up @@ -3095,7 +3095,7 @@ Parser.SOURCE_JSON_TO_FULL[Parser.SRC_HWAitW] = "Humblewood: Adventure in the Wo
Parser.SOURCE_JSON_TO_FULL[Parser.SRC_ToB1_2023] = "Tome of Beasts 1 (2023 Edition)";
Parser.SOURCE_JSON_TO_FULL[Parser.SRC_XPHB] = "Player's Handbook (2024)";
Parser.SOURCE_JSON_TO_FULL[Parser.SRC_XDMG] = "Dungeon Master's Guide (2024)";
Parser.SOURCE_JSON_TO_FULL[Parser.SRC_XMM] = "Monster Manual (2025)";
Parser.SOURCE_JSON_TO_FULL[Parser.SRC_XMM] = "Monster Manual (2024)";
Parser.SOURCE_JSON_TO_FULL[Parser.SRC_TD] = "Tarot Deck";
Parser.SOURCE_JSON_TO_FULL[Parser.SRC_SCREEN] = "Dungeon Master's Screen";
Parser.SOURCE_JSON_TO_FULL[Parser.SRC_SCREEN_WILDERNESS_KIT] = "Dungeon Master's Screen: Wilderness Kit";
Expand Down Expand Up @@ -3256,7 +3256,7 @@ Parser.SOURCE_JSON_TO_ABV[Parser.SRC_HWAitW] = "HWAitW";
Parser.SOURCE_JSON_TO_ABV[Parser.SRC_ToB1_2023] = "ToB1'23";
Parser.SOURCE_JSON_TO_ABV[Parser.SRC_XPHB] = "PHB'24";
Parser.SOURCE_JSON_TO_ABV[Parser.SRC_XDMG] = "DMG'24";
Parser.SOURCE_JSON_TO_ABV[Parser.SRC_XMM] = "MM'25";
Parser.SOURCE_JSON_TO_ABV[Parser.SRC_XMM] = "MM'24";
Parser.SOURCE_JSON_TO_ABV[Parser.SRC_TD] = "TD";
Parser.SOURCE_JSON_TO_ABV[Parser.SRC_SCREEN] = "Screen";
Parser.SOURCE_JSON_TO_ABV[Parser.SRC_SCREEN_WILDERNESS_KIT] = "ScWild";
Expand Down
4 changes: 2 additions & 2 deletions js/races.js
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ class RacesSublistManager extends SublistManager {
pGetSublistItem (race, hash) {
const cellsText = [
race.name,
new SublistCell({text: race._slAbility, css: race._slAbility === VeCt.STR_NONE || race._slAbility === "Lineage (choose)" ? "italic" : ""}),
new SublistCell({text: race._slAbility, css: race._slAbility === VeCt.STR_NONE || race._slAbility === "Lineage" ? "italic" : ""}),
(race.size || [Parser.SZ_VARIES]).map(sz => Parser.sizeAbvToFull(sz)).join("/"),
];

Expand Down Expand Up @@ -102,7 +102,7 @@ class RacesPage extends ListPage {

eleLi.innerHTML = `<a href="#${hash}" class="lst__row-border lst__row-inner">
<span class="bold ve-col-4 pl-0 pr-1">${race.name}</span>
<span class="ve-col-4 px-1 ${race._slAbility === VeCt.STR_NONE || race._slAbility === "Lineage (choose)" ? "italic" : ""}">${race._slAbility}</span>
<span class="ve-col-4 px-1 ${race._slAbility === VeCt.STR_NONE || race._slAbility === "Lineage" ? "italic" : ""}">${race._slAbility}</span>
<span class="ve-col-2 px-1 ve-text-center">${size}</span>
<span class="ve-col-2 ve-text-center ${Parser.sourceJsonToSourceClassname(race.source)} pl-1 pr-0" title="${Parser.sourceJsonToFull(race.source)}" ${Parser.sourceJsonToStyle(race.source)}>${source}</span>
</a>`;
Expand Down
Loading

0 comments on commit 2039e64

Please sign in to comment.