From 9393bab6cf6cd1203d4f991895d3e589d011a104 Mon Sep 17 00:00:00 2001 From: WBHarry <89362246+WBHarry@users.noreply.github.com> Date: Thu, 15 Jan 2026 09:45:10 +0100 Subject: [PATCH] Added so that beastforms can set a scale to handle specific images (#1532) --- lang/en.json | 3 ++- module/data/activeEffect/beastformEffect.mjs | 9 +++++++-- module/data/item/beastform.mjs | 6 +++++- templates/sheets/items/beastform/settings.hbs | 3 +++ 4 files changed, 17 insertions(+), 4 deletions(-) diff --git a/lang/en.json b/lang/en.json index b84906f3..14915a81 100755 --- a/lang/en.json +++ b/lang/en.json @@ -2284,7 +2284,8 @@ "placeholder": "Using character dimensions", "disabledPlaceholder": "Set by character size", "height": { "label": "Height" }, - "width": { "label": "Width" } + "width": { "label": "Width" }, + "scale": { "label": "Token Scale" } }, "evolved": { "maximumTier": { "label": "Maximum Tier" }, diff --git a/module/data/activeEffect/beastformEffect.mjs b/module/data/activeEffect/beastformEffect.mjs index 5311b827..65e36606 100644 --- a/module/data/activeEffect/beastformEffect.mjs +++ b/module/data/activeEffect/beastformEffect.mjs @@ -19,6 +19,7 @@ export default class BeastformEffect extends BaseEffect { base64: false }), tokenSize: new fields.SchemaField({ + scale: new fields.NumberField({ nullable: false, initial: 1 }), height: new fields.NumberField({ integer: false, nullable: true }), width: new fields.NumberField({ integer: false, nullable: true }) }) @@ -55,7 +56,9 @@ export default class BeastformEffect extends BaseEffect { const update = { ...baseUpdate, texture: { - src: this.characterTokenData.tokenImg + src: this.characterTokenData.tokenImg, + scaleX: this.characterTokenData.tokenSize.scale, + scaleY: this.characterTokenData.tokenSize.scale }, ring: { enabled: this.characterTokenData.usesDynamicToken, @@ -86,7 +89,9 @@ export default class BeastformEffect extends BaseEffect { y, 'texture': { enabled: this.characterTokenData.usesDynamicToken, - src: token.flags.daggerheart?.beastformTokenImg ?? this.characterTokenData.tokenImg + src: token.flags.daggerheart?.beastformTokenImg ?? this.characterTokenData.tokenImg, + scaleX: this.characterTokenData.tokenSize.scale, + scaleY: this.characterTokenData.tokenSize.scale }, 'ring': { subject: { diff --git a/module/data/item/beastform.mjs b/module/data/item/beastform.mjs index 1840e26a..dd491169 100644 --- a/module/data/item/beastform.mjs +++ b/module/data/item/beastform.mjs @@ -49,6 +49,7 @@ export default class DHBeastform extends BaseDataItem { choices: CONFIG.DH.ACTOR.tokenSize, initial: CONFIG.DH.ACTOR.tokenSize.custom.id }), + scale: new fields.NumberField({ nullable: false, min: 0.2, max: 3, step: 0.05, initial: 1 }), height: new fields.NumberField({ integer: true, min: 1, initial: null, nullable: true }), width: new fields.NumberField({ integer: true, min: 1, initial: null, nullable: true }) }), @@ -184,6 +185,7 @@ export default class DHBeastform extends BaseDataItem { tokenImg: this.parent.parent.prototypeToken.texture.src, tokenRingImg: this.parent.parent.prototypeToken.ring.subject.texture, tokenSize: { + scale: this.parent.parent.prototypeToken.texture.scaleX, height: this.parent.parent.prototypeToken.height, width: this.parent.parent.prototypeToken.width } @@ -209,7 +211,9 @@ export default class DHBeastform extends BaseDataItem { height, width, texture: { - src: this.tokenImg + src: this.tokenImg, + scaleX: this.tokenSize.scale, + scaleY: this.tokenSize.scale }, ring: { subject: { diff --git a/templates/sheets/items/beastform/settings.hbs b/templates/sheets/items/beastform/settings.hbs index 844b9d61..82065ad3 100644 --- a/templates/sheets/items/beastform/settings.hbs +++ b/templates/sheets/items/beastform/settings.hbs @@ -47,6 +47,9 @@ disabled=dimensionsDisabled }} +
+ {{formGroup systemFields.tokenSize.fields.scale value=source.system.tokenSize.scale localize=true }} +
{{else}} {{localize "DAGGERHEART.ITEMS.Beastform.evolvedTokenHint"}} {{/unless}}