From ff43ef2eb982cfaa4d516570481d512852b34e96 Mon Sep 17 00:00:00 2001 From: Oliver-Akins Date: Mon, 30 Dec 2024 21:29:03 -0700 Subject: [PATCH] RC-43 | Weapons | Populate Table Content --- Apps/HeroSummaryCardV1/content.hbs | 26 ++++++++++++++++--- module/Apps/ActorSheets/HeroSummaryCardV1.mjs | 5 ++-- module/data/Item/Weapon.mjs | 13 ++++++++++ 3 files changed, 39 insertions(+), 5 deletions(-) diff --git a/Apps/HeroSummaryCardV1/content.hbs b/Apps/HeroSummaryCardV1/content.hbs index ed99c46..9d43da0 100644 --- a/Apps/HeroSummaryCardV1/content.hbs +++ b/Apps/HeroSummaryCardV1/content.hbs @@ -45,14 +45,34 @@ {{#each weapons as | slot |}} {{#if slot.empty}} - - --- + + {{ rc-i18n "RipCrypt.common.empty" }} {{else}} - + + {{ slot.data.name }} + + {{#if slot.data.system.traitString}} + {{ slot.data.system.traitString }} + {{/if}} + {{#if slot.data.system.rangeString}} + {{ slot.data.system.rangeString }} + {{/if}} + + + {{ slot.data.system.wear.value }} / {{ slot.data.system.wear.max }} + + + {{ slot.data.system.damage }} + + {{/if}} {{/each}} diff --git a/module/Apps/ActorSheets/HeroSummaryCardV1.mjs b/module/Apps/ActorSheets/HeroSummaryCardV1.mjs index 0b54107..24e2054 100644 --- a/module/Apps/ActorSheets/HeroSummaryCardV1.mjs +++ b/module/Apps/ActorSheets/HeroSummaryCardV1.mjs @@ -102,11 +102,12 @@ export class HeroSummaryCardV1 extends GenericSheetMixin(HandlebarsApplicationMi static async prepareWeapons(ctx) { const limit = ctx.actor.system.limit.weapons; + const embedded = ctx.actor.itemTypes.weapon; ctx.weapons = []; for (let i = 0; i < limit; i++) { ctx.weapons.push({ - data: null, - empty: true, + data: embedded[i], + empty: embedded.at(i) === undefined, index: i + 1, class: i % 2 === 1 ? `row-alt` : ``, }); diff --git a/module/data/Item/Weapon.mjs b/module/data/Item/Weapon.mjs index fe8979a..2e42e35 100644 --- a/module/data/Item/Weapon.mjs +++ b/module/data/Item/Weapon.mjs @@ -42,4 +42,17 @@ export class WeaponData extends foundry.abstract.TypeDataModel { 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 };