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