COrrections, WIP
This commit is contained in:
59
system/scripts/items/mot-invocation-sheet.js
Normal file
59
system/scripts/items/mot-invocation-sheet.js
Normal file
@@ -0,0 +1,59 @@
|
||||
import { BaseItemSheetL5r5e } from "./base-item-sheet.js";
|
||||
|
||||
/** Mode Invocation values per invocation type */
|
||||
const INVOCATION_MODE = {
|
||||
general: 3,
|
||||
neutre: 0,
|
||||
precis: -3,
|
||||
};
|
||||
|
||||
/**
|
||||
* Sheet for Mot d'Invocation items (Chiaroscuro).
|
||||
* @extends {BaseItemSheetL5r5e}
|
||||
*/
|
||||
export class MotInvocationSheetL5r5e extends BaseItemSheetL5r5e {
|
||||
/** @override */
|
||||
static get defaultOptions() {
|
||||
return foundry.utils.mergeObject(super.defaultOptions, {
|
||||
classes: ["l5r5e", "sheet", "mot-invocation"],
|
||||
template: CONFIG.l5r5e.paths.templates + "items/mot_invocation/mot-invocation-sheet.html",
|
||||
width: 500,
|
||||
height: 360,
|
||||
});
|
||||
}
|
||||
|
||||
/** @override */
|
||||
async getData(options = {}) {
|
||||
const sheetData = await super.getData(options);
|
||||
|
||||
// Build invocation types list from i18n
|
||||
const invTypes = game.l5r5e.HelpersL5r5e.getLocalizedRawObject("l5r5e.chiaroscuro.technique.invocation_types") ?? {};
|
||||
sheetData.data.invocationTypesList = [{ id: "", label: "—" }].concat(
|
||||
Object.entries(invTypes).map(([id, label]) => ({ id, label }))
|
||||
);
|
||||
|
||||
sheetData.data.enrichedHtml = {
|
||||
description: await foundry.applications.ux.TextEditor.implementation.enrichHTML(
|
||||
sheetData.data.system.description ?? "",
|
||||
{ async: true }
|
||||
),
|
||||
};
|
||||
|
||||
return sheetData;
|
||||
}
|
||||
|
||||
/** @override */
|
||||
activateListeners(html) {
|
||||
super.activateListeners(html);
|
||||
|
||||
if (!this.isEditable) return;
|
||||
|
||||
html.find("#mot_invocation_type").on("change", async (event) => {
|
||||
const type = event.target.value;
|
||||
const mode = INVOCATION_MODE[type] ?? 0;
|
||||
// Update stored value and refresh display
|
||||
await this.object.update({ system: { invocation_type: type, mode_invocation: mode } });
|
||||
this.render(true);
|
||||
});
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user