From a54f4e383119e62fbc1b2666e02421c9e429e02c Mon Sep 17 00:00:00 2001 From: WBHarry <89362246+WBHarry@users.noreply.github.com> Date: Sat, 26 Jul 2025 22:34:20 +0200 Subject: [PATCH 01/14] [Bug] Downtime Actions Fixes (#421) * . * Added a temp fix for a bug in action healing section * Corrected rules.attack.roll.trait * . --- lang/en.json | 7 ++++++ .../settings/homebrewSettings.mjs | 24 +++++++++++++++---- .../applications/sheets/items/beastform.mjs | 1 + module/config/generalConfig.mjs | 6 +++++ module/data/actor/character.mjs | 18 +++++++++++--- module/data/fields/actionField.mjs | 5 +++- module/data/item/weapon.mjs | 17 +++++++++++++ module/documents/activeEffect.mjs | 3 ++- 8 files changed, 71 insertions(+), 10 deletions(-) diff --git a/lang/en.json b/lang/en.json index 182c7419..5d434861 100755 --- a/lang/en.json +++ b/lang/en.json @@ -1243,6 +1243,9 @@ "attack": { "damage": { "value": { "label": "Base Attack: Damage" } + }, + "roll": { + "trait": { "label": "Base Attack: Trait" } } } }, @@ -1593,6 +1596,10 @@ "hint": "test" } } + }, + "ResetSettings": { + "resetConfirmationTitle": "Reset Settings", + "resetConfirmationText": "Are you sure you want to reset the {settings}?" } }, "UI": { diff --git a/module/applications/settings/homebrewSettings.mjs b/module/applications/settings/homebrewSettings.mjs index 2aa2660e..1b73747c 100644 --- a/module/applications/settings/homebrewSettings.mjs +++ b/module/applications/settings/homebrewSettings.mjs @@ -136,10 +136,14 @@ export default class DhHomebrewSettings extends HandlebarsApplicationMixin(Appli ...move, name: game.i18n.localize(move.name), description: game.i18n.localize(move.description), - actions: move.actions.map(action => ({ - ...action, - name: game.i18n.localize(action.name) - })) + actions: move.actions.reduce((acc, key) => { + const action = move.actions[key]; + acc[key] = { + ...action, + name: game.i18n.localize(action.name) + }; + return acc; + }, {}) }; return acc; @@ -165,8 +169,18 @@ export default class DhHomebrewSettings extends HandlebarsApplicationMixin(Appli } static async reset() { + const confirmed = await foundry.applications.api.DialogV2.confirm({ + window: { + title: game.i18n.format('DAGGERHEART.SETTINGS.ResetSettings.resetConfirmationTitle') + }, + content: game.i18n.format('DAGGERHEART.SETTINGS.ResetSettings.resetConfirmationText', { + settings: game.i18n.localize('DAGGERHEART.SETTINGS.Menu.homebrew.name') + }) + }); + if (!confirmed) return; + const resetSettings = new DhHomebrew(); - let localizedSettings = this.localizeObject(resetSettings); + let localizedSettings = this.localizeObject(resetSettings.toObject()); this.settings.updateSource(localizedSettings); this.render(); } diff --git a/module/applications/sheets/items/beastform.mjs b/module/applications/sheets/items/beastform.mjs index 1d6adcd3..1c4a4880 100644 --- a/module/applications/sheets/items/beastform.mjs +++ b/module/applications/sheets/items/beastform.mjs @@ -81,6 +81,7 @@ export default class BeastformSheet extends DHBaseItemSheet { case 'effects': context.effects.actives = context.effects.actives.map(effect => { const data = effect.toObject(); + data.uuid = effect.uuid; data.id = effect.id; if (effect.type === 'beastform') data.mandatory = true; diff --git a/module/config/generalConfig.mjs b/module/config/generalConfig.mjs index de33eade..fff7b613 100644 --- a/module/config/generalConfig.mjs +++ b/module/config/generalConfig.mjs @@ -141,6 +141,7 @@ export const defaultRestOptions = { actions: { tendToWounds: { type: 'healing', + systemPath: 'restMoves.shortRest.moves.tendToWounds.actions', name: game.i18n.localize('DAGGERHEART.APPLICATIONS.Downtime.shortRest.tendToWounds.name'), img: 'icons/magic/life/cross-worn-green.webp', actionType: 'action', @@ -166,6 +167,7 @@ export const defaultRestOptions = { actions: { clearStress: { type: 'healing', + systemPath: 'restMoves.shortRest.moves.clearStress.actions', name: game.i18n.localize('DAGGERHEART.APPLICATIONS.Downtime.shortRest.clearStress.name'), img: 'icons/magic/perception/eye-ringed-green.webp', actionType: 'action', @@ -191,6 +193,7 @@ export const defaultRestOptions = { actions: { repairArmor: { type: 'healing', + systemPath: 'restMoves.shortRest.moves.repairArmor.actions', name: game.i18n.localize('DAGGERHEART.APPLICATIONS.Downtime.shortRest.repairArmor.name'), img: 'icons/skills/trades/smithing-anvil-silver-red.webp', actionType: 'action', @@ -226,6 +229,7 @@ export const defaultRestOptions = { actions: { tendToWounds: { type: 'healing', + systemPath: 'restMoves.longRest.moves.tendToWounds.actions', name: game.i18n.localize('DAGGERHEART.APPLICATIONS.Downtime.longRest.tendToWounds.name'), img: 'icons/magic/life/cross-worn-green.webp', actionType: 'action', @@ -251,6 +255,7 @@ export const defaultRestOptions = { actions: { clearStress: { type: 'healing', + systemPath: 'restMoves.longRest.moves.clearStress.actions', name: game.i18n.localize('DAGGERHEART.APPLICATIONS.Downtime.longRest.clearStress.name'), img: 'icons/magic/perception/eye-ringed-green.webp', actionType: 'action', @@ -276,6 +281,7 @@ export const defaultRestOptions = { actions: { repairArmor: { type: 'healing', + systemPath: 'restMoves.longRest.moves.repairArmor.actions', name: game.i18n.localize('DAGGERHEART.APPLICATIONS.Downtime.longRest.repairArmor.name'), img: 'icons/skills/trades/smithing-anvil-silver-red.webp', actionType: 'action', diff --git a/module/data/actor/character.mjs b/module/data/actor/character.mjs index 289b5dba..5cd63e84 100644 --- a/module/data/actor/character.mjs +++ b/module/data/actor/character.mjs @@ -204,7 +204,7 @@ export default class DhCharacter extends BaseDataActor { }) }) }), - maxLoadout : new fields.NumberField({ + maxLoadout: new fields.NumberField({ integer: true, initial: 0, label: 'DAGGERHEART.GENERAL.Bonuses.maxLoadout.label' @@ -249,6 +249,15 @@ export default class DhCharacter extends BaseDataActor { initial: '@profd4', label: 'DAGGERHEART.GENERAL.Rules.attack.damage.value.label' }) + }), + roll: new fields.SchemaField({ + trait: new fields.StringField({ + required: true, + choices: CONFIG.DH.ACTOR.abilities, + nullable: true, + initial: null, + label: 'DAGGERHEART.GENERAL.Rules.attack.roll.trait.label' + }) }) }), weapon: new fields.SchemaField({ @@ -329,13 +338,15 @@ export default class DhCharacter extends BaseDataActor { get loadoutSlot() { const loadoutCount = this.domainCards.loadout?.length ?? 0, - max = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Homebrew).maxLoadout + this.bonuses.maxLoadout; + max = + game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Homebrew).maxLoadout + + this.bonuses.maxLoadout; return { current: loadoutCount, available: Math.max(max - loadoutCount, 0), max - } + }; } get armor() { @@ -535,6 +546,7 @@ export default class DhCharacter extends BaseDataActor { prepareDerivedData() { const baseHope = this.resources.hope.value + (this.companion?.system?.resources?.hope ?? 0); this.resources.hope.value = Math.min(baseHope, this.resources.hope.max); + this.attack.roll.trait = this.rules.attack.roll.trait ?? this.attack.roll.trait; } getRollData() { diff --git a/module/data/fields/actionField.mjs b/module/data/fields/actionField.mjs index 00197e53..287d53ee 100644 --- a/module/data/fields/actionField.mjs +++ b/module/data/fields/actionField.mjs @@ -215,7 +215,10 @@ export function ActionMixin(Base) { await this.parent.updateSource({ [path]: updates }, options); result = this.parent; } else { - result = await this.item.update({ [path]: updates }, options); + /* Fix me - For some reason updating the "healing" section in particular doesn't work without this */ + await this.item.update({ [path]: updates }, options); + await this.item.updateSource({ [path]: updates }, options); + result = this.item; } return this.inCollection diff --git a/module/data/item/weapon.mjs b/module/data/item/weapon.mjs index 71d1e08d..96c0eeba 100644 --- a/module/data/item/weapon.mjs +++ b/module/data/item/weapon.mjs @@ -63,6 +63,19 @@ export default class DHWeapon extends AttachableItem { ] } } + }), + rules: new fields.SchemaField({ + attack: new fields.SchemaField({ + roll: new fields.SchemaField({ + trait: new fields.StringField({ + required: true, + choices: CONFIG.DH.ACTOR.abilities, + nullable: true, + initial: null, + label: 'DAGGERHEART.GENERAL.Rules.attack.roll.trait.label' + }) + }) + }) }) }; } @@ -77,6 +90,10 @@ export default class DHWeapon extends AttachableItem { ); } + prepareDerivedData() { + this.attack.roll.trait = this.rules.attack.roll.trait ?? this.attack.roll.trait; + } + async _preUpdate(changes, options, user) { const allowed = await super._preUpdate(changes, options, user); if (allowed === false) return false; diff --git a/module/documents/activeEffect.mjs b/module/documents/activeEffect.mjs index 6c4545b1..3c45929b 100644 --- a/module/documents/activeEffect.mjs +++ b/module/documents/activeEffect.mjs @@ -55,7 +55,8 @@ export default class DhActiveEffect extends ActiveEffect { } static applyField(model, change, field) { - change.value = this.effectSafeEval(itemAbleRollParse(change.value, model, change.effect.parent)); + const evalValue = this.effectSafeEval(itemAbleRollParse(change.value, model, change.effect.parent)); + change.value = evalValue ?? change.value; super.applyField(model, change, field); } From e98adc55b7060550a95676e6d7745145409c4a81 Mon Sep 17 00:00:00 2001 From: WBHarry <89362246+WBHarry@users.noreply.github.com> Date: Sat, 26 Jul 2025 22:36:48 +0200 Subject: [PATCH 02/14] GetDocFromElement is now async to work with compendiums. Added GetDocFromElementSync for use in contextMenu condition cases (#420) --- .../sheets-configs/environment-settings.mjs | 2 +- .../applications/sheets/actors/character.mjs | 66 +++++++++++-------- .../sheets/api/application-mixin.mjs | 51 +++++++------- module/applications/sheets/api/base-item.mjs | 4 +- module/helpers/utils.mjs | 20 +++++- 5 files changed, 89 insertions(+), 54 deletions(-) diff --git a/module/applications/sheets-configs/environment-settings.mjs b/module/applications/sheets-configs/environment-settings.mjs index 7a91b272..7d4b9640 100644 --- a/module/applications/sheets-configs/environment-settings.mjs +++ b/module/applications/sheets-configs/environment-settings.mjs @@ -75,7 +75,7 @@ export default class DHEnvironmentSettings extends DHBaseActorSettings { * @returns */ static async #deleteAdversary(_event, target) { - const doc = getDocFromElement(target); + const doc = await getDocFromElement(target); const { category } = target.dataset; const path = `system.potentialAdversaries.${category}.adversaries`; diff --git a/module/applications/sheets/actors/character.mjs b/module/applications/sheets/actors/character.mjs index 31755bca..d6c61718 100644 --- a/module/applications/sheets/actors/character.mjs +++ b/module/applications/sheets/actors/character.mjs @@ -4,7 +4,7 @@ import { abilities } from '../../../config/actorConfig.mjs'; import DhCharacterlevelUp from '../../levelup/characterLevelup.mjs'; import DhCharacterCreation from '../../characterCreation/characterCreation.mjs'; import FilterMenu from '../../ux/filter-menu.mjs'; -import { getDocFromElement, itemAbleRollParse } from '../../../helpers/utils.mjs'; +import { getDocFromElement, getDocFromElementSync } from '../../../helpers/utils.mjs'; /**@typedef {import('@client/applications/_types.mjs').ApplicationClickAction} ApplicationClickAction */ @@ -258,19 +258,27 @@ export default class CharacterSheet extends DHBaseActorSheet { { name: 'toLoadout', icon: 'fa-solid fa-arrow-up', - condition: target => getDocFromElement(target).system.inVault, - callback: target => { - const doc = getDocFromElement(target), - actorLoadout = doc.actor.system.loadoutSlot; - if(actorLoadout.available) return doc.update({ 'system.inVault': false }); - ui.notifications.warn(game.i18n.format('DAGGERHEART.UI.Notifications.loadoutMaxReached', { max: actorLoadout.max })) + condition: target => { + const doc = getDocFromElementSync(target); + return doc && system.inVault; + }, + callback: async target => { + const doc = await getDocFromElement(target); + const actorLoadout = doc.actor.system.loadoutSlot; + if (actorLoadout.available) return doc.update({ 'system.inVault': false }); + ui.notifications.warn( + game.i18n.format('DAGGERHEART.UI.Notifications.loadoutMaxReached', { max: actorLoadout.max }) + ); } }, { name: 'toVault', icon: 'fa-solid fa-arrow-down', - condition: target => !getDocFromElement(target).system.inVault, - callback: target => getDocFromElement(target).update({ 'system.inVault': true }) + condition: target => { + const doc = getDocFromElementSync(target); + return doc && !doc.system.inVault; + }, + callback: async target => (await getDocFromElement(target)).update({ 'system.inVault': true }) } ].map(option => ({ ...option, @@ -292,13 +300,19 @@ export default class CharacterSheet extends DHBaseActorSheet { { name: 'equip', icon: 'fa-solid fa-hands', - condition: target => !getDocFromElement(target).system.equipped, + condition: target => { + const doc = getDocFromElementSync(target); + return doc && !doc.system.equipped; + }, callback: (target, event) => CharacterSheet.#toggleEquipItem.call(this, event, target) }, { name: 'unequip', icon: 'fa-solid fa-hands', - condition: target => getDocFromElement(target).system.equipped, + condition: target => { + const doc = getDocFromElementSync(target); + return doc && system.equipped; + }, callback: (target, event) => CharacterSheet.#toggleEquipItem.call(this, event, target) } ].map(option => ({ @@ -407,11 +421,11 @@ export default class CharacterSheet extends DHBaseActorSheet { * @param {HTMLElement} html The container to filter items from. * @protected */ - _onSearchFilterInventory(event, query, rgx, html) { + async _onSearchFilterInventory(_event, query, rgx, html) { this.#filteredItems.inventory.search.clear(); for (const li of html.querySelectorAll('.inventory-item')) { - const item = getDocFromElement(li); + const item = await getDocFromElement(li); const matchesSearch = !query || foundry.applications.ux.SearchFilter.testQuery(rgx, item.name); if (matchesSearch) this.#filteredItems.inventory.search.add(item.id); const { menu } = this.#filteredItems.inventory; @@ -427,11 +441,11 @@ export default class CharacterSheet extends DHBaseActorSheet { * @param {HTMLElement} html The container to filter items from. * @protected */ - _onSearchFilterCard(event, query, rgx, html) { + async _onSearchFilterCard(_event, query, rgx, html) { this.#filteredItems.loadout.search.clear(); for (const li of html.querySelectorAll('.items-list .inventory-item, .card-list .card-item')) { - const item = getDocFromElement(li); + const item = await getDocFromElement(li); const matchesSearch = !query || foundry.applications.ux.SearchFilter.testQuery(rgx, item.name); if (matchesSearch) this.#filteredItems.loadout.search.add(item.id); const { menu } = this.#filteredItems.loadout; @@ -478,11 +492,11 @@ export default class CharacterSheet extends DHBaseActorSheet { * @param {HTMLElement} html * @param {import('../ux/filter-menu.mjs').FilterItem[]} filters */ - _onMenuFilterInventory(event, html, filters) { + async _onMenuFilterInventory(_event, html, filters) { this.#filteredItems.inventory.menu.clear(); for (const li of html.querySelectorAll('.inventory-item')) { - const item = getDocFromElement(li); + const item = await getDocFromElement(li); const matchesMenu = filters.length === 0 || filters.some(f => foundry.applications.ux.SearchFilter.evaluateFilter(item, f)); @@ -499,11 +513,11 @@ export default class CharacterSheet extends DHBaseActorSheet { * @param {HTMLElement} html * @param {import('../ux/filter-menu.mjs').FilterItem[]} filters */ - _onMenuFilterLoadout(event, html, filters) { + async _onMenuFilterLoadout(_event, html, filters) { this.#filteredItems.loadout.menu.clear(); for (const li of html.querySelectorAll('.items-list .inventory-item, .card-list .card-item')) { - const item = getDocFromElement(li); + const item = await getDocFromElement(li); const matchesMenu = filters.length === 0 || filters.some(f => foundry.applications.ux.SearchFilter.evaluateFilter(item, f)); @@ -519,7 +533,7 @@ export default class CharacterSheet extends DHBaseActorSheet { /* -------------------------------------------- */ async updateItemResource(event) { - const item = getDocFromElement(event.currentTarget); + const item = await getDocFromElement(event.currentTarget); if (!item) return; const max = event.currentTarget.max ? Number(event.currentTarget.max) : null; @@ -529,7 +543,7 @@ export default class CharacterSheet extends DHBaseActorSheet { } async updateItemQuantity(event) { - const item = getDocFromElement(event.currentTarget); + const item = await getDocFromElement(event.currentTarget); if (!item) return; await item.update({ 'system.quantity': event.currentTarget.value }); @@ -609,7 +623,7 @@ export default class CharacterSheet extends DHBaseActorSheet { * @type {ApplicationClickAction} */ static async #toggleEquipItem(_event, button) { - const item = getDocFromElement(button); + const item = await getDocFromElement(button); if (!item) return; if (item.system.equipped) { await item.update({ 'system.equipped': false }); @@ -664,7 +678,7 @@ export default class CharacterSheet extends DHBaseActorSheet { * @type {ApplicationClickAction} */ static async #toggleVault(_event, button) { - const doc = getDocFromElement(button); + const doc = await getDocFromElement(button); await doc?.update({ 'system.inVault': !doc.system.inVault }); } @@ -673,7 +687,7 @@ export default class CharacterSheet extends DHBaseActorSheet { * @type {ApplicationClickAction} */ static async #toggleResourceDice(event, target) { - const item = getDocFromElement(target); + const item = await getDocFromElement(target); const { dice } = event.target.closest('.item-resource').dataset; const diceState = item.system.resource.diceStates[dice]; @@ -688,7 +702,7 @@ export default class CharacterSheet extends DHBaseActorSheet { * @type {ApplicationClickAction} */ static async #handleResourceDice(_, target) { - const item = getDocFromElement(target); + const item = await getDocFromElement(target); if (!item) return; const rollValues = await game.system.api.applications.dialogs.ResourceDiceDialog.create(item, this.document); @@ -709,7 +723,7 @@ export default class CharacterSheet extends DHBaseActorSheet { } async _onDragStart(event) { - const item = getDocFromElement(event.target); + const item = await getDocFromElement(event.target); const dragData = { type: item.documentName, diff --git a/module/applications/sheets/api/application-mixin.mjs b/module/applications/sheets/api/application-mixin.mjs index 51328c8d..c5c9b46f 100644 --- a/module/applications/sheets/api/application-mixin.mjs +++ b/module/applications/sheets/api/application-mixin.mjs @@ -1,6 +1,5 @@ const { HandlebarsApplicationMixin } = foundry.applications.api; -import { getDocFromElement, tagifyElement } from '../../../helpers/utils.mjs'; -import DHActionConfig from '../../sheets-configs/action-config.mjs'; +import { getDocFromElement, getDocFromElementSync, tagifyElement } from '../../../helpers/utils.mjs'; /** * @typedef {import('@client/applications/_types.mjs').ApplicationClickAction} ApplicationClickAction @@ -259,14 +258,20 @@ export default function DHApplicationMixin(Base) { { name: 'disableEffect', icon: 'fa-solid fa-lightbulb', - condition: target => !getDocFromElement(target).disabled, - callback: target => getDocFromElement(target).update({ disabled: true }) + condition: target => { + const doc = getDocFromElementSync(target); + return doc && !doc.disabled; + }, + callback: async target => (await getDocFromElement(target)).update({ disabled: true }) }, { name: 'enableEffect', icon: 'fa-regular fa-lightbulb', - condition: target => getDocFromElement(target).disabled, - callback: target => getDocFromElement(target).update({ disabled: false }) + condition: target => { + const doc = getDocFromElementSync(target); + return doc && doc.disabled; + }, + callback: async target => (await getDocFromElement(target)).update({ disabled: false }) } ].map(option => ({ ...option, @@ -299,10 +304,10 @@ export default function DHApplicationMixin(Base) { name: 'CONTROLS.CommonEdit', icon: 'fa-solid fa-pen-to-square', condition: target => { - const doc = getDocFromElement(target); - return !doc.hasOwnProperty('systemPath') || doc.inCollection; + const doc = getDocFromElementSync(target); + return doc && (!doc.hasOwnProperty('systemPath') || doc.inCollection); }, - callback: target => getDocFromElement(target).sheet.render({ force: true }) + callback: async target => (await getDocFromElement(target)).sheet.render({ force: true }) } ]; @@ -311,25 +316,25 @@ export default function DHApplicationMixin(Base) { name: 'DAGGERHEART.APPLICATIONS.ContextMenu.useItem', icon: 'fa-solid fa-burst', condition: target => { - const doc = getDocFromElement(target); - return !(doc.type === 'domainCard' && doc.system.inVault) + const doc = getDocFromElementSync(target); + return doc && !(doc.type === 'domainCard' && doc.system.inVault); }, - callback: (target, event) => getDocFromElement(target).use(event) + callback: async (target, event) => (await getDocFromElement(target)).use(event) }); if (toChat) options.unshift({ name: 'DAGGERHEART.APPLICATIONS.ContextMenu.sendToChat', icon: 'fa-solid fa-message', - callback: target => getDocFromElement(target).toChat(this.document.id) + callback: async target => (await getDocFromElement(target)).toChat(this.document.id) }); if (deletable) options.push({ name: 'CONTROLS.CommonDelete', icon: 'fa-solid fa-trash', - callback: (target, event) => { - const doc = getDocFromElement(target); + callback: async (target, event) => { + const doc = await getDocFromElement(target); if (event.shiftKey) return doc.delete(); else return doc.deleteDialog(); } @@ -371,7 +376,7 @@ export default function DHApplicationMixin(Base) { if (!actionId && !itemUuid) return; const doc = itemUuid - ? getDocFromElement(extensibleElement) + ? await getDocFromElement(extensibleElement) : this.document.system.attack?.id === actionId ? this.document.system.attack : this.document.system.actions?.get(actionId); @@ -429,8 +434,8 @@ export default function DHApplicationMixin(Base) { * Renders an embedded document. * @type {ApplicationClickAction} */ - static #editDoc(_event, target) { - const doc = getDocFromElement(target); + static async #editDoc(_event, target) { + const doc = await getDocFromElement(target); if (doc) return doc.sheet.render({ force: true }); } @@ -439,7 +444,7 @@ export default function DHApplicationMixin(Base) { * @type {ApplicationClickAction} */ static async #deleteDoc(event, target) { - const doc = getDocFromElement(target); + const doc = await getDocFromElement(target); if (doc) { if (event.shiftKey) return doc.delete(); else return await doc.deleteDialog(); @@ -451,7 +456,7 @@ export default function DHApplicationMixin(Base) { * @type {ApplicationClickAction} */ static async #toChat(_event, target) { - let doc = getDocFromElement(target); + let doc = await getDocFromElement(target); return doc.toChat(this.document.id); } @@ -460,7 +465,7 @@ export default function DHApplicationMixin(Base) { * @type {ApplicationClickAction} */ static async #useItem(event, target) { - let doc = getDocFromElement(target); + let doc = await getDocFromElement(target); await doc.use(event); } @@ -469,7 +474,7 @@ export default function DHApplicationMixin(Base) { * @type {ApplicationClickAction} */ static async #toggleEffect(_, target) { - const doc = getDocFromElement(target); + const doc = await getDocFromElement(target); await doc.update({ disabled: !doc.disabled }); } @@ -492,7 +497,7 @@ export default function DHApplicationMixin(Base) { const t = extensible?.classList.toggle('extended'); const descriptionElement = extensible?.querySelector('.invetory-description'); - if (t && !!descriptionElement) this.#prepareInventoryDescription(extensible, descriptionElement); + if (t && !!descriptionElement) await this.#prepareInventoryDescription(extensible, descriptionElement); } } diff --git a/module/applications/sheets/api/base-item.mjs b/module/applications/sheets/api/base-item.mjs index 5fe4d681..22f7c880 100644 --- a/module/applications/sheets/api/base-item.mjs +++ b/module/applications/sheets/api/base-item.mjs @@ -117,7 +117,7 @@ export default class DHBaseItemSheet extends DHApplicationMixin(ItemSheetV2) { name: 'CONTROLS.CommonDelete', icon: '', callback: async target => { - const feature = getDocFromElement(target); + const feature = await getDocFromElement(target); if (!feature) return; const confirmed = await foundry.applications.api.DialogV2.confirm({ window: { @@ -168,7 +168,7 @@ export default class DHBaseItemSheet extends DHApplicationMixin(ItemSheetV2) { */ static async #deleteFeature(_, element) { const target = element.closest('[data-item-uuid]'); - const feature = getDocFromElement(target); + 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 diff --git a/module/helpers/utils.mjs b/module/helpers/utils.mjs index 749591ef..e2f30130 100644 --- a/module/helpers/utils.mjs +++ b/module/helpers/utils.mjs @@ -235,9 +235,25 @@ export const updateActorTokens = async (actor, update) => { * @param {HTMLElement} element - The DOM element to start the search from. * @returns {foundry.abstract.Document|null} The resolved document, or null if not found or invalid. */ -export function getDocFromElement(element) { +export async function getDocFromElement(element) { const target = element.closest('[data-item-uuid]'); - return foundry.utils.fromUuidSync(target.dataset.itemUuid) ?? null; + return (await foundry.utils.fromUuid(target.dataset.itemUuid)) ?? null; +} + +/** + * Retrieves a Foundry document associated with the nearest ancestor element + * that has a `data-item-uuid` attribute. + * @param {HTMLElement} element - The DOM element to start the search from. + * @returns {foundry.abstract.Document|null} The resolved document, or null if not found, invalid + * or in embedded compendium collection. + */ +export function getDocFromElementSync(element) { + const target = element.closest('[data-item-uuid]'); + try { + return foundry.utils.fromUuidSync(target.dataset.itemUuid) ?? null; + } catch (_) { + return null; + } } /** From 5cd907573214d89bd67fe5629be7a3d26f04b5f9 Mon Sep 17 00:00:00 2001 From: WBHarry <89362246+WBHarry@users.noreply.github.com> Date: Sat, 26 Jul 2025 23:30:44 +0200 Subject: [PATCH 03/14] Edit option is now always shown on compendium actions (#423) --- lang/en.json | 3 ++- module/applications/sheets/api/application-mixin.mjs | 2 +- module/data/action/baseAction.mjs | 2 +- templates/sheets-settings/action-settings/base.hbs | 2 +- 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/lang/en.json b/lang/en.json index 5d434861..d5a08fff 100755 --- a/lang/en.json +++ b/lang/en.json @@ -33,7 +33,8 @@ "exact": "Beastform Max Tier", "exactHint": "The Character's Tier is used if empty", "label": "Beastform" - } + }, + "displayInChat": "Display in chat" }, "Settings": { "attackBonus": "Attack Bonus", diff --git a/module/applications/sheets/api/application-mixin.mjs b/module/applications/sheets/api/application-mixin.mjs index c5c9b46f..b1b335fc 100644 --- a/module/applications/sheets/api/application-mixin.mjs +++ b/module/applications/sheets/api/application-mixin.mjs @@ -305,7 +305,7 @@ export default function DHApplicationMixin(Base) { icon: 'fa-solid fa-pen-to-square', condition: target => { const doc = getDocFromElementSync(target); - return doc && (!doc.hasOwnProperty('systemPath') || doc.inCollection); + return !doc || !doc.hasOwnProperty('systemPath') || doc.inCollection; }, callback: async target => (await getDocFromElement(target)).sheet.render({ force: true }) } diff --git a/module/data/action/baseAction.mjs b/module/data/action/baseAction.mjs index 89d0caeb..779e5268 100644 --- a/module/data/action/baseAction.mjs +++ b/module/data/action/baseAction.mjs @@ -27,7 +27,7 @@ export default class DHBaseAction extends ActionMixin(foundry.abstract.DataModel name: new fields.StringField({ initial: undefined }), description: new fields.HTMLField(), img: new fields.FilePathField({ initial: undefined, categories: ['IMAGE'], base64: false }), - chatDisplay: new fields.BooleanField({ initial: true, label: 'Display in chat' }), + chatDisplay: new fields.BooleanField({ initial: true, label: 'DAGGERHEART.ACTIONS.Config.displayInChat' }), actionType: new fields.StringField({ choices: CONFIG.DH.ITEM.actionTypes, initial: 'action', diff --git a/templates/sheets-settings/action-settings/base.hbs b/templates/sheets-settings/action-settings/base.hbs index 4791325d..69b5dfce 100644 --- a/templates/sheets-settings/action-settings/base.hbs +++ b/templates/sheets-settings/action-settings/base.hbs @@ -8,7 +8,7 @@ {{formField fields.name value=source.name label="Name" name="name"}} {{formField fields.img value=source.img label="Icon" name="img"}} {{formField fields.actionType value=source.actionType label="Type" name="actionType" localize=true}} - {{formField fields.chatDisplay value=source.chatDisplay name="chatDisplay" classes="checkbox"}} + {{formField fields.chatDisplay value=source.chatDisplay name="chatDisplay" classes="checkbox" localize=true}}
{{localize "DAGGERHEART.GENERAL.description"}} From 07886282b9112a34c2b4c75d110ad3d3ad6d85d1 Mon Sep 17 00:00:00 2001 From: CPTN_Cosmo Date: Sun, 27 Jul 2025 13:30:24 +0200 Subject: [PATCH 04/14] renamed Misc Items to Loot to match SRD and Rulebook name (#425) --- system.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/system.json b/system.json index fa7cc438..cf716886 100644 --- a/system.json +++ b/system.json @@ -119,10 +119,10 @@ "flags": {} }, { - "name": "miscellaneous", - "label": "Miscellaneous", + "name": "Loot", + "label": "Loot", "system": "daggerheart", - "path": "packs/items/miscellaneous.db", + "path": "packs/items/loot.db", "type": "Item", "private": false, "flags": {} From 33ac7d5ab7c10aaaf96a9bfb42e4dbc59a8e4999 Mon Sep 17 00:00:00 2001 From: CPTN_Cosmo Date: Sun, 27 Jul 2025 13:43:39 +0200 Subject: [PATCH 05/14] forgot some misc to loot change stuff :O (#428) --- system.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/system.json b/system.json index cf716886..d8e3253c 100644 --- a/system.json +++ b/system.json @@ -172,7 +172,7 @@ "name": "Items", "sorting": "m", "color": "#000000", - "packs": ["armors", "weapons", "consumables", "miscellaneous"] + "packs": ["armors", "weapons", "consumables", "loot"] } ] } @@ -222,7 +222,7 @@ "domainCard": { "htmlFields": ["description"] }, - "miscellaneous": { + "loot": { "htmlFields": ["description"] }, "consumable": { From 8cb4b7663eea61b98a1e7a7ba6f595f1c64993a2 Mon Sep 17 00:00:00 2001 From: Dapoulp <74197441+Dapoulp@users.noreply.github.com> Date: Sun, 27 Jul 2025 14:40:25 +0200 Subject: [PATCH 06/14] Action Save difficulty (#427) * Action Save difficulty * Unequipped item icon opacity * Fix sheet header --- module/applications/sheets-configs/action-config.mjs | 1 + module/applications/sheets/actors/character.mjs | 2 +- module/data/action/baseAction.mjs | 2 +- module/data/fields/action/saveField.mjs | 2 +- module/data/fields/action/targetField.mjs | 3 +-- module/documents/actor.mjs | 4 ++++ styles/less/global/inventory-item.less | 4 ++++ styles/less/global/item-header.less | 2 +- styles/less/global/sheet.less | 5 +++-- styles/less/sheets/actors/adversary/header.less | 2 +- styles/less/sheets/actors/character/header.less | 2 +- styles/less/sheets/actors/character/sheet.less | 1 - templates/actionTypes/save.hbs | 2 +- 13 files changed, 20 insertions(+), 12 deletions(-) diff --git a/module/applications/sheets-configs/action-config.mjs b/module/applications/sheets-configs/action-config.mjs index 070db23f..ed81b7e9 100644 --- a/module/applications/sheets-configs/action-config.mjs +++ b/module/applications/sheets-configs/action-config.mjs @@ -110,6 +110,7 @@ export default class DHActionConfig extends DaggerheartSheet(ApplicationV2) { context.costOptions = this.getCostOptions(); context.disableOption = this.disableOption.bind(this); context.isNPC = this.action.actor?.isNPC; + context.baseSaveDifficulty = this.action.actor?.baseSaveDifficulty; context.hasRoll = this.action.hasRoll; const settingsTiers = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.LevelTiers).tiers; diff --git a/module/applications/sheets/actors/character.mjs b/module/applications/sheets/actors/character.mjs index d6c61718..e97d10c6 100644 --- a/module/applications/sheets/actors/character.mjs +++ b/module/applications/sheets/actors/character.mjs @@ -311,7 +311,7 @@ export default class CharacterSheet extends DHBaseActorSheet { icon: 'fa-solid fa-hands', condition: target => { const doc = getDocFromElementSync(target); - return doc && system.equipped; + return doc && doc.system.equipped; }, callback: (target, event) => CharacterSheet.#toggleEquipItem.call(this, event, target) } diff --git a/module/data/action/baseAction.mjs b/module/data/action/baseAction.mjs index 779e5268..8b9888f5 100644 --- a/module/data/action/baseAction.mjs +++ b/module/data/action/baseAction.mjs @@ -305,7 +305,7 @@ export default class DHBaseAction extends ActionMixin(foundry.abstract.DataModel title: 'Roll Save', roll: { trait: this.save.trait, - difficulty: this.save.difficulty, + difficulty: this.save.difficulty ?? this.actor?.baseSaveDifficulty, type: 'reaction' }, data: target.actor.getRollData() diff --git a/module/data/fields/action/saveField.mjs b/module/data/fields/action/saveField.mjs index c2d84157..e93a82a9 100644 --- a/module/data/fields/action/saveField.mjs +++ b/module/data/fields/action/saveField.mjs @@ -8,7 +8,7 @@ export default class SaveField extends fields.SchemaField { initial: null, choices: CONFIG.DH.ACTOR.abilities }), - difficulty: new fields.NumberField({ nullable: true, initial: 10, integer: true, min: 0 }), + difficulty: new fields.NumberField({ nullable: true, initial: null, integer: true, min: 0 }), damageMod: new fields.StringField({ initial: CONFIG.DH.ACTIONS.damageOnSave.none.id, choices: CONFIG.DH.ACTIONS.damageOnSave diff --git a/module/data/fields/action/targetField.mjs b/module/data/fields/action/targetField.mjs index 61f79196..41f931a6 100644 --- a/module/data/fields/action/targetField.mjs +++ b/module/data/fields/action/targetField.mjs @@ -6,8 +6,7 @@ export default class TargetField extends fields.SchemaField { type: new fields.StringField({ choices: CONFIG.DH.ACTIONS.targetTypes, initial: CONFIG.DH.ACTIONS.targetTypes.any.id, - nullable: true, - initial: null + nullable: true }), amount: new fields.NumberField({ nullable: true, initial: null, integer: true, min: 0 }) }; diff --git a/module/documents/actor.mjs b/module/documents/actor.mjs index 67a5e0b3..5a26ded6 100644 --- a/module/documents/actor.mjs +++ b/module/documents/actor.mjs @@ -385,6 +385,10 @@ export default class DhpActor extends Actor { return CONFIG.Dice.daggerheart[['character', 'companion'].includes(this.type) ? 'DualityRoll' : 'D20Roll']; } + get baseSaveDifficulty() { + return this.system.difficulty ?? 10; + } + getRollData() { const rollData = super.getRollData(); rollData.system = this.system.getRollData(); diff --git a/styles/less/global/inventory-item.less b/styles/less/global/inventory-item.less index 452d997b..dd874efd 100644 --- a/styles/less/global/inventory-item.less +++ b/styles/less/global/inventory-item.less @@ -105,6 +105,10 @@ align-items: center; justify-content: end; gap: 8px; + + .unequipped { + opacity: .5; + } } } diff --git a/styles/less/global/item-header.less b/styles/less/global/item-header.less index f517ad5d..3b3e7ee9 100755 --- a/styles/less/global/item-header.less +++ b/styles/less/global/item-header.less @@ -19,7 +19,7 @@ flex-direction: column; align-items: center; gap: 5px; - margin-top: 36px; + margin-top: var(--header-height); text-align: center; width: 80%; diff --git a/styles/less/global/sheet.less b/styles/less/global/sheet.less index 1a00239a..172f0113 100755 --- a/styles/less/global/sheet.less +++ b/styles/less/global/sheet.less @@ -15,6 +15,9 @@ // Window header styles .window-header { + position: absolute; + width: 100%; + height: var(--header-height); background: transparent; border-bottom: none; justify-content: end; @@ -41,11 +44,9 @@ .window-content { padding: 0; position: relative; - top: -36px; min-height: -webkit-fill-available; transition: opacity 0.3s ease; padding-bottom: 20px; - margin-bottom: -36px; .tab { padding: 0 10px; diff --git a/styles/less/sheets/actors/adversary/header.less b/styles/less/sheets/actors/adversary/header.less index a8646a0a..e9306af6 100644 --- a/styles/less/sheets/actors/adversary/header.less +++ b/styles/less/sheets/actors/adversary/header.less @@ -4,7 +4,7 @@ .application.sheet.daggerheart.actor.dh-style.adversary { .adversary-header-sheet { padding: 0 15px; - padding-top: 36px; + padding-top: var(--header-height); width: 100%; .name-row { diff --git a/styles/less/sheets/actors/character/header.less b/styles/less/sheets/actors/character/header.less index b80da83d..f9511207 100644 --- a/styles/less/sheets/actors/character/header.less +++ b/styles/less/sheets/actors/character/header.less @@ -16,7 +16,7 @@ .application.sheet.daggerheart.actor.dh-style.character { .character-header-sheet { padding: 0 15px; - padding-top: 36px; + padding-top: var(--header-height); width: 100%; .name-row { diff --git a/styles/less/sheets/actors/character/sheet.less b/styles/less/sheets/actors/character/sheet.less index f09ee541..60fc6835 100644 --- a/styles/less/sheets/actors/character/sheet.less +++ b/styles/less/sheets/actors/character/sheet.less @@ -11,7 +11,6 @@ width: 100%; padding-bottom: 0; overflow-x: auto; - margin-bottom: 0; .character-sidebar-sheet { grid-row: 1 / span 2; diff --git a/templates/actionTypes/save.hbs b/templates/actionTypes/save.hbs index ff5be220..90bc0483 100644 --- a/templates/actionTypes/save.hbs +++ b/templates/actionTypes/save.hbs @@ -1,6 +1,6 @@
{{localize "DAGGERHEART.GENERAL.save"}} {{formField fields.trait label="Trait" name="save.trait" value=source.trait localize=true}} - {{formField fields.difficulty label="Difficulty" name="save.difficulty" value=source.difficulty disabled=(not source.trait)}} + {{formField fields.difficulty label="Difficulty" name="save.difficulty" value=source.difficulty disabled=(not source.trait) placeholder=@root.baseSaveDifficulty}} {{formField fields.damageMod label="Damage on Save" name="save.damageMod" value=source.damageMod localize=true disabled=(not source.trait)}}
\ No newline at end of file From 5215212e026cfc4249bf597ec446fb02a3992ca7 Mon Sep 17 00:00:00 2001 From: CPTN_Cosmo Date: Sun, 27 Jul 2025 15:50:48 +0200 Subject: [PATCH 07/14] some minor consumables fixes, more to come later (#429) * some minor consumables fixes, more to come later * another typo T_T * more loot rename fixes * more loot fixes * Changed miscellaneous to loot --------- Co-authored-by: WBHarry --- daggerheart.mjs | 4 +- lang/en.json | 2 +- .../applications/sheets/actors/character.mjs | 4 +- module/applications/sheets/items/_module.mjs | 2 +- module/applications/sheets/items/class.mjs | 4 +- .../items/{miscellaneous.mjs => loot.mjs} | 8 +- module/config/itemConfig.mjs | 6 +- module/data/item/_module.mjs | 6 +- .../data/item/{miscellaneous.mjs => loot.mjs} | 7 +- ...eastform_Agile_Scout_6tr99y6wHaJJYy3J.json | 160 ------------- ...orm_Household_Friend_uxBugKULjn7O1KQc.json | 166 ------------- ...form_Legendary_Beast_mERwC7aMDoIKfZTf.json | 154 ------------ ...tform_Mighty_Strider_LF68kGAcOTZQ81GB.json | 166 ------------- ...stform_Mythic_Hybrid_VI1DyowECDCDdsC1.json | 148 ------------ .../feature_Agile_sef9mwD2eRLZ64oV.json | 34 --- .../feature_Carrier_YSolAjtv6Sfnai98.json | 34 --- .../feature_Companion_0tlnxIxlIw2hl1UE.json | 34 --- .../feature_Evolved_MG21w4u5wXSGZ5WB.json | 34 --- .../feature_Fragile_9ryNrYWjNtOT6DXN.json | 34 --- .../feature_Trample_P6tWFIZzXWyekw6r.json | 34 --- ...s_Beastform_Features_uU8bIoZvXge0rLaU.json | 23 -- ...consumable_Acidpaste_cfVFmS8vT9dbq9s1.json | 55 +++++ ...mable_Armor_Stitcher_VlbsCjvvLNfTzNXb.json | 103 ++++++++ ...umable_Attune_Potion_JGD3M9hBHtVAA8XP.json | 105 +++++++++ ...sumable_Blinding_Orb_eAXHdzA5qNPldOpn.json | 100 ++++++++ ...e_Blood_of_the_Yorgi_pDGzmczoTlKGmKgd.json | 55 +++++ ...mable_Bolster_Potion_FOPQNqXbiVO0ilYL.json | 105 +++++++++ ...umable_Bonding_Honey_PfQvqopXgvroBklL.json | 55 +++++ ...nsumable_Bridge_Seed_RrIasiMCt6mqVTps.json | 55 +++++ ...sumable_Channelstone_IKMVQ6VwtapwoUim.json | 55 +++++ ...sumable_Charm_Potion_CVBbFfOY75YwyQsp.json | 105 +++++++++ ...e_Circle_of_the_Void_elsyP6VhHw1JjGSl.json | 63 +++++ ...mable_Control_Potion_eeBhZSGLjuNZuJuI.json | 105 +++++++++ ...consumable_Death_Tea_xDnJeF1grkmKck8Q.json | 55 +++++ ...able_Dragonbloom_Tea_wM18PWWW2Ami4fBG.json | 104 +++++++++ ...able_Dripfang_Poison_eU8VpbWB2NHIL47n.json | 86 +++++++ ...ble_Enlighten_Potion_aWHSO2AqDufi7nL4.json | 105 +++++++++ ...mable_Feast_of_Xuria_aX6NyxkNzu0LcJpt.json | 219 ++++++++++++++++++ ...nsumable_Featherbone_DpxEMpwfasEBpORU.json | 55 +++++ ...onsumable_Gill_Salve_Nvbb9mze6o5D0AEg.json | 55 +++++ ...e_Grindletooth_Venom_8WkhvSzeOmLdnoLJ.json | 86 +++++++ ...mable_Growing_Potion_fl2f3ees8RFMze9t.json | 111 +++++++++ ...umable_Health_Potion_Aruc2NLutWuVIjP1.json | 94 ++++++++ ...omet_s_Secret_Potion_VSwa1LpQ9PjZKsWF.json | 55 +++++ ...mable_Hopehold_Flare_EhaQCPJ8oiqpRIwB.json | 55 +++++ ...mproved_Arcane_Shard_nQTo6mNoPTEVBtkm.json | 106 +++++++++ ...d_Grindletooth_Venom_BqBWXXe9T07AMV4u.json | 86 +++++++ ...e_Jar_of_Lost_Voices_yUol6M5b8jsbk9za.json | 86 +++++++ ...sumable_Jumping_Root_c2putn9apuurJhWX.json | 55 +++++ ...able_Knowledge_Stone_nL9IALzm9BNi5oSt.json | 55 +++++ ...e_Major_Arcane_Shard_AA7bmiwv00lshPrC.json | 104 +++++++++ ..._Major_Attune_Potion_CCPFm5iXXwvyYYwR.json | 105 +++++++++ ...Major_Bolster_Potion_mnyQDRtngWWQeRXF.json | 105 +++++++++ ...e_Major_Charm_Potion_IJLAUlQymbSjzsri.json | 105 +++++++++ ...Major_Control_Potion_80s1FLmTLtohZ5GH.json | 105 +++++++++ ...jor_Enlighten_Potion_SDdv1G2veMLKrxcJ.json | 105 +++++++++ ..._Major_Health_Potion_cM7pHe8bBAxSZ2xR.json | 94 ++++++++ ...Major_Stamina_Potion_I4cQ03xbxnc81EGa.json | 94 ++++++++ ..._Major_Stride_Potion_yK6eEDUrsPbZA8G0.json | 105 +++++++++ ..._Minor_Health_Potion_tPfKtKRRjv8qdSqy.json | 94 ++++++++ ...Minor_Stamina_Potion_b6vGSPFWOlzZZDLO.json | 94 ++++++++ ...e_Mirror_of_Marigold_UFQVwgYOUZ88UxcH.json | 63 +++++ ...umable_Morphing_Clay_f1NHVSIHJJCIOaBl.json | 63 +++++ ...nsumable_Mythic_Dust_Zsh2AvZr8EkGtLyw.json | 86 +++++++ ...consumable_Ogre_Musk_qr1bosjFcUfuwq4B.json | 55 +++++ ..._Potion_of_Stability_dvL8oaxpEF6jKvYN.json | 111 +++++++++ ...able_Redthorn_Saliva_s2Exl2XFuoOhtIov.json | 86 +++++++ ...eplication_Parchment_yJkwz4AP6yhGo8Vj.json | 55 +++++ ...ble_Shrinking_Potion_HGixKenQwhyRAYNk.json | 111 +++++++++ ...sumable_Sleeping_Sap_XZavUVlHEvE2srEt.json | 94 ++++++++ ...nsumable_Snap_Powder_cg6VtQ0eVZjDdcK0.json | 103 ++++++++ ...mable_Stamina_Potion_hf3k1POoVSooJyN2.json | 94 ++++++++ .../consumable_Stardrop_y4c1jrlHrf0wBWOq.json | 86 +++++++ ...umable_Stride_Potion_lNtcrkgFGOJNaroE.json | 105 +++++++++ ...sumable_Sun_Tree_Sap_kwexUzdM9wm1Qums.json | 55 +++++ ...onsumable_Sweet_Moss_GrDrRqWgv7gvl9vn.json | 155 +++++++++++++ ...nstable_Arcane_Shard_mUepnLbkvFk0ha4Z.json | 106 +++++++++ ...sumable_Varik_Leaves_hvy5BkG3F6iOIXTx.json | 95 ++++++++ ...le_Vial_of_Darksmoke_Nwv5ydGf0MWnzq1n.json | 55 +++++ ...ble_Vial_of_Moondrip_VqEX5YwK5oL3r1t6.json | 55 +++++ ...onsumable_Wingsprout_n10vozlmosVR6lo4.json | 55 +++++ system.json | 2 +- .../sheets/actors/character/inventory.hbs | 6 +- .../items/{miscellaneous => loot}/header.hbs | 4 +- .../{miscellaneous => loot}/settings.hbs | 0 .../tooltip/{miscellaneous.hbs => loot.hbs} | 0 86 files changed, 5254 insertions(+), 1049 deletions(-) rename module/applications/sheets/items/{miscellaneous.mjs => loot.mjs} (84%) rename module/data/item/{miscellaneous.mjs => loot.mjs} (68%) delete mode 100644 src/packs/beastforms/beastform_Agile_Scout_6tr99y6wHaJJYy3J.json delete mode 100644 src/packs/beastforms/beastform_Household_Friend_uxBugKULjn7O1KQc.json delete mode 100644 src/packs/beastforms/beastform_Legendary_Beast_mERwC7aMDoIKfZTf.json delete mode 100644 src/packs/beastforms/beastform_Mighty_Strider_LF68kGAcOTZQ81GB.json delete mode 100644 src/packs/beastforms/beastform_Mythic_Hybrid_VI1DyowECDCDdsC1.json delete mode 100644 src/packs/beastforms/feature_Agile_sef9mwD2eRLZ64oV.json delete mode 100644 src/packs/beastforms/feature_Carrier_YSolAjtv6Sfnai98.json delete mode 100644 src/packs/beastforms/feature_Companion_0tlnxIxlIw2hl1UE.json delete mode 100644 src/packs/beastforms/feature_Evolved_MG21w4u5wXSGZ5WB.json delete mode 100644 src/packs/beastforms/feature_Fragile_9ryNrYWjNtOT6DXN.json delete mode 100644 src/packs/beastforms/feature_Trample_P6tWFIZzXWyekw6r.json delete mode 100644 src/packs/beastforms/folders_Beastform_Features_uU8bIoZvXge0rLaU.json create mode 100644 src/packs/items/consumables/consumable_Acidpaste_cfVFmS8vT9dbq9s1.json create mode 100644 src/packs/items/consumables/consumable_Armor_Stitcher_VlbsCjvvLNfTzNXb.json create mode 100644 src/packs/items/consumables/consumable_Attune_Potion_JGD3M9hBHtVAA8XP.json create mode 100644 src/packs/items/consumables/consumable_Blinding_Orb_eAXHdzA5qNPldOpn.json create mode 100644 src/packs/items/consumables/consumable_Blood_of_the_Yorgi_pDGzmczoTlKGmKgd.json create mode 100644 src/packs/items/consumables/consumable_Bolster_Potion_FOPQNqXbiVO0ilYL.json create mode 100644 src/packs/items/consumables/consumable_Bonding_Honey_PfQvqopXgvroBklL.json create mode 100644 src/packs/items/consumables/consumable_Bridge_Seed_RrIasiMCt6mqVTps.json create mode 100644 src/packs/items/consumables/consumable_Channelstone_IKMVQ6VwtapwoUim.json create mode 100644 src/packs/items/consumables/consumable_Charm_Potion_CVBbFfOY75YwyQsp.json create mode 100644 src/packs/items/consumables/consumable_Circle_of_the_Void_elsyP6VhHw1JjGSl.json create mode 100644 src/packs/items/consumables/consumable_Control_Potion_eeBhZSGLjuNZuJuI.json create mode 100644 src/packs/items/consumables/consumable_Death_Tea_xDnJeF1grkmKck8Q.json create mode 100644 src/packs/items/consumables/consumable_Dragonbloom_Tea_wM18PWWW2Ami4fBG.json create mode 100644 src/packs/items/consumables/consumable_Dripfang_Poison_eU8VpbWB2NHIL47n.json create mode 100644 src/packs/items/consumables/consumable_Enlighten_Potion_aWHSO2AqDufi7nL4.json create mode 100644 src/packs/items/consumables/consumable_Feast_of_Xuria_aX6NyxkNzu0LcJpt.json create mode 100644 src/packs/items/consumables/consumable_Featherbone_DpxEMpwfasEBpORU.json create mode 100644 src/packs/items/consumables/consumable_Gill_Salve_Nvbb9mze6o5D0AEg.json create mode 100644 src/packs/items/consumables/consumable_Grindletooth_Venom_8WkhvSzeOmLdnoLJ.json create mode 100644 src/packs/items/consumables/consumable_Growing_Potion_fl2f3ees8RFMze9t.json create mode 100644 src/packs/items/consumables/consumable_Health_Potion_Aruc2NLutWuVIjP1.json create mode 100644 src/packs/items/consumables/consumable_Homet_s_Secret_Potion_VSwa1LpQ9PjZKsWF.json create mode 100644 src/packs/items/consumables/consumable_Hopehold_Flare_EhaQCPJ8oiqpRIwB.json create mode 100644 src/packs/items/consumables/consumable_Improved_Arcane_Shard_nQTo6mNoPTEVBtkm.json create mode 100644 src/packs/items/consumables/consumable_Improved_Grindletooth_Venom_BqBWXXe9T07AMV4u.json create mode 100644 src/packs/items/consumables/consumable_Jar_of_Lost_Voices_yUol6M5b8jsbk9za.json create mode 100644 src/packs/items/consumables/consumable_Jumping_Root_c2putn9apuurJhWX.json create mode 100644 src/packs/items/consumables/consumable_Knowledge_Stone_nL9IALzm9BNi5oSt.json create mode 100644 src/packs/items/consumables/consumable_Major_Arcane_Shard_AA7bmiwv00lshPrC.json create mode 100644 src/packs/items/consumables/consumable_Major_Attune_Potion_CCPFm5iXXwvyYYwR.json create mode 100644 src/packs/items/consumables/consumable_Major_Bolster_Potion_mnyQDRtngWWQeRXF.json create mode 100644 src/packs/items/consumables/consumable_Major_Charm_Potion_IJLAUlQymbSjzsri.json create mode 100644 src/packs/items/consumables/consumable_Major_Control_Potion_80s1FLmTLtohZ5GH.json create mode 100644 src/packs/items/consumables/consumable_Major_Enlighten_Potion_SDdv1G2veMLKrxcJ.json create mode 100644 src/packs/items/consumables/consumable_Major_Health_Potion_cM7pHe8bBAxSZ2xR.json create mode 100644 src/packs/items/consumables/consumable_Major_Stamina_Potion_I4cQ03xbxnc81EGa.json create mode 100644 src/packs/items/consumables/consumable_Major_Stride_Potion_yK6eEDUrsPbZA8G0.json create mode 100644 src/packs/items/consumables/consumable_Minor_Health_Potion_tPfKtKRRjv8qdSqy.json create mode 100644 src/packs/items/consumables/consumable_Minor_Stamina_Potion_b6vGSPFWOlzZZDLO.json create mode 100644 src/packs/items/consumables/consumable_Mirror_of_Marigold_UFQVwgYOUZ88UxcH.json create mode 100644 src/packs/items/consumables/consumable_Morphing_Clay_f1NHVSIHJJCIOaBl.json create mode 100644 src/packs/items/consumables/consumable_Mythic_Dust_Zsh2AvZr8EkGtLyw.json create mode 100644 src/packs/items/consumables/consumable_Ogre_Musk_qr1bosjFcUfuwq4B.json create mode 100644 src/packs/items/consumables/consumable_Potion_of_Stability_dvL8oaxpEF6jKvYN.json create mode 100644 src/packs/items/consumables/consumable_Redthorn_Saliva_s2Exl2XFuoOhtIov.json create mode 100644 src/packs/items/consumables/consumable_Replication_Parchment_yJkwz4AP6yhGo8Vj.json create mode 100644 src/packs/items/consumables/consumable_Shrinking_Potion_HGixKenQwhyRAYNk.json create mode 100644 src/packs/items/consumables/consumable_Sleeping_Sap_XZavUVlHEvE2srEt.json create mode 100644 src/packs/items/consumables/consumable_Snap_Powder_cg6VtQ0eVZjDdcK0.json create mode 100644 src/packs/items/consumables/consumable_Stamina_Potion_hf3k1POoVSooJyN2.json create mode 100644 src/packs/items/consumables/consumable_Stardrop_y4c1jrlHrf0wBWOq.json create mode 100644 src/packs/items/consumables/consumable_Stride_Potion_lNtcrkgFGOJNaroE.json create mode 100644 src/packs/items/consumables/consumable_Sun_Tree_Sap_kwexUzdM9wm1Qums.json create mode 100644 src/packs/items/consumables/consumable_Sweet_Moss_GrDrRqWgv7gvl9vn.json create mode 100644 src/packs/items/consumables/consumable_Unstable_Arcane_Shard_mUepnLbkvFk0ha4Z.json create mode 100644 src/packs/items/consumables/consumable_Varik_Leaves_hvy5BkG3F6iOIXTx.json create mode 100644 src/packs/items/consumables/consumable_Vial_of_Darksmoke_Nwv5ydGf0MWnzq1n.json create mode 100644 src/packs/items/consumables/consumable_Vial_of_Moondrip_VqEX5YwK5oL3r1t6.json create mode 100644 src/packs/items/consumables/consumable_Wingsprout_n10vozlmosVR6lo4.json rename templates/sheets/items/{miscellaneous => loot}/header.hbs (81%) rename templates/sheets/items/{miscellaneous => loot}/settings.hbs (100%) rename templates/ui/tooltip/{miscellaneous.hbs => loot.hbs} (100%) diff --git a/daggerheart.mjs b/daggerheart.mjs index 387c1a74..fb743553 100644 --- a/daggerheart.mjs +++ b/daggerheart.mjs @@ -80,8 +80,8 @@ Hooks.once('init', () => { Items.registerSheet(SYSTEM.id, applications.sheets.items.Subclass, { types: ['subclass'], makeDefault: true }); Items.registerSheet(SYSTEM.id, applications.sheets.items.Feature, { types: ['feature'], makeDefault: true }); Items.registerSheet(SYSTEM.id, applications.sheets.items.DomainCard, { types: ['domainCard'], makeDefault: true }); - Items.registerSheet(SYSTEM.id, applications.sheets.items.Miscellaneous, { - types: ['miscellaneous'], + Items.registerSheet(SYSTEM.id, applications.sheets.items.Loot, { + types: ['loot'], makeDefault: true }); Items.registerSheet(SYSTEM.id, applications.sheets.items.Consumable, { types: ['consumable'], makeDefault: true }); diff --git a/lang/en.json b/lang/en.json index d5a08fff..270d7dda 100755 --- a/lang/en.json +++ b/lang/en.json @@ -8,7 +8,7 @@ "feature": "Feature", "domainCard": "Domain Card", "consumable": "Consumable", - "miscellaneous": "Miscellaneous", + "loot": "Loot", "weapon": "Weapon", "armor": "Armor", "beastform": "Beastform" diff --git a/module/applications/sheets/actors/character.mjs b/module/applications/sheets/actors/character.mjs index e97d10c6..d9098f9b 100644 --- a/module/applications/sheets/actors/character.mjs +++ b/module/applications/sheets/actors/character.mjs @@ -55,7 +55,7 @@ export default class CharacterSheet extends DHBaseActorSheet { }, { handler: CharacterSheet.#getItemContextOptions, - selector: '[data-item-uuid][data-type="consumable"], [data-item-uuid][data-type="miscellaneous"]', + selector: '[data-item-uuid][data-type="consumable"], [data-item-uuid][data-type="loot"]', options: { parentClassHooks: false, fixed: true @@ -325,7 +325,7 @@ export default class CharacterSheet extends DHBaseActorSheet { } /** - * Get the set of ContextMenu options for Consumable and Miscellaneous. + * Get the set of ContextMenu options for Consumable and Loot. * @returns {import('@client/applications/ux/context-menu.mjs').ContextMenuEntry[]} - The Array of context options passed to the ContextMenu instance * @this {CharacterSheet} * @protected diff --git a/module/applications/sheets/items/_module.mjs b/module/applications/sheets/items/_module.mjs index 84332f96..26dabcf6 100644 --- a/module/applications/sheets/items/_module.mjs +++ b/module/applications/sheets/items/_module.mjs @@ -6,6 +6,6 @@ export { default as Community } from './community.mjs'; export { default as Consumable } from './consumable.mjs'; export { default as DomainCard } from './domainCard.mjs'; export { default as Feature } from './feature.mjs'; -export { default as Miscellaneous } from './miscellaneous.mjs'; +export { default as Loot } from './loot.mjs'; export { default as Subclass } from './subclass.mjs'; export { default as Weapon } from './weapon.mjs'; diff --git a/module/applications/sheets/items/class.mjs b/module/applications/sheets/items/class.mjs index 37db5b8d..c78e1de1 100644 --- a/module/applications/sheets/items/class.mjs +++ b/module/applications/sheets/items/class.mjs @@ -132,14 +132,14 @@ export default class ClassSheet extends DHBaseItemSheet { }); } } else if (target.classList.contains('choice-a-section')) { - if (item.type === 'miscellaneous' || item.type === 'consumable') { + if (item.type === 'loot' || item.type === 'consumable') { const filteredChoiceA = this.document.system.inventory.choiceA; if (filteredChoiceA.length < 2) await this.document.update({ 'system.inventory.choiceA': [...filteredChoiceA.map(x => x.uuid), item.uuid] }); } - } else if (item.type === 'miscellaneous') { + } else if (item.type === 'loot') { if (target.classList.contains('take-section')) { const filteredTake = this.document.system.inventory.take.filter(x => x); if (filteredTake.length < 3) diff --git a/module/applications/sheets/items/miscellaneous.mjs b/module/applications/sheets/items/loot.mjs similarity index 84% rename from module/applications/sheets/items/miscellaneous.mjs rename to module/applications/sheets/items/loot.mjs index 0b4b3139..69eaf7cc 100644 --- a/module/applications/sheets/items/miscellaneous.mjs +++ b/module/applications/sheets/items/loot.mjs @@ -1,15 +1,15 @@ import DHBaseItemSheet from '../api/base-item.mjs'; -export default class MiscellaneousSheet extends DHBaseItemSheet { +export default class LootSheet extends DHBaseItemSheet { /**@inheritdoc */ static DEFAULT_OPTIONS = { - classes: ['miscellaneous'], + classes: ['loot'], position: { width: 550 } }; /**@override */ static PARTS = { - header: { template: 'systems/daggerheart/templates/sheets/items/miscellaneous/header.hbs' }, + header: { template: 'systems/daggerheart/templates/sheets/items/loot/header.hbs' }, tabs: { template: 'systems/daggerheart/templates/sheets/global/tabs/tab-navigation.hbs' }, description: { template: 'systems/daggerheart/templates/sheets/global/tabs/tab-description.hbs' }, actions: { @@ -17,7 +17,7 @@ export default class MiscellaneousSheet extends DHBaseItemSheet { scrollable: ['.actions'] }, settings: { - template: 'systems/daggerheart/templates/sheets/items/miscellaneous/settings.hbs', + template: 'systems/daggerheart/templates/sheets/items/loot/settings.hbs', scrollable: ['.settings'] }, effects: { diff --git a/module/config/itemConfig.mjs b/module/config/itemConfig.mjs index 9deed7f1..851ddc32 100644 --- a/module/config/itemConfig.mjs +++ b/module/config/itemConfig.mjs @@ -1301,9 +1301,9 @@ export const featureTypes = { id: 'consumable', label: 'TYPES.Item.consumable' }, - miscellaneous: { - id: 'miscellaneous', - label: 'TYPES.Item.miscellaneous' + loot: { + id: 'loot', + label: 'TYPES.Item.loot' }, beastform: { if: 'beastform', diff --git a/module/data/item/_module.mjs b/module/data/item/_module.mjs index bed18eb5..382c9932 100644 --- a/module/data/item/_module.mjs +++ b/module/data/item/_module.mjs @@ -6,7 +6,7 @@ import DHCommunity from './community.mjs'; import DHConsumable from './consumable.mjs'; import DHDomainCard from './domainCard.mjs'; import DHFeature from './feature.mjs'; -import DHMiscellaneous from './miscellaneous.mjs'; +import DHLoot from './loot.mjs'; import DHSubclass from './subclass.mjs'; import DHWeapon from './weapon.mjs'; import DHBeastform from './beastform.mjs'; @@ -20,7 +20,7 @@ export { DHConsumable, DHDomainCard, DHFeature, - DHMiscellaneous, + DHLoot, DHSubclass, DHWeapon, DHBeastform @@ -35,7 +35,7 @@ export const config = { consumable: DHConsumable, domainCard: DHDomainCard, feature: DHFeature, - miscellaneous: DHMiscellaneous, + loot: DHLoot, subclass: DHSubclass, weapon: DHWeapon, beastform: DHBeastform diff --git a/module/data/item/miscellaneous.mjs b/module/data/item/loot.mjs similarity index 68% rename from module/data/item/miscellaneous.mjs rename to module/data/item/loot.mjs index c40ac60b..2a23d338 100644 --- a/module/data/item/miscellaneous.mjs +++ b/module/data/item/loot.mjs @@ -1,12 +1,11 @@ import BaseDataItem from './base.mjs'; -import { ActionField } from '../fields/actionField.mjs'; -export default class DHMiscellaneous extends BaseDataItem { +export default class DHLoot extends BaseDataItem { /** @inheritDoc */ static get metadata() { return foundry.utils.mergeObject(super.metadata, { - label: 'TYPES.Item.miscellaneous', - type: 'miscellaneous', + label: 'TYPES.Item.loot', + type: 'loot', hasDescription: true, isQuantifiable: true, isInventoryItem: true, diff --git a/src/packs/beastforms/beastform_Agile_Scout_6tr99y6wHaJJYy3J.json b/src/packs/beastforms/beastform_Agile_Scout_6tr99y6wHaJJYy3J.json deleted file mode 100644 index 0885d9f3..00000000 --- a/src/packs/beastforms/beastform_Agile_Scout_6tr99y6wHaJJYy3J.json +++ /dev/null @@ -1,160 +0,0 @@ -{ - "name": "Agile Scout", - "type": "beastform", - "img": "icons/creatures/mammals/goat-horned-blue.webp", - "system": { - "beastformType": "normal", - "tier": 1, - "tokenImg": "icons/creatures/mammals/goat-horned-blue.webp", - "tokenRingImg": "icons/svg/mystery-man.svg", - "tokenSize": { - "height": null, - "width": null - }, - "mainTrait": "agility", - "advantageOn": { - "tXlf8FvWrgGqfaJu": { - "value": "deceit" - }, - "lp1gv9iNUCpC2Fli": { - "value": "locate" - }, - "GxDMKUpOeDHzyhAT": { - "value": "sneak" - } - }, - "features": [ - "Compendium.daggerheart.beastforms.Item.sef9mwD2eRLZ64oV", - "Compendium.daggerheart.beastforms.Item.9ryNrYWjNtOT6DXN" - ], - "evolved": { - "mainTraitBonus": 0 - }, - "hybrid": { - "beastformOptions": 2, - "advantages": 2, - "features": 2 - }, - "examples": "Fox, Mouse, Weasel, etc." - }, - "effects": [ - { - "type": "beastform", - "name": "Beastform Transformation", - "img": "icons/creatures/abilities/paw-print-pair-purple.webp", - "_id": "m098fyKkAjTFZ6UJ", - "system": { - "characterTokenData": { - "tokenImg": null, - "tokenRingImg": "icons/svg/mystery-man.svg", - "tokenSize": {} - }, - "advantageOn": [], - "featureIds": [], - "effectIds": [] - }, - "changes": [ - { - "key": "system.traits.agility.value", - "mode": 2, - "value": "1", - "priority": null - }, - { - "key": "system.evasion", - "mode": 2, - "value": "2", - "priority": null - } - ], - "disabled": false, - "duration": { - "startTime": null, - "combat": null, - "seconds": null, - "rounds": null, - "turns": null, - "startRound": null, - "startTurn": null - }, - "description": "", - "origin": null, - "tint": "#ffffff", - "transfer": true, - "statuses": [], - "sort": 0, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.346", - "systemId": "daggerheart", - "systemVersion": "0.0.1", - "lastModifiedBy": null - }, - "_key": "!items.effects!6tr99y6wHaJJYy3J.m098fyKkAjTFZ6UJ" - }, - { - "type": "beastform", - "name": "Beastform Transformation", - "img": "icons/creatures/abilities/paw-print-pair-purple.webp", - "_id": "5mi9ku2R4paP579i", - "system": { - "characterTokenData": { - "tokenImg": null, - "tokenRingImg": "icons/svg/mystery-man.svg", - "tokenSize": {} - }, - "advantageOn": [], - "featureIds": [], - "effectIds": [] - }, - "changes": [], - "disabled": false, - "duration": { - "startTime": null, - "combat": null - }, - "description": "", - "origin": null, - "tint": "#ffffff", - "transfer": true, - "statuses": [], - "sort": 0, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.346", - "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1752976985351, - "modifiedTime": 1752976985351, - "lastModifiedBy": "k0gmQFlvrPvlTtbh" - }, - "_key": "!items.effects!6tr99y6wHaJJYy3J.5mi9ku2R4paP579i" - } - ], - "folder": null, - "ownership": { - "default": 0, - "k0gmQFlvrPvlTtbh": 3 - }, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.346", - "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1752976985346, - "modifiedTime": 1752976987362, - "lastModifiedBy": "k0gmQFlvrPvlTtbh" - }, - "_id": "6tr99y6wHaJJYy3J", - "sort": 100000, - "_key": "!items!6tr99y6wHaJJYy3J" -} diff --git a/src/packs/beastforms/beastform_Household_Friend_uxBugKULjn7O1KQc.json b/src/packs/beastforms/beastform_Household_Friend_uxBugKULjn7O1KQc.json deleted file mode 100644 index 288afead..00000000 --- a/src/packs/beastforms/beastform_Household_Friend_uxBugKULjn7O1KQc.json +++ /dev/null @@ -1,166 +0,0 @@ -{ - "name": "Household Friend", - "type": "beastform", - "img": "icons/creatures/mammals/cat-hunched-glowing-red.webp", - "system": { - "beastformType": "normal", - "tier": 1, - "tokenImg": "icons/creatures/mammals/cat-hunched-glowing-red.webp", - "tokenRingImg": "icons/svg/mystery-man.svg", - "tokenSize": { - "height": null, - "width": null - }, - "mainTrait": "instinct", - "advantageOn": { - "u0mzlWihDHITgh1x": { - "value": "climb" - }, - "m53oFXA2SA5jAjWc": { - "value": "locate" - }, - "XLPn5Egg9mIuLyVP": { - "value": "protect" - } - }, - "features": [ - "Compendium.daggerheart.beastforms.Item.0tlnxIxlIw2hl1UE", - "Compendium.daggerheart.beastforms.Item.9ryNrYWjNtOT6DXN" - ], - "evolved": { - "mainTraitBonus": 0 - }, - "hybrid": { - "beastformOptions": 2, - "advantages": 2, - "features": 2 - }, - "examples": "Cat, Dog, Rabbit, etc." - }, - "effects": [ - { - "type": "beastform", - "name": "Beastform Transformation", - "img": "icons/creatures/abilities/paw-print-pair-purple.webp", - "_id": "d25tcdgssnDvekKR", - "system": { - "characterTokenData": { - "tokenImg": null, - "tokenRingImg": "icons/svg/mystery-man.svg", - "tokenSize": {} - }, - "advantageOn": [], - "featureIds": [], - "effectIds": [] - }, - "changes": [ - { - "key": "system.rules.attack.trait", - "mode": 5, - "value": "instinct", - "priority": null - }, - { - "key": "system.rules.attack.range", - "mode": 5, - "value": "melee", - "priority": null - }, - { - "key": "system.rules.attack.damage.value", - "mode": 5, - "value": "1d8", - "priority": null - } - ], - "disabled": false, - "duration": { - "startTime": null, - "combat": null, - "seconds": null, - "rounds": null, - "turns": null, - "startRound": null, - "startTurn": null - }, - "description": "", - "origin": null, - "tint": "#ffffff", - "transfer": true, - "statuses": [], - "sort": 0, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.346", - "systemId": "daggerheart", - "systemVersion": "0.0.1", - "lastModifiedBy": null - }, - "_key": "!items.effects!uxBugKULjn7O1KQc.d25tcdgssnDvekKR" - }, - { - "type": "beastform", - "name": "Beastform Transformation", - "img": "icons/creatures/abilities/paw-print-pair-purple.webp", - "_id": "idqGh9sm1zBLME1O", - "system": { - "characterTokenData": { - "tokenImg": null, - "tokenRingImg": "icons/svg/mystery-man.svg", - "tokenSize": {} - }, - "advantageOn": [], - "featureIds": [], - "effectIds": [] - }, - "changes": [], - "disabled": false, - "duration": { - "startTime": null, - "combat": null - }, - "description": "", - "origin": null, - "tint": "#ffffff", - "transfer": true, - "statuses": [], - "sort": 0, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.346", - "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1752976986453, - "modifiedTime": 1752976986453, - "lastModifiedBy": "k0gmQFlvrPvlTtbh" - }, - "_key": "!items.effects!uxBugKULjn7O1KQc.idqGh9sm1zBLME1O" - } - ], - "folder": null, - "ownership": { - "default": 0, - "k0gmQFlvrPvlTtbh": 3 - }, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.346", - "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1752976986449, - "modifiedTime": 1752976987362, - "lastModifiedBy": "k0gmQFlvrPvlTtbh" - }, - "_id": "uxBugKULjn7O1KQc", - "sort": 300000, - "_key": "!items!uxBugKULjn7O1KQc" -} diff --git a/src/packs/beastforms/beastform_Legendary_Beast_mERwC7aMDoIKfZTf.json b/src/packs/beastforms/beastform_Legendary_Beast_mERwC7aMDoIKfZTf.json deleted file mode 100644 index 4588bc0a..00000000 --- a/src/packs/beastforms/beastform_Legendary_Beast_mERwC7aMDoIKfZTf.json +++ /dev/null @@ -1,154 +0,0 @@ -{ - "name": "Legendary Beast", - "type": "beastform", - "img": "icons/creatures/magical/spirit-undead-horned-blue.webp", - "system": { - "beastformType": "evolved", - "tier": 3, - "tokenImg": "icons/creatures/magical/spirit-undead-horned-blue.webp", - "tokenRingImg": "icons/svg/mystery-man.svg", - "tokenSize": { - "height": null, - "width": null - }, - "mainTrait": "agility", - "advantageOn": {}, - "features": [], - "evolved": { - "mainTraitBonus": 1, - "maximumTier": 1 - }, - "hybrid": { - "beastformOptions": 2, - "advantages": 2, - "features": 2 - }, - "examples": "" - }, - "effects": [ - { - "type": "beastform", - "name": "Beastform Transformation", - "img": "icons/creatures/abilities/paw-print-pair-purple.webp", - "_id": "cKAoI5JqYOtGBscd", - "system": { - "characterTokenData": { - "tokenImg": null, - "tokenRingImg": "icons/svg/mystery-man.svg", - "tokenSize": {} - }, - "advantageOn": [], - "featureIds": [], - "effectIds": [] - }, - "changes": [ - { - "key": "system.bonuses.damage.physical.bonus", - "mode": 2, - "value": "6", - "priority": null - }, - { - "key": "system.bonuses.damage.magical.bonus", - "mode": 2, - "value": "6", - "priority": null - }, - { - "key": "system.evasion", - "mode": 2, - "value": "2", - "priority": null - } - ], - "disabled": false, - "duration": { - "startTime": null, - "combat": null, - "seconds": null, - "rounds": null, - "turns": null, - "startRound": null, - "startTurn": null - }, - "description": "

Pick a Tier 1 Beastform option and become a larger, more powerful version of that creature. While you’re in this form, you retain all traits and features from the original form and gain the following bonuses:

  • - A +6 bonus to damage rolls

  • - A +1 bonus to the trait used by this form

  • - A +2 bonus to evasion

", - "origin": null, - "tint": "#ffffff", - "transfer": true, - "statuses": [], - "sort": 0, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.346", - "systemId": "daggerheart", - "systemVersion": "0.0.1", - "lastModifiedBy": null - }, - "_key": "!items.effects!mERwC7aMDoIKfZTf.cKAoI5JqYOtGBscd" - }, - { - "type": "beastform", - "name": "Beastform Transformation", - "img": "icons/creatures/abilities/paw-print-pair-purple.webp", - "_id": "LltLvTqjhk9RseV8", - "system": { - "characterTokenData": { - "tokenImg": null, - "tokenRingImg": "icons/svg/mystery-man.svg", - "tokenSize": {} - }, - "advantageOn": [], - "featureIds": [], - "effectIds": [] - }, - "changes": [], - "disabled": false, - "duration": { - "startTime": null, - "combat": null - }, - "description": "", - "origin": null, - "tint": "#ffffff", - "transfer": true, - "statuses": [], - "sort": 0, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.346", - "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1752976989252, - "modifiedTime": 1752976989252, - "lastModifiedBy": "k0gmQFlvrPvlTtbh" - }, - "_key": "!items.effects!mERwC7aMDoIKfZTf.LltLvTqjhk9RseV8" - } - ], - "folder": null, - "ownership": { - "default": 0, - "k0gmQFlvrPvlTtbh": 3 - }, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.346", - "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1752976989245, - "modifiedTime": 1752976989245, - "lastModifiedBy": "k0gmQFlvrPvlTtbh" - }, - "_id": "mERwC7aMDoIKfZTf", - "sort": 0, - "_key": "!items!mERwC7aMDoIKfZTf" -} diff --git a/src/packs/beastforms/beastform_Mighty_Strider_LF68kGAcOTZQ81GB.json b/src/packs/beastforms/beastform_Mighty_Strider_LF68kGAcOTZQ81GB.json deleted file mode 100644 index 04049a81..00000000 --- a/src/packs/beastforms/beastform_Mighty_Strider_LF68kGAcOTZQ81GB.json +++ /dev/null @@ -1,166 +0,0 @@ -{ - "name": "Mighty Strider", - "type": "beastform", - "img": "icons/creatures/mammals/bull-horned-blue.webp", - "system": { - "beastformType": "normal", - "tier": 2, - "tokenImg": "icons/creatures/mammals/bull-horned-blue.webp", - "tokenRingImg": "icons/svg/mystery-man.svg", - "tokenSize": { - "height": null, - "width": null - }, - "mainTrait": "agility", - "advantageOn": { - "Xxr01TwSerOS8qsd": { - "value": "leap" - }, - "cASut9AUij2Uf4zm": { - "value": "navigate" - }, - "XJie4FhCSwUCg9uN": { - "value": "sprint" - } - }, - "features": [ - "Compendium.daggerheart.beastforms.Item.YSolAjtv6Sfnai98", - "Compendium.daggerheart.beastforms.Item.P6tWFIZzXWyekw6r" - ], - "evolved": { - "mainTraitBonus": 0 - }, - "hybrid": { - "beastformOptions": 2, - "advantages": 2, - "features": 2 - }, - "examples": "Camel, Horse, Zebra, etc." - }, - "effects": [ - { - "type": "beastform", - "name": "Beastform Transformation", - "img": "icons/creatures/abilities/paw-print-pair-purple.webp", - "_id": "1KdhXARm6rg2fg22", - "system": { - "characterTokenData": { - "tokenImg": null, - "tokenRingImg": "icons/svg/mystery-man.svg", - "tokenSize": {} - }, - "advantageOn": [], - "featureIds": [], - "effectIds": [] - }, - "changes": [ - { - "key": "system.rules.attack.damage.value", - "mode": 5, - "value": "d8 + 1", - "priority": null - }, - { - "key": "system.rules.attack.trait", - "mode": 5, - "value": "agility", - "priority": null - }, - { - "key": "system.rules.attack.range", - "mode": 5, - "value": "melee", - "priority": null - } - ], - "disabled": false, - "duration": { - "startTime": null, - "combat": null, - "seconds": null, - "rounds": null, - "turns": null, - "startRound": null, - "startTurn": null - }, - "description": "", - "origin": null, - "tint": "#ffffff", - "transfer": true, - "statuses": [], - "sort": 0, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.346", - "systemId": "daggerheart", - "systemVersion": "0.0.1", - "lastModifiedBy": null - }, - "_key": "!items.effects!LF68kGAcOTZQ81GB.1KdhXARm6rg2fg22" - }, - { - "type": "beastform", - "name": "Beastform Transformation", - "img": "icons/creatures/abilities/paw-print-pair-purple.webp", - "_id": "ngEREmS8hzNyshak", - "system": { - "characterTokenData": { - "tokenImg": null, - "tokenRingImg": "icons/svg/mystery-man.svg", - "tokenSize": {} - }, - "advantageOn": [], - "featureIds": [], - "effectIds": [] - }, - "changes": [], - "disabled": false, - "duration": { - "startTime": null, - "combat": null - }, - "description": "", - "origin": null, - "tint": "#ffffff", - "transfer": true, - "statuses": [], - "sort": 0, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.346", - "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1752976987358, - "modifiedTime": 1752976987358, - "lastModifiedBy": "k0gmQFlvrPvlTtbh" - }, - "_key": "!items.effects!LF68kGAcOTZQ81GB.ngEREmS8hzNyshak" - } - ], - "folder": null, - "ownership": { - "default": 0, - "k0gmQFlvrPvlTtbh": 3 - }, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.346", - "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1752976987354, - "modifiedTime": 1752976987362, - "lastModifiedBy": "k0gmQFlvrPvlTtbh" - }, - "_id": "LF68kGAcOTZQ81GB", - "sort": 200000, - "_key": "!items!LF68kGAcOTZQ81GB" -} diff --git a/src/packs/beastforms/beastform_Mythic_Hybrid_VI1DyowECDCDdsC1.json b/src/packs/beastforms/beastform_Mythic_Hybrid_VI1DyowECDCDdsC1.json deleted file mode 100644 index 0117a189..00000000 --- a/src/packs/beastforms/beastform_Mythic_Hybrid_VI1DyowECDCDdsC1.json +++ /dev/null @@ -1,148 +0,0 @@ -{ - "name": "Mythic Hybrid", - "type": "beastform", - "img": "icons/creatures/magical/humanoid-silhouette-glowing-pink.webp", - "system": { - "beastformType": "hybrid", - "tier": 4, - "tokenImg": "icons/creatures/magical/humanoid-silhouette-glowing-pink.webp", - "tokenRingImg": "icons/svg/mystery-man.svg", - "tokenSize": { - "height": null, - "width": null - }, - "mainTrait": "strength", - "advantageOn": {}, - "features": [], - "evolved": { - "mainTraitBonus": 0 - }, - "hybrid": { - "beastformOptions": 3, - "advantages": 5, - "features": 3, - "maximumTier": 3 - }, - "examples": "" - }, - "effects": [ - { - "type": "beastform", - "name": "Beastform Transformation", - "img": "icons/creatures/abilities/paw-print-pair-purple.webp", - "_id": "dvqS0a0ur8xM2swY", - "system": { - "characterTokenData": { - "tokenImg": null, - "tokenRingImg": "icons/svg/mystery-man.svg", - "tokenSize": {} - }, - "advantageOn": [], - "featureIds": [], - "effectIds": [] - }, - "changes": [ - { - "key": "system.traits.strength.value", - "mode": 2, - "value": "3", - "priority": null - }, - { - "key": "system.evasion", - "mode": 2, - "value": "2", - "priority": null - } - ], - "disabled": false, - "duration": { - "startTime": null, - "combat": null, - "seconds": null, - "rounds": null, - "turns": null, - "startRound": null, - "startTurn": null - }, - "description": "

To transform into this creature, mark 2 additional Stress. Choose any three Beastform options from Tiers 1–3. Choose a total of five advantages and three features from those options.

", - "origin": null, - "tint": "#ffffff", - "transfer": true, - "statuses": [], - "sort": 0, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.346", - "systemId": "daggerheart", - "systemVersion": "0.0.1", - "lastModifiedBy": null - }, - "_key": "!items.effects!VI1DyowECDCDdsC1.dvqS0a0ur8xM2swY" - }, - { - "type": "beastform", - "name": "Beastform Transformation", - "img": "icons/creatures/abilities/paw-print-pair-purple.webp", - "_id": "xSMy4BO5PuqASEKW", - "system": { - "characterTokenData": { - "tokenImg": null, - "tokenRingImg": "icons/svg/mystery-man.svg", - "tokenSize": {} - }, - "advantageOn": [], - "featureIds": [], - "effectIds": [] - }, - "changes": [], - "disabled": false, - "duration": { - "startTime": null, - "combat": null - }, - "description": "", - "origin": null, - "tint": "#ffffff", - "transfer": true, - "statuses": [], - "sort": 0, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.346", - "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1752976990470, - "modifiedTime": 1752976990470, - "lastModifiedBy": "k0gmQFlvrPvlTtbh" - }, - "_key": "!items.effects!VI1DyowECDCDdsC1.xSMy4BO5PuqASEKW" - } - ], - "folder": null, - "ownership": { - "default": 0, - "k0gmQFlvrPvlTtbh": 3 - }, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.346", - "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1752976990466, - "modifiedTime": 1752976990466, - "lastModifiedBy": "k0gmQFlvrPvlTtbh" - }, - "_id": "VI1DyowECDCDdsC1", - "sort": 0, - "_key": "!items!VI1DyowECDCDdsC1" -} diff --git a/src/packs/beastforms/feature_Agile_sef9mwD2eRLZ64oV.json b/src/packs/beastforms/feature_Agile_sef9mwD2eRLZ64oV.json deleted file mode 100644 index 70fd6e11..00000000 --- a/src/packs/beastforms/feature_Agile_sef9mwD2eRLZ64oV.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "type": "feature", - "name": "Agile", - "img": "icons/skills/movement/arrow-upward-blue.webp", - "system": { - "description": "

Your movement is silent, and you can spend a Hope to move up to Far range without rolling.

", - "resource": null, - "originItemType": null, - "subType": null, - "originId": null, - "actions": [] - }, - "effects": [], - "folder": "uU8bIoZvXge0rLaU", - "ownership": { - "default": 0, - "k0gmQFlvrPvlTtbh": 3 - }, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.346", - "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1752976877948, - "modifiedTime": 1752976906072, - "lastModifiedBy": "k0gmQFlvrPvlTtbh" - }, - "_id": "sef9mwD2eRLZ64oV", - "sort": 100000, - "_key": "!items!sef9mwD2eRLZ64oV" -} diff --git a/src/packs/beastforms/feature_Carrier_YSolAjtv6Sfnai98.json b/src/packs/beastforms/feature_Carrier_YSolAjtv6Sfnai98.json deleted file mode 100644 index 0ecd47f5..00000000 --- a/src/packs/beastforms/feature_Carrier_YSolAjtv6Sfnai98.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "type": "feature", - "name": "Carrier", - "img": "icons/creatures/abilities/bull-head-horns-glowing.webp", - "system": { - "description": "

You can carry up to two willing allies with you when you move.

", - "resource": null, - "originItemType": null, - "subType": null, - "originId": null, - "actions": [] - }, - "effects": [], - "folder": "uU8bIoZvXge0rLaU", - "ownership": { - "default": 0, - "k0gmQFlvrPvlTtbh": 3 - }, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.346", - "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1752976866309, - "modifiedTime": 1752976907469, - "lastModifiedBy": "k0gmQFlvrPvlTtbh" - }, - "_id": "YSolAjtv6Sfnai98", - "sort": 200000, - "_key": "!items!YSolAjtv6Sfnai98" -} diff --git a/src/packs/beastforms/feature_Companion_0tlnxIxlIw2hl1UE.json b/src/packs/beastforms/feature_Companion_0tlnxIxlIw2hl1UE.json deleted file mode 100644 index d7f35b73..00000000 --- a/src/packs/beastforms/feature_Companion_0tlnxIxlIw2hl1UE.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "type": "feature", - "name": "Companion", - "img": "icons/magic/life/heart-hand-gold-green-light.webp", - "system": { - "description": "

When you Help an Ally, you can roll a d8 as your advantage die.

", - "resource": null, - "originItemType": null, - "subType": null, - "originId": null, - "actions": [] - }, - "effects": [], - "folder": "uU8bIoZvXge0rLaU", - "ownership": { - "default": 0, - "k0gmQFlvrPvlTtbh": 3 - }, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.346", - "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1752976848672, - "modifiedTime": 1752976908157, - "lastModifiedBy": "k0gmQFlvrPvlTtbh" - }, - "_id": "0tlnxIxlIw2hl1UE", - "sort": 0, - "_key": "!items!0tlnxIxlIw2hl1UE" -} diff --git a/src/packs/beastforms/feature_Evolved_MG21w4u5wXSGZ5WB.json b/src/packs/beastforms/feature_Evolved_MG21w4u5wXSGZ5WB.json deleted file mode 100644 index 520283bb..00000000 --- a/src/packs/beastforms/feature_Evolved_MG21w4u5wXSGZ5WB.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "type": "feature", - "name": "Evolved", - "img": "icons/creatures/abilities/dragon-breath-purple.webp", - "system": { - "description": "

Pick a Tier 1 Beastform option and become a larger, more powerful version of that creature. While you’re in this form, you retain all traits and features from the original form and gain the following bonuses:

  • A +6 bonus to damage rolls
  • A +1 bonus to the trait used by this form
  • A +2 bonus to Evasion
", - "resource": null, - "originItemType": null, - "subType": null, - "originId": null, - "actions": [] - }, - "effects": [], - "folder": "uU8bIoZvXge0rLaU", - "ownership": { - "default": 0, - "k0gmQFlvrPvlTtbh": 3 - }, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.346", - "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1752976852417, - "modifiedTime": 1752976908700, - "lastModifiedBy": "k0gmQFlvrPvlTtbh" - }, - "_id": "MG21w4u5wXSGZ5WB", - "sort": 50000, - "_key": "!items!MG21w4u5wXSGZ5WB" -} diff --git a/src/packs/beastforms/feature_Fragile_9ryNrYWjNtOT6DXN.json b/src/packs/beastforms/feature_Fragile_9ryNrYWjNtOT6DXN.json deleted file mode 100644 index beae6eb2..00000000 --- a/src/packs/beastforms/feature_Fragile_9ryNrYWjNtOT6DXN.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "type": "feature", - "name": "Fragile", - "img": "icons/magic/life/heart-broken-red.webp", - "system": { - "description": "

When you take Major or greater damage, you drop out of Beastform.

", - "resource": null, - "originItemType": null, - "subType": null, - "originId": null, - "actions": [] - }, - "effects": [], - "folder": "uU8bIoZvXge0rLaU", - "ownership": { - "default": 0, - "k0gmQFlvrPvlTtbh": 3 - }, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.346", - "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1752976855944, - "modifiedTime": 1752976909267, - "lastModifiedBy": "k0gmQFlvrPvlTtbh" - }, - "_id": "9ryNrYWjNtOT6DXN", - "sort": 150000, - "_key": "!items!9ryNrYWjNtOT6DXN" -} diff --git a/src/packs/beastforms/feature_Trample_P6tWFIZzXWyekw6r.json b/src/packs/beastforms/feature_Trample_P6tWFIZzXWyekw6r.json deleted file mode 100644 index 9e1ca0c5..00000000 --- a/src/packs/beastforms/feature_Trample_P6tWFIZzXWyekw6r.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "type": "feature", - "name": "Trample", - "img": "icons/creatures/mammals/ox-bull-horned-glowing-orange.webp", - "system": { - "description": "

Mark a Stress to move up to Close range in a straight line and make an attack against all targets within Melee range of the line. Targets you succeed against take [[/r d8+1]] physical damage using your Proficiency and are temporarily Vulnerable.

", - "resource": null, - "originItemType": null, - "subType": null, - "originId": null, - "actions": [] - }, - "effects": [], - "folder": "uU8bIoZvXge0rLaU", - "ownership": { - "default": 0, - "k0gmQFlvrPvlTtbh": 3 - }, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.346", - "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1752976867812, - "modifiedTime": 1752976976609, - "lastModifiedBy": "k0gmQFlvrPvlTtbh" - }, - "_id": "P6tWFIZzXWyekw6r", - "sort": -100000, - "_key": "!items!P6tWFIZzXWyekw6r" -} diff --git a/src/packs/beastforms/folders_Beastform_Features_uU8bIoZvXge0rLaU.json b/src/packs/beastforms/folders_Beastform_Features_uU8bIoZvXge0rLaU.json deleted file mode 100644 index 74cd56a6..00000000 --- a/src/packs/beastforms/folders_Beastform_Features_uU8bIoZvXge0rLaU.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "type": "Item", - "folder": null, - "name": "Beastform Features", - "color": null, - "sorting": "a", - "_id": "uU8bIoZvXge0rLaU", - "description": "", - "sort": 0, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.346", - "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1752976835537, - "modifiedTime": 1752976835537, - "lastModifiedBy": "k0gmQFlvrPvlTtbh" - }, - "_key": "!folders!uU8bIoZvXge0rLaU" -} diff --git a/src/packs/items/consumables/consumable_Acidpaste_cfVFmS8vT9dbq9s1.json b/src/packs/items/consumables/consumable_Acidpaste_cfVFmS8vT9dbq9s1.json new file mode 100644 index 00000000..b24eac54 --- /dev/null +++ b/src/packs/items/consumables/consumable_Acidpaste_cfVFmS8vT9dbq9s1.json @@ -0,0 +1,55 @@ +{ + "name": "Acidpaste", + "type": "consumable", + "_id": "cfVFmS8vT9dbq9s1", + "img": "icons/commodities/materials/bowl-powder-teal.webp", + "system": { + "description": "

This paste eats away walls and other surfaces in bright flashes.

", + "quantity": 1, + "actions": { + "FQ2Ty0pP3z6JrBr6": { + "type": "effect", + "_id": "FQ2Ty0pP3z6JrBr6", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "effects": [], + "target": { + "type": null, + "amount": null + }, + "name": "Use", + "img": "icons/commodities/materials/bowl-powder-teal.webp", + "range": "" + } + }, + "consumeOnUse": true + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753590344700, + "modifiedTime": 1753590379629, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!cfVFmS8vT9dbq9s1" +} diff --git a/src/packs/items/consumables/consumable_Armor_Stitcher_VlbsCjvvLNfTzNXb.json b/src/packs/items/consumables/consumable_Armor_Stitcher_VlbsCjvvLNfTzNXb.json new file mode 100644 index 00000000..334b1edc --- /dev/null +++ b/src/packs/items/consumables/consumable_Armor_Stitcher_VlbsCjvvLNfTzNXb.json @@ -0,0 +1,103 @@ +{ + "name": "Armor Stitcher", + "type": "consumable", + "_id": "VlbsCjvvLNfTzNXb", + "img": "icons/skills/trades/textiles-stitching-leather-brown.webp", + "system": { + "description": "

You can use this stitcher to spend any number of Hope and clear that many Armor Slots.

", + "quantity": 1, + "actions": { + "mMWp5isSCerqjJGU": { + "type": "healing", + "_id": "mMWp5isSCerqjJGU", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [ + { + "scalable": true, + "key": "hope", + "value": 1, + "step": 1, + "keyIsID": false + } + ], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "target": { + "type": null, + "amount": null + }, + "effects": [], + "healing": { + "applyTo": "armorStack", + "resultBased": false, + "value": { + "multiplier": "scale", + "flatMultiplier": 1, + "dice": "d4", + "bonus": null, + "custom": { + "enabled": true, + "formula": "@scale" + } + }, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + }, + "base": false, + "type": [] + }, + "roll": { + "type": null, + "trait": null, + "difficulty": null, + "bonus": null, + "advState": "neutral", + "diceRolling": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "compare": "above", + "treshold": 1 + }, + "useDefault": false + }, + "name": "Use", + "img": "icons/skills/trades/textiles-stitching-leather-brown.webp", + "range": "" + } + }, + "consumeOnUse": true + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753588973384, + "modifiedTime": 1753616684194, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!VlbsCjvvLNfTzNXb" +} diff --git a/src/packs/items/consumables/consumable_Attune_Potion_JGD3M9hBHtVAA8XP.json b/src/packs/items/consumables/consumable_Attune_Potion_JGD3M9hBHtVAA8XP.json new file mode 100644 index 00000000..6ec2165a --- /dev/null +++ b/src/packs/items/consumables/consumable_Attune_Potion_JGD3M9hBHtVAA8XP.json @@ -0,0 +1,105 @@ +{ + "name": "Attune Potion", + "type": "consumable", + "_id": "JGD3M9hBHtVAA8XP", + "img": "icons/consumables/potions/bottle-conical-corked-purple.webp", + "system": { + "description": "

You gain a +1 bonus to your next Instinct Roll.

", + "quantity": 1, + "actions": { + "aiyNOQZbVpTDagXy": { + "type": "effect", + "_id": "aiyNOQZbVpTDagXy", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "effects": [ + { + "_id": "I5vgALTNDVApxy9d", + "onSave": false + } + ], + "target": { + "type": null, + "amount": null + }, + "name": "Drink", + "img": "icons/consumables/potions/bottle-conical-corked-purple.webp", + "range": "" + } + }, + "consumeOnUse": true + }, + "effects": [ + { + "name": "Attune Potion", + "img": "icons/consumables/potions/bottle-conical-corked-purple.webp", + "origin": "Compendium.daggerheart.consumables.Item.JGD3M9hBHtVAA8XP", + "transfer": false, + "_id": "I5vgALTNDVApxy9d", + "type": "base", + "system": {}, + "changes": [ + { + "key": "system.traits.instinct.value", + "mode": 2, + "value": "1", + "priority": null + } + ], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "", + "tint": "#ffffff", + "statuses": [], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753587072840, + "modifiedTime": 1753587081602, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items.effects!JGD3M9hBHtVAA8XP.I5vgALTNDVApxy9d" + } + ], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753587033468, + "modifiedTime": 1753587890614, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!JGD3M9hBHtVAA8XP" +} diff --git a/src/packs/items/consumables/consumable_Blinding_Orb_eAXHdzA5qNPldOpn.json b/src/packs/items/consumables/consumable_Blinding_Orb_eAXHdzA5qNPldOpn.json new file mode 100644 index 00000000..ec74d7a2 --- /dev/null +++ b/src/packs/items/consumables/consumable_Blinding_Orb_eAXHdzA5qNPldOpn.json @@ -0,0 +1,100 @@ +{ + "name": "Blinding Orb", + "type": "consumable", + "_id": "eAXHdzA5qNPldOpn", + "img": "icons/magic/light/explosion-star-large-blue-yellow.webp", + "system": { + "description": "

You can activate this orb to create a flash of bright light. All targets within Close range become Vulnerable until they mark HP.

", + "quantity": 1, + "actions": { + "vk4dE0C8bjNdTwAF": { + "type": "effect", + "_id": "vk4dE0C8bjNdTwAF", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "effects": [ + { + "_id": "nryJhrF26hyFQUxH", + "onSave": false + } + ], + "target": { + "type": "any", + "amount": null + }, + "name": "Activate", + "img": "icons/magic/light/explosion-star-large-blue-yellow.webp", + "range": "close" + } + }, + "consumeOnUse": true + }, + "effects": [ + { + "name": "Blinding Orb", + "img": "icons/magic/light/explosion-star-large-blue-yellow.webp", + "origin": "Compendium.daggerheart.consumables.Item.eAXHdzA5qNPldOpn", + "transfer": false, + "_id": "nryJhrF26hyFQUxH", + "type": "base", + "system": {}, + "changes": [], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "", + "tint": "#ffffff", + "statuses": [ + "vulnerable" + ], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753592689854, + "modifiedTime": 1753592707034, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items.effects!eAXHdzA5qNPldOpn.nryJhrF26hyFQUxH" + } + ], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753592512731, + "modifiedTime": 1753592689875, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!eAXHdzA5qNPldOpn" +} diff --git a/src/packs/items/consumables/consumable_Blood_of_the_Yorgi_pDGzmczoTlKGmKgd.json b/src/packs/items/consumables/consumable_Blood_of_the_Yorgi_pDGzmczoTlKGmKgd.json new file mode 100644 index 00000000..3a89973d --- /dev/null +++ b/src/packs/items/consumables/consumable_Blood_of_the_Yorgi_pDGzmczoTlKGmKgd.json @@ -0,0 +1,55 @@ +{ + "name": "Blood of the Yorgi", + "type": "consumable", + "_id": "pDGzmczoTlKGmKgd", + "img": "icons/consumables/potions/potion-tube-corked-bat-gold-red.webp", + "system": { + "description": "

You can drink this blood to disappear from where you are and immediately reappear at a point you can see within Very Far range.

", + "quantity": 1, + "actions": { + "6QGfkGkFqqzuVOOY": { + "type": "effect", + "_id": "6QGfkGkFqqzuVOOY", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "effects": [], + "target": { + "type": null, + "amount": null + }, + "name": "Drink", + "img": "icons/consumables/potions/potion-tube-corked-bat-gold-red.webp", + "range": "" + } + }, + "consumeOnUse": true + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753589954973, + "modifiedTime": 1753589985716, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!pDGzmczoTlKGmKgd" +} diff --git a/src/packs/items/consumables/consumable_Bolster_Potion_FOPQNqXbiVO0ilYL.json b/src/packs/items/consumables/consumable_Bolster_Potion_FOPQNqXbiVO0ilYL.json new file mode 100644 index 00000000..2609a130 --- /dev/null +++ b/src/packs/items/consumables/consumable_Bolster_Potion_FOPQNqXbiVO0ilYL.json @@ -0,0 +1,105 @@ +{ + "name": "Bolster Potion", + "type": "consumable", + "_id": "FOPQNqXbiVO0ilYL", + "img": "icons/consumables/potions/potion-vial-tube-yellow.webp", + "system": { + "description": "

You gain a +1 bonus to your next Strength Roll.

", + "quantity": 1, + "actions": { + "YqbQKTgblItoZOm8": { + "type": "effect", + "_id": "YqbQKTgblItoZOm8", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "effects": [ + { + "_id": "HVCJp9Tkhr1i4Oc1", + "onSave": false + } + ], + "target": { + "type": null, + "amount": null + }, + "name": "Drink", + "img": "icons/consumables/potions/potion-vial-tube-yellow.webp", + "range": "" + } + }, + "consumeOnUse": true + }, + "effects": [ + { + "name": "Bolster Potion", + "img": "icons/consumables/potions/potion-vial-tube-yellow.webp", + "origin": "Compendium.daggerheart.consumables.Item.FOPQNqXbiVO0ilYL", + "transfer": false, + "_id": "HVCJp9Tkhr1i4Oc1", + "type": "base", + "system": {}, + "changes": [ + { + "key": "system.traits.strength.value", + "mode": 2, + "value": "1", + "priority": null + } + ], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "", + "tint": "#ffffff", + "statuses": [], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753586918808, + "modifiedTime": 1753586928363, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items.effects!FOPQNqXbiVO0ilYL.HVCJp9Tkhr1i4Oc1" + } + ], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753586850134, + "modifiedTime": 1753587920117, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!FOPQNqXbiVO0ilYL" +} diff --git a/src/packs/items/consumables/consumable_Bonding_Honey_PfQvqopXgvroBklL.json b/src/packs/items/consumables/consumable_Bonding_Honey_PfQvqopXgvroBklL.json new file mode 100644 index 00000000..e57b63cb --- /dev/null +++ b/src/packs/items/consumables/consumable_Bonding_Honey_PfQvqopXgvroBklL.json @@ -0,0 +1,55 @@ +{ + "name": "Bonding Honey", + "type": "consumable", + "_id": "PfQvqopXgvroBklL", + "img": "icons/consumables/food/soup-broth-bowl-wooden-yellow.webp", + "system": { + "description": "

This honey can be used to glue two objects together permanently.

", + "quantity": 1, + "actions": { + "SWrgUGHIWCXpED1b": { + "type": "effect", + "_id": "SWrgUGHIWCXpED1b", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "effects": [], + "target": { + "type": null, + "amount": null + }, + "name": "Use", + "img": "icons/consumables/food/soup-broth-bowl-wooden-yellow.webp", + "range": "" + } + }, + "consumeOnUse": true + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753592033119, + "modifiedTime": 1753592067178, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!PfQvqopXgvroBklL" +} diff --git a/src/packs/items/consumables/consumable_Bridge_Seed_RrIasiMCt6mqVTps.json b/src/packs/items/consumables/consumable_Bridge_Seed_RrIasiMCt6mqVTps.json new file mode 100644 index 00000000..9390ce16 --- /dev/null +++ b/src/packs/items/consumables/consumable_Bridge_Seed_RrIasiMCt6mqVTps.json @@ -0,0 +1,55 @@ +{ + "name": "Bridge Seed", + "type": "consumable", + "_id": "RrIasiMCt6mqVTps", + "img": "icons/consumables/plants/leaf-old-dried-curled-green.webp", + "system": { + "description": "

Thick vines grow from your location to a point of your choice within Far range, allowing you to climb up or across them. The vines dissipate on your next short rest.

", + "quantity": 1, + "actions": { + "dk7fhkfA4m5lqNWB": { + "type": "effect", + "_id": "dk7fhkfA4m5lqNWB", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "effects": [], + "target": { + "type": null, + "amount": null + }, + "name": "Plant", + "img": "icons/consumables/plants/leaf-old-dried-curled-green.webp", + "range": "" + } + }, + "consumeOnUse": true + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753591685990, + "modifiedTime": 1753591826807, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!RrIasiMCt6mqVTps" +} diff --git a/src/packs/items/consumables/consumable_Channelstone_IKMVQ6VwtapwoUim.json b/src/packs/items/consumables/consumable_Channelstone_IKMVQ6VwtapwoUim.json new file mode 100644 index 00000000..21952554 --- /dev/null +++ b/src/packs/items/consumables/consumable_Channelstone_IKMVQ6VwtapwoUim.json @@ -0,0 +1,55 @@ +{ + "name": "Channelstone", + "type": "consumable", + "_id": "IKMVQ6VwtapwoUim", + "img": "icons/commodities/stone/engraved-symbol-water-grey.webp", + "system": { + "description": "

You can use this stone to take a spell or grimoire from your vault, use it once, and return it to your vault.

", + "quantity": 1, + "actions": { + "X4KtBG5Uve09hRoj": { + "type": "effect", + "_id": "X4KtBG5Uve09hRoj", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "effects": [], + "target": { + "type": null, + "amount": null + }, + "name": "Use", + "img": "icons/commodities/stone/engraved-symbol-water-grey.webp", + "range": "" + } + }, + "consumeOnUse": true + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753590192533, + "modifiedTime": 1753590231535, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!IKMVQ6VwtapwoUim" +} diff --git a/src/packs/items/consumables/consumable_Charm_Potion_CVBbFfOY75YwyQsp.json b/src/packs/items/consumables/consumable_Charm_Potion_CVBbFfOY75YwyQsp.json new file mode 100644 index 00000000..94cfbcb9 --- /dev/null +++ b/src/packs/items/consumables/consumable_Charm_Potion_CVBbFfOY75YwyQsp.json @@ -0,0 +1,105 @@ +{ + "name": "Charm Potion", + "type": "consumable", + "_id": "CVBbFfOY75YwyQsp", + "img": "icons/consumables/potions/potion-tube-corked-blue.webp", + "system": { + "description": "

You gain a +1 bonus to your next Presence Roll.

", + "quantity": 1, + "actions": { + "2trd3JYIb527LIrn": { + "type": "effect", + "_id": "2trd3JYIb527LIrn", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "effects": [ + { + "_id": "COrKb7gBin4Ro6r6", + "onSave": false + } + ], + "target": { + "type": null, + "amount": null + }, + "name": "Drink", + "img": "icons/consumables/potions/potion-tube-corked-blue.webp", + "range": "" + } + }, + "consumeOnUse": true + }, + "effects": [ + { + "name": "Charm Potion", + "img": "icons/consumables/potions/potion-tube-corked-blue.webp", + "origin": "Compendium.daggerheart.consumables.Item.CVBbFfOY75YwyQsp", + "transfer": false, + "_id": "COrKb7gBin4Ro6r6", + "type": "base", + "system": {}, + "changes": [ + { + "key": "system.traits.presence.value", + "mode": 2, + "value": "1", + "priority": null + } + ], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "", + "tint": "#ffffff", + "statuses": [], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753587164842, + "modifiedTime": 1753587173489, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items.effects!CVBbFfOY75YwyQsp.COrKb7gBin4Ro6r6" + } + ], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753587097370, + "modifiedTime": 1753587932738, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!CVBbFfOY75YwyQsp" +} diff --git a/src/packs/items/consumables/consumable_Circle_of_the_Void_elsyP6VhHw1JjGSl.json b/src/packs/items/consumables/consumable_Circle_of_the_Void_elsyP6VhHw1JjGSl.json new file mode 100644 index 00000000..207e3c4d --- /dev/null +++ b/src/packs/items/consumables/consumable_Circle_of_the_Void_elsyP6VhHw1JjGSl.json @@ -0,0 +1,63 @@ +{ + "name": "Circle of the Void", + "type": "consumable", + "_id": "elsyP6VhHw1JjGSl", + "img": "icons/magic/unholy/orb-glowing-purple.webp", + "system": { + "description": "

Mark a Stress to create a void that extends up to Far range. No magic can be cast inside the void, and creatures within the void are immune to magic damage.

", + "quantity": 1, + "actions": { + "ovR11FWCpXaFMPVx": { + "type": "effect", + "_id": "ovR11FWCpXaFMPVx", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [ + { + "scalable": false, + "key": "stress", + "value": 1, + "keyIsID": false, + "step": null + } + ], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "effects": [], + "target": { + "type": null, + "amount": null + }, + "name": "Use", + "img": "icons/magic/unholy/orb-glowing-purple.webp", + "range": "" + } + }, + "consumeOnUse": true + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753590692159, + "modifiedTime": 1753590776732, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!elsyP6VhHw1JjGSl" +} diff --git a/src/packs/items/consumables/consumable_Control_Potion_eeBhZSGLjuNZuJuI.json b/src/packs/items/consumables/consumable_Control_Potion_eeBhZSGLjuNZuJuI.json new file mode 100644 index 00000000..274efd2b --- /dev/null +++ b/src/packs/items/consumables/consumable_Control_Potion_eeBhZSGLjuNZuJuI.json @@ -0,0 +1,105 @@ +{ + "name": "Control Potion", + "type": "consumable", + "_id": "eeBhZSGLjuNZuJuI", + "img": "icons/consumables/potions/flask-corked-blue.webp", + "system": { + "description": "

You gain a +1 bonus to your next Finesse Roll.

", + "quantity": 1, + "actions": { + "l5dx5uYsH0btLDJq": { + "type": "effect", + "_id": "l5dx5uYsH0btLDJq", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "effects": [ + { + "_id": "1VAQYZ1YYc9ew9UR", + "onSave": false + } + ], + "target": { + "type": null, + "amount": null + }, + "name": "Drink", + "img": "icons/consumables/potions/flask-corked-blue.webp", + "range": "" + } + }, + "consumeOnUse": true + }, + "effects": [ + { + "name": "Control Potion", + "img": "icons/consumables/potions/flask-corked-blue.webp", + "origin": "Compendium.daggerheart.consumables.Item.eeBhZSGLjuNZuJuI", + "transfer": false, + "_id": "1VAQYZ1YYc9ew9UR", + "type": "base", + "system": {}, + "changes": [ + { + "key": "system.traits.finesse.value", + "mode": 2, + "value": "1", + "priority": null + } + ], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "", + "tint": "#ffffff", + "statuses": [], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753587008395, + "modifiedTime": 1753587017580, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items.effects!eeBhZSGLjuNZuJuI.1VAQYZ1YYc9ew9UR" + } + ], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753586944889, + "modifiedTime": 1753587943049, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!eeBhZSGLjuNZuJuI" +} diff --git a/src/packs/items/consumables/consumable_Death_Tea_xDnJeF1grkmKck8Q.json b/src/packs/items/consumables/consumable_Death_Tea_xDnJeF1grkmKck8Q.json new file mode 100644 index 00000000..eafe74d0 --- /dev/null +++ b/src/packs/items/consumables/consumable_Death_Tea_xDnJeF1grkmKck8Q.json @@ -0,0 +1,55 @@ +{ + "name": "Death Tea", + "type": "consumable", + "_id": "xDnJeF1grkmKck8Q", + "img": "icons/consumables/drinks/wine-amphora-clay-gray.webp", + "system": { + "description": "

After you drink this tea, you instantly kill your target when you critically succeed on an attack. If you don’t critically succeed on an attack before your next long rest, you die.

", + "quantity": 1, + "actions": { + "U7da5R4pgVkEQJVj": { + "type": "effect", + "_id": "U7da5R4pgVkEQJVj", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "effects": [], + "target": { + "type": null, + "amount": null + }, + "name": "Drink", + "img": "icons/consumables/drinks/wine-amphora-clay-gray.webp", + "range": "" + } + }, + "consumeOnUse": true + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753592717630, + "modifiedTime": 1753592777582, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!xDnJeF1grkmKck8Q" +} diff --git a/src/packs/items/consumables/consumable_Dragonbloom_Tea_wM18PWWW2Ami4fBG.json b/src/packs/items/consumables/consumable_Dragonbloom_Tea_wM18PWWW2Ami4fBG.json new file mode 100644 index 00000000..da89cf7a --- /dev/null +++ b/src/packs/items/consumables/consumable_Dragonbloom_Tea_wM18PWWW2Ami4fBG.json @@ -0,0 +1,104 @@ +{ + "name": "Dragonbloom Tea", + "type": "consumable", + "_id": "wM18PWWW2Ami4fBG", + "img": "icons/consumables/drinks/tea-jug-gourd-brown.webp", + "system": { + "description": "

You can drink this tea to unleash a fiery breath attack. Make an Instinct Roll against all adversaries in front of you within Close range. Targets you succeed against take d20 physical damage using your Proficiency.

", + "quantity": 1, + "actions": { + "rcHEz3ImUDwo6lPC": { + "type": "attack", + "_id": "rcHEz3ImUDwo6lPC", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "damage": { + "parts": [ + { + "resultBased": false, + "value": { + "custom": { + "enabled": false + }, + "multiplier": "prof", + "dice": "d20", + "bonus": null, + "flatMultiplier": 1 + }, + "applyTo": "hitPoints", + "type": [], + "base": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + } + } + ], + "includeBase": false + }, + "target": { + "type": "hostile", + "amount": null + }, + "effects": [], + "roll": { + "type": "trait", + "trait": "instinct", + "difficulty": null, + "bonus": null, + "advState": "neutral", + "diceRolling": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "compare": "above", + "treshold": 1 + }, + "useDefault": false + }, + "save": { + "trait": null, + "difficulty": 10, + "damageMod": "none" + }, + "name": "Drink", + "img": "icons/consumables/drinks/tea-jug-gourd-brown.webp", + "range": "close" + } + }, + "consumeOnUse": true + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753591525829, + "modifiedTime": 1753591674720, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!wM18PWWW2Ami4fBG" +} diff --git a/src/packs/items/consumables/consumable_Dripfang_Poison_eU8VpbWB2NHIL47n.json b/src/packs/items/consumables/consumable_Dripfang_Poison_eU8VpbWB2NHIL47n.json new file mode 100644 index 00000000..d11569cc --- /dev/null +++ b/src/packs/items/consumables/consumable_Dripfang_Poison_eU8VpbWB2NHIL47n.json @@ -0,0 +1,86 @@ +{ + "name": "Dripfang Poison", + "type": "consumable", + "_id": "eU8VpbWB2NHIL47n", + "img": "icons/consumables/potions/potion-jug-corked-skull-poison-brown-green.webp", + "system": { + "description": "

A creature who consumes this poison takes 8d10 direct magic damage.

", + "quantity": 1, + "actions": { + "F8CUhhCuZMnXVCrw": { + "type": "damage", + "_id": "F8CUhhCuZMnXVCrw", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": false + }, + "multiplier": "flat", + "flatMultiplier": 8, + "dice": "d10", + "bonus": null + }, + "applyTo": "hitPoints", + "type": [ + "magical" + ], + "base": false, + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + } + } + ], + "includeBase": false + }, + "target": { + "type": null, + "amount": null + }, + "effects": [], + "name": "Consume", + "img": "icons/consumables/potions/potion-jug-corked-skull-poison-brown-green.webp", + "range": "" + } + }, + "consumeOnUse": true + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753590938047, + "modifiedTime": 1753591027903, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!eU8VpbWB2NHIL47n" +} diff --git a/src/packs/items/consumables/consumable_Enlighten_Potion_aWHSO2AqDufi7nL4.json b/src/packs/items/consumables/consumable_Enlighten_Potion_aWHSO2AqDufi7nL4.json new file mode 100644 index 00000000..9b4c1c0f --- /dev/null +++ b/src/packs/items/consumables/consumable_Enlighten_Potion_aWHSO2AqDufi7nL4.json @@ -0,0 +1,105 @@ +{ + "name": "Enlighten Potion", + "type": "consumable", + "_id": "aWHSO2AqDufi7nL4", + "img": "icons/consumables/potions/vial-cork-empty.webp", + "system": { + "description": "

You gain a +1 bonus to your next Knowledge Roll.

", + "quantity": 1, + "actions": { + "F3K719gxEwQH697e": { + "type": "effect", + "_id": "F3K719gxEwQH697e", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "effects": [ + { + "_id": "QNzVrDW73jF1d5wE", + "onSave": false + } + ], + "target": { + "type": null, + "amount": null + }, + "name": "Drink", + "img": "icons/consumables/potions/vial-cork-empty.webp", + "range": "" + } + }, + "consumeOnUse": true + }, + "effects": [ + { + "name": "Enlighten Potion", + "img": "icons/consumables/potions/vial-cork-empty.webp", + "origin": "Compendium.daggerheart.consumables.Item.aWHSO2AqDufi7nL4", + "transfer": false, + "_id": "QNzVrDW73jF1d5wE", + "type": "base", + "system": {}, + "changes": [ + { + "key": "system.traits.knowledge.value", + "mode": 2, + "value": "1", + "priority": null + } + ], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "", + "tint": "#ffffff", + "statuses": [], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753588649848, + "modifiedTime": 1753588661474, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items.effects!aWHSO2AqDufi7nL4.QNzVrDW73jF1d5wE" + } + ], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753587185754, + "modifiedTime": 1753588649868, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!aWHSO2AqDufi7nL4" +} diff --git a/src/packs/items/consumables/consumable_Feast_of_Xuria_aX6NyxkNzu0LcJpt.json b/src/packs/items/consumables/consumable_Feast_of_Xuria_aX6NyxkNzu0LcJpt.json new file mode 100644 index 00000000..7a7fe19b --- /dev/null +++ b/src/packs/items/consumables/consumable_Feast_of_Xuria_aX6NyxkNzu0LcJpt.json @@ -0,0 +1,219 @@ +{ + "name": "Feast of Xuria", + "type": "consumable", + "_id": "aX6NyxkNzu0LcJpt", + "img": "icons/consumables/food/bowl-stew-tofu-potato-red.webp", + "system": { + "description": "

You can eat this meal to clear all HP and Stress and gain 1d4 Hope.

", + "quantity": 1, + "actions": { + "rZUgZkwtJaE33b7m": { + "type": "healing", + "_id": "rZUgZkwtJaE33b7m", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "target": { + "type": null, + "amount": null + }, + "effects": [], + "healing": { + "applyTo": "hope", + "resultBased": false, + "value": { + "multiplier": "flat", + "flatMultiplier": 1, + "dice": "d4", + "bonus": null, + "custom": { + "enabled": false, + "formula": "@system.resources.stress.max" + } + }, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + }, + "base": false, + "type": [] + }, + "roll": { + "type": null, + "trait": null, + "difficulty": null, + "bonus": null, + "advState": "neutral", + "diceRolling": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "compare": "above", + "treshold": 1 + }, + "useDefault": false + }, + "name": "Eat (Hope)", + "img": "icons/consumables/food/bowl-stew-tofu-potato-red.webp", + "range": "" + }, + "GNWsoqelfhDnVysy": { + "type": "healing", + "_id": "GNWsoqelfhDnVysy", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "target": { + "type": null, + "amount": null + }, + "effects": [], + "healing": { + "applyTo": "hitPoints", + "resultBased": false, + "value": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": true, + "formula": "@system.resources.hitPoints.max" + } + }, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + }, + "base": false, + "type": [] + }, + "roll": { + "type": null, + "trait": null, + "difficulty": null, + "bonus": null, + "advState": "neutral", + "diceRolling": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "compare": "above", + "treshold": 1 + }, + "useDefault": false + }, + "name": "Eat (HP)", + "img": "icons/consumables/food/bowl-stew-tofu-potato-red.webp", + "range": "" + }, + "YgFeu7IZftpowBqI": { + "type": "healing", + "_id": "YgFeu7IZftpowBqI", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "target": { + "type": null, + "amount": null + }, + "effects": [], + "healing": { + "applyTo": "stress", + "resultBased": false, + "value": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": true, + "formula": "@system.resources.stress.max" + } + }, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + }, + "base": false, + "type": [] + }, + "roll": { + "type": null, + "trait": null, + "difficulty": null, + "bonus": null, + "advState": "neutral", + "diceRolling": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "compare": "above", + "treshold": 1 + }, + "useDefault": false + }, + "name": "Eat (Stress)", + "img": "icons/consumables/food/bowl-stew-tofu-potato-red.webp", + "range": "" + } + }, + "consumeOnUse": true + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753591925502, + "modifiedTime": 1753617593610, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!aX6NyxkNzu0LcJpt" +} diff --git a/src/packs/items/consumables/consumable_Featherbone_DpxEMpwfasEBpORU.json b/src/packs/items/consumables/consumable_Featherbone_DpxEMpwfasEBpORU.json new file mode 100644 index 00000000..acf378ed --- /dev/null +++ b/src/packs/items/consumables/consumable_Featherbone_DpxEMpwfasEBpORU.json @@ -0,0 +1,55 @@ +{ + "name": "Featherbone", + "type": "consumable", + "_id": "DpxEMpwfasEBpORU", + "img": "icons/commodities/bones/bones-stack-worn-brown.webp", + "system": { + "description": "

You can use this bone to control your falling speed for a number of minutes equal to your level.

", + "quantity": 1, + "actions": { + "MC0EA6TDZpEHMz11": { + "type": "effect", + "_id": "MC0EA6TDZpEHMz11", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "effects": [], + "target": { + "type": null, + "amount": null + }, + "name": "Use", + "img": "icons/commodities/bones/bones-stack-worn-brown.webp", + "range": "" + } + }, + "consumeOnUse": true + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753590624634, + "modifiedTime": 1753590684567, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!DpxEMpwfasEBpORU" +} diff --git a/src/packs/items/consumables/consumable_Gill_Salve_Nvbb9mze6o5D0AEg.json b/src/packs/items/consumables/consumable_Gill_Salve_Nvbb9mze6o5D0AEg.json new file mode 100644 index 00000000..f0c9ca45 --- /dev/null +++ b/src/packs/items/consumables/consumable_Gill_Salve_Nvbb9mze6o5D0AEg.json @@ -0,0 +1,55 @@ +{ + "name": "Gill Salve", + "type": "consumable", + "_id": "Nvbb9mze6o5D0AEg", + "img": "icons/commodities/materials/bowl-powder-blue.webp", + "system": { + "description": "

You can apply this salve to your neck to breathe underwater for a number of minutes equal to your level.

", + "quantity": 1, + "actions": { + "57IIcyhEs2ByoENx": { + "type": "effect", + "_id": "57IIcyhEs2ByoENx", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "effects": [], + "target": { + "type": null, + "amount": null + }, + "name": "Apply", + "img": "icons/commodities/materials/bowl-powder-blue.webp", + "range": "" + } + }, + "consumeOnUse": true + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753589241094, + "modifiedTime": 1753589295204, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!Nvbb9mze6o5D0AEg" +} diff --git a/src/packs/items/consumables/consumable_Grindletooth_Venom_8WkhvSzeOmLdnoLJ.json b/src/packs/items/consumables/consumable_Grindletooth_Venom_8WkhvSzeOmLdnoLJ.json new file mode 100644 index 00000000..86e4dd75 --- /dev/null +++ b/src/packs/items/consumables/consumable_Grindletooth_Venom_8WkhvSzeOmLdnoLJ.json @@ -0,0 +1,86 @@ +{ + "name": "Grindletooth Venom", + "type": "consumable", + "_id": "8WkhvSzeOmLdnoLJ", + "img": "icons/consumables/potions/bottle-conical-corked-labeled-skull-poison-green.webp", + "system": { + "description": "

You can apply this venom to a weapon that deals physical damage to add a d6 to your next damage roll with that weapon.

", + "quantity": 1, + "actions": { + "PxLGZBoJCS0L4QZl": { + "type": "damage", + "_id": "PxLGZBoJCS0L4QZl", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": false + }, + "multiplier": "flat", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null + }, + "applyTo": "hitPoints", + "type": [ + "physical" + ], + "base": false, + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + } + } + ], + "includeBase": false + }, + "target": { + "type": null, + "amount": null + }, + "effects": [], + "name": "Apply Venom", + "img": "icons/consumables/potions/bottle-conical-corked-labeled-skull-poison-green.webp", + "range": "" + } + }, + "consumeOnUse": true + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753587386639, + "modifiedTime": 1753587966903, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!8WkhvSzeOmLdnoLJ" +} diff --git a/src/packs/items/consumables/consumable_Growing_Potion_fl2f3ees8RFMze9t.json b/src/packs/items/consumables/consumable_Growing_Potion_fl2f3ees8RFMze9t.json new file mode 100644 index 00000000..faea5ef7 --- /dev/null +++ b/src/packs/items/consumables/consumable_Growing_Potion_fl2f3ees8RFMze9t.json @@ -0,0 +1,111 @@ +{ + "name": "Growing Potion", + "type": "consumable", + "_id": "fl2f3ees8RFMze9t", + "img": "icons/consumables/potions/potion-bottle-corked-labeled-green.webp", + "system": { + "description": "

You can drink this potion to double your size until you choose to drop this form or your next rest. While in this form, you have a +2 bonus to Strength and a +1 bonus to your Proficiency.

", + "quantity": 1, + "actions": { + "A8wHvMnKnewQ2J3m": { + "type": "effect", + "_id": "A8wHvMnKnewQ2J3m", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "effects": [ + { + "_id": "YEGd74Lssj7rCmpF", + "onSave": false + } + ], + "target": { + "type": null, + "amount": null + }, + "name": "Drink", + "img": "icons/consumables/potions/potion-bottle-corked-labeled-green.webp", + "range": "" + } + }, + "consumeOnUse": true + }, + "effects": [ + { + "name": "Growing Potion", + "img": "icons/consumables/potions/potion-bottle-corked-labeled-green.webp", + "origin": "Compendium.daggerheart.consumables.Item.fl2f3ees8RFMze9t", + "transfer": false, + "_id": "YEGd74Lssj7rCmpF", + "type": "base", + "system": {}, + "changes": [ + { + "key": "system.traits.strength.value", + "mode": 2, + "value": "2", + "priority": null + }, + { + "key": "system.proficiency", + "mode": 2, + "value": "1", + "priority": null + } + ], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "", + "tint": "#ffffff", + "statuses": [], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753592211848, + "modifiedTime": 1753592229488, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items.effects!fl2f3ees8RFMze9t.YEGd74Lssj7rCmpF" + } + ], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753592174440, + "modifiedTime": 1753592211868, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!fl2f3ees8RFMze9t" +} diff --git a/src/packs/items/consumables/consumable_Health_Potion_Aruc2NLutWuVIjP1.json b/src/packs/items/consumables/consumable_Health_Potion_Aruc2NLutWuVIjP1.json new file mode 100644 index 00000000..ddf0a5af --- /dev/null +++ b/src/packs/items/consumables/consumable_Health_Potion_Aruc2NLutWuVIjP1.json @@ -0,0 +1,94 @@ +{ + "name": "Health Potion", + "type": "consumable", + "_id": "Aruc2NLutWuVIjP1", + "img": "icons/consumables/potions/bottle-corked-red.webp", + "system": { + "description": "

Clear 1d4+1 HP.

", + "quantity": 1, + "actions": { + "XeKSZ99sdgK9oV3D": { + "type": "healing", + "_id": "XeKSZ99sdgK9oV3D", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "target": { + "type": null, + "amount": null + }, + "effects": [], + "healing": { + "applyTo": "hitPoints", + "resultBased": false, + "value": { + "multiplier": "flat", + "flatMultiplier": 1, + "dice": "d4", + "bonus": 1, + "custom": { + "enabled": false + } + }, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + }, + "base": false, + "type": [] + }, + "roll": { + "type": null, + "trait": null, + "difficulty": null, + "bonus": null, + "advState": "neutral", + "diceRolling": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "compare": "above", + "treshold": 1 + }, + "useDefault": false + }, + "name": "Drink", + "img": "icons/consumables/potions/bottle-corked-red.webp", + "range": "" + } + }, + "consumeOnUse": true + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753588839527, + "modifiedTime": 1753588886268, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!Aruc2NLutWuVIjP1" +} diff --git a/src/packs/items/consumables/consumable_Homet_s_Secret_Potion_VSwa1LpQ9PjZKsWF.json b/src/packs/items/consumables/consumable_Homet_s_Secret_Potion_VSwa1LpQ9PjZKsWF.json new file mode 100644 index 00000000..276d8595 --- /dev/null +++ b/src/packs/items/consumables/consumable_Homet_s_Secret_Potion_VSwa1LpQ9PjZKsWF.json @@ -0,0 +1,55 @@ +{ + "name": "Homet’s Secret Potion", + "type": "consumable", + "_id": "VSwa1LpQ9PjZKsWF", + "img": "icons/consumables/potions/conical-ornate-purple.webp", + "system": { + "description": "

After drinking this potion, the next successful attack you make critically succeeds.

", + "quantity": 1, + "actions": { + "NCcqIcPhEsUnFh7S": { + "type": "effect", + "_id": "NCcqIcPhEsUnFh7S", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "effects": [], + "target": { + "type": null, + "amount": null + }, + "name": "Drink", + "img": "icons/consumables/potions/conical-ornate-purple.webp", + "range": "" + } + }, + "consumeOnUse": true + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753589998065, + "modifiedTime": 1753590051364, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!VSwa1LpQ9PjZKsWF" +} diff --git a/src/packs/items/consumables/consumable_Hopehold_Flare_EhaQCPJ8oiqpRIwB.json b/src/packs/items/consumables/consumable_Hopehold_Flare_EhaQCPJ8oiqpRIwB.json new file mode 100644 index 00000000..a5bf0035 --- /dev/null +++ b/src/packs/items/consumables/consumable_Hopehold_Flare_EhaQCPJ8oiqpRIwB.json @@ -0,0 +1,55 @@ +{ + "name": "Hopehold Flare", + "type": "consumable", + "_id": "EhaQCPJ8oiqpRIwB", + "img": "icons/commodities/tech/smoke-bomb-purple.webp", + "system": { + "description": "

When you use this flare, allies within Close range roll a d6 when they spend a Hope. On a result of 6, they gain the effect of that Hope without spending it. The flare lasts until the end of the scene.

", + "quantity": 1, + "actions": { + "hTF2K4uWcrUypLbs": { + "type": "effect", + "_id": "hTF2K4uWcrUypLbs", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "effects": [], + "target": { + "type": null, + "amount": null + }, + "name": "Use", + "img": "icons/commodities/tech/smoke-bomb-purple.webp", + "range": "" + } + }, + "consumeOnUse": true + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753590388618, + "modifiedTime": 1753590501578, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!EhaQCPJ8oiqpRIwB" +} diff --git a/src/packs/items/consumables/consumable_Improved_Arcane_Shard_nQTo6mNoPTEVBtkm.json b/src/packs/items/consumables/consumable_Improved_Arcane_Shard_nQTo6mNoPTEVBtkm.json new file mode 100644 index 00000000..da505b43 --- /dev/null +++ b/src/packs/items/consumables/consumable_Improved_Arcane_Shard_nQTo6mNoPTEVBtkm.json @@ -0,0 +1,106 @@ +{ + "name": "Improved Arcane Shard", + "type": "consumable", + "_id": "nQTo6mNoPTEVBtkm", + "img": "icons/commodities/gems/gem-faceted-teardrop-blue.webp", + "system": { + "description": "

You can make a Finesse Roll to throw this shard at a group of adversaries within Far range. Targets you succeed against take 2d20 magic damage.

", + "quantity": 1, + "actions": { + "g3sQoxS6sL3mut3u": { + "type": "attack", + "_id": "g3sQoxS6sL3mut3u", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "damage": { + "parts": [ + { + "resultBased": false, + "value": { + "custom": { + "enabled": false + }, + "multiplier": "flat", + "flatMultiplier": 2, + "dice": "d20", + "bonus": null + }, + "applyTo": "hitPoints", + "type": [ + "magical" + ], + "base": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + } + } + ], + "includeBase": false + }, + "target": { + "type": "hostile", + "amount": null + }, + "effects": [], + "roll": { + "type": "trait", + "trait": "finesse", + "difficulty": null, + "bonus": null, + "advState": "neutral", + "diceRolling": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "compare": "above", + "treshold": 1 + }, + "useDefault": false + }, + "save": { + "trait": null, + "difficulty": 10, + "damageMod": "none" + }, + "name": "Throw", + "img": "icons/commodities/gems/gem-faceted-teardrop-blue.webp", + "range": "far" + } + }, + "consumeOnUse": true + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753589403341, + "modifiedTime": 1753589489112, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!nQTo6mNoPTEVBtkm" +} diff --git a/src/packs/items/consumables/consumable_Improved_Grindletooth_Venom_BqBWXXe9T07AMV4u.json b/src/packs/items/consumables/consumable_Improved_Grindletooth_Venom_BqBWXXe9T07AMV4u.json new file mode 100644 index 00000000..102359d3 --- /dev/null +++ b/src/packs/items/consumables/consumable_Improved_Grindletooth_Venom_BqBWXXe9T07AMV4u.json @@ -0,0 +1,86 @@ +{ + "name": "Improved Grindletooth Venom", + "type": "consumable", + "_id": "BqBWXXe9T07AMV4u", + "img": "icons/consumables/potions/potion-jar-corked-labeled-poison-skull-green.webp", + "system": { + "description": "

You can apply this venom to a weapon that deals physical damage to add a d8 to your next damage roll with that weapon.

", + "quantity": 1, + "actions": { + "qCr94sRkuODpywiZ": { + "type": "damage", + "_id": "qCr94sRkuODpywiZ", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": false + }, + "multiplier": "flat", + "flatMultiplier": 1, + "dice": "d8", + "bonus": null + }, + "applyTo": "hitPoints", + "type": [ + "physical" + ], + "base": false, + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + } + } + ], + "includeBase": false + }, + "target": { + "type": null, + "amount": null + }, + "effects": [], + "name": "Apply Venom", + "img": "icons/consumables/potions/potion-jar-corked-labeled-poison-skull-green.webp", + "range": "" + } + }, + "consumeOnUse": true + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753588170670, + "modifiedTime": 1753588234520, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!BqBWXXe9T07AMV4u" +} diff --git a/src/packs/items/consumables/consumable_Jar_of_Lost_Voices_yUol6M5b8jsbk9za.json b/src/packs/items/consumables/consumable_Jar_of_Lost_Voices_yUol6M5b8jsbk9za.json new file mode 100644 index 00000000..f4b9c4f1 --- /dev/null +++ b/src/packs/items/consumables/consumable_Jar_of_Lost_Voices_yUol6M5b8jsbk9za.json @@ -0,0 +1,86 @@ +{ + "name": "Jar of Lost Voices", + "type": "consumable", + "_id": "yUol6M5b8jsbk9za", + "img": "icons/containers/kitchenware/jug-wrapped-red.webp", + "system": { + "description": "

You can open this jar to release a deafening echo of voices for a number of minutes equal to your Instinct. Creatures within Far range unprepared for the sound take 6d8 magic damage.

", + "quantity": 1, + "actions": { + "QEk4TaJeN9FX8cZN": { + "type": "damage", + "_id": "QEk4TaJeN9FX8cZN", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": false + }, + "multiplier": "flat", + "flatMultiplier": 6, + "dice": "d8", + "bonus": null + }, + "applyTo": "hitPoints", + "type": [ + "magical" + ], + "base": false, + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + } + } + ], + "includeBase": false + }, + "target": { + "type": null, + "amount": null + }, + "effects": [], + "name": "Open", + "img": "icons/containers/kitchenware/jug-wrapped-red.webp", + "range": "" + } + }, + "consumeOnUse": true + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753591372075, + "modifiedTime": 1753591514408, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!yUol6M5b8jsbk9za" +} diff --git a/src/packs/items/consumables/consumable_Jumping_Root_c2putn9apuurJhWX.json b/src/packs/items/consumables/consumable_Jumping_Root_c2putn9apuurJhWX.json new file mode 100644 index 00000000..c28e09e3 --- /dev/null +++ b/src/packs/items/consumables/consumable_Jumping_Root_c2putn9apuurJhWX.json @@ -0,0 +1,55 @@ +{ + "name": "Jumping Root", + "type": "consumable", + "_id": "c2putn9apuurJhWX", + "img": "icons/consumables/plants/dried-bundle-wrapped-stems-sticks-brown.webp", + "system": { + "description": "

Eat this root to leap up to Far range once without needing to roll.

", + "quantity": 1, + "actions": { + "TT4jzve7o2ykPcQO": { + "type": "effect", + "_id": "TT4jzve7o2ykPcQO", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "effects": [], + "target": { + "type": null, + "amount": null + }, + "name": "Eat", + "img": "icons/consumables/plants/dried-bundle-wrapped-stems-sticks-brown.webp", + "range": "" + } + }, + "consumeOnUse": true + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753588566489, + "modifiedTime": 1753588625439, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!c2putn9apuurJhWX" +} diff --git a/src/packs/items/consumables/consumable_Knowledge_Stone_nL9IALzm9BNi5oSt.json b/src/packs/items/consumables/consumable_Knowledge_Stone_nL9IALzm9BNi5oSt.json new file mode 100644 index 00000000..26d16445 --- /dev/null +++ b/src/packs/items/consumables/consumable_Knowledge_Stone_nL9IALzm9BNi5oSt.json @@ -0,0 +1,55 @@ +{ + "name": "Knowledge Stone", + "type": "consumable", + "_id": "nL9IALzm9BNi5oSt", + "img": "icons/commodities/treasure/token-engraved-blue-glowing.webp", + "system": { + "description": "

If you die while holding this stone, an ally can take a card from your loadout to place in their loadout or vault. After they take this knowledge, the stone crumbles.

", + "quantity": 1, + "actions": { + "We38aIuxBrv8zhfr": { + "type": "effect", + "_id": "We38aIuxBrv8zhfr", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "effects": [], + "target": { + "type": null, + "amount": null + }, + "name": "Use", + "img": "icons/commodities/treasure/token-engraved-blue-glowing.webp", + "range": "" + } + }, + "consumeOnUse": true + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753592240392, + "modifiedTime": 1753592383492, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!nL9IALzm9BNi5oSt" +} diff --git a/src/packs/items/consumables/consumable_Major_Arcane_Shard_AA7bmiwv00lshPrC.json b/src/packs/items/consumables/consumable_Major_Arcane_Shard_AA7bmiwv00lshPrC.json new file mode 100644 index 00000000..959547c9 --- /dev/null +++ b/src/packs/items/consumables/consumable_Major_Arcane_Shard_AA7bmiwv00lshPrC.json @@ -0,0 +1,104 @@ +{ + "name": "Major Arcane Shard", + "type": "consumable", + "_id": "AA7bmiwv00lshPrC", + "img": "icons/commodities/gems/gem-rough-round-blue.webp", + "system": { + "description": "

You can make a Finesse Roll to throw this shard at a group of adversaries within Far range. Targets you succeed against take 4d20 magic damage.

", + "quantity": 1, + "actions": { + "8JHqtEYD0uOGwHdd": { + "type": "attack", + "_id": "8JHqtEYD0uOGwHdd", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "damage": { + "parts": [ + { + "resultBased": false, + "value": { + "custom": { + "enabled": false + }, + "multiplier": "flat", + "flatMultiplier": 4, + "dice": "d20", + "bonus": null + }, + "applyTo": "hitPoints", + "type": [], + "base": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + } + } + ], + "includeBase": false + }, + "target": { + "type": "hostile", + "amount": null + }, + "effects": [], + "roll": { + "type": "trait", + "trait": "finesse", + "difficulty": null, + "bonus": null, + "advState": "neutral", + "diceRolling": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "compare": "above", + "treshold": 1 + }, + "useDefault": false + }, + "save": { + "trait": null, + "difficulty": 10, + "damageMod": "none" + }, + "name": "Throw", + "img": "icons/commodities/gems/gem-rough-round-blue.webp", + "range": "far" + } + }, + "consumeOnUse": true + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753590515261, + "modifiedTime": 1753590588765, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!AA7bmiwv00lshPrC" +} diff --git a/src/packs/items/consumables/consumable_Major_Attune_Potion_CCPFm5iXXwvyYYwR.json b/src/packs/items/consumables/consumable_Major_Attune_Potion_CCPFm5iXXwvyYYwR.json new file mode 100644 index 00000000..4442e555 --- /dev/null +++ b/src/packs/items/consumables/consumable_Major_Attune_Potion_CCPFm5iXXwvyYYwR.json @@ -0,0 +1,105 @@ +{ + "name": "Major Attune Potion", + "type": "consumable", + "_id": "CCPFm5iXXwvyYYwR", + "img": "icons/consumables/potions/bottle-round-corked-pink.webp", + "system": { + "description": "

You gain a +1 bonus to your Instinct until your next rest.

", + "quantity": 1, + "actions": { + "zerWKpcBvtiaUfaw": { + "type": "effect", + "_id": "zerWKpcBvtiaUfaw", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "effects": [ + { + "_id": "v2EXGXbJaewaMxFC", + "onSave": false + } + ], + "target": { + "type": null, + "amount": null + }, + "name": "Drink", + "img": "icons/consumables/potions/bottle-round-corked-pink.webp", + "range": "" + } + }, + "consumeOnUse": true + }, + "effects": [ + { + "name": "Major Attune Potion", + "img": "icons/consumables/potions/bottle-round-corked-pink.webp", + "origin": "Compendium.daggerheart.consumables.Item.CCPFm5iXXwvyYYwR", + "transfer": false, + "_id": "v2EXGXbJaewaMxFC", + "type": "base", + "system": {}, + "changes": [ + { + "key": "system.traits.instinct.value", + "mode": 2, + "value": "1", + "priority": null + } + ], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "", + "tint": "#ffffff", + "statuses": [], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753589791269, + "modifiedTime": 1753589801620, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items.effects!CCPFm5iXXwvyYYwR.v2EXGXbJaewaMxFC" + } + ], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753589747286, + "modifiedTime": 1753589806499, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!CCPFm5iXXwvyYYwR" +} diff --git a/src/packs/items/consumables/consumable_Major_Bolster_Potion_mnyQDRtngWWQeRXF.json b/src/packs/items/consumables/consumable_Major_Bolster_Potion_mnyQDRtngWWQeRXF.json new file mode 100644 index 00000000..b1328d06 --- /dev/null +++ b/src/packs/items/consumables/consumable_Major_Bolster_Potion_mnyQDRtngWWQeRXF.json @@ -0,0 +1,105 @@ +{ + "name": "Major Bolster Potion", + "type": "consumable", + "_id": "mnyQDRtngWWQeRXF", + "img": "icons/consumables/potions/potion-jar-corked-orange.webp", + "system": { + "description": "

You gain a +1 bonus to your Strength until your next rest.

", + "quantity": 1, + "actions": { + "Z7ehTbRegQvq74tl": { + "type": "effect", + "_id": "Z7ehTbRegQvq74tl", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "effects": [ + { + "_id": "3PfXBJy0ZjLBDAIn", + "onSave": false + } + ], + "target": { + "type": null, + "amount": null + }, + "name": "Drink", + "img": "icons/consumables/potions/potion-jar-corked-orange.webp", + "range": "" + } + }, + "consumeOnUse": true + }, + "effects": [ + { + "name": "Major Bolster Potion", + "img": "icons/consumables/potions/potion-jar-corked-orange.webp", + "origin": "Compendium.daggerheart.consumables.Item.mnyQDRtngWWQeRXF", + "transfer": false, + "_id": "3PfXBJy0ZjLBDAIn", + "type": "base", + "system": {}, + "changes": [ + { + "key": "system.traits.strength.value", + "mode": 2, + "value": "1", + "priority": null + } + ], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "", + "tint": "#ffffff", + "statuses": [], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753589654978, + "modifiedTime": 1753589663303, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items.effects!mnyQDRtngWWQeRXF.3PfXBJy0ZjLBDAIn" + } + ], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753589623872, + "modifiedTime": 1753589654996, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!mnyQDRtngWWQeRXF" +} diff --git a/src/packs/items/consumables/consumable_Major_Charm_Potion_IJLAUlQymbSjzsri.json b/src/packs/items/consumables/consumable_Major_Charm_Potion_IJLAUlQymbSjzsri.json new file mode 100644 index 00000000..b45a434f --- /dev/null +++ b/src/packs/items/consumables/consumable_Major_Charm_Potion_IJLAUlQymbSjzsri.json @@ -0,0 +1,105 @@ +{ + "name": "Major Charm Potion", + "type": "consumable", + "_id": "IJLAUlQymbSjzsri", + "img": "icons/consumables/potions/potion-bottle-corked-blue.webp", + "system": { + "description": "

You gain a +1 bonus to your Presence until your next rest.

", + "quantity": 1, + "actions": { + "Bz6oZUN317mLvQSk": { + "type": "effect", + "_id": "Bz6oZUN317mLvQSk", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "effects": [ + { + "_id": "3iXv9QiuLGOfDCi2", + "onSave": false + } + ], + "target": { + "type": null, + "amount": null + }, + "name": "Drink", + "img": "icons/consumables/potions/potion-bottle-corked-blue.webp", + "range": "" + } + }, + "consumeOnUse": true + }, + "effects": [ + { + "name": "Major Charm Potion", + "img": "icons/consumables/potions/potion-bottle-corked-blue.webp", + "origin": "Compendium.daggerheart.consumables.Item.IJLAUlQymbSjzsri", + "transfer": false, + "_id": "3iXv9QiuLGOfDCi2", + "type": "base", + "system": {}, + "changes": [ + { + "key": "system.traits.presence.value", + "mode": 2, + "value": "1", + "priority": null + } + ], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "", + "tint": "#ffffff", + "statuses": [], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753589854495, + "modifiedTime": 1753589862607, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items.effects!IJLAUlQymbSjzsri.3iXv9QiuLGOfDCi2" + } + ], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753589816684, + "modifiedTime": 1753589854510, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!IJLAUlQymbSjzsri" +} diff --git a/src/packs/items/consumables/consumable_Major_Control_Potion_80s1FLmTLtohZ5GH.json b/src/packs/items/consumables/consumable_Major_Control_Potion_80s1FLmTLtohZ5GH.json new file mode 100644 index 00000000..5e16f5ad --- /dev/null +++ b/src/packs/items/consumables/consumable_Major_Control_Potion_80s1FLmTLtohZ5GH.json @@ -0,0 +1,105 @@ +{ + "name": "Major Control Potion", + "type": "consumable", + "_id": "80s1FLmTLtohZ5GH", + "img": "icons/consumables/potions/bottle-round-corked-blue.webp", + "system": { + "description": "

You gain a +1 bonus to your Finesse until your next rest.

", + "quantity": 1, + "actions": { + "fk272mE2zHIHq8qR": { + "type": "effect", + "_id": "fk272mE2zHIHq8qR", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "effects": [ + { + "_id": "YOgojNdjARXUUrky", + "onSave": false + } + ], + "target": { + "type": null, + "amount": null + }, + "name": "Drink", + "img": "icons/consumables/potions/bottle-round-corked-blue.webp", + "range": "" + } + }, + "consumeOnUse": true + }, + "effects": [ + { + "name": "Major Control Potion", + "img": "icons/consumables/potions/bottle-round-corked-blue.webp", + "origin": "Compendium.daggerheart.consumables.Item.80s1FLmTLtohZ5GH", + "transfer": false, + "_id": "YOgojNdjARXUUrky", + "type": "base", + "system": {}, + "changes": [ + { + "key": "system.traits.finesse.value", + "mode": 2, + "value": "1", + "priority": null + } + ], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "", + "tint": "#ffffff", + "statuses": [], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753589723372, + "modifiedTime": 1753589738716, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items.effects!80s1FLmTLtohZ5GH.YOgojNdjARXUUrky" + } + ], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753589675185, + "modifiedTime": 1753589723393, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!80s1FLmTLtohZ5GH" +} diff --git a/src/packs/items/consumables/consumable_Major_Enlighten_Potion_SDdv1G2veMLKrxcJ.json b/src/packs/items/consumables/consumable_Major_Enlighten_Potion_SDdv1G2veMLKrxcJ.json new file mode 100644 index 00000000..ba6c1f17 --- /dev/null +++ b/src/packs/items/consumables/consumable_Major_Enlighten_Potion_SDdv1G2veMLKrxcJ.json @@ -0,0 +1,105 @@ +{ + "name": "Major Enlighten Potion", + "type": "consumable", + "_id": "SDdv1G2veMLKrxcJ", + "img": "icons/consumables/potions/bottle-corked-empty.webp", + "system": { + "description": "

You gain a +1 bonus to your Knowledge until your next rest.

", + "quantity": 1, + "actions": { + "cZL1A3hNXHbjfwi3": { + "type": "effect", + "_id": "cZL1A3hNXHbjfwi3", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "effects": [ + { + "_id": "Ul5brgnx88npVGNj", + "onSave": false + } + ], + "target": { + "type": null, + "amount": null + }, + "name": "Drink", + "img": "icons/consumables/potions/bottle-corked-empty.webp", + "range": "" + } + }, + "consumeOnUse": true + }, + "effects": [ + { + "name": "Major Enlighten Potion", + "img": "icons/consumables/potions/bottle-corked-empty.webp", + "origin": "Compendium.daggerheart.consumables.Item.SDdv1G2veMLKrxcJ", + "transfer": false, + "_id": "Ul5brgnx88npVGNj", + "type": "base", + "system": {}, + "changes": [ + { + "key": "system.traits.knowledge.value", + "mode": 2, + "value": "1", + "priority": null + } + ], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "", + "tint": "#ffffff", + "statuses": [], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753589930774, + "modifiedTime": 1753589937684, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items.effects!SDdv1G2veMLKrxcJ.Ul5brgnx88npVGNj" + } + ], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753589874661, + "modifiedTime": 1753589930795, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!SDdv1G2veMLKrxcJ" +} diff --git a/src/packs/items/consumables/consumable_Major_Health_Potion_cM7pHe8bBAxSZ2xR.json b/src/packs/items/consumables/consumable_Major_Health_Potion_cM7pHe8bBAxSZ2xR.json new file mode 100644 index 00000000..def6a86e --- /dev/null +++ b/src/packs/items/consumables/consumable_Major_Health_Potion_cM7pHe8bBAxSZ2xR.json @@ -0,0 +1,94 @@ +{ + "name": "Major Health Potion", + "type": "consumable", + "_id": "cM7pHe8bBAxSZ2xR", + "img": "icons/consumables/potions/bottle-round-label-cork-red.webp", + "system": { + "description": "

Clear 1d4+2 HP.

", + "quantity": 1, + "actions": { + "hawYNYSynJ8MLpq9": { + "type": "healing", + "_id": "hawYNYSynJ8MLpq9", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "target": { + "type": null, + "amount": null + }, + "effects": [], + "healing": { + "applyTo": "hitPoints", + "resultBased": false, + "value": { + "multiplier": "flat", + "flatMultiplier": 1, + "dice": "d4", + "bonus": 2, + "custom": { + "enabled": false + } + }, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + }, + "base": false, + "type": [] + }, + "roll": { + "type": null, + "trait": null, + "difficulty": null, + "bonus": null, + "advState": "neutral", + "diceRolling": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "compare": "above", + "treshold": 1 + }, + "useDefault": false + }, + "name": "Drink", + "img": "icons/consumables/potions/bottle-round-label-cork-red.webp", + "range": "" + } + }, + "consumeOnUse": true + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753591046168, + "modifiedTime": 1753591103501, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!cM7pHe8bBAxSZ2xR" +} diff --git a/src/packs/items/consumables/consumable_Major_Stamina_Potion_I4cQ03xbxnc81EGa.json b/src/packs/items/consumables/consumable_Major_Stamina_Potion_I4cQ03xbxnc81EGa.json new file mode 100644 index 00000000..574be850 --- /dev/null +++ b/src/packs/items/consumables/consumable_Major_Stamina_Potion_I4cQ03xbxnc81EGa.json @@ -0,0 +1,94 @@ +{ + "name": "Major Stamina Potion", + "type": "consumable", + "_id": "I4cQ03xbxnc81EGa", + "img": "icons/consumables/potions/bottle-round-label-cork-green.webp", + "system": { + "description": "

Clear 1d4+2 Stress.

", + "quantity": 1, + "actions": { + "tvpa9Sb1a3Z9DDiX": { + "type": "healing", + "_id": "tvpa9Sb1a3Z9DDiX", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "target": { + "type": null, + "amount": null + }, + "effects": [], + "healing": { + "applyTo": "stress", + "resultBased": false, + "value": { + "multiplier": "flat", + "flatMultiplier": 1, + "dice": "d4", + "bonus": 2, + "custom": { + "enabled": false + } + }, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + }, + "base": false, + "type": [] + }, + "roll": { + "type": null, + "trait": null, + "difficulty": null, + "bonus": null, + "advState": "neutral", + "diceRolling": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "compare": "above", + "treshold": 1 + }, + "useDefault": false + }, + "name": "Drink", + "img": "icons/consumables/potions/bottle-round-label-cork-green.webp", + "range": "" + } + }, + "consumeOnUse": true + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753591113317, + "modifiedTime": 1753591152705, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!I4cQ03xbxnc81EGa" +} diff --git a/src/packs/items/consumables/consumable_Major_Stride_Potion_yK6eEDUrsPbZA8G0.json b/src/packs/items/consumables/consumable_Major_Stride_Potion_yK6eEDUrsPbZA8G0.json new file mode 100644 index 00000000..0c969d9f --- /dev/null +++ b/src/packs/items/consumables/consumable_Major_Stride_Potion_yK6eEDUrsPbZA8G0.json @@ -0,0 +1,105 @@ +{ + "name": "Major Stride Potion", + "type": "consumable", + "_id": "yK6eEDUrsPbZA8G0", + "img": "icons/consumables/potions/potion-jar-capped-teal.webp", + "system": { + "description": "

You gain a +1 bonus to your Agility until your next rest.

", + "quantity": 1, + "actions": { + "UIVnvI726LJnlK86": { + "type": "effect", + "_id": "UIVnvI726LJnlK86", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "effects": [ + { + "_id": "L9dAw8pws1o02XkE", + "onSave": false + } + ], + "target": { + "type": null, + "amount": null + }, + "name": "Drink", + "img": "icons/consumables/potions/potion-jar-capped-teal.webp", + "range": "" + } + }, + "consumeOnUse": true + }, + "effects": [ + { + "name": "Major Stride Potion", + "img": "icons/consumables/potions/potion-jar-capped-teal.webp", + "origin": "Compendium.daggerheart.consumables.Item.yK6eEDUrsPbZA8G0", + "transfer": false, + "_id": "L9dAw8pws1o02XkE", + "type": "base", + "system": {}, + "changes": [ + { + "key": "system.traits.agility.value", + "mode": 2, + "value": "1", + "priority": null + } + ], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "", + "tint": "#ffffff", + "statuses": [], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753589592477, + "modifiedTime": 1753589609592, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items.effects!yK6eEDUrsPbZA8G0.L9dAw8pws1o02XkE" + } + ], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753589545730, + "modifiedTime": 1753589592499, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!yK6eEDUrsPbZA8G0" +} diff --git a/src/packs/items/consumables/consumable_Minor_Health_Potion_tPfKtKRRjv8qdSqy.json b/src/packs/items/consumables/consumable_Minor_Health_Potion_tPfKtKRRjv8qdSqy.json new file mode 100644 index 00000000..77101cc1 --- /dev/null +++ b/src/packs/items/consumables/consumable_Minor_Health_Potion_tPfKtKRRjv8qdSqy.json @@ -0,0 +1,94 @@ +{ + "name": "Minor Health Potion", + "type": "consumable", + "_id": "tPfKtKRRjv8qdSqy", + "img": "icons/consumables/potions/potion-tube-corked-red.webp", + "system": { + "description": "

Clear 1d4 HP.

", + "quantity": 1, + "actions": { + "nWs6DwFafL6xOOIZ": { + "type": "healing", + "_id": "nWs6DwFafL6xOOIZ", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "target": { + "type": null, + "amount": null + }, + "effects": [], + "healing": { + "applyTo": "hitPoints", + "resultBased": false, + "value": { + "multiplier": "flat", + "flatMultiplier": 1, + "dice": "d4", + "bonus": null, + "custom": { + "enabled": false + } + }, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + }, + "base": false, + "type": [] + }, + "roll": { + "type": null, + "trait": null, + "difficulty": null, + "bonus": null, + "advState": "neutral", + "diceRolling": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "compare": "above", + "treshold": 1 + }, + "useDefault": false + }, + "name": "Drink", + "img": "icons/consumables/potions/potion-tube-corked-red.webp", + "range": "" + } + }, + "consumeOnUse": true + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753587253431, + "modifiedTime": 1753587977441, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!tPfKtKRRjv8qdSqy" +} diff --git a/src/packs/items/consumables/consumable_Minor_Stamina_Potion_b6vGSPFWOlzZZDLO.json b/src/packs/items/consumables/consumable_Minor_Stamina_Potion_b6vGSPFWOlzZZDLO.json new file mode 100644 index 00000000..598985c1 --- /dev/null +++ b/src/packs/items/consumables/consumable_Minor_Stamina_Potion_b6vGSPFWOlzZZDLO.json @@ -0,0 +1,94 @@ +{ + "name": "Minor Stamina Potion", + "type": "consumable", + "_id": "b6vGSPFWOlzZZDLO", + "img": "icons/consumables/potions/potion-tube-corked-green.webp", + "system": { + "description": "

Clear 1d4 Stress.

", + "quantity": 1, + "actions": { + "s3UXcGku86aXFCKo": { + "type": "healing", + "_id": "s3UXcGku86aXFCKo", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "target": { + "type": null, + "amount": null + }, + "effects": [], + "healing": { + "applyTo": "stress", + "resultBased": false, + "value": { + "multiplier": "flat", + "flatMultiplier": 1, + "dice": "d4", + "bonus": null, + "custom": { + "enabled": false + } + }, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + }, + "base": false, + "type": [] + }, + "roll": { + "type": null, + "trait": null, + "difficulty": null, + "bonus": null, + "advState": "neutral", + "diceRolling": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "compare": "above", + "treshold": 1 + }, + "useDefault": false + }, + "name": "Drink", + "img": "icons/consumables/potions/potion-tube-corked-green.webp", + "range": "" + } + }, + "consumeOnUse": true + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753587324465, + "modifiedTime": 1753587988202, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!b6vGSPFWOlzZZDLO" +} diff --git a/src/packs/items/consumables/consumable_Mirror_of_Marigold_UFQVwgYOUZ88UxcH.json b/src/packs/items/consumables/consumable_Mirror_of_Marigold_UFQVwgYOUZ88UxcH.json new file mode 100644 index 00000000..4e5bd33f --- /dev/null +++ b/src/packs/items/consumables/consumable_Mirror_of_Marigold_UFQVwgYOUZ88UxcH.json @@ -0,0 +1,63 @@ +{ + "name": "Mirror of Marigold", + "type": "consumable", + "_id": "UFQVwgYOUZ88UxcH", + "img": "icons/commodities/treasure/token-silver-blue.webp", + "system": { + "description": "

When you take damage, you can spend a Hope to negate that damage, after which the mirror shatters.

", + "quantity": 1, + "actions": { + "EPN43cQmNC97cCw9": { + "type": "effect", + "_id": "EPN43cQmNC97cCw9", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [ + { + "keyIsID": false, + "key": "hope", + "value": 1, + "scalable": false, + "step": null + } + ], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "effects": [], + "target": { + "type": null, + "amount": null + }, + "name": "Use", + "img": "icons/commodities/treasure/token-silver-blue.webp", + "range": "" + } + }, + "consumeOnUse": true + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753592792213, + "modifiedTime": 1753592919887, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!UFQVwgYOUZ88UxcH" +} diff --git a/src/packs/items/consumables/consumable_Morphing_Clay_f1NHVSIHJJCIOaBl.json b/src/packs/items/consumables/consumable_Morphing_Clay_f1NHVSIHJJCIOaBl.json new file mode 100644 index 00000000..ca8fc106 --- /dev/null +++ b/src/packs/items/consumables/consumable_Morphing_Clay_f1NHVSIHJJCIOaBl.json @@ -0,0 +1,63 @@ +{ + "name": "Morphing Clay", + "type": "consumable", + "_id": "f1NHVSIHJJCIOaBl", + "img": "icons/commodities/stone/ore-chunk-brown.webp", + "system": { + "description": "

You can spend a Hope to use this clay, altering your face enough to make you unrecognizable until your next rest.

", + "quantity": 1, + "actions": { + "S4wEG1RzfLNtvcg7": { + "type": "effect", + "_id": "S4wEG1RzfLNtvcg7", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [ + { + "keyIsID": false, + "key": "hope", + "value": 1, + "scalable": false, + "step": null + } + ], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "effects": [], + "target": { + "type": null, + "amount": null + }, + "name": "Use", + "img": "icons/commodities/stone/ore-chunk-brown.webp", + "range": "" + } + }, + "consumeOnUse": true + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753588254032, + "modifiedTime": 1753588327474, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!f1NHVSIHJJCIOaBl" +} diff --git a/src/packs/items/consumables/consumable_Mythic_Dust_Zsh2AvZr8EkGtLyw.json b/src/packs/items/consumables/consumable_Mythic_Dust_Zsh2AvZr8EkGtLyw.json new file mode 100644 index 00000000..445ea187 --- /dev/null +++ b/src/packs/items/consumables/consumable_Mythic_Dust_Zsh2AvZr8EkGtLyw.json @@ -0,0 +1,86 @@ +{ + "name": "Mythic Dust", + "type": "consumable", + "_id": "Zsh2AvZr8EkGtLyw", + "img": "icons/commodities/materials/bowl-powder-grey.webp", + "system": { + "description": "

You can apply this dust to a weapon that deals magic damage to add a d12 to your next damage roll with that weapon.

", + "quantity": 1, + "actions": { + "yAE40wCrWg0qC3z0": { + "type": "damage", + "_id": "yAE40wCrWg0qC3z0", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": false + }, + "multiplier": "flat", + "flatMultiplier": 1, + "dice": "d12", + "bonus": null + }, + "applyTo": "hitPoints", + "type": [ + "magical" + ], + "base": false, + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + } + } + ], + "includeBase": false + }, + "target": { + "type": null, + "amount": null + }, + "effects": [], + "name": "Apply", + "img": "icons/commodities/materials/bowl-powder-grey.webp", + "range": "" + } + }, + "consumeOnUse": true + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753590241722, + "modifiedTime": 1753590307682, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!Zsh2AvZr8EkGtLyw" +} diff --git a/src/packs/items/consumables/consumable_Ogre_Musk_qr1bosjFcUfuwq4B.json b/src/packs/items/consumables/consumable_Ogre_Musk_qr1bosjFcUfuwq4B.json new file mode 100644 index 00000000..ba809758 --- /dev/null +++ b/src/packs/items/consumables/consumable_Ogre_Musk_qr1bosjFcUfuwq4B.json @@ -0,0 +1,55 @@ +{ + "name": "Ogre Musk", + "type": "consumable", + "_id": "qr1bosjFcUfuwq4B", + "img": "icons/commodities/materials/slime-thick-green.webp", + "system": { + "description": "

You can use this musk to prevent anyone from tracking you by mundane or magical means until your next rest.

", + "quantity": 1, + "actions": { + "t0vgSnAuIcj7IevQ": { + "type": "effect", + "_id": "t0vgSnAuIcj7IevQ", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "effects": [], + "target": { + "type": null, + "amount": null + }, + "name": "Use", + "img": "icons/commodities/materials/slime-thick-green.webp", + "range": "" + } + }, + "consumeOnUse": true + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753591168468, + "modifiedTime": 1753591274462, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!qr1bosjFcUfuwq4B" +} diff --git a/src/packs/items/consumables/consumable_Potion_of_Stability_dvL8oaxpEF6jKvYN.json b/src/packs/items/consumables/consumable_Potion_of_Stability_dvL8oaxpEF6jKvYN.json new file mode 100644 index 00000000..16496808 --- /dev/null +++ b/src/packs/items/consumables/consumable_Potion_of_Stability_dvL8oaxpEF6jKvYN.json @@ -0,0 +1,111 @@ +{ + "name": "Potion of Stability", + "type": "consumable", + "_id": "dvL8oaxpEF6jKvYN", + "img": "icons/consumables/potions/bottle-conical-corked-labeled-shell-cyan.webp", + "system": { + "description": "

You can drink this potion to choose one additional downtime move.

", + "quantity": 1, + "actions": { + "ifj42z5FhfMVyyd1": { + "type": "effect", + "_id": "ifj42z5FhfMVyyd1", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "effects": [ + { + "_id": "PjjGC4TpzjSz9z8s", + "onSave": false + } + ], + "target": { + "type": null, + "amount": null + }, + "name": "Drink", + "img": "icons/consumables/potions/bottle-conical-corked-labeled-shell-cyan.webp", + "range": "" + } + }, + "consumeOnUse": true + }, + "effects": [ + { + "name": "Potion of Stability", + "img": "icons/consumables/potions/bottle-conical-corked-labeled-shell-cyan.webp", + "origin": "Compendium.daggerheart.consumables.Item.dvL8oaxpEF6jKvYN", + "transfer": false, + "_id": "PjjGC4TpzjSz9z8s", + "type": "base", + "system": {}, + "changes": [ + { + "key": "system.bonuses.rest.shortRest.shortMoves", + "mode": 2, + "value": "1", + "priority": null + }, + { + "key": "system.bonuses.rest.longRest.longMoves", + "mode": 2, + "value": "1", + "priority": null + } + ], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "", + "tint": "#ffffff", + "statuses": [], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753616591279, + "modifiedTime": 1753616612536, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items.effects!dvL8oaxpEF6jKvYN.PjjGC4TpzjSz9z8s" + } + ], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753588038000, + "modifiedTime": 1753616591291, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!dvL8oaxpEF6jKvYN" +} diff --git a/src/packs/items/consumables/consumable_Redthorn_Saliva_s2Exl2XFuoOhtIov.json b/src/packs/items/consumables/consumable_Redthorn_Saliva_s2Exl2XFuoOhtIov.json new file mode 100644 index 00000000..8d2b2fa5 --- /dev/null +++ b/src/packs/items/consumables/consumable_Redthorn_Saliva_s2Exl2XFuoOhtIov.json @@ -0,0 +1,86 @@ +{ + "name": "Redthorn Saliva", + "type": "consumable", + "_id": "s2Exl2XFuoOhtIov", + "img": "icons/commodities/materials/slime-thick-blue.webp", + "system": { + "description": "

You can apply this saliva to a weapon that deals physical damage to add a d12 to your next damage roll with that weapon.

", + "quantity": 1, + "actions": { + "RJ9WXmH6mwQKpS8O": { + "type": "damage", + "_id": "RJ9WXmH6mwQKpS8O", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": false + }, + "multiplier": "flat", + "flatMultiplier": 1, + "dice": "d12", + "bonus": null + }, + "applyTo": "hitPoints", + "type": [ + "physical" + ], + "base": false, + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + } + } + ], + "includeBase": false + }, + "target": { + "type": null, + "amount": null + }, + "effects": [], + "name": "Apply", + "img": "icons/commodities/materials/slime-thick-blue.webp", + "range": "" + } + }, + "consumeOnUse": true + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753590061810, + "modifiedTime": 1753590334574, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!s2Exl2XFuoOhtIov" +} diff --git a/src/packs/items/consumables/consumable_Replication_Parchment_yJkwz4AP6yhGo8Vj.json b/src/packs/items/consumables/consumable_Replication_Parchment_yJkwz4AP6yhGo8Vj.json new file mode 100644 index 00000000..822aef35 --- /dev/null +++ b/src/packs/items/consumables/consumable_Replication_Parchment_yJkwz4AP6yhGo8Vj.json @@ -0,0 +1,55 @@ +{ + "name": "Replication Parchment", + "type": "consumable", + "_id": "yJkwz4AP6yhGo8Vj", + "img": "icons/sundries/scrolls/scroll-worn-beige.webp", + "system": { + "description": "

By touching this piece of parchment to another, you can perfectly copy the second parchment’s contents. Once used, this parchment becomes mundane paper.

", + "quantity": 1, + "actions": { + "j5gIVHXvcGu7PEZZ": { + "type": "effect", + "_id": "j5gIVHXvcGu7PEZZ", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "effects": [], + "target": { + "type": null, + "amount": null + }, + "name": "Use", + "img": "icons/sundries/scrolls/scroll-worn-beige.webp", + "range": "" + } + }, + "consumeOnUse": true + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753589306667, + "modifiedTime": 1753589388523, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!yJkwz4AP6yhGo8Vj" +} diff --git a/src/packs/items/consumables/consumable_Shrinking_Potion_HGixKenQwhyRAYNk.json b/src/packs/items/consumables/consumable_Shrinking_Potion_HGixKenQwhyRAYNk.json new file mode 100644 index 00000000..8dc3db65 --- /dev/null +++ b/src/packs/items/consumables/consumable_Shrinking_Potion_HGixKenQwhyRAYNk.json @@ -0,0 +1,111 @@ +{ + "name": "Shrinking Potion", + "type": "consumable", + "_id": "HGixKenQwhyRAYNk", + "img": "icons/consumables/potions/flask-decorated-label-pink.webp", + "system": { + "description": "

You can drink this potion to halve your size until you choose to drop this form or your next rest. While in this form, you have a +2 bonus to Agility and a −1 penalty to your Proficiency.

", + "quantity": 1, + "actions": { + "F9vKFVwtJfR4Q8Kh": { + "type": "effect", + "_id": "F9vKFVwtJfR4Q8Kh", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "effects": [ + { + "_id": "yaRLd7eHWYm2MHRM", + "onSave": false + } + ], + "target": { + "type": null, + "amount": null + }, + "name": "Drink", + "img": "icons/consumables/potions/flask-decorated-label-pink.webp", + "range": "" + } + }, + "consumeOnUse": true + }, + "effects": [ + { + "name": "Shrinking Potion", + "img": "icons/consumables/potions/flask-decorated-label-pink.webp", + "origin": "Compendium.daggerheart.consumables.Item.HGixKenQwhyRAYNk", + "transfer": false, + "_id": "yaRLd7eHWYm2MHRM", + "type": "base", + "system": {}, + "changes": [ + { + "key": "system.traits.agility.value", + "mode": 2, + "value": "2", + "priority": null + }, + { + "key": "system.proficiency", + "mode": 2, + "value": "-1", + "priority": null + } + ], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "", + "tint": "#ffffff", + "statuses": [], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753592138957, + "modifiedTime": 1753592163296, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items.effects!HGixKenQwhyRAYNk.yaRLd7eHWYm2MHRM" + } + ], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753592077792, + "modifiedTime": 1753592138977, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!HGixKenQwhyRAYNk" +} diff --git a/src/packs/items/consumables/consumable_Sleeping_Sap_XZavUVlHEvE2srEt.json b/src/packs/items/consumables/consumable_Sleeping_Sap_XZavUVlHEvE2srEt.json new file mode 100644 index 00000000..e54ed765 --- /dev/null +++ b/src/packs/items/consumables/consumable_Sleeping_Sap_XZavUVlHEvE2srEt.json @@ -0,0 +1,94 @@ +{ + "name": "Sleeping Sap", + "type": "consumable", + "_id": "XZavUVlHEvE2srEt", + "img": "icons/consumables/potions/bottle-bulb-corked-labeled-blue.webp", + "system": { + "description": "

You can drink this potion to fall asleep for a full night’s rest. You clear all Stress upon waking.

", + "quantity": 1, + "actions": { + "lsoIboe4luXfojFg": { + "type": "healing", + "_id": "lsoIboe4luXfojFg", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "target": { + "type": null, + "amount": null + }, + "effects": [], + "healing": { + "applyTo": "stress", + "resultBased": false, + "value": { + "multiplier": "flat", + "flatMultiplier": 1, + "dice": "d6", + "bonus": 11, + "custom": { + "enabled": false + } + }, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + }, + "base": false, + "type": [] + }, + "roll": { + "type": null, + "trait": null, + "difficulty": null, + "bonus": null, + "advState": "neutral", + "diceRolling": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "compare": "above", + "treshold": 1 + }, + "useDefault": false + }, + "name": "Drink", + "img": "icons/consumables/potions/bottle-bulb-corked-labeled-blue.webp", + "range": "" + } + }, + "consumeOnUse": true + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753591837472, + "modifiedTime": 1753591911174, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!XZavUVlHEvE2srEt" +} diff --git a/src/packs/items/consumables/consumable_Snap_Powder_cg6VtQ0eVZjDdcK0.json b/src/packs/items/consumables/consumable_Snap_Powder_cg6VtQ0eVZjDdcK0.json new file mode 100644 index 00000000..32552fa1 --- /dev/null +++ b/src/packs/items/consumables/consumable_Snap_Powder_cg6VtQ0eVZjDdcK0.json @@ -0,0 +1,103 @@ +{ + "name": "Snap Powder", + "type": "consumable", + "_id": "cg6VtQ0eVZjDdcK0", + "img": "icons/commodities/materials/bowl-powder-gold.webp", + "system": { + "description": "

Mark a Stress and clear a HP.

", + "quantity": 1, + "actions": { + "s4dxG7d38PPIrdoK": { + "type": "healing", + "_id": "s4dxG7d38PPIrdoK", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [ + { + "scalable": false, + "key": "stress", + "value": 1, + "keyIsID": false, + "step": null + } + ], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "target": { + "type": null, + "amount": null + }, + "effects": [], + "healing": { + "applyTo": "hitPoints", + "resultBased": false, + "value": { + "multiplier": "flat", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": true, + "formula": "1" + } + }, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + }, + "base": false, + "type": [] + }, + "roll": { + "type": null, + "trait": null, + "difficulty": null, + "bonus": null, + "advState": "neutral", + "diceRolling": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "compare": "above", + "treshold": 1 + }, + "useDefault": false + }, + "name": "Use", + "img": "icons/commodities/materials/bowl-powder-gold.webp", + "range": "" + } + }, + "consumeOnUse": true + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753588752841, + "modifiedTime": 1753588824014, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!cg6VtQ0eVZjDdcK0" +} diff --git a/src/packs/items/consumables/consumable_Stamina_Potion_hf3k1POoVSooJyN2.json b/src/packs/items/consumables/consumable_Stamina_Potion_hf3k1POoVSooJyN2.json new file mode 100644 index 00000000..1a836e8b --- /dev/null +++ b/src/packs/items/consumables/consumable_Stamina_Potion_hf3k1POoVSooJyN2.json @@ -0,0 +1,94 @@ +{ + "name": "Stamina Potion", + "type": "consumable", + "_id": "hf3k1POoVSooJyN2", + "img": "icons/consumables/potions/bottle-corked-green.webp", + "system": { + "description": "

Clear 1d4+1 Stress.

", + "quantity": 1, + "actions": { + "E6L2VaOyECv6w7b3": { + "type": "healing", + "_id": "E6L2VaOyECv6w7b3", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "target": { + "type": null, + "amount": null + }, + "effects": [], + "healing": { + "applyTo": "stress", + "resultBased": false, + "value": { + "multiplier": "flat", + "flatMultiplier": 1, + "dice": "d4", + "bonus": 1, + "custom": { + "enabled": false + } + }, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + }, + "base": false, + "type": [] + }, + "roll": { + "type": null, + "trait": null, + "difficulty": null, + "bonus": null, + "advState": "neutral", + "diceRolling": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "compare": "above", + "treshold": 1 + }, + "useDefault": false + }, + "name": "Drink", + "img": "icons/consumables/potions/bottle-corked-green.webp", + "range": "" + } + }, + "consumeOnUse": true + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753588904835, + "modifiedTime": 1753588959019, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!hf3k1POoVSooJyN2" +} diff --git a/src/packs/items/consumables/consumable_Stardrop_y4c1jrlHrf0wBWOq.json b/src/packs/items/consumables/consumable_Stardrop_y4c1jrlHrf0wBWOq.json new file mode 100644 index 00000000..a649e28b --- /dev/null +++ b/src/packs/items/consumables/consumable_Stardrop_y4c1jrlHrf0wBWOq.json @@ -0,0 +1,86 @@ +{ + "name": "Stardrop", + "type": "consumable", + "_id": "y4c1jrlHrf0wBWOq", + "img": "icons/magic/light/projectiles-star-purple.webp", + "system": { + "description": "

You can use this stardrop to summon a hailstorm of comets that deals 8d20 physical damage to all targets within Very Far range.

", + "quantity": 1, + "actions": { + "pt5U6hlyx4T7MUOa": { + "type": "damage", + "_id": "pt5U6hlyx4T7MUOa", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": false + }, + "multiplier": "flat", + "flatMultiplier": 8, + "dice": "d20", + "bonus": null + }, + "applyTo": "hitPoints", + "type": [ + "physical" + ], + "base": false, + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + } + } + ], + "includeBase": false + }, + "target": { + "type": "any", + "amount": null + }, + "effects": [], + "name": "Use", + "img": "icons/magic/light/projectiles-star-purple.webp", + "range": "veryFar" + } + }, + "consumeOnUse": true + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753592933782, + "modifiedTime": 1753593062814, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!y4c1jrlHrf0wBWOq" +} diff --git a/src/packs/items/consumables/consumable_Stride_Potion_lNtcrkgFGOJNaroE.json b/src/packs/items/consumables/consumable_Stride_Potion_lNtcrkgFGOJNaroE.json new file mode 100644 index 00000000..2f2bdf11 --- /dev/null +++ b/src/packs/items/consumables/consumable_Stride_Potion_lNtcrkgFGOJNaroE.json @@ -0,0 +1,105 @@ +{ + "name": "Stride Potion", + "type": "consumable", + "_id": "lNtcrkgFGOJNaroE", + "img": "icons/consumables/potions/potion-flask-corked-cyan.webp", + "system": { + "description": "

You gain a +1 bonus to your next Agility Roll.

", + "quantity": 1, + "actions": { + "GwQgdB3E1HogFKvD": { + "type": "effect", + "_id": "GwQgdB3E1HogFKvD", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "effects": [ + { + "_id": "xQ0xPDxskzZH4jeK", + "onSave": false + } + ], + "target": { + "type": null, + "amount": null + }, + "name": "Drink", + "img": "icons/consumables/potions/potion-flask-corked-cyan.webp", + "range": "" + } + }, + "consumeOnUse": true + }, + "effects": [ + { + "name": "Stride Potion", + "img": "icons/consumables/potions/potion-flask-corked-cyan.webp", + "origin": "Compendium.daggerheart.consumables.Item.lNtcrkgFGOJNaroE", + "transfer": false, + "_id": "xQ0xPDxskzZH4jeK", + "type": "base", + "system": {}, + "changes": [ + { + "key": "system.traits.agility.value", + "mode": 2, + "value": "1", + "priority": null + } + ], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "", + "tint": "#ffffff", + "statuses": [], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753586060323, + "modifiedTime": 1753586326926, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items.effects!lNtcrkgFGOJNaroE.xQ0xPDxskzZH4jeK" + } + ], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753585993187, + "modifiedTime": 1753587999711, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!lNtcrkgFGOJNaroE" +} diff --git a/src/packs/items/consumables/consumable_Sun_Tree_Sap_kwexUzdM9wm1Qums.json b/src/packs/items/consumables/consumable_Sun_Tree_Sap_kwexUzdM9wm1Qums.json new file mode 100644 index 00000000..a1f1fbf7 --- /dev/null +++ b/src/packs/items/consumables/consumable_Sun_Tree_Sap_kwexUzdM9wm1Qums.json @@ -0,0 +1,55 @@ +{ + "name": "Sun Tree Sap", + "type": "consumable", + "_id": "kwexUzdM9wm1Qums", + "img": "icons/consumables/drinks/wine-amphora-clay-pink.webp", + "system": { + "description": "

Consume this sap to roll a [[/r d6]]. On a result of 5–6, clear 2 HP. On a result of 2–4, clear 3 Stress. On a result of 1, see through the veil of death and return changed, gaining one scar.

", + "quantity": 1, + "actions": { + "bxM1ig880ykRgmTl": { + "type": "effect", + "_id": "bxM1ig880ykRgmTl", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "effects": [], + "target": { + "type": null, + "amount": null + }, + "name": "Drink", + "img": "icons/consumables/drinks/wine-amphora-clay-pink.webp", + "range": "" + } + }, + "consumeOnUse": true + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753590791260, + "modifiedTime": 1753590920951, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!kwexUzdM9wm1Qums" +} diff --git a/src/packs/items/consumables/consumable_Sweet_Moss_GrDrRqWgv7gvl9vn.json b/src/packs/items/consumables/consumable_Sweet_Moss_GrDrRqWgv7gvl9vn.json new file mode 100644 index 00000000..ffbbb793 --- /dev/null +++ b/src/packs/items/consumables/consumable_Sweet_Moss_GrDrRqWgv7gvl9vn.json @@ -0,0 +1,155 @@ +{ + "name": "Sweet Moss", + "type": "consumable", + "_id": "GrDrRqWgv7gvl9vn", + "img": "icons/consumables/plants/succulent-bundle-green.webp", + "system": { + "description": "

You can consume this moss during a rest to clear 1d10 HP or 1d10 Stress.

", + "quantity": 1, + "actions": { + "jQRgDZ6IBuIr0lbf": { + "type": "healing", + "_id": "jQRgDZ6IBuIr0lbf", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "target": { + "type": null, + "amount": null + }, + "effects": [], + "healing": { + "applyTo": "hitPoints", + "resultBased": false, + "value": { + "multiplier": "flat", + "flatMultiplier": 1, + "dice": "d10", + "bonus": null, + "custom": { + "enabled": false + } + }, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + }, + "base": false, + "type": [] + }, + "roll": { + "type": null, + "trait": null, + "difficulty": null, + "bonus": null, + "advState": "neutral", + "diceRolling": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "compare": "above", + "treshold": 1 + }, + "useDefault": false + }, + "name": "Eat (HP)", + "img": "icons/consumables/plants/succulent-bundle-green.webp", + "range": "" + }, + "kANBl1eRStshQYPu": { + "type": "healing", + "_id": "kANBl1eRStshQYPu", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "target": { + "type": null, + "amount": null + }, + "effects": [], + "healing": { + "applyTo": "stress", + "resultBased": false, + "value": { + "multiplier": "flat", + "flatMultiplier": 1, + "dice": "d10", + "bonus": null, + "custom": { + "enabled": false + } + }, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + }, + "base": false, + "type": [] + }, + "roll": { + "type": null, + "trait": null, + "difficulty": null, + "bonus": null, + "advState": "neutral", + "diceRolling": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "compare": "above", + "treshold": 1 + }, + "useDefault": false + }, + "name": "Eat (Stress)", + "img": "icons/consumables/plants/succulent-bundle-green.webp", + "range": "" + } + }, + "consumeOnUse": true + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753592391195, + "modifiedTime": 1753592499447, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!GrDrRqWgv7gvl9vn" +} diff --git a/src/packs/items/consumables/consumable_Unstable_Arcane_Shard_mUepnLbkvFk0ha4Z.json b/src/packs/items/consumables/consumable_Unstable_Arcane_Shard_mUepnLbkvFk0ha4Z.json new file mode 100644 index 00000000..d8941f72 --- /dev/null +++ b/src/packs/items/consumables/consumable_Unstable_Arcane_Shard_mUepnLbkvFk0ha4Z.json @@ -0,0 +1,106 @@ +{ + "name": "Unstable Arcane Shard", + "type": "consumable", + "_id": "mUepnLbkvFk0ha4Z", + "img": "icons/commodities/gems/gem-faceted-cushion-teal-black.webp", + "system": { + "description": "

You can make a Finesse Roll to throw this shard at a group of adversaries within Far range. Targets you succeed against take 1d20 magic damage.

", + "quantity": 1, + "actions": { + "D7BTCUV5DOXmqC0l": { + "type": "attack", + "_id": "D7BTCUV5DOXmqC0l", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "damage": { + "parts": [ + { + "resultBased": false, + "value": { + "custom": { + "enabled": false + }, + "multiplier": "flat", + "flatMultiplier": 1, + "dice": "d20", + "bonus": null + }, + "applyTo": "hitPoints", + "type": [ + "magical" + ], + "base": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + } + } + ], + "includeBase": false + }, + "target": { + "type": "hostile", + "amount": null + }, + "effects": [], + "roll": { + "type": "attack", + "trait": "finesse", + "difficulty": null, + "bonus": null, + "advState": "neutral", + "diceRolling": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "compare": "above", + "treshold": 1 + }, + "useDefault": false + }, + "save": { + "trait": null, + "difficulty": 10, + "damageMod": "none" + }, + "name": "Throw", + "img": "icons/commodities/gems/gem-faceted-cushion-teal-black.webp", + "range": "far" + } + }, + "consumeOnUse": true + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753587732694, + "modifiedTime": 1753587875310, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!mUepnLbkvFk0ha4Z" +} diff --git a/src/packs/items/consumables/consumable_Varik_Leaves_hvy5BkG3F6iOIXTx.json b/src/packs/items/consumables/consumable_Varik_Leaves_hvy5BkG3F6iOIXTx.json new file mode 100644 index 00000000..96bc5d40 --- /dev/null +++ b/src/packs/items/consumables/consumable_Varik_Leaves_hvy5BkG3F6iOIXTx.json @@ -0,0 +1,95 @@ +{ + "name": "Varik Leaves", + "type": "consumable", + "_id": "hvy5BkG3F6iOIXTx", + "img": "icons/consumables/plants/leaf-serrated-pink.webp", + "system": { + "description": "

You can eat these paired leaves to immediately gain 2 Hope.

", + "quantity": 1, + "actions": { + "aX2Odf9PzbRsU1gc": { + "type": "healing", + "_id": "aX2Odf9PzbRsU1gc", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "target": { + "type": null, + "amount": null + }, + "effects": [], + "healing": { + "applyTo": "hope", + "resultBased": false, + "value": { + "multiplier": "flat", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": true, + "formula": "2" + } + }, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + }, + "base": false, + "type": [] + }, + "roll": { + "type": null, + "trait": null, + "difficulty": null, + "bonus": null, + "advState": "neutral", + "diceRolling": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "compare": "above", + "treshold": 1 + }, + "useDefault": false + }, + "name": "Eat", + "img": "icons/consumables/plants/leaf-serrated-pink.webp", + "range": "" + } + }, + "consumeOnUse": true + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753587484164, + "modifiedTime": 1753588013329, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!hvy5BkG3F6iOIXTx" +} diff --git a/src/packs/items/consumables/consumable_Vial_of_Darksmoke_Nwv5ydGf0MWnzq1n.json b/src/packs/items/consumables/consumable_Vial_of_Darksmoke_Nwv5ydGf0MWnzq1n.json new file mode 100644 index 00000000..8d4d1ae8 --- /dev/null +++ b/src/packs/items/consumables/consumable_Vial_of_Darksmoke_Nwv5ydGf0MWnzq1n.json @@ -0,0 +1,55 @@ +{ + "name": "Vial of Darksmoke", + "type": "consumable", + "_id": "Nwv5ydGf0MWnzq1n", + "img": "icons/consumables/potions/bottle-bulb-empty-glass.webp", + "system": { + "description": "

When an adversary attacks you, use this vial and roll a number of d6s equal to your Agility. Add the highest result to your Evasion against the attack.

", + "quantity": 1, + "actions": { + "4nFnAoyH5dENizsx": { + "type": "effect", + "_id": "4nFnAoyH5dENizsx", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "reaction", + "cost": [], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "effects": [], + "target": { + "type": null, + "amount": null + }, + "name": "Use", + "img": "icons/consumables/potions/bottle-bulb-empty-glass.webp", + "range": "" + } + }, + "consumeOnUse": true + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753588345314, + "modifiedTime": 1753616649293, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!Nwv5ydGf0MWnzq1n" +} diff --git a/src/packs/items/consumables/consumable_Vial_of_Moondrip_VqEX5YwK5oL3r1t6.json b/src/packs/items/consumables/consumable_Vial_of_Moondrip_VqEX5YwK5oL3r1t6.json new file mode 100644 index 00000000..22b09db6 --- /dev/null +++ b/src/packs/items/consumables/consumable_Vial_of_Moondrip_VqEX5YwK5oL3r1t6.json @@ -0,0 +1,55 @@ +{ + "name": "Vial of Moondrip", + "type": "consumable", + "_id": "VqEX5YwK5oL3r1t6", + "img": "icons/consumables/potions/bottle-ornate-bat-teal.webp", + "system": { + "description": "

When you drink the contents of this vial, you can see in total darkness until your next rest.

", + "quantity": 1, + "actions": { + "6Ny75zR1b8I8Ycsb": { + "type": "effect", + "_id": "6Ny75zR1b8I8Ycsb", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "effects": [], + "target": { + "type": null, + "amount": null + }, + "name": "Drink", + "img": "icons/consumables/potions/bottle-ornate-bat-teal.webp", + "range": "" + } + }, + "consumeOnUse": true + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753587590537, + "modifiedTime": 1753588714959, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!VqEX5YwK5oL3r1t6" +} diff --git a/src/packs/items/consumables/consumable_Wingsprout_n10vozlmosVR6lo4.json b/src/packs/items/consumables/consumable_Wingsprout_n10vozlmosVR6lo4.json new file mode 100644 index 00000000..71ccfa52 --- /dev/null +++ b/src/packs/items/consumables/consumable_Wingsprout_n10vozlmosVR6lo4.json @@ -0,0 +1,55 @@ +{ + "name": "Wingsprout", + "type": "consumable", + "_id": "n10vozlmosVR6lo4", + "img": "icons/consumables/plants/leaf-broad-blue.webp", + "system": { + "description": "

You gain magic wings that allow you to fly for a number of minutes equal to your level.

", + "quantity": 1, + "actions": { + "HopgGHn12CHiDNuk": { + "type": "effect", + "_id": "HopgGHn12CHiDNuk", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "effects": [], + "target": { + "type": null, + "amount": null + }, + "name": "Use", + "img": "icons/consumables/plants/leaf-broad-blue.webp", + "range": "" + } + }, + "consumeOnUse": true + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753591283853, + "modifiedTime": 1753591361344, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!n10vozlmosVR6lo4" +} diff --git a/system.json b/system.json index d8e3253c..0efa1820 100644 --- a/system.json +++ b/system.json @@ -119,7 +119,7 @@ "flags": {} }, { - "name": "Loot", + "name": "loot", "label": "Loot", "system": "daggerheart", "path": "packs/items/loot.db", diff --git a/templates/sheets/actors/character/inventory.hbs b/templates/sheets/actors/character/inventory.hbs index 24f7836f..10433483 100644 --- a/templates/sheets/actors/character/inventory.hbs +++ b/templates/sheets/actors/character/inventory.hbs @@ -61,9 +61,9 @@ canCreate=true }} {{> 'daggerheart.inventory-items' - title='TYPES.Item.miscellaneous' - type='miscellaneous' - collection=document.itemTypes.miscellaneous + title='TYPES.Item.loot' + type='loot' + collection=document.itemTypes.loot isGlassy=true canCreate=true }} diff --git a/templates/sheets/items/miscellaneous/header.hbs b/templates/sheets/items/loot/header.hbs similarity index 81% rename from templates/sheets/items/miscellaneous/header.hbs rename to templates/sheets/items/loot/header.hbs index 218c3a47..0757c784 100644 --- a/templates/sheets/items/miscellaneous/header.hbs +++ b/templates/sheets/items/loot/header.hbs @@ -4,7 +4,7 @@

-

{{localize 'TYPES.Item.miscellaneous'}}

+

{{localize 'TYPES.Item.loot'}}

- \ No newline at end of file + diff --git a/templates/sheets/items/miscellaneous/settings.hbs b/templates/sheets/items/loot/settings.hbs similarity index 100% rename from templates/sheets/items/miscellaneous/settings.hbs rename to templates/sheets/items/loot/settings.hbs diff --git a/templates/ui/tooltip/miscellaneous.hbs b/templates/ui/tooltip/loot.hbs similarity index 100% rename from templates/ui/tooltip/miscellaneous.hbs rename to templates/ui/tooltip/loot.hbs From c81c1941a45f4f9ffebbf6472365e617f64d316c Mon Sep 17 00:00:00 2001 From: CPTN_Cosmo Date: Sun, 27 Jul 2025 15:58:02 +0200 Subject: [PATCH 08/14] temporarily remove healing actions from items (#430) --- ...mable_Armor_Stitcher_VlbsCjvvLNfTzNXb.json | 75 +------ ...mable_Feast_of_Xuria_aX6NyxkNzu0LcJpt.json | 191 +----------------- ...umable_Health_Potion_Aruc2NLutWuVIjP1.json | 66 +----- ..._Major_Health_Potion_cM7pHe8bBAxSZ2xR.json | 66 +----- ...Major_Stamina_Potion_I4cQ03xbxnc81EGa.json | 66 +----- ..._Minor_Health_Potion_tPfKtKRRjv8qdSqy.json | 66 +----- ...Minor_Stamina_Potion_b6vGSPFWOlzZZDLO.json | 66 +----- ...sumable_Sleeping_Sap_XZavUVlHEvE2srEt.json | 66 +----- ...nsumable_Snap_Powder_cg6VtQ0eVZjDdcK0.json | 75 +------ ...mable_Stamina_Potion_hf3k1POoVSooJyN2.json | 66 +----- ...onsumable_Sweet_Moss_GrDrRqWgv7gvl9vn.json | 127 +----------- ...sumable_Varik_Leaves_hvy5BkG3F6iOIXTx.json | 67 +----- 12 files changed, 24 insertions(+), 973 deletions(-) diff --git a/src/packs/items/consumables/consumable_Armor_Stitcher_VlbsCjvvLNfTzNXb.json b/src/packs/items/consumables/consumable_Armor_Stitcher_VlbsCjvvLNfTzNXb.json index 334b1edc..d30b9b39 100644 --- a/src/packs/items/consumables/consumable_Armor_Stitcher_VlbsCjvvLNfTzNXb.json +++ b/src/packs/items/consumables/consumable_Armor_Stitcher_VlbsCjvvLNfTzNXb.json @@ -6,78 +6,7 @@ "system": { "description": "

You can use this stitcher to spend any number of Hope and clear that many Armor Slots.

", "quantity": 1, - "actions": { - "mMWp5isSCerqjJGU": { - "type": "healing", - "_id": "mMWp5isSCerqjJGU", - "systemPath": "actions", - "description": "", - "chatDisplay": true, - "actionType": "action", - "cost": [ - { - "scalable": true, - "key": "hope", - "value": 1, - "step": 1, - "keyIsID": false - } - ], - "uses": { - "value": null, - "max": null, - "recovery": null - }, - "target": { - "type": null, - "amount": null - }, - "effects": [], - "healing": { - "applyTo": "armorStack", - "resultBased": false, - "value": { - "multiplier": "scale", - "flatMultiplier": 1, - "dice": "d4", - "bonus": null, - "custom": { - "enabled": true, - "formula": "@scale" - } - }, - "valueAlt": { - "multiplier": "prof", - "flatMultiplier": 1, - "dice": "d6", - "bonus": null, - "custom": { - "enabled": false - } - }, - "base": false, - "type": [] - }, - "roll": { - "type": null, - "trait": null, - "difficulty": null, - "bonus": null, - "advState": "neutral", - "diceRolling": { - "multiplier": "prof", - "flatMultiplier": 1, - "dice": "d6", - "compare": "above", - "treshold": 1 - }, - "useDefault": false - }, - "name": "Use", - "img": "icons/skills/trades/textiles-stitching-leather-brown.webp", - "range": "" - } - }, + "actions": {}, "consumeOnUse": true }, "effects": [], @@ -96,7 +25,7 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753588973384, - "modifiedTime": 1753616684194, + "modifiedTime": 1753623129674, "lastModifiedBy": "OFxauskoxcvVTVNA" }, "_key": "!items!VlbsCjvvLNfTzNXb" diff --git a/src/packs/items/consumables/consumable_Feast_of_Xuria_aX6NyxkNzu0LcJpt.json b/src/packs/items/consumables/consumable_Feast_of_Xuria_aX6NyxkNzu0LcJpt.json index 7a7fe19b..abea2847 100644 --- a/src/packs/items/consumables/consumable_Feast_of_Xuria_aX6NyxkNzu0LcJpt.json +++ b/src/packs/items/consumables/consumable_Feast_of_Xuria_aX6NyxkNzu0LcJpt.json @@ -6,194 +6,7 @@ "system": { "description": "

You can eat this meal to clear all HP and Stress and gain 1d4 Hope.

", "quantity": 1, - "actions": { - "rZUgZkwtJaE33b7m": { - "type": "healing", - "_id": "rZUgZkwtJaE33b7m", - "systemPath": "actions", - "description": "", - "chatDisplay": true, - "actionType": "action", - "cost": [], - "uses": { - "value": null, - "max": null, - "recovery": null - }, - "target": { - "type": null, - "amount": null - }, - "effects": [], - "healing": { - "applyTo": "hope", - "resultBased": false, - "value": { - "multiplier": "flat", - "flatMultiplier": 1, - "dice": "d4", - "bonus": null, - "custom": { - "enabled": false, - "formula": "@system.resources.stress.max" - } - }, - "valueAlt": { - "multiplier": "prof", - "flatMultiplier": 1, - "dice": "d6", - "bonus": null, - "custom": { - "enabled": false - } - }, - "base": false, - "type": [] - }, - "roll": { - "type": null, - "trait": null, - "difficulty": null, - "bonus": null, - "advState": "neutral", - "diceRolling": { - "multiplier": "prof", - "flatMultiplier": 1, - "dice": "d6", - "compare": "above", - "treshold": 1 - }, - "useDefault": false - }, - "name": "Eat (Hope)", - "img": "icons/consumables/food/bowl-stew-tofu-potato-red.webp", - "range": "" - }, - "GNWsoqelfhDnVysy": { - "type": "healing", - "_id": "GNWsoqelfhDnVysy", - "systemPath": "actions", - "description": "", - "chatDisplay": true, - "actionType": "action", - "cost": [], - "uses": { - "value": null, - "max": null, - "recovery": null - }, - "target": { - "type": null, - "amount": null - }, - "effects": [], - "healing": { - "applyTo": "hitPoints", - "resultBased": false, - "value": { - "multiplier": "prof", - "flatMultiplier": 1, - "dice": "d6", - "bonus": null, - "custom": { - "enabled": true, - "formula": "@system.resources.hitPoints.max" - } - }, - "valueAlt": { - "multiplier": "prof", - "flatMultiplier": 1, - "dice": "d6", - "bonus": null, - "custom": { - "enabled": false - } - }, - "base": false, - "type": [] - }, - "roll": { - "type": null, - "trait": null, - "difficulty": null, - "bonus": null, - "advState": "neutral", - "diceRolling": { - "multiplier": "prof", - "flatMultiplier": 1, - "dice": "d6", - "compare": "above", - "treshold": 1 - }, - "useDefault": false - }, - "name": "Eat (HP)", - "img": "icons/consumables/food/bowl-stew-tofu-potato-red.webp", - "range": "" - }, - "YgFeu7IZftpowBqI": { - "type": "healing", - "_id": "YgFeu7IZftpowBqI", - "systemPath": "actions", - "description": "", - "chatDisplay": true, - "actionType": "action", - "cost": [], - "uses": { - "value": null, - "max": null, - "recovery": null - }, - "target": { - "type": null, - "amount": null - }, - "effects": [], - "healing": { - "applyTo": "stress", - "resultBased": false, - "value": { - "multiplier": "prof", - "flatMultiplier": 1, - "dice": "d6", - "bonus": null, - "custom": { - "enabled": true, - "formula": "@system.resources.stress.max" - } - }, - "valueAlt": { - "multiplier": "prof", - "flatMultiplier": 1, - "dice": "d6", - "bonus": null, - "custom": { - "enabled": false - } - }, - "base": false, - "type": [] - }, - "roll": { - "type": null, - "trait": null, - "difficulty": null, - "bonus": null, - "advState": "neutral", - "diceRolling": { - "multiplier": "prof", - "flatMultiplier": 1, - "dice": "d6", - "compare": "above", - "treshold": 1 - }, - "useDefault": false - }, - "name": "Eat (Stress)", - "img": "icons/consumables/food/bowl-stew-tofu-potato-red.webp", - "range": "" - } - }, + "actions": {}, "consumeOnUse": true }, "effects": [], @@ -212,7 +25,7 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753591925502, - "modifiedTime": 1753617593610, + "modifiedTime": 1753623203098, "lastModifiedBy": "OFxauskoxcvVTVNA" }, "_key": "!items!aX6NyxkNzu0LcJpt" diff --git a/src/packs/items/consumables/consumable_Health_Potion_Aruc2NLutWuVIjP1.json b/src/packs/items/consumables/consumable_Health_Potion_Aruc2NLutWuVIjP1.json index ddf0a5af..2599f827 100644 --- a/src/packs/items/consumables/consumable_Health_Potion_Aruc2NLutWuVIjP1.json +++ b/src/packs/items/consumables/consumable_Health_Potion_Aruc2NLutWuVIjP1.json @@ -6,69 +6,7 @@ "system": { "description": "

Clear 1d4+1 HP.

", "quantity": 1, - "actions": { - "XeKSZ99sdgK9oV3D": { - "type": "healing", - "_id": "XeKSZ99sdgK9oV3D", - "systemPath": "actions", - "description": "", - "chatDisplay": true, - "actionType": "action", - "cost": [], - "uses": { - "value": null, - "max": null, - "recovery": null - }, - "target": { - "type": null, - "amount": null - }, - "effects": [], - "healing": { - "applyTo": "hitPoints", - "resultBased": false, - "value": { - "multiplier": "flat", - "flatMultiplier": 1, - "dice": "d4", - "bonus": 1, - "custom": { - "enabled": false - } - }, - "valueAlt": { - "multiplier": "prof", - "flatMultiplier": 1, - "dice": "d6", - "bonus": null, - "custom": { - "enabled": false - } - }, - "base": false, - "type": [] - }, - "roll": { - "type": null, - "trait": null, - "difficulty": null, - "bonus": null, - "advState": "neutral", - "diceRolling": { - "multiplier": "prof", - "flatMultiplier": 1, - "dice": "d6", - "compare": "above", - "treshold": 1 - }, - "useDefault": false - }, - "name": "Drink", - "img": "icons/consumables/potions/bottle-corked-red.webp", - "range": "" - } - }, + "actions": {}, "consumeOnUse": true }, "effects": [], @@ -87,7 +25,7 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753588839527, - "modifiedTime": 1753588886268, + "modifiedTime": 1753623230976, "lastModifiedBy": "OFxauskoxcvVTVNA" }, "_key": "!items!Aruc2NLutWuVIjP1" diff --git a/src/packs/items/consumables/consumable_Major_Health_Potion_cM7pHe8bBAxSZ2xR.json b/src/packs/items/consumables/consumable_Major_Health_Potion_cM7pHe8bBAxSZ2xR.json index def6a86e..90c758f4 100644 --- a/src/packs/items/consumables/consumable_Major_Health_Potion_cM7pHe8bBAxSZ2xR.json +++ b/src/packs/items/consumables/consumable_Major_Health_Potion_cM7pHe8bBAxSZ2xR.json @@ -6,69 +6,7 @@ "system": { "description": "

Clear 1d4+2 HP.

", "quantity": 1, - "actions": { - "hawYNYSynJ8MLpq9": { - "type": "healing", - "_id": "hawYNYSynJ8MLpq9", - "systemPath": "actions", - "description": "", - "chatDisplay": true, - "actionType": "action", - "cost": [], - "uses": { - "value": null, - "max": null, - "recovery": null - }, - "target": { - "type": null, - "amount": null - }, - "effects": [], - "healing": { - "applyTo": "hitPoints", - "resultBased": false, - "value": { - "multiplier": "flat", - "flatMultiplier": 1, - "dice": "d4", - "bonus": 2, - "custom": { - "enabled": false - } - }, - "valueAlt": { - "multiplier": "prof", - "flatMultiplier": 1, - "dice": "d6", - "bonus": null, - "custom": { - "enabled": false - } - }, - "base": false, - "type": [] - }, - "roll": { - "type": null, - "trait": null, - "difficulty": null, - "bonus": null, - "advState": "neutral", - "diceRolling": { - "multiplier": "prof", - "flatMultiplier": 1, - "dice": "d6", - "compare": "above", - "treshold": 1 - }, - "useDefault": false - }, - "name": "Drink", - "img": "icons/consumables/potions/bottle-round-label-cork-red.webp", - "range": "" - } - }, + "actions": {}, "consumeOnUse": true }, "effects": [], @@ -87,7 +25,7 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753591046168, - "modifiedTime": 1753591103501, + "modifiedTime": 1753623266522, "lastModifiedBy": "OFxauskoxcvVTVNA" }, "_key": "!items!cM7pHe8bBAxSZ2xR" diff --git a/src/packs/items/consumables/consumable_Major_Stamina_Potion_I4cQ03xbxnc81EGa.json b/src/packs/items/consumables/consumable_Major_Stamina_Potion_I4cQ03xbxnc81EGa.json index 574be850..43bfa7ed 100644 --- a/src/packs/items/consumables/consumable_Major_Stamina_Potion_I4cQ03xbxnc81EGa.json +++ b/src/packs/items/consumables/consumable_Major_Stamina_Potion_I4cQ03xbxnc81EGa.json @@ -6,69 +6,7 @@ "system": { "description": "

Clear 1d4+2 Stress.

", "quantity": 1, - "actions": { - "tvpa9Sb1a3Z9DDiX": { - "type": "healing", - "_id": "tvpa9Sb1a3Z9DDiX", - "systemPath": "actions", - "description": "", - "chatDisplay": true, - "actionType": "action", - "cost": [], - "uses": { - "value": null, - "max": null, - "recovery": null - }, - "target": { - "type": null, - "amount": null - }, - "effects": [], - "healing": { - "applyTo": "stress", - "resultBased": false, - "value": { - "multiplier": "flat", - "flatMultiplier": 1, - "dice": "d4", - "bonus": 2, - "custom": { - "enabled": false - } - }, - "valueAlt": { - "multiplier": "prof", - "flatMultiplier": 1, - "dice": "d6", - "bonus": null, - "custom": { - "enabled": false - } - }, - "base": false, - "type": [] - }, - "roll": { - "type": null, - "trait": null, - "difficulty": null, - "bonus": null, - "advState": "neutral", - "diceRolling": { - "multiplier": "prof", - "flatMultiplier": 1, - "dice": "d6", - "compare": "above", - "treshold": 1 - }, - "useDefault": false - }, - "name": "Drink", - "img": "icons/consumables/potions/bottle-round-label-cork-green.webp", - "range": "" - } - }, + "actions": {}, "consumeOnUse": true }, "effects": [], @@ -87,7 +25,7 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753591113317, - "modifiedTime": 1753591152705, + "modifiedTime": 1753623276997, "lastModifiedBy": "OFxauskoxcvVTVNA" }, "_key": "!items!I4cQ03xbxnc81EGa" diff --git a/src/packs/items/consumables/consumable_Minor_Health_Potion_tPfKtKRRjv8qdSqy.json b/src/packs/items/consumables/consumable_Minor_Health_Potion_tPfKtKRRjv8qdSqy.json index 77101cc1..5b50792f 100644 --- a/src/packs/items/consumables/consumable_Minor_Health_Potion_tPfKtKRRjv8qdSqy.json +++ b/src/packs/items/consumables/consumable_Minor_Health_Potion_tPfKtKRRjv8qdSqy.json @@ -6,69 +6,7 @@ "system": { "description": "

Clear 1d4 HP.

", "quantity": 1, - "actions": { - "nWs6DwFafL6xOOIZ": { - "type": "healing", - "_id": "nWs6DwFafL6xOOIZ", - "systemPath": "actions", - "description": "", - "chatDisplay": true, - "actionType": "action", - "cost": [], - "uses": { - "value": null, - "max": null, - "recovery": null - }, - "target": { - "type": null, - "amount": null - }, - "effects": [], - "healing": { - "applyTo": "hitPoints", - "resultBased": false, - "value": { - "multiplier": "flat", - "flatMultiplier": 1, - "dice": "d4", - "bonus": null, - "custom": { - "enabled": false - } - }, - "valueAlt": { - "multiplier": "prof", - "flatMultiplier": 1, - "dice": "d6", - "bonus": null, - "custom": { - "enabled": false - } - }, - "base": false, - "type": [] - }, - "roll": { - "type": null, - "trait": null, - "difficulty": null, - "bonus": null, - "advState": "neutral", - "diceRolling": { - "multiplier": "prof", - "flatMultiplier": 1, - "dice": "d6", - "compare": "above", - "treshold": 1 - }, - "useDefault": false - }, - "name": "Drink", - "img": "icons/consumables/potions/potion-tube-corked-red.webp", - "range": "" - } - }, + "actions": {}, "consumeOnUse": true }, "effects": [], @@ -87,7 +25,7 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753587253431, - "modifiedTime": 1753587977441, + "modifiedTime": 1753623289863, "lastModifiedBy": "OFxauskoxcvVTVNA" }, "_key": "!items!tPfKtKRRjv8qdSqy" diff --git a/src/packs/items/consumables/consumable_Minor_Stamina_Potion_b6vGSPFWOlzZZDLO.json b/src/packs/items/consumables/consumable_Minor_Stamina_Potion_b6vGSPFWOlzZZDLO.json index 598985c1..f5a18ef8 100644 --- a/src/packs/items/consumables/consumable_Minor_Stamina_Potion_b6vGSPFWOlzZZDLO.json +++ b/src/packs/items/consumables/consumable_Minor_Stamina_Potion_b6vGSPFWOlzZZDLO.json @@ -6,69 +6,7 @@ "system": { "description": "

Clear 1d4 Stress.

", "quantity": 1, - "actions": { - "s3UXcGku86aXFCKo": { - "type": "healing", - "_id": "s3UXcGku86aXFCKo", - "systemPath": "actions", - "description": "", - "chatDisplay": true, - "actionType": "action", - "cost": [], - "uses": { - "value": null, - "max": null, - "recovery": null - }, - "target": { - "type": null, - "amount": null - }, - "effects": [], - "healing": { - "applyTo": "stress", - "resultBased": false, - "value": { - "multiplier": "flat", - "flatMultiplier": 1, - "dice": "d4", - "bonus": null, - "custom": { - "enabled": false - } - }, - "valueAlt": { - "multiplier": "prof", - "flatMultiplier": 1, - "dice": "d6", - "bonus": null, - "custom": { - "enabled": false - } - }, - "base": false, - "type": [] - }, - "roll": { - "type": null, - "trait": null, - "difficulty": null, - "bonus": null, - "advState": "neutral", - "diceRolling": { - "multiplier": "prof", - "flatMultiplier": 1, - "dice": "d6", - "compare": "above", - "treshold": 1 - }, - "useDefault": false - }, - "name": "Drink", - "img": "icons/consumables/potions/potion-tube-corked-green.webp", - "range": "" - } - }, + "actions": {}, "consumeOnUse": true }, "effects": [], @@ -87,7 +25,7 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753587324465, - "modifiedTime": 1753587988202, + "modifiedTime": 1753623297325, "lastModifiedBy": "OFxauskoxcvVTVNA" }, "_key": "!items!b6vGSPFWOlzZZDLO" diff --git a/src/packs/items/consumables/consumable_Sleeping_Sap_XZavUVlHEvE2srEt.json b/src/packs/items/consumables/consumable_Sleeping_Sap_XZavUVlHEvE2srEt.json index e54ed765..8814e290 100644 --- a/src/packs/items/consumables/consumable_Sleeping_Sap_XZavUVlHEvE2srEt.json +++ b/src/packs/items/consumables/consumable_Sleeping_Sap_XZavUVlHEvE2srEt.json @@ -6,69 +6,7 @@ "system": { "description": "

You can drink this potion to fall asleep for a full night’s rest. You clear all Stress upon waking.

", "quantity": 1, - "actions": { - "lsoIboe4luXfojFg": { - "type": "healing", - "_id": "lsoIboe4luXfojFg", - "systemPath": "actions", - "description": "", - "chatDisplay": true, - "actionType": "action", - "cost": [], - "uses": { - "value": null, - "max": null, - "recovery": null - }, - "target": { - "type": null, - "amount": null - }, - "effects": [], - "healing": { - "applyTo": "stress", - "resultBased": false, - "value": { - "multiplier": "flat", - "flatMultiplier": 1, - "dice": "d6", - "bonus": 11, - "custom": { - "enabled": false - } - }, - "valueAlt": { - "multiplier": "prof", - "flatMultiplier": 1, - "dice": "d6", - "bonus": null, - "custom": { - "enabled": false - } - }, - "base": false, - "type": [] - }, - "roll": { - "type": null, - "trait": null, - "difficulty": null, - "bonus": null, - "advState": "neutral", - "diceRolling": { - "multiplier": "prof", - "flatMultiplier": 1, - "dice": "d6", - "compare": "above", - "treshold": 1 - }, - "useDefault": false - }, - "name": "Drink", - "img": "icons/consumables/potions/bottle-bulb-corked-labeled-blue.webp", - "range": "" - } - }, + "actions": {}, "consumeOnUse": true }, "effects": [], @@ -87,7 +25,7 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753591837472, - "modifiedTime": 1753591911174, + "modifiedTime": 1753623358593, "lastModifiedBy": "OFxauskoxcvVTVNA" }, "_key": "!items!XZavUVlHEvE2srEt" diff --git a/src/packs/items/consumables/consumable_Snap_Powder_cg6VtQ0eVZjDdcK0.json b/src/packs/items/consumables/consumable_Snap_Powder_cg6VtQ0eVZjDdcK0.json index 32552fa1..ddada48f 100644 --- a/src/packs/items/consumables/consumable_Snap_Powder_cg6VtQ0eVZjDdcK0.json +++ b/src/packs/items/consumables/consumable_Snap_Powder_cg6VtQ0eVZjDdcK0.json @@ -6,78 +6,7 @@ "system": { "description": "

Mark a Stress and clear a HP.

", "quantity": 1, - "actions": { - "s4dxG7d38PPIrdoK": { - "type": "healing", - "_id": "s4dxG7d38PPIrdoK", - "systemPath": "actions", - "description": "", - "chatDisplay": true, - "actionType": "action", - "cost": [ - { - "scalable": false, - "key": "stress", - "value": 1, - "keyIsID": false, - "step": null - } - ], - "uses": { - "value": null, - "max": null, - "recovery": null - }, - "target": { - "type": null, - "amount": null - }, - "effects": [], - "healing": { - "applyTo": "hitPoints", - "resultBased": false, - "value": { - "multiplier": "flat", - "flatMultiplier": 1, - "dice": "d6", - "bonus": null, - "custom": { - "enabled": true, - "formula": "1" - } - }, - "valueAlt": { - "multiplier": "prof", - "flatMultiplier": 1, - "dice": "d6", - "bonus": null, - "custom": { - "enabled": false - } - }, - "base": false, - "type": [] - }, - "roll": { - "type": null, - "trait": null, - "difficulty": null, - "bonus": null, - "advState": "neutral", - "diceRolling": { - "multiplier": "prof", - "flatMultiplier": 1, - "dice": "d6", - "compare": "above", - "treshold": 1 - }, - "useDefault": false - }, - "name": "Use", - "img": "icons/commodities/materials/bowl-powder-gold.webp", - "range": "" - } - }, + "actions": {}, "consumeOnUse": true }, "effects": [], @@ -96,7 +25,7 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753588752841, - "modifiedTime": 1753588824014, + "modifiedTime": 1753623348062, "lastModifiedBy": "OFxauskoxcvVTVNA" }, "_key": "!items!cg6VtQ0eVZjDdcK0" diff --git a/src/packs/items/consumables/consumable_Stamina_Potion_hf3k1POoVSooJyN2.json b/src/packs/items/consumables/consumable_Stamina_Potion_hf3k1POoVSooJyN2.json index 1a836e8b..a8eb8b4a 100644 --- a/src/packs/items/consumables/consumable_Stamina_Potion_hf3k1POoVSooJyN2.json +++ b/src/packs/items/consumables/consumable_Stamina_Potion_hf3k1POoVSooJyN2.json @@ -6,69 +6,7 @@ "system": { "description": "

Clear 1d4+1 Stress.

", "quantity": 1, - "actions": { - "E6L2VaOyECv6w7b3": { - "type": "healing", - "_id": "E6L2VaOyECv6w7b3", - "systemPath": "actions", - "description": "", - "chatDisplay": true, - "actionType": "action", - "cost": [], - "uses": { - "value": null, - "max": null, - "recovery": null - }, - "target": { - "type": null, - "amount": null - }, - "effects": [], - "healing": { - "applyTo": "stress", - "resultBased": false, - "value": { - "multiplier": "flat", - "flatMultiplier": 1, - "dice": "d4", - "bonus": 1, - "custom": { - "enabled": false - } - }, - "valueAlt": { - "multiplier": "prof", - "flatMultiplier": 1, - "dice": "d6", - "bonus": null, - "custom": { - "enabled": false - } - }, - "base": false, - "type": [] - }, - "roll": { - "type": null, - "trait": null, - "difficulty": null, - "bonus": null, - "advState": "neutral", - "diceRolling": { - "multiplier": "prof", - "flatMultiplier": 1, - "dice": "d6", - "compare": "above", - "treshold": 1 - }, - "useDefault": false - }, - "name": "Drink", - "img": "icons/consumables/potions/bottle-corked-green.webp", - "range": "" - } - }, + "actions": {}, "consumeOnUse": true }, "effects": [], @@ -87,7 +25,7 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753588904835, - "modifiedTime": 1753588959019, + "modifiedTime": 1753623366482, "lastModifiedBy": "OFxauskoxcvVTVNA" }, "_key": "!items!hf3k1POoVSooJyN2" diff --git a/src/packs/items/consumables/consumable_Sweet_Moss_GrDrRqWgv7gvl9vn.json b/src/packs/items/consumables/consumable_Sweet_Moss_GrDrRqWgv7gvl9vn.json index ffbbb793..5db74f3b 100644 --- a/src/packs/items/consumables/consumable_Sweet_Moss_GrDrRqWgv7gvl9vn.json +++ b/src/packs/items/consumables/consumable_Sweet_Moss_GrDrRqWgv7gvl9vn.json @@ -6,130 +6,7 @@ "system": { "description": "

You can consume this moss during a rest to clear 1d10 HP or 1d10 Stress.

", "quantity": 1, - "actions": { - "jQRgDZ6IBuIr0lbf": { - "type": "healing", - "_id": "jQRgDZ6IBuIr0lbf", - "systemPath": "actions", - "description": "", - "chatDisplay": true, - "actionType": "action", - "cost": [], - "uses": { - "value": null, - "max": null, - "recovery": null - }, - "target": { - "type": null, - "amount": null - }, - "effects": [], - "healing": { - "applyTo": "hitPoints", - "resultBased": false, - "value": { - "multiplier": "flat", - "flatMultiplier": 1, - "dice": "d10", - "bonus": null, - "custom": { - "enabled": false - } - }, - "valueAlt": { - "multiplier": "prof", - "flatMultiplier": 1, - "dice": "d6", - "bonus": null, - "custom": { - "enabled": false - } - }, - "base": false, - "type": [] - }, - "roll": { - "type": null, - "trait": null, - "difficulty": null, - "bonus": null, - "advState": "neutral", - "diceRolling": { - "multiplier": "prof", - "flatMultiplier": 1, - "dice": "d6", - "compare": "above", - "treshold": 1 - }, - "useDefault": false - }, - "name": "Eat (HP)", - "img": "icons/consumables/plants/succulent-bundle-green.webp", - "range": "" - }, - "kANBl1eRStshQYPu": { - "type": "healing", - "_id": "kANBl1eRStshQYPu", - "systemPath": "actions", - "description": "", - "chatDisplay": true, - "actionType": "action", - "cost": [], - "uses": { - "value": null, - "max": null, - "recovery": null - }, - "target": { - "type": null, - "amount": null - }, - "effects": [], - "healing": { - "applyTo": "stress", - "resultBased": false, - "value": { - "multiplier": "flat", - "flatMultiplier": 1, - "dice": "d10", - "bonus": null, - "custom": { - "enabled": false - } - }, - "valueAlt": { - "multiplier": "prof", - "flatMultiplier": 1, - "dice": "d6", - "bonus": null, - "custom": { - "enabled": false - } - }, - "base": false, - "type": [] - }, - "roll": { - "type": null, - "trait": null, - "difficulty": null, - "bonus": null, - "advState": "neutral", - "diceRolling": { - "multiplier": "prof", - "flatMultiplier": 1, - "dice": "d6", - "compare": "above", - "treshold": 1 - }, - "useDefault": false - }, - "name": "Eat (Stress)", - "img": "icons/consumables/plants/succulent-bundle-green.webp", - "range": "" - } - }, + "actions": {}, "consumeOnUse": true }, "effects": [], @@ -148,7 +25,7 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753592391195, - "modifiedTime": 1753592499447, + "modifiedTime": 1753623392811, "lastModifiedBy": "OFxauskoxcvVTVNA" }, "_key": "!items!GrDrRqWgv7gvl9vn" diff --git a/src/packs/items/consumables/consumable_Varik_Leaves_hvy5BkG3F6iOIXTx.json b/src/packs/items/consumables/consumable_Varik_Leaves_hvy5BkG3F6iOIXTx.json index 96bc5d40..2c6cff6d 100644 --- a/src/packs/items/consumables/consumable_Varik_Leaves_hvy5BkG3F6iOIXTx.json +++ b/src/packs/items/consumables/consumable_Varik_Leaves_hvy5BkG3F6iOIXTx.json @@ -6,70 +6,7 @@ "system": { "description": "

You can eat these paired leaves to immediately gain 2 Hope.

", "quantity": 1, - "actions": { - "aX2Odf9PzbRsU1gc": { - "type": "healing", - "_id": "aX2Odf9PzbRsU1gc", - "systemPath": "actions", - "description": "", - "chatDisplay": true, - "actionType": "action", - "cost": [], - "uses": { - "value": null, - "max": null, - "recovery": null - }, - "target": { - "type": null, - "amount": null - }, - "effects": [], - "healing": { - "applyTo": "hope", - "resultBased": false, - "value": { - "multiplier": "flat", - "flatMultiplier": 1, - "dice": "d6", - "bonus": null, - "custom": { - "enabled": true, - "formula": "2" - } - }, - "valueAlt": { - "multiplier": "prof", - "flatMultiplier": 1, - "dice": "d6", - "bonus": null, - "custom": { - "enabled": false - } - }, - "base": false, - "type": [] - }, - "roll": { - "type": null, - "trait": null, - "difficulty": null, - "bonus": null, - "advState": "neutral", - "diceRolling": { - "multiplier": "prof", - "flatMultiplier": 1, - "dice": "d6", - "compare": "above", - "treshold": 1 - }, - "useDefault": false - }, - "name": "Eat", - "img": "icons/consumables/plants/leaf-serrated-pink.webp", - "range": "" - } - }, + "actions": {}, "consumeOnUse": true }, "effects": [], @@ -88,7 +25,7 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753587484164, - "modifiedTime": 1753588013329, + "modifiedTime": 1753623431444, "lastModifiedBy": "OFxauskoxcvVTVNA" }, "_key": "!items!hvy5BkG3F6iOIXTx" From 0fe6c4066ab50303d704f85252e9be6663f84530 Mon Sep 17 00:00:00 2001 From: CPTN_Cosmo Date: Sun, 27 Jul 2025 21:14:02 +0200 Subject: [PATCH 09/14] added loot items (#433) --- .../loot_Airblade_Charm_cTYvyaSKBxosM9Y9.json | 54 ++++++ ...oot_Alistair_s_Torch_MeEg57T6MKpw3sme.json | 31 ++++ .../loot_Arcane_Cloak_4STt98biZwjFoKOe.json | 31 ++++ .../loot_Arcane_Prism_Mn1eo2Mdtu1kzyxB.json | 104 ++++++++++++ .../loot_Attune_Relic_vK6bKyQTT3m8WvMh.json | 76 +++++++++ ...ot_Bag_of_Ficklesand_v758j4FwNVAurhYK.json | 31 ++++ .../loot_Belt_of_Unity_gFzkUGCjkRJtyoe9.json | 62 +++++++ .../loot_Bloodstone_oMd78vhL2x2NO8Mg.json | 31 ++++ .../loot_Bolster_Relic_m3EpxlDgxn2tCDDR.json | 76 +++++++++ ...ot_Box_of_Many_Goods_bZyT7Qw7iafswlTY.json | 54 ++++++ ...loot_Calming_Pendant_tgFFMxpuRSiRrrEB.json | 31 ++++ ...loot_Charging_Quiver_gsUDP90d4SRtLEUn.json | 84 ++++++++++ .../loot_Charm_Relic_9P9jqGSlxVCbTdLe.json | 76 +++++++++ .../loot_Clay_Companion_lGIk9vBNz0jvskXD.json | 31 ++++ .../loot_Companion_Case_V25uXkAQvK3hUta4.json | 31 ++++ .../loot_Control_Relic_QPGBDItjrRhXU6iJ.json | 76 +++++++++ ...oot_Corrector_Sprite_G0RktbmtnuAlKCRH.json | 54 ++++++ .../loot_Dual_Flask_HCvcAu3sdHCspGMP.json | 31 ++++ .../loot_Elusive_Amulet_PkmTZXRMZL022O75.json | 99 +++++++++++ .../loot_Empty_Chest_p2yy61uKsyIsl8cU.json | 31 ++++ ...loot_Enlighten_Relic_vSGx1f9SYUiA29L3.json | 76 +++++++++ .../loot/loot_Fire_Jar_X6RMkIt89wf7qX2E.json | 54 ++++++ ...t_Flickerfly_Pendant_9VKYSBQxN9XFWlAm.json | 31 ++++ .../loot_Gecko_Gloves_CGzjBpHJRG8KSt5Y.json | 31 ++++ ...loot_Gem_of_Alacrity_zecFwBUSWtB3HW8X.json | 31 ++++ ...loot_Gem_of_Audacity_hMu9It3ThCLCXuCA.json | 31 ++++ .../loot_Gem_of_Insight_TbgeT9ZxKHqFqJSN.json | 31 ++++ .../loot_Gem_of_Might_rtSInNPc4B3ChBUZ.json | 31 ++++ ...oot_Gem_of_Precision_CrvJ7vb4s40YgEcy.json | 31 ++++ ...loot_Gem_of_Sagacity_ua351S7CsH22X1x2.json | 31 ++++ .../loot_Glamour_Stone_Pj17cvdJ1XG1jv6I.json | 62 +++++++ .../loot/loot_Glider_CiXwelozmBDcPY48.json | 31 ++++ .../loot_Greatstone_y7zABzR0Q2fRskTw.json | 31 ++++ ...oot_Homing_Compasses_yrAGYlDyoe4OYl7d.json | 31 ++++ .../loot_Honing_Relic_SAAnEAeXDnhBbLjB.json | 31 ++++ ...ot_Hopekeeper_Locket_9DcFR75tsnBYIp6Z.json | 124 ++++++++++++++ .../loot_Infinite_Bag_Iedjw1LVWEozVh0J.json | 31 ++++ ...ot_Lakestrider_Boots_NgvmrJYKpA2PrRSo.json | 31 ++++ .../loot_Lorekeeper_JsPYzrqpITqGj23I.json | 31 ++++ .../loot/loot_Manacles_GkmATIuemyFtQX1D.json | 31 ++++ ...Health_Potion_Recipe_PQxvxAVBbkt0TleC.json | 31 ++++ ...tamina_Potion_Recipe_1TLpFsp3PLDsqoTw.json | 31 ++++ ...t_Mythic_Dust_Recipe_5YZls8XH3MB7twNa.json | 31 ++++ ...loot_Paragon_s_Chain_F4hoRfvVdZq5bhhI.json | 62 +++++++ ...loot_Phoenix_Feather_QNtzJSVENww63THa.json | 31 ++++ ...loot_Piercing_Arrows_I63LTFD6GXHgyGpR.json | 84 ++++++++++ .../loot_Piper_Whistle_v4PIoCCEjeE3acys.json | 31 ++++ .../loot_Portal_Seed_eRd5Gk7J7hPCqp11.json | 31 ++++ ...loot_Premium_Bedroll_QGYPNBIufpBguwjC.json | 93 +++++++++++ ...t_Ring_of_Resistance_aUqRifqR5JXXa1dN.json | 54 ++++++ ...loot_Ring_of_Silence_K1ysGnTpNyxPu5Au.json | 62 +++++++ ..._Unbreakable_Resolve_kn71qCQY0DnjmQBJ.json | 62 +++++++ ...loot_Shard_of_Memory_2ULPgNyqCrxea0v0.json | 62 +++++++ .../loot_Skeleton_Key_edkNgwy4xghZreBa.json | 78 +++++++++ .../loot_Speaking_Orbs_LZrG6CFiSjpLA2F1.json | 31 ++++ .../loot_Stride_Relic_FfJISMzYATaPQPLc.json | 76 +++++++++ .../loot_Suspended_Rod_nnj12RiFanq7s5zv.json | 31 ++++ .../loot_Valorstone_7yywua9TmQ4WP5WH.json | 31 ++++ ..._of_Darksmoke_Recipe_MhCo8i0cRXzdnXbA.json | 31 ++++ .../loot/loot_Woven_Net_ARuv48PWUGJGBC4n.json | 155 ++++++++++++++++++ 60 files changed, 3004 insertions(+) create mode 100644 src/packs/items/loot/loot_Airblade_Charm_cTYvyaSKBxosM9Y9.json create mode 100644 src/packs/items/loot/loot_Alistair_s_Torch_MeEg57T6MKpw3sme.json create mode 100644 src/packs/items/loot/loot_Arcane_Cloak_4STt98biZwjFoKOe.json create mode 100644 src/packs/items/loot/loot_Arcane_Prism_Mn1eo2Mdtu1kzyxB.json create mode 100644 src/packs/items/loot/loot_Attune_Relic_vK6bKyQTT3m8WvMh.json create mode 100644 src/packs/items/loot/loot_Bag_of_Ficklesand_v758j4FwNVAurhYK.json create mode 100644 src/packs/items/loot/loot_Belt_of_Unity_gFzkUGCjkRJtyoe9.json create mode 100644 src/packs/items/loot/loot_Bloodstone_oMd78vhL2x2NO8Mg.json create mode 100644 src/packs/items/loot/loot_Bolster_Relic_m3EpxlDgxn2tCDDR.json create mode 100644 src/packs/items/loot/loot_Box_of_Many_Goods_bZyT7Qw7iafswlTY.json create mode 100644 src/packs/items/loot/loot_Calming_Pendant_tgFFMxpuRSiRrrEB.json create mode 100644 src/packs/items/loot/loot_Charging_Quiver_gsUDP90d4SRtLEUn.json create mode 100644 src/packs/items/loot/loot_Charm_Relic_9P9jqGSlxVCbTdLe.json create mode 100644 src/packs/items/loot/loot_Clay_Companion_lGIk9vBNz0jvskXD.json create mode 100644 src/packs/items/loot/loot_Companion_Case_V25uXkAQvK3hUta4.json create mode 100644 src/packs/items/loot/loot_Control_Relic_QPGBDItjrRhXU6iJ.json create mode 100644 src/packs/items/loot/loot_Corrector_Sprite_G0RktbmtnuAlKCRH.json create mode 100644 src/packs/items/loot/loot_Dual_Flask_HCvcAu3sdHCspGMP.json create mode 100644 src/packs/items/loot/loot_Elusive_Amulet_PkmTZXRMZL022O75.json create mode 100644 src/packs/items/loot/loot_Empty_Chest_p2yy61uKsyIsl8cU.json create mode 100644 src/packs/items/loot/loot_Enlighten_Relic_vSGx1f9SYUiA29L3.json create mode 100644 src/packs/items/loot/loot_Fire_Jar_X6RMkIt89wf7qX2E.json create mode 100644 src/packs/items/loot/loot_Flickerfly_Pendant_9VKYSBQxN9XFWlAm.json create mode 100644 src/packs/items/loot/loot_Gecko_Gloves_CGzjBpHJRG8KSt5Y.json create mode 100644 src/packs/items/loot/loot_Gem_of_Alacrity_zecFwBUSWtB3HW8X.json create mode 100644 src/packs/items/loot/loot_Gem_of_Audacity_hMu9It3ThCLCXuCA.json create mode 100644 src/packs/items/loot/loot_Gem_of_Insight_TbgeT9ZxKHqFqJSN.json create mode 100644 src/packs/items/loot/loot_Gem_of_Might_rtSInNPc4B3ChBUZ.json create mode 100644 src/packs/items/loot/loot_Gem_of_Precision_CrvJ7vb4s40YgEcy.json create mode 100644 src/packs/items/loot/loot_Gem_of_Sagacity_ua351S7CsH22X1x2.json create mode 100644 src/packs/items/loot/loot_Glamour_Stone_Pj17cvdJ1XG1jv6I.json create mode 100644 src/packs/items/loot/loot_Glider_CiXwelozmBDcPY48.json create mode 100644 src/packs/items/loot/loot_Greatstone_y7zABzR0Q2fRskTw.json create mode 100644 src/packs/items/loot/loot_Homing_Compasses_yrAGYlDyoe4OYl7d.json create mode 100644 src/packs/items/loot/loot_Honing_Relic_SAAnEAeXDnhBbLjB.json create mode 100644 src/packs/items/loot/loot_Hopekeeper_Locket_9DcFR75tsnBYIp6Z.json create mode 100644 src/packs/items/loot/loot_Infinite_Bag_Iedjw1LVWEozVh0J.json create mode 100644 src/packs/items/loot/loot_Lakestrider_Boots_NgvmrJYKpA2PrRSo.json create mode 100644 src/packs/items/loot/loot_Lorekeeper_JsPYzrqpITqGj23I.json create mode 100644 src/packs/items/loot/loot_Manacles_GkmATIuemyFtQX1D.json create mode 100644 src/packs/items/loot/loot_Minor_Health_Potion_Recipe_PQxvxAVBbkt0TleC.json create mode 100644 src/packs/items/loot/loot_Minor_Stamina_Potion_Recipe_1TLpFsp3PLDsqoTw.json create mode 100644 src/packs/items/loot/loot_Mythic_Dust_Recipe_5YZls8XH3MB7twNa.json create mode 100644 src/packs/items/loot/loot_Paragon_s_Chain_F4hoRfvVdZq5bhhI.json create mode 100644 src/packs/items/loot/loot_Phoenix_Feather_QNtzJSVENww63THa.json create mode 100644 src/packs/items/loot/loot_Piercing_Arrows_I63LTFD6GXHgyGpR.json create mode 100644 src/packs/items/loot/loot_Piper_Whistle_v4PIoCCEjeE3acys.json create mode 100644 src/packs/items/loot/loot_Portal_Seed_eRd5Gk7J7hPCqp11.json create mode 100644 src/packs/items/loot/loot_Premium_Bedroll_QGYPNBIufpBguwjC.json create mode 100644 src/packs/items/loot/loot_Ring_of_Resistance_aUqRifqR5JXXa1dN.json create mode 100644 src/packs/items/loot/loot_Ring_of_Silence_K1ysGnTpNyxPu5Au.json create mode 100644 src/packs/items/loot/loot_Ring_of_Unbreakable_Resolve_kn71qCQY0DnjmQBJ.json create mode 100644 src/packs/items/loot/loot_Shard_of_Memory_2ULPgNyqCrxea0v0.json create mode 100644 src/packs/items/loot/loot_Skeleton_Key_edkNgwy4xghZreBa.json create mode 100644 src/packs/items/loot/loot_Speaking_Orbs_LZrG6CFiSjpLA2F1.json create mode 100644 src/packs/items/loot/loot_Stride_Relic_FfJISMzYATaPQPLc.json create mode 100644 src/packs/items/loot/loot_Suspended_Rod_nnj12RiFanq7s5zv.json create mode 100644 src/packs/items/loot/loot_Valorstone_7yywua9TmQ4WP5WH.json create mode 100644 src/packs/items/loot/loot_Vial_of_Darksmoke_Recipe_MhCo8i0cRXzdnXbA.json create mode 100644 src/packs/items/loot/loot_Woven_Net_ARuv48PWUGJGBC4n.json diff --git a/src/packs/items/loot/loot_Airblade_Charm_cTYvyaSKBxosM9Y9.json b/src/packs/items/loot/loot_Airblade_Charm_cTYvyaSKBxosM9Y9.json new file mode 100644 index 00000000..fbfe3800 --- /dev/null +++ b/src/packs/items/loot/loot_Airblade_Charm_cTYvyaSKBxosM9Y9.json @@ -0,0 +1,54 @@ +{ + "name": "Airblade Charm", + "type": "loot", + "_id": "cTYvyaSKBxosM9Y9", + "img": "icons/equipment/neck/amulet-carved-stone-spiral-blue.webp", + "system": { + "description": "

You can attach this charm to a weapon with a Melee range. Three times per rest, you can activate the charm and attack a target within Close range.

", + "quantity": 1, + "actions": { + "nlAfmdgfHTmsOdPb": { + "type": "effect", + "_id": "nlAfmdgfHTmsOdPb", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": 3, + "recovery": "shortRest" + }, + "effects": [], + "target": { + "type": "any", + "amount": null + }, + "name": "Activate", + "img": "icons/equipment/neck/amulet-carved-stone-spiral-blue.webp", + "range": "" + } + } + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753638435202, + "modifiedTime": 1753638500393, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!cTYvyaSKBxosM9Y9" +} diff --git a/src/packs/items/loot/loot_Alistair_s_Torch_MeEg57T6MKpw3sme.json b/src/packs/items/loot/loot_Alistair_s_Torch_MeEg57T6MKpw3sme.json new file mode 100644 index 00000000..8e77f2bb --- /dev/null +++ b/src/packs/items/loot/loot_Alistair_s_Torch_MeEg57T6MKpw3sme.json @@ -0,0 +1,31 @@ +{ + "name": "Alistair’s Torch", + "type": "loot", + "_id": "MeEg57T6MKpw3sme", + "img": "icons/sundries/lights/torch-brown-lit.webp", + "system": { + "description": "

You can light this magic torch at will. The flame’s light fills a much larger space than it should, enough to illuminate a cave bright as day.

", + "quantity": 1, + "actions": {} + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753625181140, + "modifiedTime": 1753625205417, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!MeEg57T6MKpw3sme" +} diff --git a/src/packs/items/loot/loot_Arcane_Cloak_4STt98biZwjFoKOe.json b/src/packs/items/loot/loot_Arcane_Cloak_4STt98biZwjFoKOe.json new file mode 100644 index 00000000..c8b3c168 --- /dev/null +++ b/src/packs/items/loot/loot_Arcane_Cloak_4STt98biZwjFoKOe.json @@ -0,0 +1,31 @@ +{ + "name": "Arcane Cloak", + "type": "loot", + "_id": "4STt98biZwjFoKOe", + "img": "icons/equipment/back/cloak-layered-green-brown.webp", + "system": { + "description": "

A creature with a Spellcast trait wearing this cloak can adjust its color, texture, and size at will.

", + "quantity": 1, + "actions": {} + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753625371758, + "modifiedTime": 1753625392529, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!4STt98biZwjFoKOe" +} diff --git a/src/packs/items/loot/loot_Arcane_Prism_Mn1eo2Mdtu1kzyxB.json b/src/packs/items/loot/loot_Arcane_Prism_Mn1eo2Mdtu1kzyxB.json new file mode 100644 index 00000000..b73f9fcd --- /dev/null +++ b/src/packs/items/loot/loot_Arcane_Prism_Mn1eo2Mdtu1kzyxB.json @@ -0,0 +1,104 @@ +{ + "name": "Arcane Prism", + "type": "loot", + "_id": "Mn1eo2Mdtu1kzyxB", + "img": "icons/commodities/gems/gem-faceted-trillion-blue.webp", + "system": { + "description": "", + "quantity": 1, + "actions": { + "QgBDJh0laEvOB94w": { + "type": "effect", + "_id": "QgBDJh0laEvOB94w", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": 1, + "recovery": "longRest" + }, + "effects": [ + { + "_id": "Ee3Z0PnyERiNFgjU", + "onSave": false + } + ], + "target": { + "type": "friendly", + "amount": null + }, + "name": "Activate", + "img": "icons/commodities/gems/gem-faceted-trillion-blue.webp", + "range": "close" + } + } + }, + "effects": [ + { + "name": "Arcane Prism", + "img": "icons/commodities/gems/gem-faceted-trillion-blue.webp", + "origin": "Compendium.daggerheart.loot.Item.Mn1eo2Mdtu1kzyxB", + "transfer": false, + "_id": "Ee3Z0PnyERiNFgjU", + "type": "base", + "system": {}, + "changes": [ + { + "key": "system.bonuses.roll.spellcast.bonus", + "mode": 2, + "value": "1", + "priority": null + } + ], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "", + "tint": "#ffffff", + "statuses": [], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753626610878, + "modifiedTime": 1753626628337, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items.effects!Mn1eo2Mdtu1kzyxB.Ee3Z0PnyERiNFgjU" + } + ], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753626536923, + "modifiedTime": 1753626610902, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!Mn1eo2Mdtu1kzyxB" +} diff --git a/src/packs/items/loot/loot_Attune_Relic_vK6bKyQTT3m8WvMh.json b/src/packs/items/loot/loot_Attune_Relic_vK6bKyQTT3m8WvMh.json new file mode 100644 index 00000000..6075ed0f --- /dev/null +++ b/src/packs/items/loot/loot_Attune_Relic_vK6bKyQTT3m8WvMh.json @@ -0,0 +1,76 @@ +{ + "name": "Attune Relic", + "type": "loot", + "_id": "vK6bKyQTT3m8WvMh", + "img": "icons/commodities/treasure/token-runed-spiral-grey.webp", + "system": { + "description": "

You gain a +1 bonus to your Instinct. You can only carry one relic.

", + "quantity": 1, + "actions": {} + }, + "effects": [ + { + "name": "Attune Relic", + "type": "base", + "_id": "KmoJVnCQJUGyrZIk", + "img": "icons/magic/life/heart-cross-blue.webp", + "system": {}, + "changes": [ + { + "key": "system.traits.instinct.value", + "mode": 2, + "value": "1", + "priority": null + } + ], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "", + "origin": null, + "tint": "#ffffff", + "transfer": true, + "statuses": [], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753639655271, + "modifiedTime": 1753639665432, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items.effects!vK6bKyQTT3m8WvMh.KmoJVnCQJUGyrZIk" + } + ], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753639587267, + "modifiedTime": 1753639733198, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!vK6bKyQTT3m8WvMh" +} diff --git a/src/packs/items/loot/loot_Bag_of_Ficklesand_v758j4FwNVAurhYK.json b/src/packs/items/loot/loot_Bag_of_Ficklesand_v758j4FwNVAurhYK.json new file mode 100644 index 00000000..954fc9e0 --- /dev/null +++ b/src/packs/items/loot/loot_Bag_of_Ficklesand_v758j4FwNVAurhYK.json @@ -0,0 +1,31 @@ +{ + "name": "Bag of Ficklesand", + "type": "loot", + "_id": "v758j4FwNVAurhYK", + "img": "icons/containers/bags/pouch-cloth-tan.webp", + "system": { + "description": "

You can convince this small bag of sand to be much heavier or lighter with a successful [[/dr trait=\"presence\" difficulty=\"10\"]]. Additionally, on a successful [[/dr trait=\"finesse\" difficulty=\"10\"]], you can blow a bit of sand into a target’s face to make them temporarily Vulnerable.

", + "quantity": 1, + "actions": {} + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753637946114, + "modifiedTime": 1753638703757, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!v758j4FwNVAurhYK" +} diff --git a/src/packs/items/loot/loot_Belt_of_Unity_gFzkUGCjkRJtyoe9.json b/src/packs/items/loot/loot_Belt_of_Unity_gFzkUGCjkRJtyoe9.json new file mode 100644 index 00000000..717f4024 --- /dev/null +++ b/src/packs/items/loot/loot_Belt_of_Unity_gFzkUGCjkRJtyoe9.json @@ -0,0 +1,62 @@ +{ + "name": "Belt of Unity", + "type": "loot", + "_id": "gFzkUGCjkRJtyoe9", + "img": "icons/equipment/waist/belt-buckle-ornate-steel.webp", + "system": { + "description": "

Once per session, you can spend 5 Hope to lead a Tag Team Roll with three PCs instead of two.

", + "quantity": 1, + "actions": { + "SuaYNEUO9U9TIZWb": { + "type": "effect", + "_id": "SuaYNEUO9U9TIZWb", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [ + { + "scalable": false, + "key": "hope", + "value": 5, + "keyIsID": false, + "step": null + } + ], + "uses": { + "value": null, + "max": 1, + "recovery": "session" + }, + "effects": [], + "target": { + "type": "any", + "amount": null + }, + "name": "Use", + "img": "icons/equipment/waist/belt-buckle-ornate-steel.webp", + "range": "" + } + } + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753640971116, + "modifiedTime": 1753641065768, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!gFzkUGCjkRJtyoe9" +} diff --git a/src/packs/items/loot/loot_Bloodstone_oMd78vhL2x2NO8Mg.json b/src/packs/items/loot/loot_Bloodstone_oMd78vhL2x2NO8Mg.json new file mode 100644 index 00000000..f5a19dff --- /dev/null +++ b/src/packs/items/loot/loot_Bloodstone_oMd78vhL2x2NO8Mg.json @@ -0,0 +1,31 @@ +{ + "name": "Bloodstone", + "type": "loot", + "_id": "oMd78vhL2x2NO8Mg", + "img": "icons/commodities/treasure/token-engraved-eye-red.webp", + "system": { + "description": "

You can attach this stone to a weapon that doesn’t already have a feature. The weapon gains the following feature.

Brutal: When you roll the maximum value on a damage die, roll an additional damage die.

", + "quantity": 1, + "actions": {} + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753637532005, + "modifiedTime": 1753637570344, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!oMd78vhL2x2NO8Mg" +} diff --git a/src/packs/items/loot/loot_Bolster_Relic_m3EpxlDgxn2tCDDR.json b/src/packs/items/loot/loot_Bolster_Relic_m3EpxlDgxn2tCDDR.json new file mode 100644 index 00000000..2d38e186 --- /dev/null +++ b/src/packs/items/loot/loot_Bolster_Relic_m3EpxlDgxn2tCDDR.json @@ -0,0 +1,76 @@ +{ + "name": "Bolster Relic", + "type": "loot", + "_id": "m3EpxlDgxn2tCDDR", + "img": "icons/commodities/treasure/token-runed-radr-brown.webp", + "system": { + "description": "

You gain a +1 bonus to your Strength. You can only carry one relic.

", + "quantity": 1, + "actions": {} + }, + "effects": [ + { + "name": "Bolster Relic", + "type": "base", + "_id": "ByYXvJNr5YbXqn8I", + "img": "icons/magic/life/heart-cross-blue.webp", + "system": {}, + "changes": [ + { + "key": "system.traits.strength.value", + "mode": 2, + "value": "1", + "priority": null + } + ], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "", + "origin": null, + "tint": "#ffffff", + "transfer": true, + "statuses": [], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753639476499, + "modifiedTime": 1753639561079, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items.effects!m3EpxlDgxn2tCDDR.ByYXvJNr5YbXqn8I" + } + ], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753639461783, + "modifiedTime": 1753639473676, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!m3EpxlDgxn2tCDDR" +} diff --git a/src/packs/items/loot/loot_Box_of_Many_Goods_bZyT7Qw7iafswlTY.json b/src/packs/items/loot/loot_Box_of_Many_Goods_bZyT7Qw7iafswlTY.json new file mode 100644 index 00000000..2856ffc7 --- /dev/null +++ b/src/packs/items/loot/loot_Box_of_Many_Goods_bZyT7Qw7iafswlTY.json @@ -0,0 +1,54 @@ +{ + "name": "Box of Many Goods", + "type": "loot", + "_id": "bZyT7Qw7iafswlTY", + "img": "icons/containers/boxes/crate-heavy-yellow.webp", + "system": { + "description": "

Once per long rest, you can open this small box and roll a [[/r d12]]. On a result of 1–6, it’s empty. On a result of 7–10, it contains one random common consumable. On a result of 11–12, it contains two random common consumables.

", + "quantity": 1, + "actions": { + "5vW3p31WvGN6v8qc": { + "type": "effect", + "_id": "5vW3p31WvGN6v8qc", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": 1, + "recovery": "longRest" + }, + "effects": [], + "target": { + "type": "any", + "amount": null + }, + "name": "Open", + "img": "icons/containers/boxes/crate-heavy-yellow.webp", + "range": "" + } + } + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753638361357, + "modifiedTime": 1753638425801, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!bZyT7Qw7iafswlTY" +} diff --git a/src/packs/items/loot/loot_Calming_Pendant_tgFFMxpuRSiRrrEB.json b/src/packs/items/loot/loot_Calming_Pendant_tgFFMxpuRSiRrrEB.json new file mode 100644 index 00000000..44103e9a --- /dev/null +++ b/src/packs/items/loot/loot_Calming_Pendant_tgFFMxpuRSiRrrEB.json @@ -0,0 +1,31 @@ +{ + "name": "Calming Pendant", + "type": "loot", + "_id": "tgFFMxpuRSiRrrEB", + "img": "icons/equipment/neck/amulet-round-blue.webp", + "system": { + "description": "

When you would mark your last Stress, roll a [[/r d6]]. On a result of 5 or higher, don’t mark it.

", + "quantity": 1, + "actions": {} + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753637842111, + "modifiedTime": 1753637884439, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!tgFFMxpuRSiRrrEB" +} diff --git a/src/packs/items/loot/loot_Charging_Quiver_gsUDP90d4SRtLEUn.json b/src/packs/items/loot/loot_Charging_Quiver_gsUDP90d4SRtLEUn.json new file mode 100644 index 00000000..8e41852a --- /dev/null +++ b/src/packs/items/loot/loot_Charging_Quiver_gsUDP90d4SRtLEUn.json @@ -0,0 +1,84 @@ +{ + "name": "Charging Quiver", + "type": "loot", + "_id": "gsUDP90d4SRtLEUn", + "img": "icons/containers/ammunition/arrows-quiver-grey-gold.webp", + "system": { + "description": "

When you succeed on an attack with an arrow stored in this quiver, gain a bonus to the damage roll equal to your current tier.

", + "quantity": 1, + "actions": { + "VI11nILEneaigrRE": { + "type": "damage", + "_id": "VI11nILEneaigrRE", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": true, + "formula": "@tier" + }, + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null + }, + "applyTo": "hitPoints", + "type": [], + "base": false, + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + } + } + ], + "includeBase": false + }, + "target": { + "type": "any", + "amount": null + }, + "effects": [], + "name": "Use Arrow", + "img": "icons/containers/ammunition/arrows-quiver-grey-gold.webp", + "range": "" + } + } + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753625025089, + "modifiedTime": 1753625150698, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!gsUDP90d4SRtLEUn" +} diff --git a/src/packs/items/loot/loot_Charm_Relic_9P9jqGSlxVCbTdLe.json b/src/packs/items/loot/loot_Charm_Relic_9P9jqGSlxVCbTdLe.json new file mode 100644 index 00000000..301ac3d0 --- /dev/null +++ b/src/packs/items/loot/loot_Charm_Relic_9P9jqGSlxVCbTdLe.json @@ -0,0 +1,76 @@ +{ + "name": "Charm Relic", + "type": "loot", + "_id": "9P9jqGSlxVCbTdLe", + "img": "icons/commodities/treasure/token-runed-wyn-grey.webp", + "system": { + "description": "

You gain a +1 bonus to your Presence. You can only carry one relic.

", + "quantity": 1, + "actions": {} + }, + "effects": [ + { + "name": "Charm Relic", + "type": "base", + "_id": "2yr8Ps6wvaG3b1qy", + "img": "icons/magic/life/heart-cross-blue.webp", + "system": {}, + "changes": [ + { + "key": "system.traits.presence.value", + "mode": 2, + "value": "1", + "priority": null + } + ], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "", + "origin": null, + "tint": "#ffffff", + "transfer": true, + "statuses": [], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753639698545, + "modifiedTime": 1753639708693, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items.effects!9P9jqGSlxVCbTdLe.2yr8Ps6wvaG3b1qy" + } + ], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753639686831, + "modifiedTime": 1753639719586, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!9P9jqGSlxVCbTdLe" +} diff --git a/src/packs/items/loot/loot_Clay_Companion_lGIk9vBNz0jvskXD.json b/src/packs/items/loot/loot_Clay_Companion_lGIk9vBNz0jvskXD.json new file mode 100644 index 00000000..d60c928c --- /dev/null +++ b/src/packs/items/loot/loot_Clay_Companion_lGIk9vBNz0jvskXD.json @@ -0,0 +1,31 @@ +{ + "name": "Clay Companion", + "type": "loot", + "_id": "lGIk9vBNz0jvskXD", + "img": "icons/commodities/gems/pearl-brown.webp", + "system": { + "description": "

When you sculpt this ball of clay into a clay animal companion, it behaves as that animal. For example, a clay spider can spin clay webs, while a clay bird can fly. The clay companion retains memory and identity across different shapes, but they can adopt new mannerisms with each form.

", + "quantity": 1, + "actions": {} + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753640057300, + "modifiedTime": 1753640276057, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!lGIk9vBNz0jvskXD" +} diff --git a/src/packs/items/loot/loot_Companion_Case_V25uXkAQvK3hUta4.json b/src/packs/items/loot/loot_Companion_Case_V25uXkAQvK3hUta4.json new file mode 100644 index 00000000..65854d4c --- /dev/null +++ b/src/packs/items/loot/loot_Companion_Case_V25uXkAQvK3hUta4.json @@ -0,0 +1,31 @@ +{ + "name": "Companion Case", + "type": "loot", + "_id": "V25uXkAQvK3hUta4", + "img": "icons/containers/chest/chest-reinforced-steel-red.webp", + "system": { + "description": "

This case can fit a small animal companion. While the companion is inside, the animal and case are immune to all damage and harmful effects.

", + "quantity": 1, + "actions": {} + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753625898190, + "modifiedTime": 1753625935379, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!V25uXkAQvK3hUta4" +} diff --git a/src/packs/items/loot/loot_Control_Relic_QPGBDItjrRhXU6iJ.json b/src/packs/items/loot/loot_Control_Relic_QPGBDItjrRhXU6iJ.json new file mode 100644 index 00000000..7ec2343a --- /dev/null +++ b/src/packs/items/loot/loot_Control_Relic_QPGBDItjrRhXU6iJ.json @@ -0,0 +1,76 @@ +{ + "name": "Control Relic", + "type": "loot", + "_id": "QPGBDItjrRhXU6iJ", + "img": "icons/commodities/treasure/token-runed-sigel-brown.webp", + "system": { + "description": "

You gain a +1 bonus to your Finesse. You can only carry one relic.

", + "quantity": 1, + "actions": {} + }, + "effects": [ + { + "name": "Control Relic", + "type": "base", + "_id": "OwjK2TqOizTiRGxD", + "img": "icons/magic/life/heart-cross-blue.webp", + "system": {}, + "changes": [ + { + "key": "system.traits.finesse.value", + "mode": 2, + "value": "1", + "priority": null + } + ], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "", + "origin": null, + "tint": "#ffffff", + "transfer": true, + "statuses": [], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753639502481, + "modifiedTime": 1753639535252, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items.effects!QPGBDItjrRhXU6iJ.OwjK2TqOizTiRGxD" + } + ], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753639492071, + "modifiedTime": 1753639541446, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!QPGBDItjrRhXU6iJ" +} diff --git a/src/packs/items/loot/loot_Corrector_Sprite_G0RktbmtnuAlKCRH.json b/src/packs/items/loot/loot_Corrector_Sprite_G0RktbmtnuAlKCRH.json new file mode 100644 index 00000000..4a1a0848 --- /dev/null +++ b/src/packs/items/loot/loot_Corrector_Sprite_G0RktbmtnuAlKCRH.json @@ -0,0 +1,54 @@ +{ + "name": "Corrector Sprite", + "type": "loot", + "_id": "G0RktbmtnuAlKCRH", + "img": "icons/magic/light/orbs-smoke-pink.webp", + "system": { + "description": "

This tiny sprite sits in the curve of your ear canal and whispers helpful advice during combat. Once per short rest, you can gain advantage on an attack roll.

", + "quantity": 1, + "actions": { + "saCkJzt1fb9GnEre": { + "type": "effect", + "_id": "saCkJzt1fb9GnEre", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": 1, + "recovery": "shortRest" + }, + "effects": [], + "target": { + "type": "any", + "amount": null + }, + "name": "Listen", + "img": "icons/magic/light/orbs-smoke-pink.webp", + "range": "" + } + } + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753637155361, + "modifiedTime": 1753637366036, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!G0RktbmtnuAlKCRH" +} diff --git a/src/packs/items/loot/loot_Dual_Flask_HCvcAu3sdHCspGMP.json b/src/packs/items/loot/loot_Dual_Flask_HCvcAu3sdHCspGMP.json new file mode 100644 index 00000000..f99220c9 --- /dev/null +++ b/src/packs/items/loot/loot_Dual_Flask_HCvcAu3sdHCspGMP.json @@ -0,0 +1,31 @@ +{ + "name": "Dual Flask", + "type": "loot", + "_id": "HCvcAu3sdHCspGMP", + "img": "icons/consumables/potions/round-decorated-snake-green.webp", + "system": { + "description": "

This flask can hold two different liquids. You can swap between them by flipping a small switch on the flask’s side.

", + "quantity": 1, + "actions": {} + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753637893309, + "modifiedTime": 1753637932763, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!HCvcAu3sdHCspGMP" +} diff --git a/src/packs/items/loot/loot_Elusive_Amulet_PkmTZXRMZL022O75.json b/src/packs/items/loot/loot_Elusive_Amulet_PkmTZXRMZL022O75.json new file mode 100644 index 00000000..02c2aa0f --- /dev/null +++ b/src/packs/items/loot/loot_Elusive_Amulet_PkmTZXRMZL022O75.json @@ -0,0 +1,99 @@ +{ + "name": "Elusive Amulet", + "type": "loot", + "_id": "PkmTZXRMZL022O75", + "img": "icons/equipment/neck/pendant-rough-silver-purple.webp", + "system": { + "description": "

Once per long rest, you can activate this amulet to become Hidden until you move. While Hidden in this way, you remain unseen even if an adversary moves to where they would normally see you.

", + "quantity": 1, + "actions": { + "vitnEzfU3gCzsRem": { + "type": "effect", + "_id": "vitnEzfU3gCzsRem", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": 1, + "recovery": "longRest" + }, + "effects": [ + { + "_id": "YBkYjxU0Vn5JEsMK", + "onSave": false + } + ], + "target": { + "type": "any", + "amount": null + }, + "name": "Activate", + "img": "icons/equipment/neck/pendant-rough-silver-purple.webp", + "range": "" + } + } + }, + "effects": [ + { + "name": "Elusive Amulet", + "img": "icons/equipment/neck/pendant-rough-silver-purple.webp", + "origin": "Compendium.daggerheart.loot.Item.PkmTZXRMZL022O75", + "transfer": true, + "_id": "YBkYjxU0Vn5JEsMK", + "type": "base", + "system": {}, + "changes": [], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "", + "tint": "#ffffff", + "statuses": [ + "hidden" + ], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753639111583, + "modifiedTime": 1753639213582, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items.effects!PkmTZXRMZL022O75.YBkYjxU0Vn5JEsMK" + } + ], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753638931971, + "modifiedTime": 1753639111606, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!PkmTZXRMZL022O75" +} diff --git a/src/packs/items/loot/loot_Empty_Chest_p2yy61uKsyIsl8cU.json b/src/packs/items/loot/loot_Empty_Chest_p2yy61uKsyIsl8cU.json new file mode 100644 index 00000000..bb6ca519 --- /dev/null +++ b/src/packs/items/loot/loot_Empty_Chest_p2yy61uKsyIsl8cU.json @@ -0,0 +1,31 @@ +{ + "name": "Empty Chest", + "type": "loot", + "_id": "p2yy61uKsyIsl8cU", + "img": "icons/containers/chest/chest-simple-box-gold-brown.webp", + "system": { + "description": "

This magical chest appears empty. When you speak a specific trigger word or action and open the chest, you can see the items stored within it.

", + "quantity": 1, + "actions": {} + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753625859659, + "modifiedTime": 1753625887033, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!p2yy61uKsyIsl8cU" +} diff --git a/src/packs/items/loot/loot_Enlighten_Relic_vSGx1f9SYUiA29L3.json b/src/packs/items/loot/loot_Enlighten_Relic_vSGx1f9SYUiA29L3.json new file mode 100644 index 00000000..aa5e9b4d --- /dev/null +++ b/src/packs/items/loot/loot_Enlighten_Relic_vSGx1f9SYUiA29L3.json @@ -0,0 +1,76 @@ +{ + "name": "Enlighten Relic", + "type": "loot", + "_id": "vSGx1f9SYUiA29L3", + "img": "icons/commodities/treasure/token-runed-os-grey.webp", + "system": { + "description": "

You gain a +1 bonus to your Knowledge. You can only carry one relic.

", + "quantity": 1, + "actions": {} + }, + "effects": [ + { + "name": "Enlighten Relic", + "type": "base", + "_id": "aWOGlmqC9l86GlFV", + "img": "icons/magic/life/heart-cross-blue.webp", + "system": {}, + "changes": [ + { + "key": "system.traits.knowledge.value", + "mode": 2, + "value": "1", + "priority": null + } + ], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "", + "origin": null, + "tint": "#ffffff", + "transfer": true, + "statuses": [], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753639757883, + "modifiedTime": 1753639770922, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items.effects!vSGx1f9SYUiA29L3.aWOGlmqC9l86GlFV" + } + ], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753639753586, + "modifiedTime": 1753639789835, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!vSGx1f9SYUiA29L3" +} diff --git a/src/packs/items/loot/loot_Fire_Jar_X6RMkIt89wf7qX2E.json b/src/packs/items/loot/loot_Fire_Jar_X6RMkIt89wf7qX2E.json new file mode 100644 index 00000000..bcdda979 --- /dev/null +++ b/src/packs/items/loot/loot_Fire_Jar_X6RMkIt89wf7qX2E.json @@ -0,0 +1,54 @@ +{ + "name": "Fire Jar", + "type": "loot", + "_id": "X6RMkIt89wf7qX2E", + "img": "icons/containers/kitchenware/jug-wrapped-red.webp", + "system": { + "description": "

You can pour out the strange liquid contents of this jar to instantly produce fire. The contents regenerate when you take a long rest.

", + "quantity": 1, + "actions": { + "nzXMuxD8DpT1dMXF": { + "type": "effect", + "_id": "nzXMuxD8DpT1dMXF", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": 1, + "max": 1, + "recovery": "longRest" + }, + "effects": [], + "target": { + "type": "any", + "amount": null + }, + "name": "Pour", + "img": "icons/containers/kitchenware/jug-wrapped-red.webp", + "range": "" + } + } + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753625575791, + "modifiedTime": 1753625617382, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!X6RMkIt89wf7qX2E" +} diff --git a/src/packs/items/loot/loot_Flickerfly_Pendant_9VKYSBQxN9XFWlAm.json b/src/packs/items/loot/loot_Flickerfly_Pendant_9VKYSBQxN9XFWlAm.json new file mode 100644 index 00000000..bb7f8495 --- /dev/null +++ b/src/packs/items/loot/loot_Flickerfly_Pendant_9VKYSBQxN9XFWlAm.json @@ -0,0 +1,31 @@ +{ + "name": "Flickerfly Pendant", + "type": "loot", + "_id": "9VKYSBQxN9XFWlAm", + "img": "icons/equipment/neck/choker-rough-green.webp", + "system": { + "description": "

While you carry this pendant, your weapons with a Melee range that deal physical damage have a gossamer sheen and can attack targets within Very Close range.

", + "quantity": 1, + "actions": {} + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753639935227, + "modifiedTime": 1753639964153, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!9VKYSBQxN9XFWlAm" +} diff --git a/src/packs/items/loot/loot_Gecko_Gloves_CGzjBpHJRG8KSt5Y.json b/src/packs/items/loot/loot_Gecko_Gloves_CGzjBpHJRG8KSt5Y.json new file mode 100644 index 00000000..3dbdae76 --- /dev/null +++ b/src/packs/items/loot/loot_Gecko_Gloves_CGzjBpHJRG8KSt5Y.json @@ -0,0 +1,31 @@ +{ + "name": "Gecko Gloves", + "type": "loot", + "_id": "CGzjBpHJRG8KSt5Y", + "img": "icons/equipment/hand/glove-ring-leather-green.webp", + "system": { + "description": "

You can climb up vertical surfaces and across ceilings.

", + "quantity": 1, + "actions": {} + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753637390470, + "modifiedTime": 1753637455936, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!CGzjBpHJRG8KSt5Y" +} diff --git a/src/packs/items/loot/loot_Gem_of_Alacrity_zecFwBUSWtB3HW8X.json b/src/packs/items/loot/loot_Gem_of_Alacrity_zecFwBUSWtB3HW8X.json new file mode 100644 index 00000000..86b17e74 --- /dev/null +++ b/src/packs/items/loot/loot_Gem_of_Alacrity_zecFwBUSWtB3HW8X.json @@ -0,0 +1,31 @@ +{ + "name": "Gem of Alacrity", + "type": "loot", + "_id": "zecFwBUSWtB3HW8X", + "img": "icons/commodities/gems/gem-rough-ball-purple.webp", + "system": { + "description": "

You can attach this gem to a weapon, allowing you to use your Agility when making an attack with that weapon.

", + "quantity": 1, + "actions": {} + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753640285473, + "modifiedTime": 1753640317903, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!zecFwBUSWtB3HW8X" +} diff --git a/src/packs/items/loot/loot_Gem_of_Audacity_hMu9It3ThCLCXuCA.json b/src/packs/items/loot/loot_Gem_of_Audacity_hMu9It3ThCLCXuCA.json new file mode 100644 index 00000000..07d44a2c --- /dev/null +++ b/src/packs/items/loot/loot_Gem_of_Audacity_hMu9It3ThCLCXuCA.json @@ -0,0 +1,31 @@ +{ + "name": "Gem of Audacity", + "type": "loot", + "_id": "hMu9It3ThCLCXuCA", + "img": "icons/commodities/gems/gem-rough-cushion-pink-yellow.webp", + "system": { + "description": "

You can attach this gem to a weapon, allowing you to use your Presence when making an attack with that weapon.

", + "quantity": 1, + "actions": {} + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753640590771, + "modifiedTime": 1753640602606, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!hMu9It3ThCLCXuCA" +} diff --git a/src/packs/items/loot/loot_Gem_of_Insight_TbgeT9ZxKHqFqJSN.json b/src/packs/items/loot/loot_Gem_of_Insight_TbgeT9ZxKHqFqJSN.json new file mode 100644 index 00000000..03743b23 --- /dev/null +++ b/src/packs/items/loot/loot_Gem_of_Insight_TbgeT9ZxKHqFqJSN.json @@ -0,0 +1,31 @@ +{ + "name": "Gem of Insight", + "type": "loot", + "_id": "TbgeT9ZxKHqFqJSN", + "img": "icons/commodities/gems/gem-rough-cushion-blue.webp", + "system": { + "description": "

You can attach this gem to a weapon, allowing you to use your Instinct when making an attack with that weapon.

", + "quantity": 1, + "actions": {} + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753640563344, + "modifiedTime": 1753640580953, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!TbgeT9ZxKHqFqJSN" +} diff --git a/src/packs/items/loot/loot_Gem_of_Might_rtSInNPc4B3ChBUZ.json b/src/packs/items/loot/loot_Gem_of_Might_rtSInNPc4B3ChBUZ.json new file mode 100644 index 00000000..8395388f --- /dev/null +++ b/src/packs/items/loot/loot_Gem_of_Might_rtSInNPc4B3ChBUZ.json @@ -0,0 +1,31 @@ +{ + "name": "Gem of Might", + "type": "loot", + "_id": "rtSInNPc4B3ChBUZ", + "img": "icons/commodities/gems/gem-rough-brilliant-green.webp", + "system": { + "description": "

You can attach this gem to a weapon, allowing you to use your Strength when making an attack with that weapon.

", + "quantity": 1, + "actions": {} + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753640512721, + "modifiedTime": 1753640527143, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!rtSInNPc4B3ChBUZ" +} diff --git a/src/packs/items/loot/loot_Gem_of_Precision_CrvJ7vb4s40YgEcy.json b/src/packs/items/loot/loot_Gem_of_Precision_CrvJ7vb4s40YgEcy.json new file mode 100644 index 00000000..6dc57398 --- /dev/null +++ b/src/packs/items/loot/loot_Gem_of_Precision_CrvJ7vb4s40YgEcy.json @@ -0,0 +1,31 @@ +{ + "name": "Gem of Precision", + "type": "loot", + "_id": "CrvJ7vb4s40YgEcy", + "img": "icons/commodities/gems/gem-rough-cushion-green.webp", + "system": { + "description": "

You can attach this gem to a weapon, allowing you to use your Finesse when making an attack with that weapon.

", + "quantity": 1, + "actions": {} + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753640535939, + "modifiedTime": 1753640553552, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!CrvJ7vb4s40YgEcy" +} diff --git a/src/packs/items/loot/loot_Gem_of_Sagacity_ua351S7CsH22X1x2.json b/src/packs/items/loot/loot_Gem_of_Sagacity_ua351S7CsH22X1x2.json new file mode 100644 index 00000000..4128007b --- /dev/null +++ b/src/packs/items/loot/loot_Gem_of_Sagacity_ua351S7CsH22X1x2.json @@ -0,0 +1,31 @@ +{ + "name": "Gem of Sagacity", + "type": "loot", + "_id": "ua351S7CsH22X1x2", + "img": "icons/commodities/gems/gem-rough-cushion-purple.webp", + "system": { + "description": "

You can attach this gem to a weapon, allowing you to use your Knowledge when making an attack with that weapon.

", + "quantity": 1, + "actions": {} + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753640610217, + "modifiedTime": 1753640623916, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!ua351S7CsH22X1x2" +} diff --git a/src/packs/items/loot/loot_Glamour_Stone_Pj17cvdJ1XG1jv6I.json b/src/packs/items/loot/loot_Glamour_Stone_Pj17cvdJ1XG1jv6I.json new file mode 100644 index 00000000..dacc4376 --- /dev/null +++ b/src/packs/items/loot/loot_Glamour_Stone_Pj17cvdJ1XG1jv6I.json @@ -0,0 +1,62 @@ +{ + "name": "Glamour Stone", + "type": "loot", + "_id": "Pj17cvdJ1XG1jv6I", + "img": "icons/commodities/treasure/token-engraved-purple-glowing.webp", + "system": { + "description": "

Activate this pebble-sized stone to memorize the appearance of someone you can see. Spend a Hope to magically recreate this guise on yourself as an illusion.

", + "quantity": 1, + "actions": { + "ATQgH12mufTOQLKs": { + "type": "effect", + "_id": "ATQgH12mufTOQLKs", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [ + { + "keyIsID": false, + "key": "hope", + "value": 1, + "scalable": false, + "step": null + } + ], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "effects": [], + "target": { + "type": "any", + "amount": null + }, + "name": "Create Illusion", + "img": "icons/commodities/treasure/token-engraved-purple-glowing.webp", + "range": "" + } + } + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753625773657, + "modifiedTime": 1753625847459, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!Pj17cvdJ1XG1jv6I" +} diff --git a/src/packs/items/loot/loot_Glider_CiXwelozmBDcPY48.json b/src/packs/items/loot/loot_Glider_CiXwelozmBDcPY48.json new file mode 100644 index 00000000..05211e72 --- /dev/null +++ b/src/packs/items/loot/loot_Glider_CiXwelozmBDcPY48.json @@ -0,0 +1,31 @@ +{ + "name": "Glider", + "type": "loot", + "_id": "CiXwelozmBDcPY48", + "img": "icons/commodities/leather/leather-patch-red.webp", + "system": { + "description": "

While falling, you can mark a Stress to deploy this small parachute and glide safely to the ground.

", + "quantity": 1, + "actions": {} + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753637642501, + "modifiedTime": 1753637766985, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!CiXwelozmBDcPY48" +} diff --git a/src/packs/items/loot/loot_Greatstone_y7zABzR0Q2fRskTw.json b/src/packs/items/loot/loot_Greatstone_y7zABzR0Q2fRskTw.json new file mode 100644 index 00000000..e19ac9a6 --- /dev/null +++ b/src/packs/items/loot/loot_Greatstone_y7zABzR0Q2fRskTw.json @@ -0,0 +1,31 @@ +{ + "name": "Greatstone", + "type": "loot", + "_id": "y7zABzR0Q2fRskTw", + "img": "icons/commodities/treasure/token-etched-h-brown.webp", + "system": { + "description": "

You can attach this stone to a weapon that doesn’t already have a feature. The weapon gains the following feature.

Powerful: On a successful attack, roll an additional damage die and discard the lowest result.

", + "quantity": 1, + "actions": {} + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753637596921, + "modifiedTime": 1753637633941, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!y7zABzR0Q2fRskTw" +} diff --git a/src/packs/items/loot/loot_Homing_Compasses_yrAGYlDyoe4OYl7d.json b/src/packs/items/loot/loot_Homing_Compasses_yrAGYlDyoe4OYl7d.json new file mode 100644 index 00000000..be6e9ad5 --- /dev/null +++ b/src/packs/items/loot/loot_Homing_Compasses_yrAGYlDyoe4OYl7d.json @@ -0,0 +1,31 @@ +{ + "name": "Homing Compasses", + "type": "loot", + "_id": "yrAGYlDyoe4OYl7d", + "img": "icons/tools/navigation/compass-worn-copper.webp", + "system": { + "description": "

These two compasses point toward each other no matter how far apart they are.

", + "quantity": 1, + "actions": {} + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753637089789, + "modifiedTime": 1753637129113, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!yrAGYlDyoe4OYl7d" +} diff --git a/src/packs/items/loot/loot_Honing_Relic_SAAnEAeXDnhBbLjB.json b/src/packs/items/loot/loot_Honing_Relic_SAAnEAeXDnhBbLjB.json new file mode 100644 index 00000000..4fb5b0de --- /dev/null +++ b/src/packs/items/loot/loot_Honing_Relic_SAAnEAeXDnhBbLjB.json @@ -0,0 +1,31 @@ +{ + "name": "Honing Relic", + "type": "loot", + "_id": "SAAnEAeXDnhBbLjB", + "img": "icons/commodities/treasure/token-runed-nyd-yellow.webp", + "system": { + "description": "

You gain a +1 bonus to an Experience of your choice. You can only carry one relic.

", + "quantity": 1, + "actions": {} + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753639799902, + "modifiedTime": 1753639815534, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!SAAnEAeXDnhBbLjB" +} diff --git a/src/packs/items/loot/loot_Hopekeeper_Locket_9DcFR75tsnBYIp6Z.json b/src/packs/items/loot/loot_Hopekeeper_Locket_9DcFR75tsnBYIp6Z.json new file mode 100644 index 00000000..6899908f --- /dev/null +++ b/src/packs/items/loot/loot_Hopekeeper_Locket_9DcFR75tsnBYIp6Z.json @@ -0,0 +1,124 @@ +{ + "name": "Hopekeeper Locket", + "type": "loot", + "_id": "9DcFR75tsnBYIp6Z", + "img": "icons/equipment/neck/amulet-round-engraved-spiral-gold.webp", + "system": { + "description": "

During a long rest, if you have 6 Hope, you can spend a Hope to imbue this locket with your bountiful resolve.

When you have 0 Hope, you can use the locket to immediately gain a Hope. The locket must be re-imbued before it can be used this way again.

", + "quantity": 1, + "actions": { + "iwDm6P1ABr7vojGr": { + "type": "effect", + "_id": "iwDm6P1ABr7vojGr", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [ + { + "keyIsID": false, + "key": "hope", + "value": 1, + "scalable": false, + "step": null + } + ], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "effects": [], + "target": { + "type": "any", + "amount": null + }, + "name": "Imbue", + "img": "icons/equipment/neck/amulet-round-engraved-spiral-gold.webp", + "range": "" + }, + "xof31iSNIfxhbZH9": { + "type": "healing", + "_id": "xof31iSNIfxhbZH9", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "target": { + "type": "any", + "amount": null + }, + "effects": [], + "healing": { + "applyTo": "hope", + "resultBased": false, + "value": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": true, + "formula": "1" + } + }, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + }, + "base": false, + "type": [] + }, + "roll": { + "type": null, + "trait": null, + "difficulty": null, + "bonus": null, + "advState": "neutral", + "diceRolling": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "compare": "above", + "treshold": 1 + }, + "useDefault": false + }, + "name": "Use", + "img": "icons/equipment/neck/amulet-round-engraved-spiral-gold.webp", + "range": "" + } + } + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753639224510, + "modifiedTime": 1753639329411, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!9DcFR75tsnBYIp6Z" +} diff --git a/src/packs/items/loot/loot_Infinite_Bag_Iedjw1LVWEozVh0J.json b/src/packs/items/loot/loot_Infinite_Bag_Iedjw1LVWEozVh0J.json new file mode 100644 index 00000000..83044c0f --- /dev/null +++ b/src/packs/items/loot/loot_Infinite_Bag_Iedjw1LVWEozVh0J.json @@ -0,0 +1,31 @@ +{ + "name": "Infinite Bag", + "type": "loot", + "_id": "Iedjw1LVWEozVh0J", + "img": "icons/containers/bags/pack-engraved-leather-blue.webp", + "system": { + "description": "

When you store items in this bag, they are kept in a pocket dimension that never runs out of space. You can retrieve an item at any time.

", + "quantity": 1, + "actions": {} + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753639339762, + "modifiedTime": 1753639361505, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!Iedjw1LVWEozVh0J" +} diff --git a/src/packs/items/loot/loot_Lakestrider_Boots_NgvmrJYKpA2PrRSo.json b/src/packs/items/loot/loot_Lakestrider_Boots_NgvmrJYKpA2PrRSo.json new file mode 100644 index 00000000..b64c2faf --- /dev/null +++ b/src/packs/items/loot/loot_Lakestrider_Boots_NgvmrJYKpA2PrRSo.json @@ -0,0 +1,31 @@ +{ + "name": "Lakestrider Boots", + "type": "loot", + "_id": "NgvmrJYKpA2PrRSo", + "img": "icons/equipment/feet/shoes-collared-leather-blue.webp", + "system": { + "description": "

You can walk on the surface of water as if it were soft ground.

", + "quantity": 1, + "actions": {} + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753639975496, + "modifiedTime": 1753639999823, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!NgvmrJYKpA2PrRSo" +} diff --git a/src/packs/items/loot/loot_Lorekeeper_JsPYzrqpITqGj23I.json b/src/packs/items/loot/loot_Lorekeeper_JsPYzrqpITqGj23I.json new file mode 100644 index 00000000..8a1fd26e --- /dev/null +++ b/src/packs/items/loot/loot_Lorekeeper_JsPYzrqpITqGj23I.json @@ -0,0 +1,31 @@ +{ + "name": "Lorekeeper", + "type": "loot", + "_id": "JsPYzrqpITqGj23I", + "img": "icons/sundries/books/book-backed-wood-tan.webp", + "system": { + "description": "

You can store the name and details of up to three hostile creatures inside this book. You gain a +1 bonus to action rolls against those creatures.

", + "quantity": 1, + "actions": {} + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753637467427, + "modifiedTime": 1753637489198, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!JsPYzrqpITqGj23I" +} diff --git a/src/packs/items/loot/loot_Manacles_GkmATIuemyFtQX1D.json b/src/packs/items/loot/loot_Manacles_GkmATIuemyFtQX1D.json new file mode 100644 index 00000000..cbeb9f38 --- /dev/null +++ b/src/packs/items/loot/loot_Manacles_GkmATIuemyFtQX1D.json @@ -0,0 +1,31 @@ +{ + "name": "Manacles", + "type": "loot", + "_id": "GkmATIuemyFtQX1D", + "img": "icons/sundries/survival/cuffs-shackles-steel.webp", + "system": { + "description": "

This pair of locking cuffs comes with a key.

", + "quantity": 1, + "actions": {} + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753625337217, + "modifiedTime": 1753625362038, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!GkmATIuemyFtQX1D" +} diff --git a/src/packs/items/loot/loot_Minor_Health_Potion_Recipe_PQxvxAVBbkt0TleC.json b/src/packs/items/loot/loot_Minor_Health_Potion_Recipe_PQxvxAVBbkt0TleC.json new file mode 100644 index 00000000..2d8c286b --- /dev/null +++ b/src/packs/items/loot/loot_Minor_Health_Potion_Recipe_PQxvxAVBbkt0TleC.json @@ -0,0 +1,31 @@ +{ + "name": "Minor Health Potion Recipe", + "type": "loot", + "_id": "PQxvxAVBbkt0TleC", + "img": "icons/sundries/scrolls/scroll-bound-red.webp", + "system": { + "description": "

As a downtime move, you can use a vial of blood to craft a Minor Health Potion.

", + "quantity": 1, + "actions": {} + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753637045921, + "modifiedTime": 1753637071130, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!PQxvxAVBbkt0TleC" +} diff --git a/src/packs/items/loot/loot_Minor_Stamina_Potion_Recipe_1TLpFsp3PLDsqoTw.json b/src/packs/items/loot/loot_Minor_Stamina_Potion_Recipe_1TLpFsp3PLDsqoTw.json new file mode 100644 index 00000000..d963d82d --- /dev/null +++ b/src/packs/items/loot/loot_Minor_Stamina_Potion_Recipe_1TLpFsp3PLDsqoTw.json @@ -0,0 +1,31 @@ +{ + "name": "Minor Stamina Potion Recipe", + "type": "loot", + "_id": "1TLpFsp3PLDsqoTw", + "img": "icons/sundries/scrolls/scroll-bound-green.webp", + "system": { + "description": "

As a downtime move, you can use the bone of a creature to craft a Minor Stamina Potion.

", + "quantity": 1, + "actions": {} + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753626639554, + "modifiedTime": 1753626666369, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!1TLpFsp3PLDsqoTw" +} diff --git a/src/packs/items/loot/loot_Mythic_Dust_Recipe_5YZls8XH3MB7twNa.json b/src/packs/items/loot/loot_Mythic_Dust_Recipe_5YZls8XH3MB7twNa.json new file mode 100644 index 00000000..2325a405 --- /dev/null +++ b/src/packs/items/loot/loot_Mythic_Dust_Recipe_5YZls8XH3MB7twNa.json @@ -0,0 +1,31 @@ +{ + "name": "Mythic Dust Recipe", + "type": "loot", + "_id": "5YZls8XH3MB7twNa", + "img": "icons/sundries/scrolls/scroll-bound-green.webp", + "system": { + "description": "

As a downtime move, you can use a handful of fine gold dust to craft Mythic Dust.

", + "quantity": 1, + "actions": {} + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753640163566, + "modifiedTime": 1753640190943, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!5YZls8XH3MB7twNa" +} diff --git a/src/packs/items/loot/loot_Paragon_s_Chain_F4hoRfvVdZq5bhhI.json b/src/packs/items/loot/loot_Paragon_s_Chain_F4hoRfvVdZq5bhhI.json new file mode 100644 index 00000000..f62b7895 --- /dev/null +++ b/src/packs/items/loot/loot_Paragon_s_Chain_F4hoRfvVdZq5bhhI.json @@ -0,0 +1,62 @@ +{ + "name": "Paragon’s Chain", + "type": "loot", + "_id": "F4hoRfvVdZq5bhhI", + "img": "icons/equipment/neck/choker-chain-thin-gold.webp", + "system": { + "description": "

As a downtime move, you can meditate on an ideal or principle you hold dear and focus your will into this chain.

Once per long rest, you can spend a Hope to roll a d20 as your Hope Die for rolls that directly align with that principle.

", + "quantity": 1, + "actions": { + "esnUuqMcvyOvI6PV": { + "type": "effect", + "_id": "esnUuqMcvyOvI6PV", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [ + { + "keyIsID": false, + "key": "hope", + "value": 1, + "scalable": false, + "step": null + } + ], + "uses": { + "value": null, + "max": 1, + "recovery": "longRest" + }, + "effects": [], + "target": { + "type": "any", + "amount": null + }, + "name": "Use", + "img": "icons/equipment/neck/choker-chain-thin-gold.webp", + "range": "" + } + } + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753638721391, + "modifiedTime": 1753638917868, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!F4hoRfvVdZq5bhhI" +} diff --git a/src/packs/items/loot/loot_Phoenix_Feather_QNtzJSVENww63THa.json b/src/packs/items/loot/loot_Phoenix_Feather_QNtzJSVENww63THa.json new file mode 100644 index 00000000..a51d206b --- /dev/null +++ b/src/packs/items/loot/loot_Phoenix_Feather_QNtzJSVENww63THa.json @@ -0,0 +1,31 @@ +{ + "name": "Phoenix Feather", + "type": "loot", + "_id": "QNtzJSVENww63THa", + "img": "icons/commodities/materials/feather-red.webp", + "system": { + "description": "

If you have at least one Phoenix Feather on you when you fall unconscious, you gain a +1 bonus to the roll you make to determine whether you gain a scar.

", + "quantity": 1, + "actions": {} + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753638285123, + "modifiedTime": 1753638336982, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!QNtzJSVENww63THa" +} diff --git a/src/packs/items/loot/loot_Piercing_Arrows_I63LTFD6GXHgyGpR.json b/src/packs/items/loot/loot_Piercing_Arrows_I63LTFD6GXHgyGpR.json new file mode 100644 index 00000000..152a15f3 --- /dev/null +++ b/src/packs/items/loot/loot_Piercing_Arrows_I63LTFD6GXHgyGpR.json @@ -0,0 +1,84 @@ +{ + "name": "Piercing Arrows", + "type": "loot", + "_id": "I63LTFD6GXHgyGpR", + "img": "icons/weapons/ammunition/arrow-broadhead-glowing-orange.webp", + "system": { + "description": "

Three times per rest when you succeed on an attack with one of these arrows, you can add your Proficiency to the damage roll.

", + "quantity": 1, + "actions": { + "0TomBo6UygDFhawG": { + "type": "damage", + "_id": "0TomBo6UygDFhawG", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": 3, + "recovery": "shortRest" + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": true, + "formula": "@prof" + }, + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null + }, + "applyTo": "hitPoints", + "type": [], + "base": false, + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + } + } + ], + "includeBase": false + }, + "target": { + "type": "any", + "amount": null + }, + "effects": [], + "name": "Use Arrow", + "img": "icons/weapons/ammunition/arrow-broadhead-glowing-orange.webp", + "range": "" + } + } + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753625947079, + "modifiedTime": 1753626142491, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!I63LTFD6GXHgyGpR" +} diff --git a/src/packs/items/loot/loot_Piper_Whistle_v4PIoCCEjeE3acys.json b/src/packs/items/loot/loot_Piper_Whistle_v4PIoCCEjeE3acys.json new file mode 100644 index 00000000..b0e2954c --- /dev/null +++ b/src/packs/items/loot/loot_Piper_Whistle_v4PIoCCEjeE3acys.json @@ -0,0 +1,31 @@ +{ + "name": "Piper Whistle", + "type": "loot", + "_id": "v4PIoCCEjeE3acys", + "img": "icons/tools/instruments/pipe-flue-tan.webp", + "system": { + "description": "

This handcrafted whistle has a distinctive sound. When you blow this whistle, its piercing tone can be heard within a 1-mile radius.

", + "quantity": 1, + "actions": {} + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753624968366, + "modifiedTime": 1753625011843, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!v4PIoCCEjeE3acys" +} diff --git a/src/packs/items/loot/loot_Portal_Seed_eRd5Gk7J7hPCqp11.json b/src/packs/items/loot/loot_Portal_Seed_eRd5Gk7J7hPCqp11.json new file mode 100644 index 00000000..4eb1e0d7 --- /dev/null +++ b/src/packs/items/loot/loot_Portal_Seed_eRd5Gk7J7hPCqp11.json @@ -0,0 +1,31 @@ +{ + "name": "Portal Seed", + "type": "loot", + "_id": "eRd5Gk7J7hPCqp11", + "img": "icons/commodities/treasure/egg-ornate-green-gold.webp", + "system": { + "description": "

You can plant this seed in the ground to grow a portal in that spot. The portal is ready to use in 24 hours. You can use this portal to travel to any other location where you planted a portal seed. A portal can be destroyed by dealing any amount of magic damage to it.

", + "quantity": 1, + "actions": {} + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753638512020, + "modifiedTime": 1753638586392, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!eRd5Gk7J7hPCqp11" +} diff --git a/src/packs/items/loot/loot_Premium_Bedroll_QGYPNBIufpBguwjC.json b/src/packs/items/loot/loot_Premium_Bedroll_QGYPNBIufpBguwjC.json new file mode 100644 index 00000000..9d90b78b --- /dev/null +++ b/src/packs/items/loot/loot_Premium_Bedroll_QGYPNBIufpBguwjC.json @@ -0,0 +1,93 @@ +{ + "name": "Premium Bedroll", + "type": "loot", + "_id": "QGYPNBIufpBguwjC", + "img": "icons/sundries/survival/bedroll-blue-red.webp", + "system": { + "description": "

During downtime, you automatically clear a Stress.

", + "quantity": 1, + "actions": { + "Xe0zhVbSzZLgX1nC": { + "type": "healing", + "_id": "Xe0zhVbSzZLgX1nC", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "target": { + "type": "any", + "amount": null + }, + "effects": [], + "healing": { + "applyTo": "hitPoints", + "resultBased": false, + "value": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + }, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + }, + "base": false, + "type": [] + }, + "roll": { + "type": null, + "trait": null, + "difficulty": null, + "bonus": null, + "advState": "neutral", + "diceRolling": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "compare": "above", + "treshold": 1 + }, + "useDefault": false + }, + "name": "Take a nap", + "img": "icons/sundries/survival/bedroll-blue-red.webp", + "range": "" + } + } + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753624827945, + "modifiedTime": 1753624908866, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!QGYPNBIufpBguwjC" +} diff --git a/src/packs/items/loot/loot_Ring_of_Resistance_aUqRifqR5JXXa1dN.json b/src/packs/items/loot/loot_Ring_of_Resistance_aUqRifqR5JXXa1dN.json new file mode 100644 index 00000000..f241cf1f --- /dev/null +++ b/src/packs/items/loot/loot_Ring_of_Resistance_aUqRifqR5JXXa1dN.json @@ -0,0 +1,54 @@ +{ + "name": "Ring of Resistance", + "type": "loot", + "_id": "aUqRifqR5JXXa1dN", + "img": "icons/equipment/finger/ring-shield-silver.webp", + "system": { + "description": "

Once per long rest, you can activate this ring after a successful attack against you to halve the damage.

", + "quantity": 1, + "actions": { + "4swwe8SZeh2KyPtl": { + "type": "effect", + "_id": "4swwe8SZeh2KyPtl", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": 1, + "recovery": "longRest" + }, + "effects": [], + "target": { + "type": "any", + "amount": null + }, + "name": "Activate", + "img": "icons/equipment/finger/ring-shield-silver.webp", + "range": "" + } + } + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753638222884, + "modifiedTime": 1753638266245, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!aUqRifqR5JXXa1dN" +} diff --git a/src/packs/items/loot/loot_Ring_of_Silence_K1ysGnTpNyxPu5Au.json b/src/packs/items/loot/loot_Ring_of_Silence_K1ysGnTpNyxPu5Au.json new file mode 100644 index 00000000..42129a61 --- /dev/null +++ b/src/packs/items/loot/loot_Ring_of_Silence_K1ysGnTpNyxPu5Au.json @@ -0,0 +1,62 @@ +{ + "name": "Ring of Silence", + "type": "loot", + "_id": "K1ysGnTpNyxPu5Au", + "img": "icons/equipment/finger/ring-ball-purple.webp", + "system": { + "description": "

Spend a Hope to activate this ring. Your footsteps are silent until your next rest.

", + "quantity": 1, + "actions": { + "Y4mvuJ4tncrKhyjY": { + "type": "effect", + "_id": "Y4mvuJ4tncrKhyjY", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [ + { + "keyIsID": false, + "key": "hope", + "value": 1, + "scalable": false, + "step": null + } + ], + "uses": { + "value": null, + "max": 1, + "recovery": "shortRest" + }, + "effects": [], + "target": { + "type": "any", + "amount": null + }, + "name": "Activate", + "img": "icons/equipment/finger/ring-ball-purple.webp", + "range": "" + } + } + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753637775628, + "modifiedTime": 1753637832657, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!K1ysGnTpNyxPu5Au" +} diff --git a/src/packs/items/loot/loot_Ring_of_Unbreakable_Resolve_kn71qCQY0DnjmQBJ.json b/src/packs/items/loot/loot_Ring_of_Unbreakable_Resolve_kn71qCQY0DnjmQBJ.json new file mode 100644 index 00000000..94f8bdec --- /dev/null +++ b/src/packs/items/loot/loot_Ring_of_Unbreakable_Resolve_kn71qCQY0DnjmQBJ.json @@ -0,0 +1,62 @@ +{ + "name": "Ring of Unbreakable Resolve", + "type": "loot", + "_id": "kn71qCQY0DnjmQBJ", + "img": "icons/equipment/finger/ring-faceted-gold-teal.webp", + "system": { + "description": "

Once per session, when the GM spends a Fear, you can spend 4 Hope to cancel the effects of that spent Fear.

", + "quantity": 1, + "actions": { + "R92d0DSVEwmqNJhM": { + "type": "effect", + "_id": "R92d0DSVEwmqNJhM", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [ + { + "scalable": false, + "key": "hope", + "value": 4, + "keyIsID": false, + "step": null + } + ], + "uses": { + "value": null, + "max": 1, + "recovery": "session" + }, + "effects": [], + "target": { + "type": "any", + "amount": null + }, + "name": "Use", + "img": "icons/equipment/finger/ring-faceted-gold-teal.webp", + "range": "" + } + } + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753640632212, + "modifiedTime": 1753640958684, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!kn71qCQY0DnjmQBJ" +} diff --git a/src/packs/items/loot/loot_Shard_of_Memory_2ULPgNyqCrxea0v0.json b/src/packs/items/loot/loot_Shard_of_Memory_2ULPgNyqCrxea0v0.json new file mode 100644 index 00000000..0291485e --- /dev/null +++ b/src/packs/items/loot/loot_Shard_of_Memory_2ULPgNyqCrxea0v0.json @@ -0,0 +1,62 @@ +{ + "name": "Shard of Memory", + "type": "loot", + "_id": "2ULPgNyqCrxea0v0", + "img": "icons/commodities/gems/gem-rough-navette-purple-pink.webp", + "system": { + "description": "

Once per long rest, you can spend 2 Hope to recall a domain card from your vault instead of paying its Recall

Cost.

", + "quantity": 1, + "actions": { + "YNRybKQC51muVHYH": { + "type": "effect", + "_id": "YNRybKQC51muVHYH", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [ + { + "scalable": false, + "key": "hope", + "value": 2, + "keyIsID": false, + "step": null + } + ], + "uses": { + "value": null, + "max": 1, + "recovery": "longRest" + }, + "effects": [], + "target": { + "type": "any", + "amount": null + }, + "name": "Use", + "img": "icons/commodities/gems/gem-rough-navette-purple-pink.webp", + "range": "" + } + } + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753640199098, + "modifiedTime": 1753640251763, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!2ULPgNyqCrxea0v0" +} diff --git a/src/packs/items/loot/loot_Skeleton_Key_edkNgwy4xghZreBa.json b/src/packs/items/loot/loot_Skeleton_Key_edkNgwy4xghZreBa.json new file mode 100644 index 00000000..4b480459 --- /dev/null +++ b/src/packs/items/loot/loot_Skeleton_Key_edkNgwy4xghZreBa.json @@ -0,0 +1,78 @@ +{ + "name": "Skeleton Key", + "type": "loot", + "_id": "edkNgwy4xghZreBa", + "img": "icons/sundries/misc/key-ornate-iron-black.webp", + "system": { + "description": "

When you use this key to open a locked door, you gain advantage on the Finesse Roll.

", + "quantity": 1, + "actions": { + "lV6W9M1CX6N8jSpt": { + "type": "attack", + "_id": "lV6W9M1CX6N8jSpt", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "damage": { + "parts": [], + "includeBase": false + }, + "target": { + "type": "any", + "amount": null + }, + "effects": [], + "roll": { + "type": "trait", + "trait": "finesse", + "difficulty": null, + "bonus": null, + "advState": "advantage", + "diceRolling": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "compare": "above", + "treshold": 1 + }, + "useDefault": false + }, + "save": { + "trait": null, + "difficulty": null, + "damageMod": "none" + }, + "name": "Use Key", + "img": "icons/sundries/misc/key-ornate-iron-black.webp", + "range": "" + } + } + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753626370278, + "modifiedTime": 1753626508104, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!edkNgwy4xghZreBa" +} diff --git a/src/packs/items/loot/loot_Speaking_Orbs_LZrG6CFiSjpLA2F1.json b/src/packs/items/loot/loot_Speaking_Orbs_LZrG6CFiSjpLA2F1.json new file mode 100644 index 00000000..1239b6ab --- /dev/null +++ b/src/packs/items/loot/loot_Speaking_Orbs_LZrG6CFiSjpLA2F1.json @@ -0,0 +1,31 @@ +{ + "name": "Speaking Orbs", + "type": "loot", + "_id": "LZrG6CFiSjpLA2F1", + "img": "icons/commodities/materials/glass-orb-blue-gold.webp", + "system": { + "description": "

This pair of orbs allows any creatures holding them to communicate with each other across any distance.

", + "quantity": 1, + "actions": {} + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753625222662, + "modifiedTime": 1753625327080, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!LZrG6CFiSjpLA2F1" +} diff --git a/src/packs/items/loot/loot_Stride_Relic_FfJISMzYATaPQPLc.json b/src/packs/items/loot/loot_Stride_Relic_FfJISMzYATaPQPLc.json new file mode 100644 index 00000000..f4257e16 --- /dev/null +++ b/src/packs/items/loot/loot_Stride_Relic_FfJISMzYATaPQPLc.json @@ -0,0 +1,76 @@ +{ + "name": "Stride Relic", + "type": "loot", + "_id": "FfJISMzYATaPQPLc", + "img": "icons/commodities/treasure/token-runed-ing-brown.webp", + "system": { + "description": "

You gain a +1 bonus to your Agility. You can only carry one relic.

", + "quantity": 1, + "actions": {} + }, + "effects": [ + { + "name": "Stride Relic", + "type": "base", + "_id": "7lHIbMyCDonSxSZf", + "img": "icons/magic/life/heart-cross-blue.webp", + "system": {}, + "changes": [ + { + "key": "system.traits.agility.value", + "mode": 2, + "value": "1", + "priority": null + } + ], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "", + "origin": null, + "tint": "#ffffff", + "transfer": true, + "statuses": [], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753639435741, + "modifiedTime": 1753639579370, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items.effects!FfJISMzYATaPQPLc.7lHIbMyCDonSxSZf" + } + ], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753639376996, + "modifiedTime": 1753639432017, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!FfJISMzYATaPQPLc" +} diff --git a/src/packs/items/loot/loot_Suspended_Rod_nnj12RiFanq7s5zv.json b/src/packs/items/loot/loot_Suspended_Rod_nnj12RiFanq7s5zv.json new file mode 100644 index 00000000..83ca772a --- /dev/null +++ b/src/packs/items/loot/loot_Suspended_Rod_nnj12RiFanq7s5zv.json @@ -0,0 +1,31 @@ +{ + "name": "Suspended Rod", + "type": "loot", + "_id": "nnj12RiFanq7s5zv", + "img": "icons/commodities/tech/pipe-metal.webp", + "system": { + "description": "

This flat rod is inscribed with runes. When you activate the rod, it is immediately suspended in place. Until the rod is deactivated, it can’t move, doesn’t abide by the rules of gravity, and remains in place.

", + "quantity": 1, + "actions": {} + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753625627433, + "modifiedTime": 1753625765676, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!nnj12RiFanq7s5zv" +} diff --git a/src/packs/items/loot/loot_Valorstone_7yywua9TmQ4WP5WH.json b/src/packs/items/loot/loot_Valorstone_7yywua9TmQ4WP5WH.json new file mode 100644 index 00000000..6970a396 --- /dev/null +++ b/src/packs/items/loot/loot_Valorstone_7yywua9TmQ4WP5WH.json @@ -0,0 +1,31 @@ +{ + "name": "Valorstone", + "type": "loot", + "_id": "7yywua9TmQ4WP5WH", + "img": "icons/commodities/treasure/token-engraved-spiral-grey-white.webp", + "system": { + "description": "

You can attach this stone to armor that doesn’t already have a feature. The armor gains the following feature.

Resilient: Before you mark your last Armor Slot, roll a d6. On a result of 6, reduce the severity by one threshold without marking an Armor Slot.

", + "quantity": 1, + "actions": {} + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753626167593, + "modifiedTime": 1753626237350, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!7yywua9TmQ4WP5WH" +} diff --git a/src/packs/items/loot/loot_Vial_of_Darksmoke_Recipe_MhCo8i0cRXzdnXbA.json b/src/packs/items/loot/loot_Vial_of_Darksmoke_Recipe_MhCo8i0cRXzdnXbA.json new file mode 100644 index 00000000..d9ad7e17 --- /dev/null +++ b/src/packs/items/loot/loot_Vial_of_Darksmoke_Recipe_MhCo8i0cRXzdnXbA.json @@ -0,0 +1,31 @@ +{ + "name": "Vial of Darksmoke Recipe", + "type": "loot", + "_id": "MhCo8i0cRXzdnXbA", + "img": "icons/sundries/scrolls/scroll-bound-black-brown.webp", + "system": { + "description": "

As a downtime move, you can mark a Stress to craft a Vial of Darksmoke.

", + "quantity": 1, + "actions": {} + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753637508452, + "modifiedTime": 1753637524868, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!MhCo8i0cRXzdnXbA" +} diff --git a/src/packs/items/loot/loot_Woven_Net_ARuv48PWUGJGBC4n.json b/src/packs/items/loot/loot_Woven_Net_ARuv48PWUGJGBC4n.json new file mode 100644 index 00000000..3013f603 --- /dev/null +++ b/src/packs/items/loot/loot_Woven_Net_ARuv48PWUGJGBC4n.json @@ -0,0 +1,155 @@ +{ + "name": "Woven Net", + "type": "loot", + "_id": "ARuv48PWUGJGBC4n", + "img": "icons/tools/fishing/net-tan.webp", + "system": { + "description": "

You can make a Finesse Roll using this net to trap a small creature. A trapped target can break free with a successful Attack Roll (16).

", + "quantity": 1, + "actions": { + "yv0l43uUDB2gWFd1": { + "type": "attack", + "_id": "yv0l43uUDB2gWFd1", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "damage": { + "parts": [], + "includeBase": false + }, + "target": { + "type": "any", + "amount": null + }, + "effects": [ + { + "_id": "nY2UFMPZdoSUr6Ps", + "onSave": false + } + ], + "roll": { + "type": "trait", + "trait": "finesse", + "difficulty": null, + "bonus": null, + "advState": "neutral", + "diceRolling": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "compare": "above", + "treshold": 1 + }, + "useDefault": false + }, + "save": { + "trait": null, + "difficulty": null, + "damageMod": "none" + }, + "name": "Throw", + "img": "icons/tools/fishing/net-tan.webp", + "range": "" + } + } + }, + "effects": [ + { + "name": "Woven Net", + "img": "icons/tools/fishing/net-tan.webp", + "origin": "Compendium.daggerheart.loot.Item.ARuv48PWUGJGBC4n", + "transfer": false, + "_id": "KjAianGutrQuJNs3", + "type": "base", + "system": {}, + "changes": [], + "disabled": false, + "duration": { + "startTime": null, + "combat": null + }, + "description": "", + "tint": "#ffffff", + "statuses": [], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753625489813, + "modifiedTime": 1753625489813, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items.effects!ARuv48PWUGJGBC4n.KjAianGutrQuJNs3" + }, + { + "name": "Woven Net", + "img": "icons/tools/fishing/net-tan.webp", + "origin": "Compendium.daggerheart.loot.Item.ARuv48PWUGJGBC4n", + "transfer": false, + "_id": "nY2UFMPZdoSUr6Ps", + "type": "base", + "system": {}, + "changes": [], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "", + "tint": "#ffffff", + "statuses": [ + "restrained" + ], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753625550909, + "modifiedTime": 1753625559732, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items.effects!ARuv48PWUGJGBC4n.nY2UFMPZdoSUr6Ps" + } + ], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "OFxauskoxcvVTVNA": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753625403538, + "modifiedTime": 1753625550934, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, + "_key": "!items!ARuv48PWUGJGBC4n" +} From 187a0dc090940526097fd0f4e2ea289f4dd1b493 Mon Sep 17 00:00:00 2001 From: WBHarry <89362246+WBHarry@users.noreply.github.com> Date: Sun, 27 Jul 2025 21:26:28 +0200 Subject: [PATCH 10/14] [Feature] Beastform Compendium (#434) * Various fixes * Added fixes to make beastforms work * . * Added all SRD beastforms --- daggerheart.mjs | 4 +- lang/en.json | 83 ++++++--- .../applications/dialogs/beastformDialog.mjs | 4 +- .../sheets/api/application-mixin.mjs | 9 +- module/applications/sheets/api/base-item.mjs | 20 ++- module/applications/ui/chatLog.mjs | 4 +- module/config/actionConfig.mjs | 2 +- module/data/action/baseAction.mjs | 6 +- module/data/action/beastformAction.mjs | 6 +- module/data/actor/base.mjs | 33 +++- module/data/actor/character.mjs | 31 +++- module/data/fields/action/rollField.mjs | 35 +++- module/data/fields/formulaField.mjs | 8 +- module/data/item/armor.mjs | 1 - module/data/item/beastform.mjs | 27 +-- module/enrichers/DualityRollEnricher.mjs | 8 +- module/helpers/utils.mjs | 4 +- ...eastform_Agile_Scout_a9UoCwtrbgKk02mK.json | 133 +++++++++++++++ ...orm_Aquatic_Predator_ItBVeCl2u5uetgy7.json | 138 +++++++++++++++ ...stform_Aquatic_Scout_qqzdFCxyYupWZK23.json | 132 +++++++++++++++ ...tform_Armored_Sentry_8pUHJv3BYdjA4Qdf.json | 138 +++++++++++++++ ...m_Epic_Aquatic_Beast_wT4xbF99I55yjKZV.json | 141 ++++++++++++++++ ...tform_Great_Predator_afbMt4Ld6nY3mw0N.json | 138 +++++++++++++++ ...m_Great_Winged_Beast_b4BMnTbJ3iPPidSb.json | 138 +++++++++++++++ ...orm_Household_Friend_iDmOtiHJJ80AIAVT.json | 132 +++++++++++++++ ...form_Legendary_Beast_mqP6z4Wg4K3oDAom.json | 108 ++++++++++++ ...orm_Legendary_Hybrid_rRUtgcUjimlpPhnn.json | 126 ++++++++++++++ ...orm_Massive_Behemoth_qjwMzPn33aKZACkv.json | 142 ++++++++++++++++ ...stform_Mighty_Lizard_94tvcC3D5Kp4lzuN.json | 138 +++++++++++++++ ...tform_Mighty_Strider_zRLjqKx4Rn2TjivL.json | 138 +++++++++++++++ ...Mythic_Aerial_Hunter_jV6EuEacyQlHW4SN.json | 141 ++++++++++++++++ ...astform_Mythic_Beast_kObobka52JdpWBSu.json | 114 +++++++++++++ ...stform_Mythic_Hybrid_WAbxCf2An8qmxyJ1.json | 126 ++++++++++++++ ...stform_Nimble_Grazer_CItO8yX6amQaqyk7.json | 132 +++++++++++++++ ...stform_Pack_Predator_YLisKYYhAGca50WM.json | 138 +++++++++++++++ ...rm_Pouncing_Predator_33oFSZ1PwFqInHPe.json | 138 +++++++++++++++ ...tform_Powerful_Beast_m8BVTuJI1wCvzTcf.json | 138 +++++++++++++++ ...rm_Stalking_Arachnid_A4TVRY0D5r9EiVwA.json | 138 +++++++++++++++ ...orm_Striking_Serpent_1XrZWGDttBAAUxR1.json | 138 +++++++++++++++ ...form_Terrible_Lizard_5BABxRe2XVrYTj8N.json | 141 ++++++++++++++++ ...astform_Winged_Beast_mZ4Wlqtss2FlNNvL.json | 138 +++++++++++++++ .../feature_Agile_xLS5YT1B6yeCiNTg.json | 65 +++++++ .../feature_Aquatic_kQWWx9P3fCyGSVOI.json | 34 ++++ ...eature_Armored_Shell_nDQZdIF2epKlhauX.json | 155 +++++++++++++++++ ...ture_Bird_s_Eye_View_FNKQlWQcArSorMPK.json | 57 +++++++ .../feature_Cannonball_jp5KpPRBFBOIs46Q.json | 87 ++++++++++ .../feature_Carrier_EVOJTskJYf4rpuga.json | 34 ++++ .../feature_Companion_jhWSC5bNZyYUAA5Q.json | 34 ++++ ...eature_Deadly_Raptor_QQtQ77tos8ijTHag.json | 34 ++++ .../feature_Demolish_DfBXO8jTchwFG8dZ.json | 157 +++++++++++++++++ ..._Devastating_Strikes_HJbQcKWcFZ9NoFxs.json | 65 +++++++ ...feature_Elusive_Prey_a7Qvmm14nx9BCysA.json | 89 ++++++++++ .../feature_Fleet_GhHsSHOa509cwCvr.json | 65 +++++++ .../feature_Fragile_QFg1hNCEoKVDd9Zo.json | 34 ++++ ...ture_Hobbling_Strike_8u0HkK3WgtU9lWYs.json | 110 ++++++++++++ ...feature_Hollow_Bones_xVgmXhj2YgeqS1KK.json | 83 +++++++++ ...ature_Massive_Stride_9QkZSeuEKgXtlpHc.json | 34 ++++ ...feature_Ocean_Master_tGDdEH40wyOCsFmH.json | 100 +++++++++++ ...feature_Pack_Hunting_d3q8lfeiEMyTjusT.json | 34 ++++ ...ure_Physical_Defense_StabkQ3BzWRZa8Tz.json | 83 +++++++++ .../feature_Rampage_8upqfcZvi7b5hRLE.json | 70 ++++++++ ...ture_Snapping_Strike_Ky3rZD3sJMXYZOBC.json | 109 ++++++++++++ .../feature_Takedown_0ey4kM9ssj2otHvb.json | 158 ++++++++++++++++++ .../feature_Thick_Hide_ZYbdXaWVj2zdcmaK.json | 83 +++++++++ .../feature_Trample_A0lgd6eVEfX6oqSB.json | 157 +++++++++++++++++ .../feature_Undaunted_ODudjX88Te4vDP57.json | 83 +++++++++ .../feature_Unyielding_vEAQ4cfsoPmOv2Gg.json | 81 +++++++++ ...eature_Venomous_Bite_2KlTnfzO03vneVS8.json | 99 +++++++++++ ...ture_Venomous_Strike_uW3853pViM9VAfHb.json | 122 ++++++++++++++ ...feature_Vicious_Maul_jYUBi7yLHap5ljpa.json | 138 +++++++++++++++ ...feature_Warning_Hiss_cTlqpQZPy5TvdDAT.json | 65 +++++++ .../feature_Webslinger_D73fS1iM4SZPFimu.json | 125 ++++++++++++++ ...s_Beastform_Features_uU8bIoZvXge0rLaU.json | 23 +++ .../folders_Tier_1_nhnRdZgSSrE9myIX.json | 23 +++ .../folders_Tier_2_Rd30i5G7Pg0HtEUT.json | 23 +++ .../folders_Tier_3_9uPPuDAUXrVYquTw.json | 23 +++ .../folders_Tier_4_UQEr5SAm2Z1Aih1S.json | 23 +++ templates/actionTypes/roll.hbs | 6 +- .../partials/inventory-fieldset-items-V2.hbs | 2 +- templates/ui/chat/duality-roll.hbs | 2 +- 80 files changed, 6189 insertions(+), 89 deletions(-) create mode 100644 src/packs/beastforms/beastform_Agile_Scout_a9UoCwtrbgKk02mK.json create mode 100644 src/packs/beastforms/beastform_Aquatic_Predator_ItBVeCl2u5uetgy7.json create mode 100644 src/packs/beastforms/beastform_Aquatic_Scout_qqzdFCxyYupWZK23.json create mode 100644 src/packs/beastforms/beastform_Armored_Sentry_8pUHJv3BYdjA4Qdf.json create mode 100644 src/packs/beastforms/beastform_Epic_Aquatic_Beast_wT4xbF99I55yjKZV.json create mode 100644 src/packs/beastforms/beastform_Great_Predator_afbMt4Ld6nY3mw0N.json create mode 100644 src/packs/beastforms/beastform_Great_Winged_Beast_b4BMnTbJ3iPPidSb.json create mode 100644 src/packs/beastforms/beastform_Household_Friend_iDmOtiHJJ80AIAVT.json create mode 100644 src/packs/beastforms/beastform_Legendary_Beast_mqP6z4Wg4K3oDAom.json create mode 100644 src/packs/beastforms/beastform_Legendary_Hybrid_rRUtgcUjimlpPhnn.json create mode 100644 src/packs/beastforms/beastform_Massive_Behemoth_qjwMzPn33aKZACkv.json create mode 100644 src/packs/beastforms/beastform_Mighty_Lizard_94tvcC3D5Kp4lzuN.json create mode 100644 src/packs/beastforms/beastform_Mighty_Strider_zRLjqKx4Rn2TjivL.json create mode 100644 src/packs/beastforms/beastform_Mythic_Aerial_Hunter_jV6EuEacyQlHW4SN.json create mode 100644 src/packs/beastforms/beastform_Mythic_Beast_kObobka52JdpWBSu.json create mode 100644 src/packs/beastforms/beastform_Mythic_Hybrid_WAbxCf2An8qmxyJ1.json create mode 100644 src/packs/beastforms/beastform_Nimble_Grazer_CItO8yX6amQaqyk7.json create mode 100644 src/packs/beastforms/beastform_Pack_Predator_YLisKYYhAGca50WM.json create mode 100644 src/packs/beastforms/beastform_Pouncing_Predator_33oFSZ1PwFqInHPe.json create mode 100644 src/packs/beastforms/beastform_Powerful_Beast_m8BVTuJI1wCvzTcf.json create mode 100644 src/packs/beastforms/beastform_Stalking_Arachnid_A4TVRY0D5r9EiVwA.json create mode 100644 src/packs/beastforms/beastform_Striking_Serpent_1XrZWGDttBAAUxR1.json create mode 100644 src/packs/beastforms/beastform_Terrible_Lizard_5BABxRe2XVrYTj8N.json create mode 100644 src/packs/beastforms/beastform_Winged_Beast_mZ4Wlqtss2FlNNvL.json create mode 100644 src/packs/beastforms/feature_Agile_xLS5YT1B6yeCiNTg.json create mode 100644 src/packs/beastforms/feature_Aquatic_kQWWx9P3fCyGSVOI.json create mode 100644 src/packs/beastforms/feature_Armored_Shell_nDQZdIF2epKlhauX.json create mode 100644 src/packs/beastforms/feature_Bird_s_Eye_View_FNKQlWQcArSorMPK.json create mode 100644 src/packs/beastforms/feature_Cannonball_jp5KpPRBFBOIs46Q.json create mode 100644 src/packs/beastforms/feature_Carrier_EVOJTskJYf4rpuga.json create mode 100644 src/packs/beastforms/feature_Companion_jhWSC5bNZyYUAA5Q.json create mode 100644 src/packs/beastforms/feature_Deadly_Raptor_QQtQ77tos8ijTHag.json create mode 100644 src/packs/beastforms/feature_Demolish_DfBXO8jTchwFG8dZ.json create mode 100644 src/packs/beastforms/feature_Devastating_Strikes_HJbQcKWcFZ9NoFxs.json create mode 100644 src/packs/beastforms/feature_Elusive_Prey_a7Qvmm14nx9BCysA.json create mode 100644 src/packs/beastforms/feature_Fleet_GhHsSHOa509cwCvr.json create mode 100644 src/packs/beastforms/feature_Fragile_QFg1hNCEoKVDd9Zo.json create mode 100644 src/packs/beastforms/feature_Hobbling_Strike_8u0HkK3WgtU9lWYs.json create mode 100644 src/packs/beastforms/feature_Hollow_Bones_xVgmXhj2YgeqS1KK.json create mode 100644 src/packs/beastforms/feature_Massive_Stride_9QkZSeuEKgXtlpHc.json create mode 100644 src/packs/beastforms/feature_Ocean_Master_tGDdEH40wyOCsFmH.json create mode 100644 src/packs/beastforms/feature_Pack_Hunting_d3q8lfeiEMyTjusT.json create mode 100644 src/packs/beastforms/feature_Physical_Defense_StabkQ3BzWRZa8Tz.json create mode 100644 src/packs/beastforms/feature_Rampage_8upqfcZvi7b5hRLE.json create mode 100644 src/packs/beastforms/feature_Snapping_Strike_Ky3rZD3sJMXYZOBC.json create mode 100644 src/packs/beastforms/feature_Takedown_0ey4kM9ssj2otHvb.json create mode 100644 src/packs/beastforms/feature_Thick_Hide_ZYbdXaWVj2zdcmaK.json create mode 100644 src/packs/beastforms/feature_Trample_A0lgd6eVEfX6oqSB.json create mode 100644 src/packs/beastforms/feature_Undaunted_ODudjX88Te4vDP57.json create mode 100644 src/packs/beastforms/feature_Unyielding_vEAQ4cfsoPmOv2Gg.json create mode 100644 src/packs/beastforms/feature_Venomous_Bite_2KlTnfzO03vneVS8.json create mode 100644 src/packs/beastforms/feature_Venomous_Strike_uW3853pViM9VAfHb.json create mode 100644 src/packs/beastforms/feature_Vicious_Maul_jYUBi7yLHap5ljpa.json create mode 100644 src/packs/beastforms/feature_Warning_Hiss_cTlqpQZPy5TvdDAT.json create mode 100644 src/packs/beastforms/feature_Webslinger_D73fS1iM4SZPFimu.json create mode 100644 src/packs/beastforms/folders_Beastform_Features_uU8bIoZvXge0rLaU.json create mode 100644 src/packs/beastforms/folders_Tier_1_nhnRdZgSSrE9myIX.json create mode 100644 src/packs/beastforms/folders_Tier_2_Rd30i5G7Pg0HtEUT.json create mode 100644 src/packs/beastforms/folders_Tier_3_9uPPuDAUXrVYquTw.json create mode 100644 src/packs/beastforms/folders_Tier_4_UQEr5SAm2Z1Aih1S.json diff --git a/daggerheart.mjs b/daggerheart.mjs index fb743553..20557fde 100644 --- a/daggerheart.mjs +++ b/daggerheart.mjs @@ -196,9 +196,9 @@ Hooks.on('chatMessage', (_, message) => { const traitValue = rollCommand.trait?.toLowerCase(); const advantage = rollCommand.advantage - ? CONFIG.DH.ACTIONS.advandtageState.advantage.value + ? CONFIG.DH.ACTIONS.advantageState.advantage.value : rollCommand.disadvantage - ? CONFIG.DH.ACTIONS.advandtageState.disadvantage.value + ? CONFIG.DH.ACTIONS.advantageState.disadvantage.value : undefined; const difficulty = rollCommand.difficulty; diff --git a/lang/en.json b/lang/en.json index 270d7dda..a5f145ad 100755 --- a/lang/en.json +++ b/lang/en.json @@ -28,26 +28,6 @@ }, "DAGGERHEART": { "ACTIONS": { - "Config": { - "beastform": { - "exact": "Beastform Max Tier", - "exactHint": "The Character's Tier is used if empty", - "label": "Beastform" - }, - "displayInChat": "Display in chat" - }, - "Settings": { - "attackBonus": "Attack Bonus", - "attackName": "Attack Name", - "includeBase": { "label": "Include Item Damage" }, - "multiplier": "Multiplier", - "resultBased": { - "label": "Formula based on Hope/Fear result." - }, - "applyTo": { - "label": "Targeted Resource" - } - }, "TYPES": { "attack": { "name": "Attack", @@ -77,6 +57,35 @@ "name": "Summon", "tooltip": "Create tokens in the scene." } + }, + "Config": { + "beastform": { + "exact": "Beastform Max Tier", + "exactHint": "The Character's Tier is used if empty", + "label": "Beastform" + }, + "displayInChat": "Display in chat" + }, + "RollField": { + "diceRolling": { + "compare": "Should be", + "dice": "Dice Type", + "flatMultiplier": "Flat Multiplier", + "multiplier": "Dice Number", + "threshold": "Threshold" + } + }, + "Settings": { + "attackBonus": "Attack Bonus", + "attackName": "Attack Name", + "includeBase": { "label": "Include Item Damage" }, + "multiplier": "Multiplier", + "resultBased": { + "label": "Formula based on Hope/Fear result." + }, + "applyTo": { + "label": "Targeted Resource" + } } }, "ACTORS": { @@ -1107,10 +1116,30 @@ }, "DamageResistance": { "none": "None", - "resistance": "Resistance", - "immunity": "Immunity", - "physicalReduction": "Physical Damage Reduction", - "magicalReduction": "Magical Damage Reduction" + "physicalResistance": { + "label": "Damage Resistance: Physical", + "hint": "Physical Damage is halved if this is set to 1" + }, + "magicalResistance": { + "label": "Damage Resistance: Magical", + "hint": "Magical Damage is halved if this is set to 1" + }, + "physicalImmunity": { + "label": "Damage Immunity: Physical", + "hint": "Immune to Physical Damage if this is set to 1" + }, + "magicalImmunity": { + "label": "Damage Immunity: Magical", + "hint": "Immune to Magical Damage if this is set to 1" + }, + "physicalReduction": { + "label": "Damage Reduction: Physical", + "hint": "Physical Damage is reduced by the amount set here" + }, + "magicalReduction": { + "label": "Damage Reduction: Magical", + "hint": "Magical Damage is reduced by the amount set here" + } }, "DamageThresholds": { "title": "Damage Thresholds", @@ -1243,7 +1272,11 @@ }, "attack": { "damage": { - "value": { "label": "Base Attack: Damage" } + "dice": { + "label": "Base Attack: Damage Dice Index", + "hint": "Index for the damage dice used on the basic attack. 0=d4, 1=d6, 2=d8, 3=d10, 4=d12, 5=d20" + }, + "bonus": { "label": "Base Attack: Damage Bonus" } }, "roll": { "trait": { "label": "Base Attack: Trait" } diff --git a/module/applications/dialogs/beastformDialog.mjs b/module/applications/dialogs/beastformDialog.mjs index 3c35b542..35bac11c 100644 --- a/module/applications/dialogs/beastformDialog.mjs +++ b/module/applications/dialogs/beastformDialog.mjs @@ -123,13 +123,15 @@ export default class BeastformDialog extends HandlebarsApplicationMixin(Applicat ); const compendiumBeastforms = await game.packs.get(`daggerheart.beastforms`)?.getDocuments(); - const beastformTiers = [...(compendiumBeastforms ? compendiumBeastforms : []), ...game.items].reduce( + const beastformTiers = [...game.items, ...(compendiumBeastforms ? compendiumBeastforms : [])].reduce( (acc, x) => { const tier = CONFIG.DH.GENERAL.tiers[x.system.tier]; if (x.type !== 'beastform' || tier.id > this.configData.tierLimit) return acc; if (!acc[tier.id]) acc[tier.id] = { label: game.i18n.localize(tier.label), values: {} }; + if (Object.values(acc[tier.id].values).find(existing => existing.value.name === x.name)) return acc; + acc[tier.id].values[x.uuid] = { selected: this.selected?.uuid == x.uuid, value: x, diff --git a/module/applications/sheets/api/application-mixin.mjs b/module/applications/sheets/api/application-mixin.mjs index b1b335fc..50c93617 100644 --- a/module/applications/sheets/api/application-mixin.mjs +++ b/module/applications/sheets/api/application-mixin.mjs @@ -123,7 +123,14 @@ export default function DHApplicationMixin(Base) { /**@inheritdoc */ async _onFirstRender(context, options) { await super._onFirstRender(context, options); - this.relatedDocs.filter(doc => doc).map(doc => (doc.apps[this.id] = this)); + + const docs = []; + for (var docData of this.relatedDocs) { + const doc = await foundry.utils.fromUuid(docData.uuid); + docs.push(doc); + } + + docs.filter(doc => doc).map(doc => (doc.apps[this.id] = this)); if (!!this.options.contextMenus.length) this._createContextMenus(); } diff --git a/module/applications/sheets/api/base-item.mjs b/module/applications/sheets/api/base-item.mjs index 22f7c880..ed63956b 100644 --- a/module/applications/sheets/api/base-item.mjs +++ b/module/applications/sheets/api/base-item.mjs @@ -249,12 +249,20 @@ export default class DHBaseItemSheet extends DHApplicationMixin(ItemSheetV2) { const target = event.target.closest('fieldset.drop-section'); const item = await fromUuid(data.uuid); if (item?.type === 'feature') { - await this.document.update({ - 'system.features': [...this.document.system.features, { type: target.dataset.type, item }].map(x => ({ - ...x, - item: x.item?.uuid - })) - }); + 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 + }) + ) + }); + } else { + await this.document.update({ + 'system.features': [...this.document.system.features, item].map(x => x.uuid) + }); + } } } } diff --git a/module/applications/ui/chatLog.mjs b/module/applications/ui/chatLog.mjs index 2547a47c..8af11249 100644 --- a/module/applications/ui/chatLog.mjs +++ b/module/applications/ui/chatLog.mjs @@ -66,8 +66,8 @@ export default class DhpChatLog extends foundry.applications.sidebar.tabs.ChatLo super.close(options); } - async getActor(id) { - return await fromUuid(id); + async getActor(uuid) { + return await foundry.utils.fromUuid(uuid); } getAction(actor, itemId, actionId) { diff --git a/module/config/actionConfig.mjs b/module/config/actionConfig.mjs index f6fa41f6..1f1ebf8b 100644 --- a/module/config/actionConfig.mjs +++ b/module/config/actionConfig.mjs @@ -108,7 +108,7 @@ export const diceCompare = { } }; -export const advandtageState = { +export const advantageState = { disadvantage: { label: 'DAGGERHEART.GENERAL.Disadvantage.full', value: -1 diff --git a/module/data/action/baseAction.mjs b/module/data/action/baseAction.mjs index 8b9888f5..67e0e00b 100644 --- a/module/data/action/baseAction.mjs +++ b/module/data/action/baseAction.mjs @@ -164,7 +164,8 @@ export default class DHBaseAction extends ActionMixin(foundry.abstract.DataModel title: this.item.name, source: { item: this.item._id, - action: this._id + action: this._id, + actor: this.actor.uuid }, dialog: {}, type: this.type, @@ -191,7 +192,7 @@ export default class DHBaseAction extends ActionMixin(foundry.abstract.DataModel difficulty: this.roll?.difficulty, formula: this.roll.getFormula(), bonus: this.roll.bonus, - advantage: CONFIG.DH.ACTIONS.advandtageState[this.roll.advState].value + advantage: CONFIG.DH.ACTIONS.advantageState[this.roll.advState].value }; if (this.roll?.type === 'diceSet') roll.lite = true; @@ -256,6 +257,7 @@ export default class DHBaseAction extends ActionMixin(foundry.abstract.DataModel /* EFFECTS */ async applyEffects(event, data, targets) { targets ??= data.system.targets; + const force = true; /* Where should this come from? */ if (!this.effects?.length || !targets.length) return; let effects = this.effects; targets.forEach(async token => { diff --git a/module/data/action/beastformAction.mjs b/module/data/action/beastformAction.mjs index ad09e2fb..ee5f3c6a 100644 --- a/module/data/action/beastformAction.mjs +++ b/module/data/action/beastformAction.mjs @@ -4,15 +4,13 @@ import DHBaseAction from './baseAction.mjs'; export default class DhBeastformAction extends DHBaseAction { static extraSchemas = [...super.extraSchemas, 'beastform']; - async use(event, ...args) { + async use(_event, ...args) { const beastformConfig = this.prepareBeastformConfig(); const abort = await this.handleActiveTransformations(); if (abort) return; - const item = args[0]; - - const { selected, evolved, hybrid } = await BeastformDialog.configure(beastformConfig, item); + const { selected, evolved, hybrid } = await BeastformDialog.configure(beastformConfig, this.item); if (!selected) return; await this.transform(selected, evolved, hybrid); diff --git a/module/data/actor/base.mjs b/module/data/actor/base.mjs index 19de7b06..1f4060b0 100644 --- a/module/data/actor/base.mjs +++ b/module/data/actor/base.mjs @@ -1,10 +1,23 @@ import DHBaseActorSettings from '../../applications/sheets/api/actor-setting.mjs'; -const resistanceField = reductionLabel => +const resistanceField = (resistanceLabel, immunityLabel, reductionLabel) => new foundry.data.fields.SchemaField({ - resistance: new foundry.data.fields.BooleanField({ initial: false }), - immunity: new foundry.data.fields.BooleanField({ initial: false }), - reduction: new foundry.data.fields.NumberField({ integer: true, initial: 0, label: reductionLabel }) + resistance: new foundry.data.fields.BooleanField({ + initial: false, + label: `${resistanceLabel}.label`, + hint: `${resistanceLabel}.hint` + }), + immunity: new foundry.data.fields.BooleanField({ + initial: false, + label: `${immunityLabel}.label`, + hint: `${immunityLabel}.hint` + }), + reduction: new foundry.data.fields.NumberField({ + integer: true, + initial: 0, + label: `${reductionLabel}.label`, + hint: `${reductionLabel}.hint` + }) }); /** @@ -40,8 +53,16 @@ export default class BaseDataActor extends foundry.abstract.TypeDataModel { if (this.metadata.isNPC) schema.description = new fields.HTMLField({ required: true, nullable: true }); if (this.metadata.hasResistances) schema.resistance = new fields.SchemaField({ - physical: resistanceField('DAGGERHEART.GENERAL.DamageResistance.physicalReduction'), - magical: resistanceField('DAGGERHEART.GENERAL.DamageResistance.magicalReduction') + physical: resistanceField( + 'DAGGERHEART.GENERAL.DamageResistance.physicalResistance', + 'DAGGERHEART.GENERAL.DamageResistance.physicalImmunity', + 'DAGGERHEART.GENERAL.DamageResistance.physicalReduction' + ), + magical: resistanceField( + 'DAGGERHEART.GENERAL.DamageResistance.magicalResistance', + 'DAGGERHEART.GENERAL.DamageResistance.magicalImmunity', + 'DAGGERHEART.GENERAL.DamageResistance.magicalReduction' + ) }); return schema; } diff --git a/module/data/actor/character.mjs b/module/data/actor/character.mjs index 5cd63e84..989e4519 100644 --- a/module/data/actor/character.mjs +++ b/module/data/actor/character.mjs @@ -45,12 +45,12 @@ export default class DhCharacter extends BaseDataActor { severe: new fields.NumberField({ integer: true, initial: 0, - label: 'DAGGERHEART.GENERAL.DamageThresholds.majorThreshold' + label: 'DAGGERHEART.GENERAL.DamageThresholds.severeThreshold' }), major: new fields.NumberField({ integer: true, initial: 0, - label: 'DAGGERHEART.GENERAL.DamageThresholds.severeThreshold' + label: 'DAGGERHEART.GENERAL.DamageThresholds.majorThreshold' }) }), experiences: new fields.TypedObjectField( @@ -112,7 +112,7 @@ export default class DhCharacter extends BaseDataActor { value: { custom: { enabled: true, - formula: '@system.rules.attack.damage.value' + formula: '@profd4' } } } @@ -244,10 +244,19 @@ export default class DhCharacter extends BaseDataActor { }), attack: new fields.SchemaField({ damage: new fields.SchemaField({ - value: new fields.StringField({ + diceIndex: new fields.NumberField({ + integer: true, + min: 0, + max: 5, + initial: 0, + label: 'DAGGERHEART.GENERAL.Rules.attack.damage.dice.label', + hint: 'DAGGERHEART.GENERAL.Rules.attack.damage.dice.hint' + }), + bonus: new fields.NumberField({ required: true, - initial: '@profd4', - label: 'DAGGERHEART.GENERAL.Rules.attack.damage.value.label' + initial: 0, + min: 0, + label: 'DAGGERHEART.GENERAL.Rules.attack.damage.bonus.label' }) }), roll: new fields.SchemaField({ @@ -462,6 +471,12 @@ export default class DhCharacter extends BaseDataActor { }; } + get basicAttackDamageDice() { + const diceTypes = Object.keys(CONFIG.DH.GENERAL.diceTypes); + const attackDiceIndex = Math.max(Math.min(this.rules.attack.damage.diceIndex, 5), 0); + return diceTypes[attackDiceIndex]; + } + static async unequipBeforeEquip(itemToEquip) { const primary = this.primaryWeapon, secondary = this.secondaryWeapon; @@ -547,12 +562,16 @@ export default class DhCharacter extends BaseDataActor { const baseHope = this.resources.hope.value + (this.companion?.system?.resources?.hope ?? 0); this.resources.hope.value = Math.min(baseHope, this.resources.hope.max); this.attack.roll.trait = this.rules.attack.roll.trait ?? this.attack.roll.trait; + + this.attack.damage.parts[0].value.custom.formula = `@prof${this.basicAttackDamageDice}${this.rules.attack.damage.bonus ? ` + ${this.rules.attack.damage.bonus}` : ''}`; } getRollData() { const data = super.getRollData(); + return { ...data, + basicAttackDamageDice: this.basicAttackDamageDice, tier: this.tier, level: this.levelData.level.current }; diff --git a/module/data/fields/action/rollField.mjs b/module/data/fields/action/rollField.mjs index 0686f71f..511e0660 100644 --- a/module/data/fields/action/rollField.mjs +++ b/module/data/fields/action/rollField.mjs @@ -8,25 +8,38 @@ export class DHActionRollData extends foundry.abstract.DataModel { trait: new fields.StringField({ nullable: true, initial: null, choices: CONFIG.DH.ACTOR.abilities }), difficulty: new fields.NumberField({ nullable: true, initial: null, integer: true, min: 0 }), bonus: new fields.NumberField({ nullable: true, initial: null, integer: true }), - advState: new fields.StringField({ choices: CONFIG.DH.ACTIONS.advandtageState, initial: 'neutral' }), + advState: new fields.StringField({ + choices: CONFIG.DH.ACTIONS.advantageState, + initial: 'neutral' + }), diceRolling: new fields.SchemaField({ multiplier: new fields.StringField({ choices: CONFIG.DH.GENERAL.diceSetNumbers, initial: 'prof', - label: 'Dice Number' + label: 'DAGGERHEART.ACTIONS.RollField.diceRolling.multiplier' + }), + flatMultiplier: new fields.NumberField({ + nullable: true, + initial: 1, + label: 'DAGGERHEART.ACTIONS.RollField.diceRolling.flatMultiplier' }), - flatMultiplier: new fields.NumberField({ nullable: true, initial: 1, label: 'Flat Multiplier' }), dice: new fields.StringField({ choices: CONFIG.DH.GENERAL.diceTypes, - initial: 'd6', - label: 'Dice Type' + initial: CONFIG.DH.GENERAL.diceTypes.d6, + label: 'DAGGERHEART.ACTIONS.RollField.diceRolling.dice' }), compare: new fields.StringField({ choices: CONFIG.DH.ACTIONS.diceCompare, - initial: 'above', - label: 'Should be' + nullable: true, + initial: null, + label: 'DAGGERHEART.ACTIONS.RollField.diceRolling.compare' }), - treshold: new fields.NumberField({ initial: 1, integer: true, min: 1, label: 'Treshold' }) + treshold: new fields.NumberField({ + integer: true, + nullable: true, + initial: null, + label: 'DAGGERHEART.ACTIONS.RollField.diceRolling.threshold' + }) }), useDefault: new fields.BooleanField({ initial: false }) }; @@ -41,7 +54,11 @@ export class DHActionRollData extends foundry.abstract.DataModel { this.diceRolling.multiplier === 'flat' ? this.diceRolling.flatMultiplier : `@${this.diceRolling.multiplier}`; - formula = `${multiplier}${this.diceRolling.dice}cs${CONFIG.DH.ACTIONS.diceCompare[this.diceRolling.compare].operator}${this.diceRolling.treshold}`; + if (this.diceRolling.compare && this.diceRolling.threshold) { + formula = `${multiplier}${this.diceRolling.dice}cs${CONFIG.DH.ACTIONS.diceCompare[this.diceRolling.compare].operator}${this.diceRolling.treshold}`; + } else { + formula = `${multiplier}${this.diceRolling.dice}`; + } break; default: formula = ''; diff --git a/module/data/fields/formulaField.mjs b/module/data/fields/formulaField.mjs index 68c26efc..85922f1f 100644 --- a/module/data/fields/formulaField.mjs +++ b/module/data/fields/formulaField.mjs @@ -35,7 +35,13 @@ export default class FormulaField extends foundry.data.fields.StringField { /** @inheritDoc */ _validateType(value) { - const roll = new Roll(value.replace(/@([a-z.0-9_-]+)/gi, '1')); + /* A bit suss, but seems to work */ + let roll = null; + try { + roll = new Roll(value.replace(/@([a-z.0-9_-]+)/gi, '1')); + } catch (_) { + roll = new Roll(value.replace(/@([a-z.0-9_-]+)/gi, 'd6')); + } roll.evaluateSync({ strict: false }); if (this.options.deterministic && !roll.isDeterministic) throw new Error(`must not contain dice terms: ${value}`); diff --git a/module/data/item/armor.mjs b/module/data/item/armor.mjs index 2639ae1e..64a6e9c0 100644 --- a/module/data/item/armor.mjs +++ b/module/data/item/armor.mjs @@ -1,5 +1,4 @@ import AttachableItem from './attachableItem.mjs'; -import { ActionsField } from '../fields/actionField.mjs'; import { armorFeatures } from '../../config/itemConfig.mjs'; export default class DHArmor extends AttachableItem { diff --git a/module/data/item/beastform.mjs b/module/data/item/beastform.mjs index 0dca8883..d17fbf82 100644 --- a/module/data/item/beastform.mjs +++ b/module/data/item/beastform.mjs @@ -94,10 +94,13 @@ export default class DHBeastform extends BaseDataItem { return false; } - const features = await this.parent.parent.createEmbeddedDocuments( - 'Item', - this.features.map(x => x.toObject()) - ); + const beastformFeatures = []; + for (let featureData of this.features) { + const feature = await foundry.utils.fromUuid(featureData.uuid); + beastformFeatures.push(feature.toObject()); + } + + const features = await this.parent.parent.createEmbeddedDocuments('Item', beastformFeatures); const extraEffects = await this.parent.parent.createEmbeddedDocuments( 'ActiveEffect', @@ -152,12 +155,14 @@ export default class DHBeastform extends BaseDataItem { _onCreate(_data, _options, userId) { if (userId !== game.user.id) return; - this.parent.createEmbeddedDocuments('ActiveEffect', [ - { - type: 'beastform', - name: game.i18n.localize('DAGGERHEART.ITEMS.Beastform.beastformEffect'), - img: 'icons/creatures/abilities/paw-print-pair-purple.webp' - } - ]); + if (!this.parent.effects.find(x => x.type === 'beastform')) { + this.parent.createEmbeddedDocuments('ActiveEffect', [ + { + type: 'beastform', + name: game.i18n.localize('DAGGERHEART.ITEMS.Beastform.beastformEffect'), + img: 'icons/creatures/abilities/paw-print-pair-purple.webp' + } + ]); + } } } diff --git a/module/enrichers/DualityRollEnricher.mjs b/module/enrichers/DualityRollEnricher.mjs index 70f376e7..690262ce 100644 --- a/module/enrichers/DualityRollEnricher.mjs +++ b/module/enrichers/DualityRollEnricher.mjs @@ -22,14 +22,14 @@ function getDualityMessage(roll) { : game.i18n.localize('DAGGERHEART.GENERAL.duality'); const advantage = roll.advantage - ? CONFIG.DH.ACTIONS.advandtageState.advantage.value + ? CONFIG.DH.ACTIONS.advantageState.advantage.value : roll.disadvantage - ? CONFIG.DH.ACTIONS.advandtageState.disadvantage.value + ? CONFIG.DH.ACTIONS.advantageState.disadvantage.value : undefined; const advantageLabel = - advantage === CONFIG.DH.ACTIONS.advandtageState.advantage.value + advantage === CONFIG.DH.ACTIONS.advantageState.advantage.value ? 'Advantage' - : advantage === CONFIG.DH.ACTIONS.advandtageState.disadvantage.value + : advantage === CONFIG.DH.ACTIONS.advantageState.disadvantage.value ? 'Disadvantage' : undefined; diff --git a/module/helpers/utils.mjs b/module/helpers/utils.mjs index e2f30130..93568894 100644 --- a/module/helpers/utils.mjs +++ b/module/helpers/utils.mjs @@ -271,14 +271,14 @@ export function addLinkedItemsDiff(changedItems, currentItems, options) { newItems .difference(prevItems) .map(item => item?.item ?? item) - .filter(x => (typeof x === 'object' ? x.item : x)) + .filter(x => (typeof x === 'object' ? x?.item : x)) ); options.toUnlink = Array.from( prevItems .difference(newItems) .map(item => item?.item?.uuid ?? item?.uuid ?? item) - .filter(x => (typeof x === 'object' ? x.item : x)) + .filter(x => (typeof x === 'object' ? x?.item : x)) ); } } diff --git a/src/packs/beastforms/beastform_Agile_Scout_a9UoCwtrbgKk02mK.json b/src/packs/beastforms/beastform_Agile_Scout_a9UoCwtrbgKk02mK.json new file mode 100644 index 00000000..9ce4cea5 --- /dev/null +++ b/src/packs/beastforms/beastform_Agile_Scout_a9UoCwtrbgKk02mK.json @@ -0,0 +1,133 @@ +{ + "name": "Agile Scout", + "type": "beastform", + "img": "icons/creatures/mammals/rodent-rat-diseaed-gray.webp", + "system": { + "beastformType": "normal", + "tier": 1, + "tokenImg": "icons/svg/mystery-man.svg", + "tokenRingImg": "icons/svg/mystery-man.svg", + "tokenSize": { + "height": null, + "width": null + }, + "mainTrait": "agility", + "advantageOn": { + "mtep5GS5Ruj6ZXk1": { + "value": "Deceive" + }, + "HtQHzK88eiFGP1sW": { + "value": "Locate" + }, + "pq2OXeTmvgRVWTnM": { + "value": "Sneak" + } + }, + "features": [ + "Compendium.daggerheart.beastforms.Item.xLS5YT1B6yeCiNTg", + "Compendium.daggerheart.beastforms.Item.QFg1hNCEoKVDd9Zo" + ], + "evolved": { + "mainTraitBonus": 0, + "maximumTier": 1 + }, + "hybrid": { + "beastformOptions": 2, + "advantages": 2, + "features": 2 + }, + "examples": "Fox, Mouse, Weasel, etc." + }, + "effects": [ + { + "type": "beastform", + "name": "Beastform Transformation", + "img": "icons/creatures/abilities/paw-print-pair-purple.webp", + "_id": "ehfx2SUKMiM6f5Pd", + "system": { + "characterTokenData": { + "tokenImg": null, + "tokenRingImg": "icons/svg/mystery-man.svg", + "tokenSize": {} + }, + "advantageOn": [], + "featureIds": [], + "effectIds": [] + }, + "changes": [ + { + "key": "system.traits.agility.value", + "mode": 2, + "value": "1", + "priority": null + }, + { + "key": "system.evasion", + "mode": 2, + "value": "2", + "priority": null + }, + { + "key": "system.rules.attack.damage.diceIndex", + "mode": 5, + "value": "0", + "priority": null + }, + { + "key": "system.rules.attack.roll.trait", + "mode": 5, + "value": "agility", + "priority": null + } + ], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "", + "origin": null, + "tint": "#ffffff", + "transfer": true, + "statuses": [], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "FecEtPuoQh6MpjQ0", + "modifiedTime": 1753637028054 + }, + "_key": "!items.effects!a9UoCwtrbgKk02mK.ehfx2SUKMiM6f5Pd" + } + ], + "folder": "nhnRdZgSSrE9myIX", + "ownership": { + "default": 0, + "FecEtPuoQh6MpjQ0": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753570913893, + "modifiedTime": 1753575463479, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, + "_id": "a9UoCwtrbgKk02mK", + "sort": 500000, + "_key": "!items!a9UoCwtrbgKk02mK" +} diff --git a/src/packs/beastforms/beastform_Aquatic_Predator_ItBVeCl2u5uetgy7.json b/src/packs/beastforms/beastform_Aquatic_Predator_ItBVeCl2u5uetgy7.json new file mode 100644 index 00000000..75c747ab --- /dev/null +++ b/src/packs/beastforms/beastform_Aquatic_Predator_ItBVeCl2u5uetgy7.json @@ -0,0 +1,138 @@ +{ + "name": "Aquatic Predator", + "type": "beastform", + "img": "icons/creatures/fish/fish-marlin-swordfight-blue.webp", + "system": { + "beastformType": "normal", + "tier": 3, + "tokenImg": "icons/svg/mystery-man.svg", + "tokenRingImg": "icons/svg/mystery-man.svg", + "tokenSize": { + "height": null, + "width": null + }, + "mainTrait": "agility", + "advantageOn": { + "1AcQrnvX9BKAWb0Y": { + "value": "Attack" + }, + "BY5ht3SqyKw0dBr1": { + "value": "Swim" + }, + "4OW2JewIhcKpwzVE": { + "value": "Track" + } + }, + "features": [ + "Compendium.daggerheart.beastforms.Item.kQWWx9P3fCyGSVOI", + "Compendium.daggerheart.beastforms.Item.jYUBi7yLHap5ljpa" + ], + "evolved": { + "mainTraitBonus": 0 + }, + "hybrid": { + "beastformOptions": 2, + "advantages": 2, + "features": 2 + }, + "examples": "Dolphin, Orca, Shark, etc." + }, + "effects": [ + { + "type": "beastform", + "name": "Beastform Transformation", + "img": "icons/creatures/abilities/paw-print-pair-purple.webp", + "_id": "7OTbmhQNtKhRAl59", + "system": { + "characterTokenData": { + "tokenImg": null, + "tokenRingImg": "icons/svg/mystery-man.svg", + "tokenSize": {} + }, + "advantageOn": [], + "featureIds": [], + "effectIds": [] + }, + "changes": [ + { + "key": "system.traits.agility.value", + "mode": 2, + "value": "2", + "priority": null + }, + { + "key": "system.evasion", + "mode": 2, + "value": "4", + "priority": null + }, + { + "key": "system.rules.attack.damage.diceIndex", + "mode": 5, + "value": "3", + "priority": null + }, + { + "key": "system.rules.attack.damage.bonus", + "mode": 5, + "value": "6", + "priority": null + }, + { + "key": "system.rules.attack.roll.trait", + "mode": 5, + "value": "agility", + "priority": null + } + ], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "", + "origin": null, + "tint": "#ffffff", + "transfer": true, + "statuses": [], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "FecEtPuoQh6MpjQ0", + "modifiedTime": 1753636850470 + }, + "_key": "!items.effects!ItBVeCl2u5uetgy7.7OTbmhQNtKhRAl59" + } + ], + "folder": "9uPPuDAUXrVYquTw", + "ownership": { + "default": 0, + "FecEtPuoQh6MpjQ0": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753626985883, + "modifiedTime": 1753626995174, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, + "_id": "ItBVeCl2u5uetgy7", + "sort": 0, + "_key": "!items!ItBVeCl2u5uetgy7" +} diff --git a/src/packs/beastforms/beastform_Aquatic_Scout_qqzdFCxyYupWZK23.json b/src/packs/beastforms/beastform_Aquatic_Scout_qqzdFCxyYupWZK23.json new file mode 100644 index 00000000..4b5c792c --- /dev/null +++ b/src/packs/beastforms/beastform_Aquatic_Scout_qqzdFCxyYupWZK23.json @@ -0,0 +1,132 @@ +{ + "name": "Aquatic Scout", + "type": "beastform", + "img": "icons/creatures/tentacles/tentacles-octopus-black-pink.webp", + "system": { + "beastformType": "normal", + "tier": 1, + "tokenImg": "icons/svg/mystery-man.svg", + "tokenRingImg": "icons/svg/mystery-man.svg", + "tokenSize": { + "height": null, + "width": null + }, + "mainTrait": "agility", + "advantageOn": { + "OG0TnlIP9lKye1e9": { + "value": "Navigate" + }, + "q3yvEjEGqK6o4AYw": { + "value": "Sneak" + }, + "RWK8rni8s7nYVP7I": { + "value": "Swim" + } + }, + "features": [ + "Compendium.daggerheart.beastforms.Item.kQWWx9P3fCyGSVOI", + "Compendium.daggerheart.beastforms.Item.QFg1hNCEoKVDd9Zo" + ], + "evolved": { + "mainTraitBonus": 0 + }, + "hybrid": { + "beastformOptions": 2, + "advantages": 2, + "features": 2 + }, + "examples": "Eel, Fish, Octopus, etc." + }, + "effects": [ + { + "type": "beastform", + "name": "Beastform Transformation", + "img": "icons/creatures/abilities/paw-print-pair-purple.webp", + "_id": "TsXyfEOCk0ma5tp9", + "system": { + "characterTokenData": { + "tokenImg": null, + "tokenRingImg": "icons/svg/mystery-man.svg", + "tokenSize": {} + }, + "advantageOn": [], + "featureIds": [], + "effectIds": [] + }, + "changes": [ + { + "key": "system.traits.agility.value", + "mode": 2, + "value": "1", + "priority": null + }, + { + "key": "system.evasion", + "mode": 2, + "value": "2", + "priority": null + }, + { + "key": "system.rules.attack.damage.diceIndex", + "mode": 5, + "value": "0", + "priority": null + }, + { + "key": "system.rules.attack.roll.trait", + "mode": 5, + "value": "agility", + "priority": null + } + ], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "", + "origin": null, + "tint": "#ffffff", + "transfer": true, + "statuses": [], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "FecEtPuoQh6MpjQ0", + "modifiedTime": 1753637058698 + }, + "_key": "!items.effects!qqzdFCxyYupWZK23.TsXyfEOCk0ma5tp9" + } + ], + "folder": "nhnRdZgSSrE9myIX", + "ownership": { + "default": 0, + "FecEtPuoQh6MpjQ0": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753575463467, + "modifiedTime": 1753575469111, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, + "_id": "qqzdFCxyYupWZK23", + "sort": 200000, + "_key": "!items!qqzdFCxyYupWZK23" +} diff --git a/src/packs/beastforms/beastform_Armored_Sentry_8pUHJv3BYdjA4Qdf.json b/src/packs/beastforms/beastform_Armored_Sentry_8pUHJv3BYdjA4Qdf.json new file mode 100644 index 00000000..553fa9e9 --- /dev/null +++ b/src/packs/beastforms/beastform_Armored_Sentry_8pUHJv3BYdjA4Qdf.json @@ -0,0 +1,138 @@ +{ + "name": "Armored Sentry", + "type": "beastform", + "img": "icons/creatures/reptiles/turtle-shell-glowing-green.webp", + "system": { + "beastformType": "normal", + "tier": 2, + "tokenImg": "icons/svg/mystery-man.svg", + "tokenRingImg": "icons/svg/mystery-man.svg", + "tokenSize": { + "height": null, + "width": null + }, + "mainTrait": "strength", + "advantageOn": { + "mX0DbTDuWAIpAGYq": { + "value": "Armadillo" + }, + "0VGGQOhVOoNpZfdJ": { + "value": "Pangolin" + }, + "6v6bkfKevJrn3YHf": { + "value": "Turtle" + } + }, + "features": [ + "Compendium.daggerheart.beastforms.Item.nDQZdIF2epKlhauX", + "Compendium.daggerheart.beastforms.Item.jp5KpPRBFBOIs46Q" + ], + "evolved": { + "mainTraitBonus": 0 + }, + "hybrid": { + "beastformOptions": 2, + "advantages": 2, + "features": 2 + }, + "examples": "Armadillo, Pangolin, Turtle, etc." + }, + "effects": [ + { + "type": "beastform", + "name": "Beastform Transformation", + "img": "icons/creatures/abilities/paw-print-pair-purple.webp", + "_id": "hd0uVl6ZZeyPJn9O", + "system": { + "characterTokenData": { + "tokenImg": null, + "tokenRingImg": "icons/svg/mystery-man.svg", + "tokenSize": {} + }, + "advantageOn": [], + "featureIds": [], + "effectIds": [] + }, + "changes": [ + { + "key": "system.traits.strength.value", + "mode": 2, + "value": "1", + "priority": null + }, + { + "key": "system.evasion", + "mode": 2, + "value": "1", + "priority": null + }, + { + "key": "system.rules.attack.damage.diceIndex", + "mode": 5, + "value": "2", + "priority": null + }, + { + "key": "system.rules.attack.damage.bonus", + "mode": 5, + "value": "2", + "priority": null + }, + { + "key": "system.rules.attack.roll.trait", + "mode": 5, + "value": "strength", + "priority": null + } + ], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "", + "origin": null, + "tint": "#ffffff", + "transfer": true, + "statuses": [], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "FecEtPuoQh6MpjQ0", + "modifiedTime": 1753636932760 + }, + "_key": "!items.effects!8pUHJv3BYdjA4Qdf.hd0uVl6ZZeyPJn9O" + } + ], + "folder": "Rd30i5G7Pg0HtEUT", + "ownership": { + "default": 0, + "FecEtPuoQh6MpjQ0": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753580987168, + "modifiedTime": 1753617739186, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, + "_id": "8pUHJv3BYdjA4Qdf", + "sort": 100000, + "_key": "!items!8pUHJv3BYdjA4Qdf" +} diff --git a/src/packs/beastforms/beastform_Epic_Aquatic_Beast_wT4xbF99I55yjKZV.json b/src/packs/beastforms/beastform_Epic_Aquatic_Beast_wT4xbF99I55yjKZV.json new file mode 100644 index 00000000..895a3467 --- /dev/null +++ b/src/packs/beastforms/beastform_Epic_Aquatic_Beast_wT4xbF99I55yjKZV.json @@ -0,0 +1,141 @@ +{ + "name": "Epic Aquatic Beast", + "type": "beastform", + "img": "icons/creatures/fish/squid-kraken-teal.webp", + "system": { + "beastformType": "normal", + "tier": 4, + "tokenImg": "icons/svg/mystery-man.svg", + "tokenRingImg": "icons/svg/mystery-man.svg", + "tokenSize": { + "height": null, + "width": null + }, + "mainTrait": "agility", + "advantageOn": { + "DzjyAaegBTZSxhT4": { + "value": "Locate" + }, + "rRDzTGkLNCbStmih": { + "value": "Protect" + }, + "0k26pAQLTjfEfviV": { + "value": "Scare" + }, + "zkEFnEqpAf4lqy5W": { + "value": "Track" + } + }, + "features": [ + "Compendium.daggerheart.beastforms.Item.tGDdEH40wyOCsFmH", + "Compendium.daggerheart.beastforms.Item.vEAQ4cfsoPmOv2Gg" + ], + "evolved": { + "mainTraitBonus": 0 + }, + "hybrid": { + "beastformOptions": 2, + "advantages": 2, + "features": 2 + }, + "examples": "Giant Squid, Whale, etc." + }, + "effects": [ + { + "type": "beastform", + "name": "Beastform Transformation", + "img": "icons/creatures/abilities/paw-print-pair-purple.webp", + "_id": "zYUexUr2e3k4kzhw", + "system": { + "characterTokenData": { + "tokenImg": null, + "tokenRingImg": "icons/svg/mystery-man.svg", + "tokenSize": {} + }, + "advantageOn": [], + "featureIds": [], + "effectIds": [] + }, + "changes": [ + { + "key": "system.traits.agility.value", + "mode": 2, + "value": "3", + "priority": null + }, + { + "key": "system.evasion", + "mode": 2, + "value": "3", + "priority": null + }, + { + "key": "system.rules.attack.damage.diceIndex", + "mode": 5, + "value": "3", + "priority": null + }, + { + "key": "system.rules.attack.damage.bonus", + "mode": 5, + "value": "10", + "priority": null + }, + { + "key": "system.rules.attack.roll.trait", + "mode": 5, + "value": "agility", + "priority": null + } + ], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "", + "origin": null, + "tint": "#ffffff", + "transfer": true, + "statuses": [], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "FecEtPuoQh6MpjQ0", + "modifiedTime": 1753636776763 + }, + "_key": "!items.effects!wT4xbF99I55yjKZV.zYUexUr2e3k4kzhw" + } + ], + "folder": "UQEr5SAm2Z1Aih1S", + "ownership": { + "default": 0, + "FecEtPuoQh6MpjQ0": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753628697986, + "modifiedTime": 1753628714911, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, + "_id": "wT4xbF99I55yjKZV", + "sort": 0, + "_key": "!items!wT4xbF99I55yjKZV" +} diff --git a/src/packs/beastforms/beastform_Great_Predator_afbMt4Ld6nY3mw0N.json b/src/packs/beastforms/beastform_Great_Predator_afbMt4Ld6nY3mw0N.json new file mode 100644 index 00000000..e794abf2 --- /dev/null +++ b/src/packs/beastforms/beastform_Great_Predator_afbMt4Ld6nY3mw0N.json @@ -0,0 +1,138 @@ +{ + "name": "Great Predator", + "type": "beastform", + "img": "icons/creatures/mammals/wolf-shadow-black.webp", + "system": { + "beastformType": "normal", + "tier": 3, + "tokenImg": "icons/svg/mystery-man.svg", + "tokenRingImg": "icons/svg/mystery-man.svg", + "tokenSize": { + "height": null, + "width": null + }, + "mainTrait": "strength", + "advantageOn": { + "WvQYbcASMk0IwESy": { + "value": "Attack" + }, + "Hzr7zL547nyrZyZK": { + "value": "Sneak" + }, + "3wDuhdlzs3gOJ9l9": { + "value": "Sprint" + } + }, + "features": [ + "Compendium.daggerheart.beastforms.Item.EVOJTskJYf4rpuga", + "Compendium.daggerheart.beastforms.Item.jYUBi7yLHap5ljpa" + ], + "evolved": { + "mainTraitBonus": 0 + }, + "hybrid": { + "beastformOptions": 2, + "advantages": 2, + "features": 2 + }, + "examples": "Dire Wolf, Velociraptor, Sabertooth Tiger, etc." + }, + "effects": [ + { + "type": "beastform", + "name": "Beastform Transformation", + "img": "icons/creatures/abilities/paw-print-pair-purple.webp", + "_id": "TFzvHClwIAQUFxyP", + "system": { + "characterTokenData": { + "tokenImg": null, + "tokenRingImg": "icons/svg/mystery-man.svg", + "tokenSize": {} + }, + "advantageOn": [], + "featureIds": [], + "effectIds": [] + }, + "changes": [ + { + "key": "system.traits.strength.value", + "mode": 2, + "value": "2", + "priority": null + }, + { + "key": "system.evasion", + "mode": 2, + "value": "2", + "priority": null + }, + { + "key": "system.rules.attack.damage.diceIndex", + "mode": 5, + "value": "4", + "priority": null + }, + { + "key": "system.rules.attack.damage.bonus", + "mode": 5, + "value": "8", + "priority": null + }, + { + "key": "system.rules.attack.roll.trait", + "mode": 5, + "value": "strength", + "priority": null + } + ], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "", + "origin": null, + "tint": "#ffffff", + "transfer": true, + "statuses": [], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "FecEtPuoQh6MpjQ0", + "modifiedTime": 1753636866636 + }, + "_key": "!items.effects!afbMt4Ld6nY3mw0N.TFzvHClwIAQUFxyP" + } + ], + "folder": "9uPPuDAUXrVYquTw", + "ownership": { + "default": 0, + "FecEtPuoQh6MpjQ0": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753625648103, + "modifiedTime": 1753626865950, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, + "_id": "afbMt4Ld6nY3mw0N", + "sort": 100000, + "_key": "!items!afbMt4Ld6nY3mw0N" +} diff --git a/src/packs/beastforms/beastform_Great_Winged_Beast_b4BMnTbJ3iPPidSb.json b/src/packs/beastforms/beastform_Great_Winged_Beast_b4BMnTbJ3iPPidSb.json new file mode 100644 index 00000000..15eed972 --- /dev/null +++ b/src/packs/beastforms/beastform_Great_Winged_Beast_b4BMnTbJ3iPPidSb.json @@ -0,0 +1,138 @@ +{ + "name": "Great Winged Beast", + "type": "beastform", + "img": "icons/creatures/birds/corvid-flying-wings-purple.webp", + "system": { + "beastformType": "normal", + "tier": 3, + "tokenImg": "icons/svg/mystery-man.svg", + "tokenRingImg": "icons/svg/mystery-man.svg", + "tokenSize": { + "height": null, + "width": null + }, + "mainTrait": "finesse", + "advantageOn": { + "9J8GmsoqjBiXJLKE": { + "value": "Deceive" + }, + "MkD8mmiirYPqs0oA": { + "value": "Distract" + }, + "qzud50ZkqNJgYhRH": { + "value": "Locate" + } + }, + "features": [ + "Compendium.daggerheart.beastforms.Item.FNKQlWQcArSorMPK", + "Compendium.daggerheart.beastforms.Item.EVOJTskJYf4rpuga" + ], + "evolved": { + "mainTraitBonus": 0 + }, + "hybrid": { + "beastformOptions": 2, + "advantages": 2, + "features": 2 + }, + "examples": "Giant Eagle, Falcon, etc." + }, + "effects": [ + { + "type": "beastform", + "name": "Beastform Transformation", + "img": "icons/creatures/abilities/paw-print-pair-purple.webp", + "_id": "qGSm1QpICpxRZxLn", + "system": { + "characterTokenData": { + "tokenImg": null, + "tokenRingImg": "icons/svg/mystery-man.svg", + "tokenSize": {} + }, + "advantageOn": [], + "featureIds": [], + "effectIds": [] + }, + "changes": [ + { + "key": "system.traits.finesse.value", + "mode": 2, + "value": "2", + "priority": null + }, + { + "key": "system.evasion", + "mode": 2, + "value": "3", + "priority": null + }, + { + "key": "system.rules.attack.damage.diceIndex", + "mode": 5, + "value": "2", + "priority": null + }, + { + "key": "system.rules.attack.damage.bonus", + "mode": 5, + "value": "6", + "priority": null + }, + { + "key": "system.rules.attack.roll.trait", + "mode": 5, + "value": "finesse", + "priority": null + } + ], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "", + "origin": null, + "tint": "#ffffff", + "transfer": true, + "statuses": [], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "FecEtPuoQh6MpjQ0", + "modifiedTime": 1753636883399 + }, + "_key": "!items.effects!b4BMnTbJ3iPPidSb.qGSm1QpICpxRZxLn" + } + ], + "folder": "9uPPuDAUXrVYquTw", + "ownership": { + "default": 0, + "FecEtPuoQh6MpjQ0": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753626865938, + "modifiedTime": 1753626874515, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, + "_id": "b4BMnTbJ3iPPidSb", + "sort": 200000, + "_key": "!items!b4BMnTbJ3iPPidSb" +} diff --git a/src/packs/beastforms/beastform_Household_Friend_iDmOtiHJJ80AIAVT.json b/src/packs/beastforms/beastform_Household_Friend_iDmOtiHJJ80AIAVT.json new file mode 100644 index 00000000..57a1ecdf --- /dev/null +++ b/src/packs/beastforms/beastform_Household_Friend_iDmOtiHJJ80AIAVT.json @@ -0,0 +1,132 @@ +{ + "name": "Household Friend", + "type": "beastform", + "img": "icons/creatures/mammals/rabbit-movement-glowing-green.webp", + "system": { + "beastformType": "normal", + "tier": 1, + "tokenImg": "icons/svg/mystery-man.svg", + "tokenRingImg": "icons/svg/mystery-man.svg", + "tokenSize": { + "height": null, + "width": null + }, + "mainTrait": "instinct", + "advantageOn": { + "CXfEZDZ96ajdn5aU": { + "value": "Climb" + }, + "IojJaTrMIkT4xFSN": { + "value": "Locate" + }, + "IwwGzrAig49bAy8y": { + "value": "Protect" + } + }, + "features": [ + "Compendium.daggerheart.beastforms.Item.jhWSC5bNZyYUAA5Q", + "Compendium.daggerheart.beastforms.Item.QFg1hNCEoKVDd9Zo" + ], + "evolved": { + "mainTraitBonus": 0 + }, + "hybrid": { + "beastformOptions": 2, + "advantages": 2, + "features": 2 + }, + "examples": "Cat, Dog, Rabbit, etc." + }, + "effects": [ + { + "type": "beastform", + "name": "Beastform Transformation", + "img": "icons/creatures/abilities/paw-print-pair-purple.webp", + "_id": "CzMAMg2q5gL15JrZ", + "system": { + "characterTokenData": { + "tokenImg": null, + "tokenRingImg": "icons/svg/mystery-man.svg", + "tokenSize": {} + }, + "advantageOn": [], + "featureIds": [], + "effectIds": [] + }, + "changes": [ + { + "key": "system.traits.instinct.value", + "mode": 2, + "value": "1", + "priority": null + }, + { + "key": "system.evasion", + "mode": 2, + "value": "2", + "priority": null + }, + { + "key": "system.rules.attack.damage.diceIndex", + "mode": 5, + "value": "1", + "priority": null + }, + { + "key": "system.rules.attack.roll.trait", + "mode": 5, + "value": "instinct", + "priority": null + } + ], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "", + "origin": null, + "tint": "#ffffff", + "transfer": true, + "statuses": [], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "FecEtPuoQh6MpjQ0", + "modifiedTime": 1753637069907 + }, + "_key": "!items.effects!iDmOtiHJJ80AIAVT.CzMAMg2q5gL15JrZ" + } + ], + "folder": "nhnRdZgSSrE9myIX", + "ownership": { + "default": 0, + "FecEtPuoQh6MpjQ0": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753573035973, + "modifiedTime": 1753575463479, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, + "_id": "iDmOtiHJJ80AIAVT", + "sort": 100000, + "_key": "!items!iDmOtiHJJ80AIAVT" +} diff --git a/src/packs/beastforms/beastform_Legendary_Beast_mqP6z4Wg4K3oDAom.json b/src/packs/beastforms/beastform_Legendary_Beast_mqP6z4Wg4K3oDAom.json new file mode 100644 index 00000000..a73b31d2 --- /dev/null +++ b/src/packs/beastforms/beastform_Legendary_Beast_mqP6z4Wg4K3oDAom.json @@ -0,0 +1,108 @@ +{ + "name": "Legendary Beast", + "type": "beastform", + "img": "icons/creatures/magical/humanoid-giant-forest-blue.webp", + "system": { + "beastformType": "evolved", + "tier": 3, + "tokenImg": "icons/svg/mystery-man.svg", + "tokenRingImg": "icons/svg/mystery-man.svg", + "tokenSize": { + "height": null, + "width": null + }, + "mainTrait": "agility", + "advantageOn": {}, + "features": [], + "evolved": { + "mainTraitBonus": 1, + "maximumTier": 1 + }, + "hybrid": { + "beastformOptions": 2, + "advantages": 2, + "features": 2 + }, + "examples": "" + }, + "effects": [ + { + "type": "beastform", + "name": "Beastform Transformation", + "img": "icons/creatures/abilities/paw-print-pair-purple.webp", + "_id": "cL4kH57pf2nGIxaK", + "system": { + "characterTokenData": { + "tokenImg": null, + "tokenRingImg": "icons/svg/mystery-man.svg", + "tokenSize": {} + }, + "advantageOn": [], + "featureIds": [], + "effectIds": [] + }, + "changes": [ + { + "key": "system.bonuses.damage.physical.bonus", + "mode": 2, + "value": "6", + "priority": null + }, + { + "key": "system.evasion", + "mode": 2, + "value": "2", + "priority": null + } + ], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "

Pick a Tier 1 Beastform option and become a larger, more powerful version of that creature. While you’re in this form, you retain all traits and features from the original form and gain the following bonuses:

  • A +6 bonus to the damage rolls
  • A +1 bonus to the trait used by this form
  • A +2 bonus to evasion
", + "origin": null, + "tint": "#ffffff", + "transfer": true, + "statuses": [], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "FecEtPuoQh6MpjQ0", + "modifiedTime": 1753629435612 + }, + "_key": "!items.effects!mqP6z4Wg4K3oDAom.cL4kH57pf2nGIxaK" + } + ], + "folder": "9uPPuDAUXrVYquTw", + "ownership": { + "default": 0, + "FecEtPuoQh6MpjQ0": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753627165434, + "modifiedTime": 1753627165434, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, + "_id": "mqP6z4Wg4K3oDAom", + "sort": 0, + "_key": "!items!mqP6z4Wg4K3oDAom" +} diff --git a/src/packs/beastforms/beastform_Legendary_Hybrid_rRUtgcUjimlpPhnn.json b/src/packs/beastforms/beastform_Legendary_Hybrid_rRUtgcUjimlpPhnn.json new file mode 100644 index 00000000..aff94138 --- /dev/null +++ b/src/packs/beastforms/beastform_Legendary_Hybrid_rRUtgcUjimlpPhnn.json @@ -0,0 +1,126 @@ +{ + "name": "Legendary Hybrid", + "type": "beastform", + "img": "icons/creatures/magical/humanoid-silhouette-glowing-pink.webp", + "system": { + "beastformType": "hybrid", + "tier": 3, + "tokenImg": "icons/svg/mystery-man.svg", + "tokenRingImg": "icons/svg/mystery-man.svg", + "tokenSize": { + "height": null, + "width": null + }, + "mainTrait": "strength", + "advantageOn": {}, + "features": [], + "evolved": { + "mainTraitBonus": 0 + }, + "hybrid": { + "beastformOptions": 2, + "advantages": 4, + "features": 2, + "maximumTier": 2 + }, + "examples": "" + }, + "effects": [ + { + "type": "beastform", + "name": "Beastform Transformation", + "img": "icons/creatures/abilities/paw-print-pair-purple.webp", + "_id": "RbZKFWATkfLZm67j", + "system": { + "characterTokenData": { + "tokenImg": null, + "tokenRingImg": "icons/svg/mystery-man.svg", + "tokenSize": {} + }, + "advantageOn": [], + "featureIds": [], + "effectIds": [] + }, + "changes": [ + { + "key": "system.traits.strength.value", + "mode": 2, + "value": "2", + "priority": null + }, + { + "key": "system.evasion", + "mode": 2, + "value": "3", + "priority": null + }, + { + "key": "system.rules.attack.damage.diceIndex", + "mode": 5, + "value": "3", + "priority": null + }, + { + "key": "system.rules.attack.damage.bonus", + "mode": 5, + "value": "8", + "priority": null + }, + { + "key": "system.rules.attack.roll.trait", + "mode": 5, + "value": "strength", + "priority": null + } + ], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "

To transform into this creature, mark an additional Stress. Choose any two Beastform options from Tiers 1–2. Choose a total of four advantages and two features from those options.

", + "origin": null, + "tint": "#ffffff", + "transfer": true, + "statuses": [], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "FecEtPuoQh6MpjQ0", + "modifiedTime": 1753636904176 + }, + "_key": "!items.effects!rRUtgcUjimlpPhnn.RbZKFWATkfLZm67j" + } + ], + "folder": "9uPPuDAUXrVYquTw", + "ownership": { + "default": 0, + "FecEtPuoQh6MpjQ0": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753627303526, + "modifiedTime": 1753627303526, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, + "_id": "rRUtgcUjimlpPhnn", + "sort": 0, + "_key": "!items!rRUtgcUjimlpPhnn" +} diff --git a/src/packs/beastforms/beastform_Massive_Behemoth_qjwMzPn33aKZACkv.json b/src/packs/beastforms/beastform_Massive_Behemoth_qjwMzPn33aKZACkv.json new file mode 100644 index 00000000..470cfffe --- /dev/null +++ b/src/packs/beastforms/beastform_Massive_Behemoth_qjwMzPn33aKZACkv.json @@ -0,0 +1,142 @@ +{ + "name": "Massive Behemoth", + "type": "beastform", + "img": "icons/creatures/mammals/beast-horned-scaled-glowing-orange.webp", + "system": { + "beastformType": "normal", + "tier": 4, + "tokenImg": "icons/svg/mystery-man.svg", + "tokenRingImg": "icons/svg/mystery-man.svg", + "tokenSize": { + "height": null, + "width": null + }, + "mainTrait": "strength", + "advantageOn": { + "4dxvlv6F3kjurgJg": { + "value": "Locate" + }, + "WiskYFviMDpdKcR6": { + "value": "Protect" + }, + "AoFiYKVbPxGalK8Y": { + "value": "Scare" + }, + "TMzWo667tWr355c9": { + "value": "Sprint" + } + }, + "features": [ + "Compendium.daggerheart.beastforms.Item.EVOJTskJYf4rpuga", + "Compendium.daggerheart.beastforms.Item.DfBXO8jTchwFG8dZ", + "Compendium.daggerheart.beastforms.Item.ODudjX88Te4vDP57" + ], + "evolved": { + "mainTraitBonus": 0 + }, + "hybrid": { + "beastformOptions": 2, + "advantages": 2, + "features": 2 + }, + "examples": "Elephant, Mammoth, Rhinoceros, etc." + }, + "effects": [ + { + "type": "beastform", + "name": "Beastform Transformation", + "img": "icons/creatures/abilities/paw-print-pair-purple.webp", + "_id": "RR6ySJU5zaC7ws6A", + "system": { + "characterTokenData": { + "tokenImg": null, + "tokenRingImg": "icons/svg/mystery-man.svg", + "tokenSize": {} + }, + "advantageOn": [], + "featureIds": [], + "effectIds": [] + }, + "changes": [ + { + "key": "system.traits.strength.value", + "mode": 2, + "value": "3", + "priority": null + }, + { + "key": "system.evasion", + "mode": 2, + "value": "1", + "priority": null + }, + { + "key": "system.rules.attack.damage.diceIndex", + "mode": 5, + "value": "4", + "priority": null + }, + { + "key": "system.rules.attack.damage.bonus", + "mode": 5, + "value": "12", + "priority": null + }, + { + "key": "system.rules.attack.roll.trait", + "mode": 5, + "value": "strength", + "priority": null + } + ], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "", + "origin": null, + "tint": "#ffffff", + "transfer": true, + "statuses": [], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "FecEtPuoQh6MpjQ0", + "modifiedTime": 1753636791070 + }, + "_key": "!items.effects!qjwMzPn33aKZACkv.RR6ySJU5zaC7ws6A" + } + ], + "folder": "UQEr5SAm2Z1Aih1S", + "ownership": { + "default": 0, + "FecEtPuoQh6MpjQ0": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753627711166, + "modifiedTime": 1753631381561, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, + "_id": "qjwMzPn33aKZACkv", + "sort": 100000, + "_key": "!items!qjwMzPn33aKZACkv" +} diff --git a/src/packs/beastforms/beastform_Mighty_Lizard_94tvcC3D5Kp4lzuN.json b/src/packs/beastforms/beastform_Mighty_Lizard_94tvcC3D5Kp4lzuN.json new file mode 100644 index 00000000..374fc301 --- /dev/null +++ b/src/packs/beastforms/beastform_Mighty_Lizard_94tvcC3D5Kp4lzuN.json @@ -0,0 +1,138 @@ +{ + "name": "Mighty Lizard", + "type": "beastform", + "img": "icons/creatures/reptiles/lizard-iguana-green.webp", + "system": { + "beastformType": "normal", + "tier": 3, + "tokenImg": "icons/svg/mystery-man.svg", + "tokenRingImg": "icons/svg/mystery-man.svg", + "tokenSize": { + "height": null, + "width": null + }, + "mainTrait": "instinct", + "advantageOn": { + "f5tUBKOfwDQKPrYP": { + "value": "Attack" + }, + "XS1zEu9IJ6ec0mZ0": { + "value": "Sneak" + }, + "K0hUzxErOc7t0myx": { + "value": "Track" + } + }, + "features": [ + "Compendium.daggerheart.beastforms.Item.StabkQ3BzWRZa8Tz", + "Compendium.daggerheart.beastforms.Item.Ky3rZD3sJMXYZOBC" + ], + "evolved": { + "mainTraitBonus": 0 + }, + "hybrid": { + "beastformOptions": 2, + "advantages": 2, + "features": 2 + }, + "examples": "Alligator, Crocodile, Gila Monster, etc." + }, + "effects": [ + { + "type": "beastform", + "name": "Beastform Transformation", + "img": "icons/creatures/abilities/paw-print-pair-purple.webp", + "_id": "d13EzuP8Co04Jk8K", + "system": { + "characterTokenData": { + "tokenImg": null, + "tokenRingImg": "icons/svg/mystery-man.svg", + "tokenSize": {} + }, + "advantageOn": [], + "featureIds": [], + "effectIds": [] + }, + "changes": [ + { + "key": "system.traits.instinct.value", + "mode": 2, + "value": "2", + "priority": null + }, + { + "key": "system.evasion", + "mode": 2, + "value": "1", + "priority": null + }, + { + "key": "system.rules.attack.damage.diceIndex", + "mode": 5, + "value": "3", + "priority": null + }, + { + "key": "system.rules.attack.damage.bonus", + "mode": 5, + "value": "7", + "priority": null + }, + { + "key": "system.rules.attack.roll.trait", + "mode": 5, + "value": "instinct", + "priority": null + } + ], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "", + "origin": null, + "tint": "#ffffff", + "transfer": true, + "statuses": [], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "FecEtPuoQh6MpjQ0", + "modifiedTime": 1753636918241 + }, + "_key": "!items.effects!94tvcC3D5Kp4lzuN.d13EzuP8Co04Jk8K" + } + ], + "folder": "9uPPuDAUXrVYquTw", + "ownership": { + "default": 0, + "FecEtPuoQh6MpjQ0": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753626720443, + "modifiedTime": 1753626865950, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, + "_id": "94tvcC3D5Kp4lzuN", + "sort": 300000, + "_key": "!items!94tvcC3D5Kp4lzuN" +} diff --git a/src/packs/beastforms/beastform_Mighty_Strider_zRLjqKx4Rn2TjivL.json b/src/packs/beastforms/beastform_Mighty_Strider_zRLjqKx4Rn2TjivL.json new file mode 100644 index 00000000..e44e01e9 --- /dev/null +++ b/src/packs/beastforms/beastform_Mighty_Strider_zRLjqKx4Rn2TjivL.json @@ -0,0 +1,138 @@ +{ + "name": "Mighty Strider", + "type": "beastform", + "img": "icons/environment/creatures/horse-tan.webp", + "system": { + "beastformType": "normal", + "tier": 2, + "tokenImg": "icons/svg/mystery-man.svg", + "tokenRingImg": "icons/svg/mystery-man.svg", + "tokenSize": { + "height": null, + "width": null + }, + "mainTrait": "agility", + "advantageOn": { + "Az0LCAgV6NQMddlz": { + "value": "Leap" + }, + "6Povd6wfN4USSgbL": { + "value": "Navigate" + }, + "wnHlu70U2vvDKNIo": { + "value": "Sprint" + } + }, + "features": [ + "Compendium.daggerheart.beastforms.Item.EVOJTskJYf4rpuga", + "Compendium.daggerheart.beastforms.Item.A0lgd6eVEfX6oqSB" + ], + "evolved": { + "mainTraitBonus": 0 + }, + "hybrid": { + "beastformOptions": 2, + "advantages": 2, + "features": 2 + }, + "examples": "Camel, Horse, Zebra, etc." + }, + "effects": [ + { + "type": "beastform", + "name": "Beastform Transformation", + "img": "icons/creatures/abilities/paw-print-pair-purple.webp", + "_id": "IWg2cWUdvucUOLAL", + "system": { + "characterTokenData": { + "tokenImg": null, + "tokenRingImg": "icons/svg/mystery-man.svg", + "tokenSize": {} + }, + "advantageOn": [], + "featureIds": [], + "effectIds": [] + }, + "changes": [ + { + "key": "system.traits.agility.value", + "mode": 2, + "value": "1", + "priority": null + }, + { + "key": "system.evasion", + "mode": 2, + "value": "2", + "priority": null + }, + { + "key": "system.rules.attack.damage.diceIndex", + "mode": 5, + "value": "2", + "priority": null + }, + { + "key": "system.rules.attack.damage.bonus", + "mode": 5, + "value": "1", + "priority": null + }, + { + "key": "system.rules.attack.roll.trait", + "mode": 5, + "value": "agility", + "priority": null + } + ], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "", + "origin": null, + "tint": "#ffffff", + "transfer": true, + "statuses": [], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "FecEtPuoQh6MpjQ0", + "modifiedTime": 1753636945655 + }, + "_key": "!items.effects!zRLjqKx4Rn2TjivL.IWg2cWUdvucUOLAL" + } + ], + "folder": "Rd30i5G7Pg0HtEUT", + "ownership": { + "default": 0, + "FecEtPuoQh6MpjQ0": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753617739175, + "modifiedTime": 1753617745460, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, + "_id": "zRLjqKx4Rn2TjivL", + "sort": 200000, + "_key": "!items!zRLjqKx4Rn2TjivL" +} diff --git a/src/packs/beastforms/beastform_Mythic_Aerial_Hunter_jV6EuEacyQlHW4SN.json b/src/packs/beastforms/beastform_Mythic_Aerial_Hunter_jV6EuEacyQlHW4SN.json new file mode 100644 index 00000000..fbd60195 --- /dev/null +++ b/src/packs/beastforms/beastform_Mythic_Aerial_Hunter_jV6EuEacyQlHW4SN.json @@ -0,0 +1,141 @@ +{ + "name": "Mythic Aerial Hunter", + "type": "beastform", + "img": "icons/creatures/reptiles/dragon-winged-blue.webp", + "system": { + "beastformType": "normal", + "tier": 4, + "tokenImg": "icons/svg/mystery-man.svg", + "tokenRingImg": "icons/svg/mystery-man.svg", + "tokenSize": { + "height": null, + "width": null + }, + "mainTrait": "finesse", + "advantageOn": { + "wqIBmWSIbwwJdB07": { + "value": "Attack" + }, + "wUjIM4ohI1309Qmy": { + "value": "Deceive" + }, + "7YTz0VSytRCmpn3Y": { + "value": "Locate" + }, + "YyyzVE5FOevDKvAP": { + "value": "Navigate" + } + }, + "features": [ + "Compendium.daggerheart.beastforms.Item.EVOJTskJYf4rpuga", + "Compendium.daggerheart.beastforms.Item.QQtQ77tos8ijTHag" + ], + "evolved": { + "mainTraitBonus": 0 + }, + "hybrid": { + "beastformOptions": 2, + "advantages": 2, + "features": 2 + }, + "examples": "Dragon, Pterodactyl, Roc, Wyvern, etc." + }, + "effects": [ + { + "type": "beastform", + "name": "Beastform Transformation", + "img": "icons/creatures/abilities/paw-print-pair-purple.webp", + "_id": "hnKnaOaswWJdaYmf", + "system": { + "characterTokenData": { + "tokenImg": null, + "tokenRingImg": "icons/svg/mystery-man.svg", + "tokenSize": {} + }, + "advantageOn": [], + "featureIds": [], + "effectIds": [] + }, + "changes": [ + { + "key": "system.traits.finesse.value", + "mode": 2, + "value": "3", + "priority": null + }, + { + "key": "system.evasion", + "mode": 2, + "value": "4", + "priority": null + }, + { + "key": "system.rules.attack.damage.diceIndex", + "mode": 5, + "value": "3", + "priority": null + }, + { + "key": "system.rules.attack.damage.bonus", + "mode": 5, + "value": "11", + "priority": null + }, + { + "key": "system.rules.attack.roll.trait", + "mode": 5, + "value": "finesse", + "priority": null + } + ], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "", + "origin": null, + "tint": "#ffffff", + "transfer": true, + "statuses": [], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "FecEtPuoQh6MpjQ0", + "modifiedTime": 1753636808135 + }, + "_key": "!items.effects!jV6EuEacyQlHW4SN.hnKnaOaswWJdaYmf" + } + ], + "folder": "UQEr5SAm2Z1Aih1S", + "ownership": { + "default": 0, + "FecEtPuoQh6MpjQ0": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753628382723, + "modifiedTime": 1753628401450, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, + "_id": "jV6EuEacyQlHW4SN", + "sort": 200000, + "_key": "!items!jV6EuEacyQlHW4SN" +} diff --git a/src/packs/beastforms/beastform_Mythic_Beast_kObobka52JdpWBSu.json b/src/packs/beastforms/beastform_Mythic_Beast_kObobka52JdpWBSu.json new file mode 100644 index 00000000..d7d407a6 --- /dev/null +++ b/src/packs/beastforms/beastform_Mythic_Beast_kObobka52JdpWBSu.json @@ -0,0 +1,114 @@ +{ + "name": "Mythic Beast", + "type": "beastform", + "img": "icons/creatures/eyes/lizard-single-slit-pink.webp", + "system": { + "beastformType": "evolved", + "tier": 4, + "tokenImg": "icons/svg/mystery-man.svg", + "tokenRingImg": "icons/svg/mystery-man.svg", + "tokenSize": { + "height": null, + "width": null + }, + "mainTrait": "agility", + "advantageOn": {}, + "features": [], + "evolved": { + "mainTraitBonus": 2, + "maximumTier": 2 + }, + "hybrid": { + "beastformOptions": 2, + "advantages": 2, + "features": 2 + }, + "examples": "" + }, + "effects": [ + { + "type": "beastform", + "name": "Beastform Transformation", + "img": "icons/creatures/abilities/paw-print-pair-purple.webp", + "_id": "vhwbPQ2YT64qD1t1", + "system": { + "characterTokenData": { + "tokenImg": null, + "tokenRingImg": "icons/svg/mystery-man.svg", + "tokenSize": {} + }, + "advantageOn": [], + "featureIds": [], + "effectIds": [] + }, + "changes": [ + { + "key": "system.bonuses.damage.physical.bonus", + "mode": 2, + "value": "9", + "priority": null + }, + { + "key": "system.evasion", + "mode": 2, + "value": "3", + "priority": null + }, + { + "key": "system.rules.attack.damage.diceIndex", + "mode": 2, + "value": "1", + "priority": 60 + } + ], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "

Pick a Tier 1 or Tier 2 Beastform option and become a larger, more powerful version of that creature. While you’re in this form, you retain all traits and features from the original form and gain the the following bonuses:

  • A +9 bonus to damage rolls
  • A +2 bonus to the trait used by this form
  • A +3 bonus to Evasion
  • Your damage die increases by one size (d6 becomes d8, d8 becomes d10 etc.)
", + "origin": null, + "tint": "#ffffff", + "transfer": true, + "statuses": [], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "FecEtPuoQh6MpjQ0", + "modifiedTime": 1753636223126 + }, + "_key": "!items.effects!kObobka52JdpWBSu.vhwbPQ2YT64qD1t1" + } + ], + "folder": "UQEr5SAm2Z1Aih1S", + "ownership": { + "default": 0, + "FecEtPuoQh6MpjQ0": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753628844905, + "modifiedTime": 1753628844905, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, + "_id": "kObobka52JdpWBSu", + "sort": 0, + "_key": "!items!kObobka52JdpWBSu" +} diff --git a/src/packs/beastforms/beastform_Mythic_Hybrid_WAbxCf2An8qmxyJ1.json b/src/packs/beastforms/beastform_Mythic_Hybrid_WAbxCf2An8qmxyJ1.json new file mode 100644 index 00000000..c0be75db --- /dev/null +++ b/src/packs/beastforms/beastform_Mythic_Hybrid_WAbxCf2An8qmxyJ1.json @@ -0,0 +1,126 @@ +{ + "name": "Mythic Hybrid", + "type": "beastform", + "img": "icons/creatures/magical/spirit-undead-horned-blue.webp", + "system": { + "beastformType": "hybrid", + "tier": 4, + "tokenImg": "icons/svg/mystery-man.svg", + "tokenRingImg": "icons/svg/mystery-man.svg", + "tokenSize": { + "height": null, + "width": null + }, + "mainTrait": "strength", + "advantageOn": {}, + "features": [], + "evolved": { + "mainTraitBonus": 0 + }, + "hybrid": { + "beastformOptions": 3, + "advantages": 5, + "features": 3, + "maximumTier": 3 + }, + "examples": "" + }, + "effects": [ + { + "type": "beastform", + "name": "Beastform Transformation", + "img": "icons/creatures/abilities/paw-print-pair-purple.webp", + "_id": "HutJQ9HGtr1Eoibp", + "system": { + "characterTokenData": { + "tokenImg": null, + "tokenRingImg": "icons/svg/mystery-man.svg", + "tokenSize": {} + }, + "advantageOn": [], + "featureIds": [], + "effectIds": [] + }, + "changes": [ + { + "key": "system.traits.strength.value", + "mode": 2, + "value": "3", + "priority": null + }, + { + "key": "system.evasion", + "mode": 2, + "value": "2", + "priority": null + }, + { + "key": "system.rules.attack.damage.diceIndex", + "mode": 5, + "value": "4", + "priority": null + }, + { + "key": "system.rules.attack.damage.bonus", + "mode": 5, + "value": "10", + "priority": null + }, + { + "key": "system.rules.attack.roll.trait", + "mode": 5, + "value": "strength", + "priority": null + } + ], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "

To transform into this creature, mark 2 additional Stress. Choose any three Beastform options from Tiers 1–3. Choose a total of five advantages and three features from those options.

", + "origin": null, + "tint": "#ffffff", + "transfer": true, + "statuses": [], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "FecEtPuoQh6MpjQ0", + "modifiedTime": 1753636821848 + }, + "_key": "!items.effects!WAbxCf2An8qmxyJ1.HutJQ9HGtr1Eoibp" + } + ], + "folder": "UQEr5SAm2Z1Aih1S", + "ownership": { + "default": 0, + "FecEtPuoQh6MpjQ0": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753628965658, + "modifiedTime": 1753628965658, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, + "_id": "WAbxCf2An8qmxyJ1", + "sort": 0, + "_key": "!items!WAbxCf2An8qmxyJ1" +} diff --git a/src/packs/beastforms/beastform_Nimble_Grazer_CItO8yX6amQaqyk7.json b/src/packs/beastforms/beastform_Nimble_Grazer_CItO8yX6amQaqyk7.json new file mode 100644 index 00000000..926b8739 --- /dev/null +++ b/src/packs/beastforms/beastform_Nimble_Grazer_CItO8yX6amQaqyk7.json @@ -0,0 +1,132 @@ +{ + "name": "Nimble Grazer", + "type": "beastform", + "img": "icons/creatures/mammals/deer-antlers-glowing-blue.webp", + "system": { + "beastformType": "normal", + "tier": 1, + "tokenImg": "icons/svg/mystery-man.svg", + "tokenRingImg": "icons/svg/mystery-man.svg", + "tokenSize": { + "height": null, + "width": null + }, + "mainTrait": "agility", + "advantageOn": { + "pZh7UYwWgdddKX77": { + "value": "Leap" + }, + "MVO36LtrjuSU4cAv": { + "value": "Sneak" + }, + "P9W2JIx0FJgQf6b6": { + "value": "Sprint" + } + }, + "features": [ + "Compendium.daggerheart.beastforms.Item.a7Qvmm14nx9BCysA", + "Compendium.daggerheart.beastforms.Item.QFg1hNCEoKVDd9Zo" + ], + "evolved": { + "mainTraitBonus": 0 + }, + "hybrid": { + "beastformOptions": 2, + "advantages": 2, + "features": 2 + }, + "examples": "Deer, Gazelle, Goat, etc." + }, + "effects": [ + { + "type": "beastform", + "name": "Beastform Transformation", + "img": "icons/creatures/abilities/paw-print-pair-purple.webp", + "_id": "lIbJFb5XQ98Eaauu", + "system": { + "characterTokenData": { + "tokenImg": null, + "tokenRingImg": "icons/svg/mystery-man.svg", + "tokenSize": {} + }, + "advantageOn": [], + "featureIds": [], + "effectIds": [] + }, + "changes": [ + { + "key": "system.traits.agility.value", + "mode": 2, + "value": "1", + "priority": null + }, + { + "key": "system.evasion", + "mode": 2, + "value": "3", + "priority": null + }, + { + "key": "system.rules.attack.damage.diceIndex", + "mode": 5, + "value": "1", + "priority": null + }, + { + "key": "system.rules.attack.roll.trait", + "mode": 5, + "value": "agility", + "priority": null + } + ], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "", + "origin": null, + "tint": "#ffffff", + "transfer": true, + "statuses": [], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "FecEtPuoQh6MpjQ0", + "modifiedTime": 1753637082422 + }, + "_key": "!items.effects!CItO8yX6amQaqyk7.lIbJFb5XQ98Eaauu" + } + ], + "folder": "nhnRdZgSSrE9myIX", + "ownership": { + "default": 0, + "FecEtPuoQh6MpjQ0": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753574930310, + "modifiedTime": 1753575463479, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, + "_id": "CItO8yX6amQaqyk7", + "sort": 300000, + "_key": "!items!CItO8yX6amQaqyk7" +} diff --git a/src/packs/beastforms/beastform_Pack_Predator_YLisKYYhAGca50WM.json b/src/packs/beastforms/beastform_Pack_Predator_YLisKYYhAGca50WM.json new file mode 100644 index 00000000..38150adb --- /dev/null +++ b/src/packs/beastforms/beastform_Pack_Predator_YLisKYYhAGca50WM.json @@ -0,0 +1,138 @@ +{ + "name": "Pack Predator", + "type": "beastform", + "img": "icons/creatures/mammals/wolf-howl-moon-forest-blue.webp", + "system": { + "beastformType": "normal", + "tier": 1, + "tokenImg": "icons/svg/mystery-man.svg", + "tokenRingImg": "icons/svg/mystery-man.svg", + "tokenSize": { + "height": null, + "width": null + }, + "mainTrait": "strength", + "advantageOn": { + "WwCjWpa7n6KcP3kY": { + "value": "Attack" + }, + "oNzBOc2bkcb7CrQk": { + "value": "Sprint" + }, + "wtz5CPetdNzXTyBA": { + "value": "Track" + } + }, + "features": [ + "Compendium.daggerheart.beastforms.Item.8u0HkK3WgtU9lWYs", + "Compendium.daggerheart.beastforms.Item.d3q8lfeiEMyTjusT" + ], + "evolved": { + "mainTraitBonus": 0 + }, + "hybrid": { + "beastformOptions": 2, + "advantages": 2, + "features": 2 + }, + "examples": "Coyote, Hyena, Wolf, etc." + }, + "effects": [ + { + "type": "beastform", + "name": "Beastform Transformation", + "img": "icons/creatures/abilities/paw-print-pair-purple.webp", + "_id": "amuFS9LlEnzZnaIN", + "system": { + "characterTokenData": { + "tokenImg": null, + "tokenRingImg": "icons/svg/mystery-man.svg", + "tokenSize": {} + }, + "advantageOn": [], + "featureIds": [], + "effectIds": [] + }, + "changes": [ + { + "key": "system.traits.strength.value", + "mode": 2, + "value": "2", + "priority": null + }, + { + "key": "system.evasion", + "mode": 2, + "value": "1", + "priority": null + }, + { + "key": "system.rules.attack.damage.diceIndex", + "mode": 5, + "value": "2", + "priority": null + }, + { + "key": "system.rules.attack.damage.bonus", + "mode": 5, + "value": "2", + "priority": null + }, + { + "key": "system.rules.attack.roll.trait", + "mode": 5, + "value": "strength", + "priority": null + } + ], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "", + "origin": null, + "tint": "#ffffff", + "transfer": true, + "statuses": [], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "FecEtPuoQh6MpjQ0", + "modifiedTime": 1753637098077 + }, + "_key": "!items.effects!YLisKYYhAGca50WM.amuFS9LlEnzZnaIN" + } + ], + "folder": "nhnRdZgSSrE9myIX", + "ownership": { + "default": 0, + "FecEtPuoQh6MpjQ0": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753575274807, + "modifiedTime": 1753575463479, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, + "_id": "YLisKYYhAGca50WM", + "sort": 400000, + "_key": "!items!YLisKYYhAGca50WM" +} diff --git a/src/packs/beastforms/beastform_Pouncing_Predator_33oFSZ1PwFqInHPe.json b/src/packs/beastforms/beastform_Pouncing_Predator_33oFSZ1PwFqInHPe.json new file mode 100644 index 00000000..9073bb23 --- /dev/null +++ b/src/packs/beastforms/beastform_Pouncing_Predator_33oFSZ1PwFqInHPe.json @@ -0,0 +1,138 @@ +{ + "name": "Pouncing Predator", + "type": "beastform", + "img": "icons/creatures/abilities/cougar-roar-rush-orange.webp", + "system": { + "beastformType": "normal", + "tier": 2, + "tokenImg": "icons/svg/mystery-man.svg", + "tokenRingImg": "icons/svg/mystery-man.svg", + "tokenSize": { + "height": null, + "width": null + }, + "mainTrait": "instinct", + "advantageOn": { + "q5bjThxdJ1JAuX2r": { + "value": "Attack" + }, + "paOxE0DUkqKYVbss": { + "value": "Climb" + }, + "nDnJf1tiImA6ryyy": { + "value": "Sneak" + } + }, + "features": [ + "Compendium.daggerheart.beastforms.Item.GhHsSHOa509cwCvr", + "Compendium.daggerheart.beastforms.Item.0ey4kM9ssj2otHvb" + ], + "evolved": { + "mainTraitBonus": 0 + }, + "hybrid": { + "beastformOptions": 2, + "advantages": 2, + "features": 2 + }, + "examples": "Cheetah, Lion, Panther, etc." + }, + "effects": [ + { + "type": "beastform", + "name": "Beastform Transformation", + "img": "icons/creatures/abilities/paw-print-pair-purple.webp", + "_id": "GSmW6nJ3kyIoEK2H", + "system": { + "characterTokenData": { + "tokenImg": null, + "tokenRingImg": "icons/svg/mystery-man.svg", + "tokenSize": {} + }, + "advantageOn": [], + "featureIds": [], + "effectIds": [] + }, + "changes": [ + { + "key": "system.traits.instinct.value", + "mode": 2, + "value": "1", + "priority": null + }, + { + "key": "system.evasion", + "mode": 2, + "value": "3", + "priority": null + }, + { + "key": "system.rules.attack.damage.diceIndex", + "mode": 5, + "value": "2", + "priority": null + }, + { + "key": "system.rules.attack.damage.bonus", + "mode": 5, + "value": "6", + "priority": null + }, + { + "key": "system.rules.attack.roll.trait", + "mode": 5, + "value": "instinct", + "priority": null + } + ], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "", + "origin": null, + "tint": "#ffffff", + "transfer": true, + "statuses": [], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "FecEtPuoQh6MpjQ0", + "modifiedTime": 1753636957124 + }, + "_key": "!items.effects!33oFSZ1PwFqInHPe.GSmW6nJ3kyIoEK2H" + } + ], + "folder": "Rd30i5G7Pg0HtEUT", + "ownership": { + "default": 0, + "FecEtPuoQh6MpjQ0": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753621789186, + "modifiedTime": 1753621803375, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, + "_id": "33oFSZ1PwFqInHPe", + "sort": 0, + "_key": "!items!33oFSZ1PwFqInHPe" +} diff --git a/src/packs/beastforms/beastform_Powerful_Beast_m8BVTuJI1wCvzTcf.json b/src/packs/beastforms/beastform_Powerful_Beast_m8BVTuJI1wCvzTcf.json new file mode 100644 index 00000000..17d55206 --- /dev/null +++ b/src/packs/beastforms/beastform_Powerful_Beast_m8BVTuJI1wCvzTcf.json @@ -0,0 +1,138 @@ +{ + "name": "Powerful Beast", + "type": "beastform", + "img": "icons/creatures/abilities/bear-roar-bite-brown-green.webp", + "system": { + "beastformType": "normal", + "tier": 2, + "tokenImg": "icons/svg/mystery-man.svg", + "tokenRingImg": "icons/svg/mystery-man.svg", + "tokenSize": { + "height": null, + "width": null + }, + "mainTrait": "strength", + "advantageOn": { + "LhmE20iV5HBExx0A": { + "value": "Navigate" + }, + "EP4KQJfmXWGomsVC": { + "value": "Protect" + }, + "lMMv1eTry3N6rZCx": { + "value": "Scare" + } + }, + "features": [ + "Compendium.daggerheart.beastforms.Item.8upqfcZvi7b5hRLE", + "Compendium.daggerheart.beastforms.Item.ZYbdXaWVj2zdcmaK" + ], + "evolved": { + "mainTraitBonus": 0 + }, + "hybrid": { + "beastformOptions": 2, + "advantages": 2, + "features": 2 + }, + "examples": "Bear, Bull, Moose, etc." + }, + "effects": [ + { + "type": "beastform", + "name": "Beastform Transformation", + "img": "icons/creatures/abilities/paw-print-pair-purple.webp", + "_id": "AZGTvqzFVHa4wS1a", + "system": { + "characterTokenData": { + "tokenImg": null, + "tokenRingImg": "icons/svg/mystery-man.svg", + "tokenSize": {} + }, + "advantageOn": [], + "featureIds": [], + "effectIds": [] + }, + "changes": [ + { + "key": "system.traits.strength.value", + "mode": 2, + "value": "1", + "priority": null + }, + { + "key": "system.evasion", + "mode": 2, + "value": "3", + "priority": null + }, + { + "key": "system.rules.attack.damage.diceIndex", + "mode": 5, + "value": "3", + "priority": null + }, + { + "key": "system.rules.attack.damage.bonus", + "mode": 5, + "value": "4", + "priority": null + }, + { + "key": "system.rules.attack.roll.trait", + "mode": 5, + "value": "strength", + "priority": null + } + ], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "", + "origin": null, + "tint": "#ffffff", + "transfer": true, + "statuses": [], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "FecEtPuoQh6MpjQ0", + "modifiedTime": 1753636973034 + }, + "_key": "!items.effects!m8BVTuJI1wCvzTcf.AZGTvqzFVHa4wS1a" + } + ], + "folder": "Rd30i5G7Pg0HtEUT", + "ownership": { + "default": 0, + "FecEtPuoQh6MpjQ0": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753582598510, + "modifiedTime": 1753617739186, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, + "_id": "m8BVTuJI1wCvzTcf", + "sort": 300000, + "_key": "!items!m8BVTuJI1wCvzTcf" +} diff --git a/src/packs/beastforms/beastform_Stalking_Arachnid_A4TVRY0D5r9EiVwA.json b/src/packs/beastforms/beastform_Stalking_Arachnid_A4TVRY0D5r9EiVwA.json new file mode 100644 index 00000000..98a949ff --- /dev/null +++ b/src/packs/beastforms/beastform_Stalking_Arachnid_A4TVRY0D5r9EiVwA.json @@ -0,0 +1,138 @@ +{ + "name": "Stalking Arachnid", + "type": "beastform", + "img": "icons/creatures/invertebrates/spider-mandibles-brown.webp", + "system": { + "beastformType": "normal", + "tier": 1, + "tokenImg": "icons/svg/mystery-man.svg", + "tokenRingImg": "icons/svg/mystery-man.svg", + "tokenSize": { + "height": null, + "width": null + }, + "mainTrait": "finesse", + "advantageOn": { + "udIR54Etg9sx2XbM": { + "value": "Attack" + }, + "6On5GDzLxq6bao36": { + "value": "Climb" + }, + "IZjCaeEmcRBzGeDn": { + "value": "Sneak" + } + }, + "features": [ + "Compendium.daggerheart.beastforms.Item.2KlTnfzO03vneVS8", + "Compendium.daggerheart.beastforms.Item.D73fS1iM4SZPFimu" + ], + "evolved": { + "mainTraitBonus": 0 + }, + "hybrid": { + "beastformOptions": 2, + "advantages": 2, + "features": 2 + }, + "examples": "Tarantula, Wolf Spider, etc." + }, + "effects": [ + { + "type": "beastform", + "name": "Beastform Transformation", + "img": "icons/creatures/abilities/paw-print-pair-purple.webp", + "_id": "YkZX2yc2X0QDFPBG", + "system": { + "characterTokenData": { + "tokenImg": null, + "tokenRingImg": "icons/svg/mystery-man.svg", + "tokenSize": {} + }, + "advantageOn": [], + "featureIds": [], + "effectIds": [] + }, + "changes": [ + { + "key": "system.traits.finesse.value", + "mode": 2, + "value": "1", + "priority": null + }, + { + "key": "system.evasion", + "mode": 2, + "value": "2", + "priority": null + }, + { + "key": "system.rules.attack.damage.diceIndex", + "mode": 5, + "value": "1", + "priority": null + }, + { + "key": "system.rules.attack.damage.bonus", + "mode": 5, + "value": "1", + "priority": null + }, + { + "key": "system.rules.attack.roll.trait", + "mode": 5, + "value": "finesse", + "priority": null + } + ], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "", + "origin": null, + "tint": "#ffffff", + "transfer": true, + "statuses": [], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "FecEtPuoQh6MpjQ0", + "modifiedTime": 1753637113589 + }, + "_key": "!items.effects!A4TVRY0D5r9EiVwA.YkZX2yc2X0QDFPBG" + } + ], + "folder": "nhnRdZgSSrE9myIX", + "ownership": { + "default": 0, + "FecEtPuoQh6MpjQ0": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753576016472, + "modifiedTime": 1753576046773, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, + "_id": "A4TVRY0D5r9EiVwA", + "sort": 0, + "_key": "!items!A4TVRY0D5r9EiVwA" +} diff --git a/src/packs/beastforms/beastform_Striking_Serpent_1XrZWGDttBAAUxR1.json b/src/packs/beastforms/beastform_Striking_Serpent_1XrZWGDttBAAUxR1.json new file mode 100644 index 00000000..3f4a5dbb --- /dev/null +++ b/src/packs/beastforms/beastform_Striking_Serpent_1XrZWGDttBAAUxR1.json @@ -0,0 +1,138 @@ +{ + "name": "Striking Serpent", + "type": "beastform", + "img": "icons/creatures/reptiles/serpent-horned-green.webp", + "system": { + "beastformType": "normal", + "tier": 2, + "tokenImg": "icons/svg/mystery-man.svg", + "tokenRingImg": "icons/svg/mystery-man.svg", + "tokenSize": { + "height": null, + "width": null + }, + "mainTrait": "finesse", + "advantageOn": { + "5bQks8eptInw0g9i": { + "value": "Climb" + }, + "j0mztP3MfVkA8KVL": { + "value": "Deceive" + }, + "yuIbmhAqfJmtzE6x": { + "value": "Sprint" + } + }, + "features": [ + "Compendium.daggerheart.beastforms.Item.uW3853pViM9VAfHb", + "Compendium.daggerheart.beastforms.Item.cTlqpQZPy5TvdDAT" + ], + "evolved": { + "mainTraitBonus": 0 + }, + "hybrid": { + "beastformOptions": 2, + "advantages": 2, + "features": 2 + }, + "examples": "Cobra, Rattlesnake, Viper, etc." + }, + "effects": [ + { + "type": "beastform", + "name": "Beastform Transformation", + "img": "icons/creatures/abilities/paw-print-pair-purple.webp", + "_id": "qGhLojWa5430zRd1", + "system": { + "characterTokenData": { + "tokenImg": null, + "tokenRingImg": "icons/svg/mystery-man.svg", + "tokenSize": {} + }, + "advantageOn": [], + "featureIds": [], + "effectIds": [] + }, + "changes": [ + { + "key": "system.traits.finesse.value", + "mode": 2, + "value": "1", + "priority": null + }, + { + "key": "system.evasion", + "mode": 2, + "value": "2", + "priority": null + }, + { + "key": "system.rules.attack.damage.diceIndex", + "mode": 5, + "value": "2", + "priority": null + }, + { + "key": "system.rules.attack.damage.bonus", + "mode": 5, + "value": "4", + "priority": null + }, + { + "key": "system.rules.attack.roll.trait", + "mode": 5, + "value": "finesse", + "priority": null + } + ], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "", + "origin": null, + "tint": "#ffffff", + "transfer": true, + "statuses": [], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "FecEtPuoQh6MpjQ0", + "modifiedTime": 1753635875178 + }, + "_key": "!items.effects!1XrZWGDttBAAUxR1.qGhLojWa5430zRd1" + } + ], + "folder": "Rd30i5G7Pg0HtEUT", + "ownership": { + "default": 0, + "FecEtPuoQh6MpjQ0": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753621251793, + "modifiedTime": 1753621266619, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, + "_id": "1XrZWGDttBAAUxR1", + "sort": 0, + "_key": "!items!1XrZWGDttBAAUxR1" +} diff --git a/src/packs/beastforms/beastform_Terrible_Lizard_5BABxRe2XVrYTj8N.json b/src/packs/beastforms/beastform_Terrible_Lizard_5BABxRe2XVrYTj8N.json new file mode 100644 index 00000000..0614d763 --- /dev/null +++ b/src/packs/beastforms/beastform_Terrible_Lizard_5BABxRe2XVrYTj8N.json @@ -0,0 +1,141 @@ +{ + "name": "Terrible Lizard", + "type": "beastform", + "img": "icons/creatures/abilities/dragon-breath-purple.webp", + "system": { + "beastformType": "normal", + "tier": 4, + "tokenImg": "icons/svg/mystery-man.svg", + "tokenRingImg": "icons/svg/mystery-man.svg", + "tokenSize": { + "height": null, + "width": null + }, + "mainTrait": "strength", + "advantageOn": { + "onvcDZ0vtg88AjUn": { + "value": "Attack" + }, + "poo5ToKvpeI1Kvr3": { + "value": "Deceive" + }, + "oPA8ogGHNDvxrJps": { + "value": "Scare" + }, + "BIdGziN8wJX0iaHQ": { + "value": "Track" + } + }, + "features": [ + "Compendium.daggerheart.beastforms.Item.HJbQcKWcFZ9NoFxs", + "Compendium.daggerheart.beastforms.Item.9QkZSeuEKgXtlpHc" + ], + "evolved": { + "mainTraitBonus": 0 + }, + "hybrid": { + "beastformOptions": 2, + "advantages": 2, + "features": 2 + }, + "examples": "Brachiosaurus, Tyrannosaurus, etc." + }, + "effects": [ + { + "type": "beastform", + "name": "Beastform Transformation", + "img": "icons/creatures/abilities/paw-print-pair-purple.webp", + "_id": "qPtjZIkRVm68TGHN", + "system": { + "characterTokenData": { + "tokenImg": null, + "tokenRingImg": "icons/svg/mystery-man.svg", + "tokenSize": {} + }, + "advantageOn": [], + "featureIds": [], + "effectIds": [] + }, + "changes": [ + { + "key": "system.traits.strength.value", + "mode": 2, + "value": "3", + "priority": null + }, + { + "key": "system.evasion", + "mode": 2, + "value": "2", + "priority": null + }, + { + "key": "system.rules.attack.damage.diceIndex", + "mode": 5, + "value": "4", + "priority": null + }, + { + "key": "system.rules.attack.damage.bonus", + "mode": 5, + "value": "10", + "priority": null + }, + { + "key": "system.rules.attack.roll.trait", + "mode": 5, + "value": "strength", + "priority": null + } + ], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "", + "origin": null, + "tint": "#ffffff", + "transfer": true, + "statuses": [], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "FecEtPuoQh6MpjQ0", + "modifiedTime": 1753636836057 + }, + "_key": "!items.effects!5BABxRe2XVrYTj8N.qPtjZIkRVm68TGHN" + } + ], + "folder": "UQEr5SAm2Z1Aih1S", + "ownership": { + "default": 0, + "FecEtPuoQh6MpjQ0": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753628213224, + "modifiedTime": 1753628382733, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, + "_id": "5BABxRe2XVrYTj8N", + "sort": 300000, + "_key": "!items!5BABxRe2XVrYTj8N" +} diff --git a/src/packs/beastforms/beastform_Winged_Beast_mZ4Wlqtss2FlNNvL.json b/src/packs/beastforms/beastform_Winged_Beast_mZ4Wlqtss2FlNNvL.json new file mode 100644 index 00000000..352b7124 --- /dev/null +++ b/src/packs/beastforms/beastform_Winged_Beast_mZ4Wlqtss2FlNNvL.json @@ -0,0 +1,138 @@ +{ + "name": "Winged Beast", + "type": "beastform", + "img": "icons/creatures/birds/raptor-owl-flying-moon.webp", + "system": { + "beastformType": "normal", + "tier": 2, + "tokenImg": "icons/svg/mystery-man.svg", + "tokenRingImg": "icons/svg/mystery-man.svg", + "tokenSize": { + "height": null, + "width": null + }, + "mainTrait": "finesse", + "advantageOn": { + "DgZ77yPVJqNq7rxY": { + "value": "Deceive" + }, + "HCH9ogsxcP0r3fU2": { + "value": "Locate" + }, + "WST3bOmxoIeSHYqX": { + "value": "Scare" + } + }, + "features": [ + "Compendium.daggerheart.beastforms.Item.FNKQlWQcArSorMPK", + "Compendium.daggerheart.beastforms.Item.xVgmXhj2YgeqS1KK" + ], + "evolved": { + "mainTraitBonus": 0 + }, + "hybrid": { + "beastformOptions": 2, + "advantages": 2, + "features": 2 + }, + "examples": "Hawk, Owl, Raven, etc." + }, + "effects": [ + { + "type": "beastform", + "name": "Beastform Transformation", + "img": "icons/creatures/abilities/paw-print-pair-purple.webp", + "_id": "Ln3atrxiqtPA0Wi6", + "system": { + "characterTokenData": { + "tokenImg": null, + "tokenRingImg": "icons/svg/mystery-man.svg", + "tokenSize": {} + }, + "advantageOn": [], + "featureIds": [], + "effectIds": [] + }, + "changes": [ + { + "key": "system.traits.finesse.value", + "mode": 2, + "value": "1", + "priority": null + }, + { + "key": "system.evasion", + "mode": 2, + "value": "3", + "priority": null + }, + { + "key": "system.rules.attack.damage.diceIndex", + "mode": 5, + "value": "0", + "priority": null + }, + { + "key": "system.rules.attack.damage.bonus", + "mode": 5, + "value": "2", + "priority": null + }, + { + "key": "system.rules.attack.roll.trait", + "mode": 5, + "value": "finesse", + "priority": null + } + ], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "", + "origin": null, + "tint": "#ffffff", + "transfer": true, + "statuses": [], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "FecEtPuoQh6MpjQ0", + "modifiedTime": 1753637037576 + }, + "_key": "!items.effects!mZ4Wlqtss2FlNNvL.Ln3atrxiqtPA0Wi6" + } + ], + "folder": "Rd30i5G7Pg0HtEUT", + "ownership": { + "default": 0, + "FecEtPuoQh6MpjQ0": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753624952844, + "modifiedTime": 1753624972889, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, + "_id": "mZ4Wlqtss2FlNNvL", + "sort": 0, + "_key": "!items!mZ4Wlqtss2FlNNvL" +} diff --git a/src/packs/beastforms/feature_Agile_xLS5YT1B6yeCiNTg.json b/src/packs/beastforms/feature_Agile_xLS5YT1B6yeCiNTg.json new file mode 100644 index 00000000..d36699a4 --- /dev/null +++ b/src/packs/beastforms/feature_Agile_xLS5YT1B6yeCiNTg.json @@ -0,0 +1,65 @@ +{ + "name": "Agile", + "type": "feature", + "img": "icons/skills/movement/arrow-upward-yellow.webp", + "system": { + "description": "

Your movement is silent, and you can spend a Hope to move up to Far range without rolling.

", + "resource": null, + "actions": { + "4yQ56hSL5LBkzrV6": { + "type": "effect", + "_id": "4yQ56hSL5LBkzrV6", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [ + { + "keyIsID": false, + "key": "hope", + "value": 1, + "scalable": false, + "step": null + } + ], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "effects": [], + "target": { + "type": null, + "amount": null + }, + "name": "Spend Hope", + "img": "icons/skills/movement/arrow-upward-yellow.webp", + "range": "" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": "uU8bIoZvXge0rLaU", + "ownership": { + "default": 0, + "FecEtPuoQh6MpjQ0": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753569752255, + "modifiedTime": 1753628206133, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, + "_id": "xLS5YT1B6yeCiNTg", + "sort": 2700000, + "_key": "!items!xLS5YT1B6yeCiNTg" +} diff --git a/src/packs/beastforms/feature_Aquatic_kQWWx9P3fCyGSVOI.json b/src/packs/beastforms/feature_Aquatic_kQWWx9P3fCyGSVOI.json new file mode 100644 index 00000000..fc8862c7 --- /dev/null +++ b/src/packs/beastforms/feature_Aquatic_kQWWx9P3fCyGSVOI.json @@ -0,0 +1,34 @@ +{ + "name": "Aquatic", + "type": "feature", + "img": "icons/magic/water/bubbles-air-water-light.webp", + "system": { + "description": "

You can breathe and move naturally underwater.

", + "resource": null, + "actions": {}, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": "uU8bIoZvXge0rLaU", + "ownership": { + "default": 0, + "FecEtPuoQh6MpjQ0": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753575456927, + "modifiedTime": 1753628206133, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, + "_id": "kQWWx9P3fCyGSVOI", + "sort": 2100000, + "_key": "!items!kQWWx9P3fCyGSVOI" +} diff --git a/src/packs/beastforms/feature_Armored_Shell_nDQZdIF2epKlhauX.json b/src/packs/beastforms/feature_Armored_Shell_nDQZdIF2epKlhauX.json new file mode 100644 index 00000000..5ff9b259 --- /dev/null +++ b/src/packs/beastforms/feature_Armored_Shell_nDQZdIF2epKlhauX.json @@ -0,0 +1,155 @@ +{ + "name": "Armored Shell", + "type": "feature", + "img": "icons/creatures/reptiles/turtle-shell-glowing-green.webp", + "system": { + "description": "

Your hardened exterior gives you resistance to physical damage. Additionally, mark an Armor Slot to retract into your shell. While in your shell, physical damage is reduced by a number equal to your Armor Score (after applying resistance), but you can’t perform other actions without leaving this form.

", + "resource": null, + "actions": { + "15XSCpCAZ2JLspmN": { + "type": "effect", + "_id": "15XSCpCAZ2JLspmN", + "systemPath": "actions", + "description": "

Mark an Armor Slot to retract into your shell. While in your shell, physical damage is reduced by a number equal to your Armor Score (after applying resistance), but you can’t perform other actions without leaving this form.

", + "chatDisplay": true, + "actionType": "action", + "cost": [ + { + "scalable": false, + "key": "armor", + "value": 1, + "keyIsID": false, + "step": null + } + ], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "effects": [ + { + "_id": "OY3lEB3vuDKNLzxv", + "onSave": false + } + ], + "target": { + "type": "self", + "amount": null + }, + "name": "Retract", + "img": "icons/creatures/reptiles/turtle-shell-glowing-green.webp", + "range": "" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [ + { + "name": "Armored Shell", + "type": "base", + "_id": "XFmEC0kDQJNrGbtr", + "img": "icons/creatures/reptiles/turtle-shell-glowing-green.webp", + "system": {}, + "changes": [ + { + "key": "system.resistance.physical.resistance", + "mode": 5, + "value": "1", + "priority": null + } + ], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "

Your hardened exterior gives you resistance to physical damage.

", + "origin": null, + "tint": "#ffffff", + "transfer": true, + "statuses": [], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": null + }, + "_key": "!items.effects!nDQZdIF2epKlhauX.XFmEC0kDQJNrGbtr" + }, + { + "name": "Retracted", + "img": "icons/creatures/reptiles/turtle-shell-glowing-green.webp", + "origin": "Item.WqNiQYeaRVGPWpm0", + "transfer": false, + "_id": "OY3lEB3vuDKNLzxv", + "type": "base", + "system": {}, + "changes": [ + { + "key": "system.resistance.physical.reduction", + "mode": 2, + "value": "@system.armorScore", + "priority": null + } + ], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "

While in your shell, physical damage is reduced by a number equal to your Armor Score (after applying resistance), but you can’t perform other actions without leaving this form.

", + "tint": "#ffffff", + "statuses": [], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": null + }, + "_key": "!items.effects!nDQZdIF2epKlhauX.OY3lEB3vuDKNLzxv" + } + ], + "folder": "uU8bIoZvXge0rLaU", + "ownership": { + "default": 0, + "FecEtPuoQh6MpjQ0": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753580983699, + "modifiedTime": 1753628206133, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, + "_id": "nDQZdIF2epKlhauX", + "sort": 2200000, + "_key": "!items!nDQZdIF2epKlhauX" +} diff --git a/src/packs/beastforms/feature_Bird_s_Eye_View_FNKQlWQcArSorMPK.json b/src/packs/beastforms/feature_Bird_s_Eye_View_FNKQlWQcArSorMPK.json new file mode 100644 index 00000000..83fdfab1 --- /dev/null +++ b/src/packs/beastforms/feature_Bird_s_Eye_View_FNKQlWQcArSorMPK.json @@ -0,0 +1,57 @@ +{ + "name": "Bird's-Eye View", + "type": "feature", + "img": "icons/creatures/eyes/humanoid-single-red-brown.webp", + "system": { + "description": "

You can fly at will. Once per rest while you are airborne, you can ask the GM a question about the scene below you without needing to roll. The first time a character makes a roll to act on this information, they gain advantage on the roll.

", + "resource": null, + "actions": { + "JRCE5826Yhh09aaI": { + "type": "effect", + "_id": "JRCE5826Yhh09aaI", + "systemPath": "actions", + "description": "

Once per rest while you are airborne, you can ask the GM a question about the scene below you without needing to roll. The first time a character makes a roll to act on this information, they gain advantage on the roll.

", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": 0, + "max": 1, + "recovery": "shortRest" + }, + "effects": [], + "target": { + "type": null, + "amount": null + }, + "name": "Ask Question", + "img": "icons/creatures/eyes/humanoid-single-red-brown.webp", + "range": "" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": "uU8bIoZvXge0rLaU", + "ownership": { + "default": 0, + "FecEtPuoQh6MpjQ0": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753624947561, + "modifiedTime": 1753628206133, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, + "_id": "FNKQlWQcArSorMPK", + "sort": 1400000, + "_key": "!items!FNKQlWQcArSorMPK" +} diff --git a/src/packs/beastforms/feature_Cannonball_jp5KpPRBFBOIs46Q.json b/src/packs/beastforms/feature_Cannonball_jp5KpPRBFBOIs46Q.json new file mode 100644 index 00000000..7b714c75 --- /dev/null +++ b/src/packs/beastforms/feature_Cannonball_jp5KpPRBFBOIs46Q.json @@ -0,0 +1,87 @@ +{ + "name": "Cannonball", + "type": "feature", + "img": "icons/skills/movement/ball-spinning-blue.webp", + "system": { + "description": "

Mark a Stress to allow an ally to throw or launch you at an adversary. To do so, the ally makes an attack roll using Agility or Strength (their choice) against a target within Close range. On a success, the adversary takes d12+2 physical damage using the thrower’s Proficiency. You can spend a Hope to target an additional adversary within Very Close range of the first. The second target takes half the damage dealt to the first target.

", + "resource": null, + "actions": { + "5Vxm8LyBHE1GYbsv": { + "type": "effect", + "_id": "5Vxm8LyBHE1GYbsv", + "systemPath": "actions", + "description": "

Mark a Stress to allow an ally to throw or launch you at an adversary. To do so, the ally makes an attack roll using Agility or Strength (their choice) against a target within Close range. On a success, the adversary takes d12+2 physical damage using the thrower’s Proficiency.

", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "effects": [], + "target": { + "type": "any", + "amount": 1 + }, + "name": "Cannonball", + "img": "icons/skills/movement/ball-spinning-blue.webp", + "range": "close" + }, + "QCQzArBrajYi2D2I": { + "type": "effect", + "_id": "QCQzArBrajYi2D2I", + "systemPath": "actions", + "description": "

You can spend a Hope to target an additional adversary within Very Close range of the first. The second target takes half the damage dealt to the first target.

", + "chatDisplay": true, + "actionType": "action", + "cost": [ + { + "keyIsID": false, + "key": "hope", + "value": 1, + "scalable": false, + "step": null + } + ], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "effects": [], + "target": { + "type": null, + "amount": null + }, + "name": "Spend Hope", + "img": "icons/magic/defensive/shield-barrier-deflect-teal.webp", + "range": "veryClose" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": "uU8bIoZvXge0rLaU", + "ownership": { + "default": 0, + "FecEtPuoQh6MpjQ0": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753580984811, + "modifiedTime": 1753628206133, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, + "_id": "jp5KpPRBFBOIs46Q", + "sort": 1900000, + "_key": "!items!jp5KpPRBFBOIs46Q" +} diff --git a/src/packs/beastforms/feature_Carrier_EVOJTskJYf4rpuga.json b/src/packs/beastforms/feature_Carrier_EVOJTskJYf4rpuga.json new file mode 100644 index 00000000..4a0dcae2 --- /dev/null +++ b/src/packs/beastforms/feature_Carrier_EVOJTskJYf4rpuga.json @@ -0,0 +1,34 @@ +{ + "name": "Carrier", + "type": "feature", + "img": "icons/environment/people/cavalry-heavy.webp", + "system": { + "description": "

You can carry up to two willing allies with you when you move.

", + "resource": null, + "actions": {}, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": "uU8bIoZvXge0rLaU", + "ownership": { + "default": 0, + "FecEtPuoQh6MpjQ0": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753617736331, + "modifiedTime": 1753628206133, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, + "_id": "EVOJTskJYf4rpuga", + "sort": 900000, + "_key": "!items!EVOJTskJYf4rpuga" +} diff --git a/src/packs/beastforms/feature_Companion_jhWSC5bNZyYUAA5Q.json b/src/packs/beastforms/feature_Companion_jhWSC5bNZyYUAA5Q.json new file mode 100644 index 00000000..b54e4a05 --- /dev/null +++ b/src/packs/beastforms/feature_Companion_jhWSC5bNZyYUAA5Q.json @@ -0,0 +1,34 @@ +{ + "name": "Companion", + "type": "feature", + "img": "icons/magic/life/heart-glowing-red.webp", + "system": { + "description": "

When you Help an Ally, you can roll a d8 as your advantage die.

", + "resource": null, + "actions": {}, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": "uU8bIoZvXge0rLaU", + "ownership": { + "default": 0, + "FecEtPuoQh6MpjQ0": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753572888764, + "modifiedTime": 1753628206133, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, + "_id": "jhWSC5bNZyYUAA5Q", + "sort": 2600000, + "_key": "!items!jhWSC5bNZyYUAA5Q" +} diff --git a/src/packs/beastforms/feature_Deadly_Raptor_QQtQ77tos8ijTHag.json b/src/packs/beastforms/feature_Deadly_Raptor_QQtQ77tos8ijTHag.json new file mode 100644 index 00000000..d21facf5 --- /dev/null +++ b/src/packs/beastforms/feature_Deadly_Raptor_QQtQ77tos8ijTHag.json @@ -0,0 +1,34 @@ +{ + "name": "Deadly Raptor", + "type": "feature", + "img": "icons/creatures/claws/claw-talons-glowing-orange.webp", + "system": { + "description": "

You can fly at will and move up to Far range as part of your action. When you move in a straight line into Melee range of a target from at least Close range and make an attack against that target in the same action, you can reroll all damage dice that rolled a result lower than your Proficiency.

", + "resource": null, + "actions": {}, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": "uU8bIoZvXge0rLaU", + "ownership": { + "default": 0, + "FecEtPuoQh6MpjQ0": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753628380597, + "modifiedTime": 1753628380597, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, + "_id": "QQtQ77tos8ijTHag", + "sort": 0, + "_key": "!items!QQtQ77tos8ijTHag" +} diff --git a/src/packs/beastforms/feature_Demolish_DfBXO8jTchwFG8dZ.json b/src/packs/beastforms/feature_Demolish_DfBXO8jTchwFG8dZ.json new file mode 100644 index 00000000..4e683d9a --- /dev/null +++ b/src/packs/beastforms/feature_Demolish_DfBXO8jTchwFG8dZ.json @@ -0,0 +1,157 @@ +{ + "name": "Demolish", + "type": "feature", + "img": "icons/magic/earth/barrier-stone-brown-green.webp", + "system": { + "description": "

Spend a Hope to move up to Far range in a straight line and make an attack against all targets within Melee range of the line. Targets you succeed against take d8+10 physical damage using your Proficiency and are temporarily Vulnerable.

@Template[type:ray|range:f]

", + "resource": null, + "actions": { + "5SXMT39vrZoK7GBM": { + "type": "attack", + "_id": "5SXMT39vrZoK7GBM", + "systemPath": "actions", + "description": "

Spend a Hope to move up to Far range in a straight line and make an attack against all targets within Melee range of the line. Targets you succeed against take d8+10 physical damage using your Proficiency and are temporarily Vulnerable.

", + "chatDisplay": true, + "actionType": "action", + "cost": [ + { + "keyIsID": false, + "key": "hope", + "value": 1, + "scalable": false, + "step": null + } + ], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "damage": { + "parts": [ + { + "resultBased": false, + "value": { + "custom": { + "enabled": false + }, + "multiplier": "prof", + "dice": "d8", + "bonus": 10, + "flatMultiplier": 1 + }, + "applyTo": "hitPoints", + "type": [], + "base": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + } + } + ], + "includeBase": false + }, + "target": { + "type": "any", + "amount": null + }, + "effects": [ + { + "_id": "FXdFgEgqVl5gIWJS", + "onSave": false + } + ], + "roll": { + "type": "attack", + "trait": "strength", + "difficulty": null, + "bonus": null, + "advState": "neutral", + "diceRolling": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "compare": null, + "treshold": null + }, + "useDefault": false + }, + "save": { + "trait": null, + "difficulty": 10, + "damageMod": "none" + }, + "name": "Attack", + "img": "icons/magic/earth/barrier-stone-brown-green.webp", + "range": "far" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [ + { + "name": "Demolished", + "img": "icons/skills/wounds/injury-pain-body-orange.webp", + "origin": "Item.PkLs4PFO0HiCNVRH", + "transfer": false, + "_id": "FXdFgEgqVl5gIWJS", + "type": "base", + "system": {}, + "changes": [], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "", + "tint": "#ffffff", + "statuses": [ + "vulnerable" + ], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": null + }, + "_key": "!items.effects!DfBXO8jTchwFG8dZ.FXdFgEgqVl5gIWJS" + } + ], + "folder": "uU8bIoZvXge0rLaU", + "ownership": { + "default": 0, + "FecEtPuoQh6MpjQ0": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753627699848, + "modifiedTime": 1753628206133, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, + "_id": "DfBXO8jTchwFG8dZ", + "sort": 100000, + "_key": "!items!DfBXO8jTchwFG8dZ" +} diff --git a/src/packs/beastforms/feature_Devastating_Strikes_HJbQcKWcFZ9NoFxs.json b/src/packs/beastforms/feature_Devastating_Strikes_HJbQcKWcFZ9NoFxs.json new file mode 100644 index 00000000..1c792e95 --- /dev/null +++ b/src/packs/beastforms/feature_Devastating_Strikes_HJbQcKWcFZ9NoFxs.json @@ -0,0 +1,65 @@ +{ + "name": "Devastating Strikes", + "type": "feature", + "img": "icons/skills/melee/blood-slash-foam-red.webp", + "system": { + "description": "

When you deal Severe damage to a target within Melee range, you can mark a Stress to force them to mark an additional Hit Point.

", + "resource": null, + "actions": { + "Il2C9zALU6a1gGrg": { + "type": "effect", + "_id": "Il2C9zALU6a1gGrg", + "systemPath": "actions", + "description": "

When you deal Severe damage to a target within Melee range, you can mark a Stress to force them to mark an additional Hit Point.

", + "chatDisplay": true, + "actionType": "action", + "cost": [ + { + "scalable": false, + "key": "stress", + "value": 1, + "keyIsID": false, + "step": null + } + ], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "effects": [], + "target": { + "type": null, + "amount": null + }, + "name": "Mark Stress", + "img": "icons/skills/melee/blood-slash-foam-red.webp", + "range": "" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": "uU8bIoZvXge0rLaU", + "ownership": { + "default": 0, + "FecEtPuoQh6MpjQ0": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753628206110, + "modifiedTime": 1753628206133, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, + "_id": "HJbQcKWcFZ9NoFxs", + "sort": 200000, + "_key": "!items!HJbQcKWcFZ9NoFxs" +} diff --git a/src/packs/beastforms/feature_Elusive_Prey_a7Qvmm14nx9BCysA.json b/src/packs/beastforms/feature_Elusive_Prey_a7Qvmm14nx9BCysA.json new file mode 100644 index 00000000..1de48d46 --- /dev/null +++ b/src/packs/beastforms/feature_Elusive_Prey_a7Qvmm14nx9BCysA.json @@ -0,0 +1,89 @@ +{ + "name": "Elusive Prey", + "type": "feature", + "img": "icons/skills/movement/arrows-up-trio-red.webp", + "system": { + "description": "

When an attack roll against you would succeed, you can mark a Stress and roll a d4. Add the result to your Evasion against this attack.

", + "resource": null, + "actions": { + "9lvrqQKTEB3NRwvM": { + "type": "attack", + "_id": "9lvrqQKTEB3NRwvM", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [ + { + "scalable": false, + "key": "stress", + "value": 1, + "keyIsID": false, + "step": null + } + ], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "damage": { + "parts": [], + "includeBase": false + }, + "target": { + "type": null, + "amount": null + }, + "effects": [], + "roll": { + "type": "diceSet", + "trait": null, + "difficulty": null, + "bonus": null, + "advState": "neutral", + "diceRolling": { + "multiplier": "flat", + "flatMultiplier": 1, + "dice": "d4", + "compare": null, + "treshold": null + }, + "useDefault": false + }, + "save": { + "trait": null, + "difficulty": 10, + "damageMod": "none" + }, + "name": "Mark Stress", + "img": "icons/skills/movement/arrows-up-trio-red.webp", + "range": "" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": "uU8bIoZvXge0rLaU", + "ownership": { + "default": 0, + "FecEtPuoQh6MpjQ0": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753574925665, + "modifiedTime": 1753628206133, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, + "_id": "a7Qvmm14nx9BCysA", + "sort": 2300000, + "_key": "!items!a7Qvmm14nx9BCysA" +} diff --git a/src/packs/beastforms/feature_Fleet_GhHsSHOa509cwCvr.json b/src/packs/beastforms/feature_Fleet_GhHsSHOa509cwCvr.json new file mode 100644 index 00000000..cabc703d --- /dev/null +++ b/src/packs/beastforms/feature_Fleet_GhHsSHOa509cwCvr.json @@ -0,0 +1,65 @@ +{ + "name": "Fleet", + "type": "feature", + "img": "icons/skills/movement/arrow-upward-yellow.webp", + "system": { + "description": "

Spend a Hope to move up to Far range without rolling.

", + "resource": null, + "actions": { + "pn5p2ocVvVPzDyAX": { + "type": "effect", + "_id": "pn5p2ocVvVPzDyAX", + "systemPath": "actions", + "description": "

Spend a Hope to move up to Far range without rolling.

", + "chatDisplay": true, + "actionType": "action", + "cost": [ + { + "keyIsID": false, + "key": "hope", + "value": 1, + "scalable": false, + "step": null + } + ], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "effects": [], + "target": { + "type": null, + "amount": null + }, + "name": "Move", + "img": "icons/skills/movement/arrow-upward-yellow.webp", + "range": "" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": "uU8bIoZvXge0rLaU", + "ownership": { + "default": 0, + "FecEtPuoQh6MpjQ0": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753621784810, + "modifiedTime": 1753628206133, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, + "_id": "GhHsSHOa509cwCvr", + "sort": 1000000, + "_key": "!items!GhHsSHOa509cwCvr" +} diff --git a/src/packs/beastforms/feature_Fragile_QFg1hNCEoKVDd9Zo.json b/src/packs/beastforms/feature_Fragile_QFg1hNCEoKVDd9Zo.json new file mode 100644 index 00000000..e22b70b4 --- /dev/null +++ b/src/packs/beastforms/feature_Fragile_QFg1hNCEoKVDd9Zo.json @@ -0,0 +1,34 @@ +{ + "name": "Fragile", + "type": "feature", + "img": "icons/magic/life/heart-pink.webp", + "system": { + "description": "

When you take Major or greater damage, you drop out of Beastform.

", + "resource": null, + "actions": {}, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": "uU8bIoZvXge0rLaU", + "ownership": { + "default": 0, + "FecEtPuoQh6MpjQ0": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753569754067, + "modifiedTime": 1753628206133, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, + "_id": "QFg1hNCEoKVDd9Zo", + "sort": 2500000, + "_key": "!items!QFg1hNCEoKVDd9Zo" +} diff --git a/src/packs/beastforms/feature_Hobbling_Strike_8u0HkK3WgtU9lWYs.json b/src/packs/beastforms/feature_Hobbling_Strike_8u0HkK3WgtU9lWYs.json new file mode 100644 index 00000000..a46fd322 --- /dev/null +++ b/src/packs/beastforms/feature_Hobbling_Strike_8u0HkK3WgtU9lWYs.json @@ -0,0 +1,110 @@ +{ + "name": "Hobbling Strike", + "type": "feature", + "img": "icons/skills/wounds/bone-broken-knee-beam.webp", + "system": { + "description": "

When you succeed on an attack against a target within Melee range, you can mark a Stress to make the target temporarily Vulnerable.

", + "resource": null, + "actions": { + "p8DESOMGA6dLwEMz": { + "type": "effect", + "_id": "p8DESOMGA6dLwEMz", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [ + { + "scalable": false, + "key": "stress", + "value": 1, + "keyIsID": false, + "step": null + } + ], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "effects": [ + { + "_id": "2kKkV9zhfvqA2vlt", + "onSave": false + } + ], + "target": { + "type": null, + "amount": null + }, + "name": "Mark Stress", + "img": "icons/skills/wounds/bone-broken-knee-beam.webp", + "range": "" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [ + { + "name": "Hobbling Strike", + "img": "icons/skills/wounds/bone-broken-knee-beam.webp", + "origin": "Compendium.daggerheart.beastforms.Item.8u0HkK3WgtU9lWYs", + "transfer": false, + "_id": "2kKkV9zhfvqA2vlt", + "type": "base", + "system": {}, + "changes": [], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "", + "tint": "#ffffff", + "statuses": [ + "vulnerable" + ], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753578616579, + "modifiedTime": 1753578640444, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, + "_key": "!items.effects!8u0HkK3WgtU9lWYs.2kKkV9zhfvqA2vlt" + } + ], + "folder": "uU8bIoZvXge0rLaU", + "ownership": { + "default": 0, + "FecEtPuoQh6MpjQ0": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753575250590, + "modifiedTime": 1753628206133, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, + "_id": "8u0HkK3WgtU9lWYs", + "sort": 2400000, + "_key": "!items!8u0HkK3WgtU9lWYs" +} diff --git a/src/packs/beastforms/feature_Hollow_Bones_xVgmXhj2YgeqS1KK.json b/src/packs/beastforms/feature_Hollow_Bones_xVgmXhj2YgeqS1KK.json new file mode 100644 index 00000000..d358b416 --- /dev/null +++ b/src/packs/beastforms/feature_Hollow_Bones_xVgmXhj2YgeqS1KK.json @@ -0,0 +1,83 @@ +{ + "name": "Hollow Bones", + "type": "feature", + "img": "icons/skills/wounds/anatomy-bone-joint.webp", + "system": { + "description": "

You gain a −2 penalty to your damage thresholds.

", + "resource": null, + "actions": {}, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [ + { + "name": "Hollow Bones", + "type": "base", + "_id": "RM8wHu5GIF6zfF7V", + "img": "icons/skills/wounds/anatomy-bone-joint.webp", + "system": {}, + "changes": [ + { + "key": "system.damageThresholds.major", + "mode": 2, + "value": "-2", + "priority": null + }, + { + "key": "system.damageThresholds.severe", + "mode": 2, + "value": "-2", + "priority": null + } + ], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "

You gain a −2 penalty to your damage thresholds.

", + "origin": null, + "tint": "#ffffff", + "transfer": true, + "statuses": [], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": null + }, + "_key": "!items.effects!xVgmXhj2YgeqS1KK.RM8wHu5GIF6zfF7V" + } + ], + "folder": "uU8bIoZvXge0rLaU", + "ownership": { + "default": 0, + "FecEtPuoQh6MpjQ0": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753624948910, + "modifiedTime": 1753628206133, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, + "_id": "xVgmXhj2YgeqS1KK", + "sort": 1500000, + "_key": "!items!xVgmXhj2YgeqS1KK" +} diff --git a/src/packs/beastforms/feature_Massive_Stride_9QkZSeuEKgXtlpHc.json b/src/packs/beastforms/feature_Massive_Stride_9QkZSeuEKgXtlpHc.json new file mode 100644 index 00000000..17812c9d --- /dev/null +++ b/src/packs/beastforms/feature_Massive_Stride_9QkZSeuEKgXtlpHc.json @@ -0,0 +1,34 @@ +{ + "name": "Massive Stride", + "type": "feature", + "img": "icons/skills/movement/arrow-upward-blue.webp", + "system": { + "description": "

You can move up to Far range without rolling. You ignore rough terrain (at the GM’s discretion) due to your size.

", + "resource": null, + "actions": {}, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": "uU8bIoZvXge0rLaU", + "ownership": { + "default": 0, + "FecEtPuoQh6MpjQ0": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753628207886, + "modifiedTime": 1753628207886, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, + "_id": "9QkZSeuEKgXtlpHc", + "sort": 0, + "_key": "!items!9QkZSeuEKgXtlpHc" +} diff --git a/src/packs/beastforms/feature_Ocean_Master_tGDdEH40wyOCsFmH.json b/src/packs/beastforms/feature_Ocean_Master_tGDdEH40wyOCsFmH.json new file mode 100644 index 00000000..37716764 --- /dev/null +++ b/src/packs/beastforms/feature_Ocean_Master_tGDdEH40wyOCsFmH.json @@ -0,0 +1,100 @@ +{ + "name": "Ocean Master", + "type": "feature", + "img": "icons/creatures/fish/fish-bioluminous-blue.webp", + "system": { + "description": "

You can breathe and move naturally underwater. When you succeed on an attack against a target within Melee range, you can temporarily Restrain them.

", + "resource": null, + "actions": { + "ge2koBRj4snhIzDA": { + "type": "effect", + "_id": "ge2koBRj4snhIzDA", + "systemPath": "actions", + "description": "

When you succeed on an attack against a target within Melee range, you can temporarily Restrain them.

", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "effects": [ + { + "_id": "6GBczj8REkDmgX2Q", + "onSave": false + } + ], + "target": { + "type": null, + "amount": null + }, + "name": "Restrain", + "img": "icons/creatures/fish/fish-bioluminous-blue.webp", + "range": "" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [ + { + "name": "Ocean Master", + "img": "icons/creatures/fish/fish-bioluminous-blue.webp", + "origin": "Item.5UbOIcuLE5Z3ViAm", + "transfer": false, + "_id": "6GBczj8REkDmgX2Q", + "type": "base", + "system": {}, + "changes": [], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "", + "tint": "#ffffff", + "statuses": [ + "restrained" + ], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": null + }, + "_key": "!items.effects!tGDdEH40wyOCsFmH.6GBczj8REkDmgX2Q" + } + ], + "folder": "uU8bIoZvXge0rLaU", + "ownership": { + "default": 0, + "FecEtPuoQh6MpjQ0": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753628691739, + "modifiedTime": 1753628691739, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, + "_id": "tGDdEH40wyOCsFmH", + "sort": 0, + "_key": "!items!tGDdEH40wyOCsFmH" +} diff --git a/src/packs/beastforms/feature_Pack_Hunting_d3q8lfeiEMyTjusT.json b/src/packs/beastforms/feature_Pack_Hunting_d3q8lfeiEMyTjusT.json new file mode 100644 index 00000000..d6e58fcb --- /dev/null +++ b/src/packs/beastforms/feature_Pack_Hunting_d3q8lfeiEMyTjusT.json @@ -0,0 +1,34 @@ +{ + "name": "Pack Hunting", + "type": "feature", + "img": "icons/creatures/abilities/wolf-howl-moon-purple.webp", + "system": { + "description": "

When you succeed on an attack against the same target as an ally who acts immediately before you, add a d8 to your damage roll.

", + "resource": null, + "actions": {}, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": "uU8bIoZvXge0rLaU", + "ownership": { + "default": 0, + "FecEtPuoQh6MpjQ0": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753575268237, + "modifiedTime": 1753628206133, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, + "_id": "d3q8lfeiEMyTjusT", + "sort": 1800000, + "_key": "!items!d3q8lfeiEMyTjusT" +} diff --git a/src/packs/beastforms/feature_Physical_Defense_StabkQ3BzWRZa8Tz.json b/src/packs/beastforms/feature_Physical_Defense_StabkQ3BzWRZa8Tz.json new file mode 100644 index 00000000..effdc34f --- /dev/null +++ b/src/packs/beastforms/feature_Physical_Defense_StabkQ3BzWRZa8Tz.json @@ -0,0 +1,83 @@ +{ + "name": "Physical Defense", + "type": "feature", + "img": "icons/commodities/leather/scales-green.webp", + "system": { + "description": "

You gain a +3 bonus to your damage thresholds.

", + "resource": null, + "actions": {}, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [ + { + "name": "Physical Defense", + "type": "base", + "_id": "hs9vWE92QQQx15ET", + "img": "icons/commodities/leather/scales-green.webp", + "system": {}, + "changes": [ + { + "key": "system.damageThresholds.major", + "mode": 2, + "value": "3", + "priority": null + }, + { + "key": "system.damageThresholds.severe", + "mode": 2, + "value": "3", + "priority": null + } + ], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "

You gain a +3 bonus to your damage thresholds.

", + "origin": null, + "tint": "#ffffff", + "transfer": true, + "statuses": [], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": null + }, + "_key": "!items.effects!StabkQ3BzWRZa8Tz.hs9vWE92QQQx15ET" + } + ], + "folder": "uU8bIoZvXge0rLaU", + "ownership": { + "default": 0, + "FecEtPuoQh6MpjQ0": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753626716369, + "modifiedTime": 1753628206133, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, + "_id": "StabkQ3BzWRZa8Tz", + "sort": 500000, + "_key": "!items!StabkQ3BzWRZa8Tz" +} diff --git a/src/packs/beastforms/feature_Rampage_8upqfcZvi7b5hRLE.json b/src/packs/beastforms/feature_Rampage_8upqfcZvi7b5hRLE.json new file mode 100644 index 00000000..0164d236 --- /dev/null +++ b/src/packs/beastforms/feature_Rampage_8upqfcZvi7b5hRLE.json @@ -0,0 +1,70 @@ +{ + "name": "Rampage", + "type": "feature", + "img": "icons/creatures/claws/claw-bear-paw-swipe-red.webp", + "system": { + "description": "

When you roll a 1 on a damage die, you can roll a d10 and add the result to the damage roll. Additionally, before you make an attack roll, you can mark a Stress to gain a +1 bonus to your Proficiency for that attack.

", + "resource": null, + "actions": { + "N7IoOHpqcvcJNsJQ": { + "type": "effect", + "_id": "N7IoOHpqcvcJNsJQ", + "systemPath": "actions", + "description": "

Before you make an attack roll, you can mark a Stress to gain a +1 bonus to your Proficiency for that attack.

", + "chatDisplay": true, + "actionType": "action", + "cost": [ + { + "scalable": false, + "key": "stress", + "value": 1, + "keyIsID": false, + "step": null + } + ], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "effects": [ + { + "_id": "5TX0hHFKZHvBeWne", + "onSave": false + } + ], + "target": { + "type": null, + "amount": null + }, + "name": "Gain Proficiency", + "img": "icons/creatures/abilities/bear-roar-bite-brown.webp", + "range": "" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": "uU8bIoZvXge0rLaU", + "ownership": { + "default": 0, + "FecEtPuoQh6MpjQ0": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753582591417, + "modifiedTime": 1753628206133, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, + "_id": "8upqfcZvi7b5hRLE", + "sort": 2000000, + "_key": "!items!8upqfcZvi7b5hRLE" +} diff --git a/src/packs/beastforms/feature_Snapping_Strike_Ky3rZD3sJMXYZOBC.json b/src/packs/beastforms/feature_Snapping_Strike_Ky3rZD3sJMXYZOBC.json new file mode 100644 index 00000000..c22dad6e --- /dev/null +++ b/src/packs/beastforms/feature_Snapping_Strike_Ky3rZD3sJMXYZOBC.json @@ -0,0 +1,109 @@ +{ + "name": "Snapping Strike", + "type": "feature", + "img": "icons/creatures/abilities/mouth-teeth-rows-red.webp", + "system": { + "description": "

When you succeed on an attack against a target within Melee range, you can spend a Hope to clamp that opponent in your jaws, making them temporarily Restrained and Vulnerable.

", + "resource": null, + "actions": { + "ib94yYJ1HA0dm0VC": { + "type": "effect", + "_id": "ib94yYJ1HA0dm0VC", + "systemPath": "actions", + "description": "

When you succeed on an attack against a target within Melee range, you can spend a Hope to clamp that opponent in your jaws, making them temporarily Restrained and Vulnerable.

", + "chatDisplay": true, + "actionType": "action", + "cost": [ + { + "keyIsID": false, + "key": "hope", + "value": 1, + "scalable": false, + "step": null + } + ], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "effects": [ + { + "_id": "y3EsJuInxE7juNXT", + "onSave": false + } + ], + "target": { + "type": null, + "amount": null + }, + "name": "Spend Hope", + "img": "icons/creatures/abilities/mouth-teeth-rows-red.webp", + "range": "" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [ + { + "name": "Snapping Strike", + "img": "icons/creatures/abilities/mouth-teeth-rows-red.webp", + "origin": "Item.tTr76uJeCU2AJqMT", + "transfer": false, + "_id": "y3EsJuInxE7juNXT", + "type": "base", + "system": {}, + "changes": [], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "", + "tint": "#ffffff", + "statuses": [ + "vulnerable", + "restrained" + ], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": null + }, + "_key": "!items.effects!Ky3rZD3sJMXYZOBC.y3EsJuInxE7juNXT" + } + ], + "folder": "uU8bIoZvXge0rLaU", + "ownership": { + "default": 0, + "FecEtPuoQh6MpjQ0": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753626717512, + "modifiedTime": 1753628206133, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, + "_id": "Ky3rZD3sJMXYZOBC", + "sort": 300000, + "_key": "!items!Ky3rZD3sJMXYZOBC" +} diff --git a/src/packs/beastforms/feature_Takedown_0ey4kM9ssj2otHvb.json b/src/packs/beastforms/feature_Takedown_0ey4kM9ssj2otHvb.json new file mode 100644 index 00000000..13ffe145 --- /dev/null +++ b/src/packs/beastforms/feature_Takedown_0ey4kM9ssj2otHvb.json @@ -0,0 +1,158 @@ +{ + "name": "Takedown", + "type": "feature", + "img": "icons/creatures/abilities/paw-print-orange.webp", + "system": { + "description": "

Mark a Stress to move into Melee range of a target and make an attack roll against them. On a success, you gain a +2 bonus to your Proficiency for this attack and the target must mark a Stress.

", + "resource": null, + "actions": { + "DKorr1QzvtBz7d9y": { + "type": "attack", + "_id": "DKorr1QzvtBz7d9y", + "systemPath": "actions", + "description": "

Mark a Stress to move into Melee range of a target and make an attack roll against them. On a success, you gain a +2 bonus to your Proficiency for this attack and the target must mark a Stress.

", + "chatDisplay": true, + "actionType": "action", + "cost": [ + { + "scalable": false, + "key": "stress", + "value": 1, + "keyIsID": false, + "step": null + } + ], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "damage": { + "parts": [ + { + "resultBased": false, + "value": { + "custom": { + "enabled": true, + "formula": "(@prof+2)@basicAttackDamageDice" + }, + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null + }, + "applyTo": "hitPoints", + "type": [], + "base": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + } + } + ], + "includeBase": false + }, + "target": { + "type": "any", + "amount": null + }, + "effects": [], + "roll": { + "type": "attack", + "trait": "instinct", + "difficulty": null, + "bonus": null, + "advState": "neutral", + "diceRolling": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "compare": null, + "treshold": null + }, + "useDefault": false + }, + "save": { + "trait": null, + "difficulty": 10, + "damageMod": "none" + }, + "name": "Attack", + "img": "icons/creatures/abilities/paw-print-orange.webp", + "range": "" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [ + { + "name": "Takedown", + "img": "icons/creatures/abilities/paw-print-orange.webp", + "origin": "Item.okjlLUwEdNOKeUk3", + "transfer": false, + "_id": "hE6ciIusvKEtUQ8U", + "type": "base", + "system": {}, + "changes": [ + { + "key": "system.proficiency", + "mode": 2, + "value": "2", + "priority": null + } + ], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "", + "tint": "#ffffff", + "statuses": [], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": null + }, + "_key": "!items.effects!0ey4kM9ssj2otHvb.hE6ciIusvKEtUQ8U" + } + ], + "folder": "uU8bIoZvXge0rLaU", + "ownership": { + "default": 0, + "FecEtPuoQh6MpjQ0": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753621786000, + "modifiedTime": 1753643111609, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, + "_id": "0ey4kM9ssj2otHvb", + "sort": 600000, + "_key": "!items!0ey4kM9ssj2otHvb" +} diff --git a/src/packs/beastforms/feature_Thick_Hide_ZYbdXaWVj2zdcmaK.json b/src/packs/beastforms/feature_Thick_Hide_ZYbdXaWVj2zdcmaK.json new file mode 100644 index 00000000..62e74afd --- /dev/null +++ b/src/packs/beastforms/feature_Thick_Hide_ZYbdXaWVj2zdcmaK.json @@ -0,0 +1,83 @@ +{ + "name": "Thick Hide", + "type": "feature", + "img": "icons/commodities/leather/fur-brown-gold.webp", + "system": { + "description": "

You gain a +2 bonus to your damage thresholds.

", + "resource": null, + "actions": {}, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [ + { + "name": "Thick Hide", + "type": "base", + "_id": "ZoUJy8EOm9mVXuAw", + "img": "icons/commodities/leather/fur-brown-gold.webp", + "system": {}, + "changes": [ + { + "key": "system.damageThresholds.major", + "mode": 2, + "value": "2", + "priority": null + }, + { + "key": "system.damageThresholds.severe", + "mode": 2, + "value": "2", + "priority": null + } + ], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "

You gain a +2 bonus to your damage thresholds.

", + "origin": null, + "tint": "#ffffff", + "transfer": true, + "statuses": [], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": null + }, + "_key": "!items.effects!ZYbdXaWVj2zdcmaK.ZoUJy8EOm9mVXuAw" + } + ], + "folder": "uU8bIoZvXge0rLaU", + "ownership": { + "default": 0, + "FecEtPuoQh6MpjQ0": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753582593100, + "modifiedTime": 1753628206133, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, + "_id": "ZYbdXaWVj2zdcmaK", + "sort": 1100000, + "_key": "!items!ZYbdXaWVj2zdcmaK" +} diff --git a/src/packs/beastforms/feature_Trample_A0lgd6eVEfX6oqSB.json b/src/packs/beastforms/feature_Trample_A0lgd6eVEfX6oqSB.json new file mode 100644 index 00000000..15dec8f3 --- /dev/null +++ b/src/packs/beastforms/feature_Trample_A0lgd6eVEfX6oqSB.json @@ -0,0 +1,157 @@ +{ + "name": "Trample", + "type": "feature", + "img": "icons/environment/people/charge.webp", + "system": { + "description": "

Mark a Stress to move up to Close range in a straight line and make an attack against all targets within Melee range of the line. Targets you succeed against take d8+1 physical damage using your Proficiency and are temporarily Vulnerable.

@Template[type:ray|range:close]

", + "resource": null, + "actions": { + "YCOTIv9IVEKpumbJ": { + "type": "attack", + "_id": "YCOTIv9IVEKpumbJ", + "systemPath": "actions", + "description": "

Mark a Stress to move up to Close range in a straight line and make an attack against all targets within Melee range of the line. Targets you succeed against take d8+1 physical damage using your Proficiency and are temporarily Vulnerable.

", + "chatDisplay": true, + "actionType": "action", + "cost": [ + { + "scalable": false, + "key": "stress", + "value": 1, + "keyIsID": false, + "step": null + } + ], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "damage": { + "parts": [ + { + "resultBased": false, + "value": { + "custom": { + "enabled": false + }, + "multiplier": "prof", + "dice": "d8", + "bonus": 1, + "flatMultiplier": 1 + }, + "applyTo": "hitPoints", + "type": [], + "base": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + } + } + ], + "includeBase": false + }, + "target": { + "type": null, + "amount": null + }, + "effects": [ + { + "_id": "LkekG4IngVW9rFjI", + "onSave": false + } + ], + "roll": { + "type": "attack", + "trait": "agility", + "difficulty": null, + "bonus": null, + "advState": "neutral", + "diceRolling": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "compare": null, + "treshold": null + }, + "useDefault": false + }, + "save": { + "trait": null, + "difficulty": 10, + "damageMod": "none" + }, + "name": "Attack", + "img": "icons/environment/people/charge.webp", + "range": "close" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [ + { + "name": "Trampled", + "img": "icons/skills/wounds/injury-pain-body-orange.webp", + "origin": "Item.7GMu72UEQ1LIIJAN", + "transfer": false, + "_id": "LkekG4IngVW9rFjI", + "type": "base", + "system": {}, + "changes": [], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "", + "tint": "#ffffff", + "statuses": [ + "vulnerable" + ], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": null + }, + "_key": "!items.effects!A0lgd6eVEfX6oqSB.LkekG4IngVW9rFjI" + } + ], + "folder": "uU8bIoZvXge0rLaU", + "ownership": { + "default": 0, + "FecEtPuoQh6MpjQ0": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753617737349, + "modifiedTime": 1753628206133, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, + "_id": "A0lgd6eVEfX6oqSB", + "sort": 800000, + "_key": "!items!A0lgd6eVEfX6oqSB" +} diff --git a/src/packs/beastforms/feature_Undaunted_ODudjX88Te4vDP57.json b/src/packs/beastforms/feature_Undaunted_ODudjX88Te4vDP57.json new file mode 100644 index 00000000..5137104d --- /dev/null +++ b/src/packs/beastforms/feature_Undaunted_ODudjX88Te4vDP57.json @@ -0,0 +1,83 @@ +{ + "name": "Undaunted", + "type": "feature", + "img": "icons/magic/life/heart-cross-strong-purple-orange.webp", + "system": { + "description": "

You gain a +2 bonus to all your damage thresholds.

", + "resource": null, + "actions": {}, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [ + { + "name": "Undaunted", + "type": "base", + "_id": "wVoUVQJ2Ik7CiUuV", + "img": "icons/magic/life/heart-cross-strong-purple-orange.webp", + "system": {}, + "changes": [ + { + "key": "system.damageThresholds.major", + "mode": 2, + "value": "2", + "priority": null + }, + { + "key": "system.damageThresholds.severe", + "mode": 2, + "value": "2", + "priority": null + } + ], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "

You gain a +2 bonus to all your damage thresholds.

", + "origin": null, + "tint": "#ffffff", + "transfer": true, + "statuses": [], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": null + }, + "_key": "!items.effects!ODudjX88Te4vDP57.wVoUVQJ2Ik7CiUuV" + } + ], + "folder": "uU8bIoZvXge0rLaU", + "ownership": { + "default": 0, + "FecEtPuoQh6MpjQ0": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753627700926, + "modifiedTime": 1753628206133, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, + "_id": "ODudjX88Te4vDP57", + "sort": 400000, + "_key": "!items!ODudjX88Te4vDP57" +} diff --git a/src/packs/beastforms/feature_Unyielding_vEAQ4cfsoPmOv2Gg.json b/src/packs/beastforms/feature_Unyielding_vEAQ4cfsoPmOv2Gg.json new file mode 100644 index 00000000..98fe5e15 --- /dev/null +++ b/src/packs/beastforms/feature_Unyielding_vEAQ4cfsoPmOv2Gg.json @@ -0,0 +1,81 @@ +{ + "name": "Unyielding", + "type": "feature", + "img": "icons/magic/defensive/shield-barrier-blue.webp", + "system": { + "description": "

When you would mark an Armor Slot, roll a d6. On a result of 5 or higher, reduce the severity by one threshold without marking an Armor Slot.

", + "resource": null, + "actions": { + "hiGZCQpdTVqE5W4B": { + "type": "attack", + "_id": "hiGZCQpdTVqE5W4B", + "systemPath": "actions", + "description": "

When you would mark an Armor Slot, roll a d6. On a result of 5 or higher, reduce the severity by one threshold without marking an Armor Slot.

", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "damage": { + "parts": [], + "includeBase": false + }, + "target": { + "type": null, + "amount": null + }, + "effects": [], + "roll": { + "type": "diceSet", + "trait": null, + "difficulty": null, + "bonus": null, + "advState": "neutral", + "diceRolling": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "compare": "aboveEqual", + "treshold": 5 + }, + "useDefault": false + }, + "save": { + "trait": null, + "difficulty": 10, + "damageMod": "none" + }, + "name": "Roll d6", + "img": "icons/magic/defensive/shield-barrier-blue.webp", + "range": "" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": "uU8bIoZvXge0rLaU", + "ownership": { + "default": 0, + "FecEtPuoQh6MpjQ0": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753628692761, + "modifiedTime": 1753628692761, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, + "_id": "vEAQ4cfsoPmOv2Gg", + "sort": 0, + "_key": "!items!vEAQ4cfsoPmOv2Gg" +} diff --git a/src/packs/beastforms/feature_Venomous_Bite_2KlTnfzO03vneVS8.json b/src/packs/beastforms/feature_Venomous_Bite_2KlTnfzO03vneVS8.json new file mode 100644 index 00000000..bea17311 --- /dev/null +++ b/src/packs/beastforms/feature_Venomous_Bite_2KlTnfzO03vneVS8.json @@ -0,0 +1,99 @@ +{ + "name": "Venomous Bite", + "type": "feature", + "img": "icons/creatures/abilities/fang-tooth-poison-green.webp", + "system": { + "description": "

When you succeed on an attack against a target within Melee range, the target becomes temporarily Poisoned. A Poisoned creature takes 1d10 direct physical damage each time they act.

", + "resource": null, + "actions": { + "eow90DYK6cUWOk7g": { + "type": "effect", + "_id": "eow90DYK6cUWOk7g", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "effects": [ + { + "_id": "TTyAKKoUCoYXSMs4", + "onSave": false + } + ], + "target": { + "type": "any", + "amount": null + }, + "name": "Poison", + "img": "icons/creatures/abilities/fang-tooth-poison-green.webp", + "range": "melee" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [ + { + "name": "Poisoned", + "img": "icons/creatures/abilities/fang-tooth-poison-green.webp", + "origin": "Item.O4IphLKL9ICiNwQR", + "transfer": false, + "_id": "TTyAKKoUCoYXSMs4", + "type": "base", + "system": {}, + "changes": [], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "

A Poisoned creature takes 1d10 direct physical damage each time they act.

", + "tint": "#ffffff", + "statuses": [], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "FecEtPuoQh6MpjQ0", + "modifiedTime": 1753576115749 + }, + "_key": "!items.effects!2KlTnfzO03vneVS8.TTyAKKoUCoYXSMs4" + } + ], + "folder": "uU8bIoZvXge0rLaU", + "ownership": { + "default": 0, + "FecEtPuoQh6MpjQ0": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753576004121, + "modifiedTime": 1753628206133, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, + "_id": "2KlTnfzO03vneVS8", + "sort": 1600000, + "_key": "!items!2KlTnfzO03vneVS8" +} diff --git a/src/packs/beastforms/feature_Venomous_Strike_uW3853pViM9VAfHb.json b/src/packs/beastforms/feature_Venomous_Strike_uW3853pViM9VAfHb.json new file mode 100644 index 00000000..11e60f58 --- /dev/null +++ b/src/packs/beastforms/feature_Venomous_Strike_uW3853pViM9VAfHb.json @@ -0,0 +1,122 @@ +{ + "name": "Venomous Strike", + "type": "feature", + "img": "icons/creatures/abilities/fang-tooth-poison-green.webp", + "system": { + "description": "

Make an attack against any number of targets within Very Close range. On a success, a target is temporarily Poisoned. A Poisoned creature takes 1d10 physical direct damage each time they act.

", + "resource": null, + "actions": { + "igRoXxgaTT9tBQS7": { + "type": "attack", + "_id": "igRoXxgaTT9tBQS7", + "systemPath": "actions", + "description": "

Make an attack against any number of targets within Very Close range. On a success, a target is temporarily Poisoned. A Poisoned creature takes 1d10 physical direct damage each time they act.

", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "damage": { + "parts": [], + "includeBase": false + }, + "target": { + "type": "any", + "amount": null + }, + "effects": [ + { + "_id": "1iQPj96LqUNkRaxE", + "onSave": false + } + ], + "roll": { + "type": "attack", + "trait": "finesse", + "difficulty": null, + "bonus": null, + "advState": "neutral", + "diceRolling": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "compare": null, + "treshold": null + }, + "useDefault": false + }, + "save": { + "trait": null, + "difficulty": 10, + "damageMod": "none" + }, + "name": "Attack", + "img": "icons/creatures/abilities/fang-tooth-poison-green.webp", + "range": "veryClose" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [ + { + "name": "Poisoned", + "img": "icons/creatures/abilities/fang-tooth-poison-green.webp", + "origin": "Item.bgcxeOs3RRGinrNW", + "transfer": false, + "_id": "1iQPj96LqUNkRaxE", + "type": "base", + "system": {}, + "changes": [], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "

A Poisoned creature takes 1d10 physical direct damage each time they act.

", + "tint": "#ffffff", + "statuses": [], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": null + }, + "_key": "!items.effects!uW3853pViM9VAfHb.1iQPj96LqUNkRaxE" + } + ], + "folder": "uU8bIoZvXge0rLaU", + "ownership": { + "default": 0, + "FecEtPuoQh6MpjQ0": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753621248553, + "modifiedTime": 1753628206133, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, + "_id": "uW3853pViM9VAfHb", + "sort": 1300000, + "_key": "!items!uW3853pViM9VAfHb" +} diff --git a/src/packs/beastforms/feature_Vicious_Maul_jYUBi7yLHap5ljpa.json b/src/packs/beastforms/feature_Vicious_Maul_jYUBi7yLHap5ljpa.json new file mode 100644 index 00000000..9c862f3e --- /dev/null +++ b/src/packs/beastforms/feature_Vicious_Maul_jYUBi7yLHap5ljpa.json @@ -0,0 +1,138 @@ +{ + "name": "Vicious Maul", + "type": "feature", + "img": "icons/creatures/abilities/mouth-teeth-long-red.webp", + "system": { + "description": "

When you succeed on an attack against a target, you can spend a Hope to make them temporarily Vulnerable and gain a +1 bonus to your Proficiency for this attack.

", + "resource": null, + "actions": { + "Cc53vyYz5ggKdIbx": { + "type": "damage", + "_id": "Cc53vyYz5ggKdIbx", + "systemPath": "actions", + "description": "

When you succeed on an attack against a target within Melee range, you can spend a Hope to clamp that opponent in your jaws, making them temporarily Restrained and Vulnerable.

", + "chatDisplay": true, + "actionType": "action", + "cost": [ + { + "keyIsID": false, + "key": "hope", + "value": 1, + "scalable": false, + "step": null + } + ], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": true, + "formula": "(@prof+1)@basicAttackDamageDice + @system.rules.attack.damage.bonus" + }, + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null + }, + "applyTo": "hitPoints", + "type": [], + "base": false, + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + } + } + ], + "includeBase": false + }, + "target": { + "type": "any", + "amount": 1 + }, + "effects": [ + { + "_id": "MIAh9XNwDXGDktCm", + "onSave": false + } + ], + "name": "Spend Hope", + "img": "icons/creatures/abilities/mouth-teeth-long-red.webp", + "range": "melee" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [ + { + "name": "Mauled", + "img": "icons/creatures/abilities/mouth-teeth-long-red.webp", + "origin": "Item.Dm6ej7DznOIQKcR9", + "transfer": false, + "_id": "MIAh9XNwDXGDktCm", + "type": "base", + "system": {}, + "changes": [], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "", + "tint": "#ffffff", + "statuses": [ + "vulnerable" + ], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": null + }, + "_key": "!items.effects!jYUBi7yLHap5ljpa.MIAh9XNwDXGDktCm" + } + ], + "folder": "uU8bIoZvXge0rLaU", + "ownership": { + "default": 0, + "FecEtPuoQh6MpjQ0": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753625637943, + "modifiedTime": 1753643084893, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, + "_id": "jYUBi7yLHap5ljpa", + "sort": 700000, + "_key": "!items!jYUBi7yLHap5ljpa" +} diff --git a/src/packs/beastforms/feature_Warning_Hiss_cTlqpQZPy5TvdDAT.json b/src/packs/beastforms/feature_Warning_Hiss_cTlqpQZPy5TvdDAT.json new file mode 100644 index 00000000..5380f968 --- /dev/null +++ b/src/packs/beastforms/feature_Warning_Hiss_cTlqpQZPy5TvdDAT.json @@ -0,0 +1,65 @@ +{ + "name": "Warning Hiss", + "type": "feature", + "img": "icons/creatures/reptiles/snake-fangs-bite-green-yellow.webp", + "system": { + "description": "

Mark a Stress to force any number of targets within Melee range to move back to Very Close range.

", + "resource": null, + "actions": { + "D9YmUP1aeiCzNxcC": { + "type": "effect", + "_id": "D9YmUP1aeiCzNxcC", + "systemPath": "actions", + "description": "

Mark a Stress to force any number of targets within Melee range to move back to Very Close range.

", + "chatDisplay": true, + "actionType": "action", + "cost": [ + { + "scalable": false, + "key": "stress", + "value": 1, + "keyIsID": false, + "step": null + } + ], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "effects": [], + "target": { + "type": null, + "amount": null + }, + "name": "Mark Stress", + "img": "icons/creatures/reptiles/snake-fangs-bite-green-yellow.webp", + "range": "" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": "uU8bIoZvXge0rLaU", + "ownership": { + "default": 0, + "FecEtPuoQh6MpjQ0": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753621249622, + "modifiedTime": 1753628206133, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, + "_id": "cTlqpQZPy5TvdDAT", + "sort": 1200000, + "_key": "!items!cTlqpQZPy5TvdDAT" +} diff --git a/src/packs/beastforms/feature_Webslinger_D73fS1iM4SZPFimu.json b/src/packs/beastforms/feature_Webslinger_D73fS1iM4SZPFimu.json new file mode 100644 index 00000000..4f6e6717 --- /dev/null +++ b/src/packs/beastforms/feature_Webslinger_D73fS1iM4SZPFimu.json @@ -0,0 +1,125 @@ +{ + "name": "Webslinger", + "type": "feature", + "img": "icons/creatures/webs/webthin-blue.webp", + "system": { + "description": "

You can create a strong web material useful for both adventuring and battle. The web is resilient enough to support one creature. You can temporarily Restrain a target within Close range by succeeding on a Finesse Roll against them.

", + "resource": null, + "actions": { + "vRU6xutkp3VYxZ0i": { + "type": "attack", + "_id": "vRU6xutkp3VYxZ0i", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "damage": { + "parts": [], + "includeBase": false + }, + "target": { + "type": "any", + "amount": 1 + }, + "effects": [ + { + "_id": "cBJueH89gNvvDKfQ", + "onSave": false + } + ], + "roll": { + "type": "trait", + "trait": "finesse", + "difficulty": null, + "bonus": null, + "advState": "neutral", + "diceRolling": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "compare": null, + "treshold": null + }, + "useDefault": false + }, + "save": { + "trait": null, + "difficulty": 10, + "damageMod": "none" + }, + "name": "Restrain", + "img": "icons/creatures/webs/webthin-blue.webp", + "range": "close" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [ + { + "name": "Webslinger", + "img": "icons/creatures/webs/webthin-blue.webp", + "origin": "Item.6SkEDPsHvLHQmNts", + "transfer": false, + "_id": "cBJueH89gNvvDKfQ", + "type": "base", + "system": {}, + "changes": [], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "", + "tint": "#ffffff", + "statuses": [ + "restrained" + ], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "FecEtPuoQh6MpjQ0", + "modifiedTime": 1753576128082 + }, + "_key": "!items.effects!D73fS1iM4SZPFimu.cBJueH89gNvvDKfQ" + } + ], + "folder": "uU8bIoZvXge0rLaU", + "ownership": { + "default": 0, + "FecEtPuoQh6MpjQ0": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753576005315, + "modifiedTime": 1753628206133, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, + "_id": "D73fS1iM4SZPFimu", + "sort": 1700000, + "_key": "!items!D73fS1iM4SZPFimu" +} diff --git a/src/packs/beastforms/folders_Beastform_Features_uU8bIoZvXge0rLaU.json b/src/packs/beastforms/folders_Beastform_Features_uU8bIoZvXge0rLaU.json new file mode 100644 index 00000000..74cd56a6 --- /dev/null +++ b/src/packs/beastforms/folders_Beastform_Features_uU8bIoZvXge0rLaU.json @@ -0,0 +1,23 @@ +{ + "type": "Item", + "folder": null, + "name": "Beastform Features", + "color": null, + "sorting": "a", + "_id": "uU8bIoZvXge0rLaU", + "description": "", + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1752976835537, + "modifiedTime": 1752976835537, + "lastModifiedBy": "k0gmQFlvrPvlTtbh" + }, + "_key": "!folders!uU8bIoZvXge0rLaU" +} diff --git a/src/packs/beastforms/folders_Tier_1_nhnRdZgSSrE9myIX.json b/src/packs/beastforms/folders_Tier_1_nhnRdZgSSrE9myIX.json new file mode 100644 index 00000000..00e75d82 --- /dev/null +++ b/src/packs/beastforms/folders_Tier_1_nhnRdZgSSrE9myIX.json @@ -0,0 +1,23 @@ +{ + "type": "Item", + "folder": null, + "name": "Tier 1", + "color": null, + "sorting": "a", + "_id": "nhnRdZgSSrE9myIX", + "description": "", + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753570919425, + "modifiedTime": 1753570919425, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, + "_key": "!folders!nhnRdZgSSrE9myIX" +} diff --git a/src/packs/beastforms/folders_Tier_2_Rd30i5G7Pg0HtEUT.json b/src/packs/beastforms/folders_Tier_2_Rd30i5G7Pg0HtEUT.json new file mode 100644 index 00000000..d8758630 --- /dev/null +++ b/src/packs/beastforms/folders_Tier_2_Rd30i5G7Pg0HtEUT.json @@ -0,0 +1,23 @@ +{ + "type": "Item", + "folder": null, + "name": "Tier 2", + "color": null, + "sorting": "a", + "_id": "Rd30i5G7Pg0HtEUT", + "description": "", + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753570924620, + "modifiedTime": 1753570924620, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, + "_key": "!folders!Rd30i5G7Pg0HtEUT" +} diff --git a/src/packs/beastforms/folders_Tier_3_9uPPuDAUXrVYquTw.json b/src/packs/beastforms/folders_Tier_3_9uPPuDAUXrVYquTw.json new file mode 100644 index 00000000..7781983a --- /dev/null +++ b/src/packs/beastforms/folders_Tier_3_9uPPuDAUXrVYquTw.json @@ -0,0 +1,23 @@ +{ + "type": "Item", + "folder": null, + "name": "Tier 3", + "color": null, + "sorting": "a", + "_id": "9uPPuDAUXrVYquTw", + "description": "", + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753570927631, + "modifiedTime": 1753570927631, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, + "_key": "!folders!9uPPuDAUXrVYquTw" +} diff --git a/src/packs/beastforms/folders_Tier_4_UQEr5SAm2Z1Aih1S.json b/src/packs/beastforms/folders_Tier_4_UQEr5SAm2Z1Aih1S.json new file mode 100644 index 00000000..8ff6c2e9 --- /dev/null +++ b/src/packs/beastforms/folders_Tier_4_UQEr5SAm2Z1Aih1S.json @@ -0,0 +1,23 @@ +{ + "type": "Item", + "folder": null, + "name": "Tier 4", + "color": null, + "sorting": "a", + "_id": "UQEr5SAm2Z1Aih1S", + "description": "", + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753570930292, + "modifiedTime": 1753570930292, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, + "_key": "!folders!UQEr5SAm2Z1Aih1S" +} diff --git a/templates/actionTypes/roll.hbs b/templates/actionTypes/roll.hbs index 874d09f2..2d2dab3c 100644 --- a/templates/actionTypes/roll.hbs +++ b/templates/actionTypes/roll.hbs @@ -11,9 +11,9 @@ {{#if (eq source.type "diceSet")}}
{{formField fields.diceRolling.fields.multiplier name="roll.diceRolling.multiplier" value=source.diceRolling.multiplier localize=true}} - {{#if (eq source.diceRolling.multiplier 'flat')}}{{formField fields.diceRolling.fields.flatMultiplier value=source.diceRolling.flatMultiplier name="roll.diceRolling.flatMultiplier" }}{{/if}} - {{formField fields.diceRolling.fields.dice name="roll.diceRolling.dice" value=source.diceRolling.dice}} - {{formField fields.diceRolling.fields.compare name="roll.diceRolling.compare" value=source.diceRolling.compare localize=true}} + {{#if (eq source.diceRolling.multiplier 'flat')}}{{formField fields.diceRolling.fields.flatMultiplier value=source.diceRolling.flatMultiplier name="roll.diceRolling.flatMultiplier" localize=true }}{{/if}} + {{formField fields.diceRolling.fields.dice name="roll.diceRolling.dice" value=source.diceRolling.dice localize=true}} + {{formField fields.diceRolling.fields.compare name="roll.diceRolling.compare" value=source.diceRolling.compare localize=true blank=""}} {{formField fields.diceRolling.fields.treshold name="roll.diceRolling.treshold" value=source.diceRolling.treshold localize=true}}
{{else}} diff --git a/templates/sheets/global/partials/inventory-fieldset-items-V2.hbs b/templates/sheets/global/partials/inventory-fieldset-items-V2.hbs index aa58aad8..29b008bb 100644 --- a/templates/sheets/global/partials/inventory-fieldset-items-V2.hbs +++ b/templates/sheets/global/partials/inventory-fieldset-items-V2.hbs @@ -22,7 +22,7 @@ Parameters: - showActions {boolean} : If true show feature's actions. --}} -
+
{{localize title}} {{#if canCreate}} diff --git a/templates/ui/chat/duality-roll.hbs b/templates/ui/chat/duality-roll.hbs index 7ca039ab..79d906a4 100644 --- a/templates/ui/chat/duality-roll.hbs +++ b/templates/ui/chat/duality-roll.hbs @@ -189,7 +189,7 @@ {{/if}} {{/if}} {{#if hasEffect}} - + {{/if}}
{{roll.total}} From ff7927896a41d8948f9fcec29a71397cf6365950 Mon Sep 17 00:00:00 2001 From: IrkTheImp <41175833+IrkTheImp@users.noreply.github.com> Date: Sun, 27 Jul 2025 14:52:29 -0500 Subject: [PATCH 11/14] fix language display and attribute roll bug (#435) --- .../applications/settings/appearanceSettings.mjs | 2 +- module/helpers/utils.mjs | 14 ++++++++------ 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/module/applications/settings/appearanceSettings.mjs b/module/applications/settings/appearanceSettings.mjs index b4a6be04..533dacff 100644 --- a/module/applications/settings/appearanceSettings.mjs +++ b/module/applications/settings/appearanceSettings.mjs @@ -43,7 +43,7 @@ export default class DHAppearanceSettings extends HandlebarsApplicationMixin(App { id: 'hope', label: 'DAGGERHEART.GENERAL.hope' }, { id: 'fear', label: 'DAGGERHEART.GENERAL.fear' }, { id: 'advantage', label: 'DAGGERHEART.GENERAL.Advantage.full' }, - { id: 'disadvantage', label: 'DAGGERHEART.GENERAL.Advantage.full' } + { id: 'disadvantage', label: 'DAGGERHEART.GENERAL.Disadvantage.full' } ], initial: 'hope' } diff --git a/module/helpers/utils.mjs b/module/helpers/utils.mjs index 93568894..8a302013 100644 --- a/module/helpers/utils.mjs +++ b/module/helpers/utils.mjs @@ -53,12 +53,14 @@ export const getCommandTarget = () => { }; export const setDiceSoNiceForDualityRoll = async (rollResult, advantageState, hopeFaces, fearFaces, advantageFaces) => { - const diceSoNicePresets = await getDiceSoNicePresets(hopeFaces, fearFaces, advantageFaces, advantageFaces); - rollResult.dice[0].options = diceSoNicePresets.hope; - rollResult.dice[1].options = diceSoNicePresets.fear; - if (rollResult.dice[2] && advantageState) { - rollResult.dice[2].options = - advantageState === 1 ? diceSoNicePresets.advantage : diceSoNicePresets.disadvantage; + if (game.modules.get('dice-so-nice')?.active) { + const diceSoNicePresets = await getDiceSoNicePresets(hopeFaces, fearFaces, advantageFaces, advantageFaces); + rollResult.dice[0].options = diceSoNicePresets.hope; + rollResult.dice[1].options = diceSoNicePresets.fear; + if (rollResult.dice[2] && advantageState) { + rollResult.dice[2].options = + advantageState === 1 ? diceSoNicePresets.advantage : diceSoNicePresets.disadvantage; + } } }; From f55698af02ae8d80d79b2af40dd28d0e02d85346 Mon Sep 17 00:00:00 2001 From: Psitacus <59754077+Psitacus@users.noreply.github.com> Date: Sun, 27 Jul 2025 15:26:55 -0600 Subject: [PATCH 12/14] Fix duality roll (#436) * allow /dr and [[/dr]] to be rolled without selection * fix weird ternary * Fixed so trait modifier comes along correctly --------- Co-authored-by: psitacus Co-authored-by: WBHarry --- daggerheart.mjs | 2 +- module/applications/dialogs/d20RollDialog.mjs | 5 +++-- module/enrichers/DualityRollEnricher.mjs | 16 +++++++++++----- module/helpers/utils.mjs | 13 ++++++++----- 4 files changed, 23 insertions(+), 13 deletions(-) diff --git a/daggerheart.mjs b/daggerheart.mjs index 20557fde..bf8a9f63 100644 --- a/daggerheart.mjs +++ b/daggerheart.mjs @@ -202,7 +202,7 @@ Hooks.on('chatMessage', (_, message) => { : undefined; const difficulty = rollCommand.difficulty; - const target = getCommandTarget(); + const target = getCommandTarget({ allowNull: true }); const title = traitValue ? game.i18n.format('DAGGERHEART.UI.Chat.dualityRoll.abilityCheckTitle', { ability: game.i18n.localize(SYSTEM.ACTOR.abilities[traitValue].label) diff --git a/module/applications/dialogs/d20RollDialog.mjs b/module/applications/dialogs/d20RollDialog.mjs index 05ca1505..76871b6a 100644 --- a/module/applications/dialogs/d20RollDialog.mjs +++ b/module/applications/dialogs/d20RollDialog.mjs @@ -91,9 +91,10 @@ export default class D20RollDialog extends HandlebarsApplicationMixin(Applicatio context.roll = this.roll; context.rollType = this.roll?.constructor.name; context.rallyDie = this.roll.rallyChoices; - context.experiences = Object.keys(this.config.data.experiences).map(id => ({ + const experiences = this.config.data?.experiences || {}; + context.experiences = Object.keys(experiences).map(id => ({ id, - ...this.config.data.experiences[id] + ...experiences[id] })); context.selectedExperiences = this.config.experiences; context.advantage = this.config.roll?.advantage; diff --git a/module/enrichers/DualityRollEnricher.mjs b/module/enrichers/DualityRollEnricher.mjs index 690262ce..24dd0602 100644 --- a/module/enrichers/DualityRollEnricher.mjs +++ b/module/enrichers/DualityRollEnricher.mjs @@ -58,7 +58,7 @@ function getDualityMessage(roll) { export const renderDualityButton = async event => { const button = event.currentTarget, traitValue = button.dataset.trait?.toLowerCase(), - target = getCommandTarget(), + target = getCommandTarget({ allowNull: true }), difficulty = button.dataset.difficulty, advantage = button.dataset.advantage ? Number(button.dataset.advantage) : undefined; @@ -80,13 +80,11 @@ export const enrichedDualityRoll = async ( { traitValue, target, difficulty, title, label, actionType, advantage }, event ) => { - if (!target) return; - const config = { event: event ?? {}, title: title, roll: { - modifier: traitValue ? target.system.traits[traitValue].value : null, + trait: traitValue && target ? traitValue : null, label: label, difficulty: difficulty, advantage, @@ -96,5 +94,13 @@ export const enrichedDualityRoll = async ( template: 'systems/daggerheart/templates/ui/chat/duality-roll.hbs' } }; - await target.diceRoll(config); + + if (target) { + await target.diceRoll(config); + } else { + // For no target, call DualityRoll directly with basic data + config.data = { experiences: {}, traits: {} }; + config.source = { actor: null }; + await CONFIG.Dice.daggerheart.DualityRoll.build(config); + } }; diff --git a/module/helpers/utils.mjs b/module/helpers/utils.mjs index 8a302013..30f360cf 100644 --- a/module/helpers/utils.mjs +++ b/module/helpers/utils.mjs @@ -31,21 +31,24 @@ export function rollCommandToJSON(text) { return Object.keys(result).length > 0 ? result : null; } -export const getCommandTarget = () => { +export const getCommandTarget = (options = {}) => { + const { allowNull = false } = options; let target = game.canvas.tokens.controlled.length > 0 ? game.canvas.tokens.controlled[0].actor : null; if (!game.user.isGM) { target = game.user.character; - if (!target) { + if (!target && !allowNull) { ui.notifications.error(game.i18n.localize('DAGGERHEART.UI.Notifications.noAssignedPlayerCharacter')); return null; } } - if (!target) { + if (!target && !allowNull) { ui.notifications.error(game.i18n.localize('DAGGERHEART.UI.Notifications.noSelectedToken')); return null; } - if (target.type !== 'character') { - ui.notifications.error(game.i18n.localize('DAGGERHEART.UI.Notifications.onlyUseableByPC')); + if (target && target.type !== 'character') { + if (!allowNull) { + ui.notifications.error(game.i18n.localize('DAGGERHEART.UI.Notifications.onlyUseableByPC')); + } return null; } From fad64c9a35dcfb0c8b6288ff3652c82df81be4b2 Mon Sep 17 00:00:00 2001 From: Dapoulp <74197441+Dapoulp@users.noreply.github.com> Date: Mon, 28 Jul 2025 00:11:43 +0200 Subject: [PATCH 13/14] Feature/allow action healing multiple resources (#437) * Healing updates * Remove comments --- lang/en.json | 10 ++++-- module/applications/dialogs/damageDialog.mjs | 8 ++--- .../dialogs/damageSelectionDialog.mjs | 2 ++ .../sheets-configs/action-config.mjs | 1 - module/applications/ui/chatLog.mjs | 33 +++---------------- module/config/generalConfig.mjs | 2 +- module/data/action/baseAction.mjs | 4 +-- module/data/action/damageAction.mjs | 3 +- module/data/action/healingAction.mjs | 13 ++++++-- module/data/chat-message/damageRoll.mjs | 1 + module/data/fields/action/healingField.mjs | 7 ++-- module/data/fields/action/targetField.mjs | 12 ++++--- module/data/fields/actionField.mjs | 7 ++-- module/dice/damageRoll.mjs | 22 +++++++------ module/documents/actor.mjs | 31 ++++++++++++----- module/helpers/utils.mjs | 15 ++++----- templates/actionTypes/damage.hbs | 8 +++-- .../dialogs/dice-roll/damageSelection.hbs | 16 +++++---- .../action-settings/effect.hbs | 2 +- templates/ui/chat/damage-roll.hbs | 1 + templates/ui/chat/duality-roll.hbs | 30 +++++++++++++---- 21 files changed, 130 insertions(+), 98 deletions(-) diff --git a/lang/en.json b/lang/en.json index a5f145ad..a472b40e 100755 --- a/lang/en.json +++ b/lang/en.json @@ -713,7 +713,7 @@ "abbreviation": "HO" }, "armorStack": { - "name": "Armor Stack", + "name": "Armor Slot", "abbreviation": "AS" }, "fear": { @@ -1029,6 +1029,9 @@ }, "damageRoll": { "name": "Damage Roll" + }, + "healingRoll": { + "name": "Healing Roll" } }, "Duration": { @@ -1671,8 +1674,9 @@ "subclassFeatureTitle": "Subclass Feature" }, "healingRoll": { - "title": "Heal - {healing}", - "heal": "Heal" + "title": "Heal - {damage}", + "heal": "Heal", + "applyHealing": "Apply Healing" }, "reroll": { "confirmTitle": "Reroll Dice", diff --git a/module/applications/dialogs/damageDialog.mjs b/module/applications/dialogs/damageDialog.mjs index 78452054..cffa6433 100644 --- a/module/applications/dialogs/damageDialog.mjs +++ b/module/applications/dialogs/damageDialog.mjs @@ -38,17 +38,15 @@ export default class DamageDialog extends HandlebarsApplicationMixin(Application }; get title() { - return game.i18n.localize('DAGGERHEART.EFFECTS.ApplyLocations.damageRoll.name'); + return game.i18n.localize(`DAGGERHEART.EFFECTS.ApplyLocations.${this.config.isHealing ? 'healing' : 'damage'}Roll.name`); } async _prepareContext(_options) { const context = await super._prepareContext(_options); context.config = CONFIG.DH; - context.title = this.config.title - ? this.config.title - : game.i18n.localize('DAGGERHEART.EFFECTS.ApplyLocations.damageRoll.name'); - // context.extraFormula = this.config.extraFormula; + context.title = this.config.title ?? this.title; context.formula = this.roll.constructFormula(this.config); + context.isHealing = this.config.isHealing; context.directDamage = this.config.directDamage; context.selectedRollMode = this.config.selectedRollMode; context.rollModes = Object.entries(CONFIG.Dice.rollModes).map(([action, { label, icon }]) => ({ diff --git a/module/applications/dialogs/damageSelectionDialog.mjs b/module/applications/dialogs/damageSelectionDialog.mjs index 547ba87c..3d4b312c 100644 --- a/module/applications/dialogs/damageSelectionDialog.mjs +++ b/module/applications/dialogs/damageSelectionDialog.mjs @@ -1,3 +1,5 @@ +// TO DELETE ? + const { ApplicationV2, HandlebarsApplicationMixin } = foundry.applications.api; export default class DamageSelectionDialog extends HandlebarsApplicationMixin(ApplicationV2) { diff --git a/module/applications/sheets-configs/action-config.mjs b/module/applications/sheets-configs/action-config.mjs index ed81b7e9..7d50c0c6 100644 --- a/module/applications/sheets-configs/action-config.mjs +++ b/module/applications/sheets-configs/action-config.mjs @@ -118,7 +118,6 @@ export default class DHActionConfig extends DaggerheartSheet(ApplicationV2) { { key: 1, label: game.i18n.localize('DAGGERHEART.GENERAL.Tiers.1') }, ...Object.values(settingsTiers).map(x => ({ key: x.tier, label: x.name })) ]; - return context; } diff --git a/module/applications/ui/chatLog.mjs b/module/applications/ui/chatLog.mjs index 8af11249..e0f990ba 100644 --- a/module/applications/ui/chatLog.mjs +++ b/module/applications/ui/chatLog.mjs @@ -17,9 +17,6 @@ export default class DhpChatLog extends foundry.applications.sidebar.tabs.ChatLo html.querySelectorAll('.duality-action-damage').forEach(element => element.addEventListener('click', event => this.onRollDamage(event, data.message)) ); - html.querySelectorAll('.duality-action-healing').forEach(element => - element.addEventListener('click', event => this.onRollHealing(event, data.message)) - ); html.querySelectorAll('.target-save-container').forEach(element => element.addEventListener('click', event => this.onRollSave(event, data.message)) ); @@ -92,17 +89,6 @@ export default class DhpChatLog extends foundry.applications.sidebar.tabs.ChatLo } } - async onRollHealing(event, message) { - event.stopPropagation(); - const actor = await this.getActor(message.system.source.actor); - if (!actor || !game.user.isGM) return true; - if (message.system.source.item && message.system.source.action) { - const action = this.getAction(actor, message.system.source.item, message.system.source.action); - if (!action || !action?.rollHealing) return; - await action.rollHealing(event, message); - } - } - async onRollSave(event, message) { event.stopPropagation(); const actor = await this.getActor(message.system.source.actor), @@ -160,7 +146,7 @@ export default class DhpChatLog extends foundry.applications.sidebar.tabs.ChatLo return { isHit, targets: isHit - ? message.system.targets.filter(t => t.hit === true).map(target => game.canvas.tokens.get(target.id)) + ? message.system.targets.filter(t => t.hit === true).map(target => game.canvas.tokens.documentCollection.find(t => t.actor.uuid === target.actorId)) : Array.from(game.user.targets) }; } @@ -222,19 +208,10 @@ export default class DhpChatLog extends foundry.applications.sidebar.tabs.ChatLo }); } - target.actor.takeDamage(damages); - } - } - - async onHealing(event, message) { - event.stopPropagation(); - const targets = Array.from(game.user.targets); - - if (targets.length === 0) - return ui.notifications.info(game.i18n.localize('DAGGERHEART.UI.Notifications.noTargetsSelected')); - - for (var target of targets) { - target.actor.takeHealing(message.system.roll); + if(message.system.hasHealing) + target.actor.takeHealing(damages); + else + target.actor.takeDamage(damages); } } diff --git a/module/config/generalConfig.mjs b/module/config/generalConfig.mjs index fff7b613..6781dc83 100644 --- a/module/config/generalConfig.mjs +++ b/module/config/generalConfig.mjs @@ -439,7 +439,7 @@ export const abilityCosts = { }, armor: { id: 'armor', - label: 'Armor Stack', + label: 'Armor Slot', group: 'TYPES.Actor.character' }, fear: { diff --git a/module/data/action/baseAction.mjs b/module/data/action/baseAction.mjs index 67e0e00b..f3fdb3d6 100644 --- a/module/data/action/baseAction.mjs +++ b/module/data/action/baseAction.mjs @@ -169,8 +169,8 @@ export default class DHBaseAction extends ActionMixin(foundry.abstract.DataModel }, dialog: {}, type: this.type, - hasDamage: !!this.damage?.parts?.length, - hasHealing: !!this.healing, + hasDamage: this.damage?.parts?.length && this.type !== 'healing', + hasHealing: this.damage?.parts?.length && this.type === 'healing', hasEffect: !!this.effects?.length, hasSave: this.hasSave, selectedRollMode: game.settings.get('core', 'rollMode'), diff --git a/module/data/action/damageAction.mjs b/module/data/action/damageAction.mjs index cb813114..c8da5737 100644 --- a/module/data/action/damageAction.mjs +++ b/module/data/action/damageAction.mjs @@ -47,11 +47,12 @@ export default class DHDamageAction extends DHBaseAction { formulas = this.formatFormulas(formulas, systemData); const config = { - title: game.i18n.format('DAGGERHEART.UI.Chat.damageRoll.title', { damage: game.i18n.localize(this.name) }), + title: game.i18n.format(`DAGGERHEART.UI.Chat.${ this.type === 'healing' ? 'healing' : 'damage'}Roll.title`, { damage: game.i18n.localize(this.name) }), roll: formulas, targets: systemData.targets?.filter(t => t.hit) ?? data.targets, hasSave: this.hasSave, isCritical: systemData.roll?.isCritical ?? false, + isHealing: this.type === 'healing', source: systemData.source, data: this.getRollData(), event diff --git a/module/data/action/healingAction.mjs b/module/data/action/healingAction.mjs index 48aa4146..dad67dec 100644 --- a/module/data/action/healingAction.mjs +++ b/module/data/action/healingAction.mjs @@ -1,7 +1,14 @@ import DHBaseAction from './baseAction.mjs'; +import DHDamageAction from './damageAction.mjs'; -export default class DHHealingAction extends DHBaseAction { - static extraSchemas = [...super.extraSchemas, 'target', 'effects', 'healing', 'roll']; +export default class DHHealingAction extends DHDamageAction { + static extraSchemas = [...super.extraSchemas, 'roll']; + + static getRollType(parent) { + return 'spellcast'; + } + + /* static extraSchemas = [...super.extraSchemas, 'target', 'effects', 'healing', 'roll']; static getRollType(parent) { return 'spellcast'; @@ -44,5 +51,5 @@ export default class DHHealingAction extends DHBaseAction { get modifiers() { return []; - } + } */ } diff --git a/module/data/chat-message/damageRoll.mjs b/module/data/chat-message/damageRoll.mjs index 210cc0fe..167e97d9 100644 --- a/module/data/chat-message/damageRoll.mjs +++ b/module/data/chat-message/damageRoll.mjs @@ -21,6 +21,7 @@ export default class DHDamageRoll extends foundry.abstract.TypeDataModel { ), targetSelection: new fields.BooleanField({ initial: true }), hasSave: new fields.BooleanField({ initial: false }), + isHealing: new fields.BooleanField({ initial: false }), onSave: new fields.StringField(), source: new fields.SchemaField({ actor: new fields.StringField(), diff --git a/module/data/fields/action/healingField.mjs b/module/data/fields/action/healingField.mjs index 3734e596..98f4f5ea 100644 --- a/module/data/fields/action/healingField.mjs +++ b/module/data/fields/action/healingField.mjs @@ -2,8 +2,11 @@ import { DHDamageData } from './damageField.mjs'; const fields = foundry.data.fields; -export default class HealingField extends fields.EmbeddedDataField { +export default class HealingField extends fields.SchemaField { constructor(options, context = {}) { - super(DHDamageData, options, context); + const healingFields = { + parts: new fields.ArrayField(new fields.EmbeddedDataField(DHDamageData)) + }; + super(healingFields, options, context); } } diff --git a/module/data/fields/action/targetField.mjs b/module/data/fields/action/targetField.mjs index 41f931a6..1024d5d7 100644 --- a/module/data/fields/action/targetField.mjs +++ b/module/data/fields/action/targetField.mjs @@ -17,11 +17,13 @@ export default class TargetField extends fields.SchemaField { if (!this.target?.type) return []; let targets; if (this.target?.type === CONFIG.DH.ACTIONS.targetTypes.self.id) - targets = TargetField.formatTarget.call(this, this.actor.token ?? this.actor.prototypeToken); - targets = Array.from(game.user.targets); - if (this.target.type !== CONFIG.DH.ACTIONS.targetTypes.any.id) { - targets = targets.filter(t => TargetField.isTargetFriendly.call(this, t)); - if (this.target.amount && targets.length > this.target.amount) targets = []; + targets = [this.actor.token ?? this.actor.prototypeToken]; + else { + targets = Array.from(game.user.targets); + if (this.target.type !== CONFIG.DH.ACTIONS.targetTypes.any.id) { + targets = targets.filter(t => TargetField.isTargetFriendly.call(this, t)); + if (this.target.amount && targets.length > this.target.amount) targets = []; + } } config.targets = targets.map(t => TargetField.formatTarget.call(this, t)); const hasTargets = TargetField.checkTargets.call(this, this.target.amount, config.targets); diff --git a/module/data/fields/actionField.mjs b/module/data/fields/actionField.mjs index 287d53ee..8cf7b30c 100644 --- a/module/data/fields/actionField.mjs +++ b/module/data/fields/actionField.mjs @@ -200,7 +200,7 @@ export function ActionMixin(Base) { } ); const created = await parent.parent.update({ [`system.actions.${action.id}`]: action.toObject() }); - const newAction = parent.actions.get(action.id); + const newAction = created.system.actions.get(action.id); if (!newAction) return null; if (renderSheet) newAction.sheet.render({ force: true }); return newAction; @@ -215,10 +215,7 @@ export function ActionMixin(Base) { await this.parent.updateSource({ [path]: updates }, options); result = this.parent; } else { - /* Fix me - For some reason updating the "healing" section in particular doesn't work without this */ - await this.item.update({ [path]: updates }, options); - await this.item.updateSource({ [path]: updates }, options); - result = this.item; + result = await this.item.update({ [path]: updates }, options); } return this.inCollection diff --git a/module/dice/damageRoll.mjs b/module/dice/damageRoll.mjs index 48313c5b..43e275d4 100644 --- a/module/dice/damageRoll.mjs +++ b/module/dice/damageRoll.mjs @@ -83,18 +83,20 @@ export default class DamageRoll extends DHRoll { applyBaseBonus(part) { const modifiers = [], - type = this.options.messageType ?? 'damage', + type = this.options.messageType ?? (this.options.isHealing ? 'healing' : 'damage'), options = part ?? this.options; - + modifiers.push(...this.getBonus(`${type}`, `${type.capitalize()} Bonus`)); - options.damageTypes?.forEach(t => { - modifiers.push(...this.getBonus(`${type}.${t}`, `${t.capitalize()} ${type.capitalize()} Bonus`)); - }); - const weapons = ['primaryWeapon', 'secondaryWeapon']; - weapons.forEach(w => { - if (this.options.source.item && this.options.source.item === this.data[w]?.id) - modifiers.push(...this.getBonus(`${type}.${w}`, 'Weapon Bonus')); - }); + if(!this.options.isHealing) { + options.damageTypes?.forEach(t => { + modifiers.push(...this.getBonus(`${type}.${t}`, `${t.capitalize()} ${type.capitalize()} Bonus`)); + }); + const weapons = ['primaryWeapon', 'secondaryWeapon']; + weapons.forEach(w => { + if (this.options.source.item && this.options.source.item === this.data[w]?.id) + modifiers.push(...this.getBonus(`${type}.${w}`, 'Weapon Bonus')); + }); + } return modifiers; } diff --git a/module/documents/actor.mjs b/module/documents/actor.mjs index 5a26ded6..fc62e870 100644 --- a/module/documents/actor.mjs +++ b/module/documents/actor.mjs @@ -471,7 +471,7 @@ export default class DhpActor extends Actor { await this.modifyResource(updates); - if (Hooks.call(`${CONFIG.DH.id}.postTakeDamage`, this, damages) === false) return null; + if (Hooks.call(`${CONFIG.DH.id}.postTakeDamage`, this, updates) === false) return null; } calculateDamage(baseDamage, type) { @@ -498,14 +498,28 @@ export default class DhpActor extends Actor { return reduction === Infinity ? 0 : reduction; } - async takeHealing(resources) { - const updates = Object.entries(resources).map(([key, value]) => ({ - key: key, - value: !(key === 'fear' || this.system?.resources?.[key]?.isReversed === false) - ? value.total * -1 - : value.total - })); + async takeHealing(healings) { + if (Hooks.call(`${CONFIG.DH.id}.preTakeHealing`, this, healings) === false) return null; + + const updates = []; + Object.entries(healings).forEach(([key, healing]) => { + healing.parts.forEach(part => { + const update = updates.find(u => u.key === key); + if (update) + update.value += part.total; + else updates.push({ value: part.total, key }); + }); + }); + + updates.forEach( + u => + (u.value = + !(u.key === 'fear' || this.system?.resources?.[u.key]?.isReversed === false) ? u.value * -1 : u.value) + ); + await this.modifyResource(updates); + + if (Hooks.call(`${CONFIG.DH.id}.postTakeHealing`, this, updates) === false) return null; } async modifyResource(resources) { @@ -547,6 +561,7 @@ export default class DhpActor extends Actor { } } }); + Object.keys(updates).forEach(async key => { const u = updates[key]; if (key === 'items') { diff --git a/module/helpers/utils.mjs b/module/helpers/utils.mjs index 30f360cf..ac9ac9e7 100644 --- a/module/helpers/utils.mjs +++ b/module/helpers/utils.mjs @@ -56,14 +56,13 @@ export const getCommandTarget = (options = {}) => { }; export const setDiceSoNiceForDualityRoll = async (rollResult, advantageState, hopeFaces, fearFaces, advantageFaces) => { - if (game.modules.get('dice-so-nice')?.active) { - const diceSoNicePresets = await getDiceSoNicePresets(hopeFaces, fearFaces, advantageFaces, advantageFaces); - rollResult.dice[0].options = diceSoNicePresets.hope; - rollResult.dice[1].options = diceSoNicePresets.fear; - if (rollResult.dice[2] && advantageState) { - rollResult.dice[2].options = - advantageState === 1 ? diceSoNicePresets.advantage : diceSoNicePresets.disadvantage; - } + if (!game.modules.get('dice-so-nice')?.active) return; + const diceSoNicePresets = await getDiceSoNicePresets(hopeFaces, fearFaces, advantageFaces, advantageFaces); + rollResult.dice[0].options = diceSoNicePresets.hope; + rollResult.dice[1].options = diceSoNicePresets.fear; + if (rollResult.dice[2] && advantageState) { + rollResult.dice[2].options = + advantageState === 1 ? diceSoNicePresets.advantage : diceSoNicePresets.disadvantage; } }; diff --git a/templates/actionTypes/damage.hbs b/templates/actionTypes/damage.hbs index 9ae25e0e..2cf71abd 100644 --- a/templates/actionTypes/damage.hbs +++ b/templates/actionTypes/damage.hbs @@ -1,7 +1,11 @@
- {{localize "DAGGERHEART.GENERAL.damage"}} + {{#if (eq @root.source.type 'healing')}} + {{localize "DAGGERHEART.GENERAL.healing"}} + {{else}} + {{localize "DAGGERHEART.GENERAL.damage"}} + {{/if}} {{#unless (eq path 'system.attack.')}}{{/unless}} {{#if @root.hasBaseDamage}} @@ -37,7 +41,7 @@ {{/if}}
{{formField ../fields.applyTo value=dmg.applyTo name=(concat ../path "damage.parts." realIndex ".applyTo") localize=true}} - {{#if (eq dmg.applyTo 'hitPoints')}} + {{#if (and (eq dmg.applyTo 'hitPoints') (ne @root.source.type 'healing'))}} {{formField ../fields.type value=dmg.type name=(concat ../path "damage.parts." realIndex ".type") localize=true}} {{/if}}
diff --git a/templates/dialogs/dice-roll/damageSelection.hbs b/templates/dialogs/dice-roll/damageSelection.hbs index 6eb2efff..b5b316e7 100644 --- a/templates/dialogs/dice-roll/damageSelection.hbs +++ b/templates/dialogs/dice-roll/damageSelection.hbs @@ -9,13 +9,15 @@ {{#with (lookup @root.config.GENERAL.healingTypes applyTo)}} {{localize label}} {{/with}} - {{#if damageTypes}} - {{#each damageTypes as | type | }} - {{#with (lookup @root.config.GENERAL.damageTypes type)}} - - {{/with}} - {{/each}} - {{/if}} + {{#unless @root.isHealing}} + {{#if damageTypes}} + {{#each damageTypes as | type | }} + {{#with (lookup @root.config.GENERAL.damageTypes type)}} + + {{/with}} + {{/each}} + {{/if}} + {{/unless}}
diff --git a/templates/sheets-settings/action-settings/effect.hbs b/templates/sheets-settings/action-settings/effect.hbs index 9e798b37..cc3fb4cc 100644 --- a/templates/sheets-settings/action-settings/effect.hbs +++ b/templates/sheets-settings/action-settings/effect.hbs @@ -6,7 +6,7 @@ {{#if fields.roll}}{{> 'systems/daggerheart/templates/actionTypes/roll.hbs' fields=fields.roll.fields source=source.roll}}{{/if}} {{#if fields.save}}{{> 'systems/daggerheart/templates/actionTypes/save.hbs' fields=fields.save.fields source=source.save}}{{/if}} {{#if fields.damage}}{{> 'systems/daggerheart/templates/actionTypes/damage.hbs' fields=fields.damage.fields.parts.element.fields source=source.damage}}{{/if}} - {{#if fields.healing}}{{> 'systems/daggerheart/templates/actionTypes/healing.hbs' fields=fields.healing.fields source=source.healing}}{{/if}} + {{!-- {{#if fields.healing}}{{> 'systems/daggerheart/templates/actionTypes/healing.hbs' fields=fields.healing.fields source=source.healing}}{{/if}} --}} {{#if fields.resource}}{{> 'systems/daggerheart/templates/actionTypes/resource.hbs' fields=fields.resource.fields source=source.resource}}{{/if}} {{#if fields.documentUUID}}{{> 'systems/daggerheart/templates/actionTypes/uuid.hbs' fields=fields.documentUUID source=source.documentUUID}}{{/if}} {{#if fields.effects}}{{> 'systems/daggerheart/templates/actionTypes/effect.hbs' fields=fields.effects.element.fields source=source.effects}}{{/if}} diff --git a/templates/ui/chat/damage-roll.hbs b/templates/ui/chat/damage-roll.hbs index 1d1a8c93..29380670 100644 --- a/templates/ui/chat/damage-roll.hbs +++ b/templates/ui/chat/damage-roll.hbs @@ -1,3 +1,4 @@ +{{!-- TO DO DELETE ? --}} {{> 'systems/daggerheart/templates/ui/chat/parts/damage-chat.hbs' damage=this}} {{> 'systems/daggerheart/templates/ui/chat/parts/target-chat.hbs'}}
diff --git a/templates/ui/chat/duality-roll.hbs b/templates/ui/chat/duality-roll.hbs index 79d906a4..259e0316 100644 --- a/templates/ui/chat/duality-roll.hbs +++ b/templates/ui/chat/duality-roll.hbs @@ -164,7 +164,13 @@
- {{localize "DAGGERHEART.GENERAL.damage"}} + + {{#if hasHealing}} + {{localize "DAGGERHEART.GENERAL.healing"}} + {{else}} + {{localize "DAGGERHEART.GENERAL.damage"}} + {{/if}} +
@@ -177,16 +183,28 @@
- {{#if hasDamage}} + {{#if (or hasDamage hasHealing)}} {{#if damage.roll}} - + {{else}} - + {{/if}} - {{else}} + {{!-- {{else}} {{#if hasHealing}} - {{/if}} + {{/if}} --}} {{/if}} {{#if hasEffect}} From 6d7401c87458e9c9deabfcd721b20e9b606ce772 Mon Sep 17 00:00:00 2001 From: Cyril ALFARO Date: Mon, 28 Jul 2025 00:38:00 +0200 Subject: [PATCH 14/14] Fix: make drag and drop item works again (#407) (#438) --- templates/sheets/global/partials/inventory-item-V2.hbs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/templates/sheets/global/partials/inventory-item-V2.hbs b/templates/sheets/global/partials/inventory-item-V2.hbs index 10ff20eb..90e1c543 100644 --- a/templates/sheets/global/partials/inventory-item-V2.hbs +++ b/templates/sheets/global/partials/inventory-item-V2.hbs @@ -15,7 +15,7 @@ Parameters: - showActions {boolean} : If true show feature's actions. --}} -
  • {{!-- Image --}} @@ -256,4 +256,4 @@ Parameters:
    {{/if}}
  • - \ No newline at end of file +