mirror of
https://github.com/Foundryborne/daggerheart.git
synced 2026-01-12 19:51:08 +01:00
* FIX: Add enritch to HTMLField FIX: Remove no-HTMLField from Manifest FIX: Convert Scar's HTMLField to StringField FIX: Remove unused HTMLField * REMOVE unused hanldebars helpers * FEAT: add inventory-fieldset-items-V2 and inventory-item-V2 partials for Actors * FIX showLabels to hideTags * FEAT: add template to items sheet * FEAT: add effects tabs on ItemSheet * FEAT: add context menus for all inventory-items * FEAT: add resources to inventory-item template * FEAT: add enritch on inventory-item description FEAT: add extensible behavior on inventory-item-content FEAT: add fade effect on item-img to roll-itmg * FEAT: add eritch to NPC description FIX: missing htmlFieldss on manfiest FIX: add misisng localizations * FIX_ minor fixes * Little resource fix. Noone will notice ._. * FIX: remove default list styles FIX: .extended css reduce max-height, shorten animation duration to 0.5s, and set overflow to auto. FIX: set enriched=notes.enriche on notes.hbs FIX: set experience.value on sidebar.hbs FIX: move tooltip from item-img to img-portrait on inventory-item-V2.hbs REMOVE: unused files --------- Co-authored-by: Joaquin Pereyra <joaquinpereyra98@users.noreply.github.com> Co-authored-by: WBHarry <williambjrklund@gmail.com>
98 lines
4.2 KiB
JavaScript
98 lines
4.2 KiB
JavaScript
import DHBaseItemSheet from '../api/base-item.mjs';
|
|
|
|
export default class SubclassSheet extends DHBaseItemSheet {
|
|
/**@inheritdoc */
|
|
static DEFAULT_OPTIONS = {
|
|
classes: ['subclass'],
|
|
position: { width: 600 },
|
|
window: { resizable: false },
|
|
actions: {}
|
|
};
|
|
|
|
/**@override */
|
|
static PARTS = {
|
|
header: { template: 'systems/daggerheart/templates/sheets/items/subclass/header.hbs' },
|
|
tabs: { template: 'systems/daggerheart/templates/sheets/global/tabs/tab-navigation.hbs' },
|
|
description: { template: 'systems/daggerheart/templates/sheets/global/tabs/tab-description.hbs' },
|
|
features: {
|
|
template: 'systems/daggerheart/templates/sheets/items/subclass/features.hbs',
|
|
scrollable: ['.features']
|
|
},
|
|
settings: {
|
|
template: 'systems/daggerheart/templates/sheets/items/subclass/settings.hbs',
|
|
scrollable: ['.settings']
|
|
},
|
|
effects: {
|
|
template: 'systems/daggerheart/templates/sheets/global/tabs/tab-effects.hbs',
|
|
scrollable: ['.effects']
|
|
}
|
|
};
|
|
|
|
/** @inheritdoc */
|
|
static TABS = {
|
|
primary: {
|
|
tabs: [{ id: 'description' }, { id: 'features' }, { id: 'settings' }, { id: 'effects' }],
|
|
initial: 'description',
|
|
labelPrefix: 'DAGGERHEART.GENERAL.Tabs'
|
|
}
|
|
};
|
|
|
|
async _onDragStart(event) {
|
|
const featureItem = event.currentTarget.closest('.drop-section');
|
|
|
|
if (featureItem) {
|
|
const feature = this.document.system[featureItem.dataset.type];
|
|
if (!feature) {
|
|
ui.notifications.warn(game.i18n.localize('DAGGERHEART.UI.Notifications.featureIsMissing'));
|
|
return;
|
|
}
|
|
|
|
const featureData = { type: 'Item', data: { ...feature.toObject(), _id: null }, fromInternal: true };
|
|
event.dataTransfer.setData('text/plain', JSON.stringify(featureData));
|
|
event.dataTransfer.setDragImage(featureItem.querySelector('img'), 60, 0);
|
|
}
|
|
}
|
|
|
|
async _onDrop(event) {
|
|
event.stopPropagation();
|
|
|
|
const data = foundry.applications.ux.TextEditor.implementation.getDragEventData(event);
|
|
if (data.fromInternal) return;
|
|
|
|
const item = await fromUuid(data.uuid);
|
|
const target = event.target.closest('fieldset.drop-section');
|
|
if (item.type === 'feature') {
|
|
if (target.dataset.type === 'foundation') {
|
|
if (item.system.subType && item.system.subType !== CONFIG.DH.ITEM.featureSubTypes.foundation) {
|
|
ui.notifications.warn(game.i18n.localize('DAGGERHEART.UI.Notifications.featureNotFoundation'));
|
|
return;
|
|
}
|
|
|
|
await item.update({ 'system.subType': CONFIG.DH.ITEM.featureSubTypes.foundation });
|
|
await this.document.update({
|
|
'system.features': [...this.document.system.features.map(x => x.uuid), item.uuid]
|
|
});
|
|
} else if (target.dataset.type === 'specialization') {
|
|
if (item.system.subType && item.system.subType !== CONFIG.DH.ITEM.featureSubTypes.specialization) {
|
|
ui.notifications.warn(game.i18n.localize('DAGGERHEART.UI.Notifications.featureNotSpecialization'));
|
|
return;
|
|
}
|
|
|
|
await item.update({ 'system.subType': CONFIG.DH.ITEM.featureSubTypes.specialization });
|
|
await this.document.update({
|
|
'system.features': [...this.document.system.features.map(x => x.uuid), item.uuid]
|
|
});
|
|
} else if (target.dataset.type === 'mastery') {
|
|
if (item.system.subType && item.system.subType !== CONFIG.DH.ITEM.featureSubTypes.mastery) {
|
|
ui.notifications.warn(game.i18n.localize('DAGGERHEART.UI.Notifications.featureNotMastery'));
|
|
return;
|
|
}
|
|
|
|
await item.update({ 'system.subType': CONFIG.DH.ITEM.featureSubTypes.mastery });
|
|
await this.document.update({
|
|
'system.features': [...this.document.system.features.map(x => x.uuid), item.uuid]
|
|
});
|
|
}
|
|
}
|
|
}
|
|
}
|