71 lines
1.9 KiB
JavaScript
71 lines
1.9 KiB
JavaScript
import { Logger } from "../../utils/Logger.mjs";
|
|
|
|
const { fields } = foundry.data;
|
|
const { RegionBehaviorType } = foundry.data.regionBehaviors;
|
|
|
|
export class DifficultyDeltaBehaviorData extends RegionBehaviorType {
|
|
static LOCALIZATION_PREFIXES = [`RipCrypt.region.difficultyDelta`];
|
|
|
|
static defineSchema() {
|
|
return {
|
|
delta: new fields.NumberField({
|
|
required: true,
|
|
initial: 1,
|
|
}),
|
|
};
|
|
};
|
|
|
|
static events = {
|
|
[CONST.REGION_EVENTS.TOKEN_ENTER]: this.#onTokenEnter,
|
|
[CONST.REGION_EVENTS.TOKEN_EXIT]: this.#onTokenExit,
|
|
};
|
|
|
|
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 };
|
|
|
|
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 };
|
|
|
|
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`,
|
|
// }
|
|
// );
|
|
};
|
|
};
|