From 3eb33a71af6868c4dc2a6eaeb2e000fa49f2a634 Mon Sep 17 00:00:00 2001
From: WBHarry <89362246+WBHarry@users.noreply.github.com>
Date: Sun, 31 May 2026 19:54:42 +0200
Subject: [PATCH 1/4] Fixed the centering of the Select-Roll circles in
TagTeamDialog. Fixed so that damage formulas that are just a modifier don't
get a prefix '+' rendered (#1955)
---
styles/less/dialog/tag-team-dialog/sheet.less | 1 +
templates/dialogs/tagTeamDialog/parts/tagTeamDamageParts.hbs | 2 +-
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/styles/less/dialog/tag-team-dialog/sheet.less b/styles/less/dialog/tag-team-dialog/sheet.less
index 3a112146..82bc0270 100644
--- a/styles/less/dialog/tag-team-dialog/sheet.less
+++ b/styles/less/dialog/tag-team-dialog/sheet.less
@@ -194,6 +194,7 @@
.roll-selection-container {
display: flex;
+ gap: 16px;
.select-roll-button {
margin-top: 8px;
diff --git a/templates/dialogs/tagTeamDialog/parts/tagTeamDamageParts.hbs b/templates/dialogs/tagTeamDialog/parts/tagTeamDamageParts.hbs
index 49fc8f4f..2a366269 100644
--- a/templates/dialogs/tagTeamDialog/parts/tagTeamDamageParts.hbs
+++ b/templates/dialogs/tagTeamDialog/parts/tagTeamDamageParts.hbs
@@ -16,7 +16,7 @@
{{/unless}}
{{/each}}
{{#if part.modifierTotal}}
- {{#if (gte part.modifierTotal 0)}}+{{else}}-{{/if}}
+ {{#if part.dice.length}}{{#if (gte part.modifierTotal 0)}}+{{else}}-{{/if}}{{/if}}
{{positive part.modifierTotal}}
{{/if}}
From bfd483698b91a23c4d90528dc143e78977fb3a75 Mon Sep 17 00:00:00 2001
From: WBHarry <89362246+WBHarry@users.noreply.github.com>
Date: Sun, 31 May 2026 22:58:08 +0200
Subject: [PATCH 2/4] Changed so that EffectField applyEffect doesn't run
EmitAsGM (#1953)
---
module/data/fields/action/effectsField.mjs | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/module/data/fields/action/effectsField.mjs b/module/data/fields/action/effectsField.mjs
index 1053e51d..0d37f5f9 100644
--- a/module/data/fields/action/effectsField.mjs
+++ b/module/data/fields/action/effectsField.mjs
@@ -1,5 +1,3 @@
-import { emitGMUpdate, GMUpdateEvent } from '../../../systemRegistration/socket.mjs';
-
const fields = foundry.data.fields;
export default class EffectsField extends fields.ArrayField {
@@ -34,8 +32,7 @@ export default class EffectsField extends fields.ArrayField {
}
if (EffectsField.getAutomation() || force) {
targets ??= (message.system?.targets ?? config.targets).filter(t => !config.hasRoll || t.hit);
- await emitGMUpdate(GMUpdateEvent.UpdateEffect, EffectsField.applyEffects.bind(this), targets, this.uuid);
- // EffectsField.applyEffects.call(this, config.targets.filter(t => !config.hasRoll || t.hit));
+ EffectsField.applyEffects.call(this, targets);
}
}
From 983f48b415e1a937c357e1fccc41cedbb87cae56 Mon Sep 17 00:00:00 2001
From: WBHarry <89362246+WBHarry@users.noreply.github.com>
Date: Mon, 1 Jun 2026 00:03:37 +0200
Subject: [PATCH 3/4] Fixed ActiveEffectConfig not opening because NPC was not
excluded. Fixed active effects not being appliable to NPCs because they lack
system.rules (#1956)
---
module/applications/sheets-configs/activeEffectConfig.mjs | 2 +-
module/data/fields/action/effectsField.mjs | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/module/applications/sheets-configs/activeEffectConfig.mjs b/module/applications/sheets-configs/activeEffectConfig.mjs
index cb9f1701..2d9eafc3 100644
--- a/module/applications/sheets-configs/activeEffectConfig.mjs
+++ b/module/applications/sheets-configs/activeEffectConfig.mjs
@@ -41,7 +41,7 @@ export default class DhActiveEffectConfig extends foundry.applications.sheets.Ac
* @returns {ChangeChoice { value: string, label: string, hint: string, group: string }[]}
*/
static getChangeChoices() {
- const ignoredActorKeys = ['config', 'DhEnvironment', 'DhParty'];
+ const ignoredActorKeys = ['config', 'DhEnvironment', 'DhParty', 'DhNPC'];
const getAllLeaves = (root, group, parentPath = '') => {
const leaves = [];
diff --git a/module/data/fields/action/effectsField.mjs b/module/data/fields/action/effectsField.mjs
index 0d37f5f9..d2ee1682 100644
--- a/module/data/fields/action/effectsField.mjs
+++ b/module/data/fields/action/effectsField.mjs
@@ -56,7 +56,7 @@ export default class EffectsField extends fields.ArrayField {
if (!token) return;
const messageToken = token.document ?? token;
- const conditionImmunities = messageToken.actor.system.rules.conditionImmunities ?? {};
+ const conditionImmunities = messageToken.actor.system.rules?.conditionImmunities ?? {};
messageTargets.push({
token: messageToken,
conditionImmunities: Object.values(conditionImmunities).some(x => x)
From c8d0df87c8a59c3261a49742cd533e719c49fcad Mon Sep 17 00:00:00 2001
From: WBHarry
Date: Mon, 1 Jun 2026 00:04:29 +0200
Subject: [PATCH 4/4] Raised version
---
system.json | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/system.json b/system.json
index 89320768..5994c576 100644
--- a/system.json
+++ b/system.json
@@ -2,7 +2,7 @@
"id": "daggerheart",
"title": "Daggerheart",
"description": "An unofficial implementation of the Daggerheart system",
- "version": "2.2.7",
+ "version": "2.3.0",
"compatibility": {
"minimum": "14.361",
"verified": "14.363",
@@ -10,7 +10,7 @@
},
"url": "https://github.com/Foundryborne/daggerheart",
"manifest": "https://raw.githubusercontent.com/Foundryborne/daggerheart/v14/system.json",
- "download": "https://github.com/Foundryborne/daggerheart/releases/download/2.2.7/system.zip",
+ "download": "https://github.com/Foundryborne/daggerheart/releases/download/2.3.0/system.zip",
"authors": [
{
"name": "WBHarry"