From f4ce452ecf2c1f987636647271cc902b172fc7b8 Mon Sep 17 00:00:00 2001 From: WBHarry Date: Wed, 31 Dec 2025 04:50:11 +0100 Subject: [PATCH] Fixed beastforms getting stuck --- module/data/activeEffect/beastformEffect.mjs | 20 ++++++++++++++------ module/data/item/beastform.mjs | 20 ++++++++++++++------ 2 files changed, 28 insertions(+), 12 deletions(-) diff --git a/module/data/activeEffect/beastformEffect.mjs b/module/data/activeEffect/beastformEffect.mjs index b041b59e..5311b827 100644 --- a/module/data/activeEffect/beastformEffect.mjs +++ b/module/data/activeEffect/beastformEffect.mjs @@ -66,12 +66,20 @@ export default class BeastformEffect extends BaseEffect { }; const updateToken = token => { - const { x, y } = game.system.api.documents.DhToken.getSnappedPositionInSquareGrid( - token.object.scene.grid, - { x: token.x, y: token.y, elevation: token.elevation }, - baseUpdate.width, - baseUpdate.height - ); + let x = null, + y = null; + if (token.object?.scene?.grid) { + const positionData = game.system.api.documents.DhToken.getSnappedPositionInSquareGrid( + token.object.scene.grid, + { x: token.x, y: token.y, elevation: token.elevation }, + baseUpdate.width, + baseUpdate.height + ); + + x = positionData.x; + y = positionData.y; + } + return { ...baseUpdate, x, diff --git a/module/data/item/beastform.mjs b/module/data/item/beastform.mjs index 669cd4b1..1840e26a 100644 --- a/module/data/item/beastform.mjs +++ b/module/data/item/beastform.mjs @@ -218,12 +218,20 @@ export default class DHBeastform extends BaseDataItem { } }; const tokenUpdate = token => { - const { x, y } = game.system.api.documents.DhToken.getSnappedPositionInSquareGrid( - token.object.scene.grid, - { x: token.x, y: token.y, elevation: token.elevation }, - width ?? token.width, - height ?? token.height - ); + let x = null, + y = null; + if (token.object?.scene?.grid) { + const positionData = game.system.api.documents.DhToken.getSnappedPositionInSquareGrid( + token.object.scene.grid, + { x: token.x, y: token.y, elevation: token.elevation }, + width ?? token.width, + height ?? token.height + ); + + x = positionData.x; + y = positionData.y; + } + return { ...prototypeTokenUpdate, x,