Issue 64 (#67)

* fix pc sheet backend actions
This commit is contained in:
IrkTheImp 2025-05-26 13:31:54 -05:00 committed by GitHub
parent 63274d67ce
commit c306c95e6b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
7 changed files with 17 additions and 14 deletions

View file

@ -65,7 +65,7 @@ export default class AncestrySelectionDialog extends HandlebarsApplicationMixin(
} }
async _prepareContext(_options) { async _prepareContext(_options) {
const systemAncestries = Array.from((await game.packs.get('daggerheart.playtest-ancestries')).index).map(x => ({ const systemAncestries = Array.from((await game.packs.get('daggerheart.ancestries')).index).map(x => ({
...x, ...x,
selected: this.data.ancestries.some(selected => selected.uuid === x.uuid) selected: this.data.ancestries.some(selected => selected.uuid === x.uuid)
})); }));

View file

@ -48,7 +48,7 @@ export default class DhpDeathMove extends HandlebarsApplicationMixin(Application
const msg = new cls({ const msg = new cls({
user: game.user.id, user: game.user.id,
content: await renderTemplate('systems/daggerheart/templates/chat/deathMove.hbs', { content: await renderTemplate('systems/daggerheart/templates/chat/deathMove.hbs', {
player: game.user.character.name, player: this.actor.name,
title: game.i18n.localize(this.selectedMove.name), title: game.i18n.localize(this.selectedMove.name),
img: this.selectedMove.img, img: this.selectedMove.img,
description: game.i18n.localize(this.selectedMove.description) description: game.i18n.localize(this.selectedMove.description)

View file

@ -71,7 +71,7 @@ export default class DhpDowntime extends HandlebarsApplicationMixin(ApplicationV
const msg = new cls({ const msg = new cls({
user: game.user.id, user: game.user.id,
content: await renderTemplate('systems/daggerheart/templates/chat/downtime.hbs', { content: await renderTemplate('systems/daggerheart/templates/chat/downtime.hbs', {
player: game.user.character.name, player: this.actor.name,
title: game.i18n.localize(this.selectedActivity.name), title: game.i18n.localize(this.selectedActivity.name),
img: this.selectedActivity.img, img: this.selectedActivity.img,
description: game.i18n.localize(this.selectedActivity.description), description: game.i18n.localize(this.selectedActivity.description),

View file

@ -659,11 +659,11 @@ export default class PCSheet extends DaggerheartSheet(ActorSheetV2) {
} }
static async selectClass() { static async selectClass() {
(await game.packs.get('daggerheart.playtest-classes'))?.render(true); (await game.packs.get('daggerheart.classes'))?.render(true);
} }
static async selectSubclass() { static async selectSubclass() {
(await game.packs.get('daggerheart.playtest-subclasses'))?.render(true); (await game.packs.get('daggerheart.subclasses'))?.render(true);
} }
static async selectAncestry() { static async selectAncestry() {
@ -694,7 +694,7 @@ export default class PCSheet extends DaggerheartSheet(ActorSheetV2) {
} }
static async selectCommunity() { static async selectCommunity() {
(await game.packs.get('daggerheart.playtest-communities'))?.render(true); (await game.packs.get('daggerheart.communities'))?.render(true);
} }
static async viewObject(_, button) { static async viewObject(_, button) {
@ -702,7 +702,7 @@ export default class PCSheet extends DaggerheartSheet(ActorSheetV2) {
if (!object) return; if (!object) return;
const tab = button.dataset.tab; const tab = button.dataset.tab;
if (tab) object.sheet._tabs[0].active = tab; if (tab && object.sheet._tabs) object.sheet._tabs[0].active = tab;
if (object.sheet.editMode) object.sheet.editMode = false; if (object.sheet.editMode) object.sheet.editMode = false;

View file

@ -183,7 +183,7 @@ export default class SubclassSheet extends DaggerheartSheet(ItemSheetV2) {
} }
async _onDrop(event) { async _onDrop(event) {
event.preventDefault() event.preventDefault();
const data = TextEditor.getDragEventData(event); const data = TextEditor.getDragEventData(event);
const item = await fromUuid(data.uuid); const item = await fromUuid(data.uuid);
if (!(item.type === 'feature' && item.system.type === SYSTEM.ITEM.featureTypes.subclass.id)) return; if (!(item.type === 'feature' && item.system.type === SYSTEM.ITEM.featureTypes.subclass.id)) return;
@ -196,7 +196,7 @@ export default class SubclassSheet extends DaggerheartSheet(ItemSheetV2) {
const path = `system.${featureField}Feature.abilities`; const path = `system.${featureField}Feature.abilities`;
const abilities = duplicate(getProperty(this.document, path)) || []; const abilities = duplicate(getProperty(this.document, path)) || [];
const featureData = {name: item.name, img: item.img, uuid: item.uuid }; const featureData = { name: item.name, img: item.img, uuid: item.uuid };
abilities.push(featureData); abilities.push(featureData);
await this.document.update({ [path]: abilities }); await this.document.update({ [path]: abilities });

View file

@ -337,7 +337,7 @@ export default class DhpPC extends foundry.abstract.TypeDataModel {
get refreshableFeatures() { get refreshableFeatures() {
return this.parent.items.reduce( return this.parent.items.reduce(
(acc, x) => { (acc, x) => {
if (x.type === 'feature' && x.system.refreshData.type) { if (x.type === 'feature' && x.system.refreshData?.type) {
acc[x.system.refreshData.type].push(x); acc[x.system.refreshData.type].push(x);
} }

View file

@ -1,8 +1,11 @@
<div class="domain-card-body"> <div class="domain-card-body">
<nav class="pc-tabs loadout-tabs tabs" data-group="secondary"> <nav class="sheet-tabs tabs">
<a class="item" data-tab="foundation" data-action="tabSwitch">{{localize "DAGGERHEART.Sheets.PC.Tabs.Foundation"}}</a> {{#each tabs.secondary as |tab|}}
<a class="item" data-tab="loadout" data-action="tabSwitch">{{localize "DAGGERHEART.Sheets.PC.Tabs.Loadout"}}</a> <a class="item {{tab.cssClass}}" data-action="tab" data-group="{{tab.group}}" data-tab="{{tab.id}}">
<a class="item" data-tab="vault">{{localize "DAGGERHEART.Sheets.PC.Tabs.Vault"}}</a> <i class="{{tab.icon}}"></i>
<label>{{localize tab.label}}</label>
</a>
{{/each}}
</nav> </nav>
<section class="loadout-body flexcol"> <section class="loadout-body flexcol">
<div class="tab" data-group="secondary" data-tab="foundation"> <div class="tab" data-group="secondary" data-tab="foundation">