Finish the weapons block styling and make it so that I can use IDs in the sheet without crying

This commit is contained in:
Oliver-Akins 2023-12-29 23:53:26 -07:00
parent fae962dc7e
commit 99dd7b791a
8 changed files with 242 additions and 104 deletions

View file

@ -224,6 +224,37 @@
.dotdungeon .actor--pc .panel--weapons { .dotdungeon .actor--pc .panel--weapons {
grid-area: weapons; grid-area: weapons;
} }
.dotdungeon .actor--pc .panel--weapons .weapon {
margin-top: 4px;
display: flex;
flex-direction: column;
gap: 4px;
}
.dotdungeon .actor--pc .panel--weapons .weapon__name {
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
}
.dotdungeon .actor--pc .panel--weapons .weapon__name input {
width: 50%;
}
.dotdungeon .actor--pc .panel--weapons .weapon__group {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 4px;
}
.dotdungeon .actor--pc .panel--weapons .weapon__ammo-type, .dotdungeon .actor--pc .panel--weapons .weapon__damage-type {
display: flex;
flex-direction: column;
align-items: center;
}
.dotdungeon .actor--pc .panel--weapons .weapon__is-scoped, .dotdungeon .actor--pc .panel--weapons .weapon__is-ranged {
display: flex;
flex-direction: row;
align-items: center;
justify-content: center;
}
.dotdungeon .actor--pc .panel--roles { .dotdungeon .actor--pc .panel--roles {
grid-area: roles; grid-area: roles;
} }
@ -317,4 +348,4 @@
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/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 */ /*# 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;;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;;AAED;EACC;;AAED;EACC;;AAED;EACC;;;AD1LF;ECkMC;IACC;IACA;IACA,qBACC;;EAkBC;IACC;;EAKD;IACC;IACA;;;AD1NL;ECoOC;IACC;IACA;IACA,qBACC;;EAeC;IACC;;;AC5PL;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 */

View file

@ -102,6 +102,37 @@
.dotdungeon .actor--pc .panel--weapons { .dotdungeon .actor--pc .panel--weapons {
grid-area: weapons; grid-area: weapons;
} }
.dotdungeon .actor--pc .panel--weapons .weapon {
margin-top: 4px;
display: flex;
flex-direction: column;
gap: 4px;
}
.dotdungeon .actor--pc .panel--weapons .weapon__name {
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
}
.dotdungeon .actor--pc .panel--weapons .weapon__name input {
width: 50%;
}
.dotdungeon .actor--pc .panel--weapons .weapon__group {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 4px;
}
.dotdungeon .actor--pc .panel--weapons .weapon__ammo-type, .dotdungeon .actor--pc .panel--weapons .weapon__damage-type {
display: flex;
flex-direction: column;
align-items: center;
}
.dotdungeon .actor--pc .panel--weapons .weapon__is-scoped, .dotdungeon .actor--pc .panel--weapons .weapon__is-ranged {
display: flex;
flex-direction: row;
align-items: center;
justify-content: center;
}
.dotdungeon .actor--pc .panel--roles { .dotdungeon .actor--pc .panel--roles {
grid-area: roles; grid-area: roles;
} }
@ -152,4 +183,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;;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 */ /*# 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;;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;;AAED;EACC;;AAED;EACC;;AAED;EACC;;;AC1LF;EDkMC;IACC;IACA;IACA,qBACC;;EAkBC;IACC;;EAKD;IACC;IACA;;;AC1NL;EDoOC;IACC;IACA;IACA,qBACC;;EAeC;IACC%22,%22file%22:%22mvp.css%22%7D */

View file

@ -93,8 +93,8 @@
"dotdungeon.actor.pc.backpack.materials.label": "Materials", "dotdungeon.actor.pc.backpack.materials.label": "Materials",
"dotdungeon.actor.pc.backpack.bytes.label": "Bytes", "dotdungeon.actor.pc.backpack.bytes.label": "Bytes",
"dotdungeon.actor.pc.weapon.main-hand": "Main-Hand", "dotdungeon.actor.pc.weapon.mainHand": "Main-Hand",
"dotdungeon.actor.pc.weapon.off-hand": "Off-Hand", "dotdungeon.actor.pc.weapon.offHand": "Off-Hand",
"dotdungeon.actor.pc.weapon.name": "Name", "dotdungeon.actor.pc.weapon.name": "Name",
"dotdungeon.actor.pc.weapon.damage-type.label": "Damage Type", "dotdungeon.actor.pc.weapon.damage-type.label": "Damage Type",
"dotdungeon.actor.pc.weapon.damage-type.slashing": "Slashing", "dotdungeon.actor.pc.weapon.damage-type.slashing": "Slashing",
@ -104,8 +104,8 @@
"dotdungeon.actor.pc.weapon.damage-type.neon": "Neon", "dotdungeon.actor.pc.weapon.damage-type.neon": "Neon",
"dotdungeon.actor.pc.weapon.damage-type.shadow": "Shadow", "dotdungeon.actor.pc.weapon.damage-type.shadow": "Shadow",
"dotdungeon.actor.pc.weapon.damage-type.solar": "Solar", "dotdungeon.actor.pc.weapon.damage-type.solar": "Solar",
"dotdungeon.actor.pc.weapon.is-ranged": "Ranged", "dotdungeon.actor.pc.weapon.is-ranged": "Is Ranged",
"dotdungeon.actor.pc.weapon.is-scoped": "Scoped", "dotdungeon.actor.pc.weapon.is-scoped": "Has Scope",
"dotdungeon.actor.pc.weapon.ammo-type.label": "Ammo", "dotdungeon.actor.pc.weapon.ammo-type.label": "Ammo",
"dotdungeon.actor.pc.weapon.ammo-type.ammoless": "No Ammo", "dotdungeon.actor.pc.weapon.ammo-type.ammoless": "No Ammo",
"dotdungeon.actor.pc.weapon.ammo-type.quiver": "Quivers", "dotdungeon.actor.pc.weapon.ammo-type.quiver": "Quivers",

View file

@ -19,7 +19,14 @@ Hooks.on(`hotReload`, async (data) => {
}; };
// Re-register our new partial template & cache it. // Re-register our new partial template & cache it.
const templateName = `dotdungeon.${data.path.split("/").pop().replace(".hbs", "")}`; const alias = data.path
.split(`/`)
.pop()
.split(`.`)
.slice(0, -1)
.reverse()
.join(`.`);
const templateName = `dotdungeon.${alias}`;
Handlebars.registerPartial(templateName, template); Handlebars.registerPartial(templateName, template);
_templateCache[templateName] = template; _templateCache[templateName] = template;

View file

@ -23,7 +23,7 @@ export class PlayerSheet extends GenericSheet {
Toggles the expanded state for the detail elements in the sheet. Toggles the expanded state for the detail elements in the sheet.
*/ */
html.find(`summary`).on(`click`, ($e) => { html.find(`summary`).on(`click`, ($e) => {
console.debug(`.dungeon | summary[data-collapse-id="${$e.target.dataset.collapseId}"] click event`); console.debug(`.dungeon | summary[data-collapse-id="${$e.target.dataset.collapseId}"] click event (open=${$e.target.parentNode.open})`);
/* /*
This seeming inversion of logic is due to the fact that this handler This seeming inversion of logic is due to the fact that this handler
gets called before the element is updated to include/reflect the gets called before the element is updated to include/reflect the
@ -61,6 +61,7 @@ export class PlayerSheet extends GenericSheet {
}; };
ctx.meta = { ctx.meta = {
idp: this.actor.uuid,
expanded: this._expanded, expanded: this._expanded,
}; };

View file

@ -127,6 +127,40 @@
} }
&--weapons { &--weapons {
grid-area: weapons; grid-area: weapons;
.weapon {
margin-top: 4px;
display: flex;
flex-direction: column;
gap: 4px;
&__name {
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
input {
width: 50%
}
}
&__group {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 4px;
}
&__ammo-type, &__damage-type {
display: flex;
flex-direction: column;
align-items: center;
}
&__is-scoped, &__is-ranged {
display: flex;
flex-direction: row;
align-items: center;
justify-content: center;
}
}
} }
&--roles { &--roles {
grid-area: roles; grid-area: roles;

View file

@ -1,112 +1,142 @@
{{#> dotdungeon.panel class="weapons" title="dotdungeon.actor.pc.panel.weapons"}} {{#> dotdungeon.panel class="weapons" title="dotdungeon.actor.pc.panel.weapons"}}
<details class="main-hand" {{dotdungeon-expanded meta.expanded "weapons.main-hand"}}> <details class="mainHand" {{dotdungeon-expanded meta.expanded "weapons.mainHand"}}>
<summary data-collapse-id="weapons.main-hand"> <summary data-collapse-id="weapons.mainHand">
{{localize "dotdungeon.actor.pc.weapon.main-hand"}} {{localize "dotdungeon.actor.pc.weapon.mainHand"}}
</summary> </summary>
<div class="weapon-container"> <div class="weapon">
<label>
{{localize "dotdungeon.actor.pc.weapon.name"}}
<div class="weapon__name">
<label for="{{meta.idp}}-mainHand-name-input">
{{localize "dotdungeon.actor.pc.weapon.name"}}
</label>
<input <input
type="text" type="text"
id="{{meta.idp}}-mainHand-name-input"
name="system.weapon.mainHand.name" name="system.weapon.mainHand.name"
> >
</label> </div>
<label>
{{localize "dotdungeon.actor.pc.weapon.damage-type.label"}}
<select name="system.weapon.mainHand.damage"> <div class="weapon__group">
{{#select system.weapon.mainHand.damage}} <label class="weapon__damage-type">
<option value="">Select...</option> {{localize "dotdungeon.actor.pc.weapon.damage-type.label"}}
{{#each (dotdungeon-array "slashing" "piercing" "smashing" "gun" "neon" "shadow" "solar")}} <select name="system.weapon.mainHand.damage">
<option value="{{this}}"> {{#select system.weapon.mainHand.damage}}
{{localize (concat "dotdungeon.actor.pc.weapon.damage-type." this)}} <option value="">Select...</option>
</option> {{#each (dotdungeon-array "slashing" "piercing" "smashing" "gun" "neon" "shadow" "solar")}}
{{/each}} <option value="{{this}}">
{{/select}} {{localize (concat "dotdungeon.actor.pc.weapon.damage-type." this)}}
</select> </option>
</label> {{/each}}
<label>
{{localize "dotdungeon.actor.pc.weapon.is-ranged"}}
<input
type="checkbox"
name="system.weapon.mainHand.ranged"
{{checked system.weapon.mainHand.ranged}}
>
</label>
{{#if system.weapon.mainHand.ranged}}
<label>
{{localize "dotdungeon.actor.pc.weapon.is-scoped"}}
<input
type="checkbox"
name="system.weapon.mainHand.scope"
{{checked system.weapon.mainHand.scope}}
>
</label>
<label>
{{localize "dotdungeon.actor.pc.weapon.ammo-type.label"}}
<select name="system.weapon.mainHand.ammo">
{{#select system.weapon.mainHand.ammo}}
<option value="">{{localize "dotdungeon.actor.pc.weapon.ammo-type.ammoless"}}</option>
<option value="quivers">{{localize "dotdungeon.actor.pc.weapon.ammo-type.quiver"}}</option>
<option value="mags">{{localize "dotdungeon.actor.pc.weapon.ammo-type.mag"}}</option>
<option value="cells">{{localize "dotdungeon.actor.pc.weapon.ammo-type.cell"}}</option>
{{/select}} {{/select}}
</select> </select>
</label> </label>
<label class="weapon__is-ranged">
{{localize "dotdungeon.actor.pc.weapon.is-ranged"}}
<input
type="checkbox"
name="system.weapon.mainHand.ranged"
{{checked system.weapon.mainHand.ranged}}
>
</label>
</div> </div>
{{/if}}
{{#if system.weapon.mainHand.ranged}}
<div class="weapon__group">
<label class="weapon__is-scoped">
{{localize "dotdungeon.actor.pc.weapon.is-scoped"}}
<input
type="checkbox"
name="system.weapon.mainHand.scope"
{{checked system.weapon.mainHand.scope}}
>
</label>
<label class="weapon__ammo-type">
{{localize "dotdungeon.actor.pc.weapon.ammo-type.label"}}
<select name="system.weapon.mainHand.ammo">
{{#select system.weapon.mainHand.ammo}}
<option value="">{{localize "dotdungeon.actor.pc.weapon.ammo-type.ammoless"}}</option>
<option value="quivers">{{localize "dotdungeon.actor.pc.weapon.ammo-type.quiver"}}</option>
<option value="mags">{{localize "dotdungeon.actor.pc.weapon.ammo-type.mag"}}</option>
<option value="cells">{{localize "dotdungeon.actor.pc.weapon.ammo-type.cell"}}</option>
{{/select}}
</select>
</label>
</div>
{{/if}}
</div>
</details> </details>
<details {{dotdungeon-expanded meta.expanded "weapons.off-hand"}}> <details {{dotdungeon-expanded meta.expanded "weapons.offHand"}}>
<summary data-collapse-id="weapons.off-hand"> <summary data-collapse-id="weapons.offHand">
{{localize "dotdungeon.actor.pc.weapon.off-hand"}} {{localize "dotdungeon.actor.pc.weapon.offHand"}}
</summary> </summary>
<label>
{{localize "dotdungeon.actor.pc.weapon.name"}} <div class="weapon">
<input <div class="weapon__name">
type="text" <label for="{{meta.idp}}-offHand-name-input">
name="system.weapon.offHand.name" {{localize "dotdungeon.actor.pc.weapon.name"}}
> </label>
</label>
<label>
{{localize "dotdungeon.actor.pc.weapon.damage-type.label"}}
<select name="system.weapon.offHand.damage">
{{#select system.weapon.offHand.damage}}
<option value="">Select...</option>
{{#each (dotdungeon-array "slashing" "piercing" "smashing" "gun" "neon" "shadow" "solar")}}
<option value="{{this}}">
{{localize (concat "dotdungeon.actor.pc.weapon.damage-type." this)}}
</option>
{{/each}}
{{/select}}
</select>
</label>
<label>
{{localize "dotdungeon.actor.pc.weapon.is-ranged"}}
<input
type="checkbox"
name="system.weapon.offHand.ranged"
{{checked system.weapon.offHand.ranged}}
>
</label>
{{#if system.weapon.offHand.ranged}}
<label>
{{localize "dotdungeon.actor.pc.weapon.is-scoped"}}
<input <input
type="checkbox" type="text"
name="system.weapon.offHand.scope" id="{{meta.idp}}-offHand-name-input"
{{checked system.weapon.offHand.scope}} name="system.weapon.offHand.name"
> >
</label> </div>
<label>
{{localize "dotdungeon.actor.pc.weapon.ammo-type.label"}}
<select name="system.weapon.offHand.ammo"> <div class="weapon__group">
{{#select system.weapon.offHand.ammo}} <label class="weapon__damage-type">
<option value="">{{localize "dotdungeon.actor.pc.weapon.ammo-type.ammoless"}}</option> {{localize "dotdungeon.actor.pc.weapon.damage-type.label"}}
<option value="quivers">{{localize "dotdungeon.actor.pc.weapon.ammo-type.quiver"}}</option> <select name="system.weapon.offHand.damage">
<option value="mags">{{localize "dotdungeon.actor.pc.weapon.ammo-type.mag"}}</option> {{#select system.weapon.offHand.damage}}
<option value="cells">{{localize "dotdungeon.actor.pc.weapon.ammo-type.cell"}}</option> <option value="">Select...</option>
{{/select}} {{#each (dotdungeon-array "slashing" "piercing" "smashing" "gun" "neon" "shadow" "solar")}}
</select> <option value="{{this}}">
</label> {{localize (concat "dotdungeon.actor.pc.weapon.damage-type." this)}}
{{/if}} </option>
{{/each}}
{{/select}}
</select>
</label>
<label class="weapon__is-ranged">
{{localize "dotdungeon.actor.pc.weapon.is-ranged"}}
<input
type="checkbox"
name="system.weapon.offHand.ranged"
{{checked system.weapon.offHand.ranged}}
>
</label>
</div>
{{#if system.weapon.offHand.ranged}}
<div class="weapon__group">
<label class="weapon__is-scoped">
{{localize "dotdungeon.actor.pc.weapon.is-scoped"}}
<input
type="checkbox"
name="system.weapon.offHand.scope"
{{checked system.weapon.offHand.scope}}
>
</label>
<label class="weapon__ammo-type">
{{localize "dotdungeon.actor.pc.weapon.ammo-type.label"}}
<select name="system.weapon.offHand.ammo">
{{#select system.weapon.offHand.ammo}}
<option value="">{{localize "dotdungeon.actor.pc.weapon.ammo-type.ammoless"}}</option>
<option value="quivers">{{localize "dotdungeon.actor.pc.weapon.ammo-type.quiver"}}</option>
<option value="mags">{{localize "dotdungeon.actor.pc.weapon.ammo-type.mag"}}</option>
<option value="cells">{{localize "dotdungeon.actor.pc.weapon.ammo-type.cell"}}</option>
{{/select}}
</select>
</label>
</div>
{{/if}}
</div>
</details> </details>
{{/ dotdungeon.panel}} {{/ dotdungeon.panel}}

View file

@ -45,6 +45,10 @@
Settings: Settings:
<pre><code>{{dotdungeon-stringify settings}}</code></pre> <pre><code>{{dotdungeon-stringify settings}}</code></pre>
</div> </div>
<div>
Meta:
<pre><code>{{dotdungeon-stringify meta}}</code></pre>
</div>
<hr> <hr>
<div> <div>
Expanded: {{dotdungeon-stringify expanded}} Expanded: {{dotdungeon-stringify expanded}}