diff --git a/.styles/root.css b/.styles/root.css index b3d37d3..8e23922 100644 --- a/.styles/root.css +++ b/.styles/root.css @@ -166,14 +166,27 @@ flex-direction: row; align-items: center; } -.dotdungeon .actor--pc .panel--backpack .row .grow { +.dotdungeon .actor--pc .panel--backpack .col { + display: flex; + flex-direction: column; +} +.dotdungeon .actor--pc .panel--backpack .grow { flex-grow: 1; } +.dotdungeon .actor--pc .panel--backpack .panel__content { + display: flex; + flex-direction: column; + gap: 4px; +} +.dotdungeon .actor--pc .panel--backpack .bytes-input, .dotdungeon .actor--pc .panel--backpack .supplies-count, .dotdungeon .actor--pc .panel--backpack .materials-count { width: 25%; text-align: center; } +.dotdungeon .actor--pc .panel--backpack textarea { + resize: vertical; +} .dotdungeon .actor--pc .panel--sync { grid-area: sync; } @@ -304,4 +317,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;;AAEA;EACC;;AAIF;AAAA;EAEC;EACA;;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;;;AD1IF;ECkJC;IACC;IACA;IACA,qBACC;;EAkBC;IACC;;EAKD;IACC;IACA;;;AD1KL;ECoLC;IACC;IACA;IACA,qBACC;;EAeC;IACC;;;AC5ML;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;;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 */ diff --git a/.styles/sheets/actor/mvp.css b/.styles/sheets/actor/mvp.css index 7e888c7..bd800f5 100644 --- a/.styles/sheets/actor/mvp.css +++ b/.styles/sheets/actor/mvp.css @@ -44,14 +44,27 @@ flex-direction: row; align-items: center; } -.dotdungeon .actor--pc .panel--backpack .row .grow { +.dotdungeon .actor--pc .panel--backpack .col { + display: flex; + flex-direction: column; +} +.dotdungeon .actor--pc .panel--backpack .grow { flex-grow: 1; } +.dotdungeon .actor--pc .panel--backpack .panel__content { + display: flex; + flex-direction: column; + gap: 4px; +} +.dotdungeon .actor--pc .panel--backpack .bytes-input, .dotdungeon .actor--pc .panel--backpack .supplies-count, .dotdungeon .actor--pc .panel--backpack .materials-count { width: 25%; text-align: center; } +.dotdungeon .actor--pc .panel--backpack textarea { + resize: vertical; +} .dotdungeon .actor--pc .panel--sync { grid-area: sync; } @@ -139,4 +152,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;;AAEA;EACC;;AAIF;AAAA;EAEC;EACA;;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;;;AC1IF;EDkJC;IACC;IACA;IACA,qBACC;;EAkBC;IACC;;EAKD;IACC;IACA;;;AC1KL;EDoLC;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;;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 */ diff --git a/langs/en-ca.json b/langs/en-ca.json index edd4394..04714af 100644 --- a/langs/en-ca.json +++ b/langs/en-ca.json @@ -86,6 +86,7 @@ "dotdungeon.actor.pc.profile.name.placeholder": "Character Name...", "dotdungeon.actor.pc.backpack.materials.label": "Materials", + "dotdungeon.actor.pc.backpack.bytes.label": "Bytes", "dotdungeon.actor.sync.circle.group": "Group Name", @@ -105,5 +106,6 @@ "dotdungeon.aria.actor.pc.skill.dropdown": "Your expertise level in the {skill} skill", "dotdungeon.aria.actor.pc.skill.button.roll": "Roll a {skill} check", "dotdungeon.aria.actor.pc.input.materials": "The number of materials you have available", - "dotdungeon.aria.actor.pc.input.supplies": "The number of supplies you have available" + "dotdungeon.aria.actor.pc.input.supplies": "The number of supplies you have available", + "dotdungeon.aria.actor.pc.input.bytes": "The number of bytes you have" } \ No newline at end of file diff --git a/module/models/PlayerData.mjs b/module/models/PlayerData.mjs index f7f4583..bfab40a 100644 --- a/module/models/PlayerData.mjs +++ b/module/models/PlayerData.mjs @@ -1,5 +1,6 @@ function diceChoiceField() { return new foundry.data.fields.StringField({ + initial: ``, blank: true, trim: true, options() { @@ -10,6 +11,7 @@ function diceChoiceField() { function trainingLevelField() { return new foundry.data.fields.StringField({ + initial: ``, blank: true, trim: true, options: [ ``, `locked`, `+2`, `+4` ], @@ -21,8 +23,9 @@ export class PlayerData extends foundry.abstract.DataModel { const fields = foundry.data.fields; return { bytes: new fields.NumberField({ + initial: 0, + min: 0, integer: true, - positive: true, }), stats: new fields.SchemaField({ build: diceChoiceField(), @@ -69,14 +72,14 @@ export class PlayerData extends foundry.abstract.DataModel { used: new fields.BooleanField(), }), roles: new fields.SchemaField({ - r1: new fields.StringField({ initial: ``, blank: true, trim: true }), - r2: new fields.StringField({ initial: ``, blank: true, trim: true }), - r3: new fields.StringField({ initial: ``, blank: true, trim: true }), - r4: new fields.StringField({ initial: ``, blank: true, trim: true }), + r1: new fields.StringField({ blank: true, trim: true }), + r2: new fields.StringField({ blank: true, trim: true }), + r3: new fields.StringField({ blank: true, trim: true }), + r4: new fields.StringField({ blank: true, trim: true }), }), weapon: new fields.SchemaField({ - name: new fields.HTMLField(), - damage: new fields.HTMLField(), + name: new fields.StringField(), + damage: new fields.StringField(), ammo: new fields.SchemaField({ quivers: new fields.NumberField({ min: 0, max: 5, integer: true }), mags: new fields.NumberField({ min: 0, max: 5, integer: true }), @@ -96,19 +99,19 @@ export class PlayerData extends foundry.abstract.DataModel { integer: true }), pet: new fields.SchemaField({ - name: new fields.HTMLField(), - info: new fields.HTMLField(), + name: new fields.StringField(), + info: new fields.StringField(), }), transport: new fields.SchemaField({ - name: new fields.HTMLField(), + name: new fields.StringField(), upkeep: new fields.NumberField({ min: 0, integer: true }), - info: new fields.HTMLField(), + info: new fields.StringField(), }), spells: new fields.ArrayField( new fields.SchemaField({ - name: new fields.HTMLField(), + name: new fields.StringField(), cost: new fields.NumberField(), - info: new fields.HTMLField(), + info: new fields.StringField(), }) ), respawns: new fields.SchemaField({ @@ -121,6 +124,7 @@ export class PlayerData extends foundry.abstract.DataModel { integer: true, initial: 0, }), + inventoryString: new fields.StringField({ blank: true, trim: true }), }; }; }; \ No newline at end of file diff --git a/styles/sheets/actor/mvp.scss b/styles/sheets/actor/mvp.scss index 3056b81..283df4f 100644 --- a/styles/sheets/actor/mvp.scss +++ b/styles/sheets/actor/mvp.scss @@ -61,17 +61,31 @@ display: flex; flex-direction: row; align-items: center; - - .grow { - flex-grow: 1; - } + } + .col { + display: flex; + flex-direction: column; + } + .grow { + flex-grow: 1; } + .panel__content { + display: flex; + flex-direction: column; + gap: 4px; + } + + .bytes-input, .supplies-count, .materials-count { width: 25%; text-align: center; } + + textarea { + resize: vertical; + } } &--sync { grid-area: sync; diff --git a/templates/actors/char-sheet-mvp/sheet.hbs b/templates/actors/char-sheet-mvp/sheet.hbs index d97b25a..e454e54 100644 --- a/templates/actors/char-sheet-mvp/sheet.hbs +++ b/templates/actors/char-sheet-mvp/sheet.hbs @@ -64,6 +64,21 @@ {{#> dotdungeon.panel class="backpack" title="dotdungeon.actor.pc.panel.backpack"}} + + {{/ dotdungeon.panel}}