From bff5ed7865ce6e3b776d3002a3e2b56bb24f9563 Mon Sep 17 00:00:00 2001 From: Vlyan Date: Fri, 24 May 2024 12:30:02 +0200 Subject: [PATCH] v12 fixes - Removal of async - CHAT_MESSAGE_TYPES to CHAT_MESSAGE_STYLES : roll removed - Math.clamped to Math.clamp - fixed debounce scope --- system/scripts/dice/dietype/l5r-base-die.js | 4 ++-- system/scripts/dice/roll-n-keep-dialog.js | 2 +- system/scripts/dice/roll.js | 7 +++---- system/scripts/helpers.js | 18 ++++++++---------- system/scripts/main-l5r5e.js | 2 +- 5 files changed, 15 insertions(+), 18 deletions(-) diff --git a/system/scripts/dice/dietype/l5r-base-die.js b/system/scripts/dice/dietype/l5r-base-die.js index 806d4f4..a4ced2e 100644 --- a/system/scripts/dice/dietype/l5r-base-die.js +++ b/system/scripts/dice/dietype/l5r-base-die.js @@ -79,14 +79,14 @@ export class L5rBaseDie extends DiceTerm { * @return {L5rBaseDie} The evaluated RollTerm * @override */ - async evaluate({ minimize = false, maximize = false, async = true } = {}) { + async evaluate({ minimize = false, maximize = false } = {}) { if (this._evaluated) { throw new Error(`This ${this.constructor.name} has already been evaluated and is immutable`); } // Roll the initial number of dice for (let n = 1; n <= this.number; n++) { - await this.roll({ minimize, maximize, async }); + await this.roll({ minimize, maximize }); } // Apply modifiers diff --git a/system/scripts/dice/roll-n-keep-dialog.js b/system/scripts/dice/roll-n-keep-dialog.js index 33f1558..ef1f65a 100644 --- a/system/scripts/dice/roll-n-keep-dialog.js +++ b/system/scripts/dice/roll-n-keep-dialog.js @@ -91,7 +91,7 @@ export class RollnKeepDialog extends FormApplication { * @return {boolean} */ get isOwner() { - return this._message?.isAuthor || this.messageRoll.l5r5e.actor?.isOwner || this._message?.isOwner || false; + return this._message?.isAuthor || this.messageRoll?.l5r5e.actor?.isOwner || this._message?.isOwner || false; } /** diff --git a/system/scripts/dice/roll.js b/system/scripts/dice/roll.js index 521c077..dd7f232 100644 --- a/system/scripts/dice/roll.js +++ b/system/scripts/dice/roll.js @@ -80,7 +80,7 @@ export class RollL5r5e extends Roll { * Execute the Roll, replacing dice and evaluating the total result * @override **/ - async evaluate({ minimize = false, maximize = false, async = true } = {}) { + async evaluate({ minimize = false, maximize = false } = {}) { if (this._evaluated) { throw new Error("This Roll object has already been rolled."); } @@ -95,7 +95,7 @@ export class RollL5r5e extends Roll { this._total = 0; // Roll - await super.evaluate({ minimize, maximize, async }); + await super.evaluate({ minimize, maximize }); this._evaluated = true; // Save initial formula @@ -132,7 +132,7 @@ export class RollL5r5e extends Roll { // Store final outputs this.l5r5e.dicesTypes.std = this.dice.some( - (term) => term instanceof DiceTerm && !(term instanceof game.l5r5e.L5rBaseDie) + (term) => term instanceof foundry.dice.terms.DiceTerm && !(term instanceof game.l5r5e.L5rBaseDie) ); // ignore math symbols this.l5r5e.dicesTypes.l5r = this.dice.some((term) => term instanceof game.l5r5e.L5rBaseDie); summary.totalBonus = Math.max(0, summary.totalSuccess - this.l5r5e.difficulty); @@ -346,7 +346,6 @@ export class RollL5r5e extends Roll { messageData = foundry.utils.mergeObject( { user: game.user.id, - type: CONST.CHAT_MESSAGE_TYPES.ROLL, content, sound: CONFIG.sounds.dice, speaker: { diff --git a/system/scripts/helpers.js b/system/scripts/helpers.js index eff8018..e2dae0e 100644 --- a/system/scripts/helpers.js +++ b/system/scripts/helpers.js @@ -705,29 +705,27 @@ export class HelpersL5r5e { * @return {(function(...[*]=): void)|*} */ static debounce(id, callback, timeout = 500, leading = false) { - /* eslint-disable no-undef */ - if (!debounce.timeId) { - debounce.timeId = {}; + if (!this.debounce.timeId) { + this.debounce.timeId = {}; } return (...args) => { if (leading) { // callback will be executed only at the first debounced-function call - if (!debounce.timeId[id]) { + if (!this.debounce.timeId[id]) { callback.apply(this, args); } - clearTimeout(debounce.timeId[id]); - debounce.timeId[id] = setTimeout(() => { - debounce.timeId[id] = undefined; + clearTimeout(this.debounce.timeId[id]); + this.debounce.timeId[id] = setTimeout(() => { + this.debounce.timeId[id] = undefined; }, timeout); } else { // callback will only be executed `delay` milliseconds after the last debounced-function call - clearTimeout(debounce.timeId[id]); - debounce.timeId[id] = setTimeout(() => { + clearTimeout(this.debounce.timeId[id]); + this.debounce.timeId[id] = setTimeout(() => { callback.apply(this, args); }, timeout); } }; - /* eslint-enable no-undef */ } /** diff --git a/system/scripts/main-l5r5e.js b/system/scripts/main-l5r5e.js index 95e52c6..a1a5e53 100644 --- a/system/scripts/main-l5r5e.js +++ b/system/scripts/main-l5r5e.js @@ -211,7 +211,7 @@ Hooks.once("init", async () => { const reverseBar = data.attribute === "fatigue" && game.settings.get(L5R5E.namespace, "token-reverseFatigueBar"); // Bar value - const pct = Math.clamped(Number(data.value), 0, data.max) / data.max; + const pct = Math.clamp(Number(data.value), 0, data.max) / data.max; // Modify color let color = number === 0 ? [pct / 1.2, 1 - pct, 0] : [0.5 * pct, 0.7 * pct, 0.5 + pct / 2];