36 lines
943 B
JavaScript
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`);
|
|
};
|
|
};
|