diff --git a/.styles/root.css b/.styles/root.css
index a6b8c96..c900a2d 100644
--- a/.styles/root.css
+++ b/.styles/root.css
@@ -217,7 +217,7 @@
}
.dotdungeon .actor--pc {
display: grid;
- grid-template-areas: "profile stats stats" "profile skills skills" "sync skills skills" "spells weapons aspect" "spells weapons aspect" "backpack roles mounts" "backpack roles mounts" "summons storage storage" "summons storage storage";
+ grid-template-areas: "profile stats stats" "profile skills skills" "sync skills skills" "spells weapons aspect" "spells weapons aspect" "backpack roles mounts" "backpack roles mounts" "pets storage storage" "pets storage storage";
grid-template-columns: repeat(3, minmax(0, 1fr));
grid-template-rows: min-content 1fr repeat(7, min-content);
padding: 4px;
@@ -401,8 +401,16 @@
.dotdungeon .actor--pc .panel--mounts {
grid-area: mounts;
}
-.dotdungeon .actor--pc .panel--summons {
- grid-area: summons;
+.dotdungeon .actor--pc .panel--pets {
+ grid-area: pets;
+}
+.dotdungeon .actor--pc .panel--pets .panel__content {
+ display: grid;
+ grid-template-rows: min-content min-content;
+ gap: 4px;
+}
+.dotdungeon .actor--pc .panel--pets .panel__content textarea {
+ resize: vertical;
}
.dotdungeon .actor--pc .panel--storage {
grid-area: storage;
@@ -421,7 +429,7 @@
.dotdungeon .actor--pc {
grid-template-columns: repeat(2, minmax(0, 1fr));
grid-template-rows: repeat(15, min-content);
- grid-template-areas: "profile stats" "profile skills" "sync skills" "weapons skills" "weapons skills" "backpack aspect" "backpack aspect" "backpack roles" "backpack roles" "backpack roles" "backpack spells" "summons spells" "summons storage" "mounts storage" "mounts storage";
+ grid-template-areas: "profile stats" "profile skills" "sync skills" "weapons skills" "weapons skills" "backpack aspect" "backpack aspect" "backpack roles" "backpack roles" "backpack roles" "backpack spells" "pets spells" "pets storage" "mounts storage" "mounts storage";
}
.dotdungeon .actor--pc .panel--stats .panel__content {
flex-wrap: wrap;
@@ -435,7 +443,7 @@
.dotdungeon .actor--pc {
grid-template-columns: 1fr;
grid-template-rows: repeat(12, min-content);
- grid-template-areas: "profile" "stats" "sync" "skills" "aspect" "roles" "backpack" "weapons" "spells" "mounts" "summons" "storage";
+ grid-template-areas: "profile" "stats" "sync" "skills" "aspect" "roles" "backpack" "weapons" "spells" "mounts" "pets" "storage";
}
.dotdungeon .actor--pc .panel--skills .skill {
flex-direction: column;
@@ -498,4 +506,17 @@
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;;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;;AAIF;EACC;EACA;EACA;;AAGF;EACC;;AAED;EACC;;AAED;EACC;;AAIF;EACC;EACA;EACA;EACA;;AAIA;EACC;;;ADpPF;EC4PC;IACC;IACA;IACA,qBACC;;EAkBC;IACC;;EAKD;IACC;IACA;;;ADpRL;EC8RC;IACC;IACA;IACA,qBACC;;EAeC;IACC;;;ACtTL;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 */
+.dotdungeon .item--pet {
+ padding: 4px;
+}
+.dotdungeon .item--pet input[type=text] {
+ font-size: 1.5em;
+ height: 1.5em;
+ width: 100%;
+}
+.dotdungeon .item--pet textarea {
+ width: 100%;
+ 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,%22../styles/sheets/items/pet.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;;AAIF;EACC;EACA;EACA;;AAGF;EACC;;AAED;EACC;;AAEA;EACC;EACA;EACA;;AAEA;EACC;;AAIH;EACC;;AAIF;EACC;EACA;EACA;EACA;;AAIA;EACC;;;AD9PF;ECsQC;IACC;IACA;IACA,qBACC;;EAkBC;IACC;;EAKD;IACC;IACA;;;AD9RL;ECwSC;IACC;IACA;IACA,qBACC;;EAeC;IACC;;;AChUL;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;;;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 6106310..0eedafc 100644
--- a/.styles/sheets/actor/mvp.css
+++ b/.styles/sheets/actor/mvp.css
@@ -1,6 +1,6 @@
.dotdungeon .actor--pc {
display: grid;
- grid-template-areas: "profile stats stats" "profile skills skills" "sync skills skills" "spells weapons aspect" "spells weapons aspect" "backpack roles mounts" "backpack roles mounts" "summons storage storage" "summons storage storage";
+ grid-template-areas: "profile stats stats" "profile skills skills" "sync skills skills" "spells weapons aspect" "spells weapons aspect" "backpack roles mounts" "backpack roles mounts" "pets storage storage" "pets storage storage";
grid-template-columns: repeat(3, minmax(0, 1fr));
grid-template-rows: min-content 1fr repeat(7, min-content);
padding: 4px;
@@ -184,8 +184,16 @@
.dotdungeon .actor--pc .panel--mounts {
grid-area: mounts;
}
-.dotdungeon .actor--pc .panel--summons {
- grid-area: summons;
+.dotdungeon .actor--pc .panel--pets {
+ grid-area: pets;
+}
+.dotdungeon .actor--pc .panel--pets .panel__content {
+ display: grid;
+ grid-template-rows: min-content min-content;
+ gap: 4px;
+}
+.dotdungeon .actor--pc .panel--pets .panel__content textarea {
+ resize: vertical;
}
.dotdungeon .actor--pc .panel--storage {
grid-area: storage;
@@ -204,7 +212,7 @@
.dotdungeon .actor--pc {
grid-template-columns: repeat(2, minmax(0, 1fr));
grid-template-rows: repeat(15, min-content);
- grid-template-areas: "profile stats" "profile skills" "sync skills" "weapons skills" "weapons skills" "backpack aspect" "backpack aspect" "backpack roles" "backpack roles" "backpack roles" "backpack spells" "summons spells" "summons storage" "mounts storage" "mounts storage";
+ grid-template-areas: "profile stats" "profile skills" "sync skills" "weapons skills" "weapons skills" "backpack aspect" "backpack aspect" "backpack roles" "backpack roles" "backpack roles" "backpack spells" "pets spells" "pets storage" "mounts storage" "mounts storage";
}
.dotdungeon .actor--pc .panel--stats .panel__content {
flex-wrap: wrap;
@@ -218,11 +226,11 @@
.dotdungeon .actor--pc {
grid-template-columns: 1fr;
grid-template-rows: repeat(12, min-content);
- grid-template-areas: "profile" "stats" "sync" "skills" "aspect" "roles" "backpack" "weapons" "spells" "mounts" "summons" "storage";
+ grid-template-areas: "profile" "stats" "sync" "skills" "aspect" "roles" "backpack" "weapons" "spells" "mounts" "pets" "storage";
}
.dotdungeon .actor--pc .panel--skills .skill {
flex-direction: column;
}
}
-/*# 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;;AAIF;EACC;EACA;EACA;;AAGF;EACC;;AAED;EACC;;AAED;EACC;;AAIF;EACC;EACA;EACA;EACA;;AAIA;EACC;;;ACpPF;ED4PC;IACC;IACA;IACA,qBACC;;EAkBC;IACC;;EAKD;IACC;IACA;;;ACpRL;ED8RC;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;;AAIF;EACC;EACA;EACA;;AAGF;EACC;;AAED;EACC;;AAEA;EACC;EACA;EACA;;AAEA;EACC;;AAIH;EACC;;AAIF;EACC;EACA;EACA;EACA;;AAIA;EACC;;;AC9PF;EDsQC;IACC;IACA;IACA,qBACC;;EAkBC;IACC;;EAKD;IACC;IACA;;;AC9RL;EDwSC;IACC;IACA;IACA,qBACC;;EAeC;IACC%22,%22file%22:%22mvp.css%22%7D */
diff --git a/.styles/sheets/items/pet.css b/.styles/sheets/items/pet.css
new file mode 100644
index 0000000..6b0b96c
--- /dev/null
+++ b/.styles/sheets/items/pet.css
@@ -0,0 +1,14 @@
+.dotdungeon .item--pet {
+ padding: 4px;
+}
+.dotdungeon .item--pet input[type=text] {
+ font-size: 1.5em;
+ height: 1.5em;
+ width: 100%;
+}
+.dotdungeon .item--pet textarea {
+ width: 100%;
+ resize: vertical;
+}
+
+/*# sourceMappingURL=data:application/json;charset=utf-8,%7B%22version%22:3,%22sourceRoot%22:%22%22,%22sources%22:%5B%22../../../styles/sheets/items/pet.scss%22%5D,%22names%22:%5B%5D,%22mappings%22:%22AAEA;EACC;;AAEA;EACC;EACA;EACA;;AAGD;EACC;EACA%22,%22file%22:%22pet.css%22%7D */
diff --git a/langs/en-ca.json b/langs/en-ca.json
index a4bd896..04b7575 100644
--- a/langs/en-ca.json
+++ b/langs/en-ca.json
@@ -83,7 +83,8 @@
"basic": "Theme: Basic"
},
"AspectSheet": "Aspect Sheet",
- "SpellSheet": "Spell Sheet"
+ "SpellSheet": "Spell Sheet",
+ "PetSheet": "Pet Sheet"
},
"actor": {
"pc": {
@@ -98,7 +99,7 @@
"roles": "Roles",
"spells": "Spells",
"mounts": "Transportation",
- "summons": "Pets",
+ "pets": "Pets",
"storage": "Storage"
},
"stat": {
@@ -201,8 +202,9 @@
"chat": "Send spell information to chat"
}
},
- "summons": {
- "upkeep": "(Upkeep: {upkeep})"
+ "pets": {
+ "upkeep": "(Upkeep: {upkeep})",
+ "add": "Add a Pet"
}
},
"sync": {
@@ -232,6 +234,13 @@
"cost": "The amount of bytes it takes to cast the spell",
"description": "The details of the spell"
}
+ },
+ "pet": {
+ "cost.label": "Purchase Cost",
+ "name.placeholder": "Name...",
+ "pokeballd": "In Jar?",
+ "upkeep.label": "Pet Upkeep",
+ "description": "Description:"
}
},
"notification": {
@@ -258,6 +267,12 @@
"title": "Confirm Aspect Deletion",
"content": "Are you sure you would like to delete the aspect: {name}
+
{{pet.system.description}}
This action cannot be undone."
}
+ },
+ "pet": {
+ "delete": {
+ "title": "You want to kill your pet?!",
+ "content": "Are you sure you would like to kill the pet: {name}
This action cannot be undone."
+ }
}
},
"keyword": {
@@ -298,6 +313,9 @@
},
"aspect": {
"name": "(Unnamed Aspect)"
+ },
+ "pet": {
+ "name": "(Unnamed Pet)"
}
}
},
diff --git a/module/documents/Actor/Player.mjs b/module/documents/Actor/Player.mjs
index beb46f2..a1282c9 100644
--- a/module/documents/Actor/Player.mjs
+++ b/module/documents/Actor/Player.mjs
@@ -62,6 +62,26 @@ async function createCustomSpell() {
}]);
};
+/** @this {Actor} */
+async function createCustomPet() {
+ const body = new URLSearchParams({
+ number: 1,
+ animal: `Cat`,
+ "X-Requested-With": "fetch"
+ })
+ const r = await fetch(
+ `https://randommer.io/pet-names`,
+ {
+ method: "POST",
+ body
+ }
+ );
+ await createCustomItem.bind(this)([{
+ type: `pet`,
+ name: (await r.json())[0] ?? game.i18n.localize(`dotdungeon.defaults.pet.name`),
+ }]);
+};
+
/** @this {Actor} */
async function atAspectLimit() {
let limit = game.settings.get(`dotdungeon`, `aspectLimit`);
@@ -90,6 +110,7 @@ export default {
createCustomItem,
createCustomAspect,
createCustomSpell,
+ createCustomPet,
genericEmbeddedDelete,
preAspectEmbed,
};
\ No newline at end of file
diff --git a/module/dotdungeon.mjs b/module/dotdungeon.mjs
index ee5522f..7cc1741 100644
--- a/module/dotdungeon.mjs
+++ b/module/dotdungeon.mjs
@@ -2,6 +2,7 @@
import { AspectItemData } from "./models/Item/Aspect.mjs";
import { SpellItemData } from "./models/Item/Spell.mjs";
import { PlayerData } from "./models/Actor/Player.mjs";
+import { PetItemData } from "./models/Item/Pet.mjs";
import { SyncData } from "./models/Actor/Sync.mjs";
// Main Documents
@@ -13,6 +14,7 @@ import { SpellSheet } from "./sheets/SpellSheet.mjs";
import { AspectSheet } from "./sheets/AspectSheet.mjs";
import { PlayerSheet } from "./sheets/PlayerSheet.mjs";
import { BasicSyncSheet } from "./sheets/SyncVariations/BasicSyncSheet.mjs";
+import { PetSheet } from "./sheets/PetSheet.mjs";
// Utility imports
import * as hbs from "./handlebars.mjs";
@@ -34,6 +36,7 @@ Hooks.once(`init`, () => {
CONFIG.Actor.dataModels.sync = SyncData;
CONFIG.Item.dataModels.aspect = AspectItemData;
CONFIG.Item.dataModels.spell = SpellItemData;
+ CONFIG.Item.dataModels.pet = PetItemData;
CONFIG.Actor.documentClass = ActorHandler;
CONFIG.Item.documentClass = ItemHandler;
@@ -61,6 +64,11 @@ Hooks.once(`init`, () => {
types: ["spell"],
label: "dotdungeon.sheet-names.SpellSheet"
});
+ Items.registerSheet("dotdungeon", PetSheet, {
+ makeDefault: true,
+ types: ["pet"],
+ lable: "dotdungeon.sheet-names.PetSheet"
+ })
hbs.registerHandlebarsHelpers();
hbs.preloadHandlebarsTemplates();
diff --git a/module/handlebars.mjs b/module/handlebars.mjs
index d448b2d..8cec531 100644
--- a/module/handlebars.mjs
+++ b/module/handlebars.mjs
@@ -15,7 +15,7 @@ export const partials = [
`actors/char-sheet-mvp/panels/roles.pc.hbs`,
`actors/char-sheet-mvp/panels/spells.pc.hbs`,
`actors/char-sheet-mvp/panels/storage.pc.hbs`,
- `actors/char-sheet-mvp/panels/summons.pc.hbs`,
+ `actors/char-sheet-mvp/panels/pets.pc.hbs`,
`actors/char-sheet-mvp/panels/sync.pc.hbs`,
`actors/char-sheet-mvp/panels/weapons.pc.hbs`,
];
diff --git a/module/sheets/PetSheet.mjs b/module/sheets/PetSheet.mjs
new file mode 100644
index 0000000..f3955af
--- /dev/null
+++ b/module/sheets/PetSheet.mjs
@@ -0,0 +1,32 @@
+import { GenericItemSheet } from "./GenericItemSheet.mjs";
+
+export class PetSheet extends GenericItemSheet {
+ static get defaultOptions() {
+ let opts = mergeObject(
+ super.defaultOptions,
+ {
+ template: `systems/dotdungeon/templates/items/pet.hbs`,
+ width: 280,
+ height: 340,
+ }
+ );
+ opts.classes.push(`dotdungeon`);
+ return opts;
+ };
+
+ activateListeners(html) {
+ super.activateListeners(html);
+
+ if (!this.isEditable) return;
+ console.debug(`.dungeon | Adding event listeners for Pet Item: ${this.id}`);
+ };
+
+ async getData() {
+ const ctx = await super.getData();
+
+ ctx.item = this.item;
+ ctx.system = this.item.system;
+ ctx.flags = this.item.flags;
+ return ctx;
+ };
+};
diff --git a/module/sheets/SpellSheet.mjs b/module/sheets/SpellSheet.mjs
index 488f159..281408a 100644
--- a/module/sheets/SpellSheet.mjs
+++ b/module/sheets/SpellSheet.mjs
@@ -27,7 +27,6 @@ export class SpellSheet extends GenericItemSheet {
ctx.item = this.item;
ctx.system = this.item.system;
ctx.flags = this.item.flags;
- console.log(ctx)
return ctx;
};
};
diff --git a/styles/root.scss b/styles/root.scss
index 14ec691..a01d539 100644
--- a/styles/root.scss
+++ b/styles/root.scss
@@ -14,4 +14,5 @@
@use "./sheets/actor/mvp.scss";
@use "./sheets/actor/sync/basic.scss";
@use "./sheets/items/aspect.scss";
-@use "./sheets/items/spell.scss";
\ No newline at end of file
+@use "./sheets/items/spell.scss";
+@use "./sheets/items/pet.scss";
\ No newline at end of file
diff --git a/styles/sheets/actor/mvp.scss b/styles/sheets/actor/mvp.scss
index ecc42f5..ba9d43b 100644
--- a/styles/sheets/actor/mvp.scss
+++ b/styles/sheets/actor/mvp.scss
@@ -11,8 +11,8 @@
"spells weapons aspect"
"backpack roles mounts"
"backpack roles mounts"
- "summons storage storage"
- "summons storage storage";
+ "pets storage storage"
+ "pets storage storage";
grid-template-columns: repeat(3, minmax(0, 1fr));
grid-template-rows:
min-content
@@ -226,8 +226,18 @@
&--mounts {
grid-area: mounts;
}
- &--summons {
- grid-area: summons;
+ &--pets {
+ grid-area: pets;
+
+ .panel__content {
+ display: grid;
+ grid-template-rows: min-content min-content;
+ gap: 4px;
+
+ textarea {
+ resize: vertical;
+ }
+ }
}
&--storage {
grid-area: storage;
@@ -266,8 +276,8 @@
"backpack roles"
"backpack roles"
"backpack spells"
- "summons spells"
- "summons storage"
+ "pets spells"
+ "pets storage"
"mounts storage"
"mounts storage";
@@ -305,7 +315,7 @@
"weapons"
"spells"
"mounts"
- "summons"
+ "pets"
"storage";
.panel {
diff --git a/styles/sheets/items/pet.scss b/styles/sheets/items/pet.scss
new file mode 100644
index 0000000..8cfc8e5
--- /dev/null
+++ b/styles/sheets/items/pet.scss
@@ -0,0 +1,16 @@
+@use "../../vars" as *;
+
+.dotdungeon .item--pet {
+ padding: 4px;
+
+ input[type=text] {
+ font-size: 1.5em;
+ height: 1.5em;
+ width: 100%;
+ }
+
+ textarea {
+ width: 100%;
+ resize: vertical;
+ }
+}
\ No newline at end of file
diff --git a/templates/actors/char-sheet-mvp/panels/summons.pc.hbs b/templates/actors/char-sheet-mvp/panels/pets.pc.hbs
similarity index 62%
rename from templates/actors/char-sheet-mvp/panels/summons.pc.hbs
rename to templates/actors/char-sheet-mvp/panels/pets.pc.hbs
index 18255ec..34eb9a8 100644
--- a/templates/actors/char-sheet-mvp/panels/summons.pc.hbs
+++ b/templates/actors/char-sheet-mvp/panels/pets.pc.hbs
@@ -1,18 +1,18 @@
-{{#> dotdungeon.panel class="summons" title="dotdungeon.actor.pc.panel.summons"}}
+{{#> dotdungeon.panel class="pets" title="dotdungeon.actor.pc.panel.pets"}}
{{#each items.pet as | pet |}}
{{ pet.name }}
{{#if (defined pet.system.upkeep)}}
- {{localize "dotdungeon.actor.summons.upkeep" upkeep=(pet.system.upkeep)}}
+ {{localize "dotdungeon.actor.pets.upkeep" upkeep=(pet.system.upkeep)}}
{{/if}}
-
+ You have no pets, add one using the button below or drag one onto your sheet +
{{/each}} + {{/ 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 a006c03..318729c 100644 --- a/templates/actors/char-sheet-mvp/sheet.hbs +++ b/templates/actors/char-sheet-mvp/sheet.hbs @@ -35,7 +35,7 @@ {{> dotdungeon.pc.mounts}} - {{> dotdungeon.pc.summons }} + {{> dotdungeon.pc.pets }} {{> dotdungeon.pc.storage}} diff --git a/templates/items/pet.hbs b/templates/items/pet.hbs new file mode 100644 index 0000000..9eaa96b --- /dev/null +++ b/templates/items/pet.hbs @@ -0,0 +1,47 @@ + \ No newline at end of file