From 9336e3465c639c3023429c7ff76871617d9ef3e7 Mon Sep 17 00:00:00 2001 From: Oliver-Akins Date: Thu, 6 Mar 2025 21:22:14 -0700 Subject: [PATCH] Get the deltas stacking properly --- .../data/region-behaviors/DifficultyDelta.mjs | 39 ++++++++++++++++++- 1 file changed, 37 insertions(+), 2 deletions(-) diff --git a/module/data/region-behaviors/DifficultyDelta.mjs b/module/data/region-behaviors/DifficultyDelta.mjs index 5558c9d..3a6691f 100644 --- a/module/data/region-behaviors/DifficultyDelta.mjs +++ b/module/data/region-behaviors/DifficultyDelta.mjs @@ -23,14 +23,49 @@ export class DifficultyDeltaBehaviorData extends RegionBehaviorType { static async #onTokenEnter(event) { Logger.debug(`token enter`, event, this); const actor = event.data.token.actor; + // const token = event.data.token.object; + // Logger.debug(token.center, token.h) if (!actor) { return }; - actor.setFlag(`ripcrypt`, `dcDelta`, this.delta); + + let delta = actor.getFlag(game.system.id, `dcDelta`) ?? 0; + delta += this.delta; + actor.setFlag(game.system.id, `dcDelta`, delta); + ui.notifications.info(`Updated delta to: ${delta}`); + Logger.debug(`Updated delta to:`, delta); + // await canvas.interface.createScrollingText( + // token.center, + // delta, + // { + // distance: 2 * token.h, + // fontSize: 40, + // fill: `#aa0000`, + // } + // ); }; static async #onTokenExit(event) { Logger.debug(`token exit`, event, this); const actor = event.data.token.actor; + // const token = event.data.token.object; if (!actor) { return }; - actor.unsetFlag(`ripcrypt`, `dcDelta`); + + let delta = actor.getFlag(game.system.id, `dcDelta`) ?? 0; + delta -= this.delta; + if (delta === 0) { + actor.unsetFlag(game.system.id, `dcDelta`); + } else { + actor.setFlag(game.system.id, `dcDelta`, delta); + }; + ui.notifications.info(`Updated delta to: ${delta}`); + Logger.debug(`Updated delta to:`, delta); + // await canvas.interface.createScrollingText( + // token.center, + // delta, + // { + // distance: 2 * token.h, + // fontSize: 40, + // fill: `#00aa00`, + // } + // ); }; };