From 16e931179fe4b722ff7d80fcd20b3c7ebc564168 Mon Sep 17 00:00:00 2001 From: Dapoulp <74197441+Dapoulp@users.noreply.github.com> Date: Fri, 15 Aug 2025 21:43:33 +0200 Subject: [PATCH 1/2] Fix/attack type migrate data (#949) * Temp ActionField attack type missing * Move missing attack type to getModel * Move attack type fix to actor migratedata --- module/data/fields/actionField.mjs | 1 - module/documents/actor.mjs | 8 ++++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/module/data/fields/actionField.mjs b/module/data/fields/actionField.mjs index d2fdc6c8..04425d55 100644 --- a/module/data/fields/actionField.mjs +++ b/module/data/fields/actionField.mjs @@ -82,7 +82,6 @@ export class ActionsField extends MappingField { */ export class ActionField extends foundry.data.fields.ObjectField { getModel(value) { - if (value && !value.type) value.type = 'attack'; return game.system.api.models.actions.actionsTypes[value.type] ?? null; } diff --git a/module/documents/actor.mjs b/module/documents/actor.mjs index 05c4cbaa..84dd6d18 100644 --- a/module/documents/actor.mjs +++ b/module/documents/actor.mjs @@ -25,6 +25,14 @@ export default class DhpActor extends Actor { /* -------------------------------------------- */ + /** @inheritDoc */ + static migrateData(source) { + if(source.system?.attack && !source.system.attack.type) source.system.attack.type = "attack"; + return super.migrateData(source); + } + + /* -------------------------------------------- */ + /**@inheritdoc */ static getDefaultArtwork(actorData) { const { type } = actorData; From a07819611e677e73ca1cb2eedbddd6cda7473e05 Mon Sep 17 00:00:00 2001 From: Dapoulp <74197441+Dapoulp@users.noreply.github.com> Date: Sat, 16 Aug 2025 01:05:05 +0200 Subject: [PATCH 2/2] Fix armor slot reduction (#968) * Temp ActionField attack type missing * Move missing attack type to getModel * Fix armor slot reduction if armor as part of damage --- module/documents/actor.mjs | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/module/documents/actor.mjs b/module/documents/actor.mjs index 84dd6d18..4a6d2d67 100644 --- a/module/documents/actor.mjs +++ b/module/documents/actor.mjs @@ -571,10 +571,20 @@ export default class DhpActor extends Actor { if (armorSlotResult) { const { modifiedDamage, armorSpent, stressSpent } = armorSlotResult; updates.find(u => u.key === 'hitPoints').value = modifiedDamage; - updates.push( - ...(armorSpent ? [{ value: armorSpent, key: 'armor' }] : []), - ...(stressSpent ? [{ value: stressSpent, key: 'stress' }] : []) - ); + if(armorSpent) { + const armorUpdate = updates.find(u => u.key === 'armor'); + if(armorUpdate) + armorUpdate.value += armorSpent; + else + updates.push({ value: armorSpent, key: 'armor' }); + } + if(stressSpent) { + const stressUpdate = updates.find(u => u.key === 'stress'); + if(stressUpdate) + stressUpdate.value += stressSpent; + else + updates.push({ value: stressSpent, key: 'stress' }); + } } } }