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] [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:

", + "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:

", + "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}}