From 4ffa690aec8b0f7707218accf5a2107861c795ef Mon Sep 17 00:00:00 2001 From: WBHarry <89362246+WBHarry@users.noreply.github.com> Date: Mon, 11 Aug 2025 02:02:06 +0200 Subject: [PATCH] Hotfix 1.0.1 (#825) * Updated the background image for the system * Fixed so Weapon/Armor features are added again * Fixed so fear is available as a resource to be deducted by actions (#757) * Changed to use the config labels and src * Updated Weapons * Fixed so the decrease button of simple fear tracker is not visible when not hovered * Fixed so armor preUpdate doesn't fail if no system changes are made * 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 * Corrected sneak attack active effect (#780) * Fixed a spelling error (#779) * Fix bardic rally showing in damage dialog when it should not (#783) * update spelling (#786) * Translating inventory descriptions (#782) * updated credits for 1.0.1 release (#797) * updated credits for 1.0.1 release * further updated artwork credits * Chagned handlebarhelper rollparsed to be more defensive (#794) * Added missing scene refreshType (#790) * Remove ability use buttons for not owned abilities (#795) * [Fix] PrayerDice Fixed (#799) * Fixed prayer dice, and wheelchair images * Fixed -settings data sources * Dragging features from one adversary to another (#788) * [Fix] Levelup Fixes (#787) * Fixed crash on experience selection. Fixed subclass error on multiclassing * Fixed so multiclasses do not gain the hope feature for the class * Fixed so Class/Subclass features are properly deleted on delevel * Removed automatic deletion of features on delevel when not using levelup auto * Fixed so custom domains can be selected in levelup when multiclassing * Changed so encounter countdowns is a button (#804) * Fixed so that dropping on class/subclass...creates the item on the character (#803) * [BUG] - Importing All Adversaries/Environments (#814) Fixes #774 Co-authored-by: Joaquin Pereyra * Bug/671 reaction roll chat title (#809) * Update Reaction Roll Chat Message Title * Removed console log --------- Co-authored-by: WBHarry * Improve Trait tooltip display (#817) Fixes #806 Co-authored-by: Joaquin Pereyra * [BUG] - Combat Tracker d12 logo not found (#812) Fixes #764 Co-authored-by: Joaquin Pereyra * Compendium Browser (#821) * Corrected timbending description localization (#816) * [Fix] Compendium Item (#810) * Corrected Emberwoven Armor * Fixed subclass regression * Fixed so character's with wildcard images don't break beastform (#815) * Fix roll result based duality damage (#822) --------- Co-authored-by: Chris Ryan <73275196+chrisryan10@users.noreply.github.com> Co-authored-by: Chris Ryan Co-authored-by: Dapoulp <74197441+Dapoulp@users.noreply.github.com> Co-authored-by: IrkTheImp <41175833+IrkTheImp@users.noreply.github.com> Co-authored-by: CPTN_Cosmo Co-authored-by: Josh Q. Co-authored-by: joaquinpereyra98 <24190917+joaquinpereyra98@users.noreply.github.com> Co-authored-by: Joaquin Pereyra --- .gitignore | 3 +- README.md | 2 +- .../documents/items/ArcaneWheelchair.webp | Bin 0 -> 10784 bytes .../documents/items/HeavyWheelchair.webp | Bin 0 -> 13400 bytes .../documents/items/LightWheelchair.webp | Bin 0 -> 11282 bytes assets/logos/FoundrybornBackgroundLogo.png | Bin 0 -> 55426 bytes lang/en.json | 18 ++- .../characterCreation/characterCreation.mjs | 22 ++- .../applications/levelup/characterLevelup.mjs | 2 +- .../applications/levelup/companionLevelup.mjs | 2 +- .../sheets-configs/adversary-settings.mjs | 14 +- .../sheets/api/application-mixin.mjs | 3 +- module/applications/sheets/api/base-item.mjs | 66 +++++--- module/applications/ui/itemBrowser.mjs | 21 +++ module/config/generalConfig.mjs | 12 +- module/config/itemBrowserConfig.mjs | 2 +- module/config/itemConfig.mjs | 24 ++- module/data/action/baseAction.mjs | 9 +- module/data/action/damageAction.mjs | 5 +- module/data/activeEffect/beastformEffect.mjs | 2 +- module/data/actor/character.mjs | 11 ++ module/data/item/armor.mjs | 2 +- module/data/item/beastform.mjs | 3 +- module/data/item/domainCard.mjs | 9 +- module/data/item/subclass.mjs | 5 +- module/dice/damageRoll.mjs | 35 +++-- module/dice/dhRoll.mjs | 2 +- module/dice/dualityRoll.mjs | 7 +- module/documents/actor.mjs | 144 ++++++++++-------- module/documents/chatMessage.mjs | 5 + module/helpers/handlebarsHelper.mjs | 4 +- module/helpers/utils.mjs | 7 +- .../folders_Tier_1_sxvlEwi25uAoB2C5.json | 7 +- .../folders_Tier_2_OgzrmfH1ZbpljX7k.json | 7 +- .../folders_Tier_3_wTI7nZkPhKxl7Wwq.json | 7 +- .../folders_Tier_4_7XHlANCPz18yvl5L.json | 7 +- .../feature_Prayer_Dice_Xd7RYhfTxIj9aWI2.json | 10 +- ...feature_Sneak_Attack_5QqpEwmwkPfZHpMW.json | 4 +- ...mor_Emberwoven_Armor_bcQUh4QG3qFX0Vx6.json | 14 +- .../weapon_Aantari_Bow_ijodu5yNBoMxpkHV.json | 35 +++-- ...ane_Frame_Wheelchair_la3sAWgnvadc4NvP.json | 35 +++-- ..._Advanced_Broadsword_WtQAGz0TUgz8Xg70.json | 35 +++-- ...avy_Frame_Wheelchair_eT2Qwb0RdrLX2hH1.json | 8 +- ...ght_Frame_Wheelchair_BuMfupnCzHbziQ8o.json | 8 +- ...dvanced_Small_Dagger_0thN0BpN05KT8Avx.json | 33 ++-- ...ane_Frame_Wheelchair_XRChepscgr75Uug7.json | 37 +++-- .../weapon_Broadsword_1cwWNt4sqlgA8gCT.json | 35 +++-- ...avy_Frame_Wheelchair_XjPQjhRCH08VUIbr.json | 8 +- ...ane_Frame_Wheelchair_N9P695V5KKlJbAY5.json | 35 +++-- ..._Improved_Broadsword_OcKeLJxvmdT81VBc.json | 35 +++-- ...avy_Frame_Wheelchair_L5KeCtrs768PmYWW.json | 8 +- ...ght_Frame_Wheelchair_ZJsetdHKV77ygtCE.json | 8 +- ..._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 | 35 +++-- ...Legendary_Broadsword_y3hfTPfZhMognyaJ.json | 35 +++-- ...avy_Frame_Wheelchair_S6nB0CNlzdU05o5U.json | 8 +- ...ght_Frame_Wheelchair_Xt8tVSn5Fu6ly6LF.json | 8 +- ...Legendary_Shortsword_dEumq3BIZBk5xYTk.json | 33 ++-- ...gendary_Small_Dagger_Px3Rh3kIvAqyISxJ.json | 33 ++-- ...ght_Frame_Wheelchair_iaGnlUkShBgdeMo0.json | 8 +- .../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_Wand_of_Essek_ZrRGNjGCgZTTfgDG.json | 2 +- .../weapon_War_Scythe_z6yEdFYQJ5IzgTX3.json | 35 +++-- ...pon_Widogast_Pendant_8Z5QrThfwkYPXNco.json | 2 +- ...elcome___Information_g7NhKvwltwafmMyR.json | 6 +- .../adversary-settings/features.less | 19 ++- .../less/sheets/actors/character/header.less | 4 +- .../ui/combat-sidebar/encounter-controls.less | 41 +---- styles/less/ui/item-browser/item-browser.less | 25 ++- styles/less/ui/resources/resources.less | 2 +- system.json | 5 + .../setupTabs/domainCards.hbs | 4 +- .../dialogs/dice-roll/damageSelection.hbs | 4 +- .../adversary-settings/attack.hbs | 16 +- .../adversary-settings/details.hbs | 26 ++-- .../adversary-settings/experiences.hbs | 2 +- .../adversary-settings/features.hbs | 5 +- .../companion-settings/attack.hbs | 12 +- .../companion-settings/details.hbs | 10 +- .../environment-settings/details.hbs | 10 +- templates/sheets/actors/character/header.hbs | 10 +- .../ui/combatTracker/combatTrackerHeader.hbs | 21 +-- templates/ui/itemBrowser/sidebar.hbs | 26 ++-- 90 files changed, 918 insertions(+), 659 deletions(-) create mode 100644 assets/icons/documents/items/ArcaneWheelchair.webp create mode 100644 assets/icons/documents/items/HeavyWheelchair.webp create mode 100644 assets/icons/documents/items/LightWheelchair.webp create mode 100644 assets/logos/FoundrybornBackgroundLogo.png 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/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/assets/icons/documents/items/ArcaneWheelchair.webp b/assets/icons/documents/items/ArcaneWheelchair.webp new file mode 100644 index 0000000000000000000000000000000000000000..ae8e0e376dbcb95b3dc251b61198678d7c62ceb7 GIT binary patch literal 10784 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 literal 0 HcmV?d00001 diff --git a/assets/icons/documents/items/HeavyWheelchair.webp b/assets/icons/documents/items/HeavyWheelchair.webp new file mode 100644 index 0000000000000000000000000000000000000000..e82071eee3026d29d7898a7d4a72ff3d08db1c55 GIT binary patch literal 13400 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 literal 0 HcmV?d00001 diff --git a/assets/icons/documents/items/LightWheelchair.webp b/assets/icons/documents/items/LightWheelchair.webp new file mode 100644 index 0000000000000000000000000000000000000000..f7efca162b42f71cafae60587c6eb3510db63a5b GIT binary patch literal 11282 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 L%Drx$d;tCjYqlc< literal 0 HcmV?d00001 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/lang/en.json b/lang/en.json index 867558d7..e5f09217 100755 --- a/lang/en.json +++ b/lang/en.json @@ -272,7 +272,8 @@ "combatStarted": "Active", "giveSpotlight": "Give The Spotlight", "requestingSpotlight": "Requesting The Spotlight", - "requestSpotlight": "Request The Spotlight" + "requestSpotlight": "Request The Spotlight", + "openCountdowns": "Countdowns" }, "ContextMenu": { "disableEffect": "Disable Effect", @@ -823,8 +824,8 @@ "name": "Restrained", "description": "When an effect makes a creature Restrained, it means they cannot move until this condition is cleared.\nThey can still take actions from their current position." }, - "unconcious": { - "name": "Unconcious", + "unconscious": { + "name": "Unconscious", "description": "Your character can’t move or act while unconscious, they can’t be targeted by an attack." }, "vulnerable": { @@ -1362,17 +1363,17 @@ }, "paired": { "name": "Paired", - "description": "Add your character's Tier + 1 to primary weapon damage against targets within Melee range", + "description": "Add this Secondary Weapon's tier + 1 to your primary weapon damage against targets within Melee range", "actions": { "paired": { "name": "Paired", - "description": "Add your character's Tier + 1 to primary weapon damage against targets within Melee range" + "description": "Add this Secondary Weapon's tier + 1 to your primary weapon against targets within Melee range" } }, "effects": { "paired": { "name": "Paired", - "description": "Add your character's Tier + 1 to primary weapon damage against targets within Melee range" + "description": "Add this Secondary Weapon's tier + 1 to your primary weapon against targets within Melee range" } } }, @@ -1763,6 +1764,7 @@ "weapon": "Range Increase: Weapon" }, "RefreshType": { + "scene": "Scene", "session": "Session", "shortrest": "Short Rest", "longrest": "Long Rest" @@ -1898,6 +1900,7 @@ "difficulty": "Difficulty", "downtime": "Downtime", "dropActorsHere": "Drop Actors here", + "dropFeaturesHere": "Drop Features here", "duality": "Duality", "dualityRoll": "Duality Roll", "enabled": "Enabled", @@ -2365,7 +2368,8 @@ "compendiumBrowser": "Compendium Browser", "rulesOn": "Rules On", "rulesOff": "Rules Off", - "remainingUses": "Uses refresh on {type}" + "remainingUses": "Uses refresh on {type}", + "rightClickExtand": "Right-Click to extand" } } } diff --git a/module/applications/characterCreation/characterCreation.mjs b/module/applications/characterCreation/characterCreation.mjs index d45fe54e..1cadd6d4 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; @@ -378,7 +383,7 @@ export default class DhCharacterCreation extends HandlebarsApplicationMixin(Appl uuid: suggestions.armor?.uuid, taken: suggestions.armor?.uuid === this.equipment.armor?.uuid }, - compendium: 'armors' + compendium: 'armor' }; context.primaryWeapon = { ...this.equipment.primaryWeapon, @@ -387,7 +392,7 @@ export default class DhCharacterCreation extends HandlebarsApplicationMixin(Appl uuid: suggestions.primaryWeapon?.uuid, taken: suggestions.primaryWeapon?.uuid === this.equipment.primaryWeapon?.uuid }, - compendium: 'weapons' + compendium: 'weapon' }; context.secondaryWeapon = { ...this.equipment.secondaryWeapon, @@ -397,7 +402,7 @@ export default class DhCharacterCreation extends HandlebarsApplicationMixin(Appl taken: suggestions.secondaryWeapon?.uuid === this.equipment.secondaryWeapon?.uuid }, disabled: this.equipment.primaryWeapon?.system?.burden === burden.twoHanded.value, - compendium: 'weapons' + compendium: 'weapon' }; context.inventory = { take: suggestions.inventory.take, @@ -495,11 +500,12 @@ export default class DhCharacterCreation extends HandlebarsApplicationMixin(Appl } static async viewCompendium(event, target) { - const type = target.dataset.compendium ?? target.dataset.type; + const type = target.dataset.compendium ?? target.dataset.type, + equipment = ['armor', 'weapon']; const presets = { compendium: 'daggerheart', - folder: type, + folder: equipment.includes(type) ? "equipments" : type, render: { noFolder: true } @@ -511,6 +517,12 @@ export default class DhCharacterCreation extends HandlebarsApplicationMixin(Appl 'system.domain': { key: 'system.domain', value: this.setup.class?.system.domains ?? null } }; + if (equipment.includes(type)) + presets.filter = { + 'system.tier': { key: 'system.tier', value: 1 }, + 'type': { key: 'type', value: type } + }; + return (this.itemBrowser = await new ItemBrowser({ presets }).render({ force: true })); } diff --git a/module/applications/levelup/characterLevelup.mjs b/module/applications/levelup/characterLevelup.mjs index de28f241..0ae136c4 100644 --- a/module/applications/levelup/characterLevelup.mjs +++ b/module/applications/levelup/characterLevelup.mjs @@ -51,7 +51,7 @@ export default class DhCharacterLevelUp extends LevelUpBase { .filter(exp => exp.data.length > 0) .flatMap(exp => exp.data.map(data => { - const experience = Object.keys(this.actor.system.experiences).find(x => x === data); + const experience = Object.keys(this.actor.system.experiences)[data]; return this.actor.system.experiences[experience].name; }) ); diff --git a/module/applications/levelup/companionLevelup.mjs b/module/applications/levelup/companionLevelup.mjs index 2fcc42a0..c94d7d2b 100644 --- a/module/applications/levelup/companionLevelup.mjs +++ b/module/applications/levelup/companionLevelup.mjs @@ -39,7 +39,7 @@ export default class DhCompanionLevelUp extends BaseLevelUp { .filter(exp => exp.data.length > 0) .flatMap(exp => exp.data.map(data => { - const experience = Object.keys(this.actor.system.experiences).find(x => x === data); + const experience = Object.keys(this.actor.system.experiences)[data]; return this.actor.system.experiences[experience].name; }) ); diff --git a/module/applications/sheets-configs/adversary-settings.mjs b/module/applications/sheets-configs/adversary-settings.mjs index 57deea25..bcc8b1c9 100644 --- a/module/applications/sheets-configs/adversary-settings.mjs +++ b/module/applications/sheets-configs/adversary-settings.mjs @@ -98,11 +98,17 @@ export default class DHAdversarySettings extends DHBaseActorSettings { async _onDrop(event) { const data = foundry.applications.ux.TextEditor.implementation.getDragEventData(event); - if (data.fromInternal) return; - + const item = await fromUuid(data.uuid); - if (item.type === 'feature') { - await this.actor.createEmbeddedDocuments('Item', [item]); + if (item?.type === 'feature') { + if (data.fromInternal && item.parent?.uuid === this.actor.uuid) { + return; + } + + const itemData = item.toObject(); + delete itemData._id; + + await this.actor.createEmbeddedDocuments('Item', [itemData]); } } } diff --git a/module/applications/sheets/api/application-mixin.mjs b/module/applications/sheets/api/application-mixin.mjs index 1a7e19c1..18a5ac91 100644 --- a/module/applications/sheets/api/application-mixin.mjs +++ b/module/applications/sheets/api/application-mixin.mjs @@ -129,6 +129,7 @@ export default function DHApplicationMixin(Base) { const docs = []; for (const docData of this.relatedDocs) { + if (!docData) continue; const doc = await foundry.utils.fromUuid(docData.uuid); docs.push(doc); } @@ -419,7 +420,7 @@ export default function DHApplicationMixin(Base) { : this.document.system.actions?.get(actionId); if (!doc) return; - const description = doc.system?.description ?? doc.description; + const description = game.i18n.localize(doc.system?.description ?? doc.description); const isAction = !!actionId; descriptionElement.innerHTML = await foundry.applications.ux.TextEditor.implementation.enrichHTML( description, diff --git a/module/applications/sheets/api/base-item.mjs b/module/applications/sheets/api/base-item.mjs index 6bd91ae8..a9d3237d 100644 --- a/module/applications/sheets/api/base-item.mjs +++ b/module/applications/sheets/api/base-item.mjs @@ -181,12 +181,18 @@ export default class DHBaseItemSheet extends DHApplicationMixin(ItemSheetV2) { static async #deleteFeature(_, element) { const target = element.closest('[data-item-uuid]'); const feature = await getDocFromElement(target); - if (!feature) return ui.notifications.warn(game.i18n.localize('DAGGERHEART.UI.Notifications.featureIsMissing')); - await this.document.update({ - 'system.features': this.document.system.features - .filter(x => target.dataset.type !== x.type || x.item.uuid !== feature.uuid) - .map(x => ({ ...x, item: x.item.uuid })) - }); + if (!feature) { + await this.document.update({ + 'system.features': this.document.system.features + .filter(x => x.item) + .map(x => ({ ...x, item: x.item.uuid })) + }); + } else + await this.document.update({ + 'system.features': this.document.system.features + .filter(x => target.dataset.type !== x.type || x.item.uuid !== feature.uuid) + .map(x => ({ ...x, item: x.item.uuid })) + }); } /** @@ -259,21 +265,45 @@ export default class DHBaseItemSheet extends DHApplicationMixin(ItemSheetV2) { if (data.fromInternal) return; const target = event.target.closest('fieldset.drop-section'); - const item = await fromUuid(data.uuid); + let item = await fromUuid(data.uuid); if (item?.type === 'feature') { + const cls = foundry.documents.Item.implementation; + + if (this.document.parent?.type === 'character') { + const itemData = item.toObject(); + item = await cls.create( + { + ...itemData, + system: { + ...itemData.system, + originItemType: this.document.type, + originId: this.document.id, + identifier: this.document.system.isMulticlass ? 'multiclass' : null + } + }, + { parent: this.document.parent } + ); + } + if (target.dataset.type) { - await this.document.update({ - 'system.features': [...this.document.system.features, { type: target.dataset.type, item }].map( - x => ({ - ...x, - item: x.item?.uuid - }) - ) - }); + await this.document.update( + { + 'system.features': [...this.document.system.features, { type: target.dataset.type, item }].map( + x => ({ + ...x, + item: x.item?.uuid + }) + ) + }, + { parent: this.document.parent?.type === 'character' ? this.document.parent : undefined } + ); } else { - await this.document.update({ - 'system.features': [...this.document.system.features, item].map(x => x.uuid) - }); + await this.document.update( + { + 'system.features': [...this.document.system.features, item].map(x => x.uuid) + }, + { parent: this.document.parent?.type === 'character' ? this.document.parent : undefined } + ); } } } diff --git a/module/applications/ui/itemBrowser.mjs b/module/applications/ui/itemBrowser.mjs index 3763bd36..f0ad98db 100644 --- a/module/applications/ui/itemBrowser.mjs +++ b/module/applications/ui/itemBrowser.mjs @@ -121,6 +121,16 @@ export class ItemBrowser extends HandlebarsApplicationMixin(ApplicationV2) { } } + _attachPartListeners(partId, htmlElement, options) { + super._attachPartListeners(partId, htmlElement, options); + + htmlElement + .querySelectorAll('[data-action="selectFolder"]') + .forEach(element => element.addEventListener("contextmenu", (event) => { + event.target.classList.toggle('expanded'); + })) + } + /* -------------------------------------------- */ /* Rendering */ /* -------------------------------------------- */ @@ -179,9 +189,20 @@ export class ItemBrowser extends HandlebarsApplicationMixin(ApplicationV2) { } this.items = ItemBrowser.sortBy(items, 'name'); + + if(target) { + target.closest('.compendium-sidebar').querySelectorAll('[data-action="selectFolder"]').forEach(element => element.classList.remove("is-selected")) + target.classList.add('is-selected'); + } + this.render({ force: true }); } + _replaceHTML(result, content, options) { + if(!options.isFirstRender) delete result.sidebar; + super._replaceHTML(result, content, options); + } + static expandContent(_, target) { const parent = target.parentElement; parent.classList.toggle('expanded'); diff --git a/module/config/generalConfig.mjs b/module/config/generalConfig.mjs index 133dd09e..ee0b6671 100644 --- a/module/config/generalConfig.mjs +++ b/module/config/generalConfig.mjs @@ -183,11 +183,11 @@ export const conditions = { icon: 'icons/magic/control/debuff-chains-shackle-movement-red.webp', description: 'DAGGERHEART.CONFIG.Condition.restrained.description' }, - unconcious: { - id: 'unconcious', - name: 'DAGGERHEART.CONFIG.Condition.unconcious.name', + unconscious: { + id: 'unconscious', + name: 'DAGGERHEART.CONFIG.Condition.unconscious.name', icon: 'icons/magic/control/sleep-bubble-purple.webp', - description: 'DAGGERHEART.CONFIG.Condition.unconcious.description' + description: 'DAGGERHEART.CONFIG.Condition.unconscious.description' }, dead: { id: 'dead', @@ -533,6 +533,10 @@ export const getDiceSoNicePresets = async (hopeFaces, fearFaces, advantageFaces }; export const refreshTypes = { + scene: { + id: 'session', + label: 'DAGGERHEART.GENERAL.RefreshType.scene' + }, session: { id: 'session', label: 'DAGGERHEART.GENERAL.RefreshType.session' diff --git a/module/config/itemBrowserConfig.mjs b/module/config/itemBrowserConfig.mjs index 5d20ae7d..6e3c0dea 100644 --- a/module/config/itemBrowserConfig.mjs +++ b/module/config/itemBrowserConfig.mjs @@ -325,7 +325,7 @@ export const compendiumConfig = { "equipments": { id: "equipments", keys: ["armors", "weapons", "consumables", "loot"], - label: "Equipments", + label: "Equipment", type: ["armor", "weapon", "consumable", "loot"], listType: "items" }, diff --git a/module/config/itemConfig.mjs b/module/config/itemConfig.mjs index 296dc927..cee4bc52 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 } @@ -1357,7 +1373,7 @@ export const weaponFeatures = { actionType: 'action', chatDisplay: true, name: 'DAGGERHEART.CONFIG.WeaponFeature.timebending.actions.bendTime.name', - description: 'DAGGERHEART.CONFIG.WeaponFeature.actions.bendTime.description', + description: 'DAGGERHEART.CONFIG.WeaponFeature.timebending.actions.bendTime.description', img: 'icons/magic/time/clock-spinning-gold-pink.webp' } ] 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) { diff --git a/module/data/action/damageAction.mjs b/module/data/action/damageAction.mjs index 1627f8e8..7deeb006 100644 --- a/module/data/action/damageAction.mjs +++ b/module/data/action/damageAction.mjs @@ -6,7 +6,8 @@ export default class DHDamageAction extends DHBaseAction { getFormulaValue(part, data) { let formulaValue = part.value; - if (data.hasRoll && part.resultBased && data.system.roll.result.duality === -1) return part.valueAlt; + + if (data.hasRoll && part.resultBased && data.roll.result.duality === -1) return part.valueAlt; const isAdversary = this.actor.type === 'adversary'; if (isAdversary && this.actor.system.type === CONFIG.DH.ACTOR.adversaryTypes.horde.id) { @@ -35,7 +36,7 @@ export default class DHDamageAction extends DHBaseAction { const systemData = data.system ?? data; let formulas = this.damage.parts.map(p => ({ - formula: this.getFormulaValue(p, data).getFormula(this.actor), + formula: this.getFormulaValue(p, systemData).getFormula(this.actor), damageTypes: p.applyTo === 'hitPoints' && !p.type.size ? new Set(['physical']) : p.type, applyTo: p.applyTo })); 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 }); } } diff --git a/module/data/actor/character.mjs b/module/data/actor/character.mjs index c40e7e5d..c5e250a4 100644 --- a/module/data/actor/character.mjs +++ b/module/data/actor/character.mjs @@ -351,6 +351,17 @@ export default class DhCharacter extends BaseDataActor { return [...classDomains, ...multiclassDomains]; } + 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 domainCards() { const domainCards = this.parent.items.filter(x => x.type === 'domainCard'); const loadout = domainCards.filter(x => !x.system.inVault); 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)); diff --git a/module/data/item/beastform.mjs b/module/data/item/beastform.mjs index 68c934ed..3c9bef5c 100644 --- a/module/data/item/beastform.mjs +++ b/module/data/item/beastform.mjs @@ -134,6 +134,7 @@ export default class DHBeastform extends BaseDataItem { this.parent.effects.filter(x => x.type !== 'beastform').map(x => x.toObject()) ); + const tokenImages = await this.parent.parent.getTokenImages(); const beastformEffect = this.parent.effects.find(x => x.type === 'beastform'); await beastformEffect.updateSource({ changes: [ @@ -148,7 +149,7 @@ export default class DHBeastform extends BaseDataItem { ], system: { characterTokenData: { - tokenImg: this.parent.parent.prototypeToken.texture.src, + tokenImg: tokenImages[0], tokenRingImg: this.parent.parent.prototypeToken.ring.subject.texture, tokenSize: { height: this.parent.parent.prototypeToken.height, 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/module/data/item/subclass.mjs b/module/data/item/subclass.mjs index ce52fdc6..7ace8109 100644 --- a/module/data/item/subclass.mjs +++ b/module/data/item/subclass.mjs @@ -21,7 +21,7 @@ export default class DHSubclass extends BaseDataItem { integer: false, nullable: true, initial: null, - label: "DAGGERHEART.ITEMS.Subclass.spellcastingTrait" + label: 'DAGGERHEART.ITEMS.Subclass.spellcastingTrait' }), features: new ItemLinkFields(), featureState: new fields.NumberField({ required: true, initial: 1, min: 1 }), @@ -50,7 +50,8 @@ export default class DHSubclass extends BaseDataItem { async _preCreate(data, options, user) { if (this.actor?.type === 'character') { - const dataUuid = data.uuid ?? data._stats?.compendiumSource ?? `Item.${data._id}`; + const dataUuid = + data.uuid ?? (data.folder ? `Compendium.daggerheart.subclasses.Item.${data._id}` : `Item.${data._id}`); if (this.actor.system.class.subclass) { if (this.actor.system.multiclass.subclass) { ui.notifications.warn(game.i18n.localize('DAGGERHEART.UI.Notifications.subclassesAlreadyPresent')); 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/module/dice/dhRoll.mjs b/module/dice/dhRoll.mjs index 504a9c02..126a7944 100644 --- a/module/dice/dhRoll.mjs +++ b/module/dice/dhRoll.mjs @@ -238,7 +238,7 @@ export const registerRollDiceHooks = () => { if (updates.length) { const target = actor.system.partner ?? actor; - if (!['dead', 'unconcious'].some(x => actor.statuses.has(x))) { + if (!['dead', 'unconscious'].some(x => actor.statuses.has(x))) { setTimeout(() => { target.modifyResource(updates); }, 50); diff --git a/module/dice/dualityRoll.mjs b/module/dice/dualityRoll.mjs index 35bae725..ac1047ab 100644 --- a/module/dice/dualityRoll.mjs +++ b/module/dice/dualityRoll.mjs @@ -19,7 +19,7 @@ export default class DualityRoll extends D20Roll { get title() { return game.i18n.localize( - "DAGGERHEART.GENERAL.dualityRoll" + `DAGGERHEART.GENERAL.${this.options?.roll?.type === CONFIG.DH.ITEM.actionTypes.reaction.id ? 'reactionRoll' : 'dualityRoll'}` ); } @@ -125,10 +125,7 @@ export default class DualityRoll extends D20Roll { } createBaseDice() { - if ( - this.dice[0] instanceof foundry.dice.terms.Die && - this.dice[1] instanceof foundry.dice.terms.Die - ) { + if (this.dice[0] instanceof foundry.dice.terms.Die && this.dice[1] instanceof foundry.dice.terms.Die) { this.terms = [this.terms[0], this.terms[1], this.terms[2]]; return; } diff --git a/module/documents/actor.mjs b/module/documents/actor.mjs index 8fc9b74a..c75db559 100644 --- a/module/documents/actor.mjs +++ b/module/documents/actor.mjs @@ -84,6 +84,8 @@ export default class DhpActor extends Actor { await this.update({ 'system.levelData.level.changed': Math.min(newLevel, maxLevel) }); } else { + const levelupAuto = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Automation).levelupAuto; + const usedLevel = Math.max(newLevel, 1); if (newLevel < 1) { ui.notifications.warn(game.i18n.localize('DAGGERHEART.UI.Notifications.tooLowLevel')); @@ -95,79 +97,90 @@ export default class DhpActor extends Actor { return acc; }, {}); - const features = []; - const domainCards = []; - const experiences = []; - const subclassFeatureState = { class: null, multiclass: null }; - let multiclass = null; - Object.keys(this.system.levelData.levelups) - .filter(x => x > usedLevel) - .forEach(levelKey => { - const level = this.system.levelData.levelups[levelKey]; - const achievementCards = level.achievements.domainCards.map(x => x.itemUuid); - const advancementCards = level.selections.filter(x => x.type === 'domainCard').map(x => x.itemUuid); - domainCards.push(...achievementCards, ...advancementCards); - experiences.push(...Object.keys(level.achievements.experiences)); - features.push(...level.selections.flatMap(x => x.features)); + if (levelupAuto) { + const features = []; + const domainCards = []; + const experiences = []; + const subclassFeatureState = { class: null, multiclass: null }; + let multiclass = null; + Object.keys(this.system.levelData.levelups) + .filter(x => x > usedLevel) + .forEach(levelKey => { + const level = this.system.levelData.levelups[levelKey]; + const achievementCards = level.achievements.domainCards.map(x => x.itemUuid); + const advancementCards = level.selections + .filter(x => x.type === 'domainCard') + .map(x => x.itemUuid); + domainCards.push(...achievementCards, ...advancementCards); + experiences.push(...Object.keys(level.achievements.experiences)); + features.push(...level.selections.flatMap(x => x.features)); - const subclass = level.selections.find(x => x.type === 'subclass'); - if (subclass) { - const path = subclass.secondaryData.isMulticlass === 'true' ? 'multiclass' : 'class'; - const subclassState = Number(subclass.secondaryData.featureState) - 1; - subclassFeatureState[path] = subclassFeatureState[path] - ? Math.min(subclassState, subclassFeatureState[path]) - : subclassState; - } + const subclass = level.selections.find(x => x.type === 'subclass'); + if (subclass) { + const path = subclass.secondaryData.isMulticlass === 'true' ? 'multiclass' : 'class'; + const subclassState = Number(subclass.secondaryData.featureState) - 1; + subclassFeatureState[path] = subclassFeatureState[path] + ? Math.min(subclassState, subclassFeatureState[path]) + : subclassState; + } - multiclass = level.selections.find(x => x.type === 'multiclass'); - }); + multiclass = level.selections.find(x => x.type === 'multiclass'); + }); - for (let feature of features) { - if (feature.onPartner && !this.system.partner) continue; + for (let feature of features) { + if (feature.onPartner && !this.system.partner) continue; - const document = feature.onPartner ? this.system.partner : this; - document.items.get(feature.id)?.delete(); - } - - if (experiences.length > 0) { - const getUpdate = () => ({ - 'system.experiences': experiences.reduce((acc, key) => { - acc[`-=${key}`] = null; - return acc; - }, {}) - }); - this.update(getUpdate()); - if (this.system.companion) { - this.system.companion.update(getUpdate()); + const document = feature.onPartner ? this.system.partner : this; + document.items.get(feature.id)?.delete(); } - } - if (subclassFeatureState.class) { - this.system.class.subclass.update({ 'system.featureState': subclassFeatureState.class }); - } - - if (subclassFeatureState.multiclass) { - this.system.multiclass.subclass.update({ 'system.featureState': subclassFeatureState.multiclass }); - } - - if (multiclass) { - const multiclassSubclass = this.items.find(x => x.type === 'subclass' && x.system.isMulticlass); - const multiclassItem = this.items.find(x => x.uuid === multiclass.itemUuid); - - multiclassSubclass.delete(); - multiclassItem.delete(); - - this.update({ - 'system.multiclass': { - value: null, - subclass: null + if (experiences.length > 0) { + const getUpdate = () => ({ + 'system.experiences': experiences.reduce((acc, key) => { + acc[`-=${key}`] = null; + return acc; + }, {}) + }); + this.update(getUpdate()); + if (this.system.companion) { + this.system.companion.update(getUpdate()); } - }); - } + } - for (let domainCard of domainCards) { - const itemCard = this.items.find(x => x.uuid === domainCard); - itemCard.delete(); + if (subclassFeatureState.class) { + this.system.class.subclass.update({ 'system.featureState': subclassFeatureState.class }); + } + + if (subclassFeatureState.multiclass) { + this.system.multiclass.subclass.update({ 'system.featureState': subclassFeatureState.multiclass }); + } + + if (multiclass) { + const multiclassItem = this.items.find(x => x.uuid === multiclass.itemUuid); + const multiclassFeatures = this.items.filter( + x => x.system.originItemType === 'class' && x.system.identifier === 'multiclass' + ); + const subclassFeatures = this.items.filter( + x => x.system.originItemType === 'subclass' && x.system.identifier === 'multiclass' + ); + + this.deleteEmbeddedDocuments( + 'Item', + [multiclassItem, ...multiclassFeatures, ...subclassFeatures].map(x => x.id) + ); + + this.update({ + 'system.multiclass': { + value: null, + subclass: null + } + }); + } + + for (let domainCard of domainCards) { + const itemCard = this.items.find(x => x.uuid === domainCard); + itemCard.delete(); + } } await this.update({ @@ -315,6 +328,7 @@ export default class DhpActor extends Actor { ...multiclassData, system: { ...multiclassData.system, + features: multiclassData.system.features.filter(x => x.type !== 'hope'), domains: [multiclass.secondaryData.domain], isMulticlass: true } diff --git a/module/documents/chatMessage.mjs b/module/documents/chatMessage.mjs index 3ade8c4a..2b10e251 100644 --- a/module/documents/chatMessage.mjs +++ b/module/documents/chatMessage.mjs @@ -69,6 +69,11 @@ export default class DhpChatMessage extends foundry.documents.ChatMessage { break; } } + + if(!game.user.isGM && !this.isAuthor && !this.speakerActor?.isOwner) { + const buttons = html.querySelectorAll(".ability-card-footer > .ability-use-button"); + buttons.forEach(b => b.remove()); + } } addChatListeners(html) { diff --git a/module/helpers/handlebarsHelper.mjs b/module/helpers/handlebarsHelper.mjs index deb62659..171255e2 100644 --- a/module/helpers/handlebarsHelper.mjs +++ b/module/helpers/handlebarsHelper.mjs @@ -60,7 +60,7 @@ export default class RegisterHandlebarsHelpers { static rollParsed(value, actor, item, numerical) { const isNumerical = typeof numerical === 'boolean' ? numerical : false; - const result = itemAbleRollParse(value, actor.getRollData(), item); + const result = itemAbleRollParse(value, actor?.getRollData() ?? {}, item); return isNumerical ? (!result ? 0 : Number(result)) : result; } @@ -69,7 +69,7 @@ export default class RegisterHandlebarsHelpers { } static empty(object) { - if(!(typeof object === 'object')) return true; + if (!(typeof object === 'object')) return true; return Object.keys(object).length === 0; } } diff --git a/module/helpers/utils.mjs b/module/helpers/utils.mjs index 6124cfbe..63507782 100644 --- a/module/helpers/utils.mjs +++ b/module/helpers/utils.mjs @@ -85,7 +85,12 @@ 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 = Array.isArray(baseOptions) + ? baseOptions + : Object.keys(baseOptions).map(optionKey => ({ + ...baseOptions[optionKey], + id: optionKey + })); const tagifyElement = new Tagify(element, { tagTextProp: 'name', diff --git a/src/packs/adversaries/folders_Tier_1_sxvlEwi25uAoB2C5.json b/src/packs/adversaries/folders_Tier_1_sxvlEwi25uAoB2C5.json index 1fe3770c..8988fbbd 100644 --- a/src/packs/adversaries/folders_Tier_1_sxvlEwi25uAoB2C5.json +++ b/src/packs/adversaries/folders_Tier_1_sxvlEwi25uAoB2C5.json @@ -1,5 +1,5 @@ { - "type": "Item", + "type": "Actor", "folder": null, "name": "Tier 1", "color": null, @@ -14,10 +14,7 @@ "exportSource": null, "coreVersion": "13.346", "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1752684226915, - "modifiedTime": 1752684226915, - "lastModifiedBy": "k0gmQFlvrPvlTtbh" + "systemVersion": "0.0.1" }, "_key": "!folders!sxvlEwi25uAoB2C5" } diff --git a/src/packs/adversaries/folders_Tier_2_OgzrmfH1ZbpljX7k.json b/src/packs/adversaries/folders_Tier_2_OgzrmfH1ZbpljX7k.json index add2018d..caa42284 100644 --- a/src/packs/adversaries/folders_Tier_2_OgzrmfH1ZbpljX7k.json +++ b/src/packs/adversaries/folders_Tier_2_OgzrmfH1ZbpljX7k.json @@ -1,5 +1,5 @@ { - "type": "Item", + "type": "Actor", "folder": null, "name": "Tier 2", "color": null, @@ -14,10 +14,7 @@ "exportSource": null, "coreVersion": "13.346", "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1752684230275, - "modifiedTime": 1752684230275, - "lastModifiedBy": "k0gmQFlvrPvlTtbh" + "systemVersion": "0.0.1" }, "_key": "!folders!OgzrmfH1ZbpljX7k" } diff --git a/src/packs/adversaries/folders_Tier_3_wTI7nZkPhKxl7Wwq.json b/src/packs/adversaries/folders_Tier_3_wTI7nZkPhKxl7Wwq.json index 4a22ae4c..78e05903 100644 --- a/src/packs/adversaries/folders_Tier_3_wTI7nZkPhKxl7Wwq.json +++ b/src/packs/adversaries/folders_Tier_3_wTI7nZkPhKxl7Wwq.json @@ -1,5 +1,5 @@ { - "type": "Item", + "type": "Actor", "folder": null, "name": "Tier 3", "color": null, @@ -14,10 +14,7 @@ "exportSource": null, "coreVersion": "13.346", "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1752684233122, - "modifiedTime": 1752684233122, - "lastModifiedBy": "k0gmQFlvrPvlTtbh" + "systemVersion": "0.0.1" }, "_key": "!folders!wTI7nZkPhKxl7Wwq" } diff --git a/src/packs/adversaries/folders_Tier_4_7XHlANCPz18yvl5L.json b/src/packs/adversaries/folders_Tier_4_7XHlANCPz18yvl5L.json index cf068e44..8baefd2a 100644 --- a/src/packs/adversaries/folders_Tier_4_7XHlANCPz18yvl5L.json +++ b/src/packs/adversaries/folders_Tier_4_7XHlANCPz18yvl5L.json @@ -1,5 +1,5 @@ { - "type": "Item", + "type": "Actor", "folder": null, "name": "Tier 4", "color": null, @@ -14,10 +14,7 @@ "exportSource": null, "coreVersion": "13.346", "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1752684235596, - "modifiedTime": 1752684235596, - "lastModifiedBy": "k0gmQFlvrPvlTtbh" + "systemVersion": "0.0.1" }, "_key": "!folders!7XHlANCPz18yvl5L" } diff --git a/src/packs/classes/feature_Prayer_Dice_Xd7RYhfTxIj9aWI2.json b/src/packs/classes/feature_Prayer_Dice_Xd7RYhfTxIj9aWI2.json index 7705d9d6..8203a246 100644 --- a/src/packs/classes/feature_Prayer_Dice_Xd7RYhfTxIj9aWI2.json +++ b/src/packs/classes/feature_Prayer_Dice_Xd7RYhfTxIj9aWI2.json @@ -9,7 +9,7 @@ "resource": { "type": "diceValue", "value": 0, - "max": "2", + "max": "@system.traits.strength.value", "icon": "", "recovery": "session" }, @@ -28,12 +28,12 @@ "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.346", + "coreVersion": "13.347", "systemId": "daggerheart", - "systemVersion": "0.0.1", + "systemVersion": "1.0.0", "createdTime": 1754352649696, - "modifiedTime": 1754352712334, - "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + "modifiedTime": 1754845640002, + "lastModifiedBy": "H02dtt2xvVJvYESk" }, "_key": "!items!Xd7RYhfTxIj9aWI2" } 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 } ], diff --git a/src/packs/items/armors/armor_Emberwoven_Armor_bcQUh4QG3qFX0Vx6.json b/src/packs/items/armors/armor_Emberwoven_Armor_bcQUh4QG3qFX0Vx6.json index 7e274a0b..3c471a93 100644 --- a/src/packs/items/armors/armor_Emberwoven_Armor_bcQUh4QG3qFX0Vx6.json +++ b/src/packs/items/armors/armor_Emberwoven_Armor_bcQUh4QG3qFX0Vx6.json @@ -63,7 +63,7 @@ "attached": [], "tier": 4, "equipped": false, - "baseScore": 0, + "baseScore": 6, "armorFeatures": [ { "value": "burning", @@ -77,8 +77,8 @@ "value": 0 }, "baseThresholds": { - "major": 0, - "severe": 0 + "major": 13, + "severe": 36 } }, "effects": [], @@ -92,12 +92,12 @@ "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.346", + "coreVersion": "13.347", "systemId": "daggerheart", - "systemVersion": "0.0.1", + "systemVersion": "1.0.0", "createdTime": 1753809470138, - "modifiedTime": 1753809633344, - "lastModifiedBy": "FecEtPuoQh6MpjQ0" + "modifiedTime": 1754853048367, + "lastModifiedBy": "7zAk0CoP90J7ebn0" }, "_key": "!items!bcQUh4QG3qFX0Vx6" } 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..0abfe057 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 @@ -2,7 +2,7 @@ "folder": "TyqMEXhSkjOUq5SA", "name": "Advanced Arcane-Frame Wheelchair", "type": "weapon", - "img": "icons/svg/item-bag.svg", + "img": "systems/daggerheart/assets/icons/documents/items/ArcaneWheelchair.webp", "system": { "description": "", "actions": {}, @@ -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": 1754845968271, + "lastModifiedBy": "H02dtt2xvVJvYESk" }, "_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_Heavy_Frame_Wheelchair_eT2Qwb0RdrLX2hH1.json b/src/packs/items/weapons/weapon_Advanced_Heavy_Frame_Wheelchair_eT2Qwb0RdrLX2hH1.json index 34383448..f8257028 100644 --- a/src/packs/items/weapons/weapon_Advanced_Heavy_Frame_Wheelchair_eT2Qwb0RdrLX2hH1.json +++ b/src/packs/items/weapons/weapon_Advanced_Heavy_Frame_Wheelchair_eT2Qwb0RdrLX2hH1.json @@ -2,7 +2,7 @@ "folder": "TyqMEXhSkjOUq5SA", "name": "Advanced Heavy-Frame Wheelchair", "type": "weapon", - "img": "icons/svg/item-bag.svg", + "img": "systems/daggerheart/assets/icons/documents/items/HeavyWheelchair.webp", "system": { "description": "", "actions": {}, @@ -148,12 +148,12 @@ "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.346", + "coreVersion": "13.347", "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753836675558, - "modifiedTime": 1753836795905, - "lastModifiedBy": "FecEtPuoQh6MpjQ0" + "modifiedTime": 1754845996869, + "lastModifiedBy": "H02dtt2xvVJvYESk" }, "_id": "eT2Qwb0RdrLX2hH1", "sort": 0, diff --git a/src/packs/items/weapons/weapon_Advanced_Light_Frame_Wheelchair_BuMfupnCzHbziQ8o.json b/src/packs/items/weapons/weapon_Advanced_Light_Frame_Wheelchair_BuMfupnCzHbziQ8o.json index add61418..324af2b1 100644 --- a/src/packs/items/weapons/weapon_Advanced_Light_Frame_Wheelchair_BuMfupnCzHbziQ8o.json +++ b/src/packs/items/weapons/weapon_Advanced_Light_Frame_Wheelchair_BuMfupnCzHbziQ8o.json @@ -2,7 +2,7 @@ "folder": "TyqMEXhSkjOUq5SA", "name": "Advanced Light-Frame Wheelchair", "type": "weapon", - "img": "icons/svg/item-bag.svg", + "img": "systems/daggerheart/assets/icons/documents/items/LightWheelchair.webp", "system": { "description": "", "actions": { @@ -141,12 +141,12 @@ "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.346", + "coreVersion": "13.347", "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753836614032, - "modifiedTime": 1753836802197, - "lastModifiedBy": "FecEtPuoQh6MpjQ0" + "modifiedTime": 1754846020904, + "lastModifiedBy": "H02dtt2xvVJvYESk" }, "_id": "BuMfupnCzHbziQ8o", "sort": 0, 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..3dd7d463 100644 --- a/src/packs/items/weapons/weapon_Arcane_Frame_Wheelchair_XRChepscgr75Uug7.json +++ b/src/packs/items/weapons/weapon_Arcane_Frame_Wheelchair_XRChepscgr75Uug7.json @@ -3,7 +3,7 @@ "name": "Arcane-Frame Wheelchair", "type": "weapon", "_id": "XRChepscgr75Uug7", - "img": "icons/svg/item-bag.svg", + "img": "systems/daggerheart/assets/icons/documents/items/ArcaneWheelchair.webp", "system": { "description": "", "actions": {}, @@ -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": 1754845945327, + "lastModifiedBy": "H02dtt2xvVJvYESk" }, "_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_Heavy_Frame_Wheelchair_XjPQjhRCH08VUIbr.json b/src/packs/items/weapons/weapon_Heavy_Frame_Wheelchair_XjPQjhRCH08VUIbr.json index 92131406..b4c48925 100644 --- a/src/packs/items/weapons/weapon_Heavy_Frame_Wheelchair_XjPQjhRCH08VUIbr.json +++ b/src/packs/items/weapons/weapon_Heavy_Frame_Wheelchair_XjPQjhRCH08VUIbr.json @@ -3,7 +3,7 @@ "name": "Heavy-Frame Wheelchair", "type": "weapon", "_id": "XjPQjhRCH08VUIbr", - "img": "icons/svg/item-bag.svg", + "img": "systems/daggerheart/assets/icons/documents/items/HeavyWheelchair.webp", "system": { "description": "", "actions": {}, @@ -152,12 +152,12 @@ "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.346", + "coreVersion": "13.347", "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753836652314, - "modifiedTime": 1753836667128, - "lastModifiedBy": "FecEtPuoQh6MpjQ0" + "modifiedTime": 1754845988869, + "lastModifiedBy": "H02dtt2xvVJvYESk" }, "_key": "!items!XjPQjhRCH08VUIbr" } 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..69744aab 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 @@ -2,7 +2,7 @@ "folder": "fFuMdvpD1F3UshmM", "name": "Improved Arcane-Frame Wheelchair", "type": "weapon", - "img": "icons/svg/item-bag.svg", + "img": "systems/daggerheart/assets/icons/documents/items/ArcaneWheelchair.webp", "system": { "description": "", "actions": {}, @@ -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": 1754845960700, + "lastModifiedBy": "H02dtt2xvVJvYESk" }, "_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_Heavy_Frame_Wheelchair_L5KeCtrs768PmYWW.json b/src/packs/items/weapons/weapon_Improved_Heavy_Frame_Wheelchair_L5KeCtrs768PmYWW.json index 41abaff0..70531b7c 100644 --- a/src/packs/items/weapons/weapon_Improved_Heavy_Frame_Wheelchair_L5KeCtrs768PmYWW.json +++ b/src/packs/items/weapons/weapon_Improved_Heavy_Frame_Wheelchair_L5KeCtrs768PmYWW.json @@ -2,7 +2,7 @@ "folder": "fFuMdvpD1F3UshmM", "name": "Improved Heavy-Frame Wheelchair", "type": "weapon", - "img": "icons/svg/item-bag.svg", + "img": "systems/daggerheart/assets/icons/documents/items/HeavyWheelchair.webp", "system": { "description": "", "actions": {}, @@ -148,12 +148,12 @@ "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.346", + "coreVersion": "13.347", "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753836674233, - "modifiedTime": 1753836769685, - "lastModifiedBy": "FecEtPuoQh6MpjQ0" + "modifiedTime": 1754845992757, + "lastModifiedBy": "H02dtt2xvVJvYESk" }, "_id": "L5KeCtrs768PmYWW", "sort": 0, diff --git a/src/packs/items/weapons/weapon_Improved_Light_Frame_Wheelchair_ZJsetdHKV77ygtCE.json b/src/packs/items/weapons/weapon_Improved_Light_Frame_Wheelchair_ZJsetdHKV77ygtCE.json index c750bac9..737e2c55 100644 --- a/src/packs/items/weapons/weapon_Improved_Light_Frame_Wheelchair_ZJsetdHKV77ygtCE.json +++ b/src/packs/items/weapons/weapon_Improved_Light_Frame_Wheelchair_ZJsetdHKV77ygtCE.json @@ -2,7 +2,7 @@ "folder": "fFuMdvpD1F3UshmM", "name": "Improved Light-Frame Wheelchair", "type": "weapon", - "img": "icons/svg/item-bag.svg", + "img": "systems/daggerheart/assets/icons/documents/items/LightWheelchair.webp", "system": { "description": "", "actions": { @@ -141,12 +141,12 @@ "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.346", + "coreVersion": "13.347", "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753836612291, - "modifiedTime": 1753836778961, - "lastModifiedBy": "FecEtPuoQh6MpjQ0" + "modifiedTime": 1754846018260, + "lastModifiedBy": "H02dtt2xvVJvYESk" }, "_id": "ZJsetdHKV77ygtCE", "sort": 0, 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..b402692f 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 @@ -2,7 +2,7 @@ "folder": "beilKE5ZPAihKg3O", "name": "Legendary Arcane-Frame Wheelchair", "type": "weapon", - "img": "icons/svg/item-bag.svg", + "img": "systems/daggerheart/assets/icons/documents/items/ArcaneWheelchair.webp", "system": { "description": "", "actions": {}, @@ -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": 1754845972571, + "lastModifiedBy": "H02dtt2xvVJvYESk" }, "_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_Heavy_Frame_Wheelchair_S6nB0CNlzdU05o5U.json b/src/packs/items/weapons/weapon_Legendary_Heavy_Frame_Wheelchair_S6nB0CNlzdU05o5U.json index ade62012..d337d32f 100644 --- a/src/packs/items/weapons/weapon_Legendary_Heavy_Frame_Wheelchair_S6nB0CNlzdU05o5U.json +++ b/src/packs/items/weapons/weapon_Legendary_Heavy_Frame_Wheelchair_S6nB0CNlzdU05o5U.json @@ -2,7 +2,7 @@ "folder": "beilKE5ZPAihKg3O", "name": "Legendary Heavy-Frame Wheelchair", "type": "weapon", - "img": "icons/svg/item-bag.svg", + "img": "systems/daggerheart/assets/icons/documents/items/HeavyWheelchair.webp", "system": { "description": "", "actions": {}, @@ -148,12 +148,12 @@ "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.346", + "coreVersion": "13.347", "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753836676831, - "modifiedTime": 1753836820180, - "lastModifiedBy": "FecEtPuoQh6MpjQ0" + "modifiedTime": 1754846000470, + "lastModifiedBy": "H02dtt2xvVJvYESk" }, "_id": "S6nB0CNlzdU05o5U", "sort": 0, diff --git a/src/packs/items/weapons/weapon_Legendary_Light_Frame_Wheelchair_Xt8tVSn5Fu6ly6LF.json b/src/packs/items/weapons/weapon_Legendary_Light_Frame_Wheelchair_Xt8tVSn5Fu6ly6LF.json index 5b704d6c..622fcf12 100644 --- a/src/packs/items/weapons/weapon_Legendary_Light_Frame_Wheelchair_Xt8tVSn5Fu6ly6LF.json +++ b/src/packs/items/weapons/weapon_Legendary_Light_Frame_Wheelchair_Xt8tVSn5Fu6ly6LF.json @@ -2,7 +2,7 @@ "folder": "beilKE5ZPAihKg3O", "name": "Legendary Light-Frame Wheelchair", "type": "weapon", - "img": "icons/svg/item-bag.svg", + "img": "systems/daggerheart/assets/icons/documents/items/LightWheelchair.webp", "system": { "description": "", "actions": { @@ -141,12 +141,12 @@ "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.346", + "coreVersion": "13.347", "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753836615437, - "modifiedTime": 1753836826572, - "lastModifiedBy": "FecEtPuoQh6MpjQ0" + "modifiedTime": 1754846023338, + "lastModifiedBy": "H02dtt2xvVJvYESk" }, "_id": "Xt8tVSn5Fu6ly6LF", "sort": 0, 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_Light_Frame_Wheelchair_iaGnlUkShBgdeMo0.json b/src/packs/items/weapons/weapon_Light_Frame_Wheelchair_iaGnlUkShBgdeMo0.json index 543a0f23..9bb97d2b 100644 --- a/src/packs/items/weapons/weapon_Light_Frame_Wheelchair_iaGnlUkShBgdeMo0.json +++ b/src/packs/items/weapons/weapon_Light_Frame_Wheelchair_iaGnlUkShBgdeMo0.json @@ -3,7 +3,7 @@ "name": "Light-Frame Wheelchair", "type": "weapon", "_id": "iaGnlUkShBgdeMo0", - "img": "icons/svg/item-bag.svg", + "img": "systems/daggerheart/assets/icons/documents/items/LightWheelchair.webp", "system": { "description": "", "actions": { @@ -143,12 +143,12 @@ "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.346", + "coreVersion": "13.347", "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753836579296, - "modifiedTime": 1753836587147, - "lastModifiedBy": "FecEtPuoQh6MpjQ0" + "modifiedTime": 1754846015528, + "lastModifiedBy": "H02dtt2xvVJvYESk" }, "_key": "!items!iaGnlUkShBgdeMo0" } 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_Wand_of_Essek_ZrRGNjGCgZTTfgDG.json b/src/packs/items/weapons/weapon_Wand_of_Essek_ZrRGNjGCgZTTfgDG.json index 96f3e22e..76b82f6a 100644 --- a/src/packs/items/weapons/weapon_Wand_of_Essek_ZrRGNjGCgZTTfgDG.json +++ b/src/packs/items/weapons/weapon_Wand_of_Essek_ZrRGNjGCgZTTfgDG.json @@ -12,7 +12,7 @@ "actionType": "action", "chatDisplay": true, "name": "Bend Time", - "description": "DAGGERHEART.CONFIG.WeaponFeature.actions.bendTime.description", + "description": "DAGGERHEART.CONFIG.WeaponFeature.timebending.actions.bendTime.description", "img": "icons/magic/time/clock-spinning-gold-pink.webp", "_id": "TzNsQcYm4OVNFQyD", "effects": [], 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" } diff --git a/src/packs/items/weapons/weapon_Widogast_Pendant_8Z5QrThfwkYPXNco.json b/src/packs/items/weapons/weapon_Widogast_Pendant_8Z5QrThfwkYPXNco.json index 6b10b403..743aef06 100644 --- a/src/packs/items/weapons/weapon_Widogast_Pendant_8Z5QrThfwkYPXNco.json +++ b/src/packs/items/weapons/weapon_Widogast_Pendant_8Z5QrThfwkYPXNco.json @@ -12,7 +12,7 @@ "actionType": "action", "chatDisplay": true, "name": "Bend Time", - "description": "DAGGERHEART.CONFIG.WeaponFeature.actions.bendTime.description", + "description": "DAGGERHEART.CONFIG.WeaponFeature.timebending.actions.bendTime.description", "img": "icons/magic/time/clock-spinning-gold-pink.webp", "_id": "gQFuVhPeKzNj93p6", "effects": [], diff --git a/src/packs/journals/journal_Welcome___Information_g7NhKvwltwafmMyR.json b/src/packs/journals/journal_Welcome___Information_g7NhKvwltwafmMyR.json index 6620d62c..af31907f 100644 --- a/src/packs/journals/journal_Welcome___Information_g7NhKvwltwafmMyR.json +++ b/src/packs/journals/journal_Welcome___Information_g7NhKvwltwafmMyR.json @@ -132,7 +132,7 @@ "image": {}, "text": { "format": 1, - "content": "

This product includes materials from the Daggerheart System Reference Document 1.0, © Critical Role, LLC. under the terms of the Darrington Press Community Gaming (DPCGL) License. More information can be found at https://www.daggerheart.com. There are no previous modifications by others.

The Foundryborne Team

The Foundryborne Team consists of:

  • @harryfuralle

  • @cptn_cosmo

  • @molilo

  • @joaquinp98

  • @dapoulp

  • @ikraik

  • @irktheimp

  • @jacobwojo

  • @vyrth

  • @.ontaro

  • @saatsin

  • @david.xyz

  • @lazjen

With Art from:

  • UsernameIsInUse

And special thanks to our hard working community testers:

  • @lazjen

We would also like to thank the FoundryVTT team for their support in publishing this system.

And, of course, special thanks to the teams at Critical Role and Darrington Press for making such a wonderful game and updating the license to allow a FoundryVTT version of the system.

The Foundryborne Community

Without our amazing community this project would not have been possible.

You kept us going with both direct contributions and just endless support!

We thank you with all our hearts.

Come join us!

" + "content": "

This product includes materials from the Daggerheart System Reference Document 1.0, © Critical Role, LLC. under the terms of the Darrington Press Community Gaming (DPCGL) License. More information can be found at https://www.daggerheart.com. There are no previous modifications by others.

The Foundryborne Team

The Foundryborne Team consists of:

  • @harryfuralle

  • @cptn_cosmo

  • @molilo

  • @joaquinp98

  • @dapoulp

  • @ikraik

  • @irktheimp

  • @jacobwojo

  • @vyrth

  • @.ontaro

  • @saatsin

  • @david.xyz

  • @lazjen

With Art from:

  • @molilo (Foundryborne User Interface & Domain Card Placeholder Artwork)

  • @UsernameIsInUse (Foundryborne Logo, Website Design, Duality Roll Icon

  • @CyrensMaps (Combat Wheelchair Icons)

And special thanks to our hard working community testers:

  • @lazjen

We would also like to thank the FoundryVTT team for their support in publishing this system, as well as providing countless Icons to be used in many places.

And, of course, special thanks to the teams at Critical Role and Darrington Press for making such a wonderful game and updating the license to allow a FoundryVTT version of the system.

The Foundryborne Community

Without our amazing community this project would not have been possible.

You kept us going with both direct contributions and just endless support!

We thank you with all our hearts.

Come join us!

" }, "video": { "controls": true, @@ -153,8 +153,8 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1754225939902, - "modifiedTime": 1754668980876, - "lastModifiedBy": "Cf0YKwnZ1OHBZWl8" + "modifiedTime": 1754847043391, + "lastModifiedBy": "9GFCfEY8m5Co2mHo" }, "_key": "!journal.pages!g7NhKvwltwafmMyR.dP6xSKEld4TSqHhK" } diff --git a/styles/less/sheets-settings/adversary-settings/features.less b/styles/less/sheets-settings/adversary-settings/features.less index 037a08ea..29c9874e 100644 --- a/styles/less/sheets-settings/adversary-settings/features.less +++ b/styles/less/sheets-settings/adversary-settings/features.less @@ -14,8 +14,14 @@ margin-bottom: 12px; } - .feature-list { + .feature-list, + .features-dragger { display: flex; + width: 100%; + font-family: @font-body; + } + + .feature-list { flex-direction: column; gap: 10px; @@ -45,5 +51,16 @@ } } } + + .features-dragger { + align-items: center; + justify-content: center; + box-sizing: border-box; + height: 40px; + margin-top: 10px; + border: 1px dashed light-dark(@dark-blue-50, @beige-50); + border-radius: 3px; + color: light-dark(@dark-blue-50, @beige-50); + } } } 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/styles/less/ui/combat-sidebar/encounter-controls.less b/styles/less/ui/combat-sidebar/encounter-controls.less index 58deaae8..fd0c1aee 100644 --- a/styles/less/ui/combat-sidebar/encounter-controls.less +++ b/styles/less/ui/combat-sidebar/encounter-controls.less @@ -2,43 +2,14 @@ .encounter-controls.combat { justify-content: space-between; - .encounter-fear-controls { + .encounter-title { + text-align: left; + } + + .inner-controls { display: flex; align-items: center; - gap: 8px; - - .encounter-fear-dice-container { - display: flex; - gap: 2px; - - .encounter-control-fear-container { - display: flex; - position: relative; - align-items: center; - justify-content: center; - color: black; - - .dice { - height: 22px; - width: 22px; - } - - .encounter-control-fear { - position: absolute; - font-size: 16px; - } - - .encounter-control-counter { - position: absolute; - right: -10px; - color: var(--color-text-secondary); - } - } - } - - .encounter-countdowns { - color: var(--content-link-icon-color); - } + gap: 4px; } .control-buttons { diff --git a/styles/less/ui/item-browser/item-browser.less b/styles/less/ui/item-browser/item-browser.less index e7ff3b12..df35d60b 100644 --- a/styles/less/ui/item-browser/item-browser.less +++ b/styles/less/ui/item-browser/item-browser.less @@ -175,12 +175,23 @@ display: flex; flex-direction: column; [data-folder-id] { - padding: 5px 10px; + display: flex; + justify-content: space-between; + padding: 10px; border: 1px solid transparent; font-family: @font-body; transition: all 0.1s ease; + + &.expanded + .subfolder-list { + grid-template-rows: 1fr; + } + + &:has(+ .subfolder-list):after { + content: "+"; + } } + [data-folder-id]:has(+ .subfolder-list .is-selected), .is-selected, [data-folder-id]:hover { font-weight: bold; @@ -190,9 +201,15 @@ } .subfolder-list { - margin: 5px 0; + display: grid; + grid-template-rows: 0fr; + transition: grid-template-rows 0.3s ease-in-out; gap: 0; + [data-folder-id] { + padding: 5px 10px; + } + .is-selected, [data-folder-id]:hover { font-weight: bold; @@ -200,6 +217,10 @@ background-color: light-dark(@dark-blue-10, @golden-10); color: light-dark(@dark-blue, @golden); } + + .wrapper { + overflow: hidden; + } } } 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; } diff --git a/system.json b/system.json index 7501cfa7..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"], @@ -262,6 +266,7 @@ "abilityUse": {} } }, + "background": "systems/daggerheart/assets/logos/FoundrybornBackgroundLogo.png", "primaryTokenAttribute": "resources.hitPoints", "secondaryTokenAttribute": "resources.stress", "url": "https://your/hosted/system/repo/", 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/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}} diff --git a/templates/sheets-settings/adversary-settings/features.hbs b/templates/sheets-settings/adversary-settings/features.hbs index a287c2a8..b26fa10c 100644 --- a/templates/sheets-settings/adversary-settings/features.hbs +++ b/templates/sheets-settings/adversary-settings/features.hbs @@ -10,7 +10,7 @@ {{localize tabs.features.label}}
    {{#each document.system.features as |feature|}} -
  • +
  • {{feature.name}} @@ -22,5 +22,8 @@
  • {{/each}}
+
+ {{localize "DAGGERHEART.GENERAL.dropFeaturesHere"}} +
\ No newline at end of file diff --git a/templates/sheets-settings/companion-settings/attack.hbs b/templates/sheets-settings/companion-settings/attack.hbs index bebe40b3..0ec43d35 100644 --- a/templates/sheets-settings/companion-settings/attack.hbs +++ b/templates/sheets-settings/companion-settings/attack.hbs @@ -5,16 +5,16 @@ >
{{localize "DAGGERHEART.GENERAL.basics"}} - {{formGroup systemFields.attack.fields.img value=document.system.attack.img label="DAGGERHEART.GENERAL.imagePath" name="system.attack.img" localize=true}} - {{formGroup systemFields.attack.fields.name value=document.system.attack.name label="DAGGERHEART.ACTIONS.Settings.attackName" name="system.attack.name" localize=true}} + {{formGroup systemFields.attack.fields.img value=document._source.system.attack.img label="DAGGERHEART.GENERAL.imagePath" name="system.attack.img" localize=true}} + {{formGroup systemFields.attack.fields.name value=document._source.system.attack.name label="DAGGERHEART.ACTIONS.Settings.attackName" name="system.attack.name" localize=true}}
{{localize "DAGGERHEART.GENERAL.attack"}} - {{formField systemFields.attack.fields.range value=document.system.attack.range label="DAGGERHEART.GENERAL.range" name="system.attack.range" localize=true}} + {{formField systemFields.attack.fields.range value=document._source.system.attack.range label="DAGGERHEART.GENERAL.range" name="system.attack.range" localize=true}} {{#if systemFields.attack.fields.target.fields}} - {{ formField systemFields.attack.fields.target.fields.type value=document.system.attack.target.type label="DAGGERHEART.GENERAL.Target.single" name="system.attack.target.type" localize=true}} - {{#if (and document.system.attack.target.type (not (eq document.system.attack.target.type 'self')))}} - {{ formField systemFields.attack.fields.target.fields.amount value=document.system.attack.target.amount label="DAGGERHEART.GENERAL.amount" name="system.attack.target.amount" localize=true}} + {{ formField systemFields.attack.fields.target.fields.type value=document._source.system.attack.target.type label="DAGGERHEART.GENERAL.Target.single" name="system.attack.target.type" localize=true}} + {{#if (and document._source.system.attack.target.type (not (eq document._source.system.attack.target.type 'self')))}} + {{ formField systemFields.attack.fields.target.fields.amount value=document._source.system.attack.target.amount label="DAGGERHEART.GENERAL.amount" name="system.attack.target.amount" localize=true}} {{/if}} {{/if}}
diff --git a/templates/sheets-settings/companion-settings/details.hbs b/templates/sheets-settings/companion-settings/details.hbs index 4f1825d8..e4293443 100644 --- a/templates/sheets-settings/companion-settings/details.hbs +++ b/templates/sheets-settings/companion-settings/details.hbs @@ -6,18 +6,18 @@
{{localize 'DAGGERHEART.GENERAL.basics'}}
- {{formGroup systemFields.evasion value=document.system.evasion localize=true}} - {{formGroup systemFields.resources.fields.stress.fields.value value=document.system.resources.stress.value label='DAGGERHEART.ACTORS.Companion.FIELDS.resources.stress.currentStress.label' localize=true}} - {{formGroup systemFields.resources.fields.stress.fields.max value=document.system.resources.stress.max label='DAGGERHEART.ACTORS.Companion.FIELDS.resources.stress.maxStress.label' localize=true}} + {{formGroup systemFields.evasion value=document._source.system.evasion localize=true}} + {{formGroup systemFields.resources.fields.stress.fields.value value=document._source.system.resources.stress.value label='DAGGERHEART.ACTORS.Companion.FIELDS.resources.stress.currentStress.label' localize=true}} + {{formGroup systemFields.resources.fields.stress.fields.max value=document._source.system.resources.stress.max label='DAGGERHEART.ACTORS.Companion.FIELDS.resources.stress.maxStress.label' localize=true}}
- + \ No newline at end of file diff --git a/templates/sheets-settings/environment-settings/details.hbs b/templates/sheets-settings/environment-settings/details.hbs index 1f8c45f2..ecb47ca8 100644 --- a/templates/sheets-settings/environment-settings/details.hbs +++ b/templates/sheets-settings/environment-settings/details.hbs @@ -6,11 +6,11 @@
{{localize 'DAGGERHEART.GENERAL.basics'}}
- {{formGroup systemFields.tier value=document.system.tier localize=true}} - {{formGroup systemFields.type value=document.system.type localize=true}} - {{formGroup systemFields.difficulty value=document.system.difficulty localize=true}} + {{formGroup systemFields.tier value=document._source.system.tier localize=true}} + {{formGroup systemFields.type value=document._source.system.type localize=true}} + {{formGroup systemFields.difficulty value=document._source.system.difficulty localize=true}}
- {{formField systemFields.description value=document.system.description label=(localize "DAGGERHEART.ACTORS.Environment.FIELDS.description.label")}} - {{formField systemFields.impulses value=document.system.impulses label=(localize "DAGGERHEART.ACTORS.Environment.FIELDS.impulses.label")}} + {{formField systemFields.description value=document._source.system.description label=(localize "DAGGERHEART.ACTORS.Environment.FIELDS.description.label")}} + {{formField systemFields.impulses value=document._source.system.impulses label=(localize "DAGGERHEART.ACTORS.Environment.FIELDS.impulses.label")}}
\ No newline at end of file diff --git a/templates/sheets/actors/character/header.hbs b/templates/sheets/actors/character/header.hbs index b6f51bcf..88a72fb8 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.domainData as |data|}}
- +
{{/each}}
@@ -105,9 +105,9 @@
- {{#each this.attributes as |attribute key|}} -
-
+ {{#each this.attributes as |attribute key|}} +
+
{{localize (concat 'DAGGERHEART.CONFIG.Traits.' key '.short')}} {{#if attribute.tierMarked}} diff --git a/templates/ui/combatTracker/combatTrackerHeader.hbs b/templates/ui/combatTracker/combatTrackerHeader.hbs index de666168..a34e4743 100644 --- a/templates/ui/combatTracker/combatTrackerHeader.hbs +++ b/templates/ui/combatTracker/combatTrackerHeader.hbs @@ -55,7 +55,7 @@
- +
{{fear}}
@@ -63,7 +63,6 @@
{{/if}} - {{!-- Combat Status --}} {{#if combats.length}} @@ -78,14 +77,16 @@ {{!-- Combat Controls --}} - {{#if hasCombat}} -
-
- -
- {{/if}} - +
+ {{#if hasCombat}} + +
+
+ +
+ {{/if}} +
diff --git a/templates/ui/itemBrowser/sidebar.hbs b/templates/ui/itemBrowser/sidebar.hbs index 6c395a4b..56d9db6d 100644 --- a/templates/ui/itemBrowser/sidebar.hbs +++ b/templates/ui/itemBrowser/sidebar.hbs @@ -7,19 +7,23 @@
{{#each folders}} -
{{label}}
+
{{label}}
{{!--
{{label}}
--}} -
- {{#each folders}} -
- • {{label}} + {{#if folders.length}} +
+
+ {{#each folders}} +
+ • {{label}} +
+ {{/each}}
- {{/each}} -
+
+ {{/if}} {{/each}}