From 99dd7b791ae11a9cb3c50afce87e65c48cda0257 Mon Sep 17 00:00:00 2001 From: Oliver-Akins Date: Fri, 29 Dec 2023 23:53:26 -0700 Subject: [PATCH] Finish the weapons block styling and make it so that I can use IDs in the sheet without crying --- .styles/root.css | 33 ++- .styles/sheets/actor/mvp.css | 33 ++- langs/en-ca.json | 8 +- module/hooks/hotReload.mjs | 9 +- module/sheets/PlayerSheet.mjs | 3 +- styles/sheets/actor/mvp.scss | 34 +++ .../char-sheet-mvp/panels/weapons.pc.hbs | 222 ++++++++++-------- templates/actors/char-sheet-mvp/sheet.hbs | 4 + 8 files changed, 242 insertions(+), 104 deletions(-) diff --git a/.styles/root.css b/.styles/root.css index 8e23922..4dc2b97 100644 --- a/.styles/root.css +++ b/.styles/root.css @@ -224,6 +224,37 @@ .dotdungeon .actor--pc .panel--weapons { grid-area: weapons; } +.dotdungeon .actor--pc .panel--weapons .weapon { + margin-top: 4px; + display: flex; + flex-direction: column; + gap: 4px; +} +.dotdungeon .actor--pc .panel--weapons .weapon__name { + display: flex; + justify-content: center; + align-items: center; + flex-direction: column; +} +.dotdungeon .actor--pc .panel--weapons .weapon__name input { + width: 50%; +} +.dotdungeon .actor--pc .panel--weapons .weapon__group { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 4px; +} +.dotdungeon .actor--pc .panel--weapons .weapon__ammo-type, .dotdungeon .actor--pc .panel--weapons .weapon__damage-type { + display: flex; + flex-direction: column; + align-items: center; +} +.dotdungeon .actor--pc .panel--weapons .weapon__is-scoped, .dotdungeon .actor--pc .panel--weapons .weapon__is-ranged { + display: flex; + flex-direction: row; + align-items: center; + justify-content: center; +} .dotdungeon .actor--pc .panel--roles { grid-area: roles; } @@ -317,4 +348,4 @@ resize: vertical; } -/*# sourceMappingURL=data:application/json;charset=utf-8,%7B%22version%22:3,%22sourceRoot%22:%22%22,%22sources%22:%5B%22../styles/generic.scss%22,%22../styles/mixins/_foundry.scss%22,%22../styles/_vars.scss%22,%22../styles/mixins/_partials.scss%22,%22../styles/sheets/partials/stat.scss%22,%22../styles/sheets/partials/skill.scss%22,%22../styles/sheets/partials/panel.scss%22,%22../styles/mixins/_breakpoints.scss%22,%22../styles/sheets/actor/mvp.scss%22,%22../styles/sheets/actor/sync/basic.scss%22,%22../styles/sheets/items/aspect.scss%22%5D,%22names%22:%5B%5D,%22mappings%22:%22AAIQ;AAKP;EACC;;AAED;EACC;;AAGD;ECfA;EACA;EACA;EDeC,aElBW;EFmBX;;AAGD;EACC;;AAGD;ECzBA;EACA;EACA;EDyBC;EACA;;AAGD;AAAA;AAAA;EAGC;EGhCD;EACA;EACA;EACA;EACA;EACA,aDPW;;ACSX;AAAA;AAAA;AAAA;AAAA;EAEC;;AH2BD;EACC;;AAGD;EACC;EACA,aE5CU;;;AFiDZ;EACC;;AAEA;EACC;EACA,YEpDW;;;AEHb;EACC;EACA;EACA;;ACHD;EACC;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;EACA;EACA;;AAEA;EACC;EACA;EACA;EACA;;;ACdH;EACC;EACA;EAEA;;AAEA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;ELlBD;EACA;EACA;EKkBE;EACA;EACA,aJvBU;EIwBV;;AAGD;EAEC,QADO;EAEP,OAFO;EAGP;;AAIF;EACC;;;AC7BD;EDkCA;IACC;IACA;;;AExCF;EACC;EACA,qBACC;EASD;EACA,oBACC;EAGD;EACA;;AAGC;EACC;;AACA;EACC;EACA;;AAGD;EACC;;AAGF;EACC;;AACA;EACC;EACA;EACA;EACA;EACA;EACA;;AAGF;EACC;;AAEA;EACC;EACA;EACA;EACA;;AAGF;EACC;;AAEA;EACC;EACA;EACA;;AAED;EACC;EACA;;AAED;EACC;;AAGD;EACC;EACA;EACA;;AAGD;AAAA;AAAA;EAGC;EACA;;AAGD;EACC;;AAGF;EACC;;AAEA;EACC;EACA;EACA;;AAGD;AAAA;EAEC;EACA;EACA;;AAEA;AAAA;EACC;;AAIF;EACC;EACA;;AAGF;EACC;;AACA;EACC;EACA;EACA;EACA;;AAEA;EACC;;AAIH;EACC;;AAED;EACC;;AACA;EACC;EACA;EACA;EACA;;AAEA;EACC;;AAIH;EACC;;AAED;EACC;;AAED;EACC;;AAED;EACC;;;ADxJF;ECgKC;IACC;IACA;IACA,qBACC;;EAkBC;IACC;;EAKD;IACC;IACA;;;ADxLL;ECkMC;IACC;IACA;IACA,qBACC;;EAeC;IACC;;;AC1NL;EACC;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;EACA;;AAGD;EACC;EACA;;AAGD;EACC;EACA;;AAMA;EACC;EACA;;;AFlBH;EE4BG;IACC;IACA;;;ACzCL;EACC;;AAEA;EACC;EACA;EACA;;AAGD;EACC;EACA%22,%22file%22:%22root.css%22%7D */ +/*# sourceMappingURL=data:application/json;charset=utf-8,%7B%22version%22:3,%22sourceRoot%22:%22%22,%22sources%22:%5B%22../styles/generic.scss%22,%22../styles/mixins/_foundry.scss%22,%22../styles/_vars.scss%22,%22../styles/mixins/_partials.scss%22,%22../styles/sheets/partials/stat.scss%22,%22../styles/sheets/partials/skill.scss%22,%22../styles/sheets/partials/panel.scss%22,%22../styles/mixins/_breakpoints.scss%22,%22../styles/sheets/actor/mvp.scss%22,%22../styles/sheets/actor/sync/basic.scss%22,%22../styles/sheets/items/aspect.scss%22%5D,%22names%22:%5B%5D,%22mappings%22:%22AAIQ;AAKP;EACC;;AAED;EACC;;AAGD;ECfA;EACA;EACA;EDeC,aElBW;EFmBX;;AAGD;EACC;;AAGD;ECzBA;EACA;EACA;EDyBC;EACA;;AAGD;AAAA;AAAA;EAGC;EGhCD;EACA;EACA;EACA;EACA;EACA,aDPW;;ACSX;AAAA;AAAA;AAAA;AAAA;EAEC;;AH2BD;EACC;;AAGD;EACC;EACA,aE5CU;;;AFiDZ;EACC;;AAEA;EACC;EACA,YEpDW;;;AEHb;EACC;EACA;EACA;;ACHD;EACC;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;EACA;EACA;;AAEA;EACC;EACA;EACA;EACA;;;ACdH;EACC;EACA;EAEA;;AAEA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;ELlBD;EACA;EACA;EKkBE;EACA;EACA,aJvBU;EIwBV;;AAGD;EAEC,QADO;EAEP,OAFO;EAGP;;AAIF;EACC;;;AC7BD;EDkCA;IACC;IACA;;;AExCF;EACC;EACA,qBACC;EASD;EACA,oBACC;EAGD;EACA;;AAGC;EACC;;AACA;EACC;EACA;;AAGD;EACC;;AAGF;EACC;;AACA;EACC;EACA;EACA;EACA;EACA;EACA;;AAGF;EACC;;AAEA;EACC;EACA;EACA;EACA;;AAGF;EACC;;AAEA;EACC;EACA;EACA;;AAED;EACC;EACA;;AAED;EACC;;AAGD;EACC;EACA;EACA;;AAGD;AAAA;AAAA;EAGC;EACA;;AAGD;EACC;;AAGF;EACC;;AAEA;EACC;EACA;EACA;;AAGD;AAAA;EAEC;EACA;EACA;;AAEA;AAAA;EACC;;AAIF;EACC;EACA;;AAGF;EACC;;AACA;EACC;EACA;EACA;EACA;;AAEA;EACC;;AAIH;EACC;;AAEA;EACC;EACA;EACA;EACA;;AAEA;EACC;EACA;EACA;EACA;;AAEA;EACC;;AAGF;EACC;EACA;EACA;;AAED;EACC;EACA;EACA;;AAED;EACC;EACA;EACA;EACA;;AAIH;EACC;;AACA;EACC;EACA;EACA;EACA;;AAEA;EACC;;AAIH;EACC;;AAED;EACC;;AAED;EACC;;AAED;EACC;;;AD1LF;ECkMC;IACC;IACA;IACA,qBACC;;EAkBC;IACC;;EAKD;IACC;IACA;;;AD1NL;ECoOC;IACC;IACA;IACA,qBACC;;EAeC;IACC;;;AC5PL;EACC;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;EACA;;AAGD;EACC;EACA;;AAGD;EACC;EACA;;AAMA;EACC;EACA;;;AFlBH;EE4BG;IACC;IACA;;;ACzCL;EACC;;AAEA;EACC;EACA;EACA;;AAGD;EACC;EACA%22,%22file%22:%22root.css%22%7D */ diff --git a/.styles/sheets/actor/mvp.css b/.styles/sheets/actor/mvp.css index bd800f5..e92bf3e 100644 --- a/.styles/sheets/actor/mvp.css +++ b/.styles/sheets/actor/mvp.css @@ -102,6 +102,37 @@ .dotdungeon .actor--pc .panel--weapons { grid-area: weapons; } +.dotdungeon .actor--pc .panel--weapons .weapon { + margin-top: 4px; + display: flex; + flex-direction: column; + gap: 4px; +} +.dotdungeon .actor--pc .panel--weapons .weapon__name { + display: flex; + justify-content: center; + align-items: center; + flex-direction: column; +} +.dotdungeon .actor--pc .panel--weapons .weapon__name input { + width: 50%; +} +.dotdungeon .actor--pc .panel--weapons .weapon__group { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 4px; +} +.dotdungeon .actor--pc .panel--weapons .weapon__ammo-type, .dotdungeon .actor--pc .panel--weapons .weapon__damage-type { + display: flex; + flex-direction: column; + align-items: center; +} +.dotdungeon .actor--pc .panel--weapons .weapon__is-scoped, .dotdungeon .actor--pc .panel--weapons .weapon__is-ranged { + display: flex; + flex-direction: row; + align-items: center; + justify-content: center; +} .dotdungeon .actor--pc .panel--roles { grid-area: roles; } @@ -152,4 +183,4 @@ } } -/*# sourceMappingURL=data:application/json;charset=utf-8,%7B%22version%22:3,%22sourceRoot%22:%22%22,%22sources%22:%5B%22../../../styles/sheets/actor/mvp.scss%22,%22../../../styles/mixins/_breakpoints.scss%22%5D,%22names%22:%5B%5D,%22mappings%22:%22AAGA;EACC;EACA,qBACC;EASD;EACA,oBACC;EAGD;EACA;;AAGC;EACC;;AACA;EACC;EACA;;AAGD;EACC;;AAGF;EACC;;AACA;EACC;EACA;EACA;EACA;EACA;EACA;;AAGF;EACC;;AAEA;EACC;EACA;EACA;EACA;;AAGF;EACC;;AAEA;EACC;EACA;EACA;;AAED;EACC;EACA;;AAED;EACC;;AAGD;EACC;EACA;EACA;;AAGD;AAAA;AAAA;EAGC;EACA;;AAGD;EACC;;AAGF;EACC;;AAEA;EACC;EACA;EACA;;AAGD;AAAA;EAEC;EACA;EACA;;AAEA;AAAA;EACC;;AAIF;EACC;EACA;;AAGF;EACC;;AACA;EACC;EACA;EACA;EACA;;AAEA;EACC;;AAIH;EACC;;AAED;EACC;;AACA;EACC;EACA;EACA;EACA;;AAEA;EACC;;AAIH;EACC;;AAED;EACC;;AAED;EACC;;AAED;EACC;;;ACxJF;EDgKC;IACC;IACA;IACA,qBACC;;EAkBC;IACC;;EAKD;IACC;IACA;;;ACxLL;EDkMC;IACC;IACA;IACA,qBACC;;EAeC;IACC%22,%22file%22:%22mvp.css%22%7D */ +/*# sourceMappingURL=data:application/json;charset=utf-8,%7B%22version%22:3,%22sourceRoot%22:%22%22,%22sources%22:%5B%22../../../styles/sheets/actor/mvp.scss%22,%22../../../styles/mixins/_breakpoints.scss%22%5D,%22names%22:%5B%5D,%22mappings%22:%22AAGA;EACC;EACA,qBACC;EASD;EACA,oBACC;EAGD;EACA;;AAGC;EACC;;AACA;EACC;EACA;;AAGD;EACC;;AAGF;EACC;;AACA;EACC;EACA;EACA;EACA;EACA;EACA;;AAGF;EACC;;AAEA;EACC;EACA;EACA;EACA;;AAGF;EACC;;AAEA;EACC;EACA;EACA;;AAED;EACC;EACA;;AAED;EACC;;AAGD;EACC;EACA;EACA;;AAGD;AAAA;AAAA;EAGC;EACA;;AAGD;EACC;;AAGF;EACC;;AAEA;EACC;EACA;EACA;;AAGD;AAAA;EAEC;EACA;EACA;;AAEA;AAAA;EACC;;AAIF;EACC;EACA;;AAGF;EACC;;AACA;EACC;EACA;EACA;EACA;;AAEA;EACC;;AAIH;EACC;;AAEA;EACC;EACA;EACA;EACA;;AAEA;EACC;EACA;EACA;EACA;;AAEA;EACC;;AAGF;EACC;EACA;EACA;;AAED;EACC;EACA;EACA;;AAED;EACC;EACA;EACA;EACA;;AAIH;EACC;;AACA;EACC;EACA;EACA;EACA;;AAEA;EACC;;AAIH;EACC;;AAED;EACC;;AAED;EACC;;AAED;EACC;;;AC1LF;EDkMC;IACC;IACA;IACA,qBACC;;EAkBC;IACC;;EAKD;IACC;IACA;;;AC1NL;EDoOC;IACC;IACA;IACA,qBACC;;EAeC;IACC%22,%22file%22:%22mvp.css%22%7D */ diff --git a/langs/en-ca.json b/langs/en-ca.json index 8c883de..5672043 100644 --- a/langs/en-ca.json +++ b/langs/en-ca.json @@ -93,8 +93,8 @@ "dotdungeon.actor.pc.backpack.materials.label": "Materials", "dotdungeon.actor.pc.backpack.bytes.label": "Bytes", - "dotdungeon.actor.pc.weapon.main-hand": "Main-Hand", - "dotdungeon.actor.pc.weapon.off-hand": "Off-Hand", + "dotdungeon.actor.pc.weapon.mainHand": "Main-Hand", + "dotdungeon.actor.pc.weapon.offHand": "Off-Hand", "dotdungeon.actor.pc.weapon.name": "Name", "dotdungeon.actor.pc.weapon.damage-type.label": "Damage Type", "dotdungeon.actor.pc.weapon.damage-type.slashing": "Slashing", @@ -104,8 +104,8 @@ "dotdungeon.actor.pc.weapon.damage-type.neon": "Neon", "dotdungeon.actor.pc.weapon.damage-type.shadow": "Shadow", "dotdungeon.actor.pc.weapon.damage-type.solar": "Solar", - "dotdungeon.actor.pc.weapon.is-ranged": "Ranged", - "dotdungeon.actor.pc.weapon.is-scoped": "Scoped", + "dotdungeon.actor.pc.weapon.is-ranged": "Is Ranged", + "dotdungeon.actor.pc.weapon.is-scoped": "Has Scope", "dotdungeon.actor.pc.weapon.ammo-type.label": "Ammo", "dotdungeon.actor.pc.weapon.ammo-type.ammoless": "No Ammo", "dotdungeon.actor.pc.weapon.ammo-type.quiver": "Quivers", diff --git a/module/hooks/hotReload.mjs b/module/hooks/hotReload.mjs index 832686f..0a42438 100644 --- a/module/hooks/hotReload.mjs +++ b/module/hooks/hotReload.mjs @@ -19,7 +19,14 @@ Hooks.on(`hotReload`, async (data) => { }; // Re-register our new partial template & cache it. - const templateName = `dotdungeon.${data.path.split("/").pop().replace(".hbs", "")}`; + const alias = data.path + .split(`/`) + .pop() + .split(`.`) + .slice(0, -1) + .reverse() + .join(`.`); + const templateName = `dotdungeon.${alias}`; Handlebars.registerPartial(templateName, template); _templateCache[templateName] = template; diff --git a/module/sheets/PlayerSheet.mjs b/module/sheets/PlayerSheet.mjs index ccd3cf9..1e14902 100644 --- a/module/sheets/PlayerSheet.mjs +++ b/module/sheets/PlayerSheet.mjs @@ -23,7 +23,7 @@ export class PlayerSheet extends GenericSheet { Toggles the expanded state for the detail elements in the sheet. */ html.find(`summary`).on(`click`, ($e) => { - console.debug(`.dungeon | summary[data-collapse-id="${$e.target.dataset.collapseId}"] click event`); + console.debug(`.dungeon | summary[data-collapse-id="${$e.target.dataset.collapseId}"] click event (open=${$e.target.parentNode.open})`); /* This seeming inversion of logic is due to the fact that this handler gets called before the element is updated to include/reflect the @@ -61,6 +61,7 @@ export class PlayerSheet extends GenericSheet { }; ctx.meta = { + idp: this.actor.uuid, expanded: this._expanded, }; diff --git a/styles/sheets/actor/mvp.scss b/styles/sheets/actor/mvp.scss index 283df4f..8cf4bb7 100644 --- a/styles/sheets/actor/mvp.scss +++ b/styles/sheets/actor/mvp.scss @@ -127,6 +127,40 @@ } &--weapons { grid-area: weapons; + + .weapon { + margin-top: 4px; + display: flex; + flex-direction: column; + gap: 4px; + + &__name { + display: flex; + justify-content: center; + align-items: center; + flex-direction: column; + + input { + width: 50% + } + } + &__group { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 4px; + } + &__ammo-type, &__damage-type { + display: flex; + flex-direction: column; + align-items: center; + } + &__is-scoped, &__is-ranged { + display: flex; + flex-direction: row; + align-items: center; + justify-content: center; + } + } } &--roles { grid-area: roles; diff --git a/templates/actors/char-sheet-mvp/panels/weapons.pc.hbs b/templates/actors/char-sheet-mvp/panels/weapons.pc.hbs index 37c44a5..b86d847 100644 --- a/templates/actors/char-sheet-mvp/panels/weapons.pc.hbs +++ b/templates/actors/char-sheet-mvp/panels/weapons.pc.hbs @@ -1,112 +1,142 @@ {{#> dotdungeon.panel class="weapons" title="dotdungeon.actor.pc.panel.weapons"}} -
- - {{localize "dotdungeon.actor.pc.weapon.main-hand"}} +
+ + {{localize "dotdungeon.actor.pc.weapon.mainHand"}} -
-
-
- - {{localize "dotdungeon.actor.pc.weapon.off-hand"}} +
+ + {{localize "dotdungeon.actor.pc.weapon.offHand"}} - - - - {{#if system.weapon.offHand.ranged}} -
{{/ dotdungeon.panel}} \ No newline at end of file diff --git a/templates/actors/char-sheet-mvp/sheet.hbs b/templates/actors/char-sheet-mvp/sheet.hbs index cfe87da..54c194a 100644 --- a/templates/actors/char-sheet-mvp/sheet.hbs +++ b/templates/actors/char-sheet-mvp/sheet.hbs @@ -45,6 +45,10 @@ Settings:
{{dotdungeon-stringify settings}}
+
+ Meta: +
{{dotdungeon-stringify meta}}
+

Expanded: {{dotdungeon-stringify expanded}}