diff --git a/.styles/global/buttons.css b/.styles/global/buttons.css
index 23ed812..97e931c 100644
--- a/.styles/global/buttons.css
+++ b/.styles/global/buttons.css
@@ -16,7 +16,7 @@
background: #048A81;
color: white;
}
-.dotdungeon.dotdungeon.dotdungeon.dotdungeon > .window-content button.confirm:hover, .dotdungeon.dotdungeon.dotdungeon.dotdungeon > .window-content button.confirm:focus {
+.dotdungeon.dotdungeon.dotdungeon.dotdungeon > .window-content button.confirm:hover, .dotdungeon.dotdungeon.dotdungeon.dotdungeon > .window-content button.confirm:focus-visible {
background: transparent;
color: #048A81;
border-color: #048A81;
@@ -25,7 +25,7 @@
background: #007ACC;
color: white;
}
-.dotdungeon.dotdungeon.dotdungeon.dotdungeon > .window-content button.neutral:hover, .dotdungeon.dotdungeon.dotdungeon.dotdungeon > .window-content button.neutral:focus {
+.dotdungeon.dotdungeon.dotdungeon.dotdungeon > .window-content button.neutral:hover, .dotdungeon.dotdungeon.dotdungeon.dotdungeon > .window-content button.neutral:focus-visible {
background: transparent;
color: #007ACC;
border-color: #007ACC;
@@ -34,7 +34,7 @@
background: #960200;
color: white;
}
-.dotdungeon.dotdungeon.dotdungeon.dotdungeon > .window-content button.danger:hover, .dotdungeon.dotdungeon.dotdungeon.dotdungeon > .window-content button.danger:focus {
+.dotdungeon.dotdungeon.dotdungeon.dotdungeon > .window-content button.danger:hover, .dotdungeon.dotdungeon.dotdungeon.dotdungeon > .window-content button.danger:focus-visible {
background: transparent;
color: #960200;
border-color: #960200;
diff --git a/.styles/root.css b/.styles/root.css
index 4a8b0a4..134bc6e 100644
--- a/.styles/root.css
+++ b/.styles/root.css
@@ -118,7 +118,7 @@
background: #048A81;
color: white;
}
-.dotdungeon.dotdungeon.dotdungeon.dotdungeon > .window-content button.confirm:hover, .dotdungeon.dotdungeon.dotdungeon.dotdungeon > .window-content button.confirm:focus {
+.dotdungeon.dotdungeon.dotdungeon.dotdungeon > .window-content button.confirm:hover, .dotdungeon.dotdungeon.dotdungeon.dotdungeon > .window-content button.confirm:focus-visible {
background: transparent;
color: #048A81;
border-color: #048A81;
@@ -127,7 +127,7 @@
background: #007ACC;
color: white;
}
-.dotdungeon.dotdungeon.dotdungeon.dotdungeon > .window-content button.neutral:hover, .dotdungeon.dotdungeon.dotdungeon.dotdungeon > .window-content button.neutral:focus {
+.dotdungeon.dotdungeon.dotdungeon.dotdungeon > .window-content button.neutral:hover, .dotdungeon.dotdungeon.dotdungeon.dotdungeon > .window-content button.neutral:focus-visible {
background: transparent;
color: #007ACC;
border-color: #007ACC;
@@ -136,7 +136,7 @@
background: #960200;
color: white;
}
-.dotdungeon.dotdungeon.dotdungeon.dotdungeon > .window-content button.danger:hover, .dotdungeon.dotdungeon.dotdungeon.dotdungeon > .window-content button.danger:focus {
+.dotdungeon.dotdungeon.dotdungeon.dotdungeon > .window-content button.danger:hover, .dotdungeon.dotdungeon.dotdungeon.dotdungeon > .window-content button.danger:focus-visible {
background: transparent;
color: #960200;
border-color: #960200;
@@ -328,6 +328,14 @@
.dotdungeon .actor--pc .panel--aspect .panel__content textarea {
resize: vertical;
}
+.dotdungeon .actor--pc .panel--aspect .aspect__used {
+ display: flex;
+ align-items: center;
+ gap: 4px;
+}
+.dotdungeon .actor--pc .panel--aspect .aspect__used--input {
+ margin: 0;
+}
.dotdungeon .actor--pc .panel--weapons {
grid-area: weapons;
}
@@ -385,12 +393,6 @@
.dotdungeon .actor--pc .panel--spells .spell .placeholder {
opacity: 75%;
}
-.dotdungeon .actor--pc .panel--spells .spell__actions {
- display: flex;
- flex-direction: row;
- justify-content: end;
- gap: 4px;
-}
.dotdungeon .actor--pc .panel--mounts {
grid-area: mounts;
}
@@ -400,6 +402,12 @@
.dotdungeon .actor--pc .panel--storage {
grid-area: storage;
}
+.dotdungeon .actor--pc .actions {
+ display: flex;
+ flex-direction: row;
+ justify-content: end;
+ gap: 4px;
+}
@container (max-width: 620px) {
.dotdungeon .actor--pc {
@@ -482,4 +490,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/global/icons.scss%22,%22../styles/global/buttons.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,%22../styles/sheets/items/spell.scss%22%5D,%22names%22:%5B%5D,%22mappings%22:%22AAIQ;AAKP;EACC;;AAED;EACC;;AAGD;ECfA;EACA;EACA;EDeC,aEhBW;EFiBX;;AAGD;EACC;;AAGD;ECzBA;EACA;EACA;EDyBC;EACA;;AAEA;EACC;;AAIF;AAAA;AAAA;EAGC;EGpCD;EACA;EACA;EACA;EACA;EACA,aDLW;;ACOX;AAAA;AAAA;AAAA;AAAA;EAEC;;AH+BD;EACC;;AAGD;EACC;;AAEA;EACC;;;AAMH;EACC;;AAEA;EACC;EACA,YEzDW;;AF2DX;EACC;EACA,aE/DS;EFgET;;;AIhEF;EACC;EACA;EACA;;AAIC;EACC;EACA;;AAFD;EACC;EACA;;AAFD;EACC;EACA;;AAFD;EACC;EACA;;AAFD;EACC;EACA;;AAFD;EACC;EACA;;AAFD;EACC;EACA;;;ACTH;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC,YHXc;EGYd,OHXe;;AGYf;EACC;EACA,OHfa;EGgBb,cHhBa;;AGoBf;EACC,YHlBc;EGmBd,OHlBe;;AGmBf;EACC;EACA,OHtBa;EGuBb,cHvBa;;AG2Bf;EACC,YHzBa;EG0Bb,OHzBc;;AG0Bd;EACC;EACA,OH7BY;EG8BZ,cH9BY;;AGkCd;EACC;;AAID;EACC;;AACA;EACC;;;ACvDJ;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;EPlBD;EACA;EACA;EOkBE;EACA;EACA,aNrBU;EMsBV;;AAGD;EAEC,QADO;EAEP,OAFO;EAGP;;AAIF;EACC;;;AC7BD;EDkCA;IACC;IACA;;;AExCF;EACC;EACA,qBACC;EASD;EACA,oBACC;EAGD;EACA;;AAEA;EACC;EACA;EACA;EACA;;AAEA;EACC;;AAIA;EACC;;AAMF;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;;AAEA;EACC;EACA;EACA;;AAEA;EACC;;AAGD;EACC;EACA;EACA;EACA;;AAIH;EACC;;AAED;EACC;;AAED;EACC;;;AD5NF;ECoOC;IACC;IACA;IACA,qBACC;;EAkBC;IACC;;EAKD;IACC;IACA;;;AD5PL;ECsQC;IACC;IACA;IACA,qBACC;;EAeC;IACC;;;AC9RL;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;;;ACXF;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/global/icons.scss%22,%22../styles/global/buttons.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,%22../styles/sheets/items/spell.scss%22%5D,%22names%22:%5B%5D,%22mappings%22:%22AAIQ;AAKP;EACC;;AAED;EACC;;AAGD;ECfA;EACA;EACA;EDeC,aEhBW;EFiBX;;AAGD;EACC;;AAGD;ECzBA;EACA;EACA;EDyBC;EACA;;AAEA;EACC;;AAIF;AAAA;AAAA;EAGC;EGpCD;EACA;EACA;EACA;EACA;EACA,aDLW;;ACOX;AAAA;AAAA;AAAA;AAAA;EAEC;;AH+BD;EACC;;AAGD;EACC;;AAEA;EACC;;;AAMH;EACC;;AAEA;EACC;EACA,YEzDW;;AF2DX;EACC;EACA,aE/DS;EFgET;;;AIhEF;EACC;EACA;EACA;;AAIC;EACC;EACA;;AAFD;EACC;EACA;;AAFD;EACC;EACA;;AAFD;EACC;EACA;;AAFD;EACC;EACA;;AAFD;EACC;EACA;;AAFD;EACC;EACA;;;ACTH;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC,YHXc;EGYd,OHXe;;AGYf;EACC;EACA,OHfa;EGgBb,cHhBa;;AGoBf;EACC,YHlBc;EGmBd,OHlBe;;AGmBf;EACC;EACA,OHtBa;EGuBb,cHvBa;;AG2Bf;EACC,YHzBa;EG0Bb,OHzBc;;AG0Bd;EACC;EACA,OH7BY;EG8BZ,cH9BY;;AGkCd;EACC;;AAID;EACC;;AACA;EACC;;;ACvDJ;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;EPlBD;EACA;EACA;EOkBE;EACA;EACA,aNrBU;EMsBV;;AAGD;EAEC,QADO;EAEP,OAFO;EAGP;;AAIF;EACC;;;AC7BD;EDkCA;IACC;IACA;;;AExCF;EACC;EACA,qBACC;EASD;EACA,oBACC;EAGD;EACA;;AAEA;EACC;EACA;EACA;EACA;;AAEA;EACC;;AAIA;EACC;;AAMF;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;;AAKD;EACC;EACA;EACA;;AAEA;EACC;;AAKJ;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;;AAEA;EACC;EACA;EACA;;AAEA;EACC;;AAIH;EACC;;AAED;EACC;;AAED;EACC;;AAIF;EACC;EACA;EACA;EACA;;;ADzOD;ECgPC;IACC;IACA;IACA,qBACC;;EAkBC;IACC;;EAKD;IACC;IACA;;;ADxQL;ECkRC;IACC;IACA;IACA,qBACC;;EAeC;IACC;;;AC1SL;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;;;ACXF;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 7cbea4b..790e505 100644
--- a/.styles/sheets/actor/mvp.css
+++ b/.styles/sheets/actor/mvp.css
@@ -111,6 +111,14 @@
.dotdungeon .actor--pc .panel--aspect .panel__content textarea {
resize: vertical;
}
+.dotdungeon .actor--pc .panel--aspect .aspect__used {
+ display: flex;
+ align-items: center;
+ gap: 4px;
+}
+.dotdungeon .actor--pc .panel--aspect .aspect__used--input {
+ margin: 0;
+}
.dotdungeon .actor--pc .panel--weapons {
grid-area: weapons;
}
@@ -168,12 +176,6 @@
.dotdungeon .actor--pc .panel--spells .spell .placeholder {
opacity: 75%;
}
-.dotdungeon .actor--pc .panel--spells .spell__actions {
- display: flex;
- flex-direction: row;
- justify-content: end;
- gap: 4px;
-}
.dotdungeon .actor--pc .panel--mounts {
grid-area: mounts;
}
@@ -183,6 +185,12 @@
.dotdungeon .actor--pc .panel--storage {
grid-area: storage;
}
+.dotdungeon .actor--pc .actions {
+ display: flex;
+ flex-direction: row;
+ justify-content: end;
+ gap: 4px;
+}
@container (max-width: 620px) {
.dotdungeon .actor--pc {
@@ -209,4 +217,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;;AAEA;EACC;EACA;EACA;EACA;;AAEA;EACC;;AAIA;EACC;;AAMF;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;;AAEA;EACC;EACA;EACA;;AAEA;EACC;;AAGD;EACC;EACA;EACA;EACA;;AAIH;EACC;;AAED;EACC;;AAED;EACC;;;AC5NF;EDoOC;IACC;IACA;IACA,qBACC;;EAkBC;IACC;;EAKD;IACC;IACA;;;AC5PL;EDsQC;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;;AAEA;EACC;EACA;EACA;EACA;;AAEA;EACC;;AAIA;EACC;;AAMF;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;;AAKD;EACC;EACA;EACA;;AAEA;EACC;;AAKJ;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;;AAEA;EACC;EACA;EACA;;AAEA;EACC;;AAIH;EACC;;AAED;EACC;;AAED;EACC;;AAIF;EACC;EACA;EACA;EACA;;;ACzOD;EDgPC;IACC;IACA;IACA,qBACC;;EAkBC;IACC;;EAKD;IACC;IACA;;;ACxQL;EDkRC;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 dba6bc2..a2306b4 100644
--- a/langs/en-ca.json
+++ b/langs/en-ca.json
@@ -130,8 +130,9 @@
"aspect": {
"name.placeholder": "Name...",
"used": "Used",
- "duration": "Duration",
- "description.placeholder": "Description..."
+ "duration": "Duration: {duration}",
+ "empty": "You don't have an Aspect yet, add one using the button below or drag one onto your character sheet.",
+ "add": "Add An Aspect"
},
"respawns.header": "Respawns",
"sync.header": "Sync",
diff --git a/module/documents/Actor/Handler.mjs b/module/documents/Actor/Handler.mjs
index 8252ba2..bcb09a4 100644
--- a/module/documents/Actor/Handler.mjs
+++ b/module/documents/Actor/Handler.mjs
@@ -15,11 +15,10 @@ export class ActorHandler extends Actor {
};
async openEmbeddedSheet($event) {
- console.log(`openEmbeddedSheet`)
if (this.fn?.openEmbeddedSheet) {
this.fn.openEmbeddedSheet.bind(this)($event);
} else {
- const data = $event.currentTarget.dataset;
+ const data = $event.target.dataset;
let item = await fromUuid(data.embeddedEdit);
item?.sheet.render(true);
};
@@ -35,9 +34,8 @@ export class ActorHandler extends Actor {
this.fn.genericEmbeddedDelete.bind(this)($event);
};
- async createCustomSpell() {
+ async createCustomSpell($event) {
if (!this.fn?.createCustomSpell) return;
- this.fn.createCustomSpell.bind(this)();
- this.sheet.render(true);
+ this.fn.createCustomSpell.bind(this)($event);
};
};
diff --git a/module/documents/Actor/Player.mjs b/module/documents/Actor/Player.mjs
index 65239f8..599ec65 100644
--- a/module/documents/Actor/Player.mjs
+++ b/module/documents/Actor/Player.mjs
@@ -9,7 +9,7 @@ export class PlayerActor {
/** @this {Actor} */
static async genericEmbeddedDelete($event) {
- let data = $event.delegateTarget.dataset;
+ let data = $event.currentTarget.dataset;
let item = await fromUuid(data.embeddedId);
if (!item) {
@@ -36,6 +36,20 @@ export class PlayerActor {
});
};
+ /** @this {Actor} */
+ static async createCustomItem(defaults) {
+ let items = await this.createEmbeddedDocuments(`Item`, defaults);
+ if (items.length == 0) {
+ throw new Error();
+ };
+ this.sheet.render();
+ if (game.settings.get(`dotdungeon`, `openEmbeddedOnCreate`)) {
+ for (const item of items) {
+ item.sheet.render(true);
+ };
+ };
+ };
+
/** @this {Actor} */
static async createCustomSpell() {
let items = await this.createEmbeddedDocuments(
diff --git a/module/helpers/index.mjs b/module/helpers/index.mjs
index 202a4f4..6489fb4 100644
--- a/module/helpers/index.mjs
+++ b/module/helpers/index.mjs
@@ -15,6 +15,7 @@ export default {
// Simple helpers
"dd-stringify": v => JSON.stringify(v, null, ` `),
+ "dd-empty": v => v.length == 0,
// Logic helpers
"eq": (a, b) => a == b,
@@ -26,5 +27,5 @@ export default {
"nand": (a, b) => !(a && b),
"xor": (a, b) => (a || b) && !(a && b),
"xnor": (a, b) => !((a || b) && !(a && b)),
- "defined": v => v != null
+ "defined": v => v != null,
};
\ No newline at end of file
diff --git a/module/sheets/PlayerSheet.mjs b/module/sheets/PlayerSheet.mjs
index c1f588c..db69a52 100644
--- a/module/sheets/PlayerSheet.mjs
+++ b/module/sheets/PlayerSheet.mjs
@@ -20,8 +20,9 @@ export class PlayerSheet extends GenericActorSheet {
console.debug(`.dungeon | Adding event listeners for Actor: ${this.id}`);
html.find(`.add-spell`).on(`click`, this.actor.createCustomSpell.bind(this.actor));
- html.find(`[data-embedded-update]`)
- .on(`change`, this.actor.genericEmbeddedUpdate.bind(this.actor));
+ // TODO: Apparently the `change` event is bad to use in Foundry
+ // html.find(`[data-embedded-update]`)
+ // .on(`change`, this.actor.genericEmbeddedUpdate.bind(this.actor));
html.find(`[data-embedded-delete]`)
.on(`click`, this.actor.genericEmbeddedDelete.bind(this.actor));
html.find(`[data-embedded-edit]`)
@@ -38,6 +39,7 @@ export class PlayerSheet extends GenericActorSheet {
ctx.computed = {
canChangeGroup: ctx.settings.playersCanChangeGroup || ctx.isGM,
+ canAddAspect: ctx.items.aspect.length == 0,
};
console.log(ctx)
diff --git a/styles/global/buttons.scss b/styles/global/buttons.scss
index fe4237d..04e809e 100644
--- a/styles/global/buttons.scss
+++ b/styles/global/buttons.scss
@@ -18,7 +18,7 @@
&.confirm {
background: $colour-confirm;
color: $text-on-confirm;
- &:hover, &:focus {
+ &:hover, &:focus-visible {
background: transparent;
color: $colour-confirm;
border-color: $colour-confirm;
@@ -28,7 +28,7 @@
&.neutral {
background: $colour-neutral;
color: $text-on-neutral;
- &:hover, &:focus {
+ &:hover, &:focus-visible {
background: transparent;
color: $colour-neutral;
border-color: $colour-neutral;
@@ -38,7 +38,7 @@
&.danger {
background: $colour-danger;
color: $text-on-danger;
- &:hover, &:focus {
+ &:hover, &:focus-visible {
background: transparent;
color: $colour-danger;
border-color: $colour-danger;
diff --git a/styles/sheets/actor/mvp.scss b/styles/sheets/actor/mvp.scss
index eb16b4f..f729053 100644
--- a/styles/sheets/actor/mvp.scss
+++ b/styles/sheets/actor/mvp.scss
@@ -141,6 +141,18 @@
resize: vertical;
}
}
+
+ .aspect {
+ &__used {
+ display: flex;
+ align-items: center;
+ gap: 4px;
+
+ &--input {
+ margin: 0;
+ }
+ }
+ }
}
&--weapons {
grid-area: weapons;
@@ -203,13 +215,6 @@
.placeholder {
opacity: 75%;
}
-
- &__actions {
- display: flex;
- flex-direction: row;
- justify-content: end;
- gap: 4px;
- }
}
}
&--mounts {
@@ -222,6 +227,13 @@
grid-area: storage;
}
}
+
+ .actions {
+ display: flex;
+ flex-direction: row;
+ justify-content: end;
+ gap: 4px;
+ }
}
diff --git a/templates/actors/char-sheet-mvp/panels/aspect.pc.hbs b/templates/actors/char-sheet-mvp/panels/aspect.pc.hbs
index 913a545..7e87852 100644
--- a/templates/actors/char-sheet-mvp/panels/aspect.pc.hbs
+++ b/templates/actors/char-sheet-mvp/panels/aspect.pc.hbs
@@ -1,37 +1,52 @@
{{#> dotdungeon.panel class="aspect" title="dotdungeon.actor.pc.panel.aspect"}}
-
-
-