Prevent specific data fields from being modifiable via AEs

This commit is contained in:
Oliver-Akins 2024-04-30 20:00:05 -06:00
parent d92d6b9d3c
commit d433e6a51d
2 changed files with 10 additions and 0 deletions

View file

@ -68,6 +68,11 @@ export const itemFilters = [
`service`, `service`,
]; ];
export const invalidActiveEffectTargets = new Set([
`system.uses_inventory_slot`,
`system.quantity_affects_used_capacity`,
]);
export default { export default {
stats, stats,
statDice, statDice,
@ -86,4 +91,5 @@ export default {
syncDice, syncDice,
localizerConfig, localizerConfig,
itemFilters, itemFilters,
invalidActiveEffectTargets,
}; };

View file

@ -1,3 +1,5 @@
import { invalidActiveEffectTargets } from "../../config.mjs";
export class DotDungeonActiveEffect extends ActiveEffect { export class DotDungeonActiveEffect extends ActiveEffect {
// Invert the logic of the disabled property so it's easier to modify via // Invert the logic of the disabled property so it's easier to modify via
@ -6,6 +8,8 @@ export class DotDungeonActiveEffect extends ActiveEffect {
set enabled(newValue) { this.disabled = !newValue }; set enabled(newValue) { this.disabled = !newValue };
apply(object, change) { apply(object, change) {
if (invalidActiveEffectTargets.has(change.key)) return;
change.value = change.value.replace( change.value = change.value.replace(
/@(?<key>[\w\.]+)/gi, /@(?<key>[\w\.]+)/gi,
(...args) => { (...args) => {