From a39cc0e326bb96565c4eb0831f50e525ccc30614 Mon Sep 17 00:00:00 2001 From: Vlyan Date: Sun, 9 Jan 2022 14:29:28 +0100 Subject: [PATCH] Trying to fix advancement behavior who sometime left point on old choice. --- CHANGELOG.md | 5 +++-- system/packs/core-macros.db | 2 +- system/scripts/helpers.js | 2 +- system/scripts/items/advancement-sheet.js | 21 ++++++++++++++----- .../items/advancement/advancement-sheet.html | 4 ++-- 5 files changed, 23 insertions(+), 11 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 32e2fdb..6216d8c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,9 +2,10 @@ ## 1.5.0 - FoundryVTT v9 Compatibility - Updated the System to FoundryVTT v9. -- Fixed armies in combat tracker. -- Fixed traditional-japanese-man and traditional-japanese-woman header for firefox. - Thanks to Perkuns for his help with the CSS for this v9 release. +- Fixed armies in combat tracker. +- Fixed "traditional-japanese-man.svg" and "traditional-japanese-woman.svg" headers for firefox (x/y/width/height). +- Trying to fix advancements behavior, who sometime left point on the old choice. ## 1.4.0 - Armies & French PoW - Added Army (Actor), Cohort (Item) and Fortification (Item) sheets. diff --git a/system/packs/core-macros.db b/system/packs/core-macros.db index 8a5345d..15fc7b4 100644 --- a/system/packs/core-macros.db +++ b/system/packs/core-macros.db @@ -4,5 +4,5 @@ {"_id":"dz61B4h3iJwOC0Ob","name":"Draw 5 Ujik names","type":"script","author":"Rv52pj6itbOX14wX","img":"systems/l5r5e/assets/icons/actors/character.svg","scope":"global","command":"game.l5r5e.HelpersL5r5e.drawManyFromPack(\"l5r5e.core-name-tables\", \"Ujik names\", 5);","folder":null,"sort":0,"permission":{"default":0},"flags":{}} {"_id":"ed0HRLOWSKm6YTUS","name":"Draw 5 Japanese names (male)","type":"script","author":"Rv52pj6itbOX14wX","img":"systems/l5r5e/assets/icons/actors/traditional-japanese-man.svg","scope":"global","command":"game.l5r5e.HelpersL5r5e.drawManyFromPack(\"l5r5e.core-name-tables\", \"Japanese names (Male)\", 5);","folder":null,"sort":0,"permission":{"default":0},"flags":{}} {"_id":"fk2naBrDnz8ZAVHR","name":"Draw 5 Japanese names (female)","type":"script","author":"Rv52pj6itbOX14wX","img":"systems/l5r5e/assets/icons/actors/traditional-japanese-woman.svg","scope":"global","command":"game.l5r5e.HelpersL5r5e.drawManyFromPack(\"l5r5e.core-name-tables\", \"Japanese names (Female)\", 5);","folder":null,"sort":0,"permission":{"default":0},"flags":{}} -{"_id":"ggs1eiqkfVWlm5JM","name":"Draw Names Dialog","type":"script","author":"Rv52pj6itbOX14wX","img":"systems/l5r5e/assets/icons/actors/army.svg","scope":"global","command":"const pack = \"l5r5e.core-name-tables\";\nconst comp = await game.packs.get(pack);\nif (!comp) { console.log(`L5R5E | Pack not found[${pack}]`); return; }\nawait comp.getDocuments();\n\nlet radioTablesHtml = \"\";\ncomp.index.forEach(obj => { radioTablesHtml += ``; });\n\nnew Dialog({\n title: \"L5R5E Draw Names\",\n content: `\n
\n
\n \n
\n ${radioTablesHtml}\n
\n
\n
\n
\n \n
\n \n
\n
\n
\n `,\n buttons: {\n no: {\n icon: \"\",\n label: game.i18n.localize('Cancel')\n },\n yes: {\n icon: \"\",\n label: game.i18n.localize('TABLE.Roll'),\n callback: (html) => {\n const tableName = html.find('input[name=\"tableName\"]:checked')[0]?.value || null;\n const drawNumber = html.find('input[name=\"drawNumber\"]')[0]?.value || null;\n if (!tableName || !drawNumber || drawNumber < 1) {return;}\n game.l5r5e.HelpersL5r5e.drawManyFromPack(pack, tableName, drawNumber);\n }\n },\n },\n default: \"no\"\n}).render(true);","folder":null,"sort":0,"permission":{"default":0},"flags":{}} +{"_id":"ggs1eiqkfVWlm5JM","name":"Draw Names Dialog","type":"script","author":"Rv52pj6itbOX14wX","img":"systems/l5r5e/assets/icons/actors/army.svg","scope":"global","command":"const pack = \"l5r5e.core-name-tables\";\nconst comp = await game.packs.get(pack);\nif (!comp) { console.log(`L5R5E | Pack not found[${pack}]`); return; }\nawait comp.getDocuments();\n\nlet radioTablesHtml = \"\";\ncomp.index.forEach(obj => { radioTablesHtml += ``; });\n\nnew Dialog({\n title: \"L5R5E Draw Names\",\n content: `\n
\n
\n \n
\n ${radioTablesHtml}\n
\n
\n
\n
\n \n
\n \n
\n
\n
\n `,\n buttons: {\n no: {\n icon: \"\",\n label: game.i18n.localize('Cancel')\n },\n yes: {\n icon: \"\",\n label: game.i18n.localize('TABLE.Roll'),\n callback: (html) => {\n const tableName = html.find('input[name=\"tableName\"]:checked')[0]?.value || null;\n const drawNumber = html.find('input[name=\"drawNumber\"]')[0]?.value || null;\n if (!tableName || !drawNumber || drawNumber < 1) {return;}\n game.l5r5e.HelpersL5r5e.drawManyFromPack(pack, tableName, drawNumber);\n }\n },\n },\n default: \"no\"\n}).render(true);","folder":null,"sort":0,"permission":{"default":0},"flags":{}} {"_id":"hpfDGUS48dA2pkUB","name":"Open Character Sheet (linked actor)","type":"script","author":"Rv52pj6itbOX14wX","img":"systems/l5r5e/assets/icons/actors/character.svg","scope":"global","command":"game.user.character?.sheet.render(true);","folder":null,"sort":0,"permission":{"default":0},"flags":{}} diff --git a/system/scripts/helpers.js b/system/scripts/helpers.js index be4bf29..6068867 100644 --- a/system/scripts/helpers.js +++ b/system/scripts/helpers.js @@ -318,7 +318,7 @@ export class HelpersL5r5e { if (!types) { types = game.system.entityTypes.Item; } - const title = game.i18n.format("ENTITY.Create", { entity: game.i18n.localize("Item") }); + const title = game.i18n.format("DOCUMENT.Create", { type: game.i18n.localize("Item") }); // Render the template const html = await renderTemplate(`${CONFIG.l5r5e.paths.templates}dialogs/choose-item-type-dialog.html`, { diff --git a/system/scripts/items/advancement-sheet.js b/system/scripts/items/advancement-sheet.js index 4c34509..6daebb3 100644 --- a/system/scripts/items/advancement-sheet.js +++ b/system/scripts/items/advancement-sheet.js @@ -7,7 +7,7 @@ export class AdvancementSheetL5r5e extends ItemSheetL5r5e { /** * Sub Types of advancements */ - static types = ["ring", "skill"]; // others have theirs own xp count + static types = { ring: "l5r5e.rings.title", skill: "l5r5e.skill" }; // others have theirs own xp count /** @override */ static get defaultOptions() { @@ -46,19 +46,30 @@ export class AdvancementSheetL5r5e extends ItemSheetL5r5e { const currentSkill = this.object.data.data.skill; html.find("#advancement_type").on("change", (event) => { + $(event.target).prop("disabled", true); if ($(event.target).val() === "skill") { - this._updateChoice({ ring: currentRing }, { skill: currentSkill }); + this._updateChoice({ ring: currentRing }, { skill: currentSkill }).then( + $(event.target).prop("disabled", false) + ); } else { - this._updateChoice({ skill: currentSkill }, { ring: currentRing }); + this._updateChoice({ skill: currentSkill }, { ring: currentRing }).then( + $(event.target).prop("disabled", false) + ); } }); html.find("#advancement_ring").on("change", (event) => { - this._updateChoice({ ring: currentRing }, { ring: $(event.target).val() }); + $(event.target).prop("disabled", true); + this._updateChoice({ ring: currentRing }, { ring: $(event.target).val() }).then( + $(event.target).prop("disabled", false) + ); }); html.find("#advancement_skill").on("change", (event) => { - this._updateChoice({ skill: currentSkill }, { skill: $(event.target).val() }); + $(event.target).prop("disabled", true); + this._updateChoice({ skill: currentSkill }, { skill: $(event.target).val() }).then( + $(event.target).prop("disabled", false) + ); }); } diff --git a/system/templates/items/advancement/advancement-sheet.html b/system/templates/items/advancement/advancement-sheet.html index 1bde645..38e9ed2 100644 --- a/system/templates/items/advancement/advancement-sheet.html +++ b/system/templates/items/advancement/advancement-sheet.html @@ -9,8 +9,8 @@