Skip to content

Commit a73db2d

Browse files
committed
v1.181.6
1 parent 1365d10 commit a73db2d

10 files changed

+59
-22
lines changed

data/changelog.json

+5
Original file line numberDiff line numberDiff line change
@@ -2446,5 +2446,10 @@
24462446
"ver": "1.181.5",
24472447
"date": "2023-06-15",
24482448
"txt": "- Fixed DM Screen Clock/Calendar failing to load \n- (Brew) Fixed self-source-referencing `\"_copy\"`s within `\"statblockInline\"`-type entries failing to load\n- (Fixed typos/added tags)"
2449+
},
2450+
{
2451+
"ver": "1.181.6",
2452+
"date": "2023-06-16",
2453+
"txt": "- (Brew) Fixed loading performance regression\n- (Fixed typos/added tags)"
24492454
}
24502455
]

data/feats.json

+4-2
Original file line numberDiff line numberDiff line change
@@ -5083,7 +5083,8 @@
50835083
],
50845084
"entries": [
50855085
"You can spend 10 minutes inspiring your companions, shoring up their resolve to fight. When you do so, choose up to six friendly creatures (which can include yourself) within 30 feet of you who can see or hear you and who can understand you. Each creature can gain temporary hit points equal to your level + your Charisma modifier. A creature can't gain temporary hit points from this feat again until it has finished a short or long rest."
5086-
]
5086+
],
5087+
"hasFluffImages": true
50875088
},
50885089
{
50895090
"name": "Investigator",
@@ -7125,7 +7126,8 @@
71257126
"You have learned a number of spells that you can cast as rituals. These spells are written in a ritual book, which you must have in hand while casting one of them.",
71267127
"When you choose this feat, you acquire a ritual book holding two 1st-level spells of your choice. Choose one of the following classes: {@filter bard|spells|level=1|class=bard|components & miscellaneous=ritual}, {@filter cleric|spells|level=1|class=cleric|components & miscellaneous=ritual}, {@filter druid|spells|level=1|class=druid|components & miscellaneous=ritual}, {@filter sorcerer|spells|level=1|class=sorcerer|components & miscellaneous=ritual}, {@filter warlock|spells|level=1|class=warlock|components & miscellaneous=ritual}, or {@filter wizard|spells|level=1|class=wizard|components & miscellaneous=ritual}. You must choose your spells from that class's spell list, and the spells you choose must have the ritual tag. The class you choose also determines your spellcasting ability for these spells: Charisma for bard, sorcerer, or warlock; Wisdom for cleric or druid; or Intelligence for wizard.",
71277128
"If you come across a spell in written form, such as a magical {@item spell scroll} or a wizard's spellbook, you might be able to add it to your ritual book. The spell must be on the spell list for the class you chose, the spell's level can be no higher than half your level (rounded up), and it must have the ritual tag. The process of copying the spell into your ritual book takes 2 hours per level of the spell, and costs 50 gp per level. The cost represents material components you expend as you experiment with the spell to master it, as well as the fine inks you need to record it."
7128-
]
7129+
],
7130+
"hasFluffImages": true
71297131
},
71307132
{
71317133
"name": "Rune Carver Adept",

data/fluff-feats.json

+26
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,32 @@
4242
"title": "Mages of High Sorcery of the Orders of the Black, Red, and White Robes"
4343
}
4444
]
45+
},
46+
{
47+
"name": "Inspiring Leader",
48+
"source": "PHB",
49+
"images": [
50+
{
51+
"type": "image",
52+
"href": {
53+
"type": "internal",
54+
"path": "feats/PHB/Inspiring Leader.webp"
55+
}
56+
}
57+
]
58+
},
59+
{
60+
"name": "Ritual Caster",
61+
"source": "PHB",
62+
"images": [
63+
{
64+
"type": "image",
65+
"href": {
66+
"type": "internal",
67+
"path": "feats/PHB/Ritual Caster.webp"
68+
}
69+
}
70+
]
4571
}
4672
]
4773
}

data/races.json

+14-14
Original file line numberDiff line numberDiff line change
@@ -18351,15 +18351,7 @@
1835118351
"raceName": "Half-Elf",
1835218352
"raceSource": "PHB",
1835318353
"page": 116,
18354-
"speed": {
18355-
"walk": 30,
18356-
"swim": 30
18357-
},
18358-
"skillProficiencies": [
18359-
{
18360-
"any": 2
18361-
}
18362-
],
18354+
"speed": 30,
1836318355
"entries": [
1836418356
{
1836518357
"type": "inset",
@@ -18385,9 +18377,6 @@
1838518377
}
1838618378
}
1838718379
],
18388-
"overwrite": {
18389-
"skillProficiencies": true
18390-
},
1839118380
"_versions": [
1839218381
{
1839318382
"name": "Variant; Aquatic Elf Descent; Skill Versatility",
@@ -18405,7 +18394,11 @@
1840518394
}
1840618395
}
1840718396
},
18408-
"speed": 30
18397+
"skillProficiencies": [
18398+
{
18399+
"any": 2
18400+
}
18401+
]
1840918402
},
1841018403
{
1841118404
"name": "Variant; Aquatic Elf Descent; Swim Speed",
@@ -18423,7 +18416,14 @@
1842318416
}
1842418417
}
1842518418
},
18426-
"skillProficiencies": null
18419+
"speed": {
18420+
"walk": 30,
18421+
"swim": 30
18422+
},
18423+
"skillProficiencies": null,
18424+
"overwrite": {
18425+
"skillProficiencies": true
18426+
}
1842718427
}
1842818428
]
1842918429
},

img/feats/PHB/Inspiring Leader.webp

283 KB
Binary file not shown.

img/feats/PHB/Ritual Caster.webp

440 KB
Binary file not shown.

js/utils-brew.js

+6-2
Original file line numberDiff line numberDiff line change
@@ -266,11 +266,12 @@ class _BrewUtil2Base {
266266
DEFAULT_AUTHOR;
267267
STYLE_BTN;
268268

269-
_LOCK = new VeLock();
269+
_LOCK = new VeLock({name: this.constructor.name});
270270

271271
_cache_iteration = 0;
272272
_cache_brewsProc = null;
273273
_cache_metas = null;
274+
_cache_brews = null;
274275
_cache_brewsLocal = null;
275276

276277
_isDirty = false;
@@ -423,6 +424,8 @@ class _BrewUtil2Base {
423424

424425
/** Fetch the raw brew from storage. */
425426
async pGetBrew ({lockToken} = {}) {
427+
if (this._cache_brews) return this._cache_brews;
428+
426429
try {
427430
lockToken = await this._LOCK.pLock({token: lockToken});
428431

@@ -431,7 +434,7 @@ class _BrewUtil2Base {
431434
...(await this._pGetBrew_pGetLocalBrew({lockToken})),
432435
];
433436

434-
return out
437+
return this._cache_brews = out
435438
// Ensure no brews which lack sources are loaded
436439
.filter(brew => brew?.body?._meta?.sources?.length);
437440
} finally {
@@ -574,6 +577,7 @@ class _BrewUtil2Base {
574577

575578
if (!isInitialMigration) {
576579
if (this._cache_brewsProc) this._cache_iteration++;
580+
this._cache_brews = null;
577581
this._cache_brewsProc = null;
578582
}
579583
await this._storage.pSet(this._STORAGE_KEY, val);

js/utils.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
// in deployment, `IS_DEPLOYED = "<version number>";` should be set below.
44
globalThis.IS_DEPLOYED = undefined;
5-
globalThis.VERSION_NUMBER = /* 5ETOOLS_VERSION__OPEN */"1.181.5"/* 5ETOOLS_VERSION__CLOSE */;
5+
globalThis.VERSION_NUMBER = /* 5ETOOLS_VERSION__OPEN */"1.181.6"/* 5ETOOLS_VERSION__CLOSE */;
66
globalThis.DEPLOYED_STATIC_ROOT = ""; // "https://static.5etools.com/"; // FIXME re-enable this when we have a CDN again
77
globalThis.DEPLOYED_IMG_ROOT = undefined;
88
// for the roll20 script to set

package-lock.json

+2-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "5etools",
33
"author": "TheGiddyLimit",
4-
"version": "1.181.5",
4+
"version": "1.181.6",
55
"license": "MIT",
66
"description": "A site dedicated to making playing games with your friends as easy as possible.",
77
"type": "module",

0 commit comments

Comments
 (0)