Pets and misc changes

This commit is contained in:
Oliver-Akins 2024-01-26 21:40:27 -07:00
parent 4a3523d6cf
commit b30aa18a27
15 changed files with 244 additions and 32 deletions

View file

@ -217,7 +217,7 @@
} }
.dotdungeon .actor--pc { .dotdungeon .actor--pc {
display: grid; 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-columns: repeat(3, minmax(0, 1fr));
grid-template-rows: min-content 1fr repeat(7, min-content); grid-template-rows: min-content 1fr repeat(7, min-content);
padding: 4px; padding: 4px;
@ -401,8 +401,16 @@
.dotdungeon .actor--pc .panel--mounts { .dotdungeon .actor--pc .panel--mounts {
grid-area: mounts; grid-area: mounts;
} }
.dotdungeon .actor--pc .panel--summons { .dotdungeon .actor--pc .panel--pets {
grid-area: summons; 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 { .dotdungeon .actor--pc .panel--storage {
grid-area: storage; grid-area: storage;
@ -421,7 +429,7 @@
.dotdungeon .actor--pc { .dotdungeon .actor--pc {
grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-columns: repeat(2, minmax(0, 1fr));
grid-template-rows: repeat(15, min-content); 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 { .dotdungeon .actor--pc .panel--stats .panel__content {
flex-wrap: wrap; flex-wrap: wrap;
@ -435,7 +443,7 @@
.dotdungeon .actor--pc { .dotdungeon .actor--pc {
grid-template-columns: 1fr; grid-template-columns: 1fr;
grid-template-rows: repeat(12, min-content); 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 { .dotdungeon .actor--pc .panel--skills .skill {
flex-direction: column; flex-direction: column;
@ -498,4 +506,17 @@
resize: vertical; 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 */

View file

@ -1,6 +1,6 @@
.dotdungeon .actor--pc { .dotdungeon .actor--pc {
display: grid; 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-columns: repeat(3, minmax(0, 1fr));
grid-template-rows: min-content 1fr repeat(7, min-content); grid-template-rows: min-content 1fr repeat(7, min-content);
padding: 4px; padding: 4px;
@ -184,8 +184,16 @@
.dotdungeon .actor--pc .panel--mounts { .dotdungeon .actor--pc .panel--mounts {
grid-area: mounts; grid-area: mounts;
} }
.dotdungeon .actor--pc .panel--summons { .dotdungeon .actor--pc .panel--pets {
grid-area: summons; 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 { .dotdungeon .actor--pc .panel--storage {
grid-area: storage; grid-area: storage;
@ -204,7 +212,7 @@
.dotdungeon .actor--pc { .dotdungeon .actor--pc {
grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-columns: repeat(2, minmax(0, 1fr));
grid-template-rows: repeat(15, min-content); 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 { .dotdungeon .actor--pc .panel--stats .panel__content {
flex-wrap: wrap; flex-wrap: wrap;
@ -218,11 +226,11 @@
.dotdungeon .actor--pc { .dotdungeon .actor--pc {
grid-template-columns: 1fr; grid-template-columns: 1fr;
grid-template-rows: repeat(12, min-content); 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 { .dotdungeon .actor--pc .panel--skills .skill {
flex-direction: column; 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 */

View file

@ -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 */

View file

@ -83,7 +83,8 @@
"basic": "Theme: Basic" "basic": "Theme: Basic"
}, },
"AspectSheet": "Aspect Sheet", "AspectSheet": "Aspect Sheet",
"SpellSheet": "Spell Sheet" "SpellSheet": "Spell Sheet",
"PetSheet": "Pet Sheet"
}, },
"actor": { "actor": {
"pc": { "pc": {
@ -98,7 +99,7 @@
"roles": "Roles", "roles": "Roles",
"spells": "Spells", "spells": "Spells",
"mounts": "Transportation", "mounts": "Transportation",
"summons": "Pets", "pets": "Pets",
"storage": "Storage" "storage": "Storage"
}, },
"stat": { "stat": {
@ -201,8 +202,9 @@
"chat": "Send spell information to chat" "chat": "Send spell information to chat"
} }
}, },
"summons": { "pets": {
"upkeep": "(Upkeep: {upkeep})" "upkeep": "(Upkeep: {upkeep})",
"add": "Add a Pet"
} }
}, },
"sync": { "sync": {
@ -232,6 +234,13 @@
"cost": "The amount of bytes it takes to cast the spell", "cost": "The amount of bytes it takes to cast the spell",
"description": "The details of 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": { "notification": {
@ -258,6 +267,12 @@
"title": "Confirm Aspect Deletion", "title": "Confirm Aspect Deletion",
"content": "Are you sure you would like to delete the aspect: {name}<br /><br />This action cannot be undone." "content": "Are you sure you would like to delete the aspect: {name}<br /><br />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}<br /><br />This action cannot be undone."
}
} }
}, },
"keyword": { "keyword": {
@ -298,6 +313,9 @@
}, },
"aspect": { "aspect": {
"name": "(Unnamed Aspect)" "name": "(Unnamed Aspect)"
},
"pet": {
"name": "(Unnamed Pet)"
} }
} }
}, },

View file

@ -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} */ /** @this {Actor} */
async function atAspectLimit() { async function atAspectLimit() {
let limit = game.settings.get(`dotdungeon`, `aspectLimit`); let limit = game.settings.get(`dotdungeon`, `aspectLimit`);
@ -90,6 +110,7 @@ export default {
createCustomItem, createCustomItem,
createCustomAspect, createCustomAspect,
createCustomSpell, createCustomSpell,
createCustomPet,
genericEmbeddedDelete, genericEmbeddedDelete,
preAspectEmbed, preAspectEmbed,
}; };

View file

@ -2,6 +2,7 @@
import { AspectItemData } from "./models/Item/Aspect.mjs"; import { AspectItemData } from "./models/Item/Aspect.mjs";
import { SpellItemData } from "./models/Item/Spell.mjs"; import { SpellItemData } from "./models/Item/Spell.mjs";
import { PlayerData } from "./models/Actor/Player.mjs"; import { PlayerData } from "./models/Actor/Player.mjs";
import { PetItemData } from "./models/Item/Pet.mjs";
import { SyncData } from "./models/Actor/Sync.mjs"; import { SyncData } from "./models/Actor/Sync.mjs";
// Main Documents // Main Documents
@ -13,6 +14,7 @@ import { SpellSheet } from "./sheets/SpellSheet.mjs";
import { AspectSheet } from "./sheets/AspectSheet.mjs"; import { AspectSheet } from "./sheets/AspectSheet.mjs";
import { PlayerSheet } from "./sheets/PlayerSheet.mjs"; import { PlayerSheet } from "./sheets/PlayerSheet.mjs";
import { BasicSyncSheet } from "./sheets/SyncVariations/BasicSyncSheet.mjs"; import { BasicSyncSheet } from "./sheets/SyncVariations/BasicSyncSheet.mjs";
import { PetSheet } from "./sheets/PetSheet.mjs";
// Utility imports // Utility imports
import * as hbs from "./handlebars.mjs"; import * as hbs from "./handlebars.mjs";
@ -34,6 +36,7 @@ Hooks.once(`init`, () => {
CONFIG.Actor.dataModels.sync = SyncData; CONFIG.Actor.dataModels.sync = SyncData;
CONFIG.Item.dataModels.aspect = AspectItemData; CONFIG.Item.dataModels.aspect = AspectItemData;
CONFIG.Item.dataModels.spell = SpellItemData; CONFIG.Item.dataModels.spell = SpellItemData;
CONFIG.Item.dataModels.pet = PetItemData;
CONFIG.Actor.documentClass = ActorHandler; CONFIG.Actor.documentClass = ActorHandler;
CONFIG.Item.documentClass = ItemHandler; CONFIG.Item.documentClass = ItemHandler;
@ -61,6 +64,11 @@ Hooks.once(`init`, () => {
types: ["spell"], types: ["spell"],
label: "dotdungeon.sheet-names.SpellSheet" label: "dotdungeon.sheet-names.SpellSheet"
}); });
Items.registerSheet("dotdungeon", PetSheet, {
makeDefault: true,
types: ["pet"],
lable: "dotdungeon.sheet-names.PetSheet"
})
hbs.registerHandlebarsHelpers(); hbs.registerHandlebarsHelpers();
hbs.preloadHandlebarsTemplates(); hbs.preloadHandlebarsTemplates();

View file

@ -15,7 +15,7 @@ export const partials = [
`actors/char-sheet-mvp/panels/roles.pc.hbs`, `actors/char-sheet-mvp/panels/roles.pc.hbs`,
`actors/char-sheet-mvp/panels/spells.pc.hbs`, `actors/char-sheet-mvp/panels/spells.pc.hbs`,
`actors/char-sheet-mvp/panels/storage.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/sync.pc.hbs`,
`actors/char-sheet-mvp/panels/weapons.pc.hbs`, `actors/char-sheet-mvp/panels/weapons.pc.hbs`,
]; ];

View file

@ -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;
};
};

View file

@ -27,7 +27,6 @@ export class SpellSheet extends GenericItemSheet {
ctx.item = this.item; ctx.item = this.item;
ctx.system = this.item.system; ctx.system = this.item.system;
ctx.flags = this.item.flags; ctx.flags = this.item.flags;
console.log(ctx)
return ctx; return ctx;
}; };
}; };

View file

@ -14,4 +14,5 @@
@use "./sheets/actor/mvp.scss"; @use "./sheets/actor/mvp.scss";
@use "./sheets/actor/sync/basic.scss"; @use "./sheets/actor/sync/basic.scss";
@use "./sheets/items/aspect.scss"; @use "./sheets/items/aspect.scss";
@use "./sheets/items/spell.scss"; @use "./sheets/items/spell.scss";
@use "./sheets/items/pet.scss";

View file

@ -11,8 +11,8 @@
"spells weapons aspect" "spells weapons aspect"
"backpack roles mounts" "backpack roles mounts"
"backpack roles mounts" "backpack roles mounts"
"summons storage storage" "pets storage storage"
"summons storage storage"; "pets storage storage";
grid-template-columns: repeat(3, minmax(0, 1fr)); grid-template-columns: repeat(3, minmax(0, 1fr));
grid-template-rows: grid-template-rows:
min-content min-content
@ -226,8 +226,18 @@
&--mounts { &--mounts {
grid-area: mounts; grid-area: mounts;
} }
&--summons { &--pets {
grid-area: summons; grid-area: pets;
.panel__content {
display: grid;
grid-template-rows: min-content min-content;
gap: 4px;
textarea {
resize: vertical;
}
}
} }
&--storage { &--storage {
grid-area: storage; grid-area: storage;
@ -266,8 +276,8 @@
"backpack roles" "backpack roles"
"backpack roles" "backpack roles"
"backpack spells" "backpack spells"
"summons spells" "pets spells"
"summons storage" "pets storage"
"mounts storage" "mounts storage"
"mounts storage"; "mounts storage";
@ -305,7 +315,7 @@
"weapons" "weapons"
"spells" "spells"
"mounts" "mounts"
"summons" "pets"
"storage"; "storage";
.panel { .panel {

View file

@ -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;
}
}

View file

@ -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 |}} {{#each items.pet as | pet |}}
<details {{dd-expanded ../meta.expanded pet.uuid}}> <details {{dd-expanded ../meta.expanded pet.uuid}}>
<summary data-collapse-id="{{pet.uuid}}"> <summary data-collapse-id="{{pet.uuid}}">
{{ pet.name }} {{ pet.name }}
{{#if (defined pet.system.upkeep)}} {{#if (defined pet.system.upkeep)}}
<span> <span>
{{localize "dotdungeon.actor.summons.upkeep" upkeep=(pet.system.upkeep)}} {{localize "dotdungeon.actor.pets.upkeep" upkeep=(pet.system.upkeep)}}
</span> </span>
{{/if}} {{/if}}
</summary> </summary>
<div class="summon"> <div class="pet">
{{#if pet.system.description}} {{#if pet.system.description}}
<p class="summon_description"> <p class="pet_description">
{{pet.system.description}} {{pet.system.description}}
</p> </p>
{{/if}} {{/if}}
@ -23,6 +23,7 @@
> >
Edit Edit
</button> </button>
<!--
<button <button
class="neutral equal-padding" class="neutral equal-padding"
data-embedded-chat data-embedded-chat
@ -32,9 +33,10 @@
{{{ ../icons.chat-bubble }}} {{{ ../icons.chat-bubble }}}
</div> </div>
</button> </button>
-->
<button <button
class="danger equal-padding" class="danger equal-padding"
aria-label="{{localize "dotdungeon.actor.pc.summons.aria.delete"}}" aria-label="{{localize "dotdungeon.actor.pc.pets.aria.delete"}}"
data-embedded-delete data-embedded-delete
data-embedded-id="{{pet.uuid}}" data-embedded-id="{{pet.uuid}}"
> >
@ -45,5 +47,20 @@
</div> </div>
</div> </div>
</details> </details>
{{else}}
<p>
You have no pets, add one using the button below or drag one onto your sheet
</p>
{{/each}} {{/each}}
<button
class="confirm"
data-embedded-create="Pet"
>
<div aria-hidden="true" class="icon icon--20">
{{{ icons.create }}}
</div>
<span>
{{localize "dotdungeon.actor.pc.pets.add"}}
</span>
</button>
{{/ dotdungeon.panel}} {{/ dotdungeon.panel}}

View file

@ -35,7 +35,7 @@
{{> dotdungeon.pc.mounts}} {{> dotdungeon.pc.mounts}}
{{> dotdungeon.pc.summons }} {{> dotdungeon.pc.pets }}
{{> dotdungeon.pc.storage}} {{> dotdungeon.pc.storage}}

47
templates/items/pet.hbs Normal file
View file

@ -0,0 +1,47 @@
<form autocomplete="off" class="item--pet">
<h2>
<input
type="text"
placeholder="{{localize "dotdungeon.item.pet.name.placeholder"}}"
name="name"
value="{{item.name}}"
aria-label="{{localize "dotdungeon.item.pet.aria.name"}}"
>
</h2>
<label>
{{localize "dotdungeon.item.pet.cost.label"}}
<input
type="number"
name="system.buy"
value="{{system.buy}}"
aria-label="{{localize "dotdungeon.item.pet.aria.cost"}}"
>
</label>
<label>
{{localize "dotdungeon.item.pet.upkeep.label"}}
<input
type="number"
name="system.upkeep"
value="{{system.upkeep}}"
aria-label="{{localize "dotdungeon.item.pet.aria.upkeep"}}"
>
</label>
<label>
{{localize "dotdungeon.item.pet.description"}}
<textarea
name="system.description"
aria-description="{{localize "dotdungeon.aria.pet-description"}}"
>{{system.description}}</textarea>
</label>
{{#if item.isEmbedded}}
<input
type="checkbox"
id="{{meta.idp}}-pokeballd"
name="system.pokeballd"
{{checked system.pokeballd}}
>
<label for="{{meta.idp}}-pokeballd">
{{localize "dotdungeon.item.pet.pokeballd"}}
</label>
{{/if}}
</form>