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 {
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 {
grid-area: roles;
}
@ -317,4 +348,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;;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 {
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 {
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.bytes.label": "Bytes",
"dotdungeon.actor.pc.weapon.main-hand": "Main-Hand",
"dotdungeon.actor.pc.weapon.off-hand": "Off-Hand",
"dotdungeon.actor.pc.weapon.mainHand": "Main-Hand",
"dotdungeon.actor.pc.weapon.offHand": "Off-Hand",
"dotdungeon.actor.pc.weapon.name": "Name",
"dotdungeon.actor.pc.weapon.damage-type.label": "Damage Type",
"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.shadow": "Shadow",
"dotdungeon.actor.pc.weapon.damage-type.solar": "Solar",
"dotdungeon.actor.pc.weapon.is-ranged": "Ranged",
"dotdungeon.actor.pc.weapon.is-scoped": "Scoped",
"dotdungeon.actor.pc.weapon.is-ranged": "Is Ranged",
"dotdungeon.actor.pc.weapon.is-scoped": "Has Scope",
"dotdungeon.actor.pc.weapon.ammo-type.label": "Ammo",
"dotdungeon.actor.pc.weapon.ammo-type.ammoless": "No Ammo",
"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.
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);
_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.
*/
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
gets called before the element is updated to include/reflect the
@ -61,6 +61,7 @@ export class PlayerSheet extends GenericSheet {
};
ctx.meta = {
idp: this.actor.uuid,
expanded: this._expanded,
};

View file

@ -127,6 +127,40 @@
}
&--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 {
grid-area: roles;

View file

@ -1,112 +1,142 @@
{{#> dotdungeon.panel class="weapons" title="dotdungeon.actor.pc.panel.weapons"}}
<details class="main-hand" {{dotdungeon-expanded meta.expanded "weapons.main-hand"}}>
<summary data-collapse-id="weapons.main-hand">
{{localize "dotdungeon.actor.pc.weapon.main-hand"}}
<details class="mainHand" {{dotdungeon-expanded meta.expanded "weapons.mainHand"}}>
<summary data-collapse-id="weapons.mainHand">
{{localize "dotdungeon.actor.pc.weapon.mainHand"}}
</summary>
<div class="weapon-container">
<label>
{{localize "dotdungeon.actor.pc.weapon.name"}}
<div class="weapon">
<div class="weapon__name">
<label for="{{meta.idp}}-mainHand-name-input">
{{localize "dotdungeon.actor.pc.weapon.name"}}
</label>
<input
type="text"
id="{{meta.idp}}-mainHand-name-input"
name="system.weapon.mainHand.name"
>
</label>
<label>
{{localize "dotdungeon.actor.pc.weapon.damage-type.label"}}
<select name="system.weapon.mainHand.damage">
{{#select system.weapon.mainHand.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.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>
</div>
<div class="weapon__group">
<label class="weapon__damage-type">
{{localize "dotdungeon.actor.pc.weapon.damage-type.label"}}
<select name="system.weapon.mainHand.damage">
{{#select system.weapon.mainHand.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 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>
{{/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 {{dotdungeon-expanded meta.expanded "weapons.off-hand"}}>
<summary data-collapse-id="weapons.off-hand">
{{localize "dotdungeon.actor.pc.weapon.off-hand"}}
<details {{dotdungeon-expanded meta.expanded "weapons.offHand"}}>
<summary data-collapse-id="weapons.offHand">
{{localize "dotdungeon.actor.pc.weapon.offHand"}}
</summary>
<label>
{{localize "dotdungeon.actor.pc.weapon.name"}}
<input
type="text"
name="system.weapon.offHand.name"
>
</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"}}
<div class="weapon">
<div class="weapon__name">
<label for="{{meta.idp}}-offHand-name-input">
{{localize "dotdungeon.actor.pc.weapon.name"}}
</label>
<input
type="checkbox"
name="system.weapon.offHand.scope"
{{checked system.weapon.offHand.scope}}
type="text"
id="{{meta.idp}}-offHand-name-input"
name="system.weapon.offHand.name"
>
</label>
<label>
{{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>
{{/if}}
</div>
<div class="weapon__group">
<label class="weapon__damage-type">
{{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 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>
{{/ dotdungeon.panel}}

View file

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