ripcrypt/module/data/region-behaviors/DifficultyDelta.mjs

36 lines
943 B
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;
if (!actor) { return };
actor.setFlag(`ripcrypt`, `dcDelta`, this.delta);
};
static async #onTokenExit(event) {
Logger.debug(`token exit`, event, this);
const actor = event.data.token.actor;
if (!actor) { return };
actor.unsetFlag(`ripcrypt`, `dcDelta`);
};
};