Do some more work on the character sheet MVP

This commit is contained in:
Oliver-Akins 2023-12-17 18:29:52 -07:00
parent 340f80c5b9
commit a2a72792a2
11 changed files with 138 additions and 17 deletions

View file

@ -74,7 +74,6 @@
display: flex;
flex-direction: column;
justify-content: center;
margin-bottom: 8px;
gap: 4px;
}
.dotdungeon .skill-group h3 {
@ -114,6 +113,9 @@
width: 20px;
aspect-ratio: 1/1;
}
.dotdungeon .panel__content {
padding: 8px;
}
@container (max-width: 400px) {
.dotdungeon .panel__header .icon {
@ -125,7 +127,7 @@
display: grid;
grid-template-areas: "avatar stats stats" "avatar skills skills" "backpack skills skills" "backpack sync aspect" "backpack weapons aspect" "backpack weapons spells" "backpack roles spells" "summons roles mounts" "summons roles storage";
grid-template-columns: repeat(3, minmax(0, 1fr));
grid-template-rows: min-content repeat(8, minmax(0, 1fr));
grid-template-rows: min-content repeat(2, minmax(0, 1fr)) min-content repeat(5, minmax(0, 1fr));
padding: 4px;
gap: 4px;
}
@ -147,6 +149,7 @@
}
.dotdungeon .actor--pc .panel--skills .panel__content {
display: grid;
row-gap: 8px;
grid-template-columns: repeat(2, minmax(0, 1fr));
grid-template-rows: repeat(2, minmax(0, min-content));
}
@ -156,6 +159,21 @@
.dotdungeon .actor--pc .panel--sync {
grid-area: sync;
}
.dotdungeon .actor--pc .panel--sync .panel__content {
display: flex;
flex-direction: column;
gap: 4px;
}
.dotdungeon .actor--pc .panel--sync .respawns,
.dotdungeon .actor--pc .panel--sync .sync {
display: flex;
flex-direction: row;
align-items: center;
}
.dotdungeon .actor--pc .panel--sync .respawns__header,
.dotdungeon .actor--pc .panel--sync .sync__header {
flex-grow: 1;
}
.dotdungeon .actor--pc .panel--aspect {
grid-area: aspect;
}
@ -164,7 +182,6 @@
grid-template-rows: min-content min-content min-content 1fr;
height: 100%;
gap: 4px;
padding: 8px;
}
.dotdungeon .actor--pc .panel--weapons {
grid-area: weapons;
@ -225,4 +242,4 @@
resize: vertical;
}
/*# sourceMappingURL=data:application/json;charset=utf-8,%7B%22version%22:3,%22sourceRoot%22:%22%22,%22sources%22:%5B%22../styles/root.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/items/aspect.scss%22%5D,%22names%22:%5B%5D,%22mappings%22:%22AAIQ;AAKP;EACC;;AAED;EACC;;AAGD;ECfA;EACA;EACA;EDeC;EACA,aEnBW;EFoBX;;AAGD;EACC;EACA;;AAGD;EC3BA;EACA;EACA;ED2BC;EACA;;AAGD;AAAA;AAAA;ECjCA;EACA;EACA;EDmCC;EGnCD;EACA;EACA;EACA;EACA;EACA,aDPW;;ACSX;AAAA;AAAA;AAAA;AAAA;EAEC;;AH8BD;EACC;;;AAKF;EACC;;AAEA;EACC;EACA,YElDW;;;AEHb;EACC;EACA;EACA;;ACHD;EACC;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;EACA;EACA;;;ACfH;EACC;EACA;EAEA;EACA;;AAEA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;ELpBD;EACA;EACA;EKoBE;EACA;EACA,aJzBU;EI0BV;;AAGD;EAEC,QADO;EAEP,OAFO;EAGP;;;AC1BF;EDgCA;IACC;IACA;;;AEtCF;EACC;EACA,qBACC;EASD;EACA;EACA;EACA;;AAGC;EACC;;AAED;EACC;;AACA;EACC;EACA;EACA;EACA;EACA;;AAGF;EACC;;AAEA;EACC;EACA;EACA;;AAGF;EACC;;AAED;EACC;;AAED;EACC;;AACA;EACC;EACA;EACA;EACA;EACA;;AAGF;EACC;;AAED;EACC;;AAED;EACC;;AAED;EACC;;AAED;EACC;;AAED;EACC;;;AD1EF;ECkFC;IACC;IACA;IACA,qBACC;;EAgBD;IACC;;EAGC;IACC;;EAKD;IACC;IACA;;;AD5GL;ECsHC;IACC;IACA;IACA,qBACC;;EAeC;IACC;;;AC/IN;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/root.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/items/aspect.scss%22%5D,%22names%22:%5B%5D,%22mappings%22:%22AAIQ;AAKP;EACC;;AAED;EACC;;AAGD;ECfA;EACA;EACA;EDeC;EACA,aEnBW;EFoBX;;AAGD;EACC;EACA;;AAGD;EC3BA;EACA;EACA;ED2BC;EACA;;AAGD;AAAA;AAAA;ECjCA;EACA;EACA;EDmCC;EGnCD;EACA;EACA;EACA;EACA;EACA,aDPW;;ACSX;AAAA;AAAA;AAAA;AAAA;EAEC;;AH8BD;EACC;;;AAKF;EACC;;AAEA;EACC;EACA,YElDW;;;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;EACA;;AAEA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;ELpBD;EACA;EACA;EKoBE;EACA;EACA,aJzBU;EI0BV;;AAGD;EAEC,QADO;EAEP,OAFO;EAGP;;AAIF;EACC;;;AC/BD;EDoCA;IACC;IACA;;;AE1CF;EACC;EACA,qBACC;EASD;EACA;EACA;EACA;;AAGC;EACC;;AAED;EACC;;AACA;EACC;EACA;EACA;EACA;EACA;;AAGF;EACC;;AAEA;EACC;EACA;EACA;EACA;;AAGF;EACC;;AAED;EACC;;AAEA;EACC;EACA;EACA;;AAGD;AAAA;EAEC;EACA;EACA;;AAEA;AAAA;EACC;;AAIH;EACC;;AACA;EACC;EACA;EACA;EACA;;AAGF;EACC;;AAED;EACC;;AAED;EACC;;AAED;EACC;;AAED;EACC;;AAED;EACC;;;AD3FF;ECmGC;IACC;IACA;IACA,qBACC;;EAgBD;IACC;;EAGC;IACC;;EAKD;IACC;IACA;;;AD7HL;ECuIC;IACC;IACA;IACA,qBACC;;EAeC;IACC;;;AChKN;EACC;;AAEA;EACC;EACA;EACA;;AAGD;EACC;EACA%22,%22file%22:%22root.css%22%7D */

View file

@ -2,7 +2,7 @@
display: grid;
grid-template-areas: "avatar stats stats" "avatar skills skills" "backpack skills skills" "backpack sync aspect" "backpack weapons aspect" "backpack weapons spells" "backpack roles spells" "summons roles mounts" "summons roles storage";
grid-template-columns: repeat(3, minmax(0, 1fr));
grid-template-rows: min-content repeat(8, minmax(0, 1fr));
grid-template-rows: min-content repeat(2, minmax(0, 1fr)) min-content repeat(5, minmax(0, 1fr));
padding: 4px;
gap: 4px;
}
@ -24,6 +24,7 @@
}
.dotdungeon .actor--pc .panel--skills .panel__content {
display: grid;
row-gap: 8px;
grid-template-columns: repeat(2, minmax(0, 1fr));
grid-template-rows: repeat(2, minmax(0, min-content));
}
@ -33,6 +34,21 @@
.dotdungeon .actor--pc .panel--sync {
grid-area: sync;
}
.dotdungeon .actor--pc .panel--sync .panel__content {
display: flex;
flex-direction: column;
gap: 4px;
}
.dotdungeon .actor--pc .panel--sync .respawns,
.dotdungeon .actor--pc .panel--sync .sync {
display: flex;
flex-direction: row;
align-items: center;
}
.dotdungeon .actor--pc .panel--sync .respawns__header,
.dotdungeon .actor--pc .panel--sync .sync__header {
flex-grow: 1;
}
.dotdungeon .actor--pc .panel--aspect {
grid-area: aspect;
}
@ -41,7 +57,6 @@
grid-template-rows: min-content min-content min-content 1fr;
height: 100%;
gap: 4px;
padding: 8px;
}
.dotdungeon .actor--pc .panel--weapons {
grid-area: weapons;
@ -90,4 +105,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;EACA;EACA;;AAGC;EACC;;AAED;EACC;;AACA;EACC;EACA;EACA;EACA;EACA;;AAGF;EACC;;AAEA;EACC;EACA;EACA;;AAGF;EACC;;AAED;EACC;;AAED;EACC;;AACA;EACC;EACA;EACA;EACA;EACA;;AAGF;EACC;;AAED;EACC;;AAED;EACC;;AAED;EACC;;AAED;EACC;;AAED;EACC;;;AC1EF;EDkFC;IACC;IACA;IACA,qBACC;;EAgBD;IACC;;EAGC;IACC;;EAKD;IACC;IACA;;;AC5GL;EDsHC;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;EACA;EACA;;AAGC;EACC;;AAED;EACC;;AACA;EACC;EACA;EACA;EACA;EACA;;AAGF;EACC;;AAEA;EACC;EACA;EACA;EACA;;AAGF;EACC;;AAED;EACC;;AAEA;EACC;EACA;EACA;;AAGD;AAAA;EAEC;EACA;EACA;;AAEA;AAAA;EACC;;AAIH;EACC;;AACA;EACC;EACA;EACA;EACA;;AAGF;EACC;;AAED;EACC;;AAED;EACC;;AAED;EACC;;AAED;EACC;;AAED;EACC;;;AC3FF;EDmGC;IACC;IACA;IACA,qBACC;;EAgBD;IACC;;EAGC;IACC;;EAKD;IACC;IACA;;;AC7HL;EDuIC;IACC;IACA;IACA,qBACC;;EAeC;IACC%22,%22file%22:%22mvp.css%22%7D */

View file

@ -28,6 +28,9 @@
width: 20px;
aspect-ratio: 1/1;
}
.dotdungeon .panel__content {
padding: 8px;
}
@container (max-width: 400px) {
.dotdungeon .panel__header .icon {
@ -36,4 +39,4 @@
}
}
/*# sourceMappingURL=data:application/json;charset=utf-8,%7B%22version%22:3,%22sourceRoot%22:%22%22,%22sources%22:%5B%22../../../styles/sheets/partials/panel.scss%22,%22../../../styles/mixins/_foundry.scss%22,%22../../../styles/_vars.scss%22,%22../../../styles/mixins/_breakpoints.scss%22%5D,%22names%22:%5B%5D,%22mappings%22:%22AAIA;EACC;EACA;EAEA;EACA;;AAEA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;ECpBD;EACA;EACA;EDoBE;EACA;EACA,aEzBU;EF0BV;;AAGD;EAEC,QADO;EAEP,OAFO;EAGP;;;AG1BF;EHgCA;IACC;IACA%22,%22file%22:%22panel.css%22%7D */
/*# sourceMappingURL=data:application/json;charset=utf-8,%7B%22version%22:3,%22sourceRoot%22:%22%22,%22sources%22:%5B%22../../../styles/sheets/partials/panel.scss%22,%22../../../styles/mixins/_foundry.scss%22,%22../../../styles/_vars.scss%22,%22../../../styles/mixins/_breakpoints.scss%22%5D,%22names%22:%5B%5D,%22mappings%22:%22AAIA;EACC;EACA;EAEA;EACA;;AAEA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;ECpBD;EACA;EACA;EDoBE;EACA;EACA,aEzBU;EF0BV;;AAGD;EAEC,QADO;EAEP,OAFO;EAGP;;AAIF;EACC;;;AG/BD;EHoCA;IACC;IACA%22,%22file%22:%22panel.css%22%7D */

View file

@ -10,7 +10,6 @@
display: flex;
flex-direction: column;
justify-content: center;
margin-bottom: 8px;
gap: 4px;
}
.dotdungeon .skill-group h3 {
@ -20,4 +19,4 @@
text-align: center;
}
/*# sourceMappingURL=data:application/json;charset=utf-8,%7B%22version%22:3,%22sourceRoot%22:%22%22,%22sources%22:%5B%22../../../styles/sheets/partials/skill.scss%22%5D,%22names%22:%5B%5D,%22mappings%22:%22AAAA;EACC;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;EACA;EACA%22,%22file%22:%22skill.css%22%7D */
/*# sourceMappingURL=data:application/json;charset=utf-8,%7B%22version%22:3,%22sourceRoot%22:%22%22,%22sources%22:%5B%22../../../styles/sheets/partials/skill.scss%22%5D,%22names%22:%5B%5D,%22mappings%22:%22AAAA;EACC;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;EACA;EACA;;AAEA;EACC;EACA;EACA;EACA%22,%22file%22:%22skill.css%22%7D */

View file

@ -63,6 +63,8 @@
"dotdungeon.actor.pc.skill.explosives": "Explosives",
"dotdungeon.actor.pc.skill.piloting": "Piloting",
"dotdungeon.actor.pc.respawns.header": "Respawns",
"dotdungeon.item.aspect.name": "Name",
"dotdungeon.item.aspect.duration": "Duration (seconds)",

View file

@ -96,6 +96,11 @@ export class PlayerData extends foundry.abstract.DataModel {
info: new fields.HTMLField(),
})
),
respawns: new fields.SchemaField({
r1: new fields.BooleanField(),
r2: new fields.BooleanField(),
r3: new fields.BooleanField(),
}),
};
};
};

View file

@ -17,8 +17,7 @@ export class PlayerSheet extends ActorSheet {
if (!this.isEditable) return;
console.debug(`.dungeon | Adding event listeners for Actor: ${this.id}`);
// Modal openings
// html.find(`button.stat-prompt`).on("click", () => {});
// html.find(`input.sync__input`).on("blur", ($e) => {});
};
getData() {
@ -28,6 +27,10 @@ export class PlayerSheet extends ActorSheet {
ctx.system = actor.system;
ctx.flags = actor.flags;
ctx.computed = {
syncTotal: 0
};
console.groupCollapsed(`PlayerSheet.getData`);
console.log(`ctx`, ctx);
console.log(`actor`, actor);

View file

@ -14,7 +14,7 @@
"summons roles mounts"
"summons roles storage";
grid-template-columns: repeat(3, minmax(0, 1fr));
grid-template-rows: min-content repeat(8, minmax(0, 1fr));
grid-template-rows: min-content repeat(2, minmax(0, 1fr)) min-content repeat(5, minmax(0, 1fr));
padding: 4px;
gap: 4px;
@ -37,6 +37,7 @@
.panel__content {
display: grid;
row-gap: 8px;
grid-template-columns: repeat(2, minmax(0, 1fr));
grid-template-rows: repeat(2, minmax(0, min-content));
}
@ -46,6 +47,23 @@
}
&--sync {
grid-area: sync;
.panel__content {
display: flex;
flex-direction: column;
gap: 4px;
}
.respawns,
.sync {
display: flex;
flex-direction: row;
align-items: center;
&__header {
flex-grow: 1;
}
}
}
&--aspect {
grid-area: aspect;
@ -54,7 +72,6 @@
grid-template-rows: min-content min-content min-content 1fr;
height: 100%;
gap: 4px;
padding: 8px;
}
}
&--weapons {

View file

@ -34,6 +34,10 @@
aspect-ratio: 1/1;
}
}
&__content {
padding: 8px;
}
}
@include bp-s {

View file

@ -10,7 +10,6 @@
display: flex;
flex-direction: column;
justify-content: center;
margin-bottom: 8px;
gap: 4px;
h3 {

View file

@ -1,12 +1,33 @@
<form autocomplete="off" class="actor--pc">
{{#> dotdungeon.panel class="avatar" title="dotdungeon.actor.pc.panel.avatar"}}
Avatar Content
<label>
Name
<input
type="text"
name="name"
value="{{actor.name}}"
>
</label>
<label>
Group Name
<input
type="text"
name="system.group"
value="{{system.group}}"
>
</label>
{{log system}}
{{log actor}}
{{/ dotdungeon.panel}}
{{#> dotdungeon.panel class="stats" title="dotdungeon.actor.pc.panel.statistics"}}
{{#each system.stats }}
{{> dotdungeon.stat name=@key value=this}}
{{/each}}
{{/ dotdungeon.panel}}
{{#> dotdungeon.panel class="skills" title="dotdungeon.actor.pc.panel.skills"}}
{{#each system.skills as |skills|}}
<div class="skill-group">
@ -17,12 +38,36 @@
</div>
{{/each}}
{{/ dotdungeon.panel}}
{{#> dotdungeon.panel class="backpack" title="dotdungeon.actor.pc.panel.backpack"}}
Backpack
{{/ dotdungeon.panel}}
{{#> dotdungeon.panel class="sync" title="dotdungeon.actor.pc.panel.sync"}}
Sync
<div class="sync">
<h3 class="sync__header">Sync</h3>
{{!-- <input
type="number"
class="sync__input"
value="{{computed.syncTotal}}"
> --}}
</div>
<div class="respawns">
<h3 class="respawns__header">{{localize "dotdungeon.actor.pc.respawns.header"}}</h3>
{{#each system.respawns}}
<input
type="checkbox"
class="respawns__input"
name="system.respawns.{{@key}}"
{{checked this}}
>
{{/each}}
</div>
{{/ dotdungeon.panel}}
{{#> dotdungeon.panel class="aspect" title="dotdungeon.actor.pc.panel.aspect"}}
<input
type="text"
@ -58,21 +103,33 @@
name="system.aspect.description"
>{{system.aspect.description}}</textarea>
{{/ dotdungeon.panel}}
{{#> dotdungeon.panel class="weapons" title="dotdungeon.actor.pc.panel.weapons"}}
Weapons
{{/ dotdungeon.panel}}
{{#> dotdungeon.panel class="spells" title="dotdungeon.actor.pc.panel.spells"}}
Spells
{{/ dotdungeon.panel}}
{{#> dotdungeon.panel class="roles" title="dotdungeon.actor.pc.panel.roles"}}
Roles
{{/ dotdungeon.panel}}
{{#> dotdungeon.panel class="mounts" title="dotdungeon.actor.pc.panel.mounts"}}
Mounts
{{/ dotdungeon.panel}}
{{#> dotdungeon.panel class="summons" title="dotdungeon.actor.pc.panel.summons"}}
Summons
{{/ dotdungeon.panel}}
{{#> dotdungeon.panel class="storage" title="dotdungeon.actor.pc.panel.storage"}}
Storage
{{/ dotdungeon.panel}}