diff --git a/data/bestiary/template.json b/data/bestiary/template.json index ac57b8771e..46e152560d 100644 --- a/data/bestiary/template.json +++ b/data/bestiary/template.json @@ -1191,6 +1191,32 @@ } } }, + { + "name": "Hill Dwarf", + "source": "PHB", + "_copy": { + "name": "Mountain Dwarf", + "source": "PHB", + "_mod": { + "*": { + "mode": "setProp", + "prop": "apply._root.type", + "value": { + "type": "humanoid", + "tags": [ + { + "tag": "dwarf", + "prefix": "Hill" + } + ] + } + } + }, + "_preserve": { + "page": true + } + } + }, { "name": "Huge Half-Black Dragon", "source": "MM", @@ -2396,58 +2422,6 @@ } } }, - { - "name": "Hill Dwarf", - "source": "PHB", - "_copy": { - "name": "Mountain Dwarf", - "source": "PHB", - "_mod": { - "*": { - "mode": "setProp", - "prop": "apply._root.type", - "value": { - "type": "humanoid", - "tags": [ - { - "tag": "dwarf", - "prefix": "Hill" - } - ] - } - } - }, - "_preserve": { - "page": true - } - } - }, - { - "name": "Shield Dwarf", - "source": "PHB", - "_copy": { - "name": "Mountain Dwarf", - "source": "PHB", - "_mod": { - "*": { - "mode": "setProp", - "prop": "apply._root.type", - "value": { - "type": "humanoid", - "tags": [ - { - "tag": "dwarf", - "prefix": "Shield" - } - ] - } - } - }, - "_preserve": { - "page": true - } - } - }, { "name": "Orc", "source": "DMG", @@ -2647,6 +2621,32 @@ } } }, + { + "name": "Shield Dwarf", + "source": "PHB", + "_copy": { + "name": "Mountain Dwarf", + "source": "PHB", + "_mod": { + "*": { + "mode": "setProp", + "prop": "apply._root.type", + "value": { + "type": "humanoid", + "tags": [ + { + "tag": "dwarf", + "prefix": "Shield" + } + ] + } + } + }, + "_preserve": { + "page": true + } + } + }, { "name": "Skeleton", "source": "DMG", diff --git a/data/changelog.json b/data/changelog.json index 0d8ae10380..f493b9bbdd 100644 --- a/data/changelog.json +++ b/data/changelog.json @@ -2472,5 +2472,10 @@ "ver": "1.182.1", "date": "2023-07-25", "txt": "- Fixed DM Screen Initiative Tracker \"Add Monster\" rows crashing on non-customize click\n- Fixed scalable dice rollers failing to open level-picker dropdown menu\n- (Fixed typos/added tags)" + }, + { + "ver": "1.182.2", + "date": "2023-07-26", + "txt": "- Fixed Bestiary d20-based dice rollers failing to roll on click\n- Fixed DM Screen Initiative Tracker always rolling initiative for new creatures when the \"Roll initiative\" option is disabled \n- (Fixed typos/added tags)" } ] diff --git a/img/adventure/LLK/005-mary.png b/img/adventure/LLK/005-mary.png index 296e135af7..18cf7fac85 100644 Binary files a/img/adventure/LLK/005-mary.png and b/img/adventure/LLK/005-mary.png differ diff --git a/js/dmscreen/initiativetracker/dmscreen-initiativetracker-rowstatebuilder.js b/js/dmscreen/initiativetracker/dmscreen-initiativetracker-rowstatebuilder.js index 70586be312..08dbc8db29 100644 --- a/js/dmscreen/initiativetracker/dmscreen-initiativetracker-rowstatebuilder.js +++ b/js/dmscreen/initiativetracker/dmscreen-initiativetracker-rowstatebuilder.js @@ -163,7 +163,7 @@ export class InitiativeTrackerRowStateBuilderActive extends _InitiativeTrackerRo hpCurrent = hpMax = await this._roller.pGetOrRollHp(mon, {isRollHp: this._comp._state.isRollHp}); } - if (initiative == null) { + if (initiative == null && this._comp._state.isRollInit) { initiative = await this._roller.pGetRollInitiative({mon}); } diff --git a/js/utils-proporder.js b/js/utils-proporder.js index bd52f6ba63..aa4ec690df 100644 --- a/js/utils-proporder.js +++ b/js/utils-proporder.js @@ -264,6 +264,48 @@ PropOrder._MONSTER__COPY_MOD = [ return it; }), ]; +PropOrder._MONSTER_TEMPLATE = [ + "name", + + "source", + "page", + + "ref", + + new PropOrder._ObjectKey("_copy", { + order: [ + "name", + "source", + "_trait", + new PropOrder._ObjectKey("_mod", { + fnGetOrder: () => PropOrder._MONSTER_TEMPLATE__COPY_MOD, + }), + "_preserve", + ], + }), + + "crMin", + "crMax", + + new PropOrder._ObjectKey("prerequisite", { + order: PropOrder._MONSTER, + }), + new PropOrder._ObjectKey("apply", { + order: [ + new PropOrder._ObjectKey("_root", { + order: PropOrder._MONSTER, + }), + new PropOrder._ObjectKey("_mod", { + fnGetOrder: () => PropOrder._MONSTER__COPY_MOD, + }), + ], + }), +]; +PropOrder._MONSTER_TEMPLATE__COPY_MOD = [ + "*", + "_", + ...PropOrder._MONSTER_TEMPLATE, +]; PropOrder._GENERIC_FLUFF = [ "name", "source", @@ -411,30 +453,6 @@ PropOrder._BACKGROUND__COPY_MOD = [ "_", ...PropOrder._BACKGROUND, ]; -PropOrder._TRAIT = [ - "name", - - "source", - "page", - - "ref", - - "crMin", - - new PropOrder._ObjectKey("prerequisite", { - order: PropOrder._MONSTER, - }), - new PropOrder._ObjectKey("apply", { - order: [ - new PropOrder._ObjectKey("_root", { - order: PropOrder._MONSTER, - }), - new PropOrder._ObjectKey("_mod", { - fnGetOrder: () => PropOrder._MONSTER__COPY_MOD, - }), - ], - }), -]; PropOrder._LEGENDARY_GROUP = [ "name", "source", @@ -1435,6 +1453,7 @@ PropOrder._CARD = [ PropOrder._PROP_TO_LIST = { "monster": PropOrder._MONSTER, "monsterFluff": PropOrder._GENERIC_FLUFF, + "monsterTemplate": PropOrder._MONSTER_TEMPLATE, "backgroundFluff": PropOrder._GENERIC_FLUFF, "featFluff": PropOrder._GENERIC_FLUFF, "conditionFluff": PropOrder._GENERIC_FLUFF, diff --git a/js/utils.js b/js/utils.js index 0b46d9d2bb..865c99c922 100644 --- a/js/utils.js +++ b/js/utils.js @@ -2,7 +2,7 @@ // in deployment, `IS_DEPLOYED = "";` should be set below. globalThis.IS_DEPLOYED = undefined; -globalThis.VERSION_NUMBER = /* 5ETOOLS_VERSION__OPEN */"1.182.1"/* 5ETOOLS_VERSION__CLOSE */; +globalThis.VERSION_NUMBER = /* 5ETOOLS_VERSION__OPEN */"1.182.2"/* 5ETOOLS_VERSION__CLOSE */; globalThis.DEPLOYED_STATIC_ROOT = ""; // "https://static.5etools.com/"; // FIXME re-enable this when we have a CDN again globalThis.DEPLOYED_IMG_ROOT = undefined; // for the roll20 script to set @@ -7298,10 +7298,18 @@ if (!IS_VTT && typeof window !== "undefined") { window.addEventListener("load", () => { document.body.addEventListener("click", (evt) => { - if (!evt?.target.hasAttribute("data-packed-dice")) return; + const eleDice = evt.target.hasAttribute("data-packed-dice") + ? evt.target + // Tolerate e.g. Bestiary wrapped proficiency dice rollers + : evt.target.parentElement.hasAttribute("data-packed-dice") + ? evt.target.parentElement + : null; + + if (!eleDice) return; + evt.preventDefault(); evt.stopImmediatePropagation(); - Renderer.dice.pRollerClickUseData(evt, evt.target).then(null); + Renderer.dice.pRollerClickUseData(evt, eleDice).then(null); }); Renderer.events.bindGeneric(); }); diff --git a/node/prettify-data.js b/node/prettify-data.js index 276a28e0d7..f0667fbee7 100644 --- a/node/prettify-data.js +++ b/node/prettify-data.js @@ -38,9 +38,9 @@ function getFnListSort (prop) { case "spell": case "monster": case "monsterFluff": + case "monsterTemplate": case "action": case "background": - case "trait": case "legendaryGroup": case "language": case "languageScript": diff --git a/package-lock.json b/package-lock.json index 3511145871..f4ba750ba9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,15 +1,15 @@ { "name": "5etools", - "version": "1.182.1", + "version": "1.182.2", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "5etools", - "version": "1.182.1", + "version": "1.182.2", "license": "MIT", "devDependencies": { - "5etools-utils": "^0.8.34", + "5etools-utils": "^0.8.35", "ajv": "^8.11.2", "ajv-formats": "^2.1.1", "esbuild": "^0.14.38", @@ -2175,9 +2175,9 @@ "dev": true }, "node_modules/5etools-utils": { - "version": "0.8.34", - "resolved": "https://registry.npmjs.org/5etools-utils/-/5etools-utils-0.8.34.tgz", - "integrity": "sha512-t3FEn0gtB2NJgYUnnssG6Pj3uAjEovmqLo28d+4Im0QkiG5yECLgPJG8pxZGu18hgDB6twS2eW8/2GC+4lmjGA==", + "version": "0.8.35", + "resolved": "https://registry.npmjs.org/5etools-utils/-/5etools-utils-0.8.35.tgz", + "integrity": "sha512-MZNoDBMHwjHq+fHM0QxrnEkzQuvlTV91DdXDTyTQhB5NY0KymEMCr0YDOEbRJXGJIoDBm6RBdCibGwZ1cX+khA==", "dev": true, "dependencies": { "ajv": "^8.11.2", @@ -10568,9 +10568,9 @@ "dev": true }, "5etools-utils": { - "version": "0.8.34", - "resolved": "https://registry.npmjs.org/5etools-utils/-/5etools-utils-0.8.34.tgz", - "integrity": "sha512-t3FEn0gtB2NJgYUnnssG6Pj3uAjEovmqLo28d+4Im0QkiG5yECLgPJG8pxZGu18hgDB6twS2eW8/2GC+4lmjGA==", + "version": "0.8.35", + "resolved": "https://registry.npmjs.org/5etools-utils/-/5etools-utils-0.8.35.tgz", + "integrity": "sha512-MZNoDBMHwjHq+fHM0QxrnEkzQuvlTV91DdXDTyTQhB5NY0KymEMCr0YDOEbRJXGJIoDBm6RBdCibGwZ1cX+khA==", "dev": true, "requires": { "ajv": "^8.11.2", diff --git a/package.json b/package.json index ab7007189b..0fe73c1edb 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "5etools", "author": "TheGiddyLimit", - "version": "1.182.1", + "version": "1.182.2", "license": "MIT", "description": "A site dedicated to making playing games with your friends as easy as possible.", "type": "module", @@ -44,7 +44,7 @@ "url": "git+https://github.com/5etools-mirror-1/5etools-mirror-1.github.io.git" }, "devDependencies": { - "5etools-utils": "^0.8.34", + "5etools-utils": "^0.8.35", "ajv": "^8.11.2", "ajv-formats": "^2.1.1", "esbuild": "^0.14.38",