/** * Extend the basic ItemSheet * @extends {ItemSheet} */ import {onManageActiveEffect, prepareActiveEffectCategories} from "./effects.js"; import { BladesActiveEffect } from "./blades-active-effect.js"; export class BladesItemSheet extends ItemSheet { /** @override */ static get defaultOptions() { return foundry.utils.mergeObject(super.defaultOptions, { classes: ["beam-saber", "sheet", "item"], width: 560, height: 'auto', tabs: [{navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "description"}] }); } /* -------------------------------------------- */ /** @override */ get template() { const path = "systems/beam-saber/templates/items"; let simple_item_types = ["background", "heritage", "vice", "crew_reputation"]; let template_name = `${this.item.type}`; if (simple_item_types.indexOf(this.item.type) >= 0) { template_name = "simple"; } return `${path}/${template_name}.html`; } /* -------------------------------------------- */ /** @override */ activateListeners(html) { super.activateListeners(html); // Everything below here is only needed if the sheet is editable if (!this.options.editable) return; html.find(".effect-control").click(ev => { if ( this.item.isOwned ) return ui.notifications.warn(game.i18n.localize("BITD.EffectWarning")) BladesActiveEffect.onManageActiveEffect(ev, this.item) }); } /* -------------------------------------------- */ /** @override */ async getData(options) { const superData = super.getData( options ); const sheetData = superData.data; sheetData.isGM = game.user.isGM; sheetData.owner = superData.owner; sheetData.editable = superData.editable; // Prepare Active Effects sheetData.effects = prepareActiveEffectCategories(this.document.effects); sheetData.system.description = await TextEditor.enrichHTML(sheetData.system.description, {secrets: sheetData.owner, async: true}); return sheetData; } }