From d6316f30ba0efb574cb332e02d3a98e5d9438db7 Mon Sep 17 00:00:00 2001 From: WBHarry Date: Sun, 10 Aug 2025 02:06:51 +0200 Subject: [PATCH 01/17] Updated the background image for the system --- assets/logos/FoundrybornBackgroundLogo.png | Bin 0 -> 55426 bytes system.json | 1 + 2 files changed, 1 insertion(+) create mode 100644 assets/logos/FoundrybornBackgroundLogo.png diff --git a/assets/logos/FoundrybornBackgroundLogo.png b/assets/logos/FoundrybornBackgroundLogo.png new file mode 100644 index 0000000000000000000000000000000000000000..9639b92fc563f053210bdca293ac4f1f852d4bda GIT binary patch literal 55426 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

FxUNVIlbKxn+p5fHFaOLC``hR@`qk1DTxhn*D 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 NnrgbL#VXf={~v>26P*A6 literal 0 HcmV?d00001 diff --git a/system.json b/system.json index 7501cfa7..cde902c1 100644 --- a/system.json +++ b/system.json @@ -262,6 +262,7 @@ "abilityUse": {} } }, + "background": "systems/daggerheart/assets/logos/FoundrybornBackgroundLogo.png", "primaryTokenAttribute": "resources.hitPoints", "secondaryTokenAttribute": "resources.stress", "url": "https://your/hosted/system/repo/", From 589190849359bb0cbebcf3be690d6473b80a3e21 Mon Sep 17 00:00:00 2001 From: WBHarry Date: Sun, 10 Aug 2025 02:26:28 +0200 Subject: [PATCH 02/17] Fixed so Weapon/Armor features are added again --- module/helpers/utils.mjs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/module/helpers/utils.mjs b/module/helpers/utils.mjs index 6124cfbe..3dc1f7ed 100644 --- a/module/helpers/utils.mjs +++ b/module/helpers/utils.mjs @@ -85,7 +85,13 @@ export const chunkify = (array, chunkSize, mappingFunc) => { export const tagifyElement = (element, baseOptions, onChange, tagifyOptions = {}) => { const { maxTags } = tagifyOptions; - const options = typeof baseOptions === 'object' ? Object.values(baseOptions) : baseOptions; + const options = + typeof baseOptions === 'object' + ? Object.keys(baseOptions).map(optionKey => ({ + ...baseOptions[optionKey], + id: optionKey + })) + : baseOptions; const tagifyElement = new Tagify(element, { tagTextProp: 'name', From 4d2c72fb849aea344f512fc6ea88df9216cd46df Mon Sep 17 00:00:00 2001 From: WBHarry <89362246+WBHarry@users.noreply.github.com> Date: Sun, 10 Aug 2025 07:58:19 +0200 Subject: [PATCH 03/17] Fixed so fear is available as a resource to be deducted by actions (#757) --- module/data/action/baseAction.mjs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/module/data/action/baseAction.mjs b/module/data/action/baseAction.mjs index ab515e88..a886bf49 100644 --- a/module/data/action/baseAction.mjs +++ b/module/data/action/baseAction.mjs @@ -208,7 +208,14 @@ export default class DHBaseAction extends ActionMixin(foundry.abstract.DataModel } async consume(config, successCost = false) { - const usefulResources = foundry.utils.deepClone(this.actor.system.resources); + const usefulResources = { + ...foundry.utils.deepClone(this.actor.system.resources), + fear: { + value: game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Resources.Fear), + max: game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Homebrew).maxFear, + reversed: false + } + }; for (var cost of config.costs) { if (cost.keyIsID) { From f8d9257cd01fd41b56f5f0b82b624bdb64f0bc62 Mon Sep 17 00:00:00 2001 From: WBHarry Date: Sun, 10 Aug 2025 10:05:00 +0200 Subject: [PATCH 04/17] Changed to use the config labels and src --- README.md | 2 +- .../characterCreation/characterCreation.mjs | 5 +++++ module/data/item/class.mjs | 11 +++++++++++ module/data/item/domainCard.mjs | 9 +++++++-- styles/less/sheets/actors/character/header.less | 4 ++-- templates/characterCreation/setupTabs/domainCards.hbs | 4 +--- templates/sheets/actors/character/header.hbs | 4 ++-- 7 files changed, 29 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index c40a27a3..fda78b4b 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ This is the community repo for the Foundry VTT system _Foundryborne_ Daggerheart ## User Install -1. **recommended** Searching for _Daggerheart_ or _Foundryborne_ in the System Instalaltion dialgoe of the FoundryVTT admin settings. +1. **Recommended** Searching for _Daggerheart_ or _Foundryborne_ in the System Installation dialogue of the FoundryVTT admin settings. 2. Pasting `https://raw.githubusercontent.com/Foundryborne/daggerheart/refs/heads/main/system.json` into the Install System dialog on the Setup menu of the application. 3. Downloading one of the .zip archives from the Releases page and extracting it into your foundry Data folder, under Data/systems/daggerheart. diff --git a/module/applications/characterCreation/characterCreation.mjs b/module/applications/characterCreation/characterCreation.mjs index d45fe54e..c160b2fd 100644 --- a/module/applications/characterCreation/characterCreation.mjs +++ b/module/applications/characterCreation/characterCreation.mjs @@ -359,6 +359,11 @@ export default class DhCharacterCreation extends HandlebarsApplicationMixin(Appl context.community = { ...this.setup.community, compendium: 'communities' }; context.class = { ...this.setup.class, compendium: 'classes' }; context.subclass = { ...this.setup.subclass, compendium: 'subclasses' }; + + const allDomainData = CONFIG.DH.DOMAIN.allDomains(); + context.classDomains = context.class.uuid + ? context.class.system.domains.map(key => game.i18n.localize(allDomainData[key].label)) + : []; context.domainCards = Object.keys(this.setup.domainCards).reduce((acc, x) => { acc[x] = { ...this.setup.domainCards[x], compendium: 'domains' }; return acc; diff --git a/module/data/item/class.mjs b/module/data/item/class.mjs index 45e8b4ab..cee17613 100644 --- a/module/data/item/class.mjs +++ b/module/data/item/class.mjs @@ -60,6 +60,17 @@ export default class DHClass extends BaseDataItem { /* -------------------------------------------- */ + get domainData() { + const allDomainData = CONFIG.DH.DOMAIN.allDomains(); + return this.domains.map(key => { + const domain = allDomainData[key]; + return { + ...domain, + label: game.i18n.localize(domain.label) + }; + }); + } + get hopeFeatures() { return this.features.filter(x => x.type === CONFIG.DH.ITEM.featureSubTypes.hope).map(x => x.item); } diff --git a/module/data/item/domainCard.mjs b/module/data/item/domainCard.mjs index 34754a41..7705adb1 100644 --- a/module/data/item/domainCard.mjs +++ b/module/data/item/domainCard.mjs @@ -33,6 +33,11 @@ export default class DHDomainCard extends BaseDataItem { }; } + get domainLabel() { + const allDomainData = CONFIG.DH.DOMAIN.allDomains(); + return game.i18n.localize(allDomainData[this.domain].label); + } + /* -------------------------------------------- */ /**@override */ @@ -71,7 +76,7 @@ export default class DHDomainCard extends BaseDataItem { _getTags() { const tags = [ game.i18n.localize(`DAGGERHEART.CONFIG.DomainCardTypes.${this.type}`), - game.i18n.localize(`DAGGERHEART.GENERAL.Domain.${this.domain}.label`), + this.domainLabel, `${game.i18n.localize('DAGGERHEART.ITEMS.DomainCard.recallCost')}: ${this.recallCost}` ]; @@ -85,7 +90,7 @@ export default class DHDomainCard extends BaseDataItem { _getLabels() { const labels = [ game.i18n.localize(`DAGGERHEART.CONFIG.DomainCardTypes.${this.type}`), - game.i18n.localize(`DAGGERHEART.GENERAL.Domain.${this.domain}.label`), + this.domainLabel, { value: `${this.recallCost}`, //converts the number to a string icons: ['fa-bolt'] diff --git a/styles/less/sheets/actors/character/header.less b/styles/less/sheets/actors/character/header.less index 5de7a827..7bfcc7c9 100644 --- a/styles/less/sheets/actors/character/header.less +++ b/styles/less/sheets/actors/character/header.less @@ -10,7 +10,7 @@ } .character-row .domains-section img { - filter: invert(88%) sepia(98%) saturate(1784%) hue-rotate(311deg) brightness(104%) contrast(91%); + filter: @golden-filter; } } }, { @@ -20,7 +20,7 @@ } .character-row .domains-section img { - filter: invert(87%) sepia(15%) saturate(343%) hue-rotate(333deg) brightness(110%) contrast(87%); + filter: brightness(0) saturate(100%); } } }); diff --git a/templates/characterCreation/setupTabs/domainCards.hbs b/templates/characterCreation/setupTabs/domainCards.hbs index 298d8859..66526689 100644 --- a/templates/characterCreation/setupTabs/domainCards.hbs +++ b/templates/characterCreation/setupTabs/domainCards.hbs @@ -10,9 +10,7 @@ {{#each domainCards as |domainCard id|}}

{{#> "systems/daggerheart/templates/components/card-preview.hbs" domainCard }} - {{#each @root.class.system.domains }} -
{{localize (concat "DAGGERHEART.GENERAL.Domain." this ".label")}}
- {{/each}} + {{#each @root.classDomains }}
{{this}}
{{/each}} {{/"systems/daggerheart/templates/components/card-preview.hbs"}}
{{/each}} diff --git a/templates/sheets/actors/character/header.hbs b/templates/sheets/actors/character/header.hbs index b6f51bcf..7f598f55 100644 --- a/templates/sheets/actors/character/header.hbs +++ b/templates/sheets/actors/character/header.hbs @@ -87,9 +87,9 @@ {{#if document.system.class.value}}
- {{#each document.system.class.value.system.domains as |domain|}} + {{#each document.system.class.value.system.domainData as |data|}}
- +
{{/each}}
From ea9e787382bdb4ced2757fd3f0f2073a6e67ef0b Mon Sep 17 00:00:00 2001 From: WBHarry Date: Sun, 10 Aug 2025 10:43:20 +0200 Subject: [PATCH 05/17] Updated Weapons --- module/config/itemConfig.mjs | 22 ++++++- .../weapon_Aantari_Bow_ijodu5yNBoMxpkHV.json | 35 ++++++----- ...ane_Frame_Wheelchair_la3sAWgnvadc4NvP.json | 33 +++++++---- ..._Advanced_Broadsword_WtQAGz0TUgz8Xg70.json | 35 ++++++----- ...dvanced_Small_Dagger_0thN0BpN05KT8Avx.json | 33 +++++++---- ...ane_Frame_Wheelchair_XRChepscgr75Uug7.json | 35 ++++++----- .../weapon_Broadsword_1cwWNt4sqlgA8gCT.json | 35 ++++++----- ...ane_Frame_Wheelchair_N9P695V5KKlJbAY5.json | 33 +++++++---- ..._Improved_Broadsword_OcKeLJxvmdT81VBc.json | 35 ++++++----- ..._Improved_Shortsword_rSyBNRwemBVuTo3H.json | 33 +++++++---- ...mproved_Small_Dagger_nMuF8ZDZ2aXZVTg6.json | 33 +++++++---- ...eapon_Keeper_s_Staff_q382JqMkqLaaFLIr.json | 35 ++++++----- ...weapon_Knuckle_Claws_SFqganS8Du4aEKjQ.json | 59 +++---------------- ...ane_Frame_Wheelchair_gA2tiET9VHGhwMoO.json | 33 +++++++---- ...Legendary_Broadsword_y3hfTPfZhMognyaJ.json | 35 ++++++----- ...Legendary_Shortsword_dEumq3BIZBk5xYTk.json | 33 +++++++---- ...gendary_Small_Dagger_Px3Rh3kIvAqyISxJ.json | 33 +++++++---- .../weapon_Primer_Shard_SxcblanBvqaest3A.json | 19 +++--- .../weapon_Shortsword_cjGZpXCoshEqi1FI.json | 33 +++++++---- .../weapon_Small_Dagger_wKklDxs5nkzILNp4.json | 33 +++++++---- ...weapon_Spiked_Shield_vzyzFwLUniWZV1rt.json | 33 +++++++---- .../weapon_Thistlebow_I1nDGpulg29GpWOW.json | 35 ++++++----- .../weapon_War_Scythe_z6yEdFYQJ5IzgTX3.json | 35 ++++++----- 23 files changed, 450 insertions(+), 328 deletions(-) diff --git a/module/config/itemConfig.mjs b/module/config/itemConfig.mjs index 296dc927..cb244469 100644 --- a/module/config/itemConfig.mjs +++ b/module/config/itemConfig.mjs @@ -780,7 +780,15 @@ export const weaponFeatures = { mode: 2, value: '1' } - ] + ], + system: { + rangeDependence: { + enabled: true, + range: 'melee', + target: 'hostile', + type: 'withinRange' + } + } } ] }, @@ -1079,7 +1087,15 @@ export const weaponFeatures = { mode: 2, value: 'ITEM.@system.tier + 1' } - ] + ], + system: { + rangeDependence: { + enabled: true, + range: 'melee', + target: 'hostile', + type: 'withinRange' + } + } } ] }, @@ -1208,7 +1224,7 @@ export const weaponFeatures = { img: 'icons/skills/melee/strike-sword-slashing-red.webp', changes: [ { - key: 'system.bonuses.roll.primaryWeapon.attack', + key: 'system.bonuses.roll.primaryWeapon.bonus', mode: 2, value: 1 } diff --git a/src/packs/items/weapons/weapon_Aantari_Bow_ijodu5yNBoMxpkHV.json b/src/packs/items/weapons/weapon_Aantari_Bow_ijodu5yNBoMxpkHV.json index 16c4b359..0dc1f068 100644 --- a/src/packs/items/weapons/weapon_Aantari_Bow_ijodu5yNBoMxpkHV.json +++ b/src/packs/items/weapons/weapon_Aantari_Bow_ijodu5yNBoMxpkHV.json @@ -16,7 +16,7 @@ { "value": "reliable", "effectIds": [ - "HrbJ0bI7lMAYUCux" + "nRNnU57i7RMJoklC" ], "actionIds": [] } @@ -109,14 +109,21 @@ "img": "icons/skills/melee/strike-sword-slashing-red.webp", "changes": [ { - "key": "system.bonuses.roll.primaryWeapon.attack", + "key": "system.bonuses.roll.primaryWeapon.bonus", "mode": 2, "value": "1" } ], - "_id": "HrbJ0bI7lMAYUCux", + "_id": "nRNnU57i7RMJoklC", "type": "base", - "system": {}, + "system": { + "rangeDependence": { + "enabled": false, + "type": "withinRange", + "target": "hostile", + "range": "melee" + } + }, "disabled": false, "duration": { "startTime": null, @@ -132,14 +139,14 @@ "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.346", + "coreVersion": "13.347", "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1753835307838, - "modifiedTime": 1753835307838, - "lastModifiedBy": "FecEtPuoQh6MpjQ0" + "systemVersion": "1.0.0", + "createdTime": 1754815224718, + "modifiedTime": 1754815224718, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, - "_key": "!items.effects!ijodu5yNBoMxpkHV.HrbJ0bI7lMAYUCux" + "_key": "!items.effects!ijodu5yNBoMxpkHV.nRNnU57i7RMJoklC" } ], "sort": 0, @@ -152,12 +159,12 @@ "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.346", + "coreVersion": "13.347", "systemId": "daggerheart", - "systemVersion": "0.0.1", + "systemVersion": "1.0.0", "createdTime": 1753835285790, - "modifiedTime": 1753835317605, - "lastModifiedBy": "FecEtPuoQh6MpjQ0" + "modifiedTime": 1754815224721, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items!ijodu5yNBoMxpkHV" } diff --git a/src/packs/items/weapons/weapon_Advanced_Arcane_Frame_Wheelchair_la3sAWgnvadc4NvP.json b/src/packs/items/weapons/weapon_Advanced_Arcane_Frame_Wheelchair_la3sAWgnvadc4NvP.json index f0796325..c5edd49f 100644 --- a/src/packs/items/weapons/weapon_Advanced_Arcane_Frame_Wheelchair_la3sAWgnvadc4NvP.json +++ b/src/packs/items/weapons/weapon_Advanced_Arcane_Frame_Wheelchair_la3sAWgnvadc4NvP.json @@ -15,7 +15,7 @@ { "value": "reliable", "effectIds": [ - "G561ymlNGmaFAYFB" + "VnV5X9MBMabhz47b" ], "actionIds": [] } @@ -108,14 +108,21 @@ "img": "icons/skills/melee/strike-sword-slashing-red.webp", "changes": [ { - "key": "system.bonuses.roll.primaryWeapon.attack", + "key": "system.bonuses.roll.primaryWeapon.bonus", "mode": 2, "value": "1" } ], - "_id": "G561ymlNGmaFAYFB", + "_id": "VnV5X9MBMabhz47b", "type": "base", - "system": {}, + "system": { + "rangeDependence": { + "enabled": false, + "type": "withinRange", + "target": "hostile", + "range": "melee" + } + }, "disabled": false, "duration": { "startTime": null, @@ -131,12 +138,14 @@ "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.346", + "coreVersion": "13.347", "systemId": "daggerheart", - "systemVersion": "0.0.1", - "lastModifiedBy": null + "systemVersion": "1.0.0", + "createdTime": 1754815300372, + "modifiedTime": 1754815300372, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, - "_key": "!items.effects!la3sAWgnvadc4NvP.G561ymlNGmaFAYFB" + "_key": "!items.effects!la3sAWgnvadc4NvP.VnV5X9MBMabhz47b" } ], "ownership": { @@ -148,12 +157,12 @@ "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.346", + "coreVersion": "13.347", "systemId": "daggerheart", - "systemVersion": "0.0.1", + "systemVersion": "1.0.0", "createdTime": 1753836715885, - "modifiedTime": 1753836789197, - "lastModifiedBy": "FecEtPuoQh6MpjQ0" + "modifiedTime": 1754815300375, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "la3sAWgnvadc4NvP", "sort": 0, diff --git a/src/packs/items/weapons/weapon_Advanced_Broadsword_WtQAGz0TUgz8Xg70.json b/src/packs/items/weapons/weapon_Advanced_Broadsword_WtQAGz0TUgz8Xg70.json index ad5ad7ae..19a6d9bf 100644 --- a/src/packs/items/weapons/weapon_Advanced_Broadsword_WtQAGz0TUgz8Xg70.json +++ b/src/packs/items/weapons/weapon_Advanced_Broadsword_WtQAGz0TUgz8Xg70.json @@ -16,7 +16,7 @@ { "value": "reliable", "effectIds": [ - "fRPKHzbKRz4yTHAF" + "wu2AmDvgeWI3hmRQ" ], "actionIds": [] } @@ -109,14 +109,21 @@ "img": "icons/skills/melee/strike-sword-slashing-red.webp", "changes": [ { - "key": "system.bonuses.roll.primaryWeapon.attack", + "key": "system.bonuses.roll.primaryWeapon.bonus", "mode": 2, "value": "1" } ], - "_id": "fRPKHzbKRz4yTHAF", + "_id": "wu2AmDvgeWI3hmRQ", "type": "base", - "system": {}, + "system": { + "rangeDependence": { + "enabled": false, + "type": "withinRange", + "target": "hostile", + "range": "melee" + } + }, "disabled": false, "duration": { "startTime": null, @@ -132,14 +139,14 @@ "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.346", + "coreVersion": "13.347", "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1753831629563, - "modifiedTime": 1753831629563, - "lastModifiedBy": "FecEtPuoQh6MpjQ0" + "systemVersion": "1.0.0", + "createdTime": 1754814950116, + "modifiedTime": 1754814950116, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, - "_key": "!items.effects!WtQAGz0TUgz8Xg70.fRPKHzbKRz4yTHAF" + "_key": "!items.effects!WtQAGz0TUgz8Xg70.wu2AmDvgeWI3hmRQ" } ], "sort": 0, @@ -152,12 +159,12 @@ "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.346", + "coreVersion": "13.347", "systemId": "daggerheart", - "systemVersion": "0.0.1", + "systemVersion": "1.0.0", "createdTime": 1753831599435, - "modifiedTime": 1753831629573, - "lastModifiedBy": "FecEtPuoQh6MpjQ0" + "modifiedTime": 1754814950120, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items!WtQAGz0TUgz8Xg70" } diff --git a/src/packs/items/weapons/weapon_Advanced_Small_Dagger_0thN0BpN05KT8Avx.json b/src/packs/items/weapons/weapon_Advanced_Small_Dagger_0thN0BpN05KT8Avx.json index cf3ae063..bfcef598 100644 --- a/src/packs/items/weapons/weapon_Advanced_Small_Dagger_0thN0BpN05KT8Avx.json +++ b/src/packs/items/weapons/weapon_Advanced_Small_Dagger_0thN0BpN05KT8Avx.json @@ -16,7 +16,7 @@ { "value": "paired", "effectIds": [ - "gJ7Ey9CfPZqYgxEO" + "MYgB3v3oQ5lIr3VE" ], "actionIds": [] } @@ -114,9 +114,16 @@ "value": "ITEM.@system.tier + 1" } ], - "_id": "gJ7Ey9CfPZqYgxEO", + "system": { + "rangeDependence": { + "enabled": true, + "range": "melee", + "target": "hostile", + "type": "withinRange" + } + }, + "_id": "MYgB3v3oQ5lIr3VE", "type": "base", - "system": {}, "disabled": false, "duration": { "startTime": null, @@ -132,14 +139,14 @@ "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.346", + "coreVersion": "13.347", "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1753794991410, - "modifiedTime": 1753794991410, - "lastModifiedBy": "FecEtPuoQh6MpjQ0" + "systemVersion": "1.0.0", + "createdTime": 1754814673988, + "modifiedTime": 1754814673988, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, - "_key": "!items.effects!0thN0BpN05KT8Avx.gJ7Ey9CfPZqYgxEO" + "_key": "!items.effects!0thN0BpN05KT8Avx.MYgB3v3oQ5lIr3VE" } ], "sort": 0, @@ -152,12 +159,12 @@ "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.346", + "coreVersion": "13.347", "systemId": "daggerheart", - "systemVersion": "0.0.1", + "systemVersion": "1.0.0", "createdTime": 1753794938643, - "modifiedTime": 1753794991413, - "lastModifiedBy": "FecEtPuoQh6MpjQ0" + "modifiedTime": 1754814673991, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items!0thN0BpN05KT8Avx" } diff --git a/src/packs/items/weapons/weapon_Arcane_Frame_Wheelchair_XRChepscgr75Uug7.json b/src/packs/items/weapons/weapon_Arcane_Frame_Wheelchair_XRChepscgr75Uug7.json index 6d18e14c..49e052b7 100644 --- a/src/packs/items/weapons/weapon_Arcane_Frame_Wheelchair_XRChepscgr75Uug7.json +++ b/src/packs/items/weapons/weapon_Arcane_Frame_Wheelchair_XRChepscgr75Uug7.json @@ -16,7 +16,7 @@ { "value": "reliable", "effectIds": [ - "G561ymlNGmaFAYFB" + "dXHsy9qr5FWZqsVq" ], "actionIds": [] } @@ -109,14 +109,21 @@ "img": "icons/skills/melee/strike-sword-slashing-red.webp", "changes": [ { - "key": "system.bonuses.roll.primaryWeapon.attack", + "key": "system.bonuses.roll.primaryWeapon.bonus", "mode": 2, "value": "1" } ], - "_id": "G561ymlNGmaFAYFB", + "_id": "dXHsy9qr5FWZqsVq", "type": "base", - "system": {}, + "system": { + "rangeDependence": { + "enabled": false, + "type": "withinRange", + "target": "hostile", + "range": "melee" + } + }, "disabled": false, "duration": { "startTime": null, @@ -132,14 +139,14 @@ "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.346", + "coreVersion": "13.347", "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1753836707582, - "modifiedTime": 1753836707582, - "lastModifiedBy": "FecEtPuoQh6MpjQ0" + "systemVersion": "1.0.0", + "createdTime": 1754815278217, + "modifiedTime": 1754815278217, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, - "_key": "!items.effects!XRChepscgr75Uug7.G561ymlNGmaFAYFB" + "_key": "!items.effects!XRChepscgr75Uug7.dXHsy9qr5FWZqsVq" } ], "sort": 0, @@ -152,12 +159,12 @@ "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.346", + "coreVersion": "13.347", "systemId": "daggerheart", - "systemVersion": "0.0.1", + "systemVersion": "1.0.0", "createdTime": 1753836689082, - "modifiedTime": 1753836707594, - "lastModifiedBy": "FecEtPuoQh6MpjQ0" + "modifiedTime": 1754815278220, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items!XRChepscgr75Uug7" } diff --git a/src/packs/items/weapons/weapon_Broadsword_1cwWNt4sqlgA8gCT.json b/src/packs/items/weapons/weapon_Broadsword_1cwWNt4sqlgA8gCT.json index 1934036f..959a8547 100644 --- a/src/packs/items/weapons/weapon_Broadsword_1cwWNt4sqlgA8gCT.json +++ b/src/packs/items/weapons/weapon_Broadsword_1cwWNt4sqlgA8gCT.json @@ -16,7 +16,7 @@ { "value": "reliable", "effectIds": [ - "GNwIa1EAaa0T0RZi" + "mqcpj2cFAprf2AmY" ], "actionIds": [] } @@ -109,14 +109,21 @@ "img": "icons/skills/melee/strike-sword-slashing-red.webp", "changes": [ { - "key": "system.bonuses.roll.primaryWeapon.attack", + "key": "system.bonuses.roll.primaryWeapon.bonus", "mode": 2, "value": "1" } ], - "_id": "GNwIa1EAaa0T0RZi", + "_id": "mqcpj2cFAprf2AmY", "type": "base", - "system": {}, + "system": { + "rangeDependence": { + "enabled": false, + "type": "withinRange", + "target": "hostile", + "range": "melee" + } + }, "disabled": false, "duration": { "startTime": null, @@ -132,14 +139,14 @@ "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.346", + "coreVersion": "13.347", "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1753827762112, - "modifiedTime": 1753827762112, - "lastModifiedBy": "FecEtPuoQh6MpjQ0" + "systemVersion": "1.0.0", + "createdTime": 1754814769818, + "modifiedTime": 1754814769818, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, - "_key": "!items.effects!1cwWNt4sqlgA8gCT.GNwIa1EAaa0T0RZi" + "_key": "!items.effects!1cwWNt4sqlgA8gCT.mqcpj2cFAprf2AmY" } ], "sort": 0, @@ -152,12 +159,12 @@ "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.346", + "coreVersion": "13.347", "systemId": "daggerheart", - "systemVersion": "0.0.1", + "systemVersion": "1.0.0", "createdTime": 1753827734892, - "modifiedTime": 1753827762118, - "lastModifiedBy": "FecEtPuoQh6MpjQ0" + "modifiedTime": 1754814769821, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items!1cwWNt4sqlgA8gCT" } diff --git a/src/packs/items/weapons/weapon_Improved_Arcane_Frame_Wheelchair_N9P695V5KKlJbAY5.json b/src/packs/items/weapons/weapon_Improved_Arcane_Frame_Wheelchair_N9P695V5KKlJbAY5.json index 36070ae1..e28a9c44 100644 --- a/src/packs/items/weapons/weapon_Improved_Arcane_Frame_Wheelchair_N9P695V5KKlJbAY5.json +++ b/src/packs/items/weapons/weapon_Improved_Arcane_Frame_Wheelchair_N9P695V5KKlJbAY5.json @@ -15,7 +15,7 @@ { "value": "reliable", "effectIds": [ - "G561ymlNGmaFAYFB" + "1f6fFhOLwZrmA6e5" ], "actionIds": [] } @@ -108,14 +108,21 @@ "img": "icons/skills/melee/strike-sword-slashing-red.webp", "changes": [ { - "key": "system.bonuses.roll.primaryWeapon.attack", + "key": "system.bonuses.roll.primaryWeapon.bonus", "mode": 2, "value": "1" } ], - "_id": "G561ymlNGmaFAYFB", + "_id": "1f6fFhOLwZrmA6e5", "type": "base", - "system": {}, + "system": { + "rangeDependence": { + "enabled": false, + "type": "withinRange", + "target": "hostile", + "range": "melee" + } + }, "disabled": false, "duration": { "startTime": null, @@ -131,12 +138,14 @@ "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.346", + "coreVersion": "13.347", "systemId": "daggerheart", - "systemVersion": "0.0.1", - "lastModifiedBy": null + "systemVersion": "1.0.0", + "createdTime": 1754815290648, + "modifiedTime": 1754815290648, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, - "_key": "!items.effects!N9P695V5KKlJbAY5.G561ymlNGmaFAYFB" + "_key": "!items.effects!N9P695V5KKlJbAY5.1f6fFhOLwZrmA6e5" } ], "ownership": { @@ -148,12 +157,12 @@ "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.346", + "coreVersion": "13.347", "systemId": "daggerheart", - "systemVersion": "0.0.1", + "systemVersion": "1.0.0", "createdTime": 1753836714712, - "modifiedTime": 1753836748404, - "lastModifiedBy": "FecEtPuoQh6MpjQ0" + "modifiedTime": 1754815290653, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "N9P695V5KKlJbAY5", "sort": 0, diff --git a/src/packs/items/weapons/weapon_Improved_Broadsword_OcKeLJxvmdT81VBc.json b/src/packs/items/weapons/weapon_Improved_Broadsword_OcKeLJxvmdT81VBc.json index dad2f4db..69e46858 100644 --- a/src/packs/items/weapons/weapon_Improved_Broadsword_OcKeLJxvmdT81VBc.json +++ b/src/packs/items/weapons/weapon_Improved_Broadsword_OcKeLJxvmdT81VBc.json @@ -16,7 +16,7 @@ { "value": "reliable", "effectIds": [ - "xU0DD5ydbwmXMKtF" + "228lcQpohdJ3Bbga" ], "actionIds": [] } @@ -109,14 +109,21 @@ "img": "icons/skills/melee/strike-sword-slashing-red.webp", "changes": [ { - "key": "system.bonuses.roll.primaryWeapon.attack", + "key": "system.bonuses.roll.primaryWeapon.bonus", "mode": 2, "value": "1" } ], - "_id": "xU0DD5ydbwmXMKtF", + "_id": "228lcQpohdJ3Bbga", "type": "base", - "system": {}, + "system": { + "rangeDependence": { + "enabled": false, + "type": "withinRange", + "target": "hostile", + "range": "melee" + } + }, "disabled": false, "duration": { "startTime": null, @@ -132,14 +139,14 @@ "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.346", + "coreVersion": "13.347", "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1753829126416, - "modifiedTime": 1753829126416, - "lastModifiedBy": "FecEtPuoQh6MpjQ0" + "systemVersion": "1.0.0", + "createdTime": 1754814935810, + "modifiedTime": 1754814935810, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, - "_key": "!items.effects!OcKeLJxvmdT81VBc.xU0DD5ydbwmXMKtF" + "_key": "!items.effects!OcKeLJxvmdT81VBc.228lcQpohdJ3Bbga" } ], "sort": 0, @@ -152,12 +159,12 @@ "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.346", + "coreVersion": "13.347", "systemId": "daggerheart", - "systemVersion": "0.0.1", + "systemVersion": "1.0.0", "createdTime": 1753829098118, - "modifiedTime": 1753829367508, - "lastModifiedBy": "FecEtPuoQh6MpjQ0" + "modifiedTime": 1754814935815, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items!OcKeLJxvmdT81VBc" } diff --git a/src/packs/items/weapons/weapon_Improved_Shortsword_rSyBNRwemBVuTo3H.json b/src/packs/items/weapons/weapon_Improved_Shortsword_rSyBNRwemBVuTo3H.json index 65f03b0b..fb585281 100644 --- a/src/packs/items/weapons/weapon_Improved_Shortsword_rSyBNRwemBVuTo3H.json +++ b/src/packs/items/weapons/weapon_Improved_Shortsword_rSyBNRwemBVuTo3H.json @@ -16,7 +16,7 @@ { "value": "paired", "effectIds": [ - "cSmiIOXeuw0xpjel" + "9iHHwd9BxkBsV9lY" ], "actionIds": [] } @@ -114,9 +114,16 @@ "value": "ITEM.@system.tier + 1" } ], - "_id": "cSmiIOXeuw0xpjel", + "system": { + "rangeDependence": { + "enabled": true, + "range": "melee", + "target": "hostile", + "type": "withinRange" + } + }, + "_id": "9iHHwd9BxkBsV9lY", "type": "base", - "system": {}, "disabled": false, "duration": { "startTime": null, @@ -132,14 +139,14 @@ "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.346", + "coreVersion": "13.347", "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1753794021004, - "modifiedTime": 1753794021004, - "lastModifiedBy": "FecEtPuoQh6MpjQ0" + "systemVersion": "1.0.0", + "createdTime": 1754814695260, + "modifiedTime": 1754814695260, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, - "_key": "!items.effects!rSyBNRwemBVuTo3H.cSmiIOXeuw0xpjel" + "_key": "!items.effects!rSyBNRwemBVuTo3H.9iHHwd9BxkBsV9lY" } ], "sort": 0, @@ -152,12 +159,12 @@ "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.346", + "coreVersion": "13.347", "systemId": "daggerheart", - "systemVersion": "0.0.1", + "systemVersion": "1.0.0", "createdTime": 1753744566951, - "modifiedTime": 1753794021010, - "lastModifiedBy": "FecEtPuoQh6MpjQ0" + "modifiedTime": 1754814695265, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items!rSyBNRwemBVuTo3H" } diff --git a/src/packs/items/weapons/weapon_Improved_Small_Dagger_nMuF8ZDZ2aXZVTg6.json b/src/packs/items/weapons/weapon_Improved_Small_Dagger_nMuF8ZDZ2aXZVTg6.json index 04379b71..e141fbc2 100644 --- a/src/packs/items/weapons/weapon_Improved_Small_Dagger_nMuF8ZDZ2aXZVTg6.json +++ b/src/packs/items/weapons/weapon_Improved_Small_Dagger_nMuF8ZDZ2aXZVTg6.json @@ -16,7 +16,7 @@ { "value": "paired", "effectIds": [ - "rOjtLkrnI9EZHJm8" + "JHIUGyZH5q83ODvd" ], "actionIds": [] } @@ -114,9 +114,16 @@ "value": "ITEM.@system.tier + 1" } ], - "_id": "rOjtLkrnI9EZHJm8", + "system": { + "rangeDependence": { + "enabled": true, + "range": "melee", + "target": "hostile", + "type": "withinRange" + } + }, + "_id": "JHIUGyZH5q83ODvd", "type": "base", - "system": {}, "disabled": false, "duration": { "startTime": null, @@ -132,14 +139,14 @@ "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.346", + "coreVersion": "13.347", "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1753794340876, - "modifiedTime": 1753794340876, - "lastModifiedBy": "FecEtPuoQh6MpjQ0" + "systemVersion": "1.0.0", + "createdTime": 1754814703717, + "modifiedTime": 1754814703717, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, - "_key": "!items.effects!nMuF8ZDZ2aXZVTg6.rOjtLkrnI9EZHJm8" + "_key": "!items.effects!nMuF8ZDZ2aXZVTg6.JHIUGyZH5q83ODvd" } ], "sort": 0, @@ -152,12 +159,12 @@ "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.346", + "coreVersion": "13.347", "systemId": "daggerheart", - "systemVersion": "0.0.1", + "systemVersion": "1.0.0", "createdTime": 1753794291887, - "modifiedTime": 1753794340879, - "lastModifiedBy": "FecEtPuoQh6MpjQ0" + "modifiedTime": 1754814703719, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items!nMuF8ZDZ2aXZVTg6" } diff --git a/src/packs/items/weapons/weapon_Keeper_s_Staff_q382JqMkqLaaFLIr.json b/src/packs/items/weapons/weapon_Keeper_s_Staff_q382JqMkqLaaFLIr.json index c7b5c32f..d934731d 100644 --- a/src/packs/items/weapons/weapon_Keeper_s_Staff_q382JqMkqLaaFLIr.json +++ b/src/packs/items/weapons/weapon_Keeper_s_Staff_q382JqMkqLaaFLIr.json @@ -16,7 +16,7 @@ { "value": "reliable", "effectIds": [ - "FlmOrbhYbieIAVJL" + "LvxPAfrKuRfgubGV" ], "actionIds": [] } @@ -109,14 +109,21 @@ "img": "icons/skills/melee/strike-sword-slashing-red.webp", "changes": [ { - "key": "system.bonuses.roll.primaryWeapon.attack", + "key": "system.bonuses.roll.primaryWeapon.bonus", "mode": 2, "value": "1" } ], - "_id": "FlmOrbhYbieIAVJL", + "_id": "LvxPAfrKuRfgubGV", "type": "base", - "system": {}, + "system": { + "rangeDependence": { + "enabled": false, + "type": "withinRange", + "target": "hostile", + "range": "melee" + } + }, "disabled": false, "duration": { "startTime": null, @@ -132,14 +139,14 @@ "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.346", + "coreVersion": "13.347", "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1753831441325, - "modifiedTime": 1753831441325, - "lastModifiedBy": "FecEtPuoQh6MpjQ0" + "systemVersion": "1.0.0", + "createdTime": 1754815023490, + "modifiedTime": 1754815023490, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, - "_key": "!items.effects!q382JqMkqLaaFLIr.FlmOrbhYbieIAVJL" + "_key": "!items.effects!q382JqMkqLaaFLIr.LvxPAfrKuRfgubGV" } ], "sort": 0, @@ -152,12 +159,12 @@ "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.346", + "coreVersion": "13.347", "systemId": "daggerheart", - "systemVersion": "0.0.1", + "systemVersion": "1.0.0", "createdTime": 1753831418620, - "modifiedTime": 1753831441332, - "lastModifiedBy": "FecEtPuoQh6MpjQ0" + "modifiedTime": 1754815023493, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items!q382JqMkqLaaFLIr" } diff --git a/src/packs/items/weapons/weapon_Knuckle_Claws_SFqganS8Du4aEKjQ.json b/src/packs/items/weapons/weapon_Knuckle_Claws_SFqganS8Du4aEKjQ.json index c65353db..f2f53dc7 100644 --- a/src/packs/items/weapons/weapon_Knuckle_Claws_SFqganS8Du4aEKjQ.json +++ b/src/packs/items/weapons/weapon_Knuckle_Claws_SFqganS8Du4aEKjQ.json @@ -7,63 +7,22 @@ "system": { "description": "", "actions": { - "fRKcEeShWSLkoExh": { + "B0uT1D1WRidiHxyh": { "type": "effect", "actionType": "action", "chatDisplay": true, "name": "Double Up", "description": "When you make an attack with your primary weapon, you can deal damage to another target within Melee range.", "img": "icons/skills/melee/strike-slashes-orange.webp", - "_id": "fRKcEeShWSLkoExh", + "_id": "B0uT1D1WRidiHxyh", "effects": [], "systemPath": "actions", "cost": [], "uses": { "value": null, "max": null, - "recovery": null - }, - "target": { - "type": "any", - "amount": null - } - }, - "lVsEmJwjYgpYL9l4": { - "type": "effect", - "actionType": "action", - "chatDisplay": true, - "name": "Double Up", - "description": "When you make an attack with your primary weapon, you can deal damage to another target within Melee range.", - "img": "icons/skills/melee/strike-slashes-orange.webp", - "_id": "lVsEmJwjYgpYL9l4", - "effects": [], - "systemPath": "actions", - "cost": [], - "uses": { - "value": null, - "max": null, - "recovery": null - }, - "target": { - "type": "any", - "amount": null - } - }, - "2ndqofzTHsEUMxsm": { - "type": "effect", - "actionType": "action", - "chatDisplay": true, - "name": "Double Up", - "description": "When you make an attack with your primary weapon, you can deal damage to another target within Melee range.", - "img": "icons/skills/melee/strike-slashes-orange.webp", - "_id": "2ndqofzTHsEUMxsm", - "effects": [], - "systemPath": "actions", - "cost": [], - "uses": { - "value": null, - "max": null, - "recovery": null + "recovery": null, + "consumeOnSuccess": false }, "target": { "type": "any", @@ -81,7 +40,7 @@ "value": "doubledUp", "effectIds": [], "actionIds": [ - "2ndqofzTHsEUMxsm" + "B0uT1D1WRidiHxyh" ] } ], @@ -177,12 +136,12 @@ "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.346", + "coreVersion": "13.347", "systemId": "daggerheart", - "systemVersion": "0.0.1", + "systemVersion": "1.0.0", "createdTime": 1753797258168, - "modifiedTime": 1753798882899, - "lastModifiedBy": "FecEtPuoQh6MpjQ0" + "modifiedTime": 1754814600761, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items!SFqganS8Du4aEKjQ" } diff --git a/src/packs/items/weapons/weapon_Legendary_Arcane_Frame_Wheelchair_gA2tiET9VHGhwMoO.json b/src/packs/items/weapons/weapon_Legendary_Arcane_Frame_Wheelchair_gA2tiET9VHGhwMoO.json index 16211d24..a431d0c6 100644 --- a/src/packs/items/weapons/weapon_Legendary_Arcane_Frame_Wheelchair_gA2tiET9VHGhwMoO.json +++ b/src/packs/items/weapons/weapon_Legendary_Arcane_Frame_Wheelchair_gA2tiET9VHGhwMoO.json @@ -15,7 +15,7 @@ { "value": "reliable", "effectIds": [ - "G561ymlNGmaFAYFB" + "TvsoAiqHCwgtYat1" ], "actionIds": [] } @@ -108,14 +108,21 @@ "img": "icons/skills/melee/strike-sword-slashing-red.webp", "changes": [ { - "key": "system.bonuses.roll.primaryWeapon.attack", + "key": "system.bonuses.roll.primaryWeapon.bonus", "mode": 2, "value": "1" } ], - "_id": "G561ymlNGmaFAYFB", + "_id": "TvsoAiqHCwgtYat1", "type": "base", - "system": {}, + "system": { + "rangeDependence": { + "enabled": false, + "type": "withinRange", + "target": "hostile", + "range": "melee" + } + }, "disabled": false, "duration": { "startTime": null, @@ -131,12 +138,14 @@ "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.346", + "coreVersion": "13.347", "systemId": "daggerheart", - "systemVersion": "0.0.1", - "lastModifiedBy": null + "systemVersion": "1.0.0", + "createdTime": 1754815308723, + "modifiedTime": 1754815308723, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, - "_key": "!items.effects!gA2tiET9VHGhwMoO.G561ymlNGmaFAYFB" + "_key": "!items.effects!gA2tiET9VHGhwMoO.TvsoAiqHCwgtYat1" } ], "ownership": { @@ -148,12 +157,12 @@ "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.346", + "coreVersion": "13.347", "systemId": "daggerheart", - "systemVersion": "0.0.1", + "systemVersion": "1.0.0", "createdTime": 1753836717240, - "modifiedTime": 1753836812453, - "lastModifiedBy": "FecEtPuoQh6MpjQ0" + "modifiedTime": 1754815308726, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "gA2tiET9VHGhwMoO", "sort": 0, diff --git a/src/packs/items/weapons/weapon_Legendary_Broadsword_y3hfTPfZhMognyaJ.json b/src/packs/items/weapons/weapon_Legendary_Broadsword_y3hfTPfZhMognyaJ.json index ca0622de..32d19734 100644 --- a/src/packs/items/weapons/weapon_Legendary_Broadsword_y3hfTPfZhMognyaJ.json +++ b/src/packs/items/weapons/weapon_Legendary_Broadsword_y3hfTPfZhMognyaJ.json @@ -16,7 +16,7 @@ { "value": "reliable", "effectIds": [ - "lmUzKw6J6RW3krRT" + "ujb6VAqjyXmfnnjy" ], "actionIds": [] } @@ -109,14 +109,21 @@ "img": "icons/skills/melee/strike-sword-slashing-red.webp", "changes": [ { - "key": "system.bonuses.roll.primaryWeapon.attack", + "key": "system.bonuses.roll.primaryWeapon.bonus", "mode": 2, "value": "1" } ], - "_id": "lmUzKw6J6RW3krRT", + "_id": "ujb6VAqjyXmfnnjy", "type": "base", - "system": {}, + "system": { + "rangeDependence": { + "enabled": false, + "type": "withinRange", + "target": "hostile", + "range": "melee" + } + }, "disabled": false, "duration": { "startTime": null, @@ -132,14 +139,14 @@ "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.346", + "coreVersion": "13.347", "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1753834461846, - "modifiedTime": 1753834461846, - "lastModifiedBy": "FecEtPuoQh6MpjQ0" + "systemVersion": "1.0.0", + "createdTime": 1754814961439, + "modifiedTime": 1754814961439, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, - "_key": "!items.effects!y3hfTPfZhMognyaJ.lmUzKw6J6RW3krRT" + "_key": "!items.effects!y3hfTPfZhMognyaJ.ujb6VAqjyXmfnnjy" } ], "sort": 0, @@ -152,12 +159,12 @@ "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.346", + "coreVersion": "13.347", "systemId": "daggerheart", - "systemVersion": "0.0.1", + "systemVersion": "1.0.0", "createdTime": 1753834430378, - "modifiedTime": 1753834465538, - "lastModifiedBy": "FecEtPuoQh6MpjQ0" + "modifiedTime": 1754814961454, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items!y3hfTPfZhMognyaJ" } diff --git a/src/packs/items/weapons/weapon_Legendary_Shortsword_dEumq3BIZBk5xYTk.json b/src/packs/items/weapons/weapon_Legendary_Shortsword_dEumq3BIZBk5xYTk.json index 2f832ee7..5f6f6cb2 100644 --- a/src/packs/items/weapons/weapon_Legendary_Shortsword_dEumq3BIZBk5xYTk.json +++ b/src/packs/items/weapons/weapon_Legendary_Shortsword_dEumq3BIZBk5xYTk.json @@ -16,7 +16,7 @@ { "value": "paired", "effectIds": [ - "DgZQSBJx9JmoOngB" + "VFt61c2Apfbli2dG" ], "actionIds": [] } @@ -114,9 +114,16 @@ "value": "ITEM.@system.tier + 1" } ], - "_id": "DgZQSBJx9JmoOngB", + "system": { + "rangeDependence": { + "enabled": true, + "range": "melee", + "target": "hostile", + "type": "withinRange" + } + }, + "_id": "VFt61c2Apfbli2dG", "type": "base", - "system": {}, "disabled": false, "duration": { "startTime": null, @@ -132,14 +139,14 @@ "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.346", + "coreVersion": "13.347", "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1753796957432, - "modifiedTime": 1753796957432, - "lastModifiedBy": "FecEtPuoQh6MpjQ0" + "systemVersion": "1.0.0", + "createdTime": 1754814544486, + "modifiedTime": 1754814544486, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, - "_key": "!items.effects!dEumq3BIZBk5xYTk.DgZQSBJx9JmoOngB" + "_key": "!items.effects!dEumq3BIZBk5xYTk.VFt61c2Apfbli2dG" } ], "sort": 0, @@ -152,12 +159,12 @@ "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.346", + "coreVersion": "13.347", "systemId": "daggerheart", - "systemVersion": "0.0.1", + "systemVersion": "1.0.0", "createdTime": 1753796913551, - "modifiedTime": 1753796957439, - "lastModifiedBy": "FecEtPuoQh6MpjQ0" + "modifiedTime": 1754814544510, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items!dEumq3BIZBk5xYTk" } diff --git a/src/packs/items/weapons/weapon_Legendary_Small_Dagger_Px3Rh3kIvAqyISxJ.json b/src/packs/items/weapons/weapon_Legendary_Small_Dagger_Px3Rh3kIvAqyISxJ.json index be3a5886..855ddd80 100644 --- a/src/packs/items/weapons/weapon_Legendary_Small_Dagger_Px3Rh3kIvAqyISxJ.json +++ b/src/packs/items/weapons/weapon_Legendary_Small_Dagger_Px3Rh3kIvAqyISxJ.json @@ -16,7 +16,7 @@ { "value": "paired", "effectIds": [ - "Wjl3MEwNdQPeY63u" + "rnVm0jSEtdWhKGCh" ], "actionIds": [] } @@ -114,9 +114,16 @@ "value": "ITEM.@system.tier + 1" } ], - "_id": "Wjl3MEwNdQPeY63u", + "system": { + "rangeDependence": { + "enabled": true, + "range": "melee", + "target": "hostile", + "type": "withinRange" + } + }, + "_id": "rnVm0jSEtdWhKGCh", "type": "base", - "system": {}, "disabled": false, "duration": { "startTime": null, @@ -132,14 +139,14 @@ "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.346", + "coreVersion": "13.347", "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1753797088930, - "modifiedTime": 1753797088930, - "lastModifiedBy": "FecEtPuoQh6MpjQ0" + "systemVersion": "1.0.0", + "createdTime": 1754814562988, + "modifiedTime": 1754814562988, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, - "_key": "!items.effects!Px3Rh3kIvAqyISxJ.Wjl3MEwNdQPeY63u" + "_key": "!items.effects!Px3Rh3kIvAqyISxJ.rnVm0jSEtdWhKGCh" } ], "sort": 0, @@ -152,12 +159,12 @@ "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.346", + "coreVersion": "13.347", "systemId": "daggerheart", - "systemVersion": "0.0.1", + "systemVersion": "1.0.0", "createdTime": 1753797057472, - "modifiedTime": 1753797088933, - "lastModifiedBy": "FecEtPuoQh6MpjQ0" + "modifiedTime": 1754814562995, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items!Px3Rh3kIvAqyISxJ" } diff --git a/src/packs/items/weapons/weapon_Primer_Shard_SxcblanBvqaest3A.json b/src/packs/items/weapons/weapon_Primer_Shard_SxcblanBvqaest3A.json index 2b39a221..e3dd3035 100644 --- a/src/packs/items/weapons/weapon_Primer_Shard_SxcblanBvqaest3A.json +++ b/src/packs/items/weapons/weapon_Primer_Shard_SxcblanBvqaest3A.json @@ -7,21 +7,22 @@ "system": { "description": "", "actions": { - "KGJJgz0SMdY0f0em": { + "dNN2KOfUxGzQ2yjY": { "type": "effect", "actionType": "action", "chatDisplay": true, "name": "Lock On", "description": "On a successful attack, your next attack against the same target with your primary weapon automatically succeeds.", "img": "icons/skills/targeting/crosshair-arrowhead-blue.webp", - "_id": "KGJJgz0SMdY0f0em", + "_id": "dNN2KOfUxGzQ2yjY", "effects": [], "systemPath": "actions", "cost": [], "uses": { "value": null, "max": null, - "recovery": null + "recovery": null, + "consumeOnSuccess": false }, "target": { "type": "any", @@ -36,10 +37,10 @@ "burden": "oneHanded", "weaponFeatures": [ { - "value": "lockedon", + "value": "lockedOn", "effectIds": [], "actionIds": [ - "KGJJgz0SMdY0f0em" + "dNN2KOfUxGzQ2yjY" ] } ], @@ -135,12 +136,12 @@ "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.346", + "coreVersion": "13.347", "systemId": "daggerheart", - "systemVersion": "0.0.1", + "systemVersion": "1.0.0", "createdTime": 1753797317938, - "modifiedTime": 1753797376548, - "lastModifiedBy": "FecEtPuoQh6MpjQ0" + "modifiedTime": 1754814518028, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items!SxcblanBvqaest3A" } diff --git a/src/packs/items/weapons/weapon_Shortsword_cjGZpXCoshEqi1FI.json b/src/packs/items/weapons/weapon_Shortsword_cjGZpXCoshEqi1FI.json index 92cb44b7..31cb74cd 100644 --- a/src/packs/items/weapons/weapon_Shortsword_cjGZpXCoshEqi1FI.json +++ b/src/packs/items/weapons/weapon_Shortsword_cjGZpXCoshEqi1FI.json @@ -16,7 +16,7 @@ { "value": "paired", "effectIds": [ - "VII5oRJrQTsSir0E" + "5RpOUFs0kDhzwltM" ], "actionIds": [] } @@ -114,9 +114,16 @@ "value": "ITEM.@system.tier + 1" } ], - "_id": "VII5oRJrQTsSir0E", + "system": { + "rangeDependence": { + "enabled": true, + "range": "melee", + "target": "hostile", + "type": "withinRange" + } + }, + "_id": "5RpOUFs0kDhzwltM", "type": "base", - "system": {}, "disabled": false, "duration": { "startTime": null, @@ -132,14 +139,14 @@ "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.346", + "coreVersion": "13.347", "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1753793980974, - "modifiedTime": 1753793980974, - "lastModifiedBy": "FecEtPuoQh6MpjQ0" + "systemVersion": "1.0.0", + "createdTime": 1754814729443, + "modifiedTime": 1754814729443, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, - "_key": "!items.effects!cjGZpXCoshEqi1FI.VII5oRJrQTsSir0E" + "_key": "!items.effects!cjGZpXCoshEqi1FI.5RpOUFs0kDhzwltM" } ], "sort": 0, @@ -152,12 +159,12 @@ "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.346", + "coreVersion": "13.347", "systemId": "daggerheart", - "systemVersion": "0.0.1", + "systemVersion": "1.0.0", "createdTime": 1753741549716, - "modifiedTime": 1753793980983, - "lastModifiedBy": "FecEtPuoQh6MpjQ0" + "modifiedTime": 1754814729447, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items!cjGZpXCoshEqi1FI" } diff --git a/src/packs/items/weapons/weapon_Small_Dagger_wKklDxs5nkzILNp4.json b/src/packs/items/weapons/weapon_Small_Dagger_wKklDxs5nkzILNp4.json index 4e9613f6..229162f8 100644 --- a/src/packs/items/weapons/weapon_Small_Dagger_wKklDxs5nkzILNp4.json +++ b/src/packs/items/weapons/weapon_Small_Dagger_wKklDxs5nkzILNp4.json @@ -16,7 +16,7 @@ { "value": "paired", "effectIds": [ - "2OLsxbZJqMgk680J" + "wK6ccFAirp9HYK5Q" ], "actionIds": [] } @@ -114,9 +114,16 @@ "value": "ITEM.@system.tier + 1" } ], - "_id": "2OLsxbZJqMgk680J", + "system": { + "rangeDependence": { + "enabled": true, + "range": "melee", + "target": "hostile", + "type": "withinRange" + } + }, + "_id": "wK6ccFAirp9HYK5Q", "type": "base", - "system": {}, "disabled": false, "duration": { "startTime": null, @@ -132,14 +139,14 @@ "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.346", + "coreVersion": "13.347", "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1753794165509, - "modifiedTime": 1753794165509, - "lastModifiedBy": "FecEtPuoQh6MpjQ0" + "systemVersion": "1.0.0", + "createdTime": 1754814738851, + "modifiedTime": 1754814738851, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, - "_key": "!items.effects!wKklDxs5nkzILNp4.2OLsxbZJqMgk680J" + "_key": "!items.effects!wKklDxs5nkzILNp4.wK6ccFAirp9HYK5Q" } ], "sort": 0, @@ -152,12 +159,12 @@ "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.346", + "coreVersion": "13.347", "systemId": "daggerheart", - "systemVersion": "0.0.1", + "systemVersion": "1.0.0", "createdTime": 1753744141625, - "modifiedTime": 1753794165511, - "lastModifiedBy": "FecEtPuoQh6MpjQ0" + "modifiedTime": 1754814738854, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items!wKklDxs5nkzILNp4" } diff --git a/src/packs/items/weapons/weapon_Spiked_Shield_vzyzFwLUniWZV1rt.json b/src/packs/items/weapons/weapon_Spiked_Shield_vzyzFwLUniWZV1rt.json index 8a40a800..9b9d691a 100644 --- a/src/packs/items/weapons/weapon_Spiked_Shield_vzyzFwLUniWZV1rt.json +++ b/src/packs/items/weapons/weapon_Spiked_Shield_vzyzFwLUniWZV1rt.json @@ -16,7 +16,7 @@ { "value": "doubleDuty", "effectIds": [ - "qo4VPSV0VZha1ya2" + "d3TJtlpoHBCztbom" ], "actionIds": [] } @@ -119,9 +119,16 @@ "value": "1" } ], - "_id": "qo4VPSV0VZha1ya2", + "system": { + "rangeDependence": { + "enabled": true, + "range": "melee", + "target": "hostile", + "type": "withinRange" + } + }, + "_id": "d3TJtlpoHBCztbom", "type": "base", - "system": {}, "disabled": false, "duration": { "startTime": null, @@ -137,14 +144,14 @@ "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.346", + "coreVersion": "13.347", "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1753794551639, - "modifiedTime": 1753794551639, - "lastModifiedBy": "FecEtPuoQh6MpjQ0" + "systemVersion": "1.0.0", + "createdTime": 1754814481208, + "modifiedTime": 1754814481208, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, - "_key": "!items.effects!vzyzFwLUniWZV1rt.qo4VPSV0VZha1ya2" + "_key": "!items.effects!vzyzFwLUniWZV1rt.d3TJtlpoHBCztbom" } ], "sort": 0, @@ -157,12 +164,12 @@ "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.346", + "coreVersion": "13.347", "systemId": "daggerheart", - "systemVersion": "0.0.1", + "systemVersion": "1.0.0", "createdTime": 1753794535926, - "modifiedTime": 1753794665373, - "lastModifiedBy": "FecEtPuoQh6MpjQ0" + "modifiedTime": 1754814481212, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items!vzyzFwLUniWZV1rt" } diff --git a/src/packs/items/weapons/weapon_Thistlebow_I1nDGpulg29GpWOW.json b/src/packs/items/weapons/weapon_Thistlebow_I1nDGpulg29GpWOW.json index ca641ad2..cec5b0d1 100644 --- a/src/packs/items/weapons/weapon_Thistlebow_I1nDGpulg29GpWOW.json +++ b/src/packs/items/weapons/weapon_Thistlebow_I1nDGpulg29GpWOW.json @@ -16,7 +16,7 @@ { "value": "reliable", "effectIds": [ - "YA5tbB6XBISWsf0p" + "G9mMGxBSexwjWTYV" ], "actionIds": [] } @@ -109,14 +109,21 @@ "img": "icons/skills/melee/strike-sword-slashing-red.webp", "changes": [ { - "key": "system.bonuses.roll.primaryWeapon.attack", + "key": "system.bonuses.roll.primaryWeapon.bonus", "mode": 2, "value": "1" } ], - "_id": "YA5tbB6XBISWsf0p", + "_id": "G9mMGxBSexwjWTYV", "type": "base", - "system": {}, + "system": { + "rangeDependence": { + "enabled": false, + "type": "withinRange", + "target": "hostile", + "range": "melee" + } + }, "disabled": false, "duration": { "startTime": null, @@ -132,14 +139,14 @@ "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.346", + "coreVersion": "13.347", "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1753836322206, - "modifiedTime": 1753836322206, - "lastModifiedBy": "FecEtPuoQh6MpjQ0" + "systemVersion": "1.0.0", + "createdTime": 1754815251133, + "modifiedTime": 1754815251133, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, - "_key": "!items.effects!I1nDGpulg29GpWOW.YA5tbB6XBISWsf0p" + "_key": "!items.effects!I1nDGpulg29GpWOW.G9mMGxBSexwjWTYV" } ], "sort": 0, @@ -152,12 +159,12 @@ "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.346", + "coreVersion": "13.347", "systemId": "daggerheart", - "systemVersion": "0.0.1", + "systemVersion": "1.0.0", "createdTime": 1753836302436, - "modifiedTime": 1753836334493, - "lastModifiedBy": "FecEtPuoQh6MpjQ0" + "modifiedTime": 1754815251135, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items!I1nDGpulg29GpWOW" } diff --git a/src/packs/items/weapons/weapon_War_Scythe_z6yEdFYQJ5IzgTX3.json b/src/packs/items/weapons/weapon_War_Scythe_z6yEdFYQJ5IzgTX3.json index 458d8136..5d65a310 100644 --- a/src/packs/items/weapons/weapon_War_Scythe_z6yEdFYQJ5IzgTX3.json +++ b/src/packs/items/weapons/weapon_War_Scythe_z6yEdFYQJ5IzgTX3.json @@ -16,7 +16,7 @@ { "value": "reliable", "effectIds": [ - "Gt0tHtJDQwdSActw" + "cOYeI9TxHXpDwszu" ], "actionIds": [] } @@ -109,14 +109,21 @@ "img": "icons/skills/melee/strike-sword-slashing-red.webp", "changes": [ { - "key": "system.bonuses.roll.primaryWeapon.attack", + "key": "system.bonuses.roll.primaryWeapon.bonus", "mode": 2, "value": "1" } ], - "_id": "Gt0tHtJDQwdSActw", + "_id": "cOYeI9TxHXpDwszu", "type": "base", - "system": {}, + "system": { + "rangeDependence": { + "enabled": false, + "type": "withinRange", + "target": "hostile", + "range": "melee" + } + }, "disabled": false, "duration": { "startTime": null, @@ -132,14 +139,14 @@ "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.346", + "coreVersion": "13.347", "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1753829771677, - "modifiedTime": 1753829771677, - "lastModifiedBy": "FecEtPuoQh6MpjQ0" + "systemVersion": "1.0.0", + "createdTime": 1754814992368, + "modifiedTime": 1754814992368, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, - "_key": "!items.effects!z6yEdFYQJ5IzgTX3.Gt0tHtJDQwdSActw" + "_key": "!items.effects!z6yEdFYQJ5IzgTX3.cOYeI9TxHXpDwszu" } ], "sort": 0, @@ -152,12 +159,12 @@ "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.346", + "coreVersion": "13.347", "systemId": "daggerheart", - "systemVersion": "0.0.1", + "systemVersion": "1.0.0", "createdTime": 1753829740082, - "modifiedTime": 1753829771680, - "lastModifiedBy": "FecEtPuoQh6MpjQ0" + "modifiedTime": 1754814992370, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items!z6yEdFYQJ5IzgTX3" } From 511d46fe0fafdc9ee9b27a5951810d6a9e1098bd Mon Sep 17 00:00:00 2001 From: WBHarry Date: Sun, 10 Aug 2025 11:12:37 +0200 Subject: [PATCH 06/17] Fixed so the decrease button of simple fear tracker is not visible when not hovered --- styles/less/ui/resources/resources.less | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/styles/less/ui/resources/resources.less b/styles/less/ui/resources/resources.less index 1f609c5e..3982d990 100644 --- a/styles/less/ui/resources/resources.less +++ b/styles/less/ui/resources/resources.less @@ -108,7 +108,7 @@ box-shadow: unset; border-color: transparent; header, - .controls, + #resource-fear .controls, .window-resize-handle { opacity: 0; } From 52f940bb5171de7998d5e4e6b4f6e05967b2d9ed Mon Sep 17 00:00:00 2001 From: WBHarry Date: Sun, 10 Aug 2025 11:35:18 +0200 Subject: [PATCH 07/17] Fixed so armor preUpdate doesn't fail if no system changes are made --- module/data/item/armor.mjs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/module/data/item/armor.mjs b/module/data/item/armor.mjs index 01e1d186..a8c3dcec 100644 --- a/module/data/item/armor.mjs +++ b/module/data/item/armor.mjs @@ -60,7 +60,7 @@ export default class DHArmor extends AttachableItem { const allowed = await super._preUpdate(changes, options, user); if (allowed === false) return false; - if (changes.system.armorFeatures) { + if (changes.system?.armorFeatures) { const removed = this.armorFeatures.filter(x => !changes.system.armorFeatures.includes(x)); const added = changes.system.armorFeatures.filter(x => !this.armorFeatures.includes(x)); From c7ec2eb5ac232af46c0cbdd457d827085545c479 Mon Sep 17 00:00:00 2001 From: Chris Ryan <73275196+chrisryan10@users.noreply.github.com> Date: Sun, 10 Aug 2025 21:28:04 +1000 Subject: [PATCH 08/17] Updated .gitignore and author details (#777) * Add author details and name mapping for chrisryan10 (#773) Co-authored-by: Chris Ryan * Add build to ignore for my linux dev (#775) Co-authored-by: Chris Ryan --------- Co-authored-by: Chris Ryan --- .gitignore | 3 ++- system.json | 4 ++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 61c6b176..264581a4 100644 --- a/.gitignore +++ b/.gitignore @@ -2,5 +2,6 @@ node_modules /packs Build +build foundry -styles/daggerheart.css \ No newline at end of file +styles/daggerheart.css diff --git a/system.json b/system.json index cde902c1..a0c91923 100644 --- a/system.json +++ b/system.json @@ -44,6 +44,10 @@ "url": "https://github.com/joaquinpereyra98", "email": "joaquinpereyra98@gmail.com", "discord": "joaquinp98" + }, + { + "name": "chrisryan10", + "discord": "lazjen" } ], "esmodules": ["build/daggerheart.js"], From a038d4c2549b594a5ca0d398f5920dea8a574460 Mon Sep 17 00:00:00 2001 From: WBHarry <89362246+WBHarry@users.noreply.github.com> Date: Sun, 10 Aug 2025 14:05:43 +0200 Subject: [PATCH 09/17] Corrected sneak attack active effect (#780) --- src/packs/classes/feature_Sneak_Attack_5QqpEwmwkPfZHpMW.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/packs/classes/feature_Sneak_Attack_5QqpEwmwkPfZHpMW.json b/src/packs/classes/feature_Sneak_Attack_5QqpEwmwkPfZHpMW.json index a0e98763..ec203e9a 100644 --- a/src/packs/classes/feature_Sneak_Attack_5QqpEwmwkPfZHpMW.json +++ b/src/packs/classes/feature_Sneak_Attack_5QqpEwmwkPfZHpMW.json @@ -59,13 +59,13 @@ { "key": "system.bonuses.damage.physical.dice", "mode": 2, - "value": "@system.tierd6", + "value": "@tierd6", "priority": null }, { "key": "system.bonuses.damage.magical.dice", "mode": 2, - "value": "@system.tierd6", + "value": "@tierd6", "priority": null } ], From 080b6bc2da6328b416760dc5fb90535110dd4e68 Mon Sep 17 00:00:00 2001 From: WBHarry <89362246+WBHarry@users.noreply.github.com> Date: Sun, 10 Aug 2025 14:06:53 +0200 Subject: [PATCH 10/17] Fixed a spelling error (#779) --- module/data/activeEffect/beastformEffect.mjs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/module/data/activeEffect/beastformEffect.mjs b/module/data/activeEffect/beastformEffect.mjs index e040d8d8..b5cbdb28 100644 --- a/module/data/activeEffect/beastformEffect.mjs +++ b/module/data/activeEffect/beastformEffect.mjs @@ -32,7 +32,7 @@ export default class BeastformEffect extends BaseEffect { if (this.parent.parent?.type === 'character') { this.parent.parent.system.primaryWeapon?.update?.({ 'system.equipped': false }); - this.parent.parent.system.secondayWeapon?.update?.({ 'system.equipped': false }); + this.parent.parent.system.secondaryWeapon?.update?.({ 'system.equipped': false }); } } From df5373cd209d86fef95a9e8d50fe75f29488b0c6 Mon Sep 17 00:00:00 2001 From: Dapoulp <74197441+Dapoulp@users.noreply.github.com> Date: Sun, 10 Aug 2025 16:52:36 +0200 Subject: [PATCH 11/17] Fix bardic rally showing in damage dialog when it should not (#783) --- module/dice/damageRoll.mjs | 35 ++++++++++--------- .../dialogs/dice-roll/damageSelection.hbs | 4 +-- 2 files changed, 21 insertions(+), 18 deletions(-) diff --git a/module/dice/damageRoll.mjs b/module/dice/damageRoll.mjs index 44794faa..8a72d86e 100644 --- a/module/dice/damageRoll.mjs +++ b/module/dice/damageRoll.mjs @@ -159,25 +159,28 @@ export default class DamageRoll extends DHRoll { if (config.data?.parent) { if (config.data.parent.appliedEffects) { // Bardic Rally - mods.rally = { - label: 'DAGGERHEART.CLASS.Feature.rallyDice', - values: config.data?.parent?.appliedEffects.reduce((a, c) => { + const rallyChoices = config.data?.parent?.appliedEffects.reduce((a, c) => { const change = c.changes.find(ch => ch.key === 'system.bonuses.rally'); if (change) a.push({ value: c.id, label: change.value }); return a; - }, []), - value: null, - beforeCrit: true, - callback: part => { - const rallyFaces = config.modifiers.rally.values.find( - r => r.value === config.modifiers.rally.value - )?.label; - part.roll.terms.push( - new foundry.dice.terms.OperatorTerm({ operator: '+' }), - ...this.parse(`1${rallyFaces}`) - ); - } - }; + }, []) + if(rallyChoices.length) { + mods.rally = { + label: 'DAGGERHEART.CLASS.Feature.rallyDice', + values: rallyChoices, + value: null, + beforeCrit: true, + callback: part => { + const rallyFaces = config.modifiers.rally.values.find( + r => r.value === config.modifiers.rally.value + )?.label; + part.roll.terms.push( + new foundry.dice.terms.OperatorTerm({ operator: '+' }), + ...this.parse(`1${rallyFaces}`) + ); + } + }; + } } const item = config.data.parent.items?.get(config.source.item); diff --git a/templates/dialogs/dice-roll/damageSelection.hbs b/templates/dialogs/dice-roll/damageSelection.hbs index be49906b..ba542666 100644 --- a/templates/dialogs/dice-roll/damageSelection.hbs +++ b/templates/dialogs/dice-roll/damageSelection.hbs @@ -24,7 +24,7 @@ {{/each}} - {{#if @root.modifiers}} + {{#unless (empty @root.modifiers)}}
{{localize "DAGGERHEART.GENERAL.Modifier.plural"}} {{#each @root.modifiers}} @@ -39,7 +39,7 @@ {{/if}} {{/each}}
- {{/if}} + {{/unless}}
{{#if directDamage}}