diff --git a/daggerheart.mjs b/daggerheart.mjs index 4cf4bc3f..11111802 100644 --- a/daggerheart.mjs +++ b/daggerheart.mjs @@ -381,74 +381,6 @@ Hooks.on(CONFIG.DH.HOOKS.hooksConfig.groupRollStart, async data => { } }); -const updateActorsRangeDependentEffects = async token => { - if (!token) return; - - const rangeMeasurement = game.settings.get( - CONFIG.DH.id, - CONFIG.DH.SETTINGS.gameSettings.variantRules - ).rangeMeasurement; - - for (let effect of token.actor?.allApplicableEffects() ?? []) { - if (!effect.system.rangeDependence || effect.system.rangeDependence.enabled === false) continue; - const { target, range, type } = effect.system.rangeDependence; - - // If there are no targets, assume false. Otherwise, start with the effect enabled. - let enabledEffect = game.user.targets.size !== 0; - // Expect all targets to meet the rangeDependence requirements - for (let userTarget of game.user.targets) { - const disposition = userTarget.document.disposition; - if ((target === 'friendly' && disposition !== 1) || (target === 'hostile' && disposition !== -1)) { - enabledEffect = false; - break; - } - - // Get required distance and special case 5 feet to test adjacency - const required = rangeMeasurement[range]; - const reverse = type === CONFIG.DH.GENERAL.rangeInclusion.outsideRange.id; - const inRange = userTarget.distanceTo(token.object) <= required; - if (reverse ? inRange : !inRange) { - enabledEffect = false; - break; - } - } - - await effect.update({ disabled: !enabledEffect }); - } -}; - -const updateAllRangeDependentEffects = async () => { - const effectsAutomation = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Automation).effects; - if (!effectsAutomation.rangeDependent) return; - - const tokens = canvas.scene?.tokens; - if (!tokens) return; - - if (game.user.character) { - // The character updates their character's token. There can be only one token. - const characterToken = tokens.find(x => x.actor === game.user.character); - updateActorsRangeDependentEffects(characterToken); - } else if (game.user.isActiveGM) { - // The GM is responsible for all other tokens. - const playerCharacters = game.users.players.filter(x => x.active).map(x => x.character); - for (const token of tokens.filter(x => !playerCharacters.includes(x.actor))) { - updateActorsRangeDependentEffects(token); - } - } -}; - -const debouncedRangeEffectCall = foundry.utils.debounce(updateAllRangeDependentEffects, 50); - -Hooks.on('targetToken', () => { - debouncedRangeEffectCall(); -}); - -Hooks.on('refreshToken', (token, options) => { - if (options.refreshPosition && !token._original) { - debouncedRangeEffectCall(); - } -}); - Hooks.on('renderCompendiumDirectory', (app, html) => applications.ui.ItemBrowser.injectSidebarButton(html)); Hooks.on('renderDocumentDirectory', (app, html) => applications.ui.ItemBrowser.injectSidebarButton(html)); diff --git a/module/applications/sheets-configs/activeEffectConfig.mjs b/module/applications/sheets-configs/activeEffectConfig.mjs index 1f18a61e..01fc447a 100644 --- a/module/applications/sheets-configs/activeEffectConfig.mjs +++ b/module/applications/sheets-configs/activeEffectConfig.mjs @@ -233,7 +233,6 @@ export default class DhActiveEffectConfig extends foundry.applications.sheets.Ac const systemData = { rangeDependence: event.target.checked ? { - enabled: true, // Temporary while the onMove handling is still in type: rangeFields.type.initial, target: rangeFields.target.initial, range: rangeFields.range.initial diff --git a/module/config/generalConfig.mjs b/module/config/generalConfig.mjs index 188efafb..73267977 100644 --- a/module/config/generalConfig.mjs +++ b/module/config/generalConfig.mjs @@ -130,7 +130,7 @@ export const otherTargetTypes = { id: 'any', label: 'DAGGERHEART.CONFIG.TargetTypes.any' } -}; +} export const targetTypes = { self: { diff --git a/module/data/activeEffect/baseEffect.mjs b/module/data/activeEffect/baseEffect.mjs index 34ebe9d4..1c69d926 100644 --- a/module/data/activeEffect/baseEffect.mjs +++ b/module/data/activeEffect/baseEffect.mjs @@ -57,10 +57,6 @@ export default class BaseEffect extends foundry.data.ActiveEffectTypeDataModel { description: new fields.HTMLField({ label: 'DAGGERHEART.GENERAL.description' }) }), rangeDependence: new fields.SchemaField({ - enabled: new fields.BooleanField({ // Temporary for the remaining onMove logic - initial: false, - label: 'DAGGERHEART.GENERAL.enabled' - }), type: new fields.StringField({ required: true, choices: CONFIG.DH.GENERAL.rangeInclusion, diff --git a/styles/less/global/elements.less b/styles/less/global/elements.less index 586a34c2..e57ba50d 100755 --- a/styles/less/global/elements.less +++ b/styles/less/global/elements.less @@ -305,10 +305,6 @@ min-height: auto; row-gap: 0; - &.active { - row-gap: 10px; - } - legend { display: flex; align-items: center; diff --git a/templates/sheets/activeEffect/changes.hbs b/templates/sheets/activeEffect/changes.hbs index 4d33d8b4..37feb845 100644 --- a/templates/sheets/activeEffect/changes.hbs +++ b/templates/sheets/activeEffect/changes.hbs @@ -14,7 +14,7 @@ {{/each}} -
+
{{localize "DAGGERHEART.GENERAL.armor"}} diff --git a/templates/sheets/activeEffect/settings.hbs b/templates/sheets/activeEffect/settings.hbs index 60df488b..d3bfc7e8 100644 --- a/templates/sheets/activeEffect/settings.hbs +++ b/templates/sheets/activeEffect/settings.hbs @@ -1,5 +1,5 @@
-
+
{{localize "DAGGERHEART.ACTIVEEFFECT.Config.stacking.title"}} @@ -13,7 +13,7 @@ {{/if}}
-
+
{{localize "DAGGERHEART.ACTIVEEFFECT.Config.rangeDependence.title"}}