Merge branch 'main' into release

This commit is contained in:
WBHarry 2025-08-26 20:32:04 +02:00
commit 3566ea3fd3
10 changed files with 32 additions and 11 deletions

View file

@ -17,6 +17,10 @@ We welcome contributions of all kinds:
Please be respectful and collaborative — were all here to build something great together. Please be respectful and collaborative — were all here to build something great together.
### Community Translations
Please note that we are not accepting community translations in the main project. Instead, community translations should be published as a module.
--- ---
## 🧭 General Guidelines ## 🧭 General Guidelines

View file

@ -607,6 +607,15 @@ export default class CharacterSheet extends DHBaseActorSheet {
const presets = { const presets = {
compendium: 'daggerheart', compendium: 'daggerheart',
folder: key, folder: key,
filter:
key === 'subclasses'
? {
'system.linkedClass.uuid': {
key: 'system.linkedClass.uuid',
value: this.document.system.class.value._stats.compendiumSource
}
}
: undefined,
render: { render: {
noFolder: true noFolder: true
} }

View file

@ -52,8 +52,7 @@ export default class DHSubclass extends BaseDataItem {
async _preCreate(data, options, user) { async _preCreate(data, options, user) {
if (this.actor?.type === 'character') { if (this.actor?.type === 'character') {
const dataUuid = const dataUuid = data.uuid ?? data._stats.compendiumSource ?? `Item.${data._id}`;
data.uuid ?? (data.folder ? `Compendium.daggerheart.subclasses.Item.${data._id}` : `Item.${data._id}`);
if (this.actor.system.class.subclass) { if (this.actor.system.class.subclass) {
if (this.actor.system.multiclass.subclass) { if (this.actor.system.multiclass.subclass) {
ui.notifications.warn(game.i18n.localize('DAGGERHEART.UI.Notifications.subclassesAlreadyPresent')); ui.notifications.warn(game.i18n.localize('DAGGERHEART.UI.Notifications.subclassesAlreadyPresent'));

View file

@ -44,7 +44,7 @@ function getDamageMessage(damage, type, inline, defaultElement) {
const dualityElement = document.createElement('span'); const dualityElement = document.createElement('span');
dualityElement.innerHTML = ` dualityElement.innerHTML = `
<button class="enriched-damage-button${inline ? ' inline' : ''}" <button type="button" class="enriched-damage-button${inline ? ' inline' : ''}"
data-value="${damage}" data-value="${damage}"
data-type="${type}" data-type="${type}"
data-tooltip="${game.i18n.localize('DAGGERHEART.GENERAL.damage')}" data-tooltip="${game.i18n.localize('DAGGERHEART.GENERAL.damage')}"
@ -71,6 +71,11 @@ export const renderDamageButton = async event => {
title: game.i18n.localize('Damage Roll'), title: game.i18n.localize('Damage Roll'),
data: { bonuses: [] }, data: { bonuses: [] },
source: {}, source: {},
hasDamage: true,
hasTarget: true,
targets: Array.from(game.user.targets).map(t =>
game.system.api.fields.ActionFields.TargetField.formatTarget(t)
),
roll: [ roll: [
{ {
formula: value, formula: value,

View file

@ -36,7 +36,7 @@ function getDualityMessage(roll, flavor) {
const dualityElement = document.createElement('span'); const dualityElement = document.createElement('span');
dualityElement.innerHTML = ` dualityElement.innerHTML = `
<button class="duality-roll-button${roll.inline ? ' inline' : ''}" <button type="button" class="duality-roll-button${roll.inline ? ' inline' : ''}"
data-title="${label}" data-title="${label}"
data-label="${dataLabel}" data-label="${dataLabel}"
data-reaction="${roll.reaction ? 'true' : 'false'}" data-reaction="${roll.reaction ? 'true' : 'false'}"

View file

@ -34,7 +34,7 @@ export default function DhTemplateEnricher(match, _options) {
const templateElement = document.createElement('span'); const templateElement = document.createElement('span');
templateElement.innerHTML = ` templateElement.innerHTML = `
<button class="measured-template-button${inline ? ' inline' : ''}" data-type="${type}" data-range="${range}"> <button type="button" class="measured-template-button${inline ? ' inline' : ''}" data-type="${type}" data-range="${range}">
${label} - ${game.i18n.localize(`DAGGERHEART.CONFIG.Range.${range}.name`)} ${label} - ${game.i18n.localize(`DAGGERHEART.CONFIG.Range.${range}.name`)}
</button> </button>
`; `;

View file

@ -1,6 +1,6 @@
{ {
"folder": "1gQpPaxdgvCxYlLs", "folder": "1gQpPaxdgvCxYlLs",
"name": "Strange Dirty Penant", "name": "Strange Dirty Pendant",
"type": "loot", "type": "loot",
"_id": "LriTeh9hkwzEaCr1", "_id": "LriTeh9hkwzEaCr1",
"img": "icons/equipment/neck/necklace-carved-stone-spiral.webp", "img": "icons/equipment/neck/necklace-carved-stone-spiral.webp",
@ -20,12 +20,12 @@
"compendiumSource": null, "compendiumSource": null,
"duplicateSource": null, "duplicateSource": null,
"exportSource": null, "exportSource": null,
"coreVersion": "13.346", "coreVersion": "13.347",
"systemId": "daggerheart", "systemId": "daggerheart",
"systemVersion": "0.0.1", "systemVersion": "0.0.1",
"createdTime": 1754222150005, "createdTime": 1754222150005,
"modifiedTime": 1754246254311, "modifiedTime": 1756136989085,
"lastModifiedBy": "LgnbNMLaxandgMQq" "lastModifiedBy": "HKcDBUU22bYKtQmH"
}, },
"_key": "!items!LriTeh9hkwzEaCr1" "_key": "!items!LriTeh9hkwzEaCr1"
} }

View file

@ -54,6 +54,10 @@
display: grid; display: grid;
grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr; grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr;
gap: 8px; gap: 8px;
max-height: 184px;
overflow: auto;
scrollbar-width: thin;
scrollbar-color: light-dark(#18162e, #f3c267) transparent;
.domain-container { .domain-container {
position: relative; position: relative;

View file

@ -2,7 +2,7 @@
"id": "daggerheart", "id": "daggerheart",
"title": "Daggerheart", "title": "Daggerheart",
"description": "An unofficial implementation of the Daggerheart system", "description": "An unofficial implementation of the Daggerheart system",
"version": "1.1.1", "version": "1.1.2",
"compatibility": { "compatibility": {
"minimum": "13", "minimum": "13",
"verified": "13.347", "verified": "13.347",

View file

@ -6,7 +6,7 @@
<div class="tooltip-information-section"> <div class="tooltip-information-section">
<div class="tooltip-information"> <div class="tooltip-information">
<label>{{localize "DAGGERHEART.ITEMS.Weapon.weaponType"}}</label> <label>{{localize "DAGGERHEART.ITEMS.Weapon.weaponType"}}</label>
<div>{{#if item.system.secondaryWeapon}}{{localize "DAGGERHEART.ITEMS.Weapon.secondaryWeapon"}}{{else}}{{localize "DAGGERHEART.ITEMS.Weapon.primaryWeapon"}}{{/if}}</div> <div>{{#if item.system.secondary}}{{localize "DAGGERHEART.ITEMS.Weapon.secondaryWeapon"}}{{else}}{{localize "DAGGERHEART.ITEMS.Weapon.primaryWeapon"}}{{/if}}</div>
</div> </div>
<div class="tooltip-information"> <div class="tooltip-information">
<label>{{localize "DAGGERHEART.GENERAL.burden"}}</label> <label>{{localize "DAGGERHEART.GENERAL.burden"}}</label>