RC-43 | Weapons | Populate Table Content

This commit is contained in:
Oliver-Akins 2024-12-30 21:29:03 -07:00
parent 5773c2e920
commit ff43ef2eb9
3 changed files with 39 additions and 5 deletions

View file

@ -45,14 +45,34 @@
<tbody> <tbody>
{{#each weapons as | slot |}} {{#each weapons as | slot |}}
{{#if slot.empty}} {{#if slot.empty}}
<tr data-row="{{slot.index}}" class="{{slot.class}}"> <tr
<td>---</td> data-row="{{slot.index}}"
class="{{slot.class}}"
aria-hidden="true"
>
<td>{{ rc-i18n "RipCrypt.common.empty" }}</td>
<td></td> <td></td>
<td></td> <td></td>
<td></td> <td></td>
</tr> </tr>
{{else}} {{else}}
<tr data-row="index"></tr> <tr data-row="{{slot.index}}" class="{{slot.class}}">
<td>{{ slot.data.name }}</td>
<td>
{{#if slot.data.system.traitString}}
<span class="traits">{{ slot.data.system.traitString }}</span>
{{/if}}
{{#if slot.data.system.rangeString}}
<span class="range">{{ slot.data.system.rangeString }}</span>
{{/if}}
</td>
<td>
{{ slot.data.system.wear.value }} / {{ slot.data.system.wear.max }}
</td>
<td>
{{ slot.data.system.damage }}
</td>
</tr>
{{/if}} {{/if}}
{{/each}} {{/each}}
</tbody> </tbody>

View file

@ -102,11 +102,12 @@ export class HeroSummaryCardV1 extends GenericSheetMixin(HandlebarsApplicationMi
static async prepareWeapons(ctx) { static async prepareWeapons(ctx) {
const limit = ctx.actor.system.limit.weapons; const limit = ctx.actor.system.limit.weapons;
const embedded = ctx.actor.itemTypes.weapon;
ctx.weapons = []; ctx.weapons = [];
for (let i = 0; i < limit; i++) { for (let i = 0; i < limit; i++) {
ctx.weapons.push({ ctx.weapons.push({
data: null, data: embedded[i],
empty: true, empty: embedded.at(i) === undefined,
index: i + 1, index: i + 1,
class: i % 2 === 1 ? `row-alt` : ``, class: i % 2 === 1 ? `row-alt` : ``,
}); });

View file

@ -42,4 +42,17 @@ export class WeaponData extends foundry.abstract.TypeDataModel {
prepareDerivedData() { prepareDerivedData() {
super.prepareDerivedData(); super.prepareDerivedData();
}; };
// #region Getters
get traitString() {
return [...this.traits].join(`, `);
}
get rangeString() {
if (this.range.short && this.range.long) {
return `${this.range.short} / ${this.range.long}`;
};
return String(this.range.short ?? this.range.long ?? ``);
}
// #endregion
}; };