From dd585a5e930c80d7e4fe9172b7b24920e7ee8880 Mon Sep 17 00:00:00 2001 From: Dapoulp <74197441+Dapoulp@users.noreply.github.com> Date: Wed, 6 Aug 2025 17:25:01 +0200 Subject: [PATCH 01/21] Fix healing bonuses (#650) --- module/applications/dialogs/damageDialog.mjs | 4 ++-- module/dice/damageRoll.mjs | 4 ++-- templates/dialogs/dice-roll/damageSelection.hbs | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/module/applications/dialogs/damageDialog.mjs b/module/applications/dialogs/damageDialog.mjs index cffa6433..42fe10c5 100644 --- a/module/applications/dialogs/damageDialog.mjs +++ b/module/applications/dialogs/damageDialog.mjs @@ -38,7 +38,7 @@ export default class DamageDialog extends HandlebarsApplicationMixin(Application }; get title() { - return game.i18n.localize(`DAGGERHEART.EFFECTS.ApplyLocations.${this.config.isHealing ? 'healing' : 'damage'}Roll.name`); + return game.i18n.localize(`DAGGERHEART.EFFECTS.ApplyLocations.${this.config.hasHealing ? 'healing' : 'damage'}Roll.name`); } async _prepareContext(_options) { @@ -46,7 +46,7 @@ export default class DamageDialog extends HandlebarsApplicationMixin(Application context.config = CONFIG.DH; context.title = this.config.title ?? this.title; context.formula = this.roll.constructFormula(this.config); - context.isHealing = this.config.isHealing; + context.hasHealing = this.config.hasHealing; 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/dice/damageRoll.mjs b/module/dice/damageRoll.mjs index be49d685..11d317aa 100644 --- a/module/dice/damageRoll.mjs +++ b/module/dice/damageRoll.mjs @@ -84,11 +84,11 @@ export default class DamageRoll extends DHRoll { applyBaseBonus(part) { const modifiers = [], - type = this.options.messageType ?? (this.options.isHealing ? 'healing' : 'damage'), + type = this.options.messageType ?? (this.options.hasHealing ? 'healing' : 'damage'), options = part ?? this.options; modifiers.push(...this.getBonus(`${type}`, `${type.capitalize()} Bonus`)); - if (!this.options.isHealing) { + if (!this.options.hasHealing) { options.damageTypes?.forEach(t => { modifiers.push(...this.getBonus(`${type}.${t}`, `${t.capitalize()} ${type.capitalize()} Bonus`)); }); diff --git a/templates/dialogs/dice-roll/damageSelection.hbs b/templates/dialogs/dice-roll/damageSelection.hbs index b5b316e7..2967b675 100644 --- a/templates/dialogs/dice-roll/damageSelection.hbs +++ b/templates/dialogs/dice-roll/damageSelection.hbs @@ -9,7 +9,7 @@ {{#with (lookup @root.config.GENERAL.healingTypes applyTo)}} {{localize label}} {{/with}} - {{#unless @root.isHealing}} + {{#unless @root.hasHealing}} {{#if damageTypes}} {{#each damageTypes as | type | }} {{#with (lookup @root.config.GENERAL.damageTypes type)}} From 840f71949c41e47723c010075608be3ac29c4307 Mon Sep 17 00:00:00 2001 From: curtisjp <66907744+curtisjp@users.noreply.github.com> Date: Wed, 6 Aug 2025 16:46:24 +0100 Subject: [PATCH 02/21] [Fix] Add various missing Attack icons to Adversaries (#651) Added missing attack icons to the following adversaries' respective attacks. Conscript - Spears Mortal Hunter - Tear at Flesh Spectral Captain - Longbow Vault Guardian Sentinel - Charged Mace --- src/packs/adversaries/adversary_Conscript_99TqczuQipBmaB8i.json | 1 + .../adversaries/adversary_Mortal_Hunter_mVV7a7KQAORoPMgZ.json | 1 + .../adversaries/adversary_Spectral_Captain_65cSO3EQEh6ZH6Xk.json | 1 + .../adversary_Vault_Guardian_Sentinel_FVgYb28fhxlVcGwA.json | 1 + 4 files changed, 4 insertions(+) diff --git a/src/packs/adversaries/adversary_Conscript_99TqczuQipBmaB8i.json b/src/packs/adversaries/adversary_Conscript_99TqczuQipBmaB8i.json index 347f4e09..88ca68b5 100644 --- a/src/packs/adversaries/adversary_Conscript_99TqczuQipBmaB8i.json +++ b/src/packs/adversaries/adversary_Conscript_99TqczuQipBmaB8i.json @@ -60,6 +60,7 @@ }, "attack": { "name": "Spears", + "img": "icons/weapons/polearms/spear-flared-worn.webp", "range": "veryClose", "roll": { "bonus": 0, diff --git a/src/packs/adversaries/adversary_Mortal_Hunter_mVV7a7KQAORoPMgZ.json b/src/packs/adversaries/adversary_Mortal_Hunter_mVV7a7KQAORoPMgZ.json index d8f2376b..1e94b256 100644 --- a/src/packs/adversaries/adversary_Mortal_Hunter_mVV7a7KQAORoPMgZ.json +++ b/src/packs/adversaries/adversary_Mortal_Hunter_mVV7a7KQAORoPMgZ.json @@ -74,6 +74,7 @@ "description": "
An undead figure wearing a heavy leather coat, with searching eyes and a casually cruel demeanor.
", "attack": { "name": "Tear at Flesh", + "img": "icons/skills/melee/strike-slashes-red.webp", "roll": { "bonus": 5, "type": "attack" diff --git a/src/packs/adversaries/adversary_Spectral_Captain_65cSO3EQEh6ZH6Xk.json b/src/packs/adversaries/adversary_Spectral_Captain_65cSO3EQEh6ZH6Xk.json index 65344f5e..318c51a6 100644 --- a/src/packs/adversaries/adversary_Spectral_Captain_65cSO3EQEh6ZH6Xk.json +++ b/src/packs/adversaries/adversary_Spectral_Captain_65cSO3EQEh6ZH6Xk.json @@ -74,6 +74,7 @@ "motivesAndTactics": "Move through solid objects, rally troops, rehash old battles", "attack": { "name": "Longbow", + "img": "icons/weapons/bows/longbow-recurve-skull-brown.webp", "damage": { "parts": [ { diff --git a/src/packs/adversaries/adversary_Vault_Guardian_Sentinel_FVgYb28fhxlVcGwA.json b/src/packs/adversaries/adversary_Vault_Guardian_Sentinel_FVgYb28fhxlVcGwA.json index 6c01352d..743ada61 100644 --- a/src/packs/adversaries/adversary_Vault_Guardian_Sentinel_FVgYb28fhxlVcGwA.json +++ b/src/packs/adversaries/adversary_Vault_Guardian_Sentinel_FVgYb28fhxlVcGwA.json @@ -68,6 +68,7 @@ "description": "A dust-covered golden construct with boxy limbs and a huge mace for a hand.
", "attack": { "name": "Charged Mace", + "img": "icons/weapons/maces/shortmace-ornate-gold.webp", "range": "veryClose", "roll": { "bonus": 3, From cf571aa2a50023b5bf174e4d93d7cfb7536b446c Mon Sep 17 00:00:00 2001 From: Psitacus <59754077+Psitacus@users.noreply.github.com> Date: Wed, 6 Aug 2025 12:17:31 -0600 Subject: [PATCH 03/21] minor compendium qol changes, and a fix for rogue traits (#661) Co-authored-by: psitacusWhile Enraptured, a target’s attention is fixed on you, narrowing their field of view and drowning out any sound but your voice.
", - "origin": null, + "description": "While Enraptured, a target’s attention is fixed on you, narrowing their field of view and drowning out any sound but your voice.
", "tint": "#ffffff", - "transfer": true, "statuses": [], "sort": 0, "flags": {}, @@ -171,11 +176,11 @@ "coreVersion": "13.346", "systemId": "daggerheart", "systemVersion": "0.0.1", - "createdTime": 1754106690796, - "modifiedTime": 1754340886910, + "createdTime": 1754500747406, + "modifiedTime": 1754500810477, "lastModifiedBy": "Q9NoTaEarn3VMS6Z" }, - "_key": "!items.effects!a8lFiKX1o8T924ze.FOQ2yqrpl2TPVxvt" + "_key": "!items.effects!a8lFiKX1o8T924ze.EYG5dLImk6GkmfRd" } ], "ownership": { diff --git a/src/packs/subclasses/feature_Sparing_Touch_GfOSgVJW8bS1OjNq.json b/src/packs/subclasses/feature_Sparing_Touch_GfOSgVJW8bS1OjNq.json index 832b5532..70d9b630 100644 --- a/src/packs/subclasses/feature_Sparing_Touch_GfOSgVJW8bS1OjNq.json +++ b/src/packs/subclasses/feature_Sparing_Touch_GfOSgVJW8bS1OjNq.json @@ -8,7 +8,7 @@ "description": "Once per long rest, touch a creature and clear 2 Hit Points or 2 Stress from them.
", "resource": { "type": "simple", - "value": 0, + "value": 1, "max": "1", "icon": "", "recovery": "longRest" @@ -178,7 +178,7 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1754353243691, - "modifiedTime": 1754353387422, + "modifiedTime": 1754500973073, "lastModifiedBy": "Q9NoTaEarn3VMS6Z" }, "_key": "!items!GfOSgVJW8bS1OjNq" From bcedc74bf388aaee1bfad864fb87590ab40db582 Mon Sep 17 00:00:00 2001 From: Dapoulp <74197441+Dapoulp@users.noreply.github.com> Date: Wed, 6 Aug 2025 20:28:53 +0200 Subject: [PATCH 04/21] Feature/635 allow weapon direct damage (#657) * #635 & #637 * #653 --- module/applications/dialogs/_module.mjs | 1 - .../dialogs/damageSelectionDialog.mjs | 128 ------------------ .../sheets/actors/environment.mjs | 6 +- .../sheets/api/application-mixin.mjs | 16 ++- module/applications/ui/chatLog.mjs | 7 +- module/data/action/attackAction.mjs | 4 +- module/data/action/baseAction.mjs | 28 ++-- module/data/action/beastformAction.mjs | 4 +- module/data/action/damageAction.mjs | 2 +- module/data/action/macroAction.mjs | 2 - module/data/action/summonAction.mjs | 1 - module/data/chat-message/adversaryRoll.mjs | 2 +- module/dice/d20Roll.mjs | 2 +- module/documents/item.mjs | 2 +- styles/less/global/tab-navigation.less | 1 + templates/ui/chat/ability-use.hbs | 7 +- 16 files changed, 57 insertions(+), 156 deletions(-) delete mode 100644 module/applications/dialogs/damageSelectionDialog.mjs diff --git a/module/applications/dialogs/_module.mjs b/module/applications/dialogs/_module.mjs index 11d6dd2b..520c90b6 100644 --- a/module/applications/dialogs/_module.mjs +++ b/module/applications/dialogs/_module.mjs @@ -2,7 +2,6 @@ export { default as BeastformDialog } from './beastformDialog.mjs'; export { default as d20RollDialog } from './d20RollDialog.mjs'; export { default as DamageDialog } from './damageDialog.mjs'; export { default as DamageReductionDialog } from './damageReductionDialog.mjs'; -export { default as DamageSelectionDialog } from './damageSelectionDialog.mjs'; export { default as DeathMove } from './deathMove.mjs'; export { default as Downtime } from './downtime.mjs'; export { default as MulticlassChoiceDialog } from './multiclassChoiceDialog.mjs'; diff --git a/module/applications/dialogs/damageSelectionDialog.mjs b/module/applications/dialogs/damageSelectionDialog.mjs deleted file mode 100644 index 3d4b312c..00000000 --- a/module/applications/dialogs/damageSelectionDialog.mjs +++ /dev/null @@ -1,128 +0,0 @@ -// TO DELETE ? - -const { ApplicationV2, HandlebarsApplicationMixin } = foundry.applications.api; - -export default class DamageSelectionDialog extends HandlebarsApplicationMixin(ApplicationV2) { - constructor(rollString, bonusDamage, resolve, hope = 0) { - super({}); - - this.data = { - rollString, - bonusDamage: bonusDamage.reduce((acc, x) => { - if (x.appliesOn === CONFIG.DH.EFFECTS.applyLocations.damageRoll.id) { - acc.push({ - ...x, - hopeUses: 0 - }); - } - - return acc; - }, []), - hope - }; - this.resolve = resolve; - } - - static DEFAULT_OPTIONS = { - tag: 'form', - classes: ['daggerheart', 'dialog', 'dh-style', 'views', 'damage-selection'], - position: { - width: 400, - height: 'auto' - }, - actions: { - decreaseHopeUse: this.decreaseHopeUse, - increaseHopeUse: this.increaseHopeUse, - rollDamage: this.rollDamage - }, - form: { - handler: this.updateSelection, - submitOnChange: true, - closeOnSubmit: false - } - }; - - /** @override */ - static PARTS = { - damageSelection: { - id: 'damageSelection', - template: 'systems/daggerheart/templates/dialogs/dice-roll/damageSelection.hbs' - } - }; - - /* -------------------------------------------- */ - - /** @inheritDoc */ - get title() { - return `Damage Options`; - } - - async _prepareContext(_options) { - return { - rollString: this.getRollString(), - bonusDamage: this.data.bonusDamage, - hope: this.data.hope + 1, - hopeUsed: this.getHopeUsed() - }; - } - - static updateSelection(event, _, formData) { - const { bonusDamage, ...rest } = foundry.utils.expandObject(formData.object); - - for (var index in bonusDamage) { - this.data.bonusDamage[index].initiallySelected = bonusDamage[index].initiallySelected; - if (bonusDamage[index].hopeUses) { - const value = Number.parseInt(bonusDamage[index].hopeUses); - if (!Number.isNaN(value)) this.data.bonusDamage[index].hopeUses = value; - } - } - - this.data = foundry.utils.mergeObject(this.data, rest); - this.render(true); - } - - getRollString() { - return this.data.rollString.concat( - this.data.bonusDamage.reduce((acc, x) => { - if (x.initiallySelected) { - const nr = 1 + x.hopeUses; - const baseDamage = x.value; - return acc.concat(` + ${nr}${baseDamage}`); - } - - return acc; - }, '') - ); - } - - getHopeUsed() { - return this.data.bonusDamage.reduce((acc, x) => acc + x.hopeUses, 0); - } - - static decreaseHopeUse(_, button) { - const index = Number.parseInt(button.dataset.index); - if (this.data.bonusDamage[index].hopeUses - 1 >= 0) { - this.data.bonusDamage[index].hopeUses -= 1; - this.render(true); - } - } - - static increaseHopeUse(_, button) { - const index = Number.parseInt(button.dataset.index); - if (this.data.bonusDamage[index].hopeUses <= this.data.hope + 1) { - this.data.bonusDamage[index].hopeUses += 1; - this.render(true); - } - } - - static rollDamage(event) { - event.preventDefault(); - - this.resolve({ - rollString: this.getRollString(), - bonusDamage: this.data.bonusDamage, - hopeUsed: this.getHopeUsed() - }); - this.close(); - } -} diff --git a/module/applications/sheets/actors/environment.mjs b/module/applications/sheets/actors/environment.mjs index 7a9c92ac..70f833de 100644 --- a/module/applications/sheets/actors/environment.mjs +++ b/module/applications/sheets/actors/environment.mjs @@ -7,7 +7,11 @@ export default class DhpEnvironment extends DHBaseActorSheet { static DEFAULT_OPTIONS = { classes: ['environment'], position: { - width: 500 + width: 500, + height: 725 + }, + window: { + resizable: true }, actions: {}, dragDrop: [{ dragSelector: '.action-section .inventory-item', dropSelector: null }] diff --git a/module/applications/sheets/api/application-mixin.mjs b/module/applications/sheets/api/application-mixin.mjs index 9e5d6ac9..95f091ce 100644 --- a/module/applications/sheets/api/application-mixin.mjs +++ b/module/applications/sheets/api/application-mixin.mjs @@ -323,6 +323,20 @@ export default function DHApplicationMixin(Base) { ]; if (usable) + options.unshift({ + name: 'DAGGERHEART.GENERAL.damage', + icon: 'fa-solid fa-explosion', + condition: target => { + const doc = getDocFromElementSync(target); + return doc?.system?.attack?.damage.parts.length || doc?.damage?.parts.length; + }, + callback: async (target, event) => { + const doc = await getDocFromElement(target), + action = doc?.system?.attack ?? doc; + return action && action.use(event, { byPassRoll: true }) + } + }); + options.unshift({ name: 'DAGGERHEART.APPLICATIONS.ContextMenu.useItem', icon: 'fa-solid fa-burst', @@ -334,7 +348,7 @@ export default function DHApplicationMixin(Base) { }); if (toChat) - options.unshift({ + options.push({ name: 'DAGGERHEART.APPLICATIONS.ContextMenu.sendToChat', icon: 'fa-solid fa-message', callback: async target => (await getDocFromElement(target)).toChat(this.document.id) diff --git a/module/applications/ui/chatLog.mjs b/module/applications/ui/chatLog.mjs index 958d0386..6c864d09 100644 --- a/module/applications/ui/chatLog.mjs +++ b/module/applications/ui/chatLog.mjs @@ -194,8 +194,11 @@ export default class DhpChatLog extends foundry.applications.sidebar.tabs.ChatLo event.stopPropagation(); const item = await foundry.utils.fromUuid(message.system.origin); - const action = item.system.actions.get(event.currentTarget.id); - await item.use(action); + const action = item.system.attack?.id === event.currentTarget.id ? item.system.attack : item.system.actions.get(event.currentTarget.id); + if(event.currentTarget.dataset.directDamage) + action.use(event, { byPassRoll: true }) + else + action.use(event); } async actionUseButton(event, message) { diff --git a/module/data/action/attackAction.mjs b/module/data/action/attackAction.mjs index 4713938c..1ba5f91e 100644 --- a/module/data/action/attackAction.mjs +++ b/module/data/action/attackAction.mjs @@ -34,8 +34,8 @@ export default class DHAttackAction extends DHDamageAction { }; } - async use(event, ...args) { - const result = await super.use(event, args); + async use(event, options) { + const result = await super.use(event, options); const { updateCountdowns } = game.system.api.applications.ui.DhCountdowns; await updateCountdowns(CONFIG.DH.GENERAL.countdownTypes.characterAttack.id); diff --git a/module/data/action/baseAction.mjs b/module/data/action/baseAction.mjs index b8655c91..8f04d1a0 100644 --- a/module/data/action/baseAction.mjs +++ b/module/data/action/baseAction.mjs @@ -111,12 +111,13 @@ export default class DHBaseAction extends ActionMixin(foundry.abstract.DataModel return actorData; } - async use(event, ...args) { + async use(event, options = {}) { if (!this.actor) throw new Error("An Action can't be used outside of an Actor context."); if (this.chatDisplay) await this.toChat(); - - let config = this.prepareConfig(event); + + let { byPassRoll } = options, + config = this.prepareConfig(event, byPassRoll); for (let i = 0; i < this.constructor.extraSchemas.length; i++) { let clsField = this.constructor.getActionField(this.constructor.extraSchemas[i]); if (clsField?.prepareConfig) { @@ -133,14 +134,14 @@ export default class DHBaseAction extends ActionMixin(foundry.abstract.DataModel if (!config) return; } - if (this.hasRoll) { + if (config.hasRoll) { const rollConfig = this.prepareRoll(config); config.roll = rollConfig; config = await this.actor.diceRoll(config); if (!config) return; } - if (this.doFollowUp()) { + if (this.doFollowUp(config)) { if (this.rollDamage && this.damage.parts.length) await this.rollDamage(event, config); else if (this.trigger) await this.trigger(event, config); else if (this.hasSave || this.hasEffect) { @@ -160,7 +161,8 @@ export default class DHBaseAction extends ActionMixin(foundry.abstract.DataModel } /* */ - prepareConfig(event) { + prepareConfig(event, byPass = false) { + const hasRoll = this.getUseHasRoll(byPass); return { event, title: `${this.item.name}: ${this.name}`, @@ -170,10 +172,10 @@ export default class DHBaseAction extends ActionMixin(foundry.abstract.DataModel actor: this.actor.uuid }, dialog: { - configure: this.hasRoll + configure: hasRoll }, type: this.type, - hasRoll: this.hasRoll, + hasRoll: hasRoll, hasDamage: this.damage?.parts?.length && this.type !== 'healing', hasHealing: this.damage?.parts?.length && this.type === 'healing', hasEffect: !!this.effects?.length, @@ -182,12 +184,12 @@ export default class DHBaseAction extends ActionMixin(foundry.abstract.DataModel selectedRollMode: game.settings.get('core', 'rollMode'), isFastForward: event.shiftKey, data: this.getRollData(), - evaluate: this.hasRoll + evaluate: hasRoll }; } requireConfigurationDialog(config) { - return !config.event.shiftKey && !this.hasRoll && (config.costs?.length || config.uses); + return !config.event.shiftKey && !config.hasRoll && (config.costs?.length || config.uses); } prepareRoll() { @@ -205,7 +207,7 @@ export default class DHBaseAction extends ActionMixin(foundry.abstract.DataModel } doFollowUp(config) { - return !this.hasRoll; + return !config.hasRoll; } async consume(config, successCost = false) { @@ -257,6 +259,10 @@ export default class DHBaseAction extends ActionMixin(foundry.abstract.DataModel /* */ /* ROLL */ + getUseHasRoll(byPass = false) { + return this.hasRoll && !byPass; + } + get hasRoll() { return !!this.roll?.type; } diff --git a/module/data/action/beastformAction.mjs b/module/data/action/beastformAction.mjs index 836024ff..8c2dd31e 100644 --- a/module/data/action/beastformAction.mjs +++ b/module/data/action/beastformAction.mjs @@ -4,7 +4,7 @@ import DHBaseAction from './baseAction.mjs'; export default class DhBeastformAction extends DHBaseAction { static extraSchemas = [...super.extraSchemas, 'beastform']; - async use(event, ...args) { + async use(event, options) { const beastformConfig = this.prepareBeastformConfig(); const abort = await this.handleActiveTransformations(); @@ -20,7 +20,7 @@ export default class DhBeastformAction extends DHBaseAction { const { selected, evolved, hybrid } = await BeastformDialog.configure(beastformConfig, this.item); if (!selected) return; - const result = await super.use(event, args); + const result = await super.use(event, options); if (!result) return; await this.transform(selected, evolved, hybrid); diff --git a/module/data/action/damageAction.mjs b/module/data/action/damageAction.mjs index 40fa2a12..a5c58feb 100644 --- a/module/data/action/damageAction.mjs +++ b/module/data/action/damageAction.mjs @@ -6,7 +6,7 @@ export default class DHDamageAction extends DHBaseAction { getFormulaValue(part, data) { let formulaValue = part.value; - if (this.hasRoll && part.resultBased && data.system.roll.result.duality === -1) return part.valueAlt; + if (data.hasRoll && part.resultBased && data.system.roll.result.duality === -1) return part.valueAlt; const isAdversary = this.actor.type === 'adversary'; if (isAdversary && this.actor.system.type === CONFIG.DH.ACTOR.adversaryTypes.horde.id) { diff --git a/module/data/action/macroAction.mjs b/module/data/action/macroAction.mjs index bfdc8f6b..c4a08df7 100644 --- a/module/data/action/macroAction.mjs +++ b/module/data/action/macroAction.mjs @@ -10,8 +10,6 @@ export default class DHMacroAction extends DHBaseAction { } async trigger(event, ...args) { - // const config = await super.use(event, args); - // if (['error', 'warning'].includes(config.type)) return; const fixUUID = !this.documentUUID.includes('Macro.') ? `Macro.${this.documentUUID}` : this.documentUUID, macro = await fromUuid(fixUUID); try { diff --git a/module/data/action/summonAction.mjs b/module/data/action/summonAction.mjs index 13b4ee99..b06f1d38 100644 --- a/module/data/action/summonAction.mjs +++ b/module/data/action/summonAction.mjs @@ -11,7 +11,6 @@ export default class DHSummonAction extends DHBaseAction { async trigger(event, ...args) { if (!this.canSummon || !canvas.scene) return; - // const config = await super.use(event, args); } get canSummon() { diff --git a/module/data/chat-message/adversaryRoll.mjs b/module/data/chat-message/adversaryRoll.mjs index d6c8851c..c0c218e3 100644 --- a/module/data/chat-message/adversaryRoll.mjs +++ b/module/data/chat-message/adversaryRoll.mjs @@ -132,7 +132,7 @@ export default class DHActorRoll extends foundry.abstract.TypeDataModel { if(this.targetSelection === true) { this.targetShort = this.targets.reduce((a,c) => { if(c.hit) a.hit += 1; - else c.miss += 1; + else a.miss += 1; return a; }, {hit: 0, miss: 0}) } diff --git a/module/dice/d20Roll.mjs b/module/dice/d20Roll.mjs index b30bafbf..62dc0d7f 100644 --- a/module/dice/d20Roll.mjs +++ b/module/dice/d20Roll.mjs @@ -145,7 +145,7 @@ export default class D20Roll extends DHRoll { config.targetSelection = true; config.targets.forEach(target => { const difficulty = config.roll.difficulty ?? target.difficulty ?? target.evasion; - target.hit = this.isCritical || roll.total >= difficulty; + target.hit = roll.isCritical || roll.total >= difficulty; }); data.success = config.targets.some(target => target.hit) } else if (config.roll.difficulty) { diff --git a/module/documents/item.mjs b/module/documents/item.mjs index 96d4596b..e1589661 100644 --- a/module/documents/item.mjs +++ b/module/documents/item.mjs @@ -163,7 +163,7 @@ export default class DHItem extends foundry.documents.Item { img: this.img, tags: this._getTags() }, - actions: item.system.actions, + actions: item.system.actionsList, description: this.system.description }; diff --git a/styles/less/global/tab-navigation.less b/styles/less/global/tab-navigation.less index 014da89f..53295b63 100755 --- a/styles/less/global/tab-navigation.less +++ b/styles/less/global/tab-navigation.less @@ -17,6 +17,7 @@ .feature-tab { border: none; + white-space: nowrap; a { color: light-dark(@dark-blue, @golden); diff --git a/templates/ui/chat/ability-use.hbs b/templates/ui/chat/ability-use.hbs index 0db5d5c8..1ab42978 100644 --- a/templates/ui/chat/ability-use.hbs +++ b/templates/ui/chat/ability-use.hbs @@ -19,7 +19,12 @@ - {{#if action.cost.value}}Once per long rest, you can place a domain card from your loadout into your vault and choose to either:
Gain Hope equal to the level of the card.
Enhance a spell that deals damage, gaining a bonus to your damage roll equal to twice the level of the card.
Once per session, describe how you rally the party and give yourself and each of your allies a Rally Die. At level 1, your Rally Die is a d6. A PC can spend their Rally Die to roll it, adding the result to their action roll, reaction roll, damage roll, or to clear a number of Stress equal to the result. At the end of each session, clear all unspent Rally Dice. At level 5, your Rally Die increases to a d8.
", - "resource": { - "type": "simple", - "value": 1, - "max": "1", - "icon": "", - "recovery": "session", - "diceStates": {}, - "dieFaces": "d4" - }, + "resource": null, "actions": { "vI4Fph3y9ygsya9e": { "type": "effect", @@ -25,15 +17,16 @@ "cost": [ { "scalable": false, - "key": "Y7waM3ljoRLyk38N", + "key": "hitPoints", "value": 1, - "keyIsID": true, - "step": null + "keyIsID": false, + "step": null, + "consumeOnSuccess": false } ], "uses": { "value": null, - "max": "", + "max": "1", "recovery": "session" }, "effects": [ @@ -114,8 +107,8 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1754174497668, - "modifiedTime": 1754246215191, - "lastModifiedBy": "LgnbNMLaxandgMQq" + "modifiedTime": 1754494820213, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "ownership": { "default": 0, diff --git a/src/packs/classes/feature_Rally__Level_5__TVeEyqmPPiRa2r3i.json b/src/packs/classes/feature_Rally__Level_5__TVeEyqmPPiRa2r3i.json index 1f85310e..bba20558 100644 --- a/src/packs/classes/feature_Rally__Level_5__TVeEyqmPPiRa2r3i.json +++ b/src/packs/classes/feature_Rally__Level_5__TVeEyqmPPiRa2r3i.json @@ -5,15 +5,7 @@ "img": "icons/tools/instruments/drum-hand-tan.webp", "system": { "description": "Once per session, describe how you rally the party and give yourself and each of your allies a Rally Die. At level 1, your Rally Die is a d6. A PC can spend their Rally Die to roll it, adding the result to their action roll, reaction roll, damage roll, or to clear a number of Stress equal to the result. At the end of each session, clear all unspent Rally Dice. At level 5, your Rally Die increases to a d8.
", - "resource": { - "type": "simple", - "value": 1, - "max": "1", - "icon": "", - "recovery": "session", - "diceStates": {}, - "dieFaces": "d4" - }, + "resource": null, "actions": { "Z1KWFrpXOqZWuZD1": { "type": "effect", @@ -25,15 +17,16 @@ "cost": [ { "scalable": false, - "key": "oxv0m8AFUQVFKtZ4", + "key": "hitPoints", "value": 1, - "keyIsID": true, - "step": null + "keyIsID": false, + "step": null, + "consumeOnSuccess": false } ], "uses": { "value": null, - "max": "", + "max": "1", "recovery": "session" }, "effects": [ @@ -114,8 +107,8 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1754174499893, - "modifiedTime": 1754246215922, - "lastModifiedBy": "LgnbNMLaxandgMQq" + "modifiedTime": 1754494835723, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "ownership": { "default": 0, diff --git a/src/packs/classes/feature_Strange_Patterns_6YsfFjmCGuFYVhT4.json b/src/packs/classes/feature_Strange_Patterns_6YsfFjmCGuFYVhT4.json index c9bac1eb..afe896de 100644 --- a/src/packs/classes/feature_Strange_Patterns_6YsfFjmCGuFYVhT4.json +++ b/src/packs/classes/feature_Strange_Patterns_6YsfFjmCGuFYVhT4.json @@ -7,10 +7,11 @@ "system": { "description": "Choose a number between 1 and 12. When you roll that number on a Duality Die, gain a Hope or clear a Stress.
You can change this number when you take a long rest.
", "resource": { - "type": "simple", + "type": "diceValue", "value": 1, - "max": "", - "icon": "fa-solid fa-hashtag" + "max": "1", + "icon": "fa-solid fa-hashtag", + "dieFaces": "d12" }, "actions": { "RkqPzF1bdWzPPMml": { @@ -100,7 +101,7 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1754254942995, - "modifiedTime": 1754255067467, + "modifiedTime": 1754498121727, "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items!6YsfFjmCGuFYVhT4" diff --git a/src/packs/communities/feature_Know_the_Tide_07x6Qe6qMzDw2xN4.json b/src/packs/communities/feature_Know_the_Tide_07x6Qe6qMzDw2xN4.json index cab7e54d..d2c1c314 100644 --- a/src/packs/communities/feature_Know_the_Tide_07x6Qe6qMzDw2xN4.json +++ b/src/packs/communities/feature_Know_the_Tide_07x6Qe6qMzDw2xN4.json @@ -30,8 +30,8 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1754010247432, - "modifiedTime": 1754010247432, - "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + "modifiedTime": 1754498464092, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "sort": 0, "ownership": { diff --git a/src/packs/domains/domainCard_Cinder_Grasp_5EP2Lgf7ojfrc0Is.json b/src/packs/domains/domainCard_Cinder_Grasp_5EP2Lgf7ojfrc0Is.json index 5630c6bb..ce88eb60 100644 --- a/src/packs/domains/domainCard_Cinder_Grasp_5EP2Lgf7ojfrc0Is.json +++ b/src/packs/domains/domainCard_Cinder_Grasp_5EP2Lgf7ojfrc0Is.json @@ -66,7 +66,7 @@ } ], "roll": { - "type": null, + "type": "spellcast", "trait": null, "difficulty": null, "bonus": null, @@ -154,8 +154,8 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784434, - "modifiedTime": 1754253433766, - "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + "modifiedTime": 1754475145346, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "5EP2Lgf7ojfrc0Is", "sort": 3400000, diff --git a/src/packs/domains/domainCard_Confusing_Aura_R8NDiJXJWmC48WSr.json b/src/packs/domains/domainCard_Confusing_Aura_R8NDiJXJWmC48WSr.json index 36dec337..ee91b2fc 100644 --- a/src/packs/domains/domainCard_Confusing_Aura_R8NDiJXJWmC48WSr.json +++ b/src/packs/domains/domainCard_Confusing_Aura_R8NDiJXJWmC48WSr.json @@ -20,9 +20,9 @@ "cost": [], "uses": { "value": null, - "max": "", - "recovery": null, - "consumeOnSuccess": false + "max": "1", + "recovery": "longRest", + "consumeOnSuccess": true }, "damage": { "parts": [], @@ -128,8 +128,8 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784437, - "modifiedTime": 1754254161910, - "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + "modifiedTime": 1754501480068, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "R8NDiJXJWmC48WSr", "sort": 3400000, diff --git a/src/packs/domains/domainCard_Copycat_3A7LZ1xmDEMGa165.json b/src/packs/domains/domainCard_Copycat_3A7LZ1xmDEMGa165.json index edb22494..6e9762c6 100644 --- a/src/packs/domains/domainCard_Copycat_3A7LZ1xmDEMGa165.json +++ b/src/packs/domains/domainCard_Copycat_3A7LZ1xmDEMGa165.json @@ -9,12 +9,31 @@ "recallCost": 3, "level": 9, "type": "spell", - "resource": { - "type": "simple", - "value": 1, - "recovery": "longRest", - "max": "1", - "icon": "" + "resource": null, + "actions": { + "RKEceNKiQirYwN45": { + "type": "effect", + "_id": "RKEceNKiQirYwN45", + "systemPath": "actions", + "description": "Once per long rest, this card can mimic the features of another domain card of level 8 or lower in another player’s loadout. Spend Hope equal to half the card’s level to gain access to the feature. It lasts until your next rest or they place the card in their vault.
", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": "1", + "recovery": "longRest", + "consumeOnSuccess": false + }, + "effects": [], + "target": { + "type": "any", + "amount": null + }, + "name": "Mimic", + "img": "icons/magic/perception/hand-eye-black.webp", + "range": "" + } } }, "flags": {}, @@ -26,8 +45,8 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784439, - "modifiedTime": 1754329311656, - "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + "modifiedTime": 1754499898585, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "3A7LZ1xmDEMGa165", "sort": 3400000, diff --git a/src/packs/domains/domainCard_Earthquake_C0qLOwSSvZ6PG3Ws.json b/src/packs/domains/domainCard_Earthquake_C0qLOwSSvZ6PG3Ws.json index 0b88d8ce..6b8cc8b1 100644 --- a/src/packs/domains/domainCard_Earthquake_C0qLOwSSvZ6PG3Ws.json +++ b/src/packs/domains/domainCard_Earthquake_C0qLOwSSvZ6PG3Ws.json @@ -29,9 +29,9 @@ ], "uses": { "value": null, - "max": "", - "recovery": null, - "consumeOnSuccess": false + "max": "1", + "recovery": "shortRest", + "consumeOnSuccess": true }, "damage": { "parts": [ @@ -99,13 +99,7 @@ "range": "veryFar" } }, - "resource": { - "type": "simple", - "value": 1, - "recovery": "shortRest", - "max": "1", - "icon": "" - } + "resource": null }, "flags": {}, "_stats": { @@ -116,8 +110,8 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784449, - "modifiedTime": 1754254262215, - "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + "modifiedTime": 1754501560924, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "C0qLOwSSvZ6PG3Ws", "sort": 3400000, diff --git a/src/packs/domains/domainCard_Falling_Sky_hZJp9mdkMnqKDROe.json b/src/packs/domains/domainCard_Falling_Sky_hZJp9mdkMnqKDROe.json index d047c737..fd032d37 100644 --- a/src/packs/domains/domainCard_Falling_Sky_hZJp9mdkMnqKDROe.json +++ b/src/packs/domains/domainCard_Falling_Sky_hZJp9mdkMnqKDROe.json @@ -4,7 +4,7 @@ "type": "domainCard", "folder": "7Cs44YADBTmmtCw6", "system": { - "description": "Make a Spellcast Roll against all adversaries within Far range. Mark any number of Stress to make shards of arcana rain down from above. Targets you succeed against take 1d20+2 magic damage for each Stress marked.
", + "description": "Make a Spellcast Roll against all adversaries within Far range. Mark any number of Stress to make shards of arcana rain down from above. Targets you succeed against take 1d20+2 magic damage for each Stress marked.
@Template[type:emanation|range:f]
", "domain": "arcana", "recallCost": 1, "level": 10, @@ -14,7 +14,7 @@ "type": "attack", "_id": "xJfXJDVsBayGaqkr", "systemPath": "actions", - "description": "Make a Spellcast Roll against all adversaries within Far range. Mark any number of Stress to make shards of arcana rain down from above. Targets you succeed against take 1d20+2 magic damage for each Stress marked.
", + "description": "Make a Spellcast Roll against all adversaries within Far range. Mark any number of Stress to make shards of arcana rain down from above. Targets you succeed against take 1d20+2 magic damage for each Stress marked.
@Template[type:emanation|range:f]
", "chatDisplay": true, "actionType": "action", "cost": [ @@ -103,8 +103,8 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784452, - "modifiedTime": 1754254370187, - "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + "modifiedTime": 1754501517016, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "hZJp9mdkMnqKDROe", "sort": 3400000, diff --git a/src/packs/domains/domainCard_Full_Surge_SgvjJfMyubZowPxS.json b/src/packs/domains/domainCard_Full_Surge_SgvjJfMyubZowPxS.json index b27dda2c..ca10655c 100644 --- a/src/packs/domains/domainCard_Full_Surge_SgvjJfMyubZowPxS.json +++ b/src/packs/domains/domainCard_Full_Surge_SgvjJfMyubZowPxS.json @@ -28,8 +28,8 @@ ], "uses": { "value": null, - "max": "", - "recovery": null + "max": "1", + "recovery": "longRest" }, "effects": [ { @@ -56,7 +56,7 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784460, - "modifiedTime": 1754242182536, + "modifiedTime": 1754498928489, "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "SgvjJfMyubZowPxS", diff --git a/src/packs/domains/domainCard_Healing_Field_GlRm1Dxlc0Z1b04o.json b/src/packs/domains/domainCard_Healing_Field_GlRm1Dxlc0Z1b04o.json index 6cf1c52c..a9b0561d 100644 --- a/src/packs/domains/domainCard_Healing_Field_GlRm1Dxlc0Z1b04o.json +++ b/src/packs/domains/domainCard_Healing_Field_GlRm1Dxlc0Z1b04o.json @@ -173,7 +173,8 @@ "value": 1, "recovery": "longRest", "max": "1", - "icon": "" + "icon": "", + "progression": "decreasing" } }, "flags": {}, @@ -185,8 +186,8 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784466, - "modifiedTime": 1754338717920, - "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + "modifiedTime": 1754499077474, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "GlRm1Dxlc0Z1b04o", "sort": 3400000, diff --git a/src/packs/domains/domainCard_Inspirational_Words_cWu1o82ZF7GvnbXc.json b/src/packs/domains/domainCard_Inspirational_Words_cWu1o82ZF7GvnbXc.json index eac0b208..424b08b7 100644 --- a/src/packs/domains/domainCard_Inspirational_Words_cWu1o82ZF7GvnbXc.json +++ b/src/packs/domains/domainCard_Inspirational_Words_cWu1o82ZF7GvnbXc.json @@ -14,7 +14,8 @@ "value": 0, "recovery": "longRest", "max": "@system.traits.presence.value", - "icon": "" + "icon": "", + "progression": "decreasing" }, "actions": { "5sGMd6m6Ltahit4h": { @@ -253,8 +254,8 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784473, - "modifiedTime": 1754340989544, - "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + "modifiedTime": 1754499693699, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "cWu1o82ZF7GvnbXc", "sort": 3400000, diff --git a/src/packs/domains/domainCard_Mass_Enrapture_ubpixIgZrJXKyM3b.json b/src/packs/domains/domainCard_Mass_Enrapture_ubpixIgZrJXKyM3b.json index 952e478c..2713e2c7 100644 --- a/src/packs/domains/domainCard_Mass_Enrapture_ubpixIgZrJXKyM3b.json +++ b/src/packs/domains/domainCard_Mass_Enrapture_ubpixIgZrJXKyM3b.json @@ -4,7 +4,7 @@ "type": "domainCard", "folder": "7O1tTswJMNdPgLsx", "system": { - "description": "Make a Spellcast Roll against all targets within Far range. Targets you succeed against become temporarily Enraptured. While Enraptured, a target’s attention is fixed on you, narrowing their field of view and drowning out any sound but your voice. Mark a Stress to force all Enraptured targets to mark a Stress, ending this spell.
", + "description": "Make a Spellcast Roll against all targets within Far range. Targets you succeed against become temporarily Enraptured. While Enraptured, a target’s attention is fixed on you, narrowing their field of view and drowning out any sound but your voice. Mark a Stress to force all Enraptured targets to mark a Stress, ending this spell.
@Template[type:emanation|range:f]
", "domain": "grace", "recallCost": 3, "level": 8, @@ -14,7 +14,7 @@ "type": "attack", "_id": "r5eA3tAH7EplOQCP", "systemPath": "actions", - "description": "Make a Spellcast Roll against all targets within Far range. Targets you succeed against become temporarily Enraptured. While Enraptured, a target’s attention is fixed on you, narrowing their field of view and drowning out any sound but your voice.
", + "description": "Make a Spellcast Roll against all targets within Far range. Targets you succeed against become temporarily Enraptured. While Enraptured, a target’s attention is fixed on you, narrowing their field of view and drowning out any sound but your voice. Mark a Stress to force all Enraptured targets to mark a Stress, ending this spell.
@Template[type:emanation|range:f]
", "chatDisplay": true, "actionType": "action", "cost": [], @@ -132,8 +132,8 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784481, - "modifiedTime": 1754342040215, - "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + "modifiedTime": 1754499825008, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "ubpixIgZrJXKyM3b", "sort": 3400000, diff --git a/src/packs/domains/domainCard_Mending_Touch_TGjR4vJVNbQRV8zr.json b/src/packs/domains/domainCard_Mending_Touch_TGjR4vJVNbQRV8zr.json index bbe13819..437adffc 100644 --- a/src/packs/domains/domainCard_Mending_Touch_TGjR4vJVNbQRV8zr.json +++ b/src/packs/domains/domainCard_Mending_Touch_TGjR4vJVNbQRV8zr.json @@ -338,9 +338,10 @@ "resource": { "type": "simple", "value": 1, - "recovery": "longRest", + "progression": "decreasing", "max": "1", - "icon": "" + "icon": "fa-solid fa-hands-praying", + "recovery": "longRest" } }, "flags": {}, @@ -352,8 +353,8 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784482, - "modifiedTime": 1754269394280, - "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + "modifiedTime": 1754498631054, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "TGjR4vJVNbQRV8zr", "sort": 3400000, diff --git a/src/packs/domains/domainCard_Night_Terror_zcldCuqOg3dphUVI.json b/src/packs/domains/domainCard_Night_Terror_zcldCuqOg3dphUVI.json index 89d5fe1a..cb538eb1 100644 --- a/src/packs/domains/domainCard_Night_Terror_zcldCuqOg3dphUVI.json +++ b/src/packs/domains/domainCard_Night_Terror_zcldCuqOg3dphUVI.json @@ -4,7 +4,7 @@ "type": "domainCard", "folder": "2rqOUxEglhhPKk2j", "system": { - "description": "Once per long rest, choose any targets within Very Close range to perceive you as a nightmarish horror. The targets must succeed on a Reaction Roll (16) or become temporarily Horrified. While Horrified, they’re Vulnerable. Steal a number of Fear from the GM equal to the number of targets that are Horrified (up to the number of Fear in the GM’s pool). Roll a number of d6s equal to the number of stolen Fear and deal the total damage to each Horrified target. Discard the stolen Fear.
", + "description": "Once per long rest, choose any targets within Very Close range to perceive you as a nightmarish horror. The targets must succeed on a Reaction Roll (16) or become temporarily Horrified. While Horrified, they’re Vulnerable. Steal a number of Fear from the GM equal to the number of targets that are Horrified (up to the number of Fear in the GM’s pool). Roll a number of d6s equal to the number of stolen Fear and deal the total damage to each Horrified target. Discard the stolen Fear.
@Template[type:emanation|range:vc]
", "domain": "midnight", "recallCost": 2, "level": 9, @@ -14,14 +14,14 @@ "type": "attack", "_id": "e4A6GQERsn08IBby", "systemPath": "actions", - "description": "Once per long rest, choose any targets within Very Close range to perceive you as a nightmarish horror. The targets must succeed on a Reaction Roll (16) or become temporarily Horrified. While Horrified, they’re Vulnerable. Steal a number of Fear from the GM equal to the number of targets that are Horrified (up to the number of Fear in the GM’s pool). Roll a number of d6s equal to the number of stolen Fear and deal the total damage to each Horrified target. Discard the stolen Fear.
", + "description": "Once per long rest, choose any targets within Very Close range to perceive you as a nightmarish horror. The targets must succeed on a Reaction Roll (16) or become temporarily Horrified. While Horrified, they’re Vulnerable. Steal a number of Fear from the GM equal to the number of targets that are Horrified (up to the number of Fear in the GM’s pool). Roll a number of d6s equal to the number of stolen Fear and deal the total damage to each Horrified target. Discard the stolen Fear.
@Template[type:emanation|range:vc]
", "chatDisplay": true, "actionType": "action", "cost": [], "uses": { "value": null, - "max": "", - "recovery": null + "max": "1", + "recovery": "longRest" }, "damage": { "parts": [], @@ -121,12 +121,7 @@ "range": "" } }, - "resource": { - "type": "simple", - "value": 0, - "max": "", - "icon": "" - } + "resource": null }, "flags": {}, "_stats": { @@ -137,8 +132,8 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784487, - "modifiedTime": 1754331219352, - "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + "modifiedTime": 1754499654051, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "zcldCuqOg3dphUVI", "sort": 3400000, diff --git a/src/packs/domains/domainCard_Plant_Dominion_9a6xP5pxhVvdugk9.json b/src/packs/domains/domainCard_Plant_Dominion_9a6xP5pxhVvdugk9.json index c8f3272e..8176850e 100644 --- a/src/packs/domains/domainCard_Plant_Dominion_9a6xP5pxhVvdugk9.json +++ b/src/packs/domains/domainCard_Plant_Dominion_9a6xP5pxhVvdugk9.json @@ -21,7 +21,8 @@ "uses": { "value": null, "max": "1", - "recovery": "longRest" + "recovery": "longRest", + "consumeOnSuccess": true }, "damage": { "parts": [], @@ -67,8 +68,8 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784493, - "modifiedTime": 1754340285152, - "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + "modifiedTime": 1754499238543, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "9a6xP5pxhVvdugk9", "sort": 3400000, diff --git a/src/packs/domains/domainCard_Reassurance_iYNVTB7uAD1FTCZu.json b/src/packs/domains/domainCard_Reassurance_iYNVTB7uAD1FTCZu.json index c55cd75b..43c17e96 100644 --- a/src/packs/domains/domainCard_Reassurance_iYNVTB7uAD1FTCZu.json +++ b/src/packs/domains/domainCard_Reassurance_iYNVTB7uAD1FTCZu.json @@ -19,7 +19,7 @@ "actionType": "action", "cost": [], "uses": { - "value": 1, + "value": 0, "max": "1", "recovery": "shortRest", "consumeOnSuccess": false @@ -44,8 +44,8 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784499, - "modifiedTime": 1754269219077, - "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + "modifiedTime": 1754498645559, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "iYNVTB7uAD1FTCZu", "sort": 3400000, diff --git a/src/packs/domains/domainCard_Rejuvenation_Barrier_HtWx5IIemCoorMj2.json b/src/packs/domains/domainCard_Rejuvenation_Barrier_HtWx5IIemCoorMj2.json index 2cc41796..4d910604 100644 --- a/src/packs/domains/domainCard_Rejuvenation_Barrier_HtWx5IIemCoorMj2.json +++ b/src/packs/domains/domainCard_Rejuvenation_Barrier_HtWx5IIemCoorMj2.json @@ -4,7 +4,7 @@ "type": "domainCard", "folder": "qY4Zqc1Ch6p317uK", "system": { - "description": "Make a Spellcast Roll (15). Once per rest on a success, create a temporary barrier of protective energy around you at Very Close range. You and all allies within the barrier when this spell is cast clear 1d4 Hit Points. While the barrier is up, you and all allies within have resistance to physical damage from outside the barrier.
When you move, the barrier follows you.
", + "description": "Make a Spellcast Roll (15). Once per rest on a success, create a temporary barrier of protective energy around you at Very Close range. You and all allies within the barrier when this spell is cast clear 1d4 Hit Points. While the barrier is up, you and all allies within have resistance to physical damage from outside the barrier.
When you move, the barrier follows you.
@Template[type:emanation|range:vc]
", "domain": "sage", "recallCost": 1, "level": 8, @@ -14,7 +14,7 @@ "type": "healing", "_id": "XdAwXl2uWNinInFe", "systemPath": "actions", - "description": "Make a Spellcast Roll (15). Once per rest on a success, create a temporary barrier of protective energy around you at Very Close range. You and all allies within the barrier when this spell is cast clear 1d4 Hit Points. While the barrier is up, you and all allies within have resistance to physical damage from outside the barrier.
When you move, the barrier follows you.
", + "description": "Make a Spellcast Roll (15). Once per rest on a success, create a temporary barrier of protective energy around you at Very Close range. You and all allies within the barrier when this spell is cast clear 1d4 Hit Points. While the barrier is up, you and all allies within have resistance to physical damage from outside the barrier.
When you move, the barrier follows you.
@Template[type:emanation|range:vc]
", "chatDisplay": true, "actionType": "action", "cost": [], @@ -22,7 +22,7 @@ "value": null, "max": "1", "recovery": "shortRest", - "consumeOnSuccess": false + "consumeOnSuccess": true }, "damage": { "parts": [ @@ -93,8 +93,8 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784502, - "modifiedTime": 1754339870857, - "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + "modifiedTime": 1754499308449, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "HtWx5IIemCoorMj2", "sort": 3400000, diff --git a/src/packs/domains/domainCard_Restoration_wUQFsRtww18naYaq.json b/src/packs/domains/domainCard_Restoration_wUQFsRtww18naYaq.json index e0d05dd3..c75e8ca6 100644 --- a/src/packs/domains/domainCard_Restoration_wUQFsRtww18naYaq.json +++ b/src/packs/domains/domainCard_Restoration_wUQFsRtww18naYaq.json @@ -14,7 +14,8 @@ "value": 0, "recovery": "longRest", "max": "@cast", - "icon": "" + "icon": "", + "progression": "decreasing" }, "actions": { "udmHKUtCDClxeB4h": { @@ -214,8 +215,8 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784502, - "modifiedTime": 1754269768509, - "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + "modifiedTime": 1754498742091, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "wUQFsRtww18naYaq", "sort": 3400000, diff --git a/src/packs/domains/domainCard_Shadowbind_kguhWlidhxe2GbT0.json b/src/packs/domains/domainCard_Shadowbind_kguhWlidhxe2GbT0.json index 73608be0..000a1b1f 100644 --- a/src/packs/domains/domainCard_Shadowbind_kguhWlidhxe2GbT0.json +++ b/src/packs/domains/domainCard_Shadowbind_kguhWlidhxe2GbT0.json @@ -4,7 +4,7 @@ "type": "domainCard", "folder": "Abn46nCQst6kpGeA", "system": { - "description": "Make a Spellcast Roll against all adversaries within Very Close range. Targets you succeed against are temporarily Restrained as their shadow binds them in place.
", + "description": "Make a Spellcast Roll against all adversaries within Very Close range. Targets you succeed against are temporarily Restrained as their shadow binds them in place.
@Template[type:emanation|range:vc]
", "domain": "midnight", "recallCost": 0, "level": 2, @@ -14,7 +14,7 @@ "type": "attack", "_id": "Llr9uIDUCrfsiZNn", "systemPath": "actions", - "description": "Make a Spellcast Roll against all adversaries within Very Close range. Targets you succeed against are temporarily Restrained as their shadow binds them in place.
", + "description": "Make a Spellcast Roll against all adversaries within Very Close range. Targets you succeed against are temporarily Restrained as their shadow binds them in place.
@Template[type:emanation|range:vc]
", "chatDisplay": true, "actionType": "action", "cost": [], @@ -72,8 +72,8 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784512, - "modifiedTime": 1754330643864, - "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + "modifiedTime": 1754499502570, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "kguhWlidhxe2GbT0", "sort": 3400000, diff --git a/src/packs/domains/domainCard_Share_the_Burden_8nRle10pw1HO8QVu.json b/src/packs/domains/domainCard_Share_the_Burden_8nRle10pw1HO8QVu.json index ec17d233..62c4de86 100644 --- a/src/packs/domains/domainCard_Share_the_Burden_8nRle10pw1HO8QVu.json +++ b/src/packs/domains/domainCard_Share_the_Burden_8nRle10pw1HO8QVu.json @@ -9,7 +9,31 @@ "recallCost": 0, "level": 6, "type": "spell", - "actions": {} + "actions": { + "MjSx44ovuKBGVKGs": { + "type": "effect", + "_id": "MjSx44ovuKBGVKGs", + "systemPath": "actions", + "description": "Once per rest, take on the Stress from a willing creature within Melee range. The target describes what intimate knowledge or emotions telepathically leak from their mind in this moment between you. Transfer any number of their marked Stress to you, then gain a Hope for each Stress transferred.
", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": "1", + "recovery": "shortRest", + "consumeOnSuccess": false + }, + "effects": [], + "target": { + "type": "any", + "amount": null + }, + "name": "Take Stress", + "img": "systems/daggerheart/assets/icons/domains/domain-card/grace.png", + "range": "" + } + } }, "flags": {}, "_stats": { @@ -20,8 +44,8 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784515, - "modifiedTime": 1754327488946, - "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + "modifiedTime": 1754499760780, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "8nRle10pw1HO8QVu", "sort": 3400000, diff --git a/src/packs/domains/domainCard_Smite_U1uWJE94HZVudujz.json b/src/packs/domains/domainCard_Smite_U1uWJE94HZVudujz.json index 8a67261a..939fff19 100644 --- a/src/packs/domains/domainCard_Smite_U1uWJE94HZVudujz.json +++ b/src/packs/domains/domainCard_Smite_U1uWJE94HZVudujz.json @@ -29,8 +29,8 @@ ], "uses": { "value": null, - "max": "", - "recovery": null, + "max": "1", + "recovery": "shortRest", "consumeOnSuccess": false }, "effects": [ @@ -58,8 +58,8 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784519, - "modifiedTime": 1754269704377, - "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + "modifiedTime": 1754498725946, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "U1uWJE94HZVudujz", "sort": 3400000, diff --git a/src/packs/domains/domainCard_Splintering_Strike_TYKfM3H9vBXyWiH4.json b/src/packs/domains/domainCard_Splintering_Strike_TYKfM3H9vBXyWiH4.json index e5354c04..ed3d5f4c 100644 --- a/src/packs/domains/domainCard_Splintering_Strike_TYKfM3H9vBXyWiH4.json +++ b/src/packs/domains/domainCard_Splintering_Strike_TYKfM3H9vBXyWiH4.json @@ -10,9 +10,9 @@ "level": 9, "type": "ability", "actions": { - "B4vyaTibK0GiRBCW": { - "type": "effect", - "_id": "B4vyaTibK0GiRBCW", + "yjEcSlzsWGX79gpB": { + "type": "attack", + "_id": "yjEcSlzsWGX79gpB", "systemPath": "actions", "description": "Spend a Hope and make an attack against all adversaries within your weapon’s range. Once per long rest, on a success against any targets, add up the damage dealt, then redistribute that damage however you wish between the targets you succeeded against. When you deal damage to a target, roll an additional damage die and add its result to the damage you deal to that target.
", "chatDisplay": true, @@ -29,15 +29,39 @@ ], "uses": { "value": null, - "max": "", - "recovery": null, - "consumeOnSuccess": false + "max": "1", + "recovery": "longRest", + "consumeOnSuccess": true + }, + "damage": { + "parts": [], + "includeBase": false }, - "effects": [], "target": { "type": "any", "amount": null }, + "effects": [], + "roll": { + "type": "attack", + "trait": null, + "difficulty": null, + "bonus": null, + "advState": "neutral", + "diceRolling": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "compare": null, + "treshold": null + }, + "useDefault": false + }, + "save": { + "trait": null, + "difficulty": null, + "damageMod": "none" + }, "name": "Spend Hope", "img": "icons/skills/melee/strike-sword-steel-yellow.webp", "range": "" @@ -53,7 +77,7 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784522, - "modifiedTime": 1754252510860, + "modifiedTime": 1754501075258, "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "TYKfM3H9vBXyWiH4", diff --git a/src/packs/domains/domainCard_Strategic_Approach_5b1awkgTmMp3FVrm.json b/src/packs/domains/domainCard_Strategic_Approach_5b1awkgTmMp3FVrm.json index 19f05212..ae4ab09d 100644 --- a/src/packs/domains/domainCard_Strategic_Approach_5b1awkgTmMp3FVrm.json +++ b/src/packs/domains/domainCard_Strategic_Approach_5b1awkgTmMp3FVrm.json @@ -11,10 +11,11 @@ "type": "ability", "resource": { "type": "simple", - "value": 1, - "max": "", + "value": 0, + "max": "max(@system.traits.knowledge.value, 1)", "icon": "fa-solid fa-bullseye", - "recovery": "longRest" + "recovery": "longRest", + "progression": "decreasing" }, "actions": { "jTC0GbsBpGmaQLi7": { @@ -60,7 +61,7 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784523, - "modifiedTime": 1754249661976, + "modifiedTime": 1754501630846, "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "5b1awkgTmMp3FVrm", diff --git a/src/packs/domains/domainCard_Towering_Stalk_n0P3VS1WfxvmXbB6.json b/src/packs/domains/domainCard_Towering_Stalk_n0P3VS1WfxvmXbB6.json index d632315f..124144a8 100644 --- a/src/packs/domains/domainCard_Towering_Stalk_n0P3VS1WfxvmXbB6.json +++ b/src/packs/domains/domainCard_Towering_Stalk_n0P3VS1WfxvmXbB6.json @@ -108,16 +108,17 @@ "cost": [ { "scalable": false, - "key": "n0P3VS1WfxvmXbB6", + "key": "hitPoints", "value": 1, - "keyIsID": true, - "step": null + "keyIsID": false, + "step": null, + "consumeOnSuccess": false } ], "uses": { "value": null, - "max": "", - "recovery": null + "max": "1", + "recovery": "shortRest" }, "effects": [], "target": { @@ -129,13 +130,7 @@ "range": "" } }, - "resource": { - "type": "simple", - "value": 1, - "recovery": "shortRest", - "max": "1", - "icon": "" - } + "resource": null }, "flags": {}, "_stats": { @@ -146,8 +141,8 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784534, - "modifiedTime": 1754338673637, - "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + "modifiedTime": 1754499113867, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "n0P3VS1WfxvmXbB6", "sort": 3400000, diff --git a/src/packs/domains/domainCard_Unleash_Chaos_o62i0QdbUDIiAhSq.json b/src/packs/domains/domainCard_Unleash_Chaos_o62i0QdbUDIiAhSq.json index cca1f984..17f934d6 100644 --- a/src/packs/domains/domainCard_Unleash_Chaos_o62i0QdbUDIiAhSq.json +++ b/src/packs/domains/domainCard_Unleash_Chaos_o62i0QdbUDIiAhSq.json @@ -14,7 +14,8 @@ "value": 0, "max": "@cast", "icon": "", - "recovery": "session" + "recovery": "session", + "progression": "decreasing" }, "actions": { "MWvrKuwejWcQm7N1": { @@ -143,8 +144,8 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784537, - "modifiedTime": 1754253370819, - "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + "modifiedTime": 1754501257508, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "o62i0QdbUDIiAhSq", "sort": 3400000, diff --git a/src/packs/domains/domainCard_Wild_Surge_DjnKlZQYaWdQGKcK.json b/src/packs/domains/domainCard_Wild_Surge_DjnKlZQYaWdQGKcK.json index 10062194..269139cf 100644 --- a/src/packs/domains/domainCard_Wild_Surge_DjnKlZQYaWdQGKcK.json +++ b/src/packs/domains/domainCard_Wild_Surge_DjnKlZQYaWdQGKcK.json @@ -20,7 +20,7 @@ "type": "effect", "_id": "nYu6LRNVDKfWUJhx", "systemPath": "actions", - "description": "", + "description": "Once per long rest, mark a Stress to channel the natural world around you and enhance yourself. Describe how your appearance changes, then place a d6 on this card with the 1 value facing up.
While the Wild Surge Die is active, you add its value to every action roll you make. After you add its value to a roll, increase the Wild Surge Die’s value by one. When the die’s value would exceed 6 or you take a rest, this form drops and you must mark an additional Stress.
", "chatDisplay": true, "actionType": "action", "cost": [ @@ -34,8 +34,8 @@ ], "uses": { "value": null, - "max": "", - "recovery": null + "max": "1", + "recovery": "longRest" }, "effects": [], "target": { @@ -57,8 +57,8 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784547, - "modifiedTime": 1754340095871, - "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + "modifiedTime": 1754499199811, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "DjnKlZQYaWdQGKcK", "sort": 3400000, diff --git a/src/packs/domains/domainCard_Zone_of_Protection_lOZaRb4fCVgQsWB5.json b/src/packs/domains/domainCard_Zone_of_Protection_lOZaRb4fCVgQsWB5.json index f94f270c..c712284d 100644 --- a/src/packs/domains/domainCard_Zone_of_Protection_lOZaRb4fCVgQsWB5.json +++ b/src/packs/domains/domainCard_Zone_of_Protection_lOZaRb4fCVgQsWB5.json @@ -4,7 +4,7 @@ "type": "domainCard", "folder": "OwsbTSWzKq2WJmQN", "system": { - "description": "Make a Spellcast Roll (16). Once per long rest on a success, choose a point within Far range and create a visible zone of protection there for all allies within Very Close range of that point. When you do, place a d6 on this card with the 1 value facing up. When an ally in this zone takes damage, they reduce it by the die’s value. You then increase the die’s value by one. When the die’s value would exceed 6, this effect ends.
@Template[type:emanation|range:vc]
", + "description": "Make a Spellcast Roll (16). Once per long rest on a success, choose a point within Far range and create a visible zone of protection there for all allies within Very Close range of that point. When you do, place a d6 on this card with the 1 value facing up. When an ally in this zone takes damage, they reduce it by the die’s value. You then increase the die’s value by one. When the die’s value would exceed 6, this effect ends.
@Template[type:emanation|range:vc]
", "domain": "splendor", "recallCost": 2, "level": 6, @@ -58,13 +58,7 @@ "range": "far" } }, - "resource": { - "type": "simple", - "value": 0, - "max": "6", - "icon": "", - "recovery": "longRest" - } + "resource": null }, "flags": {}, "_stats": { @@ -75,8 +69,8 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784549, - "modifiedTime": 1754269795161, - "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + "modifiedTime": 1754498786877, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "lOZaRb4fCVgQsWB5", "sort": 3400000, diff --git a/src/packs/domains/folders_Level_10_pPzU9WOQNv3ckO1w.json b/src/packs/domains/folders_Level_10_pPzU9WOQNv3ckO1w.json index 3862d063..1f1931b2 100644 --- a/src/packs/domains/folders_Level_10_pPzU9WOQNv3ckO1w.json +++ b/src/packs/domains/folders_Level_10_pPzU9WOQNv3ckO1w.json @@ -6,7 +6,7 @@ "sorting": "a", "_id": "pPzU9WOQNv3ckO1w", "description": "", - "sort": 1000000, + "sort": 2000000, "flags": {}, "_stats": { "compendiumSource": null, @@ -15,8 +15,8 @@ "coreVersion": "13.346", "systemId": "daggerheart", "systemVersion": "0.0.1", - "lastModifiedBy": "YNJ4HgHtFrTI89mx", - "modifiedTime": 1752681545540 + "lastModifiedBy": "MQSznptE5yLT7kj8", + "modifiedTime": 1754499337594 }, "_key": "!folders!pPzU9WOQNv3ckO1w" } diff --git a/src/packs/domains/folders_Level_1_EJoXzO85rG5EiZsh.json b/src/packs/domains/folders_Level_1_EJoXzO85rG5EiZsh.json index 9217a20b..9423f226 100644 --- a/src/packs/domains/folders_Level_1_EJoXzO85rG5EiZsh.json +++ b/src/packs/domains/folders_Level_1_EJoXzO85rG5EiZsh.json @@ -6,7 +6,7 @@ "sorting": "a", "_id": "EJoXzO85rG5EiZsh", "description": "", - "sort": 100000, + "sort": 1100000, "flags": {}, "_stats": { "compendiumSource": null, @@ -15,8 +15,8 @@ "coreVersion": "13.346", "systemId": "daggerheart", "systemVersion": "0.0.1", - "lastModifiedBy": "YNJ4HgHtFrTI89mx", - "modifiedTime": 1752681545540 + "lastModifiedBy": "MQSznptE5yLT7kj8", + "modifiedTime": 1754499330683 }, "_key": "!folders!EJoXzO85rG5EiZsh" } diff --git a/src/packs/domains/folders_Level_2_xZrCYAd05ayNu1yW.json b/src/packs/domains/folders_Level_2_xZrCYAd05ayNu1yW.json index e9a40501..7a56682e 100644 --- a/src/packs/domains/folders_Level_2_xZrCYAd05ayNu1yW.json +++ b/src/packs/domains/folders_Level_2_xZrCYAd05ayNu1yW.json @@ -6,7 +6,7 @@ "sorting": "a", "_id": "xZrCYAd05ayNu1yW", "description": "", - "sort": 200000, + "sort": 1200000, "flags": {}, "_stats": { "compendiumSource": null, @@ -15,8 +15,8 @@ "coreVersion": "13.346", "systemId": "daggerheart", "systemVersion": "0.0.1", - "lastModifiedBy": "YNJ4HgHtFrTI89mx", - "modifiedTime": 1752681545540 + "lastModifiedBy": "MQSznptE5yLT7kj8", + "modifiedTime": 1754499331503 }, "_key": "!folders!xZrCYAd05ayNu1yW" } diff --git a/src/packs/domains/folders_Level_3_uXGugK72AffddFdH.json b/src/packs/domains/folders_Level_3_uXGugK72AffddFdH.json index c57e63f7..63c28dc7 100644 --- a/src/packs/domains/folders_Level_3_uXGugK72AffddFdH.json +++ b/src/packs/domains/folders_Level_3_uXGugK72AffddFdH.json @@ -6,7 +6,7 @@ "sorting": "a", "_id": "uXGugK72AffddFdH", "description": "", - "sort": 300000, + "sort": 1300000, "flags": {}, "_stats": { "compendiumSource": null, @@ -15,8 +15,8 @@ "coreVersion": "13.346", "systemId": "daggerheart", "systemVersion": "0.0.1", - "lastModifiedBy": "YNJ4HgHtFrTI89mx", - "modifiedTime": 1752681545540 + "lastModifiedBy": "MQSznptE5yLT7kj8", + "modifiedTime": 1754499332151 }, "_key": "!folders!uXGugK72AffddFdH" } diff --git a/src/packs/domains/folders_Level_4_BJIiOIWAQUz5zuqo.json b/src/packs/domains/folders_Level_4_BJIiOIWAQUz5zuqo.json index 51cc633d..7a709b1b 100644 --- a/src/packs/domains/folders_Level_4_BJIiOIWAQUz5zuqo.json +++ b/src/packs/domains/folders_Level_4_BJIiOIWAQUz5zuqo.json @@ -6,7 +6,7 @@ "sorting": "a", "_id": "BJIiOIWAQUz5zuqo", "description": "", - "sort": 400000, + "sort": 1400000, "flags": {}, "_stats": { "compendiumSource": null, @@ -15,8 +15,8 @@ "coreVersion": "13.346", "systemId": "daggerheart", "systemVersion": "0.0.1", - "lastModifiedBy": "YNJ4HgHtFrTI89mx", - "modifiedTime": 1752681545540 + "lastModifiedBy": "MQSznptE5yLT7kj8", + "modifiedTime": 1754499332813 }, "_key": "!folders!BJIiOIWAQUz5zuqo" } diff --git a/src/packs/domains/folders_Level_5_ZZHIbaynhzVArA1p.json b/src/packs/domains/folders_Level_5_ZZHIbaynhzVArA1p.json index 979c57cb..ae30d6cf 100644 --- a/src/packs/domains/folders_Level_5_ZZHIbaynhzVArA1p.json +++ b/src/packs/domains/folders_Level_5_ZZHIbaynhzVArA1p.json @@ -6,7 +6,7 @@ "sorting": "a", "_id": "ZZHIbaynhzVArA1p", "description": "", - "sort": 500000, + "sort": 1500000, "flags": {}, "_stats": { "compendiumSource": null, @@ -15,8 +15,8 @@ "coreVersion": "13.346", "systemId": "daggerheart", "systemVersion": "0.0.1", - "lastModifiedBy": "YNJ4HgHtFrTI89mx", - "modifiedTime": 1752681545540 + "lastModifiedBy": "MQSznptE5yLT7kj8", + "modifiedTime": 1754499333460 }, "_key": "!folders!ZZHIbaynhzVArA1p" } diff --git a/src/packs/domains/folders_Level_6_u5Lq2kfC8LlDAGDC.json b/src/packs/domains/folders_Level_6_u5Lq2kfC8LlDAGDC.json index 8227afb8..cf8ffd59 100644 --- a/src/packs/domains/folders_Level_6_u5Lq2kfC8LlDAGDC.json +++ b/src/packs/domains/folders_Level_6_u5Lq2kfC8LlDAGDC.json @@ -6,7 +6,7 @@ "sorting": "a", "_id": "u5Lq2kfC8LlDAGDC", "description": "", - "sort": 550000, + "sort": 1600000, "flags": {}, "_stats": { "compendiumSource": null, @@ -15,8 +15,8 @@ "coreVersion": "13.346", "systemId": "daggerheart", "systemVersion": "0.0.1", - "lastModifiedBy": "YNJ4HgHtFrTI89mx", - "modifiedTime": 1752681547474 + "lastModifiedBy": "MQSznptE5yLT7kj8", + "modifiedTime": 1754499335115 }, "_key": "!folders!u5Lq2kfC8LlDAGDC" } diff --git a/src/packs/domains/folders_Level_7_gEVGjjPrjqxxZkb5.json b/src/packs/domains/folders_Level_7_gEVGjjPrjqxxZkb5.json index 7cc2eb64..1b10b32e 100644 --- a/src/packs/domains/folders_Level_7_gEVGjjPrjqxxZkb5.json +++ b/src/packs/domains/folders_Level_7_gEVGjjPrjqxxZkb5.json @@ -6,7 +6,7 @@ "sorting": "a", "_id": "gEVGjjPrjqxxZkb5", "description": "", - "sort": 575000, + "sort": 1700000, "flags": {}, "_stats": { "compendiumSource": null, @@ -15,8 +15,8 @@ "coreVersion": "13.346", "systemId": "daggerheart", "systemVersion": "0.0.1", - "lastModifiedBy": "YNJ4HgHtFrTI89mx", - "modifiedTime": 1752681548701 + "lastModifiedBy": "MQSznptE5yLT7kj8", + "modifiedTime": 1754499335821 }, "_key": "!folders!gEVGjjPrjqxxZkb5" } diff --git a/src/packs/domains/folders_Level_8_qY4Zqc1Ch6p317uK.json b/src/packs/domains/folders_Level_8_qY4Zqc1Ch6p317uK.json index f33373f3..6b91dfe3 100644 --- a/src/packs/domains/folders_Level_8_qY4Zqc1Ch6p317uK.json +++ b/src/packs/domains/folders_Level_8_qY4Zqc1Ch6p317uK.json @@ -6,7 +6,7 @@ "sorting": "a", "_id": "qY4Zqc1Ch6p317uK", "description": "", - "sort": 587500, + "sort": 1800000, "flags": {}, "_stats": { "compendiumSource": null, @@ -15,8 +15,8 @@ "coreVersion": "13.346", "systemId": "daggerheart", "systemVersion": "0.0.1", - "lastModifiedBy": "YNJ4HgHtFrTI89mx", - "modifiedTime": 1752681549490 + "lastModifiedBy": "MQSznptE5yLT7kj8", + "modifiedTime": 1754499336356 }, "_key": "!folders!qY4Zqc1Ch6p317uK" } diff --git a/src/packs/domains/folders_Level_9_R5afi5bhq9ccnYY2.json b/src/packs/domains/folders_Level_9_R5afi5bhq9ccnYY2.json index cbf3f378..6e3657b4 100644 --- a/src/packs/domains/folders_Level_9_R5afi5bhq9ccnYY2.json +++ b/src/packs/domains/folders_Level_9_R5afi5bhq9ccnYY2.json @@ -6,7 +6,7 @@ "sorting": "a", "_id": "R5afi5bhq9ccnYY2", "description": "", - "sort": 600000, + "sort": 1900000, "flags": {}, "_stats": { "compendiumSource": null, @@ -15,8 +15,8 @@ "coreVersion": "13.346", "systemId": "daggerheart", "systemVersion": "0.0.1", - "lastModifiedBy": "YNJ4HgHtFrTI89mx", - "modifiedTime": 1752681545540 + "lastModifiedBy": "MQSznptE5yLT7kj8", + "modifiedTime": 1754499336949 }, "_key": "!folders!R5afi5bhq9ccnYY2" } diff --git a/src/packs/subclasses/feature_Clarity_of_Nature_etaQ01yGJhBLDUqZ.json b/src/packs/subclasses/feature_Clarity_of_Nature_etaQ01yGJhBLDUqZ.json index 7906daf6..752fee05 100644 --- a/src/packs/subclasses/feature_Clarity_of_Nature_etaQ01yGJhBLDUqZ.json +++ b/src/packs/subclasses/feature_Clarity_of_Nature_etaQ01yGJhBLDUqZ.json @@ -6,13 +6,7 @@ "img": "icons/magic/nature/tree-twisted-glow-yellow.webp", "system": { "description": "Once per long rest, you can create a space of natural serenity within Close range. When you spend a few minutes resting within the space, clear Stress equal to your Instinct, distributed as you choose between you and your allies.
", - "resource": { - "type": "simple", - "value": 1, - "recovery": "longRest", - "max": "1", - "icon": "" - }, + "resource": null, "actions": { "az7YUpxy1ysn12tO": { "type": "healing", @@ -108,7 +102,7 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1754179740310, - "modifiedTime": 1754353339637, + "modifiedTime": 1754496518048, "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items!etaQ01yGJhBLDUqZ" diff --git a/src/packs/subclasses/feature_Contacts_Everywhere_cXbRm744mW6UXGam.json b/src/packs/subclasses/feature_Contacts_Everywhere_cXbRm744mW6UXGam.json index 84425f80..3c8fa5b5 100644 --- a/src/packs/subclasses/feature_Contacts_Everywhere_cXbRm744mW6UXGam.json +++ b/src/packs/subclasses/feature_Contacts_Everywhere_cXbRm744mW6UXGam.json @@ -6,13 +6,7 @@ "img": "icons/skills/social/theft-pickpocket-bribery-brown.webp", "system": { "description": "Once per session, you can briefly call on a shady contact. Choose one of the following benefits and describe what brought them here to help you in this moment:
They provide 1 handful of gold, a unique tool, or a mundane object that the situation requires.
On your next action roll, their help provides a +3 bonus to the result of your Hope or Fear Die.
The next time you deal damage, they snipe from the shadows, adding 2d8 to your damage roll.
Your moving words boost morale. Once per session, when you encourage an ally, you can do one of the following:
Allow them to find a mundane object or tool they need.
Help an Ally without spending Hope.
Give them an additional downtime move during their next rest.
Once per long rest, when the damage from an attack would mark your companion’s last Stress or your last Hit Point and you’re within Close range of each other, you or your companion can rush to the other’s side and take that damage instead.
", "resource": null, - "actions": {}, + "actions": { + "Z82YQzYWo4eektMa": { + "type": "effect", + "_id": "Z82YQzYWo4eektMa", + "systemPath": "actions", + "description": "Once per long rest, when the damage from an attack would mark your companion’s last Stress or your last Hit Point and you’re within Close range of each other, you or your companion can rush to the other’s side and take that damage instead.
", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": "1", + "recovery": "longRest", + "consumeOnSuccess": false + }, + "effects": [], + "target": { + "type": "any", + "amount": null + }, + "name": "Rush", + "img": "icons/creatures/mammals/humanoid-wolf-dog-blue.webp", + "range": "close" + } + }, "originItemType": null, "originId": null }, @@ -26,8 +50,8 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1754267956703, - "modifiedTime": 1754267994139, - "lastModifiedBy": "LgnbNMLaxandgMQq" + "modifiedTime": 1754496703770, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items!xjZHD5Yo3Tu26rLm" } diff --git a/src/packs/subclasses/feature_Rousing_Speech_PCmYTX02JLzBpgml.json b/src/packs/subclasses/feature_Rousing_Speech_PCmYTX02JLzBpgml.json index b9f7dab7..312e055b 100644 --- a/src/packs/subclasses/feature_Rousing_Speech_PCmYTX02JLzBpgml.json +++ b/src/packs/subclasses/feature_Rousing_Speech_PCmYTX02JLzBpgml.json @@ -5,15 +5,7 @@ "img": "icons/tools/instruments/megaphone.webp", "system": { "description": "Once per long rest, you can give a heartfelt, inspiring speech. All allies within Far range clear 2 Stress.
", - "resource": { - "type": "simple", - "value": 1, - "max": "1", - "icon": "", - "recovery": "longRest", - "diceStates": {}, - "dieFaces": "d4" - }, + "resource": null, "actions": { "WNtHiko4DRGbxKnm": { "type": "healing", @@ -25,15 +17,16 @@ "cost": [ { "scalable": false, - "key": "iLytX899psvrPRnG", + "key": "hitPoints", "value": 1, - "keyIsID": true, - "step": null + "keyIsID": false, + "step": null, + "consumeOnSuccess": false } ], "uses": { "value": null, - "max": "", + "max": "1", "recovery": "longRest" }, "damage": { @@ -104,8 +97,8 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1754174646194, - "modifiedTime": 1754236406644, - "lastModifiedBy": "LgnbNMLaxandgMQq" + "modifiedTime": 1754494763682, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "ownership": { "default": 0, diff --git a/src/packs/subclasses/feature_Sparing_Touch_GfOSgVJW8bS1OjNq.json b/src/packs/subclasses/feature_Sparing_Touch_GfOSgVJW8bS1OjNq.json index 70d9b630..cf0a8f93 100644 --- a/src/packs/subclasses/feature_Sparing_Touch_GfOSgVJW8bS1OjNq.json +++ b/src/packs/subclasses/feature_Sparing_Touch_GfOSgVJW8bS1OjNq.json @@ -9,8 +9,9 @@ "resource": { "type": "simple", "value": 1, + "progression": "decreasing", "max": "1", - "icon": "", + "icon": "fa-solid fa-hands-praying", "recovery": "longRest" }, "actions": { @@ -69,7 +70,7 @@ }, "target": { "type": "any", - "amount": null + "amount": 1 }, "effects": [], "roll": { @@ -98,7 +99,16 @@ "description": "Once per long rest, touch a creature and clear 2 Hit Points or 2 Stress from them.
", "chatDisplay": true, "actionType": "action", - "cost": [], + "cost": [ + { + "scalable": false, + "key": "GfOSgVJW8bS1OjNq", + "value": 1, + "keyIsID": true, + "step": null, + "consumeOnSuccess": false + } + ], "uses": { "value": null, "max": "", @@ -137,7 +147,7 @@ }, "target": { "type": "any", - "amount": null + "amount": 1 }, "effects": [], "roll": { diff --git a/src/packs/subclasses/feature_Transcendence_th6HZwEFnVBjUtqm.json b/src/packs/subclasses/feature_Transcendence_th6HZwEFnVBjUtqm.json index cffaba38..cf2c658d 100644 --- a/src/packs/subclasses/feature_Transcendence_th6HZwEFnVBjUtqm.json +++ b/src/packs/subclasses/feature_Transcendence_th6HZwEFnVBjUtqm.json @@ -6,15 +6,7 @@ "img": "icons/magic/fire/elemental-fire-flying.webp", "system": { "description": "Once per long rest, you can transform into a physical manifestation of your element. When you do, describe your transformation and choose two of the following benefits to gain until your next rest:
+4 bonus to your Severe threshold
+1 bonus to a character trait of your choice
+1 bonus to your Proficiency
+2 bonus to your Evasion
Once per long rest, spend 2 Hope to clear 2 Hit Points on 1d4 allies within Close range.
", - "resource": { - "type": "simple", - "value": 1, - "max": "1", - "icon": "", - "recovery": "longRest" - }, + "resource": null, "actions": { "ozYzhQfRt5sp19di": { "type": "healing", @@ -23,7 +17,7 @@ "actionType": "action", "cost": [], "uses": { - "value": null, + "value": 0, "max": "1", "recovery": "longRest", "consumeOnSuccess": false @@ -101,7 +95,7 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1754183079986, - "modifiedTime": 1754353582707, + "modifiedTime": 1754496541966, "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items!2F1bUFY80oce97C9" diff --git a/src/packs/subclasses/folders_Bard_0DMzpFZB8A6vwpRX.json b/src/packs/subclasses/folders_Bard_0DMzpFZB8A6vwpRX.json index 1c1e3286..f325dd28 100644 --- a/src/packs/subclasses/folders_Bard_0DMzpFZB8A6vwpRX.json +++ b/src/packs/subclasses/folders_Bard_0DMzpFZB8A6vwpRX.json @@ -6,7 +6,7 @@ "sorting": "m", "_id": "0DMzpFZB8A6vwpRX", "description": "", - "sort": 200000, + "sort": 1000000, "flags": {}, "_stats": { "compendiumSource": null, @@ -16,8 +16,8 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1754236641265, - "modifiedTime": 1754268224220, - "lastModifiedBy": "LgnbNMLaxandgMQq" + "modifiedTime": 1754501841544, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!folders!0DMzpFZB8A6vwpRX" } diff --git a/src/packs/subclasses/folders_Druid_AZWrSJzGXltzQhAJ.json b/src/packs/subclasses/folders_Druid_AZWrSJzGXltzQhAJ.json index 6be0ee6d..325060e7 100644 --- a/src/packs/subclasses/folders_Druid_AZWrSJzGXltzQhAJ.json +++ b/src/packs/subclasses/folders_Druid_AZWrSJzGXltzQhAJ.json @@ -6,7 +6,7 @@ "sorting": "m", "_id": "AZWrSJzGXltzQhAJ", "description": "", - "sort": 300000, + "sort": 1100000, "flags": {}, "_stats": { "compendiumSource": null, @@ -16,8 +16,8 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1754236669632, - "modifiedTime": 1754268224220, - "lastModifiedBy": "LgnbNMLaxandgMQq" + "modifiedTime": 1754501843662, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!folders!AZWrSJzGXltzQhAJ" } diff --git a/src/packs/subclasses/folders_Guardian_WMlU3baiUdMgfuak.json b/src/packs/subclasses/folders_Guardian_WMlU3baiUdMgfuak.json index 21134aa6..daf366db 100644 --- a/src/packs/subclasses/folders_Guardian_WMlU3baiUdMgfuak.json +++ b/src/packs/subclasses/folders_Guardian_WMlU3baiUdMgfuak.json @@ -6,7 +6,7 @@ "sorting": "m", "_id": "WMlU3baiUdMgfuak", "description": "", - "sort": 400000, + "sort": 1200000, "flags": {}, "_stats": { "compendiumSource": null, @@ -16,8 +16,8 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1754245852289, - "modifiedTime": 1754268224220, - "lastModifiedBy": "LgnbNMLaxandgMQq" + "modifiedTime": 1754501845702, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!folders!WMlU3baiUdMgfuak" } diff --git a/src/packs/subclasses/folders_Ranger_ArVAtkgkm5bYpKHL.json b/src/packs/subclasses/folders_Ranger_ArVAtkgkm5bYpKHL.json index 2c8fd45e..658ddf81 100644 --- a/src/packs/subclasses/folders_Ranger_ArVAtkgkm5bYpKHL.json +++ b/src/packs/subclasses/folders_Ranger_ArVAtkgkm5bYpKHL.json @@ -6,7 +6,7 @@ "sorting": "m", "_id": "ArVAtkgkm5bYpKHL", "description": "", - "sort": 500000, + "sort": 1300000, "flags": {}, "_stats": { "compendiumSource": null, @@ -16,8 +16,8 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1754268221221, - "modifiedTime": 1754268224220, - "lastModifiedBy": "LgnbNMLaxandgMQq" + "modifiedTime": 1754501849009, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!folders!ArVAtkgkm5bYpKHL" } diff --git a/src/packs/subclasses/folders_Rogue_36dtJE1CPjPt76pP.json b/src/packs/subclasses/folders_Rogue_36dtJE1CPjPt76pP.json index 9209901b..6593650d 100644 --- a/src/packs/subclasses/folders_Rogue_36dtJE1CPjPt76pP.json +++ b/src/packs/subclasses/folders_Rogue_36dtJE1CPjPt76pP.json @@ -6,7 +6,7 @@ "sorting": "m", "_id": "36dtJE1CPjPt76pP", "description": "", - "sort": 550000, + "sort": 1400000, "flags": {}, "_stats": { "compendiumSource": null, @@ -16,8 +16,8 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1754322803534, - "modifiedTime": 1754322806911, - "lastModifiedBy": "LgnbNMLaxandgMQq" + "modifiedTime": 1754501852870, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!folders!36dtJE1CPjPt76pP" } diff --git a/src/packs/subclasses/folders_Seraph_RZOEu0ZYQNPs6O2c.json b/src/packs/subclasses/folders_Seraph_RZOEu0ZYQNPs6O2c.json index 8fac588e..3854caa2 100644 --- a/src/packs/subclasses/folders_Seraph_RZOEu0ZYQNPs6O2c.json +++ b/src/packs/subclasses/folders_Seraph_RZOEu0ZYQNPs6O2c.json @@ -6,7 +6,7 @@ "sorting": "a", "_id": "RZOEu0ZYQNPs6O2c", "description": "", - "sort": 0, + "sort": 1500000, "flags": {}, "_stats": { "compendiumSource": null, @@ -16,8 +16,8 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1754352793139, - "modifiedTime": 1754352793139, - "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + "modifiedTime": 1754501855742, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!folders!RZOEu0ZYQNPs6O2c" } diff --git a/src/packs/subclasses/folders_Sorcerer_F0mW5ofdyyfE2hHo.json b/src/packs/subclasses/folders_Sorcerer_F0mW5ofdyyfE2hHo.json index 8358cbaf..5aaa1502 100644 --- a/src/packs/subclasses/folders_Sorcerer_F0mW5ofdyyfE2hHo.json +++ b/src/packs/subclasses/folders_Sorcerer_F0mW5ofdyyfE2hHo.json @@ -6,7 +6,7 @@ "sorting": "a", "_id": "F0mW5ofdyyfE2hHo", "description": "", - "sort": 800000, + "sort": 1600000, "flags": {}, "_stats": { "compendiumSource": null, @@ -16,8 +16,8 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1754349604935, - "modifiedTime": 1754349604956, - "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + "modifiedTime": 1754501856827, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!folders!F0mW5ofdyyfE2hHo" } diff --git a/src/packs/subclasses/folders_Subclass_Features_Sfpr4iK1cGrmncok.json b/src/packs/subclasses/folders_Subclass_Features_Sfpr4iK1cGrmncok.json index a4f97fbe..dbbb6ee9 100644 --- a/src/packs/subclasses/folders_Subclass_Features_Sfpr4iK1cGrmncok.json +++ b/src/packs/subclasses/folders_Subclass_Features_Sfpr4iK1cGrmncok.json @@ -6,7 +6,7 @@ "sorting": "m", "_id": "Sfpr4iK1cGrmncok", "description": "", - "sort": 100000, + "sort": 900000, "flags": {}, "_stats": { "compendiumSource": null, @@ -16,8 +16,8 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1754174646170, - "modifiedTime": 1754268224220, - "lastModifiedBy": "LgnbNMLaxandgMQq" + "modifiedTime": 1754501800511, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!folders!Sfpr4iK1cGrmncok" } diff --git a/src/packs/subclasses/folders_Warrior_aTyhcJgENR9uI7u4.json b/src/packs/subclasses/folders_Warrior_aTyhcJgENR9uI7u4.json index 631be023..d9f88587 100644 --- a/src/packs/subclasses/folders_Warrior_aTyhcJgENR9uI7u4.json +++ b/src/packs/subclasses/folders_Warrior_aTyhcJgENR9uI7u4.json @@ -6,7 +6,7 @@ "sorting": "a", "_id": "aTyhcJgENR9uI7u4", "description": "", - "sort": 600000, + "sort": 1700000, "flags": {}, "_stats": { "compendiumSource": null, @@ -16,8 +16,8 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1754256060634, - "modifiedTime": 1754268224220, - "lastModifiedBy": "LgnbNMLaxandgMQq" + "modifiedTime": 1754501859285, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!folders!aTyhcJgENR9uI7u4" } diff --git a/src/packs/subclasses/folders_Wizard_Bb9SLVpYHGBrOB59.json b/src/packs/subclasses/folders_Wizard_Bb9SLVpYHGBrOB59.json index 46fe527d..744a1230 100644 --- a/src/packs/subclasses/folders_Wizard_Bb9SLVpYHGBrOB59.json +++ b/src/packs/subclasses/folders_Wizard_Bb9SLVpYHGBrOB59.json @@ -6,7 +6,7 @@ "sorting": "a", "_id": "Bb9SLVpYHGBrOB59", "description": "", - "sort": 700000, + "sort": 1800000, "flags": {}, "_stats": { "compendiumSource": null, @@ -16,8 +16,8 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1754253525540, - "modifiedTime": 1754268224220, - "lastModifiedBy": "LgnbNMLaxandgMQq" + "modifiedTime": 1754501860252, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!folders!Bb9SLVpYHGBrOB59" } diff --git a/styles/less/global/elements.less b/styles/less/global/elements.less index 35262b3b..f99646b7 100755 --- a/styles/less/global/elements.less +++ b/styles/less/global/elements.less @@ -486,8 +486,43 @@ flex-wrap: wrap; margin-top: 2px; - button { - white-space: nowrap; + .item-button { + display: flex; + border: 1px solid light-dark(#18162e, #18162e); + color: light-dark(#18162e, #18162e); + outline: none; + box-shadow: none; + border-radius: 6px; + + button { + padding: 6px 6px 6px 10px; + border-radius: 3px 0px 0px 3px; + color: light-dark(@dark-blue, @dark-blue); + white-space: nowrap; + border: 0; + font-family: @font-body; + + &:hover { + color: light-dark(@dark-blue, @golden); + } + + &:last-child { + padding: 6px; + background: light-dark(@dark-blue-10, @golden-secondary); + border-radius: 0px 3px 3px 0px; + color: light-dark(@dark-blue, @dark-golden); + + &:hover { + background: light-dark(@light-black, @dark-blue); + color: light-dark(@dark-blue, @golden-secondary); + } + } + } + + .spacer { + border-right: 1px solid black; + content: ''; + } } } } @@ -644,6 +679,12 @@ } &.theme-light { + .tagify { + tag div img { + filter: @beige-filter; + } + } + .tagify__dropdown { .tagify__dropdown__wrapper { background-image: url(../assets/parchments/dh-parchment-light.png); diff --git a/styles/less/global/inventory-item.less b/styles/less/global/inventory-item.less index 0ca383d5..e79a88c7 100644 --- a/styles/less/global/inventory-item.less +++ b/styles/less/global/inventory-item.less @@ -24,13 +24,15 @@ width: 100%; list-style-type: none; - &:not(.single-img):hover { - .inventory-item-header .img-portait { - .roll-img { - opacity: 1; - } - .item-img { - opacity: 0; + &:not(.single-img) { + .inventory-item-header:hover { + .img-portait { + .roll-img { + opacity: 1; + } + .item-img { + opacity: 0; + } } } } diff --git a/styles/less/utils/colors.less b/styles/less/utils/colors.less index aed3b7dc..64edfc6f 100755 --- a/styles/less/utils/colors.less +++ b/styles/less/utils/colors.less @@ -5,6 +5,7 @@ @golden-10: #f3c26710; @golden-40: #f3c26740; @golden-bg: #f3c2671a; +@golden-secondary: #eaaf42; @golden-filter: brightness(0) saturate(100%) invert(89%) sepia(13%) saturate(2008%) hue-rotate(332deg) brightness(99%) contrast(92%); diff --git a/templates/sheets/global/partials/inventory-item-V2.hbs b/templates/sheets/global/partials/inventory-item-V2.hbs index e49ad1b5..c79430ad 100644 --- a/templates/sheets/global/partials/inventory-item-V2.hbs +++ b/templates/sheets/global/partials/inventory-item-V2.hbs @@ -146,9 +146,17 @@ Parameters: {{#if (and showActions (eq item.type 'feature'))}} {{/if}} From 6d1d0335cc1126210d88c08f68d4061e11c639c3 Mon Sep 17 00:00:00 2001 From: WBHarry <89362246+WBHarry@users.noreply.github.com> Date: Thu, 7 Aug 2025 10:18:36 +0200 Subject: [PATCH 07/21] Fixed so unnarmed strike does a roll instead of opening the sheet (#678) --- templates/sheets/global/partials/inventory-item-V2.hbs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/sheets/global/partials/inventory-item-V2.hbs b/templates/sheets/global/partials/inventory-item-V2.hbs index c79430ad..fcaa2c38 100644 --- a/templates/sheets/global/partials/inventory-item-V2.hbs +++ b/templates/sheets/global/partials/inventory-item-V2.hbs @@ -19,7 +19,7 @@ Parameters: data-action-id="{{item.id}}" {{/if}} data-item-uuid="{{item.uuid}}" data-type="{{type}}" data-no-compendium-edit="{{noCompendiumEdit}}" draggable="true">{{localize "DAGGERHEART.ACTIONS.Config.beastform.exactHint"}}
-