v12 fixes

- Removal of async
- CHAT_MESSAGE_TYPES to CHAT_MESSAGE_STYLES : roll removed
- Math.clamped to Math.clamp
- fixed debounce scope
This commit is contained in:
Vlyan
2024-05-24 12:30:02 +02:00
parent 2eead2f22f
commit bff5ed7865
5 changed files with 15 additions and 18 deletions

View File

@@ -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

View File

@@ -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;
}
/**

View File

@@ -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: {

View File

@@ -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 */
}
/**

View File

@@ -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];