From 27b2a7cfe5ece18c61ac5ac6c161c0f485f9b159 Mon Sep 17 00:00:00 2001 From: Prototype Date: Wed, 13 Nov 2024 22:42:40 -0800 Subject: [PATCH] Fully working --- i18n/en.yaml | 8 ++++ scss/shadowdark.scss | 8 ++++ system/src/apps/RequestCheckSD.mjs | 59 +++++++++++++++++++++++++ system/src/apps/_module.mjs | 1 + system/templates/apps/request-check.hbs | 32 ++++++++++++++ 5 files changed, 108 insertions(+) create mode 100644 system/src/apps/RequestCheckSD.mjs create mode 100644 system/templates/apps/request-check.hbs diff --git a/i18n/en.yaml b/i18n/en.yaml index 8f73f4c7..b724ded2 100644 --- a/i18n/en.yaml +++ b/i18n/en.yaml @@ -103,6 +103,14 @@ SHADOWDARK.apps.monster-importer.instruction2d: Main stat block SHADOWDARK.apps.monster-importer.instruction2e: Feature SHADOWDARK.apps.monster-importer.instruction3: 3. Click Import Monster. SHADOWDARK.apps.monster-importer.title: Import Monster +SHADOWDARK.apps.request-check.copied: Copied to Clipboard +SHADOWDARK.apps.request-check.copy_to_clipboard: Copy to Clipboard +SHADOWDARK.apps.request-check.custom: Custom +SHADOWDARK.apps.request-check.easy: Easy +SHADOWDARK.apps.request-check.hard: Hard +SHADOWDARK.apps.request-check.extreme: Extreme +SHADOWDARK.apps.request-check.normal: Normal +SHADOWDARK.apps.request-check.title: Request Check SHADOWDARK.apps.shadowdarkling-importer.errors: Items Not Found SHADOWDARK.apps.shadowdarkling-importer.header: Shadowdarkling Importer SHADOWDARK.apps.shadowdarkling-importer.import_button: Import diff --git a/scss/shadowdark.scss b/scss/shadowdark.scss index 752f9d9f..37219d9d 100644 --- a/scss/shadowdark.scss +++ b/scss/shadowdark.scss @@ -20,6 +20,10 @@ width: 100%; } + input[type=radio] { + width: auto; + } + hr { border: none; border-top: solid 1px #{$primary-color}; @@ -79,4 +83,8 @@ } } + .checkbox { + font-size:14px; + }; + } diff --git a/system/src/apps/RequestCheckSD.mjs b/system/src/apps/RequestCheckSD.mjs new file mode 100644 index 00000000..b32e93af --- /dev/null +++ b/system/src/apps/RequestCheckSD.mjs @@ -0,0 +1,59 @@ +export default class RequestCheckSD extends FormApplication { + + static get defaultOptions() { + return foundry.utils.mergeObject(super.defaultOptions, { + classes: ["shadowdark"], + template: "systems/shadowdark/templates/apps/request-check.hbs", + width: 400, + title: game.i18n.localize("SHADOWDARK.apps.request-check.title"), + closeOnSubmit: false, + }); + } + + activateListeners(html) { + super.activateListeners(html); + + html.find(".custom-dc").click( + event => { + $(event.target).siblings()[0].checked=true; + } + ); + } + + /** @override */ + async getData() { + return { + stats: CONFIG.SHADOWDARK.ABILITIES_LONG, + difficulty: { + 9: `9 (${game.i18n.localize("SHADOWDARK.apps.request-check.easy")})`, + 12: `12 (${game.i18n.localize("SHADOWDARK.apps.request-check.normal")})`, + 15: `15 (${game.i18n.localize("SHADOWDARK.apps.request-check.hard")})`, + 18: `18 (${game.i18n.localize("SHADOWDARK.apps.request-check.extreme")})`, + }, + }; + } + + /** @inheritdoc */ + async _updateObject(event, data) { + + if (data.custom) { + data.difficulty = data.custom; + } + data.difficulty = parseInt(data.difficulty); + + switch (event.submitter.name) { + case "request-copy": + let linkText = `[[request ${data.difficulty} ${data.stat}]]`; + await navigator.clipboard.writeText(linkText); + ui.notifications.info(game.i18n.localize("SHADOWDARK.apps.request-check.copied")); + break; + case "request-check": + shadowdark.checks.displayRequest(data.difficulty, data.stat); + this.close(); + break; + default: + shadowdark.log("Request Check Error"); + } + } + +} diff --git a/system/src/apps/_module.mjs b/system/src/apps/_module.mjs index d474c5c6..ee8f4533 100644 --- a/system/src/apps/_module.mjs +++ b/system/src/apps/_module.mjs @@ -8,6 +8,7 @@ export {default as LightSourceTrackerSD} from "./LightSourceTrackerSD.mjs"; export {default as LoadingSD} from "./LoadingSD.mjs"; export {default as MonsterImporterSD} from "./MonsterImporterSD.mjs"; export {default as NpcAttackRangesSD} from "./NpcAttackRangesSD.mjs"; +export {default as RequestCheckSD} from "./RequestCheckSD.mjs"; export {default as ShadowdarklingImporterSD} from "./ShadowdarklingImporterSD.mjs"; export {default as SpellBookSD} from "./SpellBookSD.mjs"; export {default as SpellImporterSD} from "./SpellImporterSD.mjs"; diff --git a/system/templates/apps/request-check.hbs b/system/templates/apps/request-check.hbs new file mode 100644 index 00000000..8a2816f9 --- /dev/null +++ b/system/templates/apps/request-check.hbs @@ -0,0 +1,32 @@ +
+
+ {{#> ui/sd-box + header-label="Difficulty" + }} +
+ {{radioBoxes "difficulty" difficulty checked="12"}} +
+ +
+ {{/ui/sd-box}} + + {{#> ui/sd-box + header-label="Stat" + }} +
+ {{radioBoxes "stat" stats checked="str"}} +
+ {{/ui/sd-box}} + +
+ + + +
+