This commit is contained in:
WBHarry 2026-07-06 23:12:47 +02:00
parent da44ff2510
commit 5d78ffb3f1
9 changed files with 67 additions and 18 deletions

View file

@ -390,7 +390,7 @@ const updateActorsRangeDependentEffects = async token => {
).rangeMeasurement;
for (let effect of token.actor?.allApplicableEffects() ?? []) {
if (!effect.system.rangeDependence || effect.system.rangeDependence.enabled === false) continue;
if (!effect.system.rangeDependence) continue;
const { target, range, type } = effect.system.rangeDependence;
// If there are no targets, assume false. Otherwise, start with the effect enabled.

View file

@ -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

View file

@ -791,13 +791,21 @@ export const weaponFeatures = {
name: 'DAGGERHEART.CONFIG.WeaponFeature.doubleDuty.effects.doubleDuty.name',
description: 'DAGGERHEART.CONFIG.WeaponFeature.doubleDuty.effects.doubleDuty.description',
img: 'icons/skills/melee/sword-shield-stylized-white.webp',
changes: [
{
key: 'system.bonuses.damage.primaryWeapon.bonus',
mode: 2,
value: '1'
system: {
changes: [
{
key: 'system.bonuses.damage.primaryWeapon.bonus',
mode: 2,
value: '1'
}
],
rangeDependence: {
enabled: true,
range: 'melee',
target: 'hostile',
type: 'withinRange'
}
]
}
},
{
name: 'DAGGERHEART.CONFIG.WeaponFeature.doubleDuty.effects.doubleDuty.name',
@ -1095,13 +1103,21 @@ export const weaponFeatures = {
name: 'DAGGERHEART.CONFIG.WeaponFeature.paired.effects.paired.name',
description: 'DAGGERHEART.CONFIG.WeaponFeature.paired.effects.paired.description',
img: 'icons/skills/melee/weapons-crossed-swords-yellow-teal.webp',
changes: [
{
key: 'system.bonuses.damage.primaryWeapon.bonus',
mode: 2,
value: 'ITEM.@system.tier + 1'
system: {
changes: [
{
key: 'system.bonuses.damage.primaryWeapon.bonus',
mode: 2,
value: 'ITEM.@system.tier + 1'
}
],
rangeDependence: {
enabled: true,
range: 'melee',
target: 'hostile',
type: 'withinRange'
}
]
}
}
]
},

View file

@ -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,
@ -176,4 +172,12 @@ export default class BaseEffect extends foundry.data.ActiveEffectTypeDataModel {
if (this.parent.actor && options.scrollingTextData)
this.parent.actor.queueScrollText(options.scrollingTextData);
}
static migrateData(source) {
if (source.rangeDependence?.enabled === false) {
source.rangeDependence = null;
}
return super.migrateData(source);
}
}

View file

@ -114,6 +114,12 @@
"description": "Add this Secondary Weapon's tier + 1 to your primary weapon against targets within Melee range",
"img": "icons/skills/melee/weapons-crossed-swords-yellow-teal.webp",
"system": {
"rangeDependence": {
"enabled": true,
"range": "melee",
"target": "hostile",
"type": "withinRange"
},
"changes": [
{
"key": "system.bonuses.damage.primaryWeapon.bonus",

View file

@ -114,6 +114,12 @@
"description": "Add this Secondary Weapon's tier + 1 to your primary weapon against targets within Melee range",
"img": "icons/skills/melee/weapons-crossed-swords-yellow-teal.webp",
"system": {
"rangeDependence": {
"enabled": true,
"range": "melee",
"target": "hostile",
"type": "withinRange"
},
"changes": [
{
"key": "system.bonuses.damage.primaryWeapon.bonus",

View file

@ -114,6 +114,12 @@
"description": "Add this Secondary Weapon's tier + 1 to your primary weapon against targets within Melee range",
"img": "icons/skills/melee/weapons-crossed-swords-yellow-teal.webp",
"system": {
"rangeDependence": {
"enabled": true,
"range": "melee",
"target": "hostile",
"type": "withinRange"
},
"changes": [
{
"key": "system.bonuses.damage.primaryWeapon.bonus",

View file

@ -114,6 +114,12 @@
"description": "<p>Add this Secondary Weapon's tier + 1 to your primary weapon against targets within Melee range</p>",
"img": "icons/skills/melee/weapons-crossed-swords-yellow-teal.webp",
"system": {
"rangeDependence": {
"enabled": true,
"range": "melee",
"target": "hostile",
"type": "withinRange"
},
"changes": [
{
"key": "system.bonuses.damage.primaryWeapon.bonus",

View file

@ -114,6 +114,12 @@
"description": "+1 to Armor Score; +1 to primary weapon damage within Melee range",
"img": "icons/skills/melee/sword-shield-stylized-white.webp",
"system": {
"rangeDependence": {
"enabled": true,
"range": "melee",
"target": "hostile",
"type": "withinRange"
},
"changes": [
{
"key": "system.bonuses.damage.primaryWeapon.bonus",